/* Accepted Scheduling Pro Day workspace. Scoped to the maintained page host. */
.sched-host{min-height:320px}.sched-pro{--sp-hour:69.6px;--sp-text:.85;--sp-row:45.4px;height:100%;min-height:0;display:flex;flex-direction:column;background:var(--ds-surface);color:var(--ds-ink);font:var(--ds-text-sm) var(--ds-font);position:relative;overflow:hidden}.sched-pro *{box-sizing:border-box}.sched-pro button,.sched-pro input,.sched-pro select{font:inherit}.sched-pro button{cursor:pointer;border:1px solid var(--ds-field);background:var(--ds-surface);color:var(--ds-ink-2);border-radius:var(--ds-r-md);padding:5px 8px;display:inline-flex;align-items:center;justify-content:center;gap:5px}.sched-pro button:hover{background:var(--ds-paper-hover)}.sched-pro button:focus-visible,.sched-pro input:focus-visible,.sched-pro select:focus-visible,.sched-pro summary:focus-visible{outline:3px solid var(--ds-focus);outline-offset:1px}.sched-pro .sp-primary{background:var(--ds-action);border-color:var(--ds-action);color:var(--ds-action-fg)}.sched-pro .sp-primary:hover{background:var(--ds-action-hover)}.sp-command{display:flex;align-items:center;gap:8px;min-height:43px;padding:6px 10px;border-bottom:1px solid var(--ds-line);flex-shrink:0}.sp-command>button{white-space:nowrap}.sp-command .sp-date{display:flex;align-items:center;gap:3px;flex-shrink:0}.sp-date>strong{font-size:var(--ds-text-sm);white-space:nowrap;font-weight:var(--ds-w-semi);margin:0 3px}.sp-date button{border-color:transparent;padding:4px}.sp-command>input{flex:1;min-width:80px;width:180px;padding:6px 8px;border:1px solid var(--ds-field);border-radius:var(--ds-r-md);background:var(--ds-surface);color:var(--ds-ink-2)}.sp-command>select{max-width:110px;padding:5px;border:1px solid var(--ds-field);border-radius:var(--ds-r-md);background:var(--ds-surface);color:var(--ds-ink-3)}.sp-legend{position:relative;flex-shrink:0}.sp-legend summary{cursor:pointer;padding:5px;list-style:none;color:var(--ds-ink-3)}.sp-legend summary:after{content:' ▾'}.sp-legend>div{position:absolute;right:0;top:28px;width:220px;max-height:60vh;overflow:auto;padding:12px;background:var(--ds-surface);border:1px solid var(--ds-line);box-shadow:var(--ds-e-pop);border-radius:var(--ds-r-md);z-index:40}.sp-legend>div>span{display:flex;gap:7px;align-items:center;font-size:var(--ds-text-caps);margin:8px 0}.sp-legend i{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sp-workspace{display:flex;flex:1;min-height:0;overflow:hidden}.sp-queue{width:280px;min-width:235px;max-width:400px;resize:horizontal;flex-shrink:0;overflow:auto;border-right:1px solid var(--ds-line);display:flex;flex-direction:column;background:var(--ds-surface)}.sp-hidden{display:none!important}.sp-qhead{display:flex;align-items:center;justify-content:space-between;padding:12px 13px 9px}.sp-qhead strong{font-size:var(--ds-text-md);font-weight:var(--ds-w-semi)}.sp-qhead strong>span{font-size:var(--ds-text-caps);color:var(--ds-ink-3);font-weight:var(--ds-w-regular);margin-left:5px}.sp-qhead>button{padding:0 5px;border:0;font-size:var(--ds-text-d2);color:var(--ds-ink-3)}.sp-categories{display:flex;gap:3px;padding:0 12px 8px}.sp-categories button{font-size:var(--ds-text-caps);border:0;background:var(--ds-canvas);padding:5px 6px}.sp-categories button.selected{background:var(--ds-sel-bg);color:var(--ds-ink)}.sp-status-filter{margin:0 12px 9px;border:1px solid var(--ds-line);padding:6px 7px;border-radius:var(--ds-r-md);color:var(--ds-ink-3);background:var(--ds-surface);font-size:var(--ds-text-caps)!important;max-width:calc(100% - 24px)}.sp-qhint{padding:0 13px 10px;color:var(--ds-ink-3);font-size:var(--ds-text-caps);line-height:1.4}.sp-qlist{flex:1;overflow:auto;padding:0 10px 12px}.sp-qcard{border:1px solid var(--ds-field);border-left:3px solid var(--sp-color);padding:8px 9px;border-radius:var(--ds-r-md);margin-bottom:6px;cursor:grab;background:var(--ds-surface)}.sp-qcard:hover{border-color:var(--ds-field);box-shadow:none}.sp-qmeta{display:flex;justify-content:space-between;gap:5px;color:var(--ds-ink-3);font-size:var(--sp-fs-caps);margin-bottom:4px}.sp-qcard>strong{display:block;font-size:var(--sp-fs-md);line-height:1.3;color:var(--ds-ink)}.sp-qcard>p{font-size:var(--sp-fs-sm);line-height:1.4;color:var(--ds-ink-3);margin:4px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sp-qstatus{font-size:var(--sp-fs-caps);line-height:1.4;color:var(--ds-ink-3);margin:6px 0;display:flex;align-items:center;gap:5px}.sp-qstatus>i{height:6px;width:6px;border-radius:50%;background:var(--sp-color);flex-shrink:0}.sp-qcard footer{display:flex;justify-content:space-between;align-items:center;font-size:var(--sp-fs-caps);color:var(--ds-ink-3)}.sp-qcard footer button{font-size:var(--ds-text-caps);padding:3px 6px;border:0;background:var(--ds-canvas);color:var(--ds-ink)}.sp-board{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.sp-date-rail{height:43px;min-height:43px;display:flex;gap:5px;align-items:stretch;padding:3px 6px;background:var(--ds-canvas);border-bottom:1px solid var(--ds-line)}.sp-period{display:flex;align-items:center;gap:2px;flex-shrink:0}.sp-period>span{font-size:var(--ds-text-caps);color:var(--ds-ink-3);max-width:84px;text-align:center;line-height:1.3}.sp-period>button{border:0;background:none;padding:3px 4px;font-size:var(--ds-text-d2)}.sp-days{display:flex;flex:1;min-width:0;gap:1px;overflow:auto;scrollbar-width:none;position:relative}.sp-days::-webkit-scrollbar{display:none}.sp-days>button{flex:1 0 29px;min-width:29px;display:flex;flex-direction:column;gap:1px;border:0;background:transparent;padding:3px;color:var(--ds-ink-3)}.sp-days>button>span{font-size:var(--ds-text-caps)}.sp-days>button>strong{font-size:var(--ds-text-caps);font-weight:var(--ds-w-semi)}.sp-days>button.weekend{background:var(--ds-canvas);color:var(--ds-ink-3)}.sp-days>button.selected{background:var(--ds-action);color:var(--ds-action-fg)}.sp-date-rail>button{align-self:center;padding:4px 6px;font-size:var(--ds-text-caps);height:25px;flex-shrink:0}.sp-scroll{flex:1;min-height:0;overflow:auto;position:relative;overscroll-behavior:contain}.sp-timeline{position:relative;min-height:100%;background:var(--ds-surface)}.sp-ruler{display:grid;height:34px;position:sticky;top:0;z-index:10;background:var(--ds-surface);border-bottom:1px solid var(--ds-line)}.sp-ruler>div:first-child{position:sticky;left:0;background:var(--ds-canvas);border-right:1px solid var(--ds-line);padding:10px;font-size:var(--ds-text-caps);font-weight:var(--ds-w-semi);letter-spacing:.5px;color:var(--ds-ink-3);z-index:11}.sp-hours{position:relative}.sp-hour{position:absolute;top:0;width:var(--sp-hour);height:34px;padding:7px 4px;border-left:1px solid var(--ds-line);font-size:var(--ds-text-caps);color:var(--ds-ink-3)}.sp-hour>small{position:absolute;left:50%;top:9px;font-size:var(--ds-text-caps);color:var(--ds-ink-3)}.sp-lane{display:grid;min-height:var(--sp-row);border-bottom:1px solid var(--ds-line)}.sp-tech{position:sticky;left:0;z-index:5;background:var(--ds-surface);border-right:1px solid var(--ds-line);padding:3px 9px;min-height:0;overflow:hidden}.sp-tech>strong{font-size:var(--sp-fs-sm);font-weight:var(--ds-w-semi);display:block;line-height:1.15}.sp-tech>span,.sp-tech>small{font-size:var(--sp-fs-caps);display:block;line-height:1.1;margin-top:2px;color:var(--ds-ink-3)}.sp-tech>small{color:var(--ds-st-done-ink)}.sp-track{position:relative;min-height:var(--sp-row);background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--sp-hour) - 1px),var(--ds-line) calc(var(--sp-hour) - 1px),var(--ds-line) var(--sp-hour)),repeating-linear-gradient(to right,transparent 0,transparent calc(var(--sp-hour)/2 - 1px),var(--ds-line) calc(var(--sp-hour)/2 - 1px),var(--ds-line) calc(var(--sp-hour)/2)),repeating-linear-gradient(to right,transparent 0,transparent calc(var(--sp-hour)/4 - 1px),var(--ds-line) calc(var(--sp-hour)/4 - 1px),var(--ds-line) calc(var(--sp-hour)/4))}.sp-block{position:absolute;top:1px;height:calc(var(--sp-row) - 2px);padding:3px 6px!important;border:1px solid var(--sp-color)!important;border-left:3px solid var(--sp-color)!important;border-radius:var(--ds-r-sm)!important;background:var(--sp-bg)!important;color:var(--sp-ink)!important;display:block!important;text-align:left;overflow:hidden;cursor:grab!important}.sp-block>strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--sp-fs-sm);font-weight:var(--ds-w-semi);line-height:1.15}.sp-purpose{display:block;font-size:var(--sp-fs-caps);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-top:2px;line-height:1.15}.sp-blocktime{display:flex;font-size:var(--sp-fs-caps);margin-top:2px;white-space:nowrap;line-height:1.15;justify-content:space-between;gap:5px}.sp-blocktime>em{font-style:normal;overflow:hidden;text-overflow:ellipsis}.sp-block:hover{z-index:8;filter:brightness(.97)}.sp-block.conflict{outline:1px dashed var(--ds-focus);outline-offset:-2px}.sp-block.dim{opacity:.35}.sp-block.micro{padding:2px!important}.sp-micro-id{display:block;font-size:var(--sp-fs-caps);font-weight:var(--ds-w-semi);white-space:nowrap}.sp-micro-time{display:block;font-size:var(--sp-fs-caps);line-height:1.1;white-space:nowrap}.sp-resize{position:absolute;right:0;top:0;width:7px;bottom:0;cursor:ew-resize}.sp-track.drop-target:after{content:attr(data-drop-time);position:absolute;top:0;bottom:0;left:var(--sp-drop-x);width:2px;background:var(--ds-action);color:var(--ds-ink);white-space:nowrap;pointer-events:none;font-size:var(--ds-text-caps);font-weight:var(--ds-w-semi);z-index:12}.sp-now{position:absolute;top:34px;bottom:0;width:1px;background:var(--ds-st-late);z-index:8;pointer-events:none}.sp-now>span{position:absolute;top:-19px;left:-13px;background:var(--ds-st-late);color:var(--ds-action-fg);padding:2px 4px;border-radius:var(--ds-r-block);font-size:var(--ds-text-caps)}.sp-empty{padding:35px 20px;color:var(--ds-ink-3);font-size:var(--ds-text-sm);text-align:center}.sp-agenda{display:none}.sp-saving{font-size:var(--ds-text-caps);color:var(--ds-st-route-ink);white-space:nowrap}.sp-preview{position:fixed;z-index:50;width:510px;max-width:calc(100vw - 24px);background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-r-lg);box-shadow:var(--ds-e-pop);display:flex;flex-direction:column;overflow:hidden}.sp-preview>header{display:flex;align-items:flex-start;justify-content:space-between;padding:17px 20px 14px;background:var(--sp-bg);border-top:4px solid var(--sp-color);flex-shrink:0}.sp-preview header small{font-size:var(--ds-text-caps);color:var(--ds-ink-3)}.sp-preview header h2{font-size:var(--ds-text-d2);font-weight:var(--ds-w-semi);line-height:1.25;margin:6px 0 8px;color:var(--ds-ink)}.sp-preview header span{font-size:var(--ds-text-caps);color:var(--ds-ink-2)}.sp-preview header button{border:0;background:none;font-size:var(--ds-text-d2);padding:0 4px;color:var(--ds-ink-3)}.sp-preview-body{padding:17px 20px;overflow:auto;min-height:0;font-size:var(--ds-text-sm);line-height:1.5;color:var(--ds-ink-3)}.sp-preview-body p{margin:5px 0 12px}.sp-preview-body h3{font-size:var(--ds-text-base);font-weight:var(--ds-w-semi);color:var(--ds-ink-2);margin:14px 0 7px}.sp-preview-body h4{font-size:var(--ds-text-sm);margin:13px 0 5px;color:var(--ds-ink-3)}.sp-preview-body details{margin:15px 0}.sp-preview-body summary{cursor:pointer;font-size:var(--ds-text-sm);font-weight:var(--ds-w-medium);color:var(--ds-ink-3)}.sp-preview-body section>button{width:100%;justify-content:flex-start;text-align:left;background:var(--ds-canvas);border:0;margin:4px 0;padding:8px;font-size:var(--ds-text-caps)}.sp-preview-body .sp-overlap>button{background:var(--ds-tint)}.sp-longtext{white-space:pre-line;overflow-wrap:anywhere}.sp-customer{font-weight:var(--ds-w-semi);color:var(--ds-ink-2)}.sp-appointment{display:flex;flex-direction:column;gap:3px;padding:12px;background:var(--ds-canvas);border-radius:var(--ds-r-md);color:var(--ds-ink-3)}.sp-appointment>strong{font-size:var(--ds-text-sm);font-weight:var(--ds-w-semi)}.sp-appointment>span{font-size:var(--ds-text-caps);color:var(--ds-ink-3)}.sp-preview-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:var(--ds-text-caps);margin:10px 0}.sp-preview>footer{display:flex;gap:9px;padding:12px 19px;border-top:1px solid var(--ds-line);background:var(--ds-surface);flex-shrink:0}.sp-preview>footer button{padding:8px 13px}.sp-preview-loading{font-size:var(--ds-text-caps);color:var(--ds-ink-3)}.sp-editor-backdrop{position:fixed;inset:0;z-index:60;background:color-mix(in srgb, var(--ds-brand-ink) 32%, transparent);display:flex;justify-content:flex-end}.sp-editor{width:400px;max-width:100vw;background:var(--ds-surface);overflow:auto;padding:22px;box-shadow:var(--ds-e-pop)}.sp-editor>header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:23px}.sp-editor>header small{color:var(--ds-ink-3)}.sp-editor>header h2{font-size:var(--ds-text-d2);margin:7px 0;line-height:1.3;color:var(--ds-ink-2)}.sp-editor>header button{border:0;font-size:var(--ds-text-d2);color:var(--ds-ink-3);padding:0 5px}.sp-editor form>label,.sp-form-row>label{font-size:var(--ds-text-caps);color:var(--ds-ink-3);display:block;margin:15px 0}.sp-editor input,.sp-editor select{width:100%;padding:9px;border:1px solid var(--ds-field);border-radius:var(--ds-r-md);color:var(--ds-ink-2);background:var(--ds-surface);display:block;margin-top:7px}.sp-form-row{display:flex;gap:15px}.sp-form-row>label{width:50%}.sp-editor footer{display:flex;gap:10px;margin-top:20px}.sp-editor footer button{padding:9px 13px}.sp-form-note{font-size:var(--ds-text-caps);line-height:1.5;color:var(--ds-ink-3)}.sp-form-error{font-size:var(--ds-text-sm);color:var(--ds-st-route-ink)}.sp-display{position:absolute;right:12px;top:46px;width:265px;z-index:45;background:var(--ds-surface);border:1px solid var(--ds-field);box-shadow:var(--ds-e-pop);border-radius:var(--ds-r-lg);padding:17px;max-height:calc(100% - 55px);overflow:auto}.sp-display header{display:flex;justify-content:space-between;margin-bottom:20px}.sp-display header strong{font-size:var(--ds-text-md)}.sp-display header button{border:0;font-size:var(--ds-text-d2);padding:0;color:var(--ds-ink-3)}.sp-display label{display:block;font-size:var(--ds-text-sm);color:var(--ds-ink-3);margin:17px 0}.sp-display output{float:right;font-size:var(--ds-text-caps)}.sp-display input[type=range]{display:block;width:100%;margin:9px 0 0;accent-color:var(--ds-action)}.sp-display label.sp-check{display:flex;gap:8px;align-items:center;font-size:var(--ds-text-caps)}.sp-display label.sp-check input{margin:0}.sp-display>button{font-size:var(--ds-text-caps)}
@media(max-width:1100px){.sp-command{gap:5px}.sp-date>strong{font-size:var(--ds-text-caps)}.sp-command>select{max-width:95px}.sp-command>button{font-size:var(--ds-text-caps)}.sp-period>span{max-width:65px;font-size:var(--ds-text-caps)}.sp-date-rail{gap:3px}.sp-days>button{flex-basis:27px;min-width:27px}}@media(max-width:800px){.sp-command{flex-wrap:wrap}.sp-command>input{order:5;flex-basis:50%}.sp-command>select{order:6}.sp-command>.sp-primary{order:7}.sp-queue{position:absolute;left:0;top:83px;bottom:0;width:280px;z-index:18;box-shadow:var(--ds-e-pop)}.sp-preview{left:12px!important;right:12px;top:auto!important;bottom:12px;width:auto;max-height:calc(100dvh - 24px)!important}.sp-display{top:85px}.sp-days>button{flex:0 0 29px}.sp-period>span{max-width:55px}.sp-date-rail>button{font-size:var(--ds-text-caps);padding:3px}}@media(max-width:520px){.sp-queue{width:100%;max-width:none;resize:none;top:83px}.sp-command .sp-date{flex:1;justify-content:space-between}.sp-date>strong{font-size:var(--ds-text-caps)}.sp-command>.sp-primary{display:none}.sp-command>input{min-width:100px}.sp-scroll{display:none}.sp-agenda{display:block;overflow:auto;flex:1;padding:12px}.sp-agenda h3{font-size:var(--ds-text-sm);margin:15px 0 7px}.sp-agenda>button{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:12px!important;background:var(--sp-bg)!important;border-color:var(--sp-color)!important;color:var(--sp-ink)!important;margin-bottom:8px;gap:4px;text-align:left}.sp-agenda button strong{font-size:var(--ds-text-base)}.sp-agenda button span{font-size:var(--ds-text-caps)}.sp-agenda button small{font-size:var(--ds-text-caps)}.sp-preview header h2{font-size:var(--ds-text-d2)}.sp-editor{width:100%;padding:20px}.sp-display{right:8px}}
.sp-technician-picker { position: relative; font-size: var(--ds-text-sm); }
.sp-technician-picker summary { cursor: pointer; white-space: nowrap; padding: 6px 8px; }
.sp-technician-picker > div { position: absolute; top: 100%; left: 0; z-index: 40; width: 260px; max-height: 360px; overflow: auto; padding: 12px; background: var(--ds-surface); border: 1px solid var(--ds-line); border-radius: var(--ds-r-lg); box-shadow: var(--ds-e-pop); }
.sp-technician-picker small { display: block; color: var(--ds-ink-3); line-height: 1.4; margin-bottom: 8px; }
.sp-technician-picker label { display: flex; align-items: center; gap: 8px; padding: 6px 0; cursor: pointer; }
.sp-home-address { margin: 0 0 8px 24px; padding-bottom: 8px; border-bottom: 1px solid var(--ds-hair); }
.sp-home-address > button { border: 0; background: transparent; color: var(--ds-ink-2); padding: 2px 0; font: inherit; font-size: var(--ds-text-caps); cursor: pointer; }
.sp-home-address > button:hover { color: var(--ds-ink); text-decoration: underline; }
.sp-home-address > div { margin-top: 6px; }
.sp-technician-picker .sp-home-address label { display: block; font-size: var(--ds-text-caps); line-height: 1.4; cursor: default; }
.sp-home-address input { box-sizing: border-box; width: 100%; min-width: 0; margin-top: 4px; padding: 7px 8px; border: 1px solid var(--ds-field); border-radius: var(--ds-r-md); background: var(--ds-surface); color: var(--ds-ink); font: inherit; }
.sp-home-address input:focus-visible { outline: 2px solid var(--ds-focus); outline-offset: 1px; }
.sp-home-address > div > button { padding: 5px 10px; margin: 0 5px 0 0; border: 1px solid var(--ds-field); border-radius: var(--ds-r-md); background: var(--ds-canvas); color: var(--ds-ink); font: inherit; cursor: pointer; }
.sp-home-address > div > button:disabled { opacity: .55; cursor: default; }
.sp-home-address p { margin: 6px 0 0; font-size: var(--ds-text-caps); line-height: 1.4; overflow-wrap: anywhere; }
.sp-home-address p:empty { display: none; }
.sp-home-address [role="alert"] { color: var(--ds-st-late-ink); }
.sp-approval fieldset{border:0;padding:0;margin:0;min-width:0}.sp-approval fieldset>label{display:block;font-size:var(--ds-text-sm);margin:16px 0}.sp-approval fieldset:disabled{opacity:.8}
.sp-approval{width:560px}.sp-approval>label{display:block;margin:16px 0;font-size:var(--ds-text-sm)}.sp-approval textarea{display:block;width:100%;padding:10px;border:1px solid var(--ds-field);border-radius:var(--ds-r-md);margin-top:6px;resize:vertical;font-size:var(--ds-text-base);line-height:1.5;font-family:inherit}.sp-approval .recipient-field-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.sp-approval .recipient-field-head select{width:auto;max-width:65%;font-size:var(--ds-text-caps)}.sp-approval .recipient-site-caption,.sp-approval .recipient-entry-hint{font-size:var(--ds-text-caps);line-height:1.5;color:var(--ds-ink-3)}.sp-approval .recipient-site-caption span{display:block}.sp-approval-notice{padding:7px 12px;font-size:var(--ds-text-sm);background:var(--ds-canvas);border-bottom:1px solid var(--ds-line)}.sp-approval-notice button{margin-left:8px}.sp-upcoming>div{display:flex;flex-wrap:wrap;gap:4px}
.sp-drop-backdrop{align-items:center;justify-content:center;padding:16px}.sp-drop-choice{width:380px;max-height:calc(100dvh - 32px);border-radius:var(--ds-r-lg);padding:20px}.sp-drop-choice>header{margin-bottom:12px}.sp-drop-choice>header h2{font-size:var(--ds-text-d2)}.sp-drop-choice>p{font-size:var(--ds-text-sm);line-height:1.5;color:var(--ds-ink-3)}.sp-drop-choice footer{margin-top:15px}.sp-drop-choice footer button{flex:1}.sp-drop-choice input[type=hidden]{display:none}
.sp-queue-states{display:flex;gap:3px;padding:0 10px 8px}.sched-pro .sp-queue-states button{flex:1;min-width:0;padding:6px 3px;font-size:var(--ds-text-caps);gap:3px}.sp-queue-states button[aria-pressed=true]{background:var(--ds-sel-bg);border-color:var(--ds-field);color:var(--ds-ink)}.sp-queue-states span{color:var(--ds-ink-3)}.sp-upcoming{display:flex;flex-wrap:wrap;gap:4px}.sched-pro .sp-upcoming button{font-size:var(--ds-text-caps);padding:4px 6px}.sp-qcard[draggable=false]{cursor:pointer}

