:root{color-scheme:dark;--bg: #0e1015;--panel: #13151b;--border: #2a2d35;--text: #e2e4e9;--muted: #8b92a0;--accent: #2dd4bf;--danger: #f43f5e;font-synthesis:none}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{background:var(--bg);overscroll-behavior:none}.app-viewport{width:100vw;height:100dvh;overflow:hidden}.app-zoom-surface{min-width:0;min-height:0;transform-origin:0 0}.scheduler-shell{min-width:0;min-height:0;overflow:hidden}.app-scroll-region{min-width:0;min-height:0;overscroll-behavior:contain;scrollbar-gutter:stable}button,input,select,textarea{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mobile-only{display:none!important}.connection-state{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font:9px JetBrains Mono,monospace;letter-spacing:.08em}.connection-state:before{content:"";width:6px;height:6px;border-radius:50%;background:#f59e0b}.connection-state.connected:before{background:var(--accent)}.connection-state.error:before{background:var(--danger)}.persistent-error{display:flex;gap:10px;align-items:flex-start;padding:10px 18px;color:#fecdd3;background:#f43f5e1f;border-bottom:1px solid rgba(244,63,94,.35);font:11px JetBrains Mono,monospace}.persistent-error button{margin-left:auto;background:transparent;border:0;color:inherit;cursor:pointer}.fatal-error{width:100%;height:100dvh;overflow:auto;display:grid;place-items:center;padding:24px;background:var(--bg);color:var(--text);font-family:IBM Plex Sans,sans-serif}.fatal-error section{width:min(560px,100%);padding:28px;background:var(--panel);border:1px solid var(--border);border-radius:12px}.fatal-error .eyebrow{color:var(--danger);font:700 12px JetBrains Mono,monospace;letter-spacing:.1em}.fatal-error p{color:#9ca3b0;line-height:1.6}.fatal-error button{padding:9px 14px;color:var(--accent);background:#2dd4bf1f;border:1px solid rgba(45,212,191,.35);border-radius:6px;cursor:pointer}@media(max-width:720px){.desktop-only{display:none!important}.mobile-only{display:block!important}.scheduler-header{padding:10px 12px!important;align-items:flex-start!important}.scheduler-header>div,.scheduler-actions{width:100%}.scheduler-actions{flex-wrap:nowrap!important;overflow-x:auto;padding-bottom:4px}.view-tabs{min-width:max-content}.scheduler-stats>div{padding:8px!important}.scheduler-stats>div>div:first-child{font-size:7px!important;letter-spacing:.08em!important}.scheduler-stats>div>div:last-child{font-size:17px!important}.scheduler-footer{display:none!important}.modal-card{width:calc(100vw - 20px);max-width:none!important;padding:18px!important;max-height:calc(100dvh - 20px)!important}.modal-card>*{max-width:100%}.mobile-today{flex:1;min-height:0;overflow:auto;padding:12px;font-family:IBM Plex Sans,sans-serif}.mobile-summary-card{padding:18px;border:1px solid rgba(45,212,191,.25);border-radius:10px;background:linear-gradient(135deg,#2dd4bf1a,#818cf814)}.mobile-summary-label{color:var(--muted);font:9px JetBrains Mono,monospace;letter-spacing:.14em}.mobile-active-count{margin-top:5px;color:var(--accent);font:700 32px JetBrains Mono,monospace}.mobile-active-names{color:#b8bec8;font-size:12px;line-height:1.5}.mobile-member-list{display:grid;gap:6px;margin-top:12px}.mobile-member-row{width:100%;min-height:58px;display:flex;align-items:center;gap:10px;padding:10px 12px;color:var(--text);background:var(--panel);border:1px solid #20232b;border-radius:8px;text-align:left;cursor:pointer}.mobile-region-dot{width:7px;height:28px;border-radius:3px}.mobile-member-copy{min-width:0;display:flex;flex-direction:column;flex:1}.mobile-member-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.mobile-member-copy small{margin-top:3px;color:var(--muted)}.mobile-shift{font-size:9px;white-space:nowrap}.mobile-shift.working{color:var(--accent)}.mobile-shift.off{color:#818cf8}}.oncall-summary{display:flex;flex-wrap:wrap;gap:8px 20px;padding:10px 18px;border-top:1px solid #2a2d35;background:#161827;font-size:12px;flex-shrink:0}.oncall-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.oncall-heading h2,.oncall-heading h3{margin:8px 0}.oncall-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.oncall-editor,.oncall-week{padding:18px;border:1px solid #2a2d35;border-radius:10px;background:#12141a;margin:14px 0}.oncall-editor p,.oncall-time,.oncall-week details{font-size:12px;color:#9ca3b0;line-height:1.7}.oncall-editor button{margin-right:6px}.rotation-list{padding:0;list-style-position:inside}.rotation-list li{display:flex;align-items:center;gap:6px;margin:8px 0}.rotation-list span{flex:1}.rotation-list button{background:#242735;color:#e2e4e9;border:1px solid #444859;border-radius:4px;cursor:pointer}.rotation-list button:disabled{opacity:.35;cursor:default}.oncall-bar{display:flex;height:22px;overflow:hidden;border-radius:5px;margin:12px 0}.oncall-bar>div{min-width:1px;border-right:1px solid #12141a}.oncall-week summary{cursor:pointer}.working-hours-table{border-collapse:collapse;width:100%;min-width:850px;font-size:12px}.working-hours-table th,.working-hours-table td{border:1px solid #2a2d35;padding:12px 8px;min-width:90px;text-align:left}.working-hours-table th:first-child{min-width:220px}.working-hours-table small{display:block;color:#9ca3b0;font-weight:400;line-height:1.7;margin-top:5px}.working-hours-lane{position:relative;height:18px;background:repeating-linear-gradient(to right,#1d2030,#1d2030 24%,#353849 25%);border-radius:3px}.working-hours-lane span{position:absolute;height:100%;background:#2dd4bf;border-radius:3px}@media(max-width:640px){.oncall-columns{grid-template-columns:1fr}.oncall-week,.oncall-editor{padding:12px}}.oncall-page{max-width:1280px;margin:auto}.oncall-intro{color:#9ca3b0;font-size:13px;margin:4px 0 12px}.oncall-meta{display:flex;gap:8px 24px;flex-wrap:wrap;color:#969dab;font-size:11px;margin-bottom:18px}.oncall-draft{color:#fbbf24}.oncall-roster{border:1px solid #2a2d35;border-radius:10px;overflow:hidden;background:#111319}.oncall-row{display:grid;grid-template-columns:130px minmax(150px,1fr) minmax(150px,1fr) 80px 100px 70px;gap:16px;align-items:center;padding:12px 18px}.oncall-row-head{background:#191c24;color:#929aaa;font-size:10px;text-transform:uppercase;letter-spacing:.8px;padding-top:11px;padding-bottom:11px}.oncall-entry+.oncall-entry{border-top:1px solid #242731}.oncall-entry:hover{background:#161923}.oncall-next{background:#171a28;box-shadow:inset 3px 0 #818cf8}.oncall-date strong{font-size:13px}.oncall-date small,.oncall-person small{display:block;color:#929aaa;font-size:10px;margin-top:4px}.oncall-person{display:flex;align-items:center;gap:9px;min-width:0}.oncall-person strong{font-size:12px;font-weight:550;overflow-wrap:anywhere}.oncall-avatar{flex-shrink:0;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:10px;font-weight:700;background:#292741;color:#bcb3ff}.oncall-person.secondary .oncall-avatar{background:#322b21;color:#e6bc84}.oncall-duration{font-size:12px;font-variant-numeric:tabular-nums}.oncall-duration small{color:#929aaa;font-size:10px}.oncall-status{font-size:10px;border-radius:5px;padding:4px 7px;width:fit-content}.oncall-status.ready{color:#72d5bd;background:#17302c}.oncall-status.attention{color:#f7c36b;background:#3b2c1b}.oncall-detail-button{background:transparent;color:#b9bfce;border:1px solid #343948;border-radius:5px;padding:6px 8px;font-size:11px;cursor:pointer}.oncall-detail-button:hover,.oncall-detail-button[aria-expanded=true]{background:#2a3041;color:#fff}.oncall-detail-button:focus-visible{outline:2px solid #a5b4fc;outline-offset:2px}.oncall-expanded{padding:16px 18px;background:#0e1017;border-top:1px solid #2a2d35}.oncall-window{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:12px}.oncall-window small{flex-basis:100%;color:#969dab;margin-bottom:12px}.oncall-conflicts{color:#f7c36b;font-size:12px;padding-left:18px}.oncall-footnote{color:#858d9d;font-size:11px;margin:12px 0}.oncall-mobile-label{display:none!important}.oncall-editor{padding:14px;margin:12px 0}.oncall-editor h3{margin:4px 0 10px;font-size:13px}.oncall-editor .rotation-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px;margin:8px 0}.oncall-editor .rotation-list li{margin:0;padding:5px 0;font-size:12px}.oncall-editor .rotation-list button{font-size:10px;padding:3px 5px;margin-right:0}.oncall-editor .oncall-columns{margin-top:14px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:850px){.oncall-row{grid-template-columns:100px minmax(120px,1fr) minmax(120px,1fr) 60px 75px;gap:10px;padding:12px}.oncall-row-head>:nth-child(5),.oncall-row>.oncall-status{display:none}.oncall-entry:has(.attention){border-left:3px solid #f7c36b}}@media(max-width:640px){.oncall-row-head{display:none}.oncall-row{grid-template-columns:1fr 1fr;gap:12px}.oncall-date{grid-column:1}.oncall-date small{display:inline;margin-left:8px}.oncall-person{grid-row:2}.oncall-duration{grid-row:3}.oncall-row>.oncall-status{display:block;grid-column:2;grid-row:3;justify-self:end}.oncall-detail-button{grid-column:2;grid-row:1;justify-self:end}.oncall-mobile-label{display:block!important;margin:0 0 3px!important}.oncall-editor .rotation-list{grid-template-columns:1fr}.oncall-meta{gap:8px 14px}}.planning-page{flex:1;overflow:auto;padding:18px;min-height:0}.planning-page h2{margin:0 0 10px;font-size:21px}.planning-muted{color:#9ca3b0;font-size:12px;margin:6px 0 18px}.planning-controls,.planning-subnav{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.planning-subnav{padding:10px 18px;border-bottom:1px solid #252936}.planning-controls button[aria-pressed=true],.planning-subnav button[aria-pressed=true]{outline:1px solid #818cf8}.planning-table-wrap{overflow-x:auto}.planning-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.planning-table th,.planning-table td{padding:10px 12px;border-bottom:1px solid #282c36}.planning-table thead{background:#191c25;color:#a9b2c3}.planning-table small{display:block;color:#929aaa;font-size:10px;margin-top:5px}.planning-calendar{table-layout:fixed;min-width:900px}.planning-calendar.day{min-width:500px}.planning-calendar th:first-child{width:160px}.planning-calendar th button{font-size:11px}.planning-lane{height:20px;position:relative;background:repeating-linear-gradient(to right,#202431 0,#202431 calc(25% - 1px),#384054 calc(25% - 1px),#384054 25%);border-radius:3px}.planning-lane span{position:absolute;height:100%;border-radius:2px}.planning-day-edit{margin-top:18px;font-size:12px;color:#aab2c1}.planning-day-edit summary{cursor:pointer}.planning-controls select,.planning-controls input,.planning-page select{background:#191c25;color:#e2e4e9;border:1px solid #3a4050;padding:7px;border-radius:5px}.overview-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.overview-cards section{border:1px solid #2d3342;background:#141720;border-radius:10px;padding:18px}.overview-cards h3{font-size:14px;margin:0 0 16px}.overview-cards h3 span{color:#2dd4bf;margin-left:10px}.overview-cards p{font-size:12px;line-height:1.6}.overview-cards small{display:block;color:#9ca3b0;font-size:11px}@media(max-width:700px){.overview-cards{grid-template-columns:1fr}.planning-page{padding:12px}}.planning-drag{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:pan-y}.planning-drag:active{cursor:grabbing}.planning-calendar.day th:first-child{position:sticky;left:0;z-index:2;background:#171b24}.planning-calendar.day td,.planning-calendar.day thead th:not(:first-child){width:var(--day-width, 1200px)}.planning-calendar.day .planning-lane{background-size:100% 100%;height:26px}.planning-table .planning-hour-ruler{display:flex;justify-content:space-between;margin-top:8px}.planning-time-zoom{display:flex;align-items:center;gap:4px;padding:0 8px;border-left:1px solid #343948;border-right:1px solid #343948}.planning-time-zoom button:disabled{opacity:.4;cursor:default}.local-error{position:fixed;bottom:35px;left:20px;right:20px;z-index:200;background:#652c39;color:#fff;padding:16px}.connection-state.local{color:#2dd4bf}
