:root{--brand:#2b5bd7;--brand-600:#2149b4;--brand-50:#eef3ff;--brand-100:#dbe5ff;--bg:#f4f6f9;--surface:#fff;--surface-2:#f8fafc;--surface-3:#f1f4f8;--border:#e3e7ee;--border-strong:#cfd6e1;--text:#121a2b;--text-2:#3e4a5e;--muted:#6a768a;--red:#d1342a;--red-soft:#fdeeec;--yellow:#a15c07;--yellow-soft:#fff6e0;--green:#0f7a4a;--green-soft:#e7f6ee;--topbar-bg:#ffffffeb;--primary:var(--brand);--primary-text:#fff;--error:var(--red);--notice-bg:var(--yellow-soft);--r:8px;--r-lg:12px;--shadow-sm:0 1px 2px #121a2b0d;--shadow:0 1px 3px #121a2b0f, 0 1px 2px #121a2b0a;--ring:0 0 0 3px #2b5bd738;--topbar-h:56px;--sidebar-w:232px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Inter,Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic UI,system-ui,sans-serif;font-size:14px;line-height:1.5}@media (prefers-color-scheme:dark){:root{--brand:#6f97ff;--brand-600:#8eadff;--brand-50:#1d2741;--brand-100:#2a3963;--bg:#12151b;--surface:#1b1f27;--surface-2:#20252e;--surface-3:#262c37;--border:#2f3643;--border-strong:#3c4555;--text:#e8ebf1;--text-2:#c3cad6;--muted:#93a0b3;--red:#ff8a80;--red-soft:#3a2224;--yellow:#f2c46d;--yellow-soft:#3a3220;--green:#6fd3a0;--green-soft:#1d3428;--topbar-bg:#1b1f27eb;--primary-text:#0b1220}}*{box-sizing:border-box}body{background:var(--bg);margin:0}a{color:var(--brand)}a:hover{color:var(--brand-600)}.icon{vertical-align:middle;flex-shrink:0;display:inline-block}h1{letter-spacing:-.01em;margin:0 0 14px;font-size:22px;font-weight:700;line-height:1.3}h2{margin:22px 0 10px;font-size:16px;font-weight:700}h3{font-size:14px;font-weight:600}.muted{color:var(--muted)}.small{font-size:12px}.center{text-align:center}.spacer{flex:1}button,a.button{font:inherit;border-radius:var(--r);border:1px solid var(--border-strong);background:var(--surface);min-height:34px;color:var(--text-2);cursor:pointer;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:600;line-height:1;text-decoration:none;transition:background .12s,border-color .12s,color .12s,box-shadow .12s;display:inline-flex}button:hover:not(:disabled),a.button:hover{background:var(--surface-2);border-color:var(--muted);color:var(--text)}button:focus-visible,a:focus-visible{box-shadow:var(--ring);outline:none}button:disabled{opacity:.45;cursor:not-allowed}button.primary,a.button.primary{background:var(--brand);border-color:var(--brand);color:var(--primary-text)}button.primary:hover:not(:disabled),a.button.primary:hover{background:var(--brand-600);border-color:var(--brand-600);color:var(--primary-text)}button.ghost{box-shadow:none;background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){background:var(--surface-3)}button.icon-btn{width:34px;padding:0}button.link{box-shadow:none;min-height:0;color:var(--brand);background:0 0;border:none;padding:0;font-weight:500;text-decoration:underline}label{color:var(--text-2);flex-direction:column;gap:6px;font-size:12px;font-weight:600;display:flex}label.check{flex-direction:row;align-items:center;gap:6px;font-size:13px;font-weight:500}input,select,textarea{font:inherit;color:var(--text);border:1px solid var(--border-strong);border-radius:var(--r);background:var(--surface);padding:7px 10px;font-size:14px;font-weight:400;transition:border-color .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:var(--ring);outline:none}input[type=checkbox],input[type=radio]{accent-color:var(--brand);padding:0}select{min-height:36px}select:not([multiple]){appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237b8698' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:12px;padding-right:34px}table.compact select:not([multiple]),.topbar select:not([multiple]){background-position:right 8px center;padding-right:26px}fieldset{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface-2);flex-direction:column;gap:10px;padding:14px 16px;display:flex}legend{padding:0 6px;font-weight:700}.form-sections{flex-direction:column;gap:16px;display:flex}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:18px;display:flex}.inline-form h2{width:100%;margin-top:0}.inline-form .full{width:100%}.inline-form .form-help{margin:-4px 0 0}.inline-form .email-input{width:320px;max-width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:22px}.card.narrow{flex-direction:column;gap:14px;max-width:420px;margin:40px auto;display:flex}.title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.notice{background:var(--notice-bg);color:var(--text);border:1px solid var(--border);border-radius:var(--r);margin:0 0 12px;padding:10px 12px}.error{color:var(--error);margin:0}.temp-password{letter-spacing:.05em;-webkit-user-select:all;user-select:all;font-size:1.2rem}.link-list{flex-direction:column;gap:10px;padding:0;list-style:none;display:flex}.back-link{align-items:center;gap:4px;margin-bottom:8px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.back-link .icon{width:15px;height:15px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--surface-3);border:1px solid var(--border);min-height:26px;color:var(--text-2);border-radius:999px;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.swatch{border:1px solid var(--border);vertical-align:middle;border-radius:3px;width:12px;height:12px;display:inline-block}.table-wrap{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}table:not(.schedule-grid) th,table:not(.schedule-grid) td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;vertical-align:middle;padding:10px 14px}table:not(.schedule-grid) thead th{color:var(--muted);background:var(--surface-2);font-size:12px;font-weight:600}table:not(.schedule-grid) tbody tr:last-child td{border-bottom:0}table:not(.schedule-grid) tbody tr:hover td{background:var(--surface-2)}tr.inactive td{color:var(--muted)}tr.selected td{background:var(--brand-50)}td.actions{gap:6px;display:flex}td.off{color:var(--muted)}th.num,td.num{text-align:right}table.compact th,table.compact td{padding:4px 6px}table.compact input[type=number]{width:4.5em}table.compact select{min-width:4.5em}.pill{background:var(--surface-3);min-height:22px;color:var(--text-2);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:0 9px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.pill.ok{background:var(--green-soft);color:var(--green)}.pill.bad{background:var(--red-soft);color:var(--red)}.pill.warn{background:var(--yellow-soft);color:var(--yellow)}.pill.info{background:var(--brand-50);color:var(--brand)}.run-progress{flex-direction:column;gap:8px;display:flex}.progress{background:var(--surface-3);border-radius:999px;height:6px;overflow:hidden}.progress>div{background:var(--brand);border-radius:999px;height:100%;transition:width .6s}.topbar{z-index:30;height:var(--topbar-h);background:var(--topbar-bg);-webkit-backdrop-filter:saturate(1.4)blur(8px);backdrop-filter:saturate(1.4)blur(8px);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:0 20px;display:flex;position:sticky;top:0}.tb-brand{align-items:center;gap:10px;min-width:0;display:flex}.tb-title{letter-spacing:-.01em;white-space:nowrap;font-size:15px;font-weight:700}.tb-sub{color:var(--muted);white-space:nowrap;font-size:11px}.tb-divider{background:var(--border);width:1px;height:24px}.lang{color:var(--muted);white-space:nowrap;flex-direction:row;align-items:center;gap:8px;font-weight:500}.topbar select{min-height:32px;font-size:13px}.usermenu{align-items:center;gap:10px;min-width:0;display:flex}.usermenu .who{flex-direction:column;min-width:0;line-height:1.25;display:flex}.usermenu .who b{text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:13px;overflow:hidden}.usermenu .who span{color:var(--muted);font-size:11px}.avatar{background:linear-gradient(135deg, var(--brand), #6a8cf0);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:inline-flex}.shell{min-height:calc(100vh - var(--topbar-h));display:flex}.sidenav{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);top:var(--topbar-h);height:calc(100vh - var(--topbar-h));flex-direction:column;flex-shrink:0;padding:16px 12px;transition:width .15s;display:flex;position:sticky;overflow-y:auto}.nav-foot{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:auto;padding-top:10px;display:flex}.nav-toggle{text-align:left;width:100%;min-height:36px;box-shadow:none;color:var(--muted);background:0 0;border:0;justify-content:flex-start;align-items:center;gap:10px;padding:0 10px;font-weight:500;display:flex}.nav-toggle:hover{background:var(--surface-3);color:var(--text)}.nav-version{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;padding:0 10px 2px;font-size:11px}@media (width>=768px){.nav-collapsed{--sidebar-w:68px}.nav-collapsed .sidenav{padding:14px 10px}.nav-collapsed .sidenav a,.nav-collapsed .nav-toggle{justify-content:center;padding:0}.nav-collapsed .sidenav .nav-label,.nav-collapsed .nav-section{display:none}.nav-collapsed .nav-group+.nav-group{border-top:1px solid var(--border);margin-top:6px;padding-top:6px}.nav-collapsed .sidenav a.active:before{left:-10px}.nav-collapsed .nav-version{text-align:center;padding:0;font-size:10px}}.nav-section{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:14px 10px 6px;font-size:11px;font-weight:700}.nav-group:first-child .nav-section{margin-top:2px}.sidenav a{border-radius:var(--r);min-height:38px;color:var(--text-2);align-items:center;gap:10px;margin-bottom:2px;padding:0 10px;font-weight:500;text-decoration:none;display:flex;position:relative}.sidenav a .icon{color:var(--muted)}.sidenav a:hover{background:var(--surface-3);color:var(--text)}.sidenav a.active{background:var(--brand-50);color:var(--brand);font-weight:700}.sidenav a.active .icon{color:var(--brand)}.sidenav a.active:before{content:"";background:var(--brand);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-12px}.sidenav .nav-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.content{flex:1;min-width:0;padding:24px 28px 40px}.content>.card:not(.narrow){max-width:1200px}.signed-out .content{padding-top:8vh}@media (width<=1180px){.is-admin{--sidebar-w:68px}.is-admin .sidenav{padding:14px 10px}.is-admin .sidenav a{justify-content:center;padding:0}.is-admin .sidenav .nav-label,.is-admin .nav-section{display:none}.is-admin .nav-group+.nav-group{border-top:1px solid var(--border);margin-top:6px;padding-top:6px}.is-admin .sidenav a.active:before{left:-10px}.is-admin .nav-toggle{display:none}.is-admin .nav-version{text-align:center;padding:0;font-size:10px}.is-employee{--sidebar-w:200px}.usermenu .who,.tb-sub{display:none}}@media (width<=767px){.topbar{gap:8px;padding:0 12px}.tb-brand{flex:0 auto}.tb-brand>div{min-width:0}.tb-title{text-overflow:ellipsis;overflow:hidden}.topbar .spacer,.tb-divider{display:none}.lang{gap:0;margin-left:auto;font-size:0}.lang select{font-size:13px}.content,.card{padding:16px}.is-employee .sidenav{z-index:30;width:auto;height:auto;padding:0 0 env(safe-area-inset-bottom);border-right:0;border-top:1px solid var(--border);background:var(--topbar-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;position:fixed;inset:auto 0 0}.is-employee .nav-group{display:contents}.is-employee .sidenav a{background:0 0;border-radius:0;flex-direction:column;flex:1;gap:3px;min-height:56px;margin:0;padding:6px 2px;font-size:10.5px;font-weight:600}.is-employee .sidenav .nav-label{text-align:center;flex:none;max-width:100%;display:block}.is-employee .sidenav a.active{background:0 0}.is-employee .sidenav a.active:before{display:none}.is-employee .content{padding-bottom:84px}.is-employee .nav-foot{display:none}}.content>.card.schedule-page:not(.narrow),.content>.card.full-width:not(.narrow){max-width:none}.content>.card.request-page.full-width{margin:0}.schedule-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.schedule-head h1{margin-right:auto}.month-switch{align-items:center;gap:6px;display:flex}.badge{background:var(--surface-3);min-height:22px;color:var(--text-2);border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.badge.status-published{background:var(--green-soft);color:var(--green)}.badge.status-draft{background:var(--brand-50);color:var(--brand)}.schedule-legend{flex-wrap:wrap;gap:14px;margin:8px 0 12px;padding:0;list-style:none;display:flex}.schedule-wrap{border:1px solid var(--border);border-radius:6px;max-height:75vh;overflow:auto}table.schedule-grid{border-collapse:separate;border-spacing:0;font-size:12px}.schedule-grid th,.schedule-grid td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-align:center;white-space:nowrap;padding:2px 3px}.schedule-grid thead th{z-index:2;background:var(--surface);position:sticky;top:0}.schedule-grid th.name{z-index:1;background:var(--surface);text-align:left;min-width:9em;padding:2px 8px;position:sticky;left:0}.schedule-grid thead th.name{z-index:3}.schedule-grid th.day{min-width:2.4em;font-weight:600}.schedule-grid th.day .wd{font-size:11px;font-weight:400}.schedule-grid th.day.sat{color:#1f5fbf}.schedule-grid th.day.sun,.schedule-grid th.day.holiday{color:#c62828}.schedule-grid .markers{justify-content:center;gap:1px;min-height:14px;display:flex}.marker{color:#fff;border-radius:3px;min-width:13px;padding:0 2px;font-size:10px;font-weight:600;line-height:13px;display:inline-block}.marker.holiday{background:#c62828}.marker.peak{background:#e65100}.marker.all-hands{background:#6a1b9a}.marker.event{background:#00838f}.schedule-grid td.cell{color:#1d2330;min-width:2.4em;height:22px}.schedule-grid td.cell:not([style]){color:var(--text)}.schedule-grid td.cell.off-day:not([style]){background:#7f7f7f14}.schedule-grid .group-row th{text-align:left;background:var(--bg);padding:4px 8px;font-weight:600;position:sticky;left:0}.schedule-grid td.total,.schedule-grid th.total{background:var(--surface)}.schedule-grid td.total.warn{color:#b26a00;font-weight:700}.schedule-grid td.slot{font-variant-numeric:tabular-nums;color:var(--muted)}.slot.staff_short{color:#b42318;background:#fde2e1;font-weight:700}.slot.lead_short{color:#8a5a00;background:#fff3c4;font-weight:700}.schedule-legend .slot{border-radius:3px;padding:0 4px;display:inline-block}.edit-toolbar{flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0;display:flex}.toolbar-sep{background:var(--border);width:1px;height:22px;margin:0 4px}.pending-count{color:var(--primary);font-size:.85rem;font-weight:600}.schedule-layout{align-items:flex-start;gap:12px;display:flex}.schedule-layout .schedule-wrap{flex:1;min-width:0}.violation-list{border:1px solid var(--border);border-radius:6px;flex-shrink:0;width:300px;max-height:75vh;padding:8px 10px;overflow:auto}.violation-list h2{margin:0 0 4px;font-size:1rem}.violation-list ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.violation-list .finding{text-align:left;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);cursor:pointer;border-left-width:4px;border-radius:4px;flex-direction:column;align-items:flex-start;gap:1px;padding:4px 6px;font-size:12px;display:flex}.violation-list .finding.violation{border-left-color:#c62828}.violation-list .finding.warning{border-left-color:#e0a800}.finding-where{color:var(--muted);font-weight:600}.delta .added{color:#c62828;font-weight:700}.delta .removed{color:#2e7d32;font-weight:700}@media (width<=1200px){.schedule-layout{flex-direction:column}.violation-list{width:100%;max-height:40vh}}.violation-head{align-items:center;gap:6px;display:flex}.violation-head h2{flex:1}.violation-list.closed{width:46px;padding:6px 4px;overflow:visible}.violation-list.closed .violation-head{justify-content:center}.violation-strip{flex-direction:column;align-items:center;gap:6px;margin-top:8px;display:flex}.violation-strip .count{text-align:center;border-radius:999px;min-width:30px;padding:2px 4px;font-size:11px;font-weight:700}.violation-strip .count.violation{background:var(--red-soft);color:var(--red)}.violation-strip .count.warning{background:var(--yellow-soft);color:var(--yellow)}@media (width<=1200px){.violation-list.closed{width:100%}.violation-strip{flex-direction:row;justify-content:center}}.schedule-grid.unpinned .total{box-shadow:none;position:static}.pin-totals{margin:6px 0}.schedule-grid td.cell{cursor:pointer;-webkit-user-select:none;user-select:none}.schedule-grid td.cell.v-violation,.legend-cell.v-violation{box-shadow:inset 0 0 0 2px #c62828}.schedule-grid td.cell.v-warning,.legend-cell.v-warning{box-shadow:inset 0 0 0 2px #e0a800}.schedule-grid td.cell.locked:after,.legend-cell.locked:after{content:"🔒";vertical-align:top;margin-left:1px;font-size:8px}.schedule-grid td.cell.edited{font-weight:700;text-decoration:underline}.schedule-grid td.cell.selected{outline:2px solid var(--primary);outline-offset:-2px}.schedule-grid th.v-violation{box-shadow:inset 0 -3px #c62828}.schedule-grid th.v-warning{box-shadow:inset 0 -3px #e0a800}.legend-cell{text-align:center;border:1px solid var(--border);border-radius:3px;min-width:20px;padding:0 4px;display:inline-block}.schedule-grid th.total{white-space:normal;max-width:4.6em;font-size:11px;line-height:1.15}.schedule-grid .total{z-index:1;width:46px;min-width:46px;max-width:46px;position:sticky}.schedule-grid thead th.total{z-index:3}.schedule-grid tr>.total:last-child{right:0}.schedule-grid tr>.total:nth-last-child(2){right:46px}.schedule-grid tr>.total:nth-last-child(3){right:92px}.schedule-grid tr>.total:nth-last-child(4){right:138px}.schedule-grid tr>.total:nth-last-child(5){box-shadow:-2px 0 0 var(--border);right:184px}.publish-bar{flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 8px;display:flex}.publish-warning{color:#7a1a12;background:#fdeeec;border:1px solid #eaa59d;border-radius:6px;flex-basis:100%;padding:8px 12px}.publish-warning p{margin:0 0 6px}.publish-warning textarea{width:100%;min-height:3em;margin-top:4px;display:block}.row-actions{gap:6px;margin-top:6px;display:flex}.schedule-grid td.cell.changed,.legend-cell.changed{background-image:linear-gradient(225deg,#c62828 6px,#0000 6px)}.small-badge{margin-left:6px;padding:0 6px;font-size:.7rem}.history{margin-top:12px}.history summary{cursor:pointer;font-weight:600}.my-schedule tr.me th,.my-schedule tr.me td{border-top:2px solid var(--primary);border-bottom:2px solid var(--primary)}.my-schedule td.cell{cursor:default}.survey-page{max-width:760px;margin:0 auto}.survey-header{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding-bottom:8px;display:flex}.survey-instructions{white-space:pre-wrap}.survey-nav{background:var(--surface);border-top:1px solid var(--border);justify-content:space-between;gap:8px;margin-top:12px;padding:10px 0;display:flex;position:sticky;bottom:0}.survey-nav .primary{margin-left:auto}.survey-counter{font-weight:700}.survey-counter.full{color:#b26a00}.survey-days{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.survey-day{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.survey-day.off-day{background:#7f7f7f0f}.survey-day.requested_off{border-left:4px solid #c62828}.survey-day.paid_leave{border-left:4px solid #2e7d32}.survey-date{align-items:baseline;gap:8px;font-weight:600;display:flex}.survey-date .sun{color:#c62828}.survey-date .sat{color:#1f5fbf}.survey-note{color:var(--muted);font-size:.85rem}.survey-note.discourage{color:#8a5300}.survey-note .hint{font-weight:700}.survey-day .seg{gap:0;display:inline-flex}.survey-day .seg button{border-radius:0}.survey-day .seg button:first-child{border-radius:6px 0 0 6px}.survey-day .seg button:last-child{border-radius:0 6px 6px 0}.survey-day .seg button.on{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.survey-more summary{cursor:pointer;color:var(--muted);font-size:.85rem}.survey-row{flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0;display:flex}.survey-text{flex-direction:column;gap:4px;margin-top:12px;display:flex}.survey-text textarea{min-height:4em}.survey-summary{grid-template-columns:max-content 1fr;gap:4px 14px;display:grid}.survey-summary dt{font-weight:600}.survey-summary dd{margin:0}.survey-cards{flex-direction:column;gap:10px;padding:0;list-style:none;display:flex}.survey-card{border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px 12px;display:flex}.survey-card .button{margin-left:auto}.survey-settings{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:end;gap:10px;margin-bottom:12px;display:grid}.survey-settings label{flex-direction:column;gap:4px;display:flex}.survey-notes-editor{margin-bottom:16px}.survey-notes-editor summary{cursor:pointer;font-weight:600}.mail-body{white-space:pre-wrap;background:var(--bg);border-radius:6px;margin:0;padding:8px 10px;font-family:inherit}.downloads{flex-wrap:wrap;gap:6px;display:inline-flex}.request-page{max-width:760px;margin:0 auto}.request-form{flex-direction:column;gap:10px;margin:12px 0 20px;display:flex}.request-form label{flex-direction:column;gap:4px;display:flex}.request-form textarea{min-height:3em}.request-row{flex-wrap:wrap;gap:10px;display:flex}.request-list{flex-direction:column;gap:10px;padding:0;list-style:none;display:flex}.request-card{border:1px solid var(--border);border-radius:8px;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;display:flex}.request-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.request-impact{border-top:1px dashed var(--border);width:100%;margin-top:6px;padding-top:6px}.request-impact h3{margin:8px 0 4px;font-size:.95rem}.request-impact td.slot.staff_short{color:#b42318;background:#fde2e1;font-weight:700}.request-impact td.slot.lead_short{color:#8a5a00;background:#fff3c4;font-weight:700}.request-note{flex-direction:column;gap:4px;margin-top:8px;display:flex}.request-enter{margin-top:20px}.request-enter summary{cursor:pointer;font-weight:600}.request-enter>label{flex-direction:column;gap:4px;max-width:320px;margin:8px 0;display:flex}.survey-history{grid-template-columns:260px 1fr;align-items:start;gap:20px;display:grid}@media (width<=760px){.survey-history{grid-template-columns:1fr}}.survey-versions{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.survey-versions button{text-align:left;flex-wrap:wrap;align-items:center;gap:4px 8px;width:100%;padding:8px 10px;display:flex}.survey-versions button.on{border-color:var(--primary)}.schedule-grid td.wiz-cell{cursor:default;color:var(--muted);background:var(--surface-2);font-variant-numeric:tabular-nums}.home-hello{margin:0 0 14px}.home-cards{grid-template-columns:repeat(auto-fill,minmax(280px,320px));align-items:start;gap:14px;display:grid}.home-card{flex-direction:column;gap:10px;padding:18px;display:flex}.home-card h2{margin:0;font-size:13px;font-weight:700}.home-card p{margin:0}.home-card>a{font-size:13px;font-weight:500;text-decoration:none}.next-shifts{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.next-shifts li{border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;align-items:center;gap:12px;padding:10px 8px;display:flex}.next-shifts li:last-child{border-bottom:0}.next-shifts li.today{background:var(--brand-50);border-radius:var(--r)}.next-shifts .ns-day{flex-shrink:0;width:3.4em}.next-shifts .ns-code{border:1px solid #121a2b1f;min-width:44px}.next-shifts .pill{flex-shrink:0}.ns-day{font-variant-numeric:tabular-nums;width:42px;font-weight:600}.ns-code{text-align:center;background:var(--surface-3);color:#1d2330;border-radius:6px;min-width:36px;padding:2px 6px;font-weight:700}.seg-tabs{background:var(--surface-3);border:1px solid var(--border);border-radius:10px;gap:2px;margin:4px 0 12px;padding:3px;display:inline-flex}.seg-tabs button{min-height:28px;box-shadow:none;color:var(--muted);background:0 0;border:0;font-size:12px}.seg-tabs button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #121a2b1f}.content>.card.my-schedule-page.mine-view:not(.narrow){max-width:1100px}.tabs{border-bottom:1px solid var(--border);align-items:flex-end;gap:2px;margin:6px 0 14px;display:flex}.tabs button{box-shadow:none;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;min-height:0;padding:8px 14px;font-weight:600}.tabs button:hover:not(:disabled){color:var(--text);background:0 0}.tabs button.on{border-bottom-color:var(--brand);color:var(--brand)}.tabs .icon-btn{width:30px;padding:8px 0;font-size:18px;line-height:1}.my-status{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;font-size:12px;display:flex}.badge-chg{color:#6d3fd1;background:#efe9ff;border-radius:999px;align-items:center;padding:1px 7px;font-size:10px;font-weight:700;display:inline-flex}.my-cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.my-cal-head{color:var(--muted);text-align:center;padding:4px 0;font-size:12px;font-weight:600}.my-day{border:1px solid var(--border);background:var(--surface);min-height:84px;box-shadow:var(--shadow-sm);border-radius:10px;flex-direction:column;gap:5px;padding:8px;display:flex}.my-day.past{opacity:.5}.my-day.today{border-color:var(--brand);box-shadow:var(--ring)}.my-date{color:var(--text-2);flex-wrap:wrap;align-items:baseline;gap:5px;font-size:12px;font-weight:600;display:flex}.my-date.sun{color:var(--red)}.my-date.sat{color:var(--brand)}.my-md,.my-wd{display:none}.my-hol{color:var(--red);font-size:10px;font-weight:500}.my-today{color:var(--brand);font-size:11px}.my-code{background:var(--surface-3);color:#1d2638;white-space:nowrap;border:1px solid #121a2b14;border-radius:6px;justify-content:center;align-items:center;height:24px;padding:0 7px;font-size:12px;font-weight:700;display:flex}.my-time{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:6px;font-size:11px;display:flex}@media (width<=767px){.my-cal{border:1px solid var(--border);border-radius:var(--r-lg);flex-direction:column;gap:0;display:flex;overflow:hidden}.my-cal-head,.my-cal-pad{display:none}.my-day{border:0;border-bottom:1px solid var(--border);min-height:0;box-shadow:none;border-radius:0;flex-direction:row;align-items:center;gap:10px}.my-day:last-child{border-bottom:0}.my-date{flex-wrap:nowrap;width:84px}.my-md,.my-wd{display:inline}.my-wd{font-weight:400}.my-hol{display:none}.my-code{min-width:44px}}.kpis{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:8px 0 6px;display:grid}.kpi{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);flex-direction:column;gap:6px;padding:16px;display:flex}.kpi.attention{border-color:var(--yellow)}.kpi.bad{border-color:var(--red)}.kpi-top{justify-content:space-between;align-items:center;display:flex}.kpi-label{color:var(--muted);font-size:12px;font-weight:600}.kpi-icon{background:var(--brand-50);width:34px;height:34px;color:var(--brand);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.kpi-icon.red{background:var(--red-soft);color:var(--red)}.kpi-icon.green{background:var(--green-soft);color:var(--green)}.kpi-icon.yellow{background:var(--yellow-soft);color:var(--yellow)}.kpi-value{letter-spacing:-.02em;font-size:26px;font-weight:700;line-height:1.15}.kpi-value.kpi-text{font-size:20px}.kpi-value small{color:var(--muted);margin-left:4px;font-size:14px;font-weight:600}.kpi-hint{color:var(--muted);font-size:12px}.kpi a{margin-top:auto;font-size:13px;font-weight:600}.quick{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;display:grid}.quick a{border-radius:var(--r);border:1px solid var(--border);color:var(--text);background:var(--surface);align-items:center;gap:12px;padding:12px;text-decoration:none;display:flex}.quick a:hover{border-color:var(--brand-100);background:var(--brand-50)}.quick .q-text{flex-direction:column;flex:1;display:flex}.quick .q-text span{color:var(--muted);font-size:12px}.dash{flex-direction:column;gap:14px;display:flex}.dash-head{align-items:center;gap:12px;display:flex}.dash-head h1{margin:0}.dash-sub{margin:-8px 0 0}.dash .kpis{margin:0}.dash .kpi{box-shadow:var(--shadow-sm)}.dash .kpi-value small{font-size:15px}.dash .kpi-hint .progress{margin:6px 0 10px}.kpi .kpi-link{align-items:center;gap:4px;margin-top:auto;padding-top:4px;text-decoration:none;display:inline-flex}.kpi .kpi-link .icon{width:14px;height:14px}.dash-cols{grid-template-columns:minmax(0,2fr) minmax(300px,1fr);align-items:start;gap:14px;display:grid}@media (width<=960px){.dash-cols{grid-template-columns:1fr}}.dash-panel{padding:18px}.dash-panel h2{margin:0 0 12px;font-size:15px}.dash-panel ul.chips{margin:0;padding:0;list-style:none}.dash-panel .quick{grid-template-columns:1fr}.dash-panel .quick .icon:last-child{color:var(--muted)}.dash-health{margin-top:14px}.dash-health h2{margin-top:0;font-size:15px}.dash-health dl{flex-wrap:wrap;gap:4px 12px;margin:0;display:flex}.dash-health dt{font-weight:600}.dash-health dd{margin:0}.live-page{flex-direction:column;gap:14px;display:flex}.live-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.live-head h1{margin:0}.live-clock{color:var(--text-2);background:var(--surface);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:999px;align-items:baseline;gap:6px;padding:4px 12px;font-size:14px;display:inline-flex}.live-clock b{color:var(--text);font-size:18px}.live-dot:before{content:"●";margin-right:5px;font-size:9px}.live-demo{color:var(--muted);white-space:nowrap;flex-direction:row;align-items:center;gap:8px;margin:0;font-size:12px;font-weight:500;display:inline-flex}.live-demo input{width:auto}.live-page .kpis{margin:0}.live-cols{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));align-items:start;gap:14px;display:grid}.live-panel{margin:0}.live-panel h2{margin:0 0 6px;font-size:15px}.live-list{margin:0;padding:0;list-style:none}.live-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:9px 0;display:flex}.live-row:last-child{border-bottom:0}.live-row .ns-code{border:1px solid #121a2b1f;min-width:44px;font-size:12px}.live-name{flex-direction:column;flex:1;min-width:0;display:flex}.live-name b{font-weight:600}.live-time{font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;font-size:13px;font-weight:600;display:flex}.live-time .muted{font-weight:500}.tl{margin-top:10px}.tl-axis{height:18px;color:var(--muted);margin-left:140px;font-size:10px;position:relative}.tl-axis span{position:absolute;transform:translate(-50%)}.tl-row{align-items:center;height:24px;display:flex}.tl-name{width:140px;color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;padding-right:8px;font-size:12px;overflow:hidden}.tl-track{background:repeating-linear-gradient(90deg, var(--surface-2) 0, var(--surface-2) calc(100% / 24 - 1px), var(--surface-3) calc(100% / 24 - 1px), var(--surface-3) calc(100% / 24));border-radius:4px;flex:1;height:18px;position:relative}.tl-bar{background:var(--brand-100);color:#1d2330;border:1px solid #121a2b24;border-radius:4px;padding-left:4px;font-size:10px;font-weight:700;line-height:14px;position:absolute;top:1px;bottom:1px;overflow:hidden}.tl-bar.muted{background:var(--surface-3);color:var(--muted)}.tl-bar.done{opacity:.4}.tl-bar.now{box-shadow:0 0 0 2px var(--brand)}.tl-now{background:var(--red);z-index:1;border-radius:2px;width:2px;position:absolute;top:-4px;bottom:-4px}.live-off{flex-wrap:wrap;gap:8px 18px;margin-top:4px;font-size:13px;display:flex}.live-off-item{align-items:center;gap:8px;display:inline-flex}.live-off-item .ns-code{background:var(--surface);border:1px solid #121a2b1f;min-width:44px}@media (width<=700px){.tl-name{width:84px}.tl-axis{margin-left:84px}}.dp-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.dp-head>button{padding-inline:10px;font-size:13px}.dp-head h1{margin:0 6px 0 0}.dp-date{background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:4px;padding:2px 4px;display:inline-flex;position:relative}.dp-date .dp-day{box-shadow:none;font-variant-numeric:tabular-nums;min-height:30px;color:var(--text);background:0 0;border:0;padding:0 6px;font-size:15px;font-weight:700}.dp-date .dp-day.sun{color:var(--red)}.dp-date .dp-day.sat{color:var(--brand)}.dp-date .dp-picker{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;bottom:0;left:40px}.dp-date .dp-today{min-height:24px;padding:0 8px;font-size:12px}.dp-page .page-sub{margin:4px 0 12px}.dp-sub{align-items:flex-start;gap:12px;display:flex}.dp-sub .page-sub{flex:1}.dp-sub>button{flex-shrink:0;padding-inline:10px;font-size:13px}.dp-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.dp-toolbar .seg-tabs{margin:0}.dp-toolbar .tb-label{color:var(--muted);font-size:12px}.dp-swatch{vertical-align:middle;border:1px solid #121a2b26;border-radius:3px;width:12px;height:12px;display:inline-block}.dp-legend{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;flex-wrap:wrap;gap:6px 16px;margin-bottom:10px;padding:10px 12px;font-size:12px;display:flex}.dp-legend-item{align-items:center;gap:6px;display:inline-flex}.dp-wrap{max-height:calc(100vh - 290px)}table.dp-grid{-webkit-user-select:none;user-select:none}.dp-grid th.name{min-width:110px}.dp-grid .dp-role{z-index:1;background:var(--surface);min-width:38px;color:var(--muted);font-size:11px;font-weight:600;position:sticky;left:110px}.dp-grid .dp-shift{z-index:1;background:var(--surface);text-align:left;min-width:140px;box-shadow:2px 0 0 var(--border);padding:2px 6px;position:sticky;left:148px}.dp-grid thead .dp-role,.dp-grid thead .dp-shift{z-index:3;text-align:center}.dp-code{background:var(--surface-3);color:#1d2330;border:1px solid #121a2b1f;border-radius:5px;justify-content:center;align-items:center;min-width:40px;height:20px;margin-right:6px;padding:0 4px;font-size:11px;font-weight:700;display:inline-flex}.dp-times{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10.5px}.dp-grid th.dp-hour{text-align:left;border-left:1px solid var(--border-strong);padding:5px 2px;font-size:11px;font-weight:600}.dp-grid th.dp-hour.next{background:var(--brand-50)}.dp-grid td.dp-cell{border-right:1px solid var(--surface-3);cursor:crosshair;width:11px;min-width:11px;height:26px;padding:0}.dp-grid td.dp-hour-start{border-left:1px solid var(--border-strong)}.dp-grid td.dp-none{cursor:default}.dp-grid td.dp-cell:not(.dp-none):hover{outline:2px solid var(--brand);outline-offset:-2px}.dp-grid td.dp-cell.short-col{background:var(--red-soft)}.dp-grid td.dp-cell.now{box-shadow:inset 2px 0 0 var(--red)}.dp-W,.dp-swatch.dp-W{background:#cfdcfb}.dp-lunch,.dp-swatch.dp-lunch{background:#fdba74}.dp-break,.dp-swatch.dp-break{background:#fde68a}.dp-duty,.dp-swatch.dp-duty{background:#dccbfb}.dp-grid td.dp-count{text-align:left;width:11px;min-width:11px;padding:3px 0;font-size:10px;overflow:visible}.dp-grid tr.dp-total-row th.name,.dp-grid tr.dp-total-row .dp-role,.dp-grid tr.dp-total-row .dp-shift{background:var(--brand-50)}.dp-grid td.total,.dp-grid th.total{min-width:46px;padding:2px 6px;font-size:11px}.survey-who{grid-template-columns:1fr 1fr;gap:12px;display:grid}.survey-who input{background:var(--surface-2);color:var(--text-2)}.survey-notice{white-space:pre-wrap;color:var(--text-2);background:var(--notice-bg);border:1px solid var(--border);border-radius:var(--r);max-height:380px;margin-top:12px;padding:14px;font-size:12.5px;line-height:1.7;overflow:auto}.mode-seg{background:var(--surface-3);border:1px solid var(--border);border-radius:10px;gap:3px;margin:6px 0 10px;padding:3px;display:flex}.mode-seg button{min-height:36px;box-shadow:none;color:var(--muted);background:0 0;border:0;border-radius:8px;flex:1}.mode-seg button.on.off{background:var(--surface);color:var(--red);box-shadow:0 1px 2px #121a2b1f}.mode-seg button.on.leave{background:var(--surface);color:var(--green);box-shadow:0 1px 2px #121a2b1f}.cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.cal .h{text-align:center;color:var(--muted);padding-bottom:2px;font-size:11px;font-weight:600}.cal button{min-height:50px;box-shadow:none;border-color:var(--border);color:var(--text);flex-direction:column;gap:1px;padding:5px 0;font-size:14px;line-height:1.15}.cal button.sat{color:var(--brand)}.cal button.sun{color:var(--red)}.cal button .hn{color:var(--red);font-size:9px;font-weight:500;line-height:1.1;display:block}.cal button .mk{font-size:10px;font-weight:700;display:block}.cal button .fx{color:var(--muted);font-size:9px;font-weight:500;display:block}.cal button.on{background:var(--red-soft);border-color:var(--red);color:var(--red)}.cal button.on3{background:var(--green-soft);border-color:var(--green);color:var(--green)}.cal button.discourage{box-shadow:inset 0 -3px 0 var(--yellow)}.survey-notes{color:var(--muted);flex-direction:column;gap:3px;margin:8px 0;padding:0;font-size:12px;list-style:none;display:flex}.survey-notes li.discourage{color:var(--yellow)}.survey-pref-day{width:80px}.q{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.q-title{font-size:14px;font-weight:700}.q-title .req{color:var(--red);margin-left:4px;font-size:11px;font-weight:600}.q-help{color:var(--muted);margin:4px 0 8px;font-size:12px}.q-range{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.q-date{align-items:center;gap:4px;display:inline-flex}.q-date input{width:150px}.q-wd{color:var(--muted);font-size:12px}.q-row{border:1px solid var(--border);border-radius:var(--r);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;padding:6px 40px 6px 6px;display:flex;position:relative}.q-time{align-items:center;gap:4px;display:inline-flex}.q-time input{width:132px}.q-row .q-text{flex:1;min-width:160px}.q-row.two-line .q-text{flex:100%;order:3}.q-row .icon-btn{font-size:18px;line-height:1;position:absolute;top:6px;right:4px}.add-row{margin-top:2px}.q-none{vertical-align:middle;flex-direction:row;align-items:center;gap:6px;margin:0 0 0 20px;font-size:13px;font-weight:500;display:inline-flex}.q-none input{width:auto;margin:0}table.survey-confirm{border:1px solid var(--border);border-radius:var(--r-lg);border-collapse:separate;border-spacing:0;overflow:hidden}table.survey-confirm th{background:var(--surface-2);width:38%;color:var(--text-2);white-space:normal;font-weight:600}table.survey-confirm td{white-space:normal}@media (width<=767px){.survey-who{grid-template-columns:1fr}.cal button{min-height:44px;font-size:13px}}.nav-badge{background:var(--red);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}.nav-collapsed .sidenav .nav-badge{min-width:16px;height:16px;font-size:10px;position:absolute;top:4px;right:6px}@media (width<=1180px){.is-admin .sidenav .nav-badge{min-width:16px;height:16px;font-size:10px;position:absolute;top:4px;right:6px}}@media (width<=767px){.is-employee .sidenav .nav-badge{min-width:16px;height:16px;margin-left:6px;font-size:10px;position:absolute;top:4px;left:50%}}.row-end{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:8px;display:flex}button.small-btn{min-height:28px;padding:0 10px;font-size:12px}button.small-btn.on{color:var(--green)}.msg-page>p.muted{margin-top:4px}.msg-layout{grid-template-columns:minmax(320px,420px) 1fr;align-items:start;gap:16px;margin-top:12px;display:grid}@media (width<=960px){.msg-layout{grid-template-columns:1fr}}.msg-panel{box-shadow:var(--shadow-sm);flex-direction:column;gap:8px;padding:16px;display:flex}.msg-panel h2{margin:0;font-size:15px}.msg-label{color:var(--text-2);margin-top:6px;font-size:12px;font-weight:600}.msg-targets{background:0 0;border:0;flex-direction:column;gap:6px;margin:0;padding:0;display:flex}.msg-targets legend{color:var(--text-2);margin-bottom:6px;padding:0;font-size:12px;font-weight:600}.msg-target{border:1px solid var(--border);cursor:pointer;color:var(--text);border-radius:8px;flex-direction:row;align-items:center;gap:8px;padding:8px 10px;font-size:13px;font-weight:500;display:flex}.msg-target.on{border-color:var(--brand);background:var(--brand-50)}.msg-pick{border:1px solid var(--border);border-radius:8px;max-height:260px;padding:8px;overflow:auto}.msg-person{color:var(--text);cursor:pointer;flex-direction:row;align-items:center;gap:8px;padding:4px 2px;font-size:13px;font-weight:400;display:flex}.msg-person-name{font-weight:600}.msg-person .ns-code{border:1px solid #121a2b1f;min-width:40px;font-size:11px}.msg-show-off{border-top:1px dashed var(--border);margin-top:6px;padding-top:8px}.msg-panel .seg-tabs{align-self:flex-start;margin:0}.chip-btn{background:var(--surface-3);border:1px solid var(--border);min-height:28px;color:var(--text-2);box-shadow:none;border-radius:999px;padding:0 10px;font-size:12px}.chip-btn.on{background:var(--brand-50);border-color:var(--brand);color:var(--brand);font-weight:600}.msg-panel textarea{min-height:96px}.msg-panel .tabs{margin-top:0}.msg-list{margin:0;padding:0;list-style:none}.msg-card{border:1px solid var(--border);background:var(--surface);border-radius:10px;margin-top:10px;padding:10px 12px}.msg-card.unread{border-left:3px solid var(--brand);background:var(--brand-50);cursor:pointer}.msg-card.urgent{border-left:3px solid var(--red)}.msg-card.done{opacity:.7}.msg-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.msg-time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.msg-body{white-space:pre-wrap;margin:6px 0}.msg-readers{flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}.msg-readers .chip.read{background:var(--green-soft);color:var(--green)}.msg-reply{border-left:2px solid var(--border);margin:6px 0 0 14px;padding:6px 10px;font-size:13px}.msg-reply p{white-space:pre-wrap;margin:2px 0 0}.msg-reply-form{flex-direction:column;gap:6px;margin-top:8px;display:flex}.msg-myshift{align-items:center;gap:8px;display:flex}.msg-myshift .ns-code{border:1px solid #121a2b1f;min-width:44px}.msg-quote{background:var(--surface-2);border-radius:8px;padding:8px 10px;font-size:13px}.msg-quote p{margin:2px 0 6px}.content>.card.my-msg-page:not(.narrow){max-width:760px}.msg-older{align-self:center;margin-top:10px;font-size:13px}.emp-msgs{flex-direction:column;gap:14px;margin-top:8px;display:flex}