/* Dense operator presentation: the queue is a working list, not a stack of
   dashboard cards. Keep the identifying fields and action in the first
   viewport while retaining the full value in the native preview tooltip. */
.sched-pro .sp-qhead{padding:8px 11px 6px}
.sched-pro .sp-qhead strong{font-size:var(--ds-text-base)}
.sched-pro .sp-categories{padding:0 10px 5px}
.sched-pro .sp-categories button{padding:4px 6px}
.sched-pro .sp-qhint{padding:0 11px 6px;font-size:var(--ds-text-caps);line-height:1.3}
.sched-pro .sp-qlist{padding:0 8px 10px}
.sched-pro .sp-qcard{padding:6px 8px 7px;margin-bottom:4px;border-radius:var(--ds-r-md)}
.sched-pro .sp-qmeta{margin-bottom:2px;line-height:1.1}
.sched-pro .sp-qmeta>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sched-pro .sp-qcard>strong{font-size:var(--sp-fs-base);line-height:1.18;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;overflow:hidden}
.sched-pro .sp-qcard>p{font-size:var(--sp-fs-caps);line-height:1.2;margin:2px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;overflow:hidden}
.sched-pro .sp-qstatus{font-size:var(--sp-fs-caps);line-height:1.15;margin:3px 0;min-height:12px;min-width:0}
.sched-pro .sp-qstatus>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sched-pro .sp-qstatus em{font-style:normal;margin-left:auto;color:var(--ds-st-route-ink);font-size:var(--sp-fs-caps);white-space:nowrap}
.sched-pro .sp-maintenance-estimate{display:flex;align-items:baseline;gap:5px;min-width:0;margin:3px 0 4px;font-size:var(--sp-fs-caps);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sched-pro .sp-maintenance-estimate strong{font-size:var(--sp-fs-caps);font-weight:var(--ds-w-semi);color:var(--ds-ink-3);flex-shrink:0}
.sched-pro .sp-maintenance-estimate span{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--ds-ink-3)}
.sched-pro .sp-maintenance-estimate[role="status"]{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ds-ink-3)}
.sched-pro .sp-qcard footer{min-height:18px;line-height:1.1;gap:5px}
.sched-pro .sp-qcard footer>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sched-pro .sp-qcard footer button{padding:3px 6px;flex-shrink:0}
.sched-pro .sp-qcard .sp-upcoming{gap:2px;min-width:0;max-width:100%;overflow:auto;scrollbar-width:thin}
.sched-pro .sp-qcard .sp-upcoming>div{gap:2px;align-items:center}
.sched-pro .sp-qcard .sp-upcoming button{font-size:var(--ds-text-caps);padding:2px 4px}

