/* Month owns only its board, planning panel, hover list and month strip. */
.sv-month-host.sp-extension-view{display:flex;min-height:0;overflow:hidden}
.sv-month-root{position:relative;display:flex;flex:1;min-width:0;min-height:0;overflow:hidden;background:var(--ds-surface);color:var(--ds-ink);font-family:var(--ds-font);font-variant-numeric:tabular-nums}
.sv-month-root *{box-sizing:border-box}
.sv-month-root button{font:inherit;color:inherit;cursor:pointer}
.sv-month-root .sv-month-scroll{flex:1;width:100%;overflow:auto;min-width:0;min-height:0}
.sv-month-root .sv-month-grid{min-width:100%;width:100%;min-height:100%;container-type:inline-size}
.sv-month-root .sv-month-head,.sv-month-root .sv-month-row{display:grid;grid-template-columns:var(--sv-month-cols)}
.sv-month-root .sv-month-head{position:sticky;top:0;z-index:5;height:40px;background:var(--ds-surface);border-bottom:1px solid var(--ds-line)}
.sv-month-root .sv-month-corner,.sv-month-root .sv-month-photo{position:sticky;left:0;z-index:3;background:var(--ds-canvas);border-right:1px solid var(--ds-line)}
.sv-month-root .sv-month-day{position:relative;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0 2px 6px;border:0;border-right:1px solid var(--ds-line);background:transparent;box-shadow:none}
.sv-month-root .sv-month-day>span{font-size:var(--ds-text-av);line-height:12px;color:var(--ds-ink-3)}
.sv-month-root .sv-month-day>b{display:grid;place-items:center;min-width:20px;height:20px;font-size:var(--ds-text-sm);font-weight:var(--ds-w-semi);border-radius:var(--ds-r-full)}
.sv-month-root .sv-month-day.sv-month-today>b{background:var(--ds-brand-ink);color:var(--ds-action-fg)}
.sv-month-root .sv-month-day[aria-disabled="true"]{cursor:default}
.sv-month-root .sv-month-day:hover{background:var(--ds-paper-hover)}
.sv-month-root .sv-month-weekend{background:var(--ds-canvas)}
.sv-month-root .sv-month-row{position:relative;height:76px;min-height:76px;border-bottom:1px solid var(--ds-line)}
.sv-month-root .sv-month-photo{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:8px 2px;font-size:var(--ds-text-caps);font-weight:var(--ds-w-semi)}
.sv-month-root .sv-month-photo .sp-av{width:40px;height:40px;font-size:var(--ds-text-sm);border-radius:var(--ds-r-full);background:var(--ds-brand-ink);color:var(--ds-action-fg);overflow:hidden;display:inline-flex;align-items:center;justify-content:center}
.sv-month-root .sv-month-photo .sp-av img{width:100%;height:100%;object-fit:cover}
.sv-month-root .sv-month-photo>span:last-child{max-width:60px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.sv-month-root .sv-month-cell{position:relative;min-width:0;padding:3px 2px 0;border-right:1px solid var(--ds-line);display:flex;flex-direction:column;gap:2px;cursor:pointer}
.sv-month-root .sv-month-cell.sv-month-today{background:color-mix(in srgb,var(--ds-action) 5%,var(--ds-surface))}
.sv-month-root .sv-month-cell:focus-visible,.sv-month-root .sv-month-day:focus-visible{outline:2px solid var(--ds-focus);outline-offset:-2px}
.sv-month-root .sv-month-cell:hover{box-shadow:inset 0 0 0 1px var(--ds-ink-3)}
.sv-month-root .sv-month-load{display:block;flex:none;height:3px;background:var(--ds-line);border-radius:var(--ds-r-tag);overflow:hidden}
.sv-month-root .sv-month-load>i{display:block;height:100%;background:var(--ds-action)}
.sv-month-root .sv-month-day>.sv-month-load{position:absolute;bottom:2px;left:3px;right:3px}
.sv-month-root .sv-month-load.sv-month-over>i{background:var(--ds-danger)}
.sv-month-root .sv-month-cell-top{display:flex;align-items:center;gap:3px;height:14px;min-height:14px;min-width:0}
.sv-month-root .sv-month-cell-top>.sv-month-load{flex:1;min-width:16px}
.sv-month-root .sv-month-hours{flex:0 1 auto;min-width:0;font-size:var(--ds-text-caps);line-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sv-month-root .sv-month-hours.sv-month-over{color:var(--ds-danger)}
.sv-month-root .sv-month-compact .sv-month-open-word{display:none}
.sv-month-root .sv-month-chip{flex:none;display:block;width:100%;height:20px;min-height:20px;min-width:0;padding:2px;border:0;border-radius:var(--ds-r-block);background:var(--sp-bg);color:var(--sp-ink)!important;box-shadow:inset 0 0 0 1px var(--sp-edge);text-align:left;overflow:hidden}
.sv-month-root .sv-month-chip[draggable="true"]{cursor:grab}
.sv-month-root .sv-month-chip:active{cursor:grabbing}
.sv-month-root .sv-month-fit{display:block;font-size:var(--ds-text-caps);font-weight:var(--ds-w-medium);line-height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;hyphens:none;word-break:normal}
.sv-month-root .sv-month-chip-double{height:36px;min-height:36px}
.sv-month-root .sv-month-chip-double>.sv-month-fit{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;overflow-wrap:normal;word-break:normal}
.sv-month-root .sv-month-fit>span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sv-month-root .sv-month-more{flex:none;min-width:0;max-width:100%;padding:0;border:0;background:transparent;box-shadow:none;text-align:left;font-size:var(--ds-text-av)!important;height:12px;line-height:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sv-month-root .sv-month-more:hover{text-decoration:underline}
.sv-month-root .sv-month-slot{display:block;flex:none;height:20px}
.sv-month-root .sv-month-span{position:relative;z-index:2;align-self:start;margin:19px 2px 0;min-width:0;height:20px;overflow:hidden;border-radius:var(--ds-r-block);background:var(--sp-bg);color:var(--sp-ink);box-shadow:inset 0 0 0 1px var(--sp-edge)}
.sv-month-root .sv-month-span-chip{position:absolute;inset:0;height:100%;padding:0;background:transparent;box-shadow:none}
.sv-month-root .sv-month-span-chip>.sv-month-fit{visibility:hidden}
.sv-month-root .sv-month-span-text{pointer-events:none;position:absolute;inset:0;padding:2px 4px;font-size:var(--ds-text-caps);font-weight:var(--ds-w-semi);line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sv-month-root .sv-month-total,.sv-month-root .sv-month-total-head{position:sticky;right:0;z-index:3;min-width:0;background:var(--ds-canvas);border-left:1px solid var(--ds-line);display:flex;flex-direction:column;justify-content:center;align-items:flex-end;padding:6px 8px;font-size:var(--ds-text-caps);gap:4px}
.sv-month-root .sv-month-total b{font-size:var(--ds-text-base)}
.sv-month-root .sv-month-total-head{font-size:var(--ds-text-av);white-space:nowrap;justify-content:center;align-items:center}
.sv-month-root .sv-month-total>span{color:var(--ds-ink-2);font-size:var(--ds-text-caps);white-space:nowrap}
.sv-month-root .sv-month-narrow{padding-left:0;padding-right:0}
.sv-month-root .sv-month-drop{outline:2px solid var(--ds-action);outline-offset:-2px;z-index:4}
.sv-month-root .sv-month-drop:after{content:attr(data-month-projected);position:absolute;z-index:6;left:50%;transform:translateX(-50%);top:100%;min-width:150px;max-width:210px;padding:6px 8px;border-radius:var(--ds-r-sm);background:var(--ds-brand-ink);color:var(--ds-action-fg);box-shadow:var(--ds-e-pop);font-size:var(--ds-text-caps);line-height:16px;pointer-events:none}
.sv-month-root .sv-month-panel{position:absolute;z-index:10;right:0;top:0;bottom:0;width:360px;max-width:100%;display:flex;flex-direction:column;background:var(--ds-surface);border-left:1px solid var(--ds-line);box-shadow:var(--ds-e-pop)}
.sv-month-root .sv-month-panel header,.sv-month-root .sv-month-peek header{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:14px;border-bottom:1px solid var(--ds-line)}
.sv-month-root .sv-month-panel h2{flex:1;margin:0;font-size:var(--ds-text-md);line-height:21px;font-weight:var(--ds-w-semi)}
.sv-month-root .sv-month-panel header>button,.sv-month-root .sv-month-peek header>button{flex:none;margin-left:auto;background:transparent;box-shadow:none;border:0;font-size:var(--ds-text-d2);line-height:24px;padding:0 3px}
.sv-month-root .sv-month-panel header>p,.sv-month-root .sv-month-peek header>p{flex-basis:100%;margin:0;font-size:var(--ds-text-sm);line-height:18px;color:var(--ds-ink-2)}
.sv-month-root .sv-month-panel-body{flex:1;min-height:0;overflow:auto}
.sv-month-root .sv-month-plan-tech{padding:12px 14px;border-bottom:1px solid var(--ds-line)}
.sv-month-root .sv-month-plan-heading{display:flex;align-items:center;gap:8px;font-size:var(--ds-text-sm)}
.sv-month-root .sv-month-plan-heading>span:last-child{margin-left:auto;font-size:var(--ds-text-caps);color:var(--ds-ink-2)}
.sv-month-root .sv-month-plan-heading .sp-av,.sv-month-root .sv-month-peek .sp-av{width:28px;height:28px;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--ds-r-full);overflow:hidden;background:var(--ds-brand-ink);color:var(--ds-action-fg);font-size:var(--ds-text-av)}
.sv-month-root .sv-month-plan-heading .sp-av img,.sv-month-root .sv-month-peek .sp-av img{width:100%;height:100%;object-fit:cover}
.sv-month-root .sv-month-windows{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}
.sv-month-root .sv-month-windows>span{padding:3px 7px;border-radius:var(--ds-r-full);background:var(--ds-tint);font-size:var(--ds-text-caps);line-height:16px}
.sv-month-root .sv-month-visits{list-style:none;margin:0;padding:0}
.sv-month-root .sv-month-visits>li{margin:6px 0;border-left:3px solid var(--sp-bg);padding-left:7px}
.sv-month-root .sv-month-visits button{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;width:100%;padding:2px 0;border:0;background:transparent;box-shadow:none;text-align:left}
.sv-month-root .sv-month-visits button[draggable="true"]{cursor:grab}
.sv-month-root .sv-month-visits time{font-size:var(--ds-text-caps);line-height:16px;color:var(--ds-ink-2);white-space:nowrap}
.sv-month-root .sv-month-visits b{font-size:var(--ds-text-sm);line-height:16px;font-weight:var(--ds-w-semi);overflow-wrap:anywhere}
.sv-month-root .sv-month-visits small{grid-column:2;font-size:var(--ds-text-caps);line-height:16px;color:var(--ds-ink-2);overflow-wrap:anywhere}
.sv-month-root .sv-month-panel footer,.sv-month-root .sv-month-peek footer{display:flex;justify-content:flex-end;padding:10px 14px;border-top:1px solid var(--ds-line)}
.sv-month-root .sv-month-open-day{padding:6px 12px;border:0;border-radius:var(--ds-r-sm);background:var(--ds-action);color:var(--ds-action-fg)!important;font-size:var(--ds-text-sm)!important;line-height:20px;font-weight:var(--ds-w-semi)!important}
.sv-month-root .sv-month-peek{position:fixed;z-index:50;width:340px;max-height:calc(100dvh - 16px);overflow:auto;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-r-md);box-shadow:var(--ds-e-pop)}
.sv-month-root .sv-month-peek header>b{font-size:var(--ds-text-sm)}
.sv-month-root .sv-month-peek>.sv-month-visits{padding:4px 12px}
.sv-month-root .sv-month-error{position:absolute;bottom:8px;left:72px;padding:10px;background:var(--ds-surface);font-size:var(--ds-text-sm)}
.sv-month-strip.sp-weekstrip .sp-days>button{width:auto!important;min-width:32px!important;padding:0 5px!important}
.sv-month-strip.sp-weekstrip .sp-days>button>strong{font-size:var(--ds-text-sm);font-weight:var(--ds-w-medium)}
.sv-month-highlight{box-shadow:inset 3px 0 0 var(--ds-action)}
.sv-month-highlight>.sp-photo,.sv-month-highlight>.sp-band{background:var(--ds-tint)}
.sv-month-highlight>.sp-track{background:color-mix(in srgb,var(--ds-action) 6%,transparent)}
.sv-month-root .sv-month-chip:hover,.sv-month-root .sv-month-chip:active{background:var(--sp-bg);box-shadow:inset 0 0 0 1px var(--sp-edge)}
.sv-month-root .sv-month-more{display:block}
.sv-month-root .sv-month-more:hover,.sv-month-root .sv-month-more:active{background:transparent;box-shadow:none}
.sv-month-root .sv-month-open-day:hover{background:var(--ds-action-hover);box-shadow:none}
/* The booked bar becomes a thin full-width line along the cell top so "x h open" always fits with its word. */
.sv-month-root .sv-month-cell{position:relative}
.sv-month-root .sv-month-cell-top{justify-content:flex-end}
.sv-month-root .sv-month-cell-top>.sv-month-load{position:absolute;top:0;left:0;right:0;height:3px;min-width:0;border-radius:0}

/* Locked in Simpro: a small padlock and a not-allowed cursor; dragging says why and offers Unlock. */
.sv-month-locked{cursor:not-allowed!important;padding-right:16px!important;position:relative;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round'%3E%3Crect x='3.5' y='7' width='9' height='7' rx='1.5'/%3E%3Cpath d='M5.5 7V5a2.5 2.5 0 0 1 5 0v2'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 3px center!important;background-size:11px 11px!important}
