:root{color:#0f172a;background-color:#f7f9fc;--app-height: 100vh;--topbar-h: 0px;--topbar-gap: 0px;--app-bg: #f8fafc;--app-bg-top: #f9fbff;--app-panel: rgba(255, 255, 255, .96);--app-panel-solid: #ffffff;--app-panel-2: #f6f9fd;--app-line: #edf1f6;--app-line-strong: #dce5ef;--app-text: #1e293b;--app-muted: #64748b;--app-soft: #eaf3ff;--app-accent: #2563eb;--app-accent-strong: #1d4ed8;--app-accent-text: #eff6ff;--app-danger: #e11d48;--app-danger-soft: #ffe4e6;--app-shadow: 0 10px 26px rgba(15, 23, 42, .06);--app-shadow-strong: 0 18px 46px rgba(15, 23, 42, .12);--app-radius: 18px;--shift-stayer-bg: #fee2e2;--shift-stayer-text: #991b1b;--shift-goer-bg: #dcfce7;--shift-goer-text: #166534;--shift-goer2-bg: #dbeafe;--shift-goer2-text: #1e40af;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-shell.dark{--app-bg: #061525;--app-bg-top: #07192b;--app-panel: rgba(9, 28, 49, .94);--app-panel-solid: #0b2138;--app-panel-2: #102b49;--app-line: #2d4765;--app-line-strong: #3b5a7c;--app-text: #eef5ff;--app-muted: #9bacc3;--app-soft: #123a61;--app-accent: #60a5fa;--app-accent-strong: #3b82f6;--app-accent-text: #eff6ff;--app-danger: #fb7185;--app-danger-soft: #3a161b;--app-shadow: inset 0 1px 0 rgba(255, 255, 255, .03);--app-shadow-strong: 0 18px 48px rgba(0, 0, 0, .34)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}input,textarea,select,button{-webkit-user-select:text;user-select:text}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--app-accent) 30%,transparent);outline-offset:2px}.app-shell{min-height:100vh;min-height:100dvh;background:#f7f9fc;color:#0f172a;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";padding:8px 16px;padding:calc(env(safe-area-inset-top) + 8px) calc(env(safe-area-inset-right) + 16px) calc(env(safe-area-inset-bottom) + 8px) calc(env(safe-area-inset-left) + 16px);box-sizing:border-box;-webkit-user-select:none;user-select:none}.site-gate-backdrop{position:fixed;inset:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.site-gate-card{background:#fff;padding:24px;border-radius:16px;box-shadow:0 18px 40px #0f172a2e;width:min(420px,90vw);display:flex;flex-direction:column;gap:8px}.site-gate-title{margin:0 0 8px;font-size:26px;font-weight:800;text-align:center}.site-gate-label{font-weight:600;font-size:14px}.site-gate-input{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #d7dce5;border-radius:10px;background:#f8fafc;font-size:16px}.site-gate-error{color:#b91c1c;font-weight:600}.site-gate-btn{margin-top:10px;background:#2563eb;color:#fff;border:none;border-radius:10px;padding:10px 12px;font-weight:700;cursor:pointer;transition:transform .1s ease,box-shadow .2s ease}.site-gate-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px #2563eb4d}.loading-overlay{position:fixed;inset:0;background:#ffffffa6;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:150}.spinner{position:relative;width:86px;height:86px;margin-bottom:12px}.ring{position:absolute;inset:0;border-radius:50%;border:4px solid transparent;border-top-color:#2563eb;border-right-color:#2563eb;animation:spin-cw 1.4s linear infinite}.ring-outer{border-width:4px}.ring-inner{inset:10px;border-width:4px;border-top-color:#60a5fa;border-right-color:#60a5fa;animation:spin-ccw 1.4s linear infinite}.loading-text{font-weight:700;color:#1e293b}.view-loading{display:grid;min-height:220px;place-items:center;color:var(--app-muted, #64748b);font-weight:800}@keyframes spin-cw{to{transform:rotate(360deg)}}@keyframes spin-ccw{to{transform:rotate(-360deg)}}.topbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px 16px;margin-bottom:8px;position:sticky;top:0;z-index:10;box-shadow:0 6px 18px #0f172a0f}.topbar.topbar-staging{background:#0f172a;border-color:#1f2937;color:#f8fafc}.topbar.topbar-staging .month-label,.topbar.topbar-staging .mode-pill,.topbar.topbar-staging .ghost,.topbar.topbar-staging button{color:#f8fafc;border-color:#1f2937;background-color:#1f2937}.topbar.topbar-staging .month-strong,.topbar.topbar-staging .month-light{color:#f8fafc}.topbar.topbar-staging .mode-pill{background:#1f2937}.topbar-mode{display:flex;justify-content:center;position:relative}.mode-pill{padding:6px 12px;border-radius:16px;background:#e2e8f0;font-weight:700;letter-spacing:.3px;color:#0f172a;border:none;cursor:pointer}.language-switcher-wrap{display:inline-flex;align-items:center;gap:10px;min-width:0}.language-switcher-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.language-switcher-title{color:var(--app-text, #0f172a);font-size:13px;font-weight:800;line-height:1.2}.language-switcher-current{color:var(--app-muted, #64748b);font-size:12px;line-height:1.25}.language-switcher{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--app-line-strong, #d7dce5);border-radius:999px;background:color-mix(in srgb,var(--app-panel-2, #f8fafc) 90%,transparent);box-shadow:0 1px 2px #0f172a0a}.language-switcher button{display:inline-flex;min-width:38px;min-height:30px;align-items:center;justify-content:center;margin:0;padding:4px 10px;border:0;border-radius:999px;background:transparent;color:var(--app-muted, #64748b);font-size:12px;font-weight:800;line-height:1;cursor:pointer}.language-switcher button:focus-visible{outline:3px solid color-mix(in srgb,var(--app-accent, #2563eb) 35%,transparent);outline-offset:2px}.language-switcher button.active{background:var(--app-accent, #2563eb);color:var(--app-accent-text, #ffffff);box-shadow:0 8px 18px color-mix(in srgb,var(--app-accent, #2563eb) 24%,transparent)}.language-switcher-name{display:none}.language-switcher-wrap--settings{width:100%;justify-content:space-between;padding:10px;border:1px solid var(--app-line, #e5e7eb);border-radius:12px;background:var(--app-panel-2, #f8fafc)}.language-switcher-wrap--settings .language-switcher{flex-shrink:0}.language-switcher-wrap--settings .language-switcher button{min-width:46px;min-height:34px}.site-gate-language{width:100%;margin-top:4px}.site-gate-language .language-switcher-wrap{width:100%}.topbar button{background:#fff;color:#0f172a;border:1px solid #e2e8f0;border-radius:8px;padding:8px 12px;cursor:pointer;margin:0 3px;transition:transform .1s ease,background .2s ease}.topbar button:hover{background:#f3f4f6;transform:translateY(-1px)}.topbar .language-switcher button,.more-popup .language-switcher button{min-width:38px;min-height:30px;margin:0;padding:4px 10px;border:0;border-radius:999px;background:transparent;color:var(--app-muted, #64748b);font-size:12px;font-weight:800;line-height:1;box-shadow:none}.topbar .language-switcher button:hover,.more-popup .language-switcher button:hover{background:color-mix(in srgb,var(--app-accent) 9%,transparent);transform:none}.topbar .language-switcher button.active,.more-popup .language-switcher button.active{background:var(--app-accent, #2563eb);color:var(--app-accent-text, #ffffff)}.topbar .primary{background:#2563eb;color:#fff;font-weight:700;border-color:#2563eb;margin:5px}.topbar .ghost{background:#fff;border:1px solid #d7dce5}.topbar-admin-actions{position:relative;display:inline-flex}.topbar button.topbar-admin-actions-trigger{display:inline-flex;align-items:center;gap:8px;min-height:38px;border-color:color-mix(in srgb,var(--app-accent, #2563eb) 28%,var(--app-line-strong, #d7dce5));background:color-mix(in srgb,var(--app-accent, #2563eb) 7%,var(--app-panel-solid, #ffffff));color:var(--app-accent, #2563eb);font-weight:800}.topbar button.topbar-admin-actions-trigger.active{border-color:var(--app-accent, #2563eb);background:var(--app-accent, #2563eb);color:#fff;box-shadow:0 10px 20px #2563eb38}.topbar-admin-actions-caret{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .18s ease}.topbar-admin-actions-trigger.active .topbar-admin-actions-caret{transform:translateY(2px) rotate(225deg)}.topbar-admin-actions-menu{position:absolute;top:calc(100% + 8px);right:3px;z-index:60;display:grid;gap:6px;min-width:190px;padding:8px;border:1px solid var(--app-line-strong, #d7dce5);border-radius:14px;background:var(--app-panel-solid, #ffffff);box-shadow:0 18px 42px #0f172a29;transform-origin:top right;animation:topbar-admin-actions-in .18s cubic-bezier(.22,1,.36,1) both}.topbar-admin-actions-section{display:flex;align-items:center;justify-content:center;padding:2px}.topbar-menu-user{padding:2px}.topbar .topbar-admin-actions-menu .topbar-menu-user-pill{display:flex;width:100%;min-height:36px;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--app-accent, #2563eb) 18%,var(--app-line-strong, #d7dce5));background:color-mix(in srgb,var(--app-accent, #2563eb) 8%,var(--app-panel-soft, #f8fafc));color:var(--app-text, #172033);cursor:default}.topbar .topbar-admin-actions-menu .language-switcher-wrap,.topbar .topbar-admin-actions-menu .language-switcher{width:100%}.topbar .topbar-admin-actions-menu .language-switcher{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:3px}.topbar .topbar-admin-actions-menu .language-switcher button{width:auto;min-width:0;min-height:34px;margin:0;justify-content:center;text-align:center}.topbar-admin-actions-divider{height:1px;margin:2px 0;background:var(--app-line, #e6ebf3)}.topbar .topbar-admin-actions-menu button.topbar-admin-theme-btn{display:inline-flex;align-items:center;justify-content:flex-start;gap:10px;border-color:var(--app-line-strong, #d7dce5);background:var(--app-panel-soft, #f8fafc);color:var(--app-text, #172033)}.topbar .topbar-admin-actions-menu button.topbar-admin-theme-btn .dark-mode-icon{width:18px;height:18px}.topbar .topbar-admin-actions-menu button.topbar-menu-logout-btn{border-color:color-mix(in srgb,#dc2626 26%,var(--app-line-strong, #d7dce5));background:color-mix(in srgb,#dc2626 7%,var(--app-panel-solid, #ffffff));color:#b91c1c}.topbar-admin-actions-menu.closing{animation:topbar-admin-actions-out .16s ease both;pointer-events:none}.topbar .topbar-admin-actions-menu button{width:100%;min-height:36px;margin:0;text-align:left;font-weight:800}.topbar .topbar-admin-actions-menu button.primary{text-align:center}@keyframes topbar-admin-actions-in{0%{opacity:0;transform:translateY(-6px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes topbar-admin-actions-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-6px) scale(.96)}}.auth-popover{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);background:#fff;border:1px solid #e5e7eb;box-shadow:0 10px 30px #0000001f;border-radius:12px;padding:12px;min-width:220px;z-index:20}.auth-form{display:flex;flex-direction:column;gap:8px}.auth-form input{padding:6px 8px;border:1px solid #e5e7eb;border-radius:8px}.topbar button.auth-form-btn{margin-top:5px;background:#2563eb;color:#fff;border:none;border-radius:10px;padding:10px 12px;font-weight:700;cursor:pointer;transition:transform .1s ease,box-shadow .2s ease}.topbar button.auth-form-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px #2563eb4d}.month-picker{position:fixed;left:50%;top:calc(var(--topbar-h, 0px) + var(--topbar-gap, 0px) + 18px);transform:translate(-50%);background:#fff;border:1px solid rgba(226,232,240,.94);border-radius:18px;box-shadow:0 10px 28px #0f172a1f;padding:10px 8px 0;z-index:141;width:min(300px,calc(100vw - 32px));min-width:260px;color:#111827;animation:month-picker-enter .18s cubic-bezier(.22,1,.36,1) both;transform-origin:40px -10px}.month-picker.closing{animation:month-picker-exit .16s ease both}.month-picker:before{content:"";position:absolute;left:40px;top:-12px;width:22px;height:22px;background:inherit;border-left:1px solid rgba(226,232,240,.94);border-top:1px solid rgba(226,232,240,.94);transform:rotate(45deg);z-index:-1}.month-picker-backdrop{position:fixed;left:0;right:0;top:calc(var(--topbar-h, 0px) + var(--topbar-gap, 0px));bottom:0;z-index:140;background:#0f172a2e;backdrop-filter:blur(8px) saturate(1.04);-webkit-backdrop-filter:blur(8px) saturate(1.04);cursor:default;animation:month-picker-backdrop-enter .18s ease both}.month-picker-backdrop.closing{animation:month-picker-backdrop-exit .16s ease both}.month-picker-grabber{width:34px;height:4px;margin:0 auto 16px;border-radius:999px;background:#9ca3af}.month-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding:0 10px;color:#111827;font-size:18px;font-weight:800;line-height:1}.month-picker-header button{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e5e7eb;border-radius:50%;color:#111827;padding:0;cursor:pointer;transition:background .16s ease,transform .12s ease}.month-picker-header button:hover{background:#f8fafc}.month-picker-header button:active{transform:scale(.96)}.month-picker-header svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.month-picker-grid{display:grid;grid-template-columns:repeat(3,minmax(60px,1fr));gap:0;overflow:hidden;border:1px solid #e5e7eb;border-radius:7px}.month-picker-cell{min-height:50px;border:0;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;border-radius:0;background:#fff;color:#111827;padding:0 10px;font-size:14px;font-weight:750;letter-spacing:0;cursor:pointer;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease,transform .12s ease}.month-picker-cell:nth-child(3n){border-right:0}.month-picker-cell:nth-last-child(-n+3){border-bottom:0}.month-picker-cell span{display:inline-flex;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-picker-cell:hover{background:#f8fafc;transform:translateY(-1px)}.month-picker-cell.current:not(.selected){color:#1d4ed8;box-shadow:inset 0 0 0 1px #93c5fd80}.month-picker-cell.selected{background:#2563eb;color:#fff;box-shadow:none}.month-picker-footer{min-height:46px;margin:0 -8px;border-top:1px solid #e5e7eb;display:flex;align-items:center;justify-content:center;gap:8px;color:#2563eb;font-size:14px;font-weight:700}.month-picker-footer svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}@keyframes month-picker-enter{0%{opacity:0;transform:translate(-50%) translateY(-8px) scale(.98)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes month-picker-exit{0%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}to{opacity:0;transform:translate(-50%) translateY(-6px) scale(.985)}}@keyframes month-picker-backdrop-enter{0%{opacity:0;backdrop-filter:blur(0) saturate(1);-webkit-backdrop-filter:blur(0) saturate(1)}to{opacity:1;backdrop-filter:blur(8px) saturate(1.04);-webkit-backdrop-filter:blur(8px) saturate(1.04)}}@keyframes month-picker-backdrop-exit{0%{opacity:1;backdrop-filter:blur(8px) saturate(1.04);-webkit-backdrop-filter:blur(8px) saturate(1.04)}to{opacity:0;backdrop-filter:blur(0) saturate(1);-webkit-backdrop-filter:blur(0) saturate(1)}}@media(prefers-reduced-motion:reduce){.month-picker,.month-picker.closing,.month-picker-backdrop,.month-picker-backdrop.closing{animation-duration:1ms}}@media(max-width:900px){.month-picker.month-picker-sheet{left:12px;right:12px;top:calc(var(--topbar-h, 0px) + var(--topbar-gap, 0px) + 10px);bottom:auto;width:auto;min-width:0;max-width:none;transform:none;border:1px solid #e5e7eb;border-radius:22px;padding:10px 8px 0;box-shadow:0 18px 42px #0f172a24;animation-name:month-picker-mobile-enter;transform-origin:40px -10px}.month-picker.month-picker-sheet.closing{animation-name:month-picker-mobile-exit}.month-picker.month-picker-sheet .month-picker-grid{gap:0}.month-picker.month-picker-sheet .month-picker-cell{min-height:50px;border-radius:0;font-size:15px}}@keyframes month-picker-mobile-enter{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes month-picker-mobile-exit{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-6px) scale(.985)}}.topbar .left{display:flex;align-items:center;gap:8px}.topbar .right{display:flex;grid-column:3;align-items:center;justify-content:flex-end;flex-wrap:nowrap;white-space:nowrap;gap:4px;overflow:visible;scrollbar-width:none}.topbar .right::-webkit-scrollbar{display:none}.topbar .right>*{flex:0 0 auto}.month-label{font-weight:500;letter-spacing:.3px;padding:6px 10px;border-radius:8px;background:#f8fafc;border:1px solid #e2e8f0}.month-label .month-strong{font-weight:800}.month-label .month-light{font-weight:500}.month-label.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.month-label.frozen{outline:3px solid #6497ff;outline-offset:0;box-shadow:0 8px 22px #6497ff40;border-color:#6497ff}.tabs{display:flex;gap:8px;margin-bottom:8px}.tabs button{flex:1;padding:10px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;color:#475569;cursor:pointer}.tabs .active{background:#2563eb;color:#fff;font-weight:700;border-color:#2563eb}.banner{background:#fef3c7;color:#92400e;padding:10px 12px;border-radius:10px;margin-bottom:10px;border:1px solid #fcd34d}.save-summary-banner{background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;padding:10px 12px;margin-bottom:10px}.save-summary-title{font-weight:700;color:#1e3a8a;margin-bottom:8px}.save-summary-list{display:flex;flex-direction:column;gap:6px}.save-summary-date-btn{width:100%;text-align:left;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;color:#0f172a;cursor:pointer}.save-summary-date-btn:hover{background:#f8fafc}.save-confirm-modal{max-height:min(80vh,720px);overflow:auto}.save-confirm-modal .save-summary-list{max-height:42vh;overflow:auto;padding-right:4px}.save-version-label{font-weight:700;color:#0f172a}.save-version-input{width:100%;padding:8px 10px;border:1px solid #d7dce5;border-radius:8px;background:#f8fafc}.save-version-help{font-size:12px;color:#64748b}.modal button.primary{background:#2563eb;color:#fff;border-color:#2563eb}.modal button.primary:hover{background:#1d4ed8;border-color:#1d4ed8}.modal-backdrop{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:10}.modal{background:#fff;padding:12px;border-radius:12px;box-shadow:0 10px 30px #0f172a40;width:min(420px,90vw);display:flex;flex-direction:column;gap:12px}.modal-footer{display:flex;justify-content:flex-end;gap:10px}.modal button{background:#f8fafc;color:#0f172a;border:1px solid #e2e8f0;border-radius:8px;padding:8px 14px;cursor:pointer}.modal button:hover{background:#e0f2fe;border-color:#bfdbfe}.calendar-nav{display:flex;align-items:center;gap:10px;justify-content:left;margin-bottom:12px}.holiday-modal{background:#fff;color:#0f172a;padding:20px;border-radius:16px;width:min(520px,95vw);box-shadow:0 14px 32px #0f172a2e;display:flex;flex-direction:column;gap:12px}.holiday-modal-header,.modal-header,.holiday-picker-row,.holiday-actions{display:flex;justify-content:space-between;align-items:center;font-size:16px}.holiday-nav{display:flex;align-items:center;gap:10px}.holiday-nav button{background:#f8fafc;color:#0f172a;border:1px solid #e2e8f0;border-radius:8px;padding:6px 10px;cursor:pointer}.holiday-grid{display:grid;grid-template-columns:repeat(7,44px);gap:8px;justify-content:center}.holiday-weekday{text-align:center;font-size:12px;color:#9ca3af}.holiday-weekdays{display:grid;grid-template-columns:repeat(7,44px);gap:8px;justify-content:center;margin:8px 0 4px}.holiday-day{background:#f8fafc;color:#0f172a;border:1px solid #e2e8f0;border-radius:14px;padding:0;height:44px;width:44px;cursor:pointer;font-size:14px;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease}.holiday-day.selected{background:#2563eb;border-color:#2563eb;color:#fff}.holiday-day:hover{background:#e0f2fe;border-color:#bfdbfe}.holiday-modal-actions{display:flex;justify-content:flex-end;gap:10px}.holiday-modal-actions button{background:#f8fafc;color:#0f172a;border:1px solid #e2e8f0;border-radius:8px;padding:8px 14px;cursor:pointer}.holiday-modal-actions button:last-child{background:#2563eb;border-color:#2563eb;color:#fff}.calendar-grid-compact{display:grid;grid-template-columns:repeat(7,44px);gap:4px;justify-content:center;margin:12px 0}.calendar-cell-btn{height:44px;width:44px;border-radius:14px;border:1px solid #d7dce5;background:#f8fafc;font-weight:700;color:#0f172a;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .1s ease}.calendar-cell-btn:hover{background:#e0f2fe;border-color:#bfdbfe}.calendar-cell-btn.muted{opacity:.35;cursor:default}.calendar-cell-btn.selected{background:#2563eb;color:#fff;border-color:#1d4ed8}.holiday-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:12px}.holiday-chip{background:#f8fafc;color:#0f172a;padding:10px 12px;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #e2e8f0;box-shadow:0 2px 6px #0f172a0d}.holiday-chip button{border:1px solid #e2e8f0;background:#fff;cursor:pointer;color:#0f172a;font-weight:700;font-size:14px;border-radius:8px;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0f172a14}.modal-body input{width:100%;padding:10px;border:1px solid #e5e7eb;border-radius:8px}.modal-footer .danger{background:#dc2626;color:#fff;border:1px solid #b91c1c}main{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:8px 10px;box-shadow:0 12px 24px #0f172a0d}@keyframes tab-slide-next{0%{opacity:.6;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes tab-slide-prev{0%{opacity:.6;transform:translate(-18px)}to{opacity:1;transform:translate(0)}}@media(max-width:900px){main.tab-next{animation:tab-slide-next .24s ease}main.tab-prev{animation:tab-slide-prev .24s ease}}@media(max-width:900px){html,body{height:100%;overflow:hidden;background-color:#0f172a}.app-shell{display:flex;flex-direction:column;height:var(--app-height, 100dvh);overflow:hidden;padding:4px}.app-shell.mobile-modern-shell:after{content:"";position:fixed;left:0;right:0;bottom:0;z-index:99;height:calc(74px + env(safe-area-inset-bottom));pointer-events:none;background:linear-gradient(180deg,#f8fafc00,#f8fafcad 18%,#f8fafceb);backdrop-filter:blur(14px) saturate(1.08);-webkit-backdrop-filter:blur(14px) saturate(1.08);mask-image:linear-gradient(180deg,transparent 0%,#000 22%);-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 22%)}.app-shell.mobile-modern-shell.dark:after{background:linear-gradient(180deg,#06152500,#061525b3 18%,#061525f0)}main{flex:1;min-height:0;overflow-y:auto;padding:4px}input,textarea,select{font-size:16px}.mobile-month-bar{display:flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:calc(env(safe-area-inset-top) + 12px) 72px 8px;position:relative;flex-shrink:0}.month-arrow-btn{position:absolute;top:calc(env(safe-area-inset-top) + 12px);width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;background:#eff6ff;border:1px solid #d8e5f5;padding:0;font-size:20px;font-weight:300;color:#5f738c;cursor:pointer;border-radius:13px;line-height:1;opacity:1;box-shadow:inset 0 1px #ffffffc7,0 8px 18px #0f172a12;-webkit-tap-highlight-color:transparent;appearance:none}.month-arrow-btn:first-child{left:34px}.month-arrow-btn:nth-of-type(2){right:34px}.month-arrow-btn:active{background:#e5f0ff;border-radius:13px}.month-arrow-btn:focus{outline:none}.month-arrow-btn:focus-visible{outline:2px solid color-mix(in srgb,currentColor 42%,transparent);outline-offset:2px;border-radius:13px}.mobile-month-bar .month-label{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:38px;font-size:20px;background:transparent;border-color:transparent;box-shadow:none;line-height:1}.mobile-month-bar .mobile-save-btn{position:absolute;right:12px;top:50%;transform:translateY(calc(-50% + env(safe-area-inset-top)/2));height:32px;padding:0 12px;border-radius:9px;font-size:13px;font-weight:700;margin:0}.app-shell.mobile-modern-shell{--overview-bg: #061525;--overview-panel: #0b2138;--overview-panel-2: #102b49;--overview-line: #2d4765;--overview-line-strong: #3b5a7c;--overview-text: #eef5ff;--overview-muted: #9bacc3;background:radial-gradient(circle at 50% -12%,rgba(37,99,235,.22),transparent 34%),linear-gradient(180deg,#07192b 0%,var(--overview-bg) 100%);color:var(--overview-text);padding:0 4px;box-shadow:inset 0 0 0 1px #7490b357}.app-shell.mobile-modern-shell .mobile-month-bar{--overview-month-control-h: 38px;--overview-month-row-top: calc(env(safe-area-inset-top) + 12px) ;min-height:56px;padding:var(--overview-month-row-top) 72px 8px;align-items:flex-start}.app-shell.mobile-modern-shell .month-arrow-btn{top:var(--overview-month-row-top);width:var(--overview-month-control-h);height:var(--overview-month-control-h);background:#1b314d;border:1px solid #3c5776;color:#edf5ff;box-shadow:inset 0 1px #ffffff14}.app-shell.mobile-modern-shell .month-arrow-btn:active{background:#253c5d}.app-shell.mobile-modern-shell .mobile-month-bar .month-label{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;gap:12px;width:max-content;min-width:0;color:#f6f9ff;font-size:20px;font-weight:650;letter-spacing:0;line-height:1;background:transparent;border:0;box-shadow:none;min-height:var(--overview-month-control-h);padding:0}.app-shell.mobile-modern-shell .mobile-month-bar .month-strong,.app-shell.mobile-modern-shell .mobile-month-bar .month-light{letter-spacing:.08em;line-height:1}.app-shell.mobile-modern-shell .mobile-month-bar .month-label:after{content:"";width:9px;height:9px;border-right:2.5px solid currentColor;border-bottom:2.5px solid currentColor;flex:0 0 auto;transform:translateY(-2px) rotate(45deg)}.app-shell.mobile-modern-shell .mobile-save-btn{display:none}.app-shell.mobile-modern-shell .tabs.bottom-nav{background:#0a1b2ff0;border-color:#60a5fa2e;box-shadow:0 18px 48px #00000057,inset 0 1px #ffffff14}.app-shell.mobile-modern-shell .tabs.bottom-nav button,.app-shell.mobile-modern-shell .tab-more{color:#94a4bb}.app-shell.mobile-modern-shell .tabs.bottom-nav button.active,.app-shell.mobile-modern-shell .tab-more.active{color:#fff;background:linear-gradient(180deg,#2563eb,#1d4ed8);border-color:#93c5fd61;box-shadow:none}.app-shell.mobile-modern-shell .tabs.bottom-nav button.active .tab-icon,.app-shell.mobile-modern-shell .tab-more.active .tab-icon{opacity:1}.app-shell.mobile-modern-shell:not(.dark){--overview-bg: #f8fafc;--overview-panel: #ffffff;--overview-panel-2: #f6f9fd;--overview-line: #edf1f6;--overview-line-strong: #dce5ef;--overview-text: #1e293b;--overview-muted: #64748b;background:radial-gradient(circle at 50% -18%,rgba(147,197,253,.2),transparent 34%),linear-gradient(180deg,#f9fbff,#f3f7fb);color:var(--overview-text);box-shadow:inset 0 0 0 1px #94a3b83d}.app-shell.mobile-modern-shell:not(.dark) .mobile-month-bar .month-label{color:#172033}.app-shell.mobile-modern-shell:not(.dark) .month-arrow-btn{background:#eff6ff;border-color:#d8e5f5;box-shadow:inset 0 1px #ffffffc7,0 8px 18px #0f172a12;color:#5f738c}.app-shell.mobile-modern-shell:not(.dark) .month-arrow-btn:active{background:#e5f0ff}.app-shell.mobile-modern-shell:not(.dark) .tabs.bottom-nav{background:#fffffff0;border-color:#bfdbfec7;box-shadow:0 18px 42px #0f172a29,inset 0 1px #ffffffeb}.app-shell.mobile-modern-shell:not(.dark) .tabs.bottom-nav button,.app-shell.mobile-modern-shell:not(.dark) .tab-more{color:#64748b}.app-shell.mobile-modern-shell:not(.dark) .tabs.bottom-nav button.active,.app-shell.mobile-modern-shell:not(.dark) .tab-more.active{color:#1d4ed8;background:linear-gradient(180deg,#eff6ff,#dbeafe);border-color:#bfdbfe;box-shadow:none}.tabs.bottom-nav{position:fixed;--mobile-dock-bottom: calc(env(safe-area-inset-bottom) + 12px) ;--mobile-dock-height: 62px;bottom:var(--mobile-dock-bottom);left:50%;right:auto;z-index:100;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:4px;height:var(--mobile-dock-height);padding:6px;background:#fffffff0;border:1px solid rgba(191,219,254,.78);border-radius:999px;margin:0;width:min(430px,calc(100vw - 28px));box-sizing:border-box;transform:translate(-50%);box-shadow:0 18px 42px #0f172a29,inset 0 1px #ffffffeb;backdrop-filter:blur(18px) saturate(1.18);-webkit-backdrop-filter:blur(18px) saturate(1.18)}.tabs.bottom-nav button{flex:0 0 48px;width:48px;height:48px;min-width:0;min-height:48px;padding:0;border:1px solid transparent;background:transparent;color:#64748b;border-radius:999px;cursor:pointer;text-align:center;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent;appearance:none;transition:flex-basis .22s cubic-bezier(.22,1,.36,1),width .22s cubic-bezier(.22,1,.36,1),color .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .12s ease}.tabs.bottom-nav button.active{flex-basis:132px;width:132px;background:linear-gradient(180deg,#eff6ff,#dbeafe);border-color:#bfdbfe;color:#1d4ed8;box-shadow:none}.tabs.bottom-nav button.active .tab-icon{opacity:1}.tabs.bottom-nav button:active{border-radius:999px;transform:translateY(1px) scale(.98)}.tabs.bottom-nav button:focus{outline:none}.tabs.bottom-nav button:focus-visible{outline:2px solid color-mix(in srgb,currentColor 42%,transparent);outline-offset:2px;border-radius:999px}.worker-sheet-backdrop{padding-bottom:calc(92px + env(safe-area-inset-bottom))}.worker-bottom-sheet{border-radius:24px;border-bottom:1px solid #d8e1f0;padding-bottom:16px;max-height:min(72dvh,620px)}}.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.tabs{display:flex;gap:0;padding:4px;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:999px;margin-bottom:12px;position:relative;width:100%}.tabs button{flex:1;padding:10px 14px;border:0;background:transparent;color:#475569;border-radius:999px;font-weight:600;cursor:pointer;text-align:center;transition:background .12s ease,color .12s ease}.tabs button:hover{background:#0f172a0f}.tabs button.active{background:#2563eb;color:#fff;box-shadow:0 1px 2px #0000001a}.topbar-tabs{grid-column:2;width:min(100%,608px);max-width:100%;margin:0 auto;padding:2px;gap:2px;align-self:center;overflow:visible}.topbar-tabs button{min-height:29px;padding:6px 9px;font-size:12px;white-space:nowrap}.topbar-tab-content{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:0}.topbar-tab-icon{width:15px;height:15px;flex:0 0 auto;object-fit:contain;opacity:.82}.topbar-tabs button.active .topbar-tab-icon{opacity:1}.topbar-tabs .tab-with-menu{display:flex;flex:1 1 0}.topbar-tabs .tab-with-menu>button{width:100%}.tab-with-menu{position:relative}.settings-dropdown{position:absolute;top:calc(100% + 6px);right:0;left:auto;background:#fff;border:1px solid #d7dce5;border-radius:12px;box-shadow:0 12px 28px #0f172a29;padding:6px;min-width:220px;z-index:30;display:flex;flex-direction:column;gap:6px}.settings-dropdown button{border:none;background:#f8fafc;padding:10px 12px;border-radius:10px;text-align:left;font-weight:600;color:#0f172a;cursor:pointer;transition:background .12s ease,transform .12s ease}.settings-dropdown button:hover{background:#e2e8f0;transform:translateY(-1px)}.tab-icon-wrap{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:7px;width:auto;max-width:100%;min-width:0}.tab-icon{width:20px;height:20px;flex:0 0 auto;object-fit:contain;display:block;opacity:.62;transition:opacity .14s ease,transform .18s cubic-bezier(.22,1,.36,1),width .18s cubic-bezier(.22,1,.36,1),height .18s cubic-bezier(.22,1,.36,1)}.tab-label{display:inline-block;max-width:0;overflow:hidden;white-space:nowrap;font-size:12px;font-weight:800;line-height:1.05;letter-spacing:0;opacity:0;transform:translate(-4px);transition:max-width .22s cubic-bezier(.22,1,.36,1),opacity .12s ease,transform .18s cubic-bezier(.22,1,.36,1)}.tabs.bottom-nav button.active .tab-icon,.tab-more.active .tab-icon{width:22px;height:22px;opacity:1;transform:scale(1.06)}.tabs.bottom-nav button.active .tab-label,.tab-more.active .tab-label{max-width:92px;opacity:1;transform:translate(0)}.tabs.bottom-nav button.tab-swaps.active .tab-label{max-width:64px;transform-origin:center}.tab-more{flex:0 0 48px;width:48px;height:48px;min-width:0;min-height:48px;padding:0;border:1px solid transparent;background:transparent;color:#64748b;border-radius:999px;cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden;-webkit-tap-highlight-color:transparent;appearance:none;transition:flex-basis .22s cubic-bezier(.22,1,.36,1),width .22s cubic-bezier(.22,1,.36,1),color .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .12s ease}.tab-more.active{flex-basis:106px;width:106px;color:#1d4ed8;background:linear-gradient(180deg,#eff6ff,#dbeafe);border-color:#bfdbfe;box-shadow:none}.tab-more.open:not(.active){color:#1d4ed8;background:#2563eb1a;border-color:#bfdbfeb8}.tab-more.open:not(.active) .tab-icon{opacity:1;transform:scale(1.06)}.tab-more .tab-icon{width:21px;height:21px;display:block;opacity:.62}.tab-more:active{border-radius:999px;transform:translateY(1px) scale(.98)}.tab-more:focus{outline:none}.tab-more:focus-visible{outline:2px solid color-mix(in srgb,currentColor 42%,transparent);outline-offset:2px;border-radius:999px}.more-menu-backdrop{position:fixed;inset:0;z-index:110;background:#0f172a2e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:worker-sheet-backdrop-in .18s ease both;pointer-events:auto}.more-popup{position:fixed;bottom:calc(82px + env(safe-area-inset-bottom));left:50%;right:auto;z-index:111;width:min(430px,calc(100vw - 28px));background:#fffffff7;border:1px solid rgba(191,219,254,.78);border-radius:24px;box-shadow:0 24px 54px #0f172a2e;overflow:hidden;animation:more-popup-in .18s cubic-bezier(.25,.1,.25,1) both;pointer-events:auto;transform:translate(-50%);backdrop-filter:blur(18px) saturate(1.12);-webkit-backdrop-filter:blur(18px) saturate(1.12)}@keyframes more-popup-in{0%{opacity:0;transform:translate(-50%) translateY(10px) scale(.98)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.more-popup-section-header{padding:8px 16px 4px;font-size:11px;font-weight:700;letter-spacing:.06em;color:#94a3b8;text-transform:uppercase;border-top:1px solid #f1f5f9;margin-top:2px}.more-popup-section-header--first{border-top:0;margin-top:0;padding-top:12px}.more-popup-item{display:flex;align-items:center;gap:12px;width:100%;padding:13px 16px;background:transparent;border:0;text-align:left;font-size:15px;font-weight:700;color:#0f172a;cursor:pointer;min-height:50px}.more-popup-item:active{background:#2563eb14}.more-popup-item.active{background:#2563eb14;color:#2563eb}.more-popup-row{justify-content:space-between;cursor:default}.more-popup-row-label{display:flex;align-items:center;gap:12px;font-size:15px;font-weight:600;color:#0f172a}.more-popup-icon{width:22px;height:22px;flex-shrink:0;object-fit:contain}.more-popup-danger{color:#dc2626}.toggle-switch{position:relative;display:inline-flex;width:44px;height:26px;flex-shrink:0;cursor:pointer}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{position:absolute;inset:0;border-radius:26px;background:#cbd5e1;transition:background .18s ease}.toggle-slider:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f172a2e;transition:transform .18s ease}.toggle-switch input:checked+.toggle-slider{background:#2563eb}.toggle-switch input:checked+.toggle-slider:before{transform:translate(18px)}.dark-mode-btn{background:#fff;border:1px solid #e2e8f0;border-radius:9px;width:36px;height:36px;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .1s ease,background .2s ease,box-shadow .2s ease;margin:0 3px;box-shadow:0 1px 3px #0f172a14}.dark-mode-btn:hover{background:#f3f4f6;transform:translateY(-1px)}.dark-mode-icon{width:22px;height:22px;object-fit:contain;display:block;pointer-events:none}.mobile-logout-btn{display:none}.mobile-logout-btn svg{width:18px;height:18px;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}.app-shell.dark{background:#0f172a;color:#e2e8f0}.app-shell.dark main{background:#1e293b;border-color:#334155;color:#e2e8f0}.app-shell.dark .topbar{background:#1e293b;border-color:#334155;box-shadow:0 6px 18px #0000004d}.app-shell.dark .topbar button{background:#1e293b;color:#e2e8f0;border-color:#334155}.app-shell.dark .topbar button:hover{background:#273549}.app-shell.dark .topbar .primary{background:#2563eb;border-color:#2563eb;color:#fff}.app-shell.dark .topbar .primary:hover{background:#1d4ed8}.app-shell.dark .topbar .ghost{background:#1e293b;border-color:#334155;color:#94a3b8}.app-shell.dark .topbar-admin-actions-menu{background:var(--app-panel-solid);border-color:var(--app-line-strong);box-shadow:0 18px 42px #00000057}.app-shell.dark .topbar-admin-actions-divider{background:var(--app-line-strong)}.app-shell.dark .topbar .topbar-admin-actions-menu button.topbar-admin-theme-btn{background:#1e293b;border-color:#334155;color:#e2e8f0}.app-shell.dark .topbar .topbar-admin-actions-menu .topbar-menu-user-pill{background:color-mix(in srgb,var(--app-accent) 16%,#1e293b);border-color:color-mix(in srgb,var(--app-accent) 30%,#334155);color:#e2e8f0}.app-shell.dark .topbar .topbar-admin-actions-menu button.topbar-menu-logout-btn{background:color-mix(in srgb,#ef4444 12%,#1e293b);border-color:color-mix(in srgb,#ef4444 30%,#334155);color:#fecaca}.app-shell.dark .dark-mode-btn{background:#1e293b;border-color:#334155}.app-shell.dark .dark-mode-btn:hover{background:#273549}.app-shell.dark .month-label{background:#162032;border-color:#334155;color:#e2e8f0}.app-shell.dark .month-label .month-strong,.app-shell.dark .month-label .month-light{color:#e2e8f0}.app-shell.dark .mode-pill{background:#273549;color:#e2e8f0}.app-shell.dark .auth-popover{background:#1e293b;border-color:#334155;box-shadow:0 10px 30px #0006}.app-shell.dark .auth-form input{background:#162032;border-color:#334155;color:#e2e8f0}.app-shell.dark .month-picker{background:#080d14;border-color:#1e2a38;color:#eef3f8;box-shadow:0 20px 48px #00000075}.app-shell.dark .month-picker:before{border-color:#1e2a38}.app-shell.dark .month-picker-backdrop{background:#00000057}.app-shell.dark .month-picker-grabber{background:#2b3a4d}.app-shell.dark .month-picker-header{color:#eef3f8}.app-shell.dark .month-picker-header button{background:#080d14;border-color:#1e2a38;color:#eef3f8}.app-shell.dark .month-picker-header button:hover,.app-shell.dark .month-picker-header button:active{background:#101722}.app-shell.dark .month-picker-cell{background:#080d14;border-color:#1e2a38;color:#eef3f8}.app-shell.dark .month-picker-cell:hover{background:#101722}.app-shell.dark .month-picker-cell.current:not(.selected){border-color:#3b82f6;color:#8bbdff;box-shadow:inset 0 0 0 1px #3b82f657}.app-shell.dark .month-picker-cell.selected{background:#3b82f6;border-color:#3b82f6;color:#fff;box-shadow:none}.app-shell.dark .tabs{background:#162032;border:0px}.app-shell.dark .tabs button{color:#94a3b8}.app-shell.dark .tabs button:hover{background:#ffffff0f}.app-shell.dark .tabs button.active{background:#2563eb;color:#fff}.app-shell.dark .swaps-header h1,.app-shell.dark .swap-card h2,.app-shell.dark .swap-metric-value{color:#e2e8f0}.app-shell.dark .swaps-filter-btn,.app-shell.dark .swaps-tabs,.app-shell.dark .swaps-tabs button,.app-shell.dark .swap-metric-card,.app-shell.dark .swap-card,.app-shell.dark .swap-empty-card,.app-shell.dark .swap-shift-box{background:#1e293b;border-color:#334155}.app-shell.dark .swaps-filter-btn,.app-shell.dark .swaps-tabs button{color:#e2e8f0}.app-shell.dark .swaps-tabs button.active{background:#2563eb;border-color:#2563eb;color:#fff}.app-shell.dark .swap-shift-line+.swap-shift-line{border-top-color:#334155}.app-shell.dark .swap-card-eyebrow,.app-shell.dark .swap-date,.app-shell.dark .swap-metric-label,.app-shell.dark .swap-side-label,.app-shell.dark .swap-chevron,.app-shell.dark .swap-empty-card{color:#94a3b8}.app-shell.dark .swap-action.secondary{background:#1e293b;border-color:#31508f;color:#bfdbfe}.app-shell.dark .swap-error{background:#3b1217;border-color:#7f1d1d;color:#fecaca}.app-shell.dark .swap-create-modal label{color:#e2e8f0}.app-shell.dark .swap-create-grid fieldset,.app-shell.dark .swap-create-modal input,.app-shell.dark .swap-create-modal select{background:#162032;border-color:#334155;color:#e2e8f0}.app-shell.dark .swap-create-grid legend{color:#94a3b8}.app-shell.dark .settings-dropdown{background:#1e293b;border-color:#334155;box-shadow:0 12px 28px #0006}.app-shell.dark .settings-dropdown button{background:#162032;color:#e2e8f0}.app-shell.dark .settings-dropdown button:hover{background:#273549}.app-shell.dark .tabs.bottom-nav{background:#0a1b2ff0;border-color:#60a5fa2e;box-shadow:0 18px 48px #00000057,inset 0 1px #ffffff14}.app-shell.dark .tabs.bottom-nav button{color:#8195b3}.app-shell.dark .tabs.bottom-nav button:hover:not(.active){background:#60a5fa1a}@keyframes tab-active-pop{0%{transform:scale(.88);opacity:.6}65%{transform:scale(1.04);opacity:1}to{transform:scale(1);opacity:1}}.app-shell.dark .tabs.bottom-nav button.active{color:#eff6ff;background:linear-gradient(180deg,#2563eb,#1d4ed8);border-color:#93c5fd61;border-radius:999px;margin:0;animation:tab-active-pop .22s ease forwards;box-shadow:none}.app-shell.dark .tabs.bottom-nav button.active .tab-icon{opacity:1}.app-shell.dark .mobile-month-bar .month-label,.app-shell.dark .month-arrow-btn{color:#e2e8f0}.app-shell.dark .month-arrow-btn:active{background:#ffffff12}.app-shell.dark .tab-more{color:#8195b3}.app-shell.dark .tab-more.active{color:#eff6ff;background:linear-gradient(180deg,#2563eb,#1d4ed8);border-color:#93c5fd61;border-radius:999px;margin:0;animation:tab-active-pop .22s ease forwards;box-shadow:none}.app-shell.dark .tab-more.open:not(.active){color:#eff6ff;background:#60a5fa1f;border-color:#93c5fd38}.app-shell.dark .more-popup{background:#0a1b2ff7;border-color:#60a5fa33;box-shadow:0 24px 54px #0006}.app-shell.dark .more-popup-item{color:#e2e8f0}.app-shell.dark .more-popup-item:active{background:#60a5fa1f}.app-shell.dark .more-popup-item.active{background:#60a5fa1f;color:#93c5fd}.app-shell.dark .more-popup-section-header{color:#64748b;border-top-color:#273549}.app-shell.dark .more-popup-row-label{color:#e2e8f0}.app-shell.dark .more-popup-danger{color:#f87171}.app-shell.dark .toggle-slider{background:#334155}.app-shell.dark .toggle-switch input:checked+.toggle-slider{background:#2563eb}.app-shell.dark .modal{background:#1e293b;border-color:#334155;color:#e2e8f0}.app-shell.dark .modal h3{color:#e2e8f0}.app-shell.dark .modal button{background:#273549;border-color:#334155;color:#e2e8f0}.app-shell.dark .modal .primary{background:#2563eb;border-color:#2563eb;color:#fff}.app-shell.dark .settings-card{background:#1e293b;border-color:#334155}.app-shell.dark .settings-card-title,.app-shell.dark .settings-card-subtitle{color:#e2e8f0}.app-shell.dark .setting-row,.app-shell.dark select,.app-shell.dark input[type=text],.app-shell.dark input[type=number],.app-shell.dark input[type=password]{background:#162032;border-color:#334155;color:#e2e8f0}.app-shell.dark .cal-mobile-day{background:#1e293b;box-shadow:0 1px 3px #0000004d;color:#e2e8f0}.app-shell.dark .cal-mobile-day.muted{color:#475569}.app-shell.dark .calendar-mobile-bottom{background:#1e293b;box-shadow:0 -2px 10px #0000004d}.app-shell.dark .bottom-shift-column{background:#162032;border-color:#334155}.app-shell.dark .bottom-shift+.bottom-shift{border-top-color:#334155}.app-shell.dark .bottom-empty-column{color:#94a3b8}.app-shell.dark .calendar-mobile-version{border-top-color:#334155}.app-shell.dark .bottom-worker{background:#0f172a;border-color:#334155}.app-shell.dark .bottom-account-worker{background:#172554;border-color:#31508f}.app-shell.dark .bottom-day-code{background:#0f172a;border-color:#31508f;color:#bfdbfe}.app-shell.dark .badge.role-stayer,.app-shell.dark .pill-stayer,.app-shell.dark .cell-role.role-stayer,.app-shell.dark .worker-sheet-code-on-call{background:#fca5a5;border-color:#fca5a5;color:#3f1d1d}.app-shell.dark .badge.role-goer,.app-shell.dark .badge.role-goer1,.app-shell.dark .badge.role-student,.app-shell.dark .pill-goer,.app-shell.dark .pill-student,.app-shell.dark .cell-role.role-goer,.app-shell.dark .cell-role.role-goer1,.app-shell.dark .cell-role.role-student,.app-shell.dark .worker-sheet-code-day{background:#bbf7d0;border-color:#bbf7d0;color:#123524}.app-shell.dark .badge.role-goer2,.app-shell.dark .pill-goer2,.app-shell.dark .cell-role.role-goer2,.app-shell.dark .worker-sheet-code-shift2{background:#e0e7ff;border-color:#e0e7ff;color:#312e81}.app-shell.dark .calendar-shift-code--i,.app-shell.dark .worker-sheet-code-i{background:#bfdbfe;border-color:#bfdbfe;color:#1e3a8a}.app-shell.dark .calendar-shift-code--ii,.app-shell.dark .worker-sheet-code-ii{background:#dcfce7;border-color:#dcfce7;color:#14532d}.app-shell.dark .calendar-shift-code--d,.app-shell.dark .worker-sheet-code-d{background:#cffafe;border-color:#cffafe;color:#164e63}.app-shell.dark .calendar-shift-code--neutral,.app-shell.dark .worker-sheet-code-neutral{background:#94a3b82e;border-color:transparent;color:#cbd5f5}.app-shell.dark .bottom-empty-column,.app-shell.dark .calendar-mobile-version{color:#94a3b8}.app-shell.dark .more-menu-backdrop,.app-shell.dark .worker-sheet-backdrop{background:#0206176b}.app-shell.dark .worker-bottom-sheet{background:#17243a;border-color:#2f4463;color:#e2e8f0;box-shadow:0 -18px 48px #00000070}.app-shell.dark .worker-sheet-handle{background:#64748b}.app-shell.dark .worker-sheet-close{background:#17243a;border-color:#334155;color:#94a3b8}.app-shell.dark .worker-sheet-name,.app-shell.dark .worker-sheet-row,.app-shell.dark .worker-sheet-heading{color:#e2e8f0}.app-shell.dark .worker-sheet-role,.app-shell.dark .worker-sheet-coworkers,.app-shell.dark .worker-sheet-empty{color:#a7b4c8}.app-shell.dark .worker-sheet-you{background:#40506a;color:#d8e3f2}.app-shell.dark .worker-sheet-section{border-color:#2f4463}.app-shell.dark .worker-sheet-mini-day{background:#0f172a;border-color:#334155}.app-shell.dark .worker-sheet-mini-day.has-shift{background:#172554;border-color:#31508f}.app-shell.dark .worker-sheet-mini-dow,.app-shell.dark .worker-sheet-mini-off,.app-shell.dark .worker-sheet-mini-more{color:#94a3b8}.app-shell.dark .worker-sheet-mini-num{color:#e2e8f0}.app-shell.dark .worker-sheet-swap-btn{background:#15803d;box-shadow:0 14px 28px #15803d38}.app-shell.dark .calendar-mobile-wrapper{background:linear-gradient(180deg,#0f172af5,#0f172a 36%),#0f172a}.app-shell.dark .calendar-mobile-grid,.app-shell.dark .calendar-mobile-bottom{background:#111c2e;border-color:#334155;box-shadow:0 18px 36px #00000047}.app-shell.dark .calendar-mobile-weekdays{color:#94a3b8}.app-shell.dark .calendar-mobile-bottom .bottom-header{border-color:#334155;color:#e2e8f0}.app-shell.dark .calendar-mobile-version span{background:#16a34a24;border-color:#86efac47;color:#bbf7d0}.app-shell.dark .cal-mobile-day{background:#111c2e;border-color:#2b3a50;box-shadow:none}.app-shell.dark .cal-mobile-day.muted{background:#0f172a;color:#475569}.app-shell.dark .cal-mobile-day:hover,.app-shell.dark .cal-mobile-day.active{background:#142238;color:#e2e8f0}.app-shell.dark .cal-mobile-day.active{outline-color:#86efac;box-shadow:inset 0 0 0 999px #16a34a1f}.app-shell.dark .bottom-shift-column{background:#111c2e;border-color:#334155}.app-shell.dark .bottom-worker{background:transparent;border-color:#2b3a50;color:#e2e8f0}.app-shell.dark .bottom-name{color:#e2e8f0}.app-shell.dark .bottom-account-worker{background:linear-gradient(90deg,#1665343d,#111c2e00)}.app-shell.dark .worker-sheet-you{background:#facc1524;border-color:#facc1547;color:#fef3c7}.app-shell.dark .worker-sheet-mini-day.has-shift{background:#142238}.app-shell.dark .worker-sheet-coworker-chip{background:#0f172a;border-color:#334155;color:#cbd5e1}.app-shell.dark .worker-sheet-favorite-btn{background:#17243a;border-color:#334155;color:#e2e8f0;box-shadow:none}.app-shell.dark .suggestions-card,.app-shell.dark .site-gate-card,.app-shell.dark .save-summary-banner{background:#1e293b;border-color:#334155;color:#e2e8f0}.app-shell.dark .save-summary-date-btn,.app-shell.dark .save-summary-change{color:#e2e8f0}.app-shell.dark .banner{background:#1d3a5f;border-color:#334155;color:#93c5fd}.app-shell.dark .people-table th,.app-shell.dark .people-table td{border-color:#334155}.app-shell.dark .people-table thead th,.app-shell.dark .people-table .sticky-name{background:#0e182a}.app-shell.dark .people-table th.weekend{background:#233147;color:#cbd5e1}.app-shell.dark .people-table thead th.sort-active,.app-shell.dark .people-table thead th.sort-active:first-child{background:#172554;color:#bfdbfe;box-shadow:inset 0 -3px #60a5fa}.app-shell.dark .people-table thead th.sort-active .date-header small{color:#bfdbfe}.app-shell.dark .people-table td.weekend{background:#141f30}.app-shell.dark .people-role-card{background:#162032;border-color:#334155}.app-shell.dark .people-role-card.twr{border-color:#1d4ed8}.app-shell.dark .people-role-card.app{border-color:#16a34a}.app-shell.dark .shift-card{background:#162032;border-color:#334155;color:#e2e8f0}.app-shell.dark .stats-section{background:#1e293b;border-color:#334155}.app-shell.dark .stat-card,.app-shell.dark .calendar-day-cell.muted{background:#162032;border-color:#334155}.app-shell.dark .cal-shift-pill{background:#1e293b;border-color:#334155}.app-shell.dark .day-number{color:#e2e8f0}.app-shell.dark .suggestion-item{background:#162032;border-color:#334155}.app-shell.dark .suggestion-item.admin{background:#1e293b;border-color:#334155}.app-shell.dark .suggestions-card textarea{background:#1e293b;border-color:#334155;color:#e2e8f0}.app-shell.dark .suggestion-message{background:#162032;border-color:#334155;border-left-color:#3b82f6;color:#e2e8f0}.app-shell.dark .worker-row{background:#162032;border-color:#334155}.app-shell.dark .stayer-run-card{background:#1e293b;border-color:#334155}.app-shell.dark .settings-card button{background:#162032;border-color:#334155;color:#e2e8f0}.app-shell.dark .settings-card button:hover{background:#1d3a5f}.app-shell.dark .account-create-row,.app-shell.dark .account-row{background:#162032;border-color:#334155}.app-shell.dark .account-create-row input,.app-shell.dark .account-create-row select,.app-shell.dark .account-row input,.app-shell.dark .account-row select{background:#0f172a;border-color:#334155;color:#e2e8f0}.app-shell.dark .account-create-row input::placeholder,.app-shell.dark .account-row input::placeholder{color:#94a3b8}.app-shell.dark .account-create-row input:focus,.app-shell.dark .account-create-row select:focus,.app-shell.dark .account-row input:focus,.app-shell.dark .account-row select:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa2e}.app-shell.dark .account-create-row button:not(:disabled),.app-shell.dark .account-row button:not(.danger):not(:disabled){background:#2563eb;border-color:#2563eb;color:#fff}.app-shell.dark .account-create-row button:not(:disabled):hover,.app-shell.dark .account-row button:not(.danger):not(:disabled):hover{background:#1d4ed8}.app-shell.dark .account-row button.danger{background:#3b1f2a;border-color:#7f1d1d;color:#fecaca}.app-shell.dark .account-row button.danger:hover{background:#4c1d2d}.app-shell.dark .version-row{background:#162032;border-color:#334155}.app-shell.dark .version-name,.app-shell.dark .version-section-title{color:#94a3b8}.app-shell.dark .cell-action-btn{background:#1d3a5f;border-color:#334155;color:#93c5fd}.app-shell.dark .cell-action-btn:hover{background:#1e4a7a}.app-shell.dark .cell-action-btn.danger{background:#3b1219;border-color:#7f1d1d;color:#fca5a5}.app-shell.dark .cal-shift-pill .cal-worker,.app-shell.dark .calendar-day-cell{background:#162032;border-color:#334155}.app-shell.dark .stayer-run-dates{color:#b4c2d7}.app-shell.dark .extra-code-pill{background:#394e70;border-color:#314766;color:#e2e8ef}.app-shell.dark .person-avatar{background:#243a5d;border-color:#31508f;color:#dbeafe}.app-shell.dark .name-col-toggle{background:#1e3352;border-color:#2d4a6e;color:#7ea8d8}.app-shell.dark .name-col-toggle:active{background:#172944}.app-shell.dark button:not(.primary):not(.auth-form-btn):not(.suggestion-action-btn):not(.dark-mode-btn):not(.tabs button){color:#e2e8f0}.app-shell.dark .info-tooltip .tooltip-content{background:#e2e8f0;color:#0f172a}.app-shell{--app-bg: #f8fafc;--app-bg-top: #f9fbff;--app-panel: rgba(255, 255, 255, .96);--app-panel-solid: #ffffff;--app-panel-2: #f6f9fd;--app-line: #edf1f6;--app-line-strong: #dce5ef;--app-text: #1e293b;--app-muted: #64748b;--app-soft: #eaf3ff;--app-accent: #2563eb;--app-accent-strong: #1d4ed8;--app-accent-text: #eff6ff;--app-danger: #e11d48;--app-danger-soft: #ffe4e6;--app-shadow: 0 10px 26px rgba(15, 23, 42, .06);--app-shadow-strong: 0 18px 46px rgba(15, 23, 42, .12);--app-radius: 18px;background:radial-gradient(circle at 50% -18%,rgba(147,197,253,.2),transparent 34%),linear-gradient(180deg,var(--app-bg-top) 0%,#f3f7fb 100%);color:var(--app-text)}.app-shell.dark{--app-bg: #061525;--app-bg-top: #07192b;--app-panel: rgba(9, 28, 49, .94);--app-panel-solid: #0b2138;--app-panel-2: #102b49;--app-line: #2d4765;--app-line-strong: #3b5a7c;--app-text: #eef5ff;--app-muted: #9bacc3;--app-soft: #123a61;--app-accent: #60a5fa;--app-accent-strong: #3b82f6;--app-accent-text: #eff6ff;--app-danger: #fb7185;--app-danger-soft: #3a161b;--app-shadow: inset 0 1px 0 rgba(255, 255, 255, .03);--app-shadow-strong: 0 18px 48px rgba(0, 0, 0, .34);background:radial-gradient(circle at 50% -12%,rgba(37,99,235,.22),transparent 34%),linear-gradient(180deg,var(--app-bg-top) 0%,var(--app-bg) 100%);color:var(--app-text)}.app-shell main{color:var(--app-text)}.topbar,.site-gate-card,.auth-popover,.month-picker,.modal,.save-summary-banner,.suggestions-card,.suggestion-item,.swap-card,.swap-empty-card,.swap-metric-card,.swaps-tabs,.swaps-tabs button,.swap-shift-box,.settings-card,.setting-row,.account-create-row,.account-row,.version-row,.stayer-run-card,.stat-card,.shift-card,.calendar-day-cell,.calendar-cell,.calendar-mobile-bottom,.bottom-shift-column,.bottom-worker,.worker-bottom-sheet,.holiday-modal,.calendar-cell-btn,.people-table th,.people-table td{background:var(--app-panel);border-color:var(--app-line-strong);color:var(--app-text);box-shadow:var(--app-shadow)}.topbar,.site-gate-card,.auth-popover,.month-picker,.modal,.suggestions-card,.swap-card,.swap-empty-card,.swap-metric-card,.swaps-tabs,.settings-card,.stayer-run-card,.stat-card,.shift-card,.calendar-day-cell,.calendar-mobile-bottom,.worker-bottom-sheet,.save-summary-banner{border-radius:var(--app-radius)}.site-gate-card,.topbar,.modal,.month-picker,.worker-bottom-sheet,.more-popup{box-shadow:var(--app-shadow-strong)}.topbar{border:1px solid var(--app-line-strong)}.topbar.topbar-staging{background:var(--app-panel-solid);border-color:var(--app-line-strong);color:var(--app-text)}.topbar.topbar-staging .month-label,.topbar.topbar-staging .mode-pill,.topbar.topbar-staging .ghost,.topbar.topbar-staging button,.month-label,.mode-pill,.calendar-cell-btn,.holiday-chip,.freeze-cell,.algo-toggle,.swaps-filter-btn,.swap-create-grid fieldset,.swap-create-modal input,.swap-create-modal select,.account-create-row input,.account-create-row select,.account-row input,.account-row select,.settings-card input,.settings-card select,.settings-card textarea,.suggestions-card textarea,.suggestions-card select,.stats-search input,.save-version-input,.site-gate-input,.auth-form input,select,input[type=text],input[type=number],input[type=password],textarea{background:var(--app-panel-2);border-color:var(--app-line-strong);color:var(--app-text)}.month-label,.mode-pill,.swaps-filter-btn,.calendar-cell-btn,.holiday-chip,.freeze-cell{border-radius:14px}.tabs{background:var(--app-panel);border:1px solid var(--app-line-strong);box-shadow:var(--app-shadow)}.tabs button{color:var(--app-muted)}.tabs button:hover{background:color-mix(in srgb,var(--app-accent) 9%,transparent)}.tabs button.active,.swaps-tabs button.active,.algo-toggle button.active,.freeze-active,.month-picker-cell:hover{background:var(--app-accent);border-color:var(--app-accent);color:var(--app-accent-text);box-shadow:0 10px 22px color-mix(in srgb,var(--app-accent) 28%,transparent)}.app-shell .month-picker.month-picker-sheet{background:#fff;border-color:#e2e8f0f0;color:#111827;border-radius:18px;box-shadow:0 10px 28px #0f172a1f}.app-shell .month-picker.month-picker-sheet:before{border-color:#e2e8f0f0}.app-shell .month-picker.month-picker-sheet .month-picker-header{color:#111827}.app-shell .month-picker.month-picker-sheet .month-picker-header button,.app-shell .month-picker.month-picker-sheet .month-picker-cell{background:#fff;border-color:#e5e7eb;color:#111827;box-shadow:none}.app-shell .month-picker.month-picker-sheet .month-picker-header button:hover,.app-shell .month-picker.month-picker-sheet .month-picker-cell:hover{background:#f8fafc;border-color:#e5e7eb;color:#111827;box-shadow:none}.app-shell .month-picker.month-picker-sheet .month-picker-cell.current:not(.selected){color:#1d4ed8;box-shadow:inset 0 0 0 1px #93c5fd80}.app-shell .month-picker.month-picker-sheet .month-picker-cell.selected{background:#2563eb;color:#fff;box-shadow:none}.app-shell.dark .month-picker.month-picker-sheet{background:#080d14;border-color:#1e2a38;color:#eef3f8}.app-shell.dark .month-picker.month-picker-sheet:before{border-color:#1e2a38}.app-shell.dark .month-picker.month-picker-sheet .month-picker-header{color:#eef3f8}.app-shell.dark .month-picker.month-picker-sheet .month-picker-header button,.app-shell.dark .month-picker.month-picker-sheet .month-picker-cell{background:#080d14;border-color:#1e2a38;color:#eef3f8}.app-shell.dark .month-picker.month-picker-sheet .month-picker-header button:hover,.app-shell.dark .month-picker.month-picker-sheet .month-picker-cell:hover{background:#101722;border-color:#1e2a38;color:#eef3f8}.app-shell.dark .month-picker.month-picker-sheet .month-picker-cell.current:not(.selected){color:#8bbdff;box-shadow:inset 0 0 0 1px #3b82f657}.app-shell.dark .month-picker.month-picker-sheet .month-picker-cell.selected{background:#3b82f6;color:#fff;box-shadow:none}.app-shell.dark .month-picker-footer{border-color:#1e2a38;color:#8bbdff}@media(max-width:900px){.app-shell .month-picker.month-picker-sheet{border-radius:22px;box-shadow:0 18px 42px #0f172a24}}.topbar .primary,.site-gate-btn,.modal button.primary,.suggestion-action-btn.primary,.swap-action.primary,.account-create-row button:not(:disabled),.account-row button:not(.danger):not(:disabled),.worker-sheet-swap-btn{background:var(--app-accent);border-color:var(--app-accent);color:var(--app-accent-text);box-shadow:0 12px 24px color-mix(in srgb,var(--app-accent) 24%,transparent)}.topbar .ghost,.topbar button,.modal button,.settings-card button,.suggestion-action-btn,.swap-action.secondary,.cell-action-btn,.settings-dropdown button{background:var(--app-panel-2);border-color:var(--app-line-strong);color:var(--app-text)}.more-popup,.settings-dropdown{background:var(--app-panel-solid);border-color:var(--app-line-strong);color:var(--app-text);box-shadow:var(--app-shadow-strong)}.more-popup-item,.more-popup-row-label,.settings-dropdown button{color:var(--app-text)}.more-popup-item.active,.tab-more.active{color:var(--app-accent)}.more-popup-section-header,.settings-card-subtitle,.swap-card-eyebrow,.swap-date,.swap-metric-label,.swap-side-label,.swap-chevron,.swap-empty-card,.stat-row,.stayer-run-dates,.calendar-mobile-version,.bottom-empty-column,.worker-sheet-role,.worker-sheet-coworkers,.worker-sheet-empty,.worker-sheet-mini-dow,.worker-sheet-mini-off,.worker-sheet-mini-more,.suggestions-meta-row,.suggestion-message,.suggestion-comment,.version-meta,.empty-state{color:var(--app-muted)}.swaps-header h1,.swap-card h2,.swap-metric-value,.settings-card-title,.stat-name,.stayer-run-name,.summary-title,.worker-sheet-name,.worker-sheet-row,.worker-sheet-heading{color:var(--app-text)}.swap-metric-icon,.overview-daily-icon,.worker-sheet-avatar{background:var(--app-soft);color:var(--app-accent);border-color:color-mix(in srgb,var(--app-accent) 24%,var(--app-line-strong))}.suggestion-category,.swap-status.status-incoming,.save-summary-title{background:var(--app-soft);color:var(--app-accent)}.banner,.save-summary-banner{background:color-mix(in srgb,var(--app-accent) 10%,var(--app-panel));border-color:color-mix(in srgb,var(--app-accent) 28%,var(--app-line-strong));color:var(--app-text)}.swap-error,.suggestions-error,.account-row button.danger,.suggestion-action-btn.delete,.modal-footer .danger,.more-popup-danger{background:var(--app-danger-soft);border-color:color-mix(in srgb,var(--app-danger) 38%,var(--app-line-strong));color:var(--app-danger)}.calendar-mobile-grid,.calendar-mobile-weekdays,.swaps-view,.suggestions-layout,.settings-layout,.stayer-runs,.stats-grid{color:var(--app-text)}.cal-mobile-day{background:var(--app-panel);color:var(--app-text);border:1px solid transparent;box-shadow:var(--app-shadow)}.cal-mobile-day.active{background:var(--app-accent);border-color:var(--app-accent);color:var(--app-accent-text)}.cal-mobile-day.today .cal-mobile-num{background:var(--app-soft);color:var(--app-accent)}.bottom-account-worker,.worker-sheet-mini-day.has-shift{background:color-mix(in srgb,var(--app-accent) 12%,var(--app-panel));border-color:color-mix(in srgb,var(--app-accent) 28%,var(--app-line-strong))}.people-table{border-color:var(--app-line-strong)}.people-table th,.people-table td{border-color:var(--app-line)}.people-table thead th,.people-table .sticky-name{background:var(--app-panel-solid)}.people-role-card,.extra-code-pill,.badge,.pill{box-shadow:none}.summary-title{display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:700}.shift-card{display:flex;flex-direction:column;gap:8px;margin-top:8px}.worker-row{display:flex;align-items:center;justify-content:space-between;background:#f8fafc;border-radius:10px;padding:8px 10px;border:1px solid #e5e7eb}.worker-name{display:flex;align-items:center;gap:8px}.worker-controls{display:flex;align-items:center;gap:10px}select{background:#fff;color:#0f172a;border:1px solid #cbd5e1;border-radius:8px;padding:6px 8px}.badge{padding:4px 8px;border-radius:999px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;border:1px solid #e2e8f0;white-space:nowrap}.role-stayer{background:#fee2e2;color:#b91c1c}.role-goer,.role-goer1,.role-student{background:#dcfce7;color:#166534}.role-goer2{background:#e8f5d5;color:#3b7c38}.pill{padding:4px 10px;border-radius:9px;font-weight:700;text-transform:uppercase;font-size:12px;letter-spacing:.4px;white-space:nowrap}.pill-stayer{background:#fee2e2;color:#b91c1c;border:1px solid #ef4444}.pill-goer,.pill-student{background:#dcfce7;color:#166534;border:1px solid #22c55e}.pill-goer2{background:#e8f5d5;color:#3b7c38;border:1px solid #14b8a6}.pill-twr{background:#1d4ed8;color:#fff}.pill-app{background:#16a34a;color:#fff}.pill-twr.role-stayer,.role-stayer{border-color:#ef4444}.pill-twr.role-goer,.role-goer{border-color:#22c55e}.pill-twr.role-goer2,.role-goer2{border-color:#14b8a6}.badge.role-stayer,.pill-stayer,.cell-role.role-stayer{background:#ffe4e6;border-color:#fda4af;color:#be123c}.badge.role-goer,.badge.role-goer1,.badge.role-student,.pill-goer,.pill-student,.cell-role.role-goer,.cell-role.role-goer1,.cell-role.role-student{background:#eafbef;border-color:#bbf7d0;color:#166534}.badge.role-goer2,.pill-goer2,.cell-role.role-goer2{background:#eef2ff;border-color:#c7d2fe;color:#4338ca}.dot{width:10px;height:10px;border-radius:50%;background:#cbd5e1;display:inline-block}.dot-manual{background:#f59e0b}.dot-past{background:#ef4444}.calendar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.calendar-cell{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:10px;box-shadow:0 6px 16px #0f172a0d}.calendar-scroll{overflow-x:auto;padding-bottom:8px;cursor:grab}.calendar-scroll.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.calendar-cell.holiday{background:#fee2e2;border-color:#fecdd3}.calendar-date{font-weight:700;margin-bottom:6px;display:flex;flex-direction:column;gap:2px}.calendar-date-number{font-size:14px}.calendar-date-dow{font-size:12px;color:#475569}.cell-shift{background:#f8fafc;border-radius:8px;padding:6px;margin-bottom:6px;border:1px solid #e5e7eb}.cell-shift-header{font-size:12px;text-transform:uppercase;letter-spacing:.4px;opacity:.8;margin-bottom:8px}.cell-role{display:flex;align-items:center;gap:8px;padding:6px;margin:4px;border-radius:6px}.cell-role.role-stayer{background:#fee2e2}.cell-role.role-goer{background:#d1fae5}.cell-role.role-goer2{background:#e8f5d5}.bottom-shift-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;min-height:0}.bottom-shift-column{min-width:0;border:1px solid #e5e7eb;border-radius:10px;background:#f8fafc;padding:4px}.bottom-column-title{width:100%;height:28px;margin-bottom:8px;box-sizing:border-box}.bottom-shift{min-width:0}.bottom-shift+.bottom-shift{margin-top:8px;padding-top:8px;border-top:1px solid #e5e7eb}.bottom-shift-body{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0}.bottom-worker{display:flex;align-items:center;gap:6px;justify-content:space-between;min-width:0;border-radius:8px;background:#fff;border:1px solid #e2e8f0;padding:4px 6px;cursor:pointer;touch-action:manipulation}.bottom-worker:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb38}.bottom-day-worker{margin-top:4px}.bottom-account-worker{background:#eef2ff;border-color:#c7d2fe}.bottom-day-code{flex:0 0 auto;min-width:26px;height:21px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;background:#fff;border:1px solid #c7d2fe;color:#4338ca;font-size:11px;font-weight:800;line-height:1}.calendar-shift-code--i{background:#eaf2ff;border-color:#b7d4ff;color:#1d4ed8}.calendar-shift-code--ii{background:#e8f8ee;border-color:#a8e6bd;color:#15803d}.calendar-shift-code--d{background:#ecfeff;border-color:#67e8f9;color:#0e7490}.calendar-shift-code--neutral{background:#f3f4f6;border-color:#a3adbb;color:#4b5563}.bottom-worker-right{display:flex;align-items:center;flex:0 0 auto}.calendar-mobile-bottom .bottom-worker .badge{display:inline-flex;align-items:center;justify-content:center;width:36px;height:22px;box-sizing:border-box;padding:0 6px;text-align:center;overflow:hidden;text-overflow:ellipsis}.calendar-mobile-bottom .bottom-worker select{width:66px;min-width:0;height:24px;box-sizing:border-box;font-size:12px;padding:2px 6px}.bottom-empty-column{display:flex;align-items:center;justify-content:center;min-height:42px;color:#94a3b8;font-size:12px;font-weight:600;text-align:center}.worker-sheet-code{flex:0 0 auto;min-width:54px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;padding:0 12px;font-size:15px;font-weight:850;line-height:1}.worker-sheet-code-blue{background:#dbeafe;color:#1d4ed8}.worker-sheet-code-green{background:#dcfce7;color:#15803d}.worker-sheet-code-purple{background:#ede9fe;color:#6d28d9}.worker-sheet-code-red{background:#fee2e2;color:#dc2626}.worker-sheet-code-on-call{background:#ffe4e6;border:1px solid #fda4af;color:#be123c}.worker-sheet-code-day{background:#eafbef;border:1px solid #bbf7d0;color:#166534}.worker-sheet-code-shift2{background:#eef2ff;border:1px solid #c7d2fe;color:#4338ca}.worker-sheet-code-i{background:#eaf2ff;border:1px solid #b7d4ff;color:#1d4ed8}.worker-sheet-code-ii{background:#e8f8ee;border:1px solid #a8e6bd;color:#15803d}.worker-sheet-code-d{background:#ecfeff;border:1px solid #67e8f9;color:#0e7490}.worker-sheet-code-neutral{background:#f3f4f6;border:1px solid #a3adbb;color:#4b5563}.worker-sheet-code.worker-sheet-mini-code{min-width:0;width:100%;max-width:34px;height:18px;border-radius:9999px;padding:0 4px;font-size:10px}.bottom-name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill-text{display:inline-block;width:100%;text-align:center}.person-display{display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:100%}.person-avatar{flex:0 0 auto;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#dbeafe;color:#1e3a8a;border:1px solid #bfdbfe;font-size:12px;font-weight:850;line-height:1;letter-spacing:0}.person-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-display-table .person-avatar,.person-display-compact .person-avatar,.person-display-inline .person-avatar{width:24px;height:24px;font-size:10px}.person-display-inline{gap:6px}.bottom-name .person-label{min-width:0}.empty-state{padding:12px;color:#475569}.info-tooltip{position:relative;display:inline-flex;justify-content:center;align-items:center;width:22px;height:22px;border-radius:50%;border:1px solid #94a3b8;color:#475569;font-weight:700;font-size:13px;cursor:default}.info-tooltip .tooltip-content{position:absolute;top:28px;left:0;min-width:260px;background:#0f172a;color:#f8fafc;border-radius:10px;padding:10px;box-shadow:0 8px 16px #0000002e;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:5}.info-tooltip:hover .tooltip-content{opacity:1;pointer-events:auto}.info-tooltip .tooltip-content strong{color:#e0f2fe}.app-toast-viewport{position:fixed;left:0;right:0;bottom:24px;z-index:1200;display:grid;justify-items:center;gap:8px;padding:0 16px;pointer-events:none}.app-toast{display:inline-flex;align-items:center;gap:10px;max-width:min(480px,100%);min-height:44px;padding:10px 14px;border-radius:999px;background:#0f172af0;color:#fff;box-shadow:0 16px 34px #0f172a3d;font-size:14px;font-weight:800;line-height:1.25;pointer-events:auto;animation:app-toast-enter .22s cubic-bezier(.22,1,.36,1) both}.app-toast.is-leaving{animation:app-toast-exit .22s ease both}.app-toast-icon{position:relative;display:inline-flex;width:18px;height:18px;flex:0 0 18px;align-items:center;justify-content:center;border-radius:999px;background:#ffffff2e}.app-toast-icon:before{content:"";width:8px;height:4px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-1px) rotate(-45deg)}.app-toast--error .app-toast-icon:before,.app-toast--info .app-toast-icon:before{width:3px;height:10px;border:0;border-radius:999px;background:currentColor;transform:none}.app-toast--error{background:#7f1d1df0}.app-toast--info{background:#1e40aff0}.app-shell.dark .app-toast{border:1px solid rgba(148,163,184,.28);background:#0f2138f5;color:#eef5ff;box-shadow:0 18px 42px #00000070}.app-shell.dark .app-toast--error{background:#5b1826f5}.app-shell.dark .app-toast--info{background:#143669f5}@keyframes app-toast-enter{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes app-toast-exit{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.98)}}@media(max-width:900px){.app-toast-viewport{bottom:calc(92px + env(safe-area-inset-bottom))}.app-toast{width:min(100%,520px);justify-content:center;border-radius:18px;text-align:center}}