/* Three short lines fit the compact lane without hiding the time row. A
   narrow block still exposes a recognizable site label; title/preview retains
   the unabridged value for inspection. */
.sched-pro .sp-block{padding:2px 5px!important}
.sched-pro .sp-block>strong{font-size:var(--sp-fs-caps);line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sched-pro .sp-purpose{font-size:var(--sp-fs-caps);line-height:1;max-height:2em;margin-top:1px;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.sched-pro .sp-blocktime{font-size:var(--sp-fs-caps);line-height:1.05;margin-top:1px}
.sched-pro .sp-block.micro{padding:2px 4px!important}
.sched-pro .sp-micro-id,.sched-pro .sp-micro-site,.sched-pro .sp-micro-time{display:block;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sched-pro .sp-micro-id{font-size:var(--sp-fs-caps);font-weight:var(--ds-w-semi)}
.sched-pro .sp-micro-site{font-size:var(--sp-fs-caps)}
.sched-pro .sp-micro-time{font-size:var(--sp-fs-caps)}
.sched-pro .sp-tech>strong,.sched-pro .sp-tech>span,.sched-pro .sp-tech>small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sched-pro .sp-preview header h2{overflow-wrap:anywhere}
.sched-pro .sp-preview-body{overflow-wrap:anywhere}
.sched-pro .sp-workspace{position:relative}
@media(max-width:800px){.sched-pro .sp-queue{top:43px}.sched-pro .sp-display{top:85px}}
@media(max-width:520px){.sched-pro .sp-queue{top:43px}}

/* Full-value inspection: queue cards may grow, while schedule lanes keep
   their compact height. A focused/hovered block temporarily rises above its
   lane so the complete site, purpose and status remain readable without
   changing row geometry or making conflicts create a second row. */
.sched-pro .sp-qmeta>span,
.sched-pro .sp-qcard>strong,
.sched-pro .sp-qcard>p,
.sched-pro .sp-qstatus>span,
.sched-pro .sp-qcard footer>span:first-child,
.sched-pro .sp-maintenance-estimate,
.sched-pro .sp-maintenance-estimate span,
.sched-pro .sp-maintenance-estimate[role="status"] {
  min-width: 0;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  display: block;
  overflow-wrap: anywhere;
  -webkit-line-clamp: unset;
  -webkit-box-orient: initial;
}
.sched-pro .sp-qmeta { align-items: flex-start; flex-wrap: wrap; }
.sched-pro .sp-qcard>strong { display: block; }
.sched-pro .sp-qcard>p { display: block; }
.sched-pro .sp-qstatus { align-items: flex-start; flex-wrap: wrap; }
.sched-pro .sp-qstatus em { margin-left: 0; }
.sched-pro .sp-qcard footer { align-items: flex-start; flex-wrap: wrap; }
.sched-pro .sp-block:hover,
.sched-pro .sp-block:focus-visible {
  z-index: 30;
  height: auto !important;
  min-height: calc(var(--sp-row) - 2px);
  max-height: none;
  overflow: visible !important;
  white-space: normal;
  filter: brightness(.98);
  box-shadow: var(--ds-e-pop);
}
.sched-pro .sp-block:hover>strong,
.sched-pro .sp-block:focus-visible>strong,
.sched-pro .sp-block:hover .sp-purpose,
.sched-pro .sp-block:focus-visible .sp-purpose,
.sched-pro .sp-block:hover .sp-blocktime,
.sched-pro .sp-block:focus-visible .sp-blocktime,
.sched-pro .sp-block:hover .sp-blocktime>em,
.sched-pro .sp-block:focus-visible .sp-blocktime>em {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  display: block;
  max-height: none;
  -webkit-line-clamp: unset;
  overflow-wrap: anywhere;
}
.sched-pro .sp-block:hover .sp-blocktime,
.sched-pro .sp-block:focus-visible .sp-blocktime { display: flex; flex-wrap: wrap; }
.sched-pro .sp-block:hover .sp-micro-id,
.sched-pro .sp-block:hover .sp-micro-site,
.sched-pro .sp-block:hover .sp-micro-time,
.sched-pro .sp-block:focus-visible .sp-micro-id,
.sched-pro .sp-block:focus-visible .sp-micro-site,
.sched-pro .sp-block:focus-visible .sp-micro-time {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
}
.sched-pro .sp-home-suggestion { margin: 13px 0; padding: 10px 12px; border: 1px solid var(--ds-line); border-radius: var(--ds-r-md); background: var(--ds-canvas); color: var(--ds-ink-3); }
.sched-pro .sp-home-suggestion>strong { display: block; color: var(--ds-ink-2); font-size: var(--ds-text-sm); }
.sched-pro .sp-home-suggestion>p { margin: 5px 0 0; line-height: 1.4; }
.sched-pro .sp-home-suggestion ol { margin: 7px 0 4px; padding-left: 20px; }
.sched-pro .sp-home-suggestion li { padding: 3px 0; line-height: 1.35; }
.sched-pro .sp-home-suggestion li strong { display: inline; color: var(--ds-ink-2); }
.sched-pro .sp-home-suggestion li span { display: block; font-size: var(--ds-text-caps); color: var(--ds-ink-3); }
.sched-pro .sp-home-suggestion small { display: block; margin-top: 7px; line-height: 1.4; color: var(--ds-ink-3); }

/* Keep the existing half-hour grid, but make the returned business window
   visibly different from the surrounding non-business time. The board passes
   these offsets from Simpro's workdayStart/workdayEnd values; blocks remain
   above the shading and conflicts stay in one lane. */
.sched-pro .sp-track { isolation: isolate; background-color: var(--ds-surface); }
.sched-pro .sp-track::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(to right,
    var(--ds-canvas) 0 var(--sp-business-start),
    var(--ds-surface) var(--sp-business-start) var(--sp-business-end),
    var(--ds-canvas) var(--sp-business-end) 100%);
}
.sched-pro .sp-track > .sp-block { z-index: 1; }
.sched-pro .sp-hour { border-left-color: var(--ds-line); }
.sched-pro .sp-hour.business { background: var(--ds-surface); color: var(--ds-ink-3); }
.sched-pro .sp-hour.nonbusiness { background: var(--ds-canvas); color: var(--ds-ink-3); }

/* Lane order is a local display preference. The small arrow pair is always
   available without adding a second row or changing the Simpro assignment. */
.sched-pro .sp-tech { position: relative; padding-right: 38px; }
.sched-pro .sp-tech-order {
  position: absolute;
  top: 4px;
  right: 4px;
  z-index: 3;
  display: flex;
  gap: 2px;
}
.sched-pro .sp-tech-order button {
  width: 17px;
  height: 16px;
  padding: 0;
  border: 1px solid var(--ds-field);
  border-radius: var(--ds-r-block);
  background: var(--ds-canvas);
  color: var(--ds-ink-3);
  font-size: var(--ds-text-caps);
  line-height: 14px;
  cursor: pointer;
}
.sched-pro .sp-tech-order button:hover:not(:disabled),
.sched-pro .sp-tech-order button:focus-visible { background: var(--ds-paper-hover); border-color: var(--ds-field); color: var(--ds-ink); }
.sched-pro .sp-tech-order button:disabled { opacity: .32; cursor: default; }

/* Date reads stay on the current board while a slow day loads, with a clear
   retry path instead of a blank workspace or a generic toast. */
.sched-pro .sp-date-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 27px;
  padding: 5px 11px;
  border-bottom: 1px solid var(--ds-line);
  font-size: var(--ds-text-caps);
  line-height: 1.35;
}
.sched-pro .sp-date-loading { background: var(--ds-canvas); color: var(--ds-ink-3); }
.sched-pro .sp-date-error { background: var(--ds-tint); color: var(--ds-st-route-ink); }
.sched-pro .sp-date-notice button {
  margin-left: auto;
  padding: 3px 8px;
  border: 1px solid currentColor;
  border-radius: var(--ds-r-sm);
  background: transparent;
  color: inherit;
  font-size: var(--ds-text-caps);
  cursor: pointer;
}

.sp-approval-summary{margin:4px 0 6px}.sp-approval-facts{display:grid;grid-template-columns:max-content 1fr;gap:7px 14px;margin:0 0 10px;font-size:var(--ds-text-base)}.sp-approval-facts>div{display:contents}.sp-approval-facts dt{font-size:var(--ds-text-caps);font-weight:var(--ds-w-semi);text-transform:uppercase;letter-spacing:.4px;color:var(--ds-ink-3);padding-top:2px}.sp-approval-facts dd{margin:0;color:var(--ds-ink);line-height:1.4}.sp-approval-facts dd small{display:block;font-size:var(--ds-text-caps);color:var(--ds-ink-3)}.sp-approval .sp-form-note{margin:8px 0 0;padding:8px 10px;background:var(--ds-tint);border:1px solid var(--ds-st-route-bd);border-radius:var(--ds-r-md);font-size:var(--ds-text-sm);line-height:1.5}.sp-approval .sp-form-note button{margin-top:6px}
.sp-approval .recipient-fields .ifrow{display:grid;grid-template-columns:1fr;gap:10px}.sp-approval .recipient-site-caption{margin:12px 0 6px;font-size:var(--ds-text-sm)}.sp-approval .recipient-site-caption span{color:var(--ds-ink-3);font-size:var(--ds-text-caps)}.sp-approval .recipient-field-head label{font-size:var(--ds-text-sm);font-weight:var(--ds-w-semi);color:var(--ds-ink)}.sp-approval .recipient-field-head select{max-width:60%;font-size:var(--ds-text-caps)}.sp-approval .recipient-entry-hint{margin:4px 0 0}.sp-approval>fieldset>label{margin:12px 0}.sp-approval-hint{display:block;margin-top:4px;font-size:var(--ds-text-caps);color:var(--ds-ink-3)}.sp-approval section[aria-label="Email signature"] p{font-size:var(--ds-text-caps);color:var(--ds-ink-3);line-height:1.35;margin:2px 0 0}
.sp-approval .recipient-field-head{justify-content:space-between}.sp-approval .recipient-field-head label{flex:1;text-align:left;margin:0}.sp-approval .recipient-field-head select{flex:0 0 auto;max-width:55%}

.sp-qcard,[data-sched-block]{user-select:none;-webkit-user-select:none}body.sp-pointer-dragging{cursor:grabbing;user-select:none}body.sp-pointer-dragging *{cursor:grabbing!important}.sp-drag-ghost{position:fixed;z-index:9999;pointer-events:none;max-width:260px;padding:6px 10px;border-radius:var(--ds-r-md);background:var(--ds-chrome);color:var(--ds-action-fg);font-size:var(--ds-text-sm);box-shadow:var(--ds-e-pop)}

/* Work-queue toolbar: filters are inline chips and sort is a row of pills, so no menu
   has to be opened to filter or reorder the list. */
.sched-pro .sp-qsearch{padding:0 10px 6px}.sched-pro .sp-qsearch input{width:100%;padding:6px 8px;border:1px solid var(--ds-field);border-radius:var(--ds-r-md);font-size:var(--ds-text-caps)}
.sched-pro .sp-qchips{display:flex;flex-wrap:wrap;gap:4px;padding:0 10px 6px}
.sched-pro .sp-qchips button{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:3px 7px 3px 5px;font-size:var(--ds-text-caps);line-height:1.3;border:1px solid var(--ds-field);border-radius:var(--ds-r-full);background:var(--ds-canvas);color:var(--ds-ink-2)}
.sched-pro .sp-qchips button i{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.sched-pro .sp-qchips button span{color:var(--ds-ink-3);font-variant-numeric:tabular-nums}
.sched-pro .sp-qchips button[aria-pressed=true]{background:var(--ds-sel-bg);border-color:var(--ds-field);color:var(--ds-ink)}
.sched-pro .sp-qchips .sp-qclear{background:var(--ds-tint);border-color:var(--ds-st-route-bd);color:var(--ds-st-route-ink)}
.sched-pro .sp-qchip-empty{font-size:var(--ds-text-caps);color:var(--ds-ink-3);padding:3px 0}
.sched-pro .sp-qsort{display:flex;flex-wrap:wrap;align-items:center;gap:3px;padding:0 10px 8px;font-size:var(--ds-text-caps);color:var(--ds-ink-3)}
.sched-pro .sp-qsort>span{margin-right:2px}
.sched-pro .sp-qsort button{padding:3px 6px;font-size:var(--ds-text-caps);border:0;border-radius:var(--ds-r-sm);background:var(--ds-canvas);color:var(--ds-ink-2)}
.sched-pro .sp-qsort button[aria-pressed=true]{background:var(--ds-sel-bg);color:var(--ds-ink);font-weight:var(--ds-w-semi)}

/* The hour grid continues below the last technician so the board and the queue
   beside it read as one full-height surface. */
.sched-pro .sp-timeline{display:flex;flex-direction:column}
.sched-pro .sp-lane-fill{flex:1;border-bottom:0;min-height:var(--ds-s-10)}
.sched-pro .sp-lane-fill .sp-tech{background:transparent}
/* Technician names stay in view while the day scrolls sideways (owner, 2026-09-17). */
.sched-pro .sp-lane>.sp-tech{position:sticky!important;left:0;z-index:6;background:var(--ds-surface)}
.sched-pro .sp-lane-fill>.sp-tech{background:var(--ds-surface)}
.sched-pro .sp-ruler>div:first-child{position:sticky!important;left:0;z-index:11}

/* Actual on-site time in the block detail (van stops against the schedule). */
.sp-onsite{margin:8px 0 2px;padding:7px 10px;border-radius:var(--ds-r-lg);background:var(--ds-canvas);color:var(--ds-ink);font-size:var(--ds-text-base);line-height:1.35}
.sp-onsite strong{font-weight:var(--ds-w-semi)}
.sp-onsite-muted{background:var(--ds-canvas);color:var(--ds-ink-3)}
span.sp-onsite-muted{background:none;padding:0}
.sp-onsite-diff{color:var(--ds-ink-3)}

/* 2026-09-21: the roster and Colours menus open above the schedule (the toolbar clipped them and sat under the day strip and blocks) */
.sp-command{overflow:visible;position:relative;z-index:45}

/* ── Navy system, Phase 3 (2026-09-24): Schedules board ─────────────────────────────────
   Tokens only (design-tokens.css). Block fills keep their Simpro colour blended to pastel
   (statusPaint, D24); everything else follows docs/design-system/README.md §6.1–6.3, 6.10–6.12.
   Text sizes follow the operator's Display "Text size" setting: --sp-k = 1 at the 85% default. */
.sched-pro,.maintenance-planner{
  --sp-k:calc(var(--sp-text,.85) / .85);
  --sp-fs-caps:calc(var(--ds-text-caps) * var(--sp-k));
  --sp-fs-sm:calc(var(--ds-text-sm) * var(--sp-k));
  --sp-fs-base:calc(var(--ds-text-base) * var(--sp-k));
  --sp-fs-md:calc(var(--ds-text-md) * var(--sp-k));
  --sp-g-sched:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='4.75' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E");
  --sp-g-route:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='4.75' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3Cpath d='M6 2.75a3.25 3.25 0 0 1 0 6.5z'/%3E%3C/svg%3E");
  --sp-g-site:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='4.75' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3Ccircle cx='6' cy='6' r='3.25'/%3E%3C/svg%3E");
  --sp-g-done:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cmask id='m'%3E%3Crect width='12' height='12' fill='%23fff'/%3E%3Cpath d='M3.7 6.1 5.3 7.7 8.4 4.4' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/mask%3E%3Ccircle cx='6' cy='6' r='5.5' mask='url%28%23m%29'/%3E%3C/svg%3E");
  --sp-g-warn:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='4.75' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3Cpath d='M6 3.7v2.6' stroke='%23000' stroke-width='1.4' stroke-linecap='round'/%3E%3Ccircle cx='6' cy='8.1' r='.8'/%3E%3C/svg%3E");
  --sp-g-late:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cmask id='m'%3E%3Crect width='12' height='12' fill='%23fff'/%3E%3Cpath d='M6 3.2v3.3' stroke='%23000' stroke-width='1.5' stroke-linecap='round'/%3E%3Ccircle cx='6' cy='8.6' r='.85' fill='%23000'/%3E%3C/mask%3E%3Ccircle cx='6' cy='6' r='5.5' mask='url%28%23m%29'/%3E%3C/svg%3E");
  --sp-g-flag:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 11.25V1.25' stroke='%23000' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M3 1.5h6.9l-1.7 2.6 1.7 2.6H3z'/%3E%3C/svg%3E");
}
.sched-pro{background:var(--ds-surface);color:var(--ds-ink);font:var(--ds-text-base)/var(--ds-lh-base) var(--ds-font);font-variant-numeric:var(--ds-nums);letter-spacing:var(--ds-track-base)}

/* Buttons (D17): secondary is flat white with a 1px field line; one navy primary. */
.sched-pro button{border:0;box-shadow:var(--ds-e-secondary);background:var(--ds-surface);color:var(--ds-ink);border-radius:var(--ds-r-md);font-weight:var(--ds-w-medium)}
.sched-pro button:hover{background:var(--ds-paper-hover);box-shadow:inset 0 0 0 1px var(--ds-ink-3)}
.sched-pro button:active{background:var(--ds-canvas);box-shadow:var(--ds-e-secondary)}
.sched-pro button:disabled{background:var(--ds-disabled-bg);color:var(--ds-disabled-fg);box-shadow:inset 0 0 0 1px var(--ds-disabled-bd);cursor:not-allowed;opacity:1}
.sched-pro button:focus-visible,.sched-pro input:focus-visible,.sched-pro select:focus-visible,.sched-pro summary:focus-visible,.sched-pro [tabindex]:focus-visible{outline:var(--ds-focus-w) solid var(--ds-focus);outline-offset:var(--ds-focus-off)}
.sched-pro .sp-primary,.maintenance-planner .sp-primary{background:var(--ds-action);color:var(--ds-action-fg);box-shadow:var(--ds-e-primary);border:0;font-weight:var(--ds-w-semi)}
.sched-pro .sp-primary:hover,.maintenance-planner .sp-primary:hover{background:var(--ds-action-hover);box-shadow:var(--ds-e-primary)}
.sched-pro .sp-primary:active,.maintenance-planner .sp-primary:active{background:var(--ds-action-press);box-shadow:var(--ds-e-primary-press);transform:translateY(.5px)}
.sched-pro .sp-primary:disabled,.maintenance-planner .sp-primary:disabled{background:var(--ds-disabled-primary-bg);color:var(--ds-disabled-primary-fg);box-shadow:none}

/* Command bar: paper, one row; board date in Saira (D3); controls 32px. */
.sp-command{background:var(--ds-surface);border-bottom:0;box-shadow:inset 0 -1px 0 var(--ds-line);min-height:48px;padding:8px var(--ds-s-4);gap:var(--ds-s-2)}
.sp-command>button,.sp-command .sp-date>button[data-sched-nav="today"],.sp-command>details>summary,.sp-command .sp-technician-picker>summary{height:var(--ds-control-h);padding:0 var(--ds-s-3);font-size:var(--ds-text-base);line-height:var(--ds-lh-base);font-weight:var(--ds-w-medium)}
.sp-command .sp-date>button[data-sched-nav="prev"],.sp-command .sp-date>button[data-sched-nav="next"]{width:var(--ds-control-h);height:var(--ds-control-h);padding:0;box-shadow:none;background:transparent;color:var(--ds-ink-2)}
.sp-command .sp-date>button[data-sched-nav="prev"]:hover,.sp-command .sp-date>button[data-sched-nav="next"]:hover{background:var(--ds-paper-hover)}
.sp-date>strong{font-family:var(--ds-display);font-size:var(--ds-text-d2);line-height:var(--ds-lh-d2);font-weight:var(--ds-display-weight);letter-spacing:var(--ds-display-track);color:var(--ds-ink);margin:0 var(--ds-s-1)}
.sp-command>input,.sp-command>select{height:var(--ds-control-h);border:0;box-shadow:inset 0 0 0 1px var(--ds-field);border-radius:var(--ds-r-md);background:var(--ds-surface);color:var(--ds-ink);font-size:var(--ds-text-base);padding:0 var(--ds-s-2)}
.sp-command>input::placeholder{color:var(--ds-ink-3)}
.sp-command>input:focus-visible,.sp-command>select:focus-visible{box-shadow:inset 0 0 0 1px var(--ds-line)}
.sp-legend summary,.sp-technician-picker summary{display:inline-flex;align-items:center;border-radius:var(--ds-r-md);color:var(--ds-ink);background:var(--ds-surface);box-shadow:var(--ds-e-secondary)}
.sp-legend summary:hover,.sp-technician-picker summary:hover{background:var(--ds-paper-hover)}
.sp-legend>div,.sp-technician-picker>div{border:0;border-radius:var(--ds-r-lg);box-shadow:var(--ds-e-pop);background:var(--ds-surface)}
.sp-legend>div>span{font-size:var(--ds-text-sm);color:var(--ds-ink-2)}
/* Legend swatches are painted like the blocks: the Simpro colour blended to pastel, with the same edge. */
.sp-legend i{width:12px;height:12px;border-radius:var(--ds-r-tag);background:var(--sp-bg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sp-color) 45%,var(--ds-brand-ink))}
.sp-saving{font-size:var(--ds-text-sm);color:var(--ds-ink-2)}

/* Date rail: paper; the selected day is the navy selection. */
.sp-date-rail{background:var(--ds-surface);border-bottom:0;box-shadow:inset 0 -1px 0 var(--ds-line);height:48px;min-height:48px;padding:4px var(--ds-s-2)}
.sp-period>span{font-size:var(--ds-text-caps);line-height:var(--ds-lh-caps);color:var(--ds-ink-3)}
.sched-pro .sp-period>button{box-shadow:none;background:transparent;color:var(--ds-ink-2);font-size:var(--ds-text-d2)}
.sched-pro .sp-days>button{box-shadow:none;background:transparent;color:var(--ds-ink-2);border-radius:var(--ds-r-md)}
.sched-pro .sp-days>button:hover{background:var(--ds-paper-hover);box-shadow:none}
.sp-days>button>span{font-size:var(--ds-text-caps);line-height:var(--ds-lh-caps)}
.sp-days>button>strong{font-size:var(--ds-text-base);line-height:var(--ds-lh-md);font-weight:var(--ds-w-semi)}
.sched-pro .sp-days>button.weekend{background:transparent;color:var(--ds-ink-3)}
.sched-pro .sp-days>button.selected{background:var(--ds-selection);color:var(--ds-action-fg);box-shadow:none}
.sched-pro .sp-date-rail>button{height:28px;font-size:var(--ds-text-sm);padding:0 var(--ds-s-2)}

/* Grid (D5): paper canvas, hour lines 1px --ds-line, half hours --ds-hair, rows 1px. */
.sp-timeline{background:var(--ds-surface)}
.sched-pro .sp-track{background-color:var(--ds-surface);background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--sp-hour) - 1px),var(--ds-grid-hour) calc(var(--sp-hour) - 1px),var(--ds-grid-hour) var(--sp-hour)),repeating-linear-gradient(to right,transparent 0,transparent calc(var(--sp-hour)/2 - 1px),var(--ds-grid-half) calc(var(--sp-hour)/2 - 1px),var(--ds-grid-half) calc(var(--sp-hour)/2)),repeating-linear-gradient(to right,transparent 0,transparent calc(var(--sp-hour)/4 - 1px),var(--ds-grid-half) calc(var(--sp-hour)/4 - 1px),var(--ds-grid-half) calc(var(--sp-hour)/4)),linear-gradient(to right,var(--ds-board-offhours) 0 var(--sp-business-start),transparent var(--sp-business-start) var(--sp-business-end),var(--ds-board-offhours) var(--sp-business-end) 100%)}
/* After-hours shading is the bottom background layer so the hour and half-hour lines stay visible over it. */
.sched-pro .sp-track::before{background:none}
.sp-lane{border-bottom:0;box-shadow:inset 0 -1px 0 var(--ds-line)}
.sp-lane-fill{box-shadow:none}

