@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#171717;background:#f7f7f8;font-synthesis:none;text-rendering:optimizeLegibility;--page: #f7f7f8;--sidebar: #fcfcfc;--panel: #ffffff;--panel-soft: #fafafa;--panel-hover: #f4f4f5;--line: #e6e6e8;--line-strong: #d8d8dc;--text: #171717;--muted: #737373;--faint: #a3a3a3;--accent: #18181b;--accent-contrast: #ffffff;--backdrop: rgb(10 10 10 / 44%);--shadow: 0 18px 44px rgb(0 0 0 / 12%);--early-bg: #fcd34d;--early-text: #3f2a00;--early-accent: #f59e0b;--night-bg: #7c3aed;--night-text: #ffffff;--night-accent: #8b5cf6;--late-bg: #38bdf8;--late-text: #082f49;--late-accent: #0ea5e9;--ext-bg: #34d399;--ext-text: #052e25;--ext-accent: #10b981;--rdot-bg: #f472b6;--rdot-text: #4a0726;--rdot-accent: #ec4899;--off-bg: #cbd5e1;--off-text: #1e293b;--off-accent: #64748b}:root[data-theme=dark]{color:#f1f1f1;background:#080808;--page: #080808;--sidebar: #0c0c0d;--panel: #0b0b0c;--panel-soft: #111113;--panel-hover: #171719;--line: #252527;--line-strong: #343438;--text: #f1f1f1;--muted: #a1a1aa;--faint: #626268;--accent: #f4f4f5;--accent-contrast: #111113;--backdrop: rgb(0 0 0 / 68%);--shadow: 0 22px 56px rgb(0 0 0 / 48%);--early-bg: #b45309;--early-text: #fff7ed;--early-accent: #fbbf24;--night-bg: #5b21b6;--night-text: #f5f3ff;--night-accent: #a78bfa;--late-bg: #0369a1;--late-text: #f0f9ff;--late-accent: #38bdf8;--ext-bg: #047857;--ext-text: #ecfdf5;--ext-accent: #34d399;--rdot-bg: #be185d;--rdot-text: #fff1f2;--rdot-accent: #fb7185;--off-bg: #475569;--off-text: #f8fafc;--off-accent: #94a3b8}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0}body{overflow:hidden;color:var(--text);background:var(--page)}button,input,textarea{font:inherit}button,label{-webkit-tap-highlight-color:transparent}button{color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid #6d91ff;outline-offset:2px}.cloud-loading,.cloud-gate{display:grid;min-height:100vh;place-items:center;background:var(--page)}.cloud-loading{grid-auto-flow:column;gap:10px;color:var(--muted);font-size:11px}.cloud-gate{height:100vh;overflow-y:auto;padding:24px}.access-shell{display:grid;width:min(860px,100%);min-height:560px;grid-template-columns:35% 65%;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow)}.access-context{position:relative;z-index:2;display:flex;min-width:0;flex-direction:column;padding:28px;border-right:1px solid var(--line);background:var(--panel-soft)}.cloud-gate-brand{display:flex;align-items:center;gap:10px}.cloud-gate-brand strong{font-size:11px;letter-spacing:.055em}.access-context-copy{margin:auto 0}.access-kicker{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:9px;font-weight:600;letter-spacing:.055em;text-transform:uppercase}.access-context-copy h1{max-width:240px;margin:16px 0 0;font-size:clamp(25px,3vw,34px);font-weight:600;letter-spacing:-.055em;line-height:1.02}.access-context-copy p{max-width:235px;margin:18px 0 0;color:var(--muted);font-size:10px;line-height:1.65}.access-mode-switch{position:relative;display:grid;height:38px;grid-template-columns:1fr 1.45fr;padding:3px;border:1px solid var(--line);border-radius:7px;background:var(--panel)}.access-mode-indicator{position:absolute;z-index:0;top:3px;bottom:3px;left:3px;width:calc((100% - 6px)*.408);border-radius:4px;background:var(--accent);transform:translate(0);transition:width .36s cubic-bezier(.22,1,.36,1),transform .36s cubic-bezier(.22,1,.36,1)}.is-register .access-mode-indicator{width:calc((100% - 6px)*.592);transform:translate(69%)}.access-mode-switch button{position:relative;z-index:1;min-width:0;border:0;border-radius:4px;color:var(--muted);background:transparent;font-size:9px;font-weight:600;cursor:pointer;transition:color .18s ease}.access-mode-switch button[aria-selected=true]{color:var(--accent-contrast)}.access-storage-note{margin-top:12px;color:var(--muted);font-size:8px;text-align:center}.access-form-viewport{min-width:0;overflow:hidden}.access-form-track{display:grid;width:200%;min-height:100%;grid-template-columns:1fr 1fr;transform:translate(0);transition:transform .42s cubic-bezier(.22,1,.36,1);will-change:transform}.is-register .access-form-track{transform:translate(-50%)}.access-form-panel{display:flex;min-width:0;flex-direction:column;justify-content:center;padding:clamp(34px,6vw,70px);opacity:1;transform:translate(0);transition:opacity .18s ease,transform .42s cubic-bezier(.22,1,.36,1)}.access-form-panel[aria-hidden=true]{opacity:.18;transform:translate(18px)}.access-form-panel header>span{color:var(--muted);font-size:9px;font-weight:600;letter-spacing:.065em;text-transform:uppercase}.access-form-panel h2{margin:10px 0 0;font-size:25px;font-weight:600;letter-spacing:-.045em}.access-form-panel header p{margin:7px 0 0;color:var(--muted);font-size:10px}.access-form-panel form{display:grid;gap:14px;margin-top:28px}.access-form-panel form>label{display:grid;gap:7px;color:var(--muted);font-size:9px;font-weight:600}.access-form-panel label>small{color:var(--faint);font-size:8px;font-weight:400;line-height:1.4}.access-form-panel input{width:100%;height:40px;padding:0 11px;border:1px solid var(--line-strong);border-radius:6px;outline:0;color:var(--text);background:var(--panel-soft)}.access-form-panel input:focus{border-color:var(--text)}.access-form-panel form>button{display:flex;height:40px;align-items:center;justify-content:center;gap:8px;margin-top:5px;border:0;border-radius:6px;color:var(--accent-contrast);background:var(--accent);font-size:10px;font-weight:600;cursor:pointer}.access-form-panel form>button:disabled{cursor:default;opacity:.55}.cloud-gate-error{margin:0;color:#c04c58;font-size:10px;line-height:1.45}.app-shell{display:grid;grid-template-columns:246px minmax(0,1fr);width:100%;height:100vh;background:var(--page);transition:grid-template-columns .18s ease}.app-shell.is-sidebar-collapsed{grid-template-columns:68px minmax(0,1fr)}.app-sidebar{position:relative;z-index:20;display:flex;min-width:0;flex-direction:column;overflow:hidden;border-right:1px solid var(--line);background:var(--sidebar)}.sidebar-brand{display:flex;height:56px;flex:0 0 56px;align-items:center;gap:11px;padding:0 15px;border-bottom:1px solid var(--line)}.brand-mark{display:inline-grid;width:32px;height:32px;flex:0 0 32px;place-items:center;border-radius:9px;color:var(--accent-contrast);background:var(--accent);font-size:14px;font-weight:700;letter-spacing:-.04em}.sidebar-brand>span:last-child{display:flex;min-width:0;flex-direction:column;gap:1px}.sidebar-brand strong{overflow:hidden;font-size:13px;font-weight:600;line-height:17px;text-overflow:ellipsis;white-space:nowrap}.sidebar-brand .brand-copy strong{font-size:10px;font-weight:700;letter-spacing:.055em}.sidebar-brand small{overflow:hidden;color:var(--muted);font-size:10px;line-height:14px;text-overflow:ellipsis;white-space:nowrap}.sidebar-nav{display:flex;flex:1;flex-direction:column;gap:4px;padding:18px 10px}.sidebar-section{margin:13px 9px 5px;color:var(--faint);font-size:9px;font-weight:600;letter-spacing:.11em;line-height:14px;text-transform:uppercase}.sidebar-section:first-child{margin-top:0}.sidebar-link{display:flex;width:100%;height:36px;align-items:center;gap:11px;padding:0 10px;border:0;border-radius:7px;color:var(--muted);background:transparent;font-size:12px;font-weight:500;text-align:left;cursor:pointer;transition:color .14s ease,background .14s ease}.sidebar-link:hover{color:var(--text);background:var(--panel-hover)}.sidebar-link.is-active{color:var(--text);background:var(--panel-hover);font-weight:600}.sidebar-link svg{flex:0 0 auto}.sidebar-account{display:flex;min-height:64px;align-items:center;gap:10px;margin:10px;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--panel)}.account-avatar,.topbar-avatar{display:inline-grid;place-items:center;border-radius:50%;color:#32245e;background:#e9e0ff;font-size:10px;font-weight:700}.account-avatar{width:31px;height:31px;flex:0 0 31px}.account-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:2px}.account-copy strong{overflow:hidden;font-size:11px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.account-copy small{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:9px;white-space:nowrap}.account-signout{display:grid;width:28px;height:28px;flex:0 0 28px;place-items:center;padding:0;border:0;border-radius:5px;color:var(--muted);background:transparent;cursor:pointer}.account-signout:hover{color:var(--text);background:var(--panel-hover)}.is-sidebar-collapsed .sidebar-label{display:none}.is-sidebar-collapsed .sidebar-brand>.sidebar-label{display:none}.is-sidebar-collapsed .sidebar-brand{justify-content:center;padding-inline:0}.is-sidebar-collapsed .sidebar-nav{align-items:center;padding-inline:8px}.is-sidebar-collapsed .sidebar-link{width:40px;justify-content:center;padding:0}.is-sidebar-collapsed .sidebar-account{justify-content:center;padding:7px 0;border:0;background:transparent}.app-stage{display:grid;min-width:0;height:100vh;grid-template-rows:56px minmax(0,1fr)}.app-topbar{position:relative;z-index:10;display:flex;min-width:0;align-items:center;gap:13px;padding:0 16px;border-bottom:1px solid var(--line);background:var(--panel)}.icon-button{display:inline-grid;width:32px;height:32px;flex:0 0 32px;place-items:center;padding:0;border:1px solid var(--line);border-radius:7px;color:var(--muted);background:var(--panel);cursor:pointer;transition:color .14s ease,border-color .14s ease,background .14s ease}.icon-button:hover{color:var(--text);border-color:var(--line-strong);background:var(--panel-hover)}.sidebar-toggle{border-color:transparent}.global-search{display:flex;width:min(360px,38vw);height:32px;align-items:center;gap:8px;color:var(--faint)}.global-search input{min-width:0;flex:1;padding:0;border:0;outline:0;color:var(--text);background:transparent;font-size:11px}.global-search input::placeholder{color:var(--faint)}.global-search kbd{display:inline-grid;min-width:23px;height:21px;place-items:center;border:1px solid var(--line);border-radius:5px;color:var(--muted);background:var(--panel-soft);font-family:inherit;font-size:9px}.topbar-actions{display:flex;min-width:0;align-items:center;gap:8px;margin-left:auto}.save-status{display:flex;align-items:center;gap:6px;margin-right:3px;color:var(--muted);font-size:9px;white-space:nowrap}.save-status>svg{flex:0 0 auto}.save-status.is-saved{color:#3f9165}.save-status.is-failed{color:#c04c58}.is-spinning{animation:utility-spin .9s linear infinite}@keyframes utility-spin{to{transform:rotate(360deg)}}.theme-toggle{border-color:transparent}.topbar-avatar{width:30px;height:30px;margin-left:2px}.app-content{min-width:0;min-height:0;overflow:hidden;padding:18px;background:var(--page)}.calendar-app{position:relative;display:grid;width:100%;height:100%;min-height:0;grid-template-columns:278px minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.calendar-rail{display:flex;min-height:0;flex-direction:column;overflow-x:hidden;overflow-y:auto;border-right:1px solid var(--line);background:var(--panel);scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.calendar-rail-header{display:flex;min-height:54px;flex:0 0 54px;align-items:center;gap:9px;padding:0 18px;border-bottom:1px solid var(--line)}.calendar-rail-header h1{margin:0;font-size:13px;font-weight:600;letter-spacing:-.01em}.mini-calendar{padding:15px 15px 13px;border-bottom:1px solid var(--line)}.mini-calendar header{display:flex;height:28px;align-items:center;justify-content:space-between;margin-bottom:7px;padding:0 3px}.mini-calendar header strong{font-size:11px;font-weight:600}.mini-calendar header>span{display:flex;align-items:center;gap:1px}.mini-calendar header button,.calendar-search button{display:inline-grid;width:24px;height:24px;place-items:center;padding:0;border:0;border-radius:5px;color:var(--muted);background:transparent;cursor:pointer}.mini-calendar header button:hover,.calendar-search button:hover{color:var(--text);background:var(--panel-hover)}.mini-weekdays,.mini-days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.mini-weekdays span{display:grid;height:22px;place-items:center;color:var(--faint);font-size:8px;font-weight:600;text-transform:uppercase}.mini-days button{position:relative;display:grid;width:25px;height:25px;place-self:center;place-items:center;padding:0;border:0;border-radius:7px;color:var(--muted);background:transparent;font-size:9px;cursor:pointer}.mini-days button:hover{color:var(--text);background:var(--panel-hover)}.mini-days button.is-outside{opacity:.34}.mini-days button.is-today{color:var(--accent-contrast);background:var(--accent);font-weight:600}.mini-days button.has-shift:after{position:absolute;bottom:2px;width:3px;height:3px;border-radius:50%;background:currentColor;content:""}.calendar-search{display:flex;height:34px;flex:0 0 34px;align-items:center;gap:7px;margin:14px 15px 8px;padding:0 9px;border:1px solid var(--line);border-radius:6px;color:var(--faint);background:var(--panel-soft)}.calendar-search:focus-within{border-color:var(--line-strong);box-shadow:0 0 0 2px #6e91ff1a}.calendar-search input{min-width:0;flex:1;padding:0;border:0;outline:0;color:var(--text);background:transparent;font-size:10px}.calendar-search input::placeholder{color:var(--faint)}.calendar-filters{padding:5px 15px 12px}.calendar-filters>header{display:flex;height:28px;align-items:center;justify-content:space-between;padding:0 2px}.calendar-filters>header span{font-size:10px;font-weight:600}.calendar-filters>header small{display:inline-grid;min-width:20px;height:18px;place-items:center;border-radius:9px;color:var(--muted);background:var(--panel-hover);font-size:8px}.calendar-filter{display:flex;height:35px;align-items:center;gap:9px;padding:0 6px;border-radius:6px;cursor:pointer}.calendar-filter:hover{background:var(--panel-hover)}.calendar-filter input,.type-option input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.filter-check{width:11px;height:11px;flex:0 0 11px;border:1px solid currentColor;border-radius:3px;background:currentColor;box-shadow:inset 0 0 0 2px var(--panel);opacity:.92}.calendar-filter input:not(:checked)+.filter-check{background:transparent;opacity:.38}.calendar-filter>span:last-child{display:flex;min-width:0;flex:1;align-items:center;justify-content:space-between;gap:8px}.calendar-filter strong{color:var(--text);font-size:10px;font-weight:500}.calendar-filter small{color:currentColor;font-size:8px;font-weight:600;opacity:.82}.filter-early{color:var(--early-accent)}.filter-night{color:var(--night-accent)}.filter-late{color:var(--late-accent)}.filter-ext{color:var(--ext-accent)}.filter-rdot{color:var(--rdot-accent)}.filter-off{color:var(--off-accent)}.rail-pay-card{display:flex;flex-direction:column;gap:4px;margin:auto 15px 15px;padding:13px;border:1px solid var(--line);border-radius:7px;background:var(--panel-soft)}.rail-pay-card>span{color:var(--muted);font-size:9px}.rail-pay-card>strong{font-size:17px;font-weight:600;letter-spacing:-.04em}.rail-pay-card>small{color:var(--faint);font-size:8px}.rail-pay-card button{display:flex;align-items:center;justify-content:space-between;margin-top:6px;padding:7px 0 0;border:0;border-top:1px solid var(--line);color:var(--text);background:transparent;font-size:9px;font-weight:600;cursor:pointer}.calendar-main{display:grid;min-width:0;min-height:0;grid-template-rows:54px minmax(0,1fr)}.calendar-toolbar{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:16px;padding:0 13px 0 18px;border-bottom:1px solid var(--line)}.calendar-toolbar h2{flex:0 0 auto;margin:0;font-size:13px;font-weight:600;letter-spacing:-.015em}.calendar-toolbar-actions{display:flex;min-width:0;align-items:center;gap:7px}.toolbar-text-button,.toolbar-pay-button,.toolbar-pattern-button,.toolbar-add-button,.secondary-button,.primary-button,.delete-button{display:inline-flex;height:30px;align-items:center;justify-content:center;gap:6px;padding:0 10px;border:1px solid var(--line);border-radius:6px;color:var(--text);background:var(--panel);font-size:9px;font-weight:500;white-space:nowrap;cursor:pointer}.toolbar-text-button:hover,.toolbar-pay-button:hover,.toolbar-pattern-button:hover,.secondary-button:hover{border-color:var(--line-strong);background:var(--panel-hover)}.toolbar-group{display:inline-flex;overflow:hidden;border:1px solid var(--line);border-radius:6px}.toolbar-group button,.toolbar-icon-button{display:inline-grid;width:30px;height:28px;place-items:center;padding:0;border:0;color:var(--muted);background:var(--panel);cursor:pointer}.toolbar-group button+button{border-left:1px solid var(--line)}.toolbar-icon-button{width:30px;border:1px solid var(--line);border-radius:6px}.toolbar-group button:hover,.toolbar-icon-button:hover{color:var(--text);background:var(--panel-hover)}.toolbar-add-button,.primary-button{border-color:var(--accent);color:var(--accent-contrast);background:var(--accent)}.toolbar-add-button:hover,.primary-button:hover{opacity:.88}.calendar-scroll{min-width:0;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.month-grid{display:grid;width:100%;min-width:720px;height:100%;min-height:492px;grid-template-columns:repeat(7,minmax(92px,1fr));grid-template-rows:34px repeat(6,minmax(76px,1fr))}.month-weekday{display:flex;align-items:center;padding:0 11px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:8px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.month-weekday:last-of-type{border-right:0}.month-day{position:relative;min-width:0;min-height:0;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);cursor:pointer;transition:background .12s ease}.month-day:nth-child(7n){border-right:0}.month-day:nth-last-child(-n+7){border-bottom:0}.month-day:hover{background:var(--panel-soft)}.month-day.is-outside{background:color-mix(in srgb,var(--panel-soft) 70%,transparent)}.day-number{display:grid;width:21px;height:21px;place-items:center;margin:0 0 5px auto;padding:0;border:0;border-radius:50%;color:var(--muted);background:transparent;font-size:9px;cursor:pointer}.month-day.is-outside .day-number{color:var(--faint);opacity:.48}.month-day.is-today .day-number{color:var(--accent-contrast);background:var(--accent);font-weight:600}.day-events{display:flex;min-width:0;flex-direction:column;gap:3px}.duty-event{display:flex;width:100%;min-width:0;height:20px;align-items:center;gap:5px;overflow:hidden;padding:0 7px;border:0;border-radius:4px;font-size:8px;text-align:left;cursor:pointer}.duty-event b{overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.duty-event span{margin-left:auto;opacity:.8;white-space:nowrap}.duty-event svg{flex:0 0 auto}.event-day,.event-early{color:var(--early-text);background:var(--early-bg)}.event-night{color:var(--night-text);background:var(--night-bg)}.event-late{color:var(--late-text);background:var(--late-bg)}.event-ext{color:var(--ext-text);background:var(--ext-bg)}.event-rdot{color:var(--rdot-text);background:var(--rdot-bg)}.event-off{color:var(--off-text);background:var(--off-bg)}.more-events{height:17px;padding:0 3px;border:0;color:var(--muted);background:transparent;font-size:8px;text-align:left;cursor:pointer}.pay-sheet-backdrop,.duty-modal-backdrop{position:fixed;z-index:100;inset:0;display:flex;align-items:stretch;justify-content:flex-end;background:var(--backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:backdrop-in .14s ease both}.pay-sheet{display:flex;width:min(400px,94vw);height:100%;flex-direction:column;gap:16px;overflow-y:auto;padding:19px;border-left:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);animation:sheet-in .18s ease both}.pay-sheet-header,.duty-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.section-kicker{display:block;margin-bottom:4px;color:var(--muted);font-size:8px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.pay-sheet-header h2,.duty-modal-header h2{margin:0;font-size:18px;font-weight:600;letter-spacing:-.03em}.pay-total-card{display:flex;min-height:116px;flex-direction:column;justify-content:center;padding:18px;border-radius:9px;color:var(--accent-contrast);background:var(--accent)}.pay-total-card span{font-size:9px;opacity:.68}.pay-total-card strong{margin:5px 0 4px;font-size:27px;font-weight:600;letter-spacing:-.05em}.pay-total-card small{font-size:8px;opacity:.62}.salary-settings,.pay-breakdown,.formula-card{padding:15px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.salary-settings>header,.pay-breakdown>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.salary-settings>header strong,.pay-breakdown>header strong{display:block;font-size:11px;font-weight:600}.salary-settings>header svg{color:#58a879}.salary-settings>label{display:grid;grid-template-columns:1fr 160px;align-items:center;gap:10px;margin-top:9px;color:var(--muted);font-size:9px}.money-input,.number-input{display:flex;height:34px;align-items:center;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:var(--panel)}.money-input b,.number-input b{flex:0 0 auto;padding:0 9px;border-right:1px solid var(--line);color:var(--faint);font-size:8px;font-weight:600}.money-input input,.number-input input{width:100%;min-width:0;height:100%;padding:0 9px;border:0;outline:0;color:var(--text);background:transparent;font-size:10px;font-weight:500}.pay-breakdown dl{margin:0}.pay-breakdown dl>div{display:flex;min-height:34px;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line)}.pay-breakdown dt{color:var(--muted);font-size:9px}.pay-breakdown dd{display:flex;align-items:flex-end;flex-direction:column;margin:0;font-size:10px;font-weight:600}.pay-breakdown dd small{margin-top:2px;color:var(--faint);font-size:7px;font-weight:400}.formula-card code{display:block;margin:9px 0 11px;padding:10px;border:1px solid var(--line);border-radius:6px;color:var(--muted);background:var(--panel);font-family:SFMono-Regular,Consolas,monospace;font-size:8px;line-height:1.6}.formula-card a{display:inline-flex;align-items:center;gap:5px;color:var(--text);font-size:8px;font-weight:600;text-decoration:none}.pay-disclaimer{margin:-4px 0 0;color:var(--faint);font-size:8px;line-height:1.5;text-align:center}.duty-modal-backdrop{align-items:center;justify-content:center;padding:20px}.pattern-modal{width:min(650px,100%);max-height:min(760px,calc(100vh - 40px));overflow-y:auto;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:var(--shadow);animation:modal-in .17s ease both}.pattern-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 19px;border-bottom:1px solid var(--line)}.pattern-modal-header h2{margin:0;font-size:18px;font-weight:600;letter-spacing:-.03em}.pattern-modal-body{display:flex;flex-direction:column;gap:16px;padding:18px 19px 19px}.pattern-cycle-card{padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.pattern-cycle-card>header{display:flex;align-items:center;gap:10px}.pattern-cycle-icon{display:grid;width:32px;height:32px;flex:0 0 32px;place-items:center;border-radius:7px;color:var(--accent-contrast);background:var(--accent)}.pattern-cycle-card header>div{display:flex;min-width:0;flex-direction:column;gap:3px}.pattern-cycle-card header strong{font-size:11px;font-weight:600}.pattern-cycle-card header small{overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.pattern-ribbon{display:flex;min-width:0;height:48px;gap:3px;margin-top:14px}.pattern-segment{display:flex;min-width:0;flex:1;flex-direction:column;justify-content:center;gap:2px;padding:0 8px;overflow:hidden;border-radius:5px}.pattern-segment.pattern-early,.pattern-segment.pattern-night,.pattern-segment.pattern-late{flex:3}.pattern-segment strong{overflow:hidden;font-size:8px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.pattern-segment span{font-size:7px;opacity:.7}.pattern-early{color:var(--early-text);background:var(--early-bg)}.pattern-night{color:var(--night-text);background:var(--night-bg)}.pattern-late{color:var(--late-text);background:var(--late-bg)}.pattern-off{color:var(--off-text);background:var(--off-bg)}.pattern-cycle-card>p{margin:11px 0 0;color:var(--muted);font-size:8px;line-height:1.55}.pattern-form{display:flex;flex-direction:column;gap:14px}.pattern-date-grid{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:end;gap:9px}.pattern-date-arrow{display:grid;width:28px;height:36px;place-items:center;color:var(--faint)}.pattern-error{margin:-5px 0 0;color:#bd4e52;font-size:8px}.pattern-copy-row{display:flex;min-height:58px;align-items:center;justify-content:space-between;gap:16px;padding:10px 11px;border:1px solid var(--line);border-radius:7px;background:var(--panel-soft)}.pattern-copy-row>span{display:flex;min-width:0;flex-direction:column;gap:3px}.pattern-copy-row strong{font-size:9px;font-weight:600}.pattern-copy-row small{color:var(--muted);font-size:8px}.pattern-modal-actions{display:flex;justify-content:flex-end;gap:7px;margin:2px -19px -19px;padding:13px 19px;border-top:1px solid var(--line);background:var(--panel-soft)}.primary-button:disabled{cursor:not-allowed;opacity:.42}.duty-modal{width:min(570px,100%);max-height:min(760px,calc(100vh - 40px));overflow-y:auto;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:var(--shadow);animation:modal-in .17s ease both}.duty-modal-header{padding:18px 19px;border-bottom:1px solid var(--line)}.duty-modal-form{display:flex;flex-direction:column;gap:16px;padding:18px 19px 19px}.form-field{display:flex;min-width:0;flex-direction:column;gap:7px;color:var(--text);font-size:9px;font-weight:500}.form-field>span>small{margin-left:3px;color:var(--faint);font-size:8px;font-weight:400}.form-field>input,.form-field>textarea{width:100%;border:1px solid var(--line);border-radius:6px;outline:0;color:var(--text);background:var(--panel-soft);font-size:10px}.form-field>input{height:36px;padding:0 10px}.form-field>input:disabled{cursor:not-allowed;opacity:.45}.form-field>textarea{min-height:70px;resize:vertical;padding:10px;line-height:1.5}.form-field>input:focus,.form-field>textarea:focus{border-color:var(--line-strong);box-shadow:0 0 0 2px #6e91ff1a}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.type-picker{min-width:0;margin:0;padding:0;border:0}.type-picker legend{margin-bottom:7px;padding:0;font-size:9px;font-weight:500}.type-picker>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.type-option{display:flex;min-width:0;min-height:54px;flex-direction:column;justify-content:center;gap:3px;padding:8px;border:1px solid var(--line);border-radius:6px;color:var(--muted);background:var(--panel-soft);cursor:pointer}.type-option:hover{border-color:var(--line-strong)}.type-option.is-selected{color:var(--text);border-color:currentColor;box-shadow:inset 0 0 0 1px currentColor}.type-option strong{font-size:9px;font-weight:700}.type-option span{overflow:hidden;color:var(--muted);font-size:7px;text-overflow:ellipsis;white-space:nowrap}.type-early.is-selected{color:var(--early-text);background:var(--early-bg)}.type-night.is-selected{color:var(--night-text);background:var(--night-bg)}.type-late.is-selected{color:var(--late-text);background:var(--late-bg)}.type-ext.is-selected{color:var(--ext-text);background:var(--ext-bg)}.type-rdot.is-selected{color:var(--rdot-text);background:var(--rdot-bg)}.type-off.is-selected{color:var(--off-text);background:var(--off-bg)}.number-input{width:180px}.number-input b{order:2;border-right:0;border-left:1px solid var(--line)}.night-check{display:grid;grid-template-columns:33px 1fr;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:7px;background:var(--panel-soft);cursor:pointer}.night-check input{position:absolute;opacity:0;pointer-events:none}.night-check-mark{display:grid;width:31px;height:31px;grid-row:1;place-items:center;border-radius:6px;color:var(--faint);background:var(--panel-hover)}.night-check input:checked+.night-check-mark{color:var(--night-text);background:var(--night-bg)}.night-check>span:last-child{display:flex;grid-column:2;grid-row:1;flex-direction:column;gap:3px;color:var(--muted);font-size:8px;line-height:1.4}.night-check strong{color:var(--text);font-size:9px;font-weight:600}.duty-modal-actions{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:7px;margin:2px -19px -19px;padding:13px 19px;border-top:1px solid var(--line);background:var(--panel-soft)}.delete-button{color:#bd4e52;border-color:transparent;background:transparent}.delete-button:hover{background:#bd4e5214}@keyframes backdrop-in{0%{opacity:0}}@keyframes sheet-in{0%{transform:translate(24px);opacity:0}}@keyframes modal-in{0%{transform:translateY(8px) scale(.99);opacity:0}}@media(max-width:1100px){.calendar-app{grid-template-columns:244px minmax(0,1fr)}.toolbar-pay-button,.toolbar-pattern-button{width:30px;padding:0;font-size:0}}@media(max-width:900px){.app-shell,.app-shell.is-sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.app-sidebar{position:fixed;z-index:80;inset:0 auto 0 0;width:246px;box-shadow:14px 0 38px #00000024;transition:transform .18s ease}.is-sidebar-collapsed .app-sidebar{transform:translate(-100%)}.is-sidebar-collapsed .sidebar-label{display:initial}.is-sidebar-collapsed .sidebar-brand,.is-sidebar-collapsed .sidebar-account,.is-sidebar-collapsed .sidebar-link{justify-content:initial}.is-sidebar-collapsed .sidebar-brand{padding-inline:15px}.is-sidebar-collapsed .sidebar-nav{align-items:stretch;padding-inline:10px}.is-sidebar-collapsed .sidebar-link{width:100%;padding:0 10px}.is-sidebar-collapsed .sidebar-account{padding:10px;border:1px solid var(--line);background:var(--panel)}}@media(max-width:760px){.cloud-gate{align-items:start;padding:14px}.access-shell{min-height:0;grid-template-columns:1fr}.access-context{padding:20px;border-right:0;border-bottom:1px solid var(--line)}.access-context-copy{margin:42px 0 36px}.access-context-copy h1{max-width:310px;font-size:27px}.access-context-copy p{max-width:360px}.access-storage-note{display:none}.access-form-viewport{min-height:430px}.access-form-panel{justify-content:flex-start;padding:32px 20px 36px}.app-content{padding:9px}.calendar-app{display:block}.calendar-rail{display:none}.calendar-main{width:100%;height:100%}.calendar-toolbar{padding-left:13px}.month-grid{min-width:700px}.save-status{display:none}}@media(max-width:560px){.app-topbar{gap:7px;padding-inline:9px}.global-search{width:auto;flex:1}.global-search kbd,.topbar-avatar{display:none}.calendar-toolbar h2{font-size:11px}.toolbar-text-button,.toolbar-icon-button{display:none}.calendar-toolbar-actions{gap:5px}.toolbar-add-button{width:30px;padding:0;font-size:0}.type-picker>div{grid-template-columns:repeat(3,minmax(0,1fr))}.pattern-ribbon{height:auto;flex-wrap:wrap}.pattern-segment,.pattern-segment.pattern-early,.pattern-segment.pattern-night,.pattern-segment.pattern-late{min-width:calc(33.333% - 3px);height:42px;flex:1 0 calc(33.333% - 3px)}.pattern-date-grid{grid-template-columns:1fr}.pattern-date-arrow{display:none}.pattern-copy-row{align-items:stretch;flex-direction:column}.pattern-modal-actions{display:grid;grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.duty-modal-actions{grid-template-columns:1fr 1fr}.duty-modal-actions>span{display:none}.delete-button{grid-column:1 / -1;justify-self:start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
