#signalScheduleSetup{width:min(560px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:24px;border:1px solid #c7d8e4;border-radius:15px;background:#fff;color:#193b51;box-shadow:0 22px 55px rgba(17,43,63,.22);font:inherit}
#signalScheduleSetup::backdrop{background:rgba(15,35,52,.38)}
:is(#signalScheduleSetup,.signal-schedule-overview) form{display:flex;flex-direction:column;max-height:calc(100dvh - 78px);margin:0}
:is(#signalScheduleSetup,.signal-schedule-overview) .schedule-setup-head,:is(#signalScheduleSetup,.signal-schedule-overview) .schedule-setup-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}
:is(#signalScheduleSetup,.signal-schedule-overview) .schedule-setup-head{color:#617b8e;font-size:13px}
:is(#signalScheduleSetup,.signal-schedule-overview) h3{font-size:22px;line-height:1.3;margin:12px 0 20px;color:#193b51}
#signalSetupBody,#scheduleSetupBody{overflow-y:auto;padding:1px 2px}
:is(#signalScheduleSetup,.signal-schedule-overview) label{display:block;font-size:14px}
:is(#signalScheduleSetup,.signal-schedule-overview) select,:is(#signalScheduleSetup,.signal-schedule-overview) input[type=time]{display:block;width:100%;box-sizing:border-box;margin:7px 0 14px;padding:12px;border:1px solid #b9cedb;border-radius:9px;background:#fff;color:#193b51;font:inherit}
:is(#signalScheduleSetup,.signal-schedule-overview) p{font-size:13px;line-height:1.5;color:#617588;margin:12px 0}
:is(#signalScheduleSetup,.signal-schedule-overview) .schedule-setup-choices{display:grid;gap:10px}
:is(#signalScheduleSetup,.signal-schedule-overview) .schedule-setup-choices label{display:flex;gap:12px;align-items:flex-start;padding:13px;border:1px solid #cbdbe5;border-radius:10px}
:is(#signalScheduleSetup,.signal-schedule-overview) .schedule-setup-choices label:has(input:checked){border-color:#218c80;background:#edf7f4}
:is(#signalScheduleSetup,.signal-schedule-overview) input[type=radio],:is(#signalScheduleSetup,.signal-schedule-overview) input[type=checkbox]{width:18px;height:18px;margin:2px 0;flex-shrink:0;accent-color:#168577}
:is(#signalScheduleSetup,.signal-schedule-overview) small{display:block;font-size:12px;color:#617588;margin-top:4px}
:is(#signalScheduleSetup,.signal-schedule-overview) h4{font-size:14px;margin:0 0 10px}
:is(#signalScheduleSetup,.signal-schedule-overview) .schedule-setup-days{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}
:is(#signalScheduleSetup,.signal-schedule-overview) .schedule-setup-days label{display:flex;gap:5px;align-items:center;padding:6px 0}
:is(#signalScheduleSetup,.signal-schedule-overview) .schedule-setup-times{display:grid;grid-template-columns:1fr 1fr;gap:12px}
:is(#signalScheduleSetup,.signal-schedule-overview) [hidden]{display:none!important}
:is(#signalScheduleSetup,.signal-schedule-overview) dl{display:grid;grid-template-columns:100px 1fr;gap:12px;margin:0}
:is(#signalScheduleSetup,.signal-schedule-overview) dt{color:#617588;font-size:13px}:is(#signalScheduleSetup,.signal-schedule-overview) dd{margin:0;font-size:14px;overflow-wrap:anywhere}
:is(#signalScheduleSetup,.signal-schedule-overview) #scheduleSetupError{color:#a42b36}
:is(#signalScheduleSetup,.signal-schedule-overview) .schedule-setup-actions{border-top:1px solid #dce6ed;padding-top:16px;margin-top:8px}
:is(#signalScheduleSetup,.signal-schedule-overview) .btn{min-height:44px}:is(#signalScheduleSetup,.signal-schedule-overview) [data-next]{margin-left:auto}
#signalScheduleSetup.schedule-expanded{width:min(660px,calc(100vw - 28px))}
#signalScheduleSetup.schedule-result{width:min(960px,calc(100vw - 28px))}
:is(#signalScheduleSetup,.signal-schedule-overview) input:not([type=checkbox]):not([type=radio]),:is(#signalScheduleSetup,.signal-schedule-overview) textarea{display:block;width:100%;box-sizing:border-box;margin:7px 0 14px;padding:10px;border:1px solid #b9cedb;border-radius:9px;background:#fff;color:#193b51;font:inherit}
:is(#signalScheduleSetup,.signal-schedule-overview) input[type=color]{height:44px;padding:4px!important}
:is(#signalScheduleSetup,.signal-schedule-overview) details{border-bottom:1px solid #dce6ed;padding:12px 0}
:is(#signalScheduleSetup,.signal-schedule-overview) summary{font-size:14px;font-weight:600;cursor:pointer;padding:8px 0}
:is(#signalScheduleSetup,.signal-schedule-overview) details>label{margin-top:10px}
:is(#signalScheduleSetup,.signal-schedule-overview) fieldset{border:0;padding:0;margin:12px 0}
:is(#signalScheduleSetup,.signal-schedule-overview) legend{font-size:14px;margin-bottom:8px}
:is(#signalScheduleSetup,.signal-schedule-overview) .schedule-output{overflow-x:auto}
:is(#signalScheduleSetup,.signal-schedule-overview) table{width:100%;border-collapse:collapse;font-size:13px}
:is(#signalScheduleSetup,.signal-schedule-overview) th,:is(#signalScheduleSetup,.signal-schedule-overview) td{text-align:left;padding:10px 8px;border-bottom:1px solid #dce6ed}
:is(#signalScheduleSetup,.signal-schedule-overview) #scheduleSetupError{white-space:pre-line}
@media(max-width:480px){:is(#signalScheduleSetup,.signal-schedule-overview) .schedule-setup-times{grid-template-columns:1fr}#signalScheduleSetup{padding:18px}:is(#signalScheduleSetup,.signal-schedule-overview) .schedule-setup-choices .btn{white-space:normal}}
/* Weekly planning surface, scoped to the existing schedule dialog. */
#signalScheduleSetup.schedule-result{width:min(1440px,calc(100vw - 32px));padding:22px;background:#fafbf9}
#signalScheduleSetup.schedule-result h3{margin:4px 0 18px}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-toolbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-navigation{display:flex;align-items:center;gap:9px;flex:1}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-week{display:flex;flex-direction:column;min-width:160px;text-align:center;gap:3px}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-week strong{font-size:20px;color:#15374a}:is(#signalScheduleSetup,.signal-schedule-overview) .sb-week span{font-size:12px;color:#526c7c}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-toolbar select{width:auto;min-width:190px;margin:0;padding:10px;background:white}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-toolbar .btn{font-size:13px!important;padding:10px 16px!important}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:12px;margin:14px 0;color:#3d596b}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-legend span{display:flex;gap:6px;align-items:center}:is(#signalScheduleSetup,.signal-schedule-overview) .sb-legend i{width:10px;height:10px;border-radius:3px}:is(#signalScheduleSetup,.signal-schedule-overview) .sb-legend .sb-mode{margin-left:auto;color:#64736f}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar-wrap{overflow:auto;max-height:57vh;border:1px solid #d7e2e1;border-radius:14px;background:white}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar{min-width:920px;table-layout:fixed;width:100%;border-collapse:separate;border-spacing:0}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar th,:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar td{padding:8px;border-right:1px solid #e5ebe9;border-bottom:1px solid #e5ebe9;vertical-align:top}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar thead th{position:sticky;top:0;z-index:2;background:#eff5f2;text-align:center;padding:12px 8px;color:#355749}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar thead th span,:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar thead th strong{display:block}:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar thead th strong{font-size:14px;margin-top:3px}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar th:first-child{width:175px;position:sticky;left:0;z-index:1;background:#fff}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar thead th:first-child{z-index:3;background:#eff5f2;text-align:left}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar tbody th strong{display:block;font-size:13px;line-height:1.4;margin:5px 0}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar tbody th span,:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar tbody th small{display:block;font-weight:400;font-size:11px;color:#536c7a;margin:4px 0}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar td{height:86px}:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar .sb-today{background:#f0f8f4}:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar .sb-outside{background:#f2f3f2}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-pass{display:block;width:100%;border:0;border-radius:8px;padding:9px 8px;margin:0 0 5px;background:var(--pass-color);color:#fff;text-align:left;cursor:pointer;box-shadow:0 2px 4px #15374a14;line-height:1.4;transition:filter .15s}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-pass:hover{filter:brightness(.9)}:is(#signalScheduleSetup,.signal-schedule-overview) .sb-pass strong{display:block;font-size:12px;color:inherit}:is(#signalScheduleSetup,.signal-schedule-overview) .sb-pass span,:is(#signalScheduleSetup,.signal-schedule-overview) .sb-pass small{display:block;font-size:11px;color:inherit;margin:2px 0;overflow-wrap:anywhere}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-unfilled{background:#fff2df;color:#7b430c;border:1px dashed #d69a4d;box-shadow:none}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-add{display:block;width:100%;min-height:32px;border:1px dashed transparent;background:transparent;color:#628578;font-size:20px;border-radius:8px;cursor:pointer}:is(#signalScheduleSetup,.signal-schedule-overview) .sb-add:hover,:is(#signalScheduleSetup,.signal-schedule-overview) .sb-add:focus-visible{border-color:#89b5a3;background:#eaf6ee}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:14px;font-size:12px;color:#536c7a}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-session-note{font-size:11px;margin:10px 0 0}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-warning,.sb-editor .sb-warning{color:#9b4823}
.sb-editor{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:1px solid #ccdad6;border-radius:18px;background:#fffdf9;color:#193b51;box-shadow:0 24px 80px #0c26364d;font:inherit}
.sb-editor::backdrop{background:#10293666}.sb-editor form{margin:0}.sb-editor-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.sb-editor h3{font-size:22px;margin:0}
.sb-editor-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.sb-editor label{font-size:13px;color:#3b5665;display:block}
.sb-editor input,.sb-editor select{display:block;box-sizing:border-box;width:100%;margin-top:6px;padding:10px 12px;font:inherit;font-size:14px;border:1px solid #b9cec9;border-radius:9px;background:#fff;color:#183a4e;min-height:43px}.sb-editor input[type=color]{padding:4px}.sb-editor input:disabled,.sb-editor select:disabled{background:#f0f3f1;color:#63776c}
.sb-editor .btn{border:1px solid #cadbd5;background:white;color:#183a4e;border-radius:9px;padding:10px 15px;font:inherit;font-size:13px;cursor:pointer;min-height:40px}.sb-editor .btn.dark{background:#143f53;color:white;border-color:#143f53}.sb-editor .btn:hover{filter:brightness(.96)}.sb-editor .sb-delete{color:#a23933;margin-right:auto}
.sb-editor-actions{display:flex;gap:10px;justify-content:flex-end;border-top:1px solid #dce6e0;padding-top:16px;margin-top:16px;flex-wrap:wrap}.sb-palette{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.sb-editor p{font-size:12px;line-height:1.5}.sb-editor [role=alert]:empty{display:none}
@media(max-width:650px){#signalScheduleSetup.schedule-result{padding:14px}:is(#signalScheduleSetup,.signal-schedule-overview) .sb-toolbar{gap:9px}:is(#signalScheduleSetup,.signal-schedule-overview) .sb-navigation{flex-basis:100%}:is(#signalScheduleSetup,.signal-schedule-overview) .sb-legend .sb-mode{margin-left:0}:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar th:first-child{width:135px}:is(#signalScheduleSetup,.signal-schedule-overview) .sb-footer{align-items:flex-start}.sb-editor-fields{grid-template-columns:1fr 1fr}.sb-editor{padding:18px}}
@media(min-width:651px){#signalScheduleSetup.schedule-result form{height:calc(100dvh - 94px)}#signalScheduleSetup.schedule-result #scheduleSetupBody{display:flex;flex-direction:column;min-height:0;flex:1;overflow:hidden}:is(#signalScheduleSetup,.signal-schedule-overview) .sb-calendar-wrap{flex:1;min-height:120px;max-height:none}:is(#signalScheduleSetup,.signal-schedule-overview) .sb-toolbar,:is(#signalScheduleSetup,.signal-schedule-overview) .sb-legend,:is(#signalScheduleSetup,.signal-schedule-overview) .sb-footer,:is(#signalScheduleSetup,.signal-schedule-overview) .sb-session-note{flex-shrink:0}}
.sb-person-name{border:0;background:transparent;color:#123b4b;font:inherit;font-weight:750;text-align:left;padding:0;cursor:pointer;text-decoration:underline;text-decoration-color:#abd0c9;text-underline-offset:4px}.sb-sick-label{display:block;color:#a42c37;background:#fff0ef;border-radius:6px;padding:6px;font-size:12px;font-weight:700}.sb-sick-pass{outline:2px solid #c2414b;outline-offset:1px;opacity:.8}.sb-person{width:min(720px,calc(100vw - 32px))}.sb-person>select{width:100%;padding:10px;margin-bottom:12px}.sb-person-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.sb-person-stats>div{padding:12px;background:#f0f6f3;border-radius:10px}.sb-person-stats small,.sb-person-stats strong{display:block}.sb-person-stats strong{font-size:21px;margin-top:6px}.sb-person-note{font-size:13px;color:#516b75}.sb-care{background:#fff4df;border-left:4px solid #d99726;padding:12px;border-radius:8px}.sb-absence-row{display:flex;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid #dce6e3}.sb-absence-row span{flex:1}.sb-break-row{display:grid;grid-template-columns:1.6fr 1fr .7fr auto;gap:8px;margin:8px 0}.sb-break-row input,.sb-break-row select{min-width:0;width:100%;border:1px solid #c1d5df;padding:9px;border-radius:8px;background:#fff}.sb-editor h4{margin:18px 0 8px}.sb-person details{margin:18px 0}.sb-person form{border-top:1px solid #dce6e3;margin-top:16px;padding-top:4px}@media(max-width:550px){.sb-person-stats{grid-template-columns:repeat(2,1fr)}.sb-break-row{grid-template-columns:1fr 1fr}.sb-absence-row{flex-wrap:wrap}}

/* Schema: tydlig frånvaro och synliga, ändringsbara raster. */
.sb-calendar .sb-sick-label{display:flex;flex-direction:column;gap:5px;width:100%;min-height:64px;text-align:left;padding:12px 10px;border:1px solid #bac6d5;border-left:4px solid #526582;border-radius:10px;background:#edf1f7;color:#233e59;cursor:pointer;box-shadow:0 2px 5px #18354b0a}.sb-sick-label strong{font-size:13px;font-weight:750}.sb-sick-label small{font-size:11px;color:#53687b}.sb-calendar .sb-sick-label:hover{background:#e0e8f1;border-color:#526582}.sb-pass .sb-pass-breaks{display:flex;flex-direction:column;gap:4px;margin-top:7px;padding-top:6px;border-top:1px solid currentColor;font-size:11px;font-weight:650}.sb-pass-breaks>span{display:block}

.schedule-overview-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:18px 0}.schedule-overview-actions select{padding:12px;border:1px solid #c7d8e4;border-radius:9px;font:inherit;color:#193b51}.signal-schedule-overview{margin-top:20px;color:#193b51}.signal-schedule-overview .sb-grid-wrap{max-height:none}

.schedule-overview-actions[hidden],.schedule-overview-actions [hidden]{display:none!important}

.sb-editor .sb-worked-check{display:flex;align-items:flex-start;gap:10px;margin:16px 0;line-height:1.5}.sb-editor .sb-worked-check input[type=checkbox]{appearance:auto;display:block;flex:0 0 18px;width:18px;height:18px;min-height:18px;margin:1px 0 0;padding:0;accent-color:#168577}

#signalSchedule #signalCreateSchedule,#signalSchedule .schedule-overview-actions>button{box-sizing:border-box;width:180px;min-height:50px;margin:0;padding:12px 16px}#signalSchedule .schedule-overview-actions{margin:8px 0 18px;align-items:flex-start;flex-direction:column;gap:8px}
.schedule-publication{margin:16px 0;color:#193b51}.schedule-publication-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.schedule-publication-actions .btn{margin:0}.schedule-publication-head{display:flex;align-items:center;justify-content:space-between;gap:20px}#schedulePublicationDialog{width:min(640px,calc(100vw - 32px));max-height:85vh;overflow:auto;box-sizing:border-box;border:1px solid #c7d8e4;border-radius:20px;padding:24px;color:#193b51;background:#fff}#schedulePublicationDialog::backdrop{background:#0b1a2e66}#schedulePublicationDialog h3{margin:0}#schedulePublicationDialog li{padding:8px 0;border-bottom:1px solid #e1eaf0;overflow-wrap:anywhere}#schedulePublicationDialog ul{padding-left:20px}#schedulePublicationDialog p{line-height:1.6}

#signalScheduleSetup .schedule-period-places label{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 0}#signalScheduleSetup .schedule-period-places .schedule-place-blocked{color:#77818a;background:#f1f3f4;border-radius:8px;padding:10px;margin:4px 0}#signalScheduleSetup .schedule-place-blocked small{flex-basis:100%;margin-left:26px}#signalScheduleSetup button:disabled{opacity:.45;cursor:not-allowed}

.signal-schedule-overview .sb-footer{flex-wrap:wrap}.signal-schedule-overview .sb-footer .schedule-publication{margin:0}.signal-schedule-overview .sb-footer .schedule-publication-actions{margin:0}

:is(#signalScheduleSetup,.signal-schedule-overview) .sb-pass[draggable=true]{cursor:grab}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-dragging{opacity:.5}
:is(#signalScheduleSetup,.signal-schedule-overview) .sb-drop-target{background:#d9f2ed;box-shadow:inset 0 0 0 2px #168b7e}

.sb-person [hidden]{display:none!important}
.sb-replacements{margin:18px 0;padding:16px;border:1px solid #c9dcd8;border-radius:12px;background:#f4f9f7}.sb-replacements h4{margin-top:0}.sb-replacements p{font-size:13px;line-height:1.5}.sb-replacement-row{padding:14px 0;border-top:1px solid #d8e4e0}.sb-replacement-row>strong,.sb-replacement-row>small{display:block}.sb-replacement-row>small{margin:5px 0;color:#526b74}.sb-replacement-row .sb-worked-check{font-size:13px;margin:12px 0}.sb-replacement-row button:disabled{opacity:.5;cursor:not-allowed}

.sb-break-row{grid-template-columns:1.3fr 1.2fr 1fr .7fr auto;align-items:end;padding:12px;background:#f4f8f7;border:1px solid #dce6e3;border-radius:12px}.sb-break-row label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:#345463;min-width:0}.sb-break-row label:has(input[hidden]){display:none}.sb-break-row:has(input[hidden]){grid-template-columns:1.3fr 1.2fr .7fr auto}.sb-break-row input[hidden]{display:none}@media(max-width:600px){.sb-break-row,.sb-break-row:has(input[hidden]){grid-template-columns:1fr 1fr}}

.schedule-saved-list{margin-top:24px;border-top:1px solid #dce6e3;padding-top:16px}.schedule-saved-list h4{margin:0 0 12px}.schedule-saved-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;margin:8px 0;border:1px solid #d4e2e9;border-radius:12px;background:#f7faf9}.schedule-saved-card strong,.schedule-saved-card span{display:block}.schedule-saved-card span{margin-top:5px;font-size:14px;color:#516b75}.schedule-saved-list>p{font-size:14px;color:#516b75}.schedule-overview-actions select{max-width:100%}@media(max-width:550px){.schedule-saved-card{align-items:flex-start;flex-direction:column}}

/* Conditional duty fields must stay hidden despite the form grid label rules. */
.sb-editor-fields > label[hidden], .schedule-setup-times[hidden], .schedule-setup-times > label[hidden] { display: none !important; }