/* Hour axis (D13 AM/PM) with the now pill on its own strip below the labels (D4). */
.sp-ruler{height:44px;background:var(--ds-surface);border-bottom:0;box-shadow:inset 0 -1px 0 var(--ds-line)}
.sp-ruler>div:first-child{background:var(--ds-surface);border-right:0;box-shadow:inset -1px 0 0 var(--ds-line);padding:8px var(--ds-s-4) 0;font-size:var(--ds-text-caps);line-height:var(--ds-lh-caps);font-weight:var(--ds-w-semi);letter-spacing:var(--ds-track-caps);color:var(--ds-ink-3)}
.sched-pro .sp-hour{height:44px;padding:6px 4px 0;border-left:0;box-shadow:inset 1px 0 0 var(--ds-line);font-size:var(--ds-text-sm);line-height:var(--ds-lh-sm);font-weight:var(--ds-w-medium);letter-spacing:var(--ds-track-sm);color:var(--ds-ink-3);white-space:nowrap}
.sched-pro .sp-hour.business{background:var(--ds-surface);color:var(--ds-ink-3)}
.sched-pro .sp-hour.nonbusiness{background:var(--ds-board-offhours);color:var(--ds-ink-3)}
.sp-hour>small{top:24px;left:50%;transform:translateX(-50%);font-size:var(--ds-text-caps);line-height:var(--ds-lh-caps);color:var(--ds-ink-3);font-weight:var(--ds-w-regular)}
.sp-nowtag{position:absolute;bottom:4px;z-index:2;transform:translateX(-50%);height:18px;padding:0 6px;border-radius:var(--ds-r-sm);background:var(--ds-now);color:var(--ds-action-fg);font-size:var(--ds-text-caps);line-height:18px;font-weight:var(--ds-w-semi);white-space:nowrap;pointer-events:none}
.sp-nowtag::after{content:"";position:absolute;left:50%;bottom:-4px;width:var(--ds-board-now-w);height:4px;margin-left:-.75px;background:var(--ds-now)}
.sp-now{top:44px;width:var(--ds-board-now-w);margin-left:-.75px;background:var(--ds-now)}
.sp-now>span{display:none}

/* Technician column: paper, 1px line; name 13/600, meta 12 ink-3; overlap flag (D9). */
.sched-pro .sp-lane>.sp-tech,.sched-pro .sp-lane-fill>.sp-tech{background:var(--ds-surface)}
.sp-tech{border-right:0;box-shadow:inset -1px 0 0 var(--ds-line);padding:0 var(--ds-s-3) 0 var(--ds-s-4);display:flex;flex-direction:column;justify-content:center}
.sp-tech>strong{font-size:var(--sp-fs-base);line-height:calc(16px * var(--sp-k));font-weight:var(--ds-w-semi);letter-spacing:var(--ds-track-base);color:var(--ds-ink)}
.sp-tech>span:not(.sp-tech-order),.sp-tech>small{font-size:var(--sp-fs-sm);line-height:calc(14px * var(--sp-k));margin-top:0;color:var(--ds-ink-3);letter-spacing:var(--ds-track-sm)}
.sp-tech>small{color:var(--ds-ink-3)}
.sp-tech>small:has(.sp-flag){color:var(--ds-st-late-ink);font-weight:var(--ds-w-medium)}
.sp-flag{display:inline-block;width:12px;height:12px;margin-right:4px;vertical-align:-1px;background:var(--ds-st-late);-webkit-mask:var(--sp-g-flag) center / 12px 12px no-repeat;mask:var(--sp-g-flag) center / 12px 12px no-repeat}
.sched-pro .sp-tech-order button{width:20px;height:20px;border:0;box-shadow:none;background:transparent;color:var(--ds-icon);border-radius:var(--ds-r-sm);font-size:var(--ds-text-sm);line-height:20px}
.sched-pro .sp-tech-order button:hover:not(:disabled),.sched-pro .sp-tech-order button:focus-visible{background:var(--ds-paper-hover);color:var(--ds-ink);box-shadow:none}
.sched-pro .sp-tech-order button:disabled{background:transparent;box-shadow:none;color:var(--ds-disabled-bd);opacity:1}

/* ── Visit blocks (§6.1, D1, D13, D14, D20, D21, D24) ──
   Fill = Simpro colour at 28% on white (statusPaint). Edge = 1px, the Simpro colour mixed
   into navy ink, so it keeps the hue and clears 3:1 on the paper for every Simpro colour. */
.sched-pro .sp-block{padding:6px 8px 4px!important;border:0!important;border-radius:var(--ds-r-block)!important;background:var(--sp-bg)!important;color:var(--ds-ink)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sp-color) 45%,var(--ds-brand-ink));font-size:var(--sp-fs-sm);line-height:calc(16px * var(--sp-k));letter-spacing:var(--ds-track-sm);text-align:left;white-space:nowrap}
.sched-pro .sp-block.one,.sched-pro .sp-block.half{padding:0 4px!important}
.sched-pro .sp-block.mko{padding:0!important}
.sched-pro .sp-block:hover{filter:none}
.sp-block .sp-face{display:block}
.sp-block .sp-full{display:none}
.sp-block .sp-l1{display:flex;align-items:center;gap:6px;height:calc(16px * var(--sp-k));min-width:0}
.sp-block .sp-t{color:var(--ds-ink-2);font-variant-numeric:var(--ds-nums);flex:none}
.sp-block .sp-t.dot::before{content:"·";margin-right:6px;color:var(--ds-ink-3)}
.sp-block .sp-w{display:inline-flex;align-items:center;gap:6px;flex:none;color:var(--ds-ink-2);font-weight:var(--ds-w-medium)}
.sp-block .sp-sn{display:block;height:calc(15px * var(--sp-k));line-height:calc(15px * var(--sp-k))}
.sp-block .sp-s{font-weight:var(--ds-w-semi);color:var(--ds-ink)}
.sp-block .sp-jb{display:block;height:calc(16px * var(--sp-k));color:var(--ds-ink-2)}
.sp-block .sp-n{font-weight:var(--ds-w-medium);font-variant-numeric:var(--ds-nums)}
.sp-block .sp-sc{white-space:pre;font-variant-numeric:lining-nums proportional-nums}
.sp-block .sp-one{display:flex;align-items:center;gap:6px;height:100%;min-width:0}
.sp-block .sp-stk{display:flex;flex-direction:column;justify-content:center;height:100%;min-width:0;line-height:calc(13px * var(--sp-k))}
.sp-block .sp-mk{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.sp-gl{display:inline-block;flex:none;width:calc(12px * var(--sp-k));height:calc(12px * var(--sp-k));background:var(--ds-st-sched);-webkit-mask:var(--sp-g-sched) center / 100% 100% no-repeat;mask:var(--sp-g-sched) center / 100% 100% no-repeat}
.sp-gl.g-route{background:var(--ds-st-route);-webkit-mask-image:var(--sp-g-route);mask-image:var(--sp-g-route)}
.sp-gl.g-site{background:var(--ds-st-site);-webkit-mask-image:var(--sp-g-site);mask-image:var(--sp-g-site)}
.sp-gl.g-done{background:var(--ds-st-done);-webkit-mask-image:var(--sp-g-done);mask-image:var(--sp-g-done)}
.sp-gl.g-sched{background:var(--ds-ink-2)}
/* D9: overlapping visits are two half-lanes; the late edge marks them; the hatch sits only in the gutter. */
.sched-pro .sp-block.conflict{outline:0;box-shadow:inset 0 0 0 1px var(--ds-st-late-bd)}
.sp-clash{position:absolute;z-index:0;height:3px;pointer-events:none;background:repeating-linear-gradient(135deg,var(--ds-st-late) 0 1.5px,transparent 1.5px 4px)}
/* Full values on hover / keyboard focus (the live inspection behaviour, kept). */
.sched-pro .sp-block:hover,.sched-pro .sp-block:focus-visible{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sp-color) 45%,var(--ds-brand-ink)),var(--ds-e-pop);padding:6px 8px 6px!important;white-space:normal}
.sched-pro .sp-block:hover .sp-face,.sched-pro .sp-block:focus-visible .sp-face{display:none}
.sched-pro .sp-block:hover .sp-full,.sched-pro .sp-block:focus-visible .sp-full{display:block}
.sp-block .sp-full>strong{display:block;font-size:var(--sp-fs-sm);line-height:calc(16px * var(--sp-k));font-weight:var(--ds-w-semi)}
.sched-pro .sp-block .sp-purpose{display:block;font-size:var(--sp-fs-sm);line-height:calc(16px * var(--sp-k));color:var(--ds-ink-2);max-height:none;-webkit-line-clamp:unset;margin:0}
.sched-pro .sp-block .sp-blocktime{display:flex;flex-wrap:wrap;gap:0 8px;font-size:var(--sp-fs-sm);line-height:calc(16px * var(--sp-k));color:var(--ds-ink-2);margin:0}
.sp-block .sp-blocktime>em{font-style:normal;font-weight:var(--ds-w-medium)}
.sp-block.sp-ghost{box-shadow:none;border:1px dashed var(--ds-field)!important}

/* Work queue (demo board queue; the live page uses the planner queue .mp-queue). */
.sp-queue{background:var(--ds-surface);border-right:0;box-shadow:inset -1px 0 0 var(--ds-line)}
.sp-qhead strong{font-size:var(--ds-text-md);line-height:var(--ds-lh-md);font-weight:var(--ds-w-semi);letter-spacing:var(--ds-track-tight)}
.sp-qhead strong>span{font-size:var(--ds-text-base);color:var(--ds-ink-3);font-weight:var(--ds-w-regular)}
.sched-pro .sp-qhead>button{box-shadow:none;background:transparent;color:var(--ds-icon)}
.sched-pro .sp-queue-states button,.sched-pro .sp-categories button,.sched-pro .sp-qchips button,.sched-pro .sp-qsort button{height:28px;padding:0 var(--ds-s-2);font-size:var(--ds-text-sm);font-weight:var(--ds-w-medium);border:0;border-radius:var(--ds-r-md);background:var(--ds-surface);box-shadow:var(--ds-e-secondary);color:var(--ds-ink-2)}
.sched-pro .sp-qsort button{box-shadow:none;background:transparent}
.sched-pro .sp-queue-states button[aria-pressed=true],.sched-pro .sp-categories button.selected,.sched-pro .sp-qchips button[aria-pressed=true],.sched-pro .sp-qsort button[aria-pressed=true]{background:var(--ds-sel-bg);box-shadow:inset 0 0 0 1px var(--ds-ink-3);color:var(--ds-ink);font-weight:var(--ds-w-semi)}
.sp-queue-states span,.sched-pro .sp-qchips button span{color:var(--ds-ink-3)}
.sched-pro .sp-qchips .sp-qclear{background:var(--ds-surface);color:var(--ds-st-late-ink)}
.sched-pro .sp-qsort{font-size:var(--ds-text-sm);color:var(--ds-ink-3)}
.sched-pro .sp-qsearch input{height:var(--ds-control-h);border:0;box-shadow:inset 0 0 0 1px var(--ds-field);border-radius:var(--ds-r-md);background:var(--ds-surface);font-size:var(--ds-text-base);color:var(--ds-ink)}
.sched-pro .sp-qhint{font-size:var(--ds-text-sm);line-height:var(--ds-lh-sm);color:var(--ds-ink-3)}
.sched-pro .sp-qlist{padding:0}
.sched-pro .sp-qcard{margin:0;border:0;border-radius:0;background:transparent;box-shadow:inset 0 -.5px 0 var(--ds-rule);padding:var(--ds-s-3) var(--ds-s-4)}
.sched-pro .sp-qcard:hover{background:var(--ds-paper-hover);box-shadow:inset 0 -.5px 0 var(--ds-rule)}
.sched-pro .sp-qmeta{font-size:var(--sp-fs-sm);color:var(--ds-ink-3)}
.sched-pro .sp-qcard>strong{font-size:var(--sp-fs-md);line-height:calc(20px * var(--sp-k));font-weight:var(--ds-w-semi);letter-spacing:var(--ds-track-tight);color:var(--ds-ink)}
.sched-pro .sp-qcard>p{font-size:var(--sp-fs-base);line-height:calc(20px * var(--sp-k));color:var(--ds-ink-2)}
.sched-pro .sp-qstatus{font-size:var(--sp-fs-sm);line-height:calc(16px * var(--sp-k));color:var(--ds-ink-2);font-weight:var(--ds-w-medium);gap:6px}
.sp-qstatus>i{width:8px;height:8px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sp-color) 45%,var(--ds-brand-ink))}
.sched-pro .sp-qstatus em{color:var(--ds-st-route-ink);font-size:var(--sp-fs-sm)}
.sched-pro .sp-qcard footer{font-size:var(--sp-fs-sm);color:var(--ds-ink-3)}
.sched-pro .sp-qcard footer button{height:28px;padding:0 var(--ds-s-2);font-size:var(--ds-text-sm);background:var(--ds-surface);box-shadow:var(--ds-e-secondary);color:var(--ds-ink)}
.sched-pro .sp-maintenance-estimate,.sched-pro .sp-maintenance-estimate span,.sched-pro .sp-maintenance-estimate[role="status"]{font-size:var(--sp-fs-sm);color:var(--ds-ink-3)}
.sched-pro .sp-maintenance-estimate strong{font-size:var(--sp-fs-sm);color:var(--ds-ink-2)}
.sp-empty{font-size:var(--ds-text-base);color:var(--ds-ink-2)}

/* Map / new-job handles (bottom of the board): secondary tabs. */

/* Popovers and dialogs: white, radius 8, one pop shadow, no border (§6.4, D8). */
.sp-preview,.sp-display{border:0;border-radius:var(--ds-r-lg);box-shadow:var(--ds-e-pop)}
.sp-preview header small{font-size:var(--ds-text-sm);color:var(--ds-ink-2)}
.sp-preview header h2{font-size:var(--ds-text-d2);line-height:var(--ds-lh-d2);font-weight:var(--ds-w-semi);letter-spacing:var(--ds-track-tight);color:var(--ds-ink)}
.sp-preview header span{font-size:var(--ds-text-sm);color:var(--ds-ink-2)}
.sp-preview header button,.sp-editor>header button,.sp-display header button{box-shadow:none!important;background:transparent!important;color:var(--ds-icon)}
.sp-preview-body{font-size:var(--ds-text-base);line-height:var(--ds-lh-base);color:var(--ds-ink-2)}
.sp-preview-body h3{font-size:var(--ds-text-md);font-weight:var(--ds-w-semi);color:var(--ds-ink)}
.sp-preview-body h4{font-size:var(--ds-text-base);font-weight:var(--ds-w-semi);color:var(--ds-ink)}
.sp-preview-body summary{font-size:var(--ds-text-base);font-weight:var(--ds-w-medium);color:var(--ds-ink)}
.sp-preview-body section>button{background:var(--ds-canvas);box-shadow:none;font-size:var(--ds-text-sm)}
.sp-appointment{background:var(--ds-canvas);border-radius:var(--ds-r-md);color:var(--ds-ink-2)}
.sp-appointment>strong{font-size:var(--ds-text-base);color:var(--ds-ink)}
.sp-appointment>span{font-size:var(--ds-text-sm);color:var(--ds-ink-3)}
.sp-preview-meta{font-size:var(--ds-text-sm)}
.sp-customer{color:var(--ds-ink)}
.sp-preview>footer{background:var(--ds-canvas);border-top:0;box-shadow:inset 0 1px 0 var(--ds-line)}
.sched-pro .sp-preview>footer button,.sp-editor footer button{height:var(--ds-control-h);padding:0 var(--ds-s-3);font-size:var(--ds-text-base)}
.sp-editor-backdrop{background:color-mix(in srgb,var(--ds-brand-ink) 32%,transparent)}
.sp-editor{box-shadow:var(--ds-e-pop)}
.sp-editor>header small{font-size:var(--ds-text-sm);color:var(--ds-ink-2)}
.sp-editor>header h2{font-size:var(--ds-text-d2);line-height:var(--ds-lh-d2);font-weight:var(--ds-w-semi);color:var(--ds-ink)}
.sp-editor form>label,.sp-form-row>label,.sp-display label{font-size:var(--ds-text-sm);font-weight:var(--ds-w-medium);color:var(--ds-ink-2)}
.sp-editor input,.sp-editor select,.sp-approval textarea,.sp-home-address input{min-height:var(--ds-control-h);border:0;box-shadow:inset 0 0 0 1px var(--ds-field);border-radius:var(--ds-r-md);color:var(--ds-ink);font-size:var(--ds-text-base)}
.sp-editor input:focus-visible,.sp-editor select:focus-visible,.sp-approval textarea:focus-visible,.sp-home-address input:focus-visible{box-shadow:inset 0 0 0 1px var(--ds-line);outline:var(--ds-focus-w) solid var(--ds-focus);outline-offset:var(--ds-focus-off)}
.sp-form-note{font-size:var(--ds-text-sm);color:var(--ds-ink-2)}
.sp-form-error{font-size:var(--ds-text-sm);font-weight:var(--ds-w-medium);color:var(--ds-st-late-ink)}
.sp-display header strong{font-size:var(--ds-text-md);font-weight:var(--ds-w-semi)}
.sp-display output{font-size:var(--ds-text-sm);color:var(--ds-ink-2);font-variant-numeric:var(--ds-nums)}
.sched-pro .sp-date-notice{background:var(--ds-tint);color:var(--ds-ink-2);border-bottom:0;font-size:var(--ds-text-sm)}
.sched-pro .sp-date-error{color:var(--ds-ink)}
.sp-drag-ghost{background:var(--ds-chrome);color:var(--ds-action-fg);border-radius:var(--ds-r-md);box-shadow:var(--ds-e-pop);font-size:var(--ds-text-sm)}
.sched-pro .sp-track.drop-target:after{background:var(--ds-now);color:var(--ds-ink);font-size:var(--ds-text-sm);font-weight:var(--ds-w-semi)}
.sp-onsite{background:var(--ds-st-done-bg);color:var(--ds-ink);border-radius:var(--ds-r-md);font-size:var(--ds-text-base)}
.sp-onsite-muted{background:var(--ds-canvas);color:var(--ds-ink-2)}
.sched-pro .sp-queue-states{flex-wrap:wrap;gap:4px}
.sched-pro .sp-queue-states button{flex:1 1 auto;padding:0 6px}
.sched-pro .sp-qstatus,.sched-pro .sp-qcard .sp-qstatus{align-items:center}
.sched-pro .sp-categories,.sched-pro .sp-qchips,.sched-pro .sp-qsort{gap:4px}
/* The live command bar holds 13 controls on one line (owner, 2026-09-21): tighter steps below 1680px. */
@media(max-width:1679px){
  .sp-command{gap:6px;padding-left:var(--ds-s-3);padding-right:var(--ds-s-3)}
  .sp-command>button,.sp-command .sp-date>button[data-sched-nav="today"],.sp-command>details>summary,.sp-command .sp-technician-picker>summary{padding:0 10px}
  .sp-command .sp-date>button[data-sched-nav="prev"],.sp-command .sp-date>button[data-sched-nav="next"]{width:28px}
  .sp-date>strong{font-size:var(--ds-text-p-body);line-height:var(--ds-lh-md)}
  .sp-command{flex-wrap:wrap;row-gap:6px}
  .sp-command>input{flex:1 1 160px;min-width:160px}
}
/* The hovered block's full values rise above the next technician's row. */
.sched-pro .sp-lane:has(.sp-block:hover),.sched-pro .sp-lane:has(.sp-block:focus-visible){position:relative;z-index:7}
/* The reorder arrows sit on the name line only; the meta lines may use that width (no clipped "Overlapping visits"). */
.sched-pro .sp-tech>span:not(.sp-tech-order),.sched-pro .sp-tech>small{margin-right:-26px}
.sp-command>input{min-width:160px}
/* Saved board copy on first open: read-only until the live board lands */
.sched-saved{padding:6px 14px;color:var(--ds-ink-3);font-size:var(--ds-text-sm)}.sched-host[inert]{opacity:.72}
.sp-worknotes{margin-block:var(--ds-s-3)}
.sp-worknotes>h3{margin:0 0 var(--ds-s-2)}
.sp-worknotes-loading{margin:0;color:var(--ds-ink-3);font-size:var(--ds-text-sm)}
.sp-worknotes-empty,.sp-worknotes-error{margin:0;color:var(--ds-ink-3);font-size:var(--ds-text-sm)}
.sp-worknotes .sp-worknotes-retry{margin-block-start:var(--ds-s-1);padding:0;border:0;background:transparent;box-shadow:none;color:var(--ds-ink-3);font-size:var(--ds-text-sm);cursor:pointer;text-decoration:underline}
.sp-worknotes .sp-worknotes-retry:hover{background:transparent}
.sp-worknotes-card{margin-block:var(--ds-s-2);padding:var(--ds-s-2) var(--ds-s-3);border-inline-start:var(--ds-s-1) solid var(--ds-line);border-radius:var(--ds-r-sm);background:var(--ds-canvas)}
.sp-worknotes-this{border-inline-start-color:var(--ds-selection)}
.sp-worknotes-card h4{margin:0;color:var(--ds-ink);font-size:var(--ds-text-sm);line-height:var(--ds-lh-sm);font-weight:var(--ds-w-semi)}
.sp-worknotes-copy{margin-block-start:var(--ds-s-2);margin-block-end:0}
.sp-worknotes-copy>strong{display:block;color:var(--ds-ink-2);font-size:var(--ds-text-sm);font-weight:var(--ds-w-semi)}
.sp-worknotes-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;color:var(--ds-ink-2);white-space:pre-wrap}
.sp-worknotes-open .sp-worknotes-text,.sp-worknotes-full .sp-worknotes-text{display:block;-webkit-line-clamp:unset}
.sp-worknotes .sp-worknotes-toggle{margin-block-start:var(--ds-s-1);padding:0;border:0;background:transparent;box-shadow:none;color:var(--ds-ink-2);font-size:var(--ds-text-sm);cursor:pointer;text-decoration:underline}
.sp-worknotes-more>summary{display:inline-flex;align-items:center;cursor:pointer;list-style:none;margin-block:var(--ds-s-2);padding:var(--ds-s-1) var(--ds-s-2);border-radius:var(--ds-r-md);background:var(--ds-surface);box-shadow:var(--ds-e-secondary);color:var(--ds-ink);font-size:var(--ds-text-sm);font-weight:var(--ds-w-medium)}
.sp-worknotes-more>summary::-webkit-details-marker{display:none}
/* Hovering or focusing a block shows all of it: site, scope and time, never abbreviated (owner 2026-10-14). */
.sched-pro .sp-block:hover,.sched-pro .sp-block:focus-visible{min-width:max-content;max-width:340px;height:auto!important;min-height:calc(var(--sp-row) - 2px);z-index:30!important;overflow:visible}
.sched-pro .sp-block:hover .sp-face,.sched-pro .sp-block:focus-visible .sp-face{display:none}
.sched-pro .sp-block:hover .sp-full,.sched-pro .sp-block:focus-visible .sp-full{display:block;white-space:normal}
.sched-pro .sp-block .sp-full>strong,.sched-pro .sp-block .sp-full>.sp-purpose,.sched-pro .sp-block .sp-full>.sp-blocktime{display:block;white-space:normal;overflow:visible}
.sp-block .sp-jb{height:auto;white-space:normal}
.sp-block .sp-sc-cut{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Full job names (owner 2026-10-14): every line of the name shows; rows grow to fit. */
.sched-pro .sp-block.full{padding:4px 4px!important;white-space:normal}
.sp-block .sp-fullface .sp-sn,.sp-block .sp-fullface .sp-l1,.sp-block .sp-fullface .sp-jb{overflow:visible}
.sp-block .sp-fullface .sp-jb.sp-sc-cut{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
