:root{--panel: #f1f5f9;--border: #e2e8f0;--muted: #64748b;--code-dim: #cbd5e1;font-family:system-ui,Noto Sans TC,sans-serif;font-size:14px;color:#1f2937;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:#fff;color:#1f2937}td{background:#fff}table{border-collapse:collapse}th,td{border:1px solid var(--border);padding:3px 6px;text-align:center;white-space:nowrap}th{background:var(--panel);position:sticky}table.form th,table.form td{text-align:left;white-space:normal;border:0;vertical-align:top}table.form th{position:static;background:transparent}table.form tbody tr{border-top:1px solid var(--border)}.dept{background:#eef2f7;font-weight:700;text-align:left}.w6{background:#d9ead3;--code-dim: #9ec98e}.w7{background:#f4cccc;--code-dim: #e99b9b}.w0{background:#fce5cd;--code-dim: #f6b36d}.rt-special{background:#cfe2f3}table.sched{border-collapse:separate;border-spacing:0}table.sched th,table.sched td{border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);position:relative}table.sched thead th[data-col],table.sched tbody td[data-cell]{padding:3px 2px}table.sched thead th{position:sticky;top:0;z-index:3;box-shadow:0 1px 0 var(--tab-rule)}table.sched thead th:not(.w6):not(.w7):not(.w0){background:var(--tab-track)}table.sched thead th.w6{background:#ccdcc6}table.sched thead th.w0{background:#e8d3bd}table.sched tbody tr:hover td:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:#2563eb12}@media (hover: none) and (pointer: coarse){table.sched tbody td:not(.sched-pin){position:static!important}table.sched tbody tr:hover td:after{content:none}table.sched .oncall-mark{position:static;display:inline-block;vertical-align:bottom}}:root{--tab-track: #dde4ed;--tab-rule: #cbd5e1;--tab-ink: #475569;--tab-ink-on: #1f2937;--tab-focus: #2563eb}:is(.tabs,.tab-group-row)>button,.segs>button,.tabs-bottom>button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;margin:0;border:0;background:transparent;font:inherit;font-size:13px;line-height:1;white-space:nowrap;color:var(--tab-ink);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background-color .13s ease,color .13s ease,box-shadow .13s ease,border-color .13s ease}:is(.tabs,.tab-group-row)>button:focus-visible,.segs>button:focus-visible,.tabs-bottom>button:focus-visible{outline:2px solid var(--tab-focus);outline-offset:-3px}.tab-label{display:inline-block}.tabs .tab-badge,.tabs .tab-marks,.segs .tab-badge,.segs .tab-marks{position:absolute;right:3px;top:3px;margin:0}.tabs .tab-marks,.segs .tab-marks{width:auto}:is(.tabs,.tab-group-row)>button:has(.tab-badge){padding-left:28px;padding-right:28px}.segs>button:has(.tab-marks){padding-left:23px;padding-right:23px}:is(.tabs,.tab-group-row)>button[aria-current=page] .tab-label,:is(.tabs,.tab-group-row)>button[aria-selected=true] .tab-label,:is(.tabs,.tab-group-row)>button[aria-expanded=true] .tab-label,.segs>button[aria-current=page] .tab-label,.segs>button[aria-selected=true] .tab-label,.tabs-bottom>button[aria-current=page] .tab-label{-webkit-text-stroke:.2px currentColor}.tab-dot{flex:none;width:6px;height:6px;border-radius:50%;background:var(--accent, #64748b)}.tab-badge{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:17px;padding:0 4px;border-radius:999px;font-size:11px;line-height:1;font-variant-numeric:tabular-nums;color:var(--accent, #475569);background:#eef2f7;background:color-mix(in srgb,var(--accent, #64748b) 12%,#fff);box-shadow:inset 0 0 0 1px #d6dfe9;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent, #64748b) 26%,#fff)}.tab-badge[data-empty=true]{visibility:hidden}.tab-badge.urgent{background:#b00;color:#fff;box-shadow:none}.tab-marks{flex:none;display:inline-flex;align-items:center;justify-content:flex-end;gap:3px;width:17px;pointer-events:none}.tab-mark{flex:none;width:7px;height:7px}.tab-mark.mine{border-radius:50%;background:#0a7d4f}.tab-mark.over{border-radius:1px;background:#b00;transform:rotate(45deg)}.tab-caret{flex:none;position:relative;width:9px;height:9px;opacity:.75}.tab-caret:before{content:"";position:absolute;left:1px;top:2px;width:5px;height:5px;border-right:1.4px solid currentColor;border-bottom:1.4px solid currentColor;transform:rotate(-45deg);transition:transform .16s ease}:is(.tabs,.tab-group-row)>button[aria-expanded=true] .tab-caret:before{transform:rotate(45deg)}.tabs{display:flex;align-items:flex-end;flex-wrap:nowrap;gap:2px;padding:5px 8px 0;background:var(--tab-track);border-bottom:1px solid var(--tab-rule)}:is(.tabs,.tab-group-row)>button{flex:none;height:32px;padding:0 12px;gap:8px;margin-bottom:-1px;background:var(--tint-off, transparent);border:1px solid var(--tab-rule);border-top:2px solid transparent;border-bottom:0;border-radius:6px 6px 0 0}.tight-table{width:auto}.tight-table th,.tight-table td{padding:2px 3px}.tight-table select{font-size:11px;padding:0;max-width:100%}.tabs>.tab-end{margin-left:auto}.tab-step{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1.5px solid #cbd5e1;margin-right:4px;font-size:10px;font-weight:700;color:var(--muted);background:#fff;flex:none}.tab-step--done{border-color:#2a7d4f;background:#2a7d4f;color:#fff}.tab-step--doing{border-color:#b05a00;color:#b05a00}.tab-guide{flex:1;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:6px;align-self:center;padding:0 6px;font-size:12px;overflow:hidden}.period-strip{display:flex;align-items:center;gap:4px;padding:3px 10px;background:var(--panel);border-bottom:1px solid var(--border);font-size:11px}.period-strip__label{color:var(--muted);margin-right:2px}.period-strip>button{height:20px;padding:0 9px;border-radius:999px;border:1px solid var(--border);display:inline-flex;align-items:center;gap:3px;background:#fff;color:var(--muted);font-size:11px;cursor:pointer;line-height:1}.period-strip>button:hover{border-color:var(--strip-accent);color:var(--strip-accent)}.period-strip>button[aria-current=page]{background:var(--strip-accent);border-color:var(--strip-accent);color:#fff;font-weight:600}.tabs>.tab-group{display:flex;flex-direction:column;align-items:flex-start;flex:none}.tabs>.tab-group>.tab-glabel{font-size:10px;line-height:1;letter-spacing:.08em;color:var(--tab-ink);padding:0 4px 3px;white-space:nowrap;-webkit-user-select:none;user-select:none}.tab-group-row{display:flex;align-items:flex-end;gap:2px}.tabs>.tab-sep{flex:none;width:1px;align-self:stretch;margin:7px 5px 4px;background:var(--tab-rule)}:is(.tabs,.tab-group-row)>button[aria-current=page],:is(.tabs,.tab-group-row)>button[aria-selected=true],:is(.tabs,.tab-group-row)>button[aria-expanded=true]{background:var(--tint, #fff);border-top-color:var(--accent, #1155cc);color:var(--accent, #1155cc)}:is(.tabs,.tab-group-row)>button[aria-current=page]:after,:is(.tabs,.tab-group-row)>button[aria-selected=true]:after,:is(.tabs,.tab-group-row)>button[aria-expanded=true]:after{content:"";position:absolute;left:-1px;right:-1px;bottom:-1px;height:2px;background:var(--tint, #fff)}@media (hover: hover) and (pointer: fine){:is(.tabs,.tab-group-row)>button:hover{background:var(--tint, rgba(15, 23, 42, .05));color:var(--tab-ink-on)}:is(.tabs,.tab-group-row)>button[aria-current=page]:hover,:is(.tabs,.tab-group-row)>button[aria-selected=true]:hover,:is(.tabs,.tab-group-row)>button[aria-expanded=true]:hover{color:var(--accent, #1155cc)}.segs>button:hover{background:#ffffff9e;color:var(--tab-ink-on)}.segs>button[aria-current=page]:hover,.segs>button[aria-selected=true]:hover{background:#fff;color:var(--accent, #334155)}.tabs-bottom>button:hover{background:var(--tint, rgba(15, 23, 42, .04));color:var(--tab-ink-on)}}@media (max-width: 1280px){.tabs{overflow-x:auto;scrollbar-width:none}.tabs>.tab-guide{position:sticky;right:0;z-index:2;flex:none;background:var(--tab-track);padding-left:10px;box-shadow:-10px 0 10px -10px #0f172a73}.tabs>.tab-guide .ui-guidebar__info{display:none}.tabs::-webkit-scrollbar{height:0}:is(.tabs,.tab-group-row)>button{margin-bottom:0;border-bottom:2px solid transparent}:is(.tabs,.tab-group-row)>button[aria-current=page]:after,:is(.tabs,.tab-group-row)>button[aria-selected=true]:after,:is(.tabs,.tab-group-row)>button[aria-expanded=true]:after{display:none}:is(.tabs,.tab-group-row)>button[aria-current=page],:is(.tabs,.tab-group-row)>button[aria-selected=true],:is(.tabs,.tab-group-row)>button[aria-expanded=true]{border-bottom-color:var(--accent, #1155cc)}}.segs{display:flex;flex-wrap:wrap;gap:2px;row-gap:2px;padding:3px;border-radius:8px;background:#0f172a12}.segs>button{height:28px;padding:0 12px;gap:6px;border-radius:5px}.segs>button[aria-current=page],.segs>button[aria-selected=true]{background:#fff;color:var(--accent, #334155);box-shadow:0 1px 2px #0f172a14,0 0 0 1px #0f172a0d}.tabs-bottom{display:flex;flex:none;align-items:stretch;gap:0;background:var(--tab-track);border-top:1px solid var(--tab-rule)}.tabs-bottom>button{flex:1 1 0;min-width:0;min-height:calc(48px + env(safe-area-inset-bottom));padding:0 4px env(safe-area-inset-bottom);background:var(--tint-off, transparent);border-top:2px solid transparent;border-right:1px solid var(--tab-rule)}.tabs-bottom>button[aria-current=page]{background:var(--tint, #fff);border-top-color:var(--accent, #1155cc);color:var(--accent, #1155cc)}.tabs-bottom .tab-label{position:relative}.tabs-bottom .tab-badge,.tabs-bottom .tab-marks{position:absolute;left:100%;bottom:60%;margin-left:2px}.tabs-bottom .tab-marks{width:auto}.tabs-bottom>.tab-plain{flex:none;width:52px;font-size:12px;color:var(--tab-ink)}.tabs-bottom--compact>button{min-height:calc(34px + env(safe-area-inset-bottom));font-size:13px}.app-root{height:100vh;height:100dvh}.mobile-panels button{min-height:36px!important;padding:6px 12px!important;font-size:13px!important;border-radius:6px}.mobile select,.mobile input,.mobile textarea{min-height:36px!important;font-size:16px!important;max-width:100%}.mobile-panels table{display:block;overflow-x:auto}.mobile-panels .ui-toolbar{flex-direction:column;align-items:stretch;gap:8px}.mobile-panels .ui-toolbar>*{width:100%}.mobile-panels .ui-toolbar .ui-select,.mobile-panels .ui-toolbar .ui-input{width:100%!important;min-height:38px}.mobile-panels .ui-toolbar .ui-btn{min-height:40px;justify-content:center}.mobile-panels .ui-toolbar>span:not([class]){font-size:12px;color:var(--muted);margin-bottom:-4px}.mobile-panels .ui-panel--bare{border:none;margin:0}.mobile-panels .ui-section{margin:6px 8px}.mobile-panels .ui-panel--bare .pagebar__title{display:none}.mobile-panels{padding-bottom:calc(56px + env(safe-area-inset-bottom))!important}@media (max-width: 767px){.pending-users table,.accounts-panel table,.staff-panel table{display:block;overflow-x:auto;max-width:100%}}.login{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.login input{flex:1 1 140px;min-width:0;padding:4px}.login button{padding:4px 12px;cursor:pointer}.login-note{color:var(--muted);font-size:11px}.login-note.err{color:#b00;font-size:12px}.login .login-pw{flex:1 1 140px;min-width:0}.login .login-pw input{flex:1 1 auto}.login .login-pw button{flex:none;min-height:0;padding:0}@media (max-width: 767px){.login input{flex:1 0 100%;min-height:40px;font-size:16px}.login button{flex:1 1 0;min-height:40px;font-size:14px}.login-note,.login .login-pw{flex:1 0 100%}}.pop{backdrop-filter:blur(8px) saturate(150%);-webkit-backdrop-filter:blur(8px) saturate(150%);animation:pop-in .14s cubic-bezier(.16,1,.3,1)}[data-fresh]{animation:cell-fresh 5s ease-out forwards}@keyframes cell-fresh{0%{box-shadow:inset 0 0 0 2px #f59e0b}70%{box-shadow:inset 0 0 0 2px #f59e0b}to{box-shadow:inset 0 0 0 2px transparent}}.remote-notice{display:flex;align-items:center;gap:6px;padding:4px 10px;font-size:13px;background:#fff7e6;color:#7c4a03;border-bottom:1px solid #f6d9a6}.remote-notice__close{margin-left:auto;border:0;background:transparent;color:inherit;font-size:16px;line-height:1;cursor:pointer;padding:0 4px}@keyframes pop-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.pop button{padding:3px 7px;margin:2px;font-size:12px;cursor:pointer;border:1px solid var(--border);border-radius:6px;background:#fff;transition:background .12s,border-color .12s}.pop button:hover{background:#eaf1ff;border-color:#93c5fd;color:#1d4ed8}@media print{.no-print{display:none!important}html,body,.app-root{height:auto!important;overflow:visible!important}.print-area{overflow:visible!important;height:auto!important;flex:none!important;border:0!important}table.sched th,table.sched td{position:static!important}table.sched thead{display:table-header-group}table.sched tr{break-inside:avoid;page-break-inside:avoid}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:A4 landscape;margin:8mm}table.sched{font-size:9px}}.oncall-mark{position:absolute;right:0;bottom:0;line-height:0;background:#6a1b9a;color:#fff;border-radius:2px 0 0;padding:.5px .5px 0 1px;pointer-events:none}:is(.tabs,.tab-group-row)>button[data-current-step]{box-shadow:inset 0 -3px 0 0 var(--accent)}.cell-more{margin-top:6px;border-top:1px dashed var(--border);padding-top:4px}.cell-more>summary{cursor:pointer;font-size:11px;color:var(--muted);-webkit-user-select:none;user-select:none}.cell-more[open]>summary{color:inherit;font-weight:700}:root{--ui-primary: #1155cc;--ui-primary-bg: #e8eef7;--ui-danger: #b00020;--ui-danger-bg: #fbe4e4;--ui-ok: #0a5c33;--ui-ok-bg: #eaf4ea;--ui-warn: #a15c00;--ui-warn-bg: #fdf3dd;--ui-info: #334155;--ui-info-bg: #eef2f7;--ui-radius: 5px;--ui-fs: 12px}.ui-btn{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;font-size:var(--ui-fs);line-height:1;border:1px solid var(--border);border-radius:var(--ui-radius);background:#fff;color:#1f2937;cursor:pointer;white-space:nowrap;vertical-align:middle}.ui-btn:hover:not(:disabled){background:#f3f6fa;border-color:#cbd5e1}.ui-btn:focus-visible{outline:2px solid var(--tab-focus);outline-offset:1px}.ui-btn:disabled{opacity:.5;cursor:default}.ui-btn--primary{border-color:var(--ui-primary);color:var(--ui-primary);font-weight:600}.ui-btn--primary:hover:not(:disabled){background:var(--ui-primary-bg);border-color:var(--ui-primary)}.ui-btn--danger{border-color:var(--ui-danger);color:var(--ui-danger)}.ui-btn--danger:hover:not(:disabled){background:var(--ui-danger-bg);border-color:var(--ui-danger)}.ui-btn--ghost{border-color:transparent;background:transparent;color:var(--muted)}.ui-btn--ghost:hover:not(:disabled){background:#0000000f;border-color:transparent;color:#1f2937}.ui-btn--sm{height:22px;padding:0 7px;font-size:11px}.ui-btn--icon{width:26px;padding:0;justify-content:center}.ui-btn--sm.ui-btn--icon{width:22px}.ui-select,.ui-input{height:26px;padding:0 6px;font-size:var(--ui-fs);border:1px solid var(--border);border-radius:var(--ui-radius);background:#fff;color:#1f2937;vertical-align:middle}.ui-input[type=date]{padding:0 4px}.ui-select:focus-visible,.ui-input:focus-visible{outline:2px solid var(--tab-focus);outline-offset:1px}.ui-check{display:inline-flex;align-items:center;gap:4px;font-size:var(--ui-fs);cursor:pointer}.ui-field{display:inline-flex;align-items:center;gap:5px;font-size:var(--ui-fs)}.ui-field__label{color:var(--muted);white-space:nowrap}.ui-field__hint{color:var(--muted);font-size:11px}.ui-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0;font-size:var(--ui-fs)}.ui-toolbar__right{margin-left:auto;display:inline-flex;gap:6px;align-items:center}.ui-section{border:1px solid var(--border);border-radius:6px;margin:8px 0;background:#fff}.ui-section__head{display:flex;align-items:center;gap:8px;padding:5px 10px;background:var(--panel);border-bottom:1px solid var(--border);border-radius:6px 6px 0 0;font-size:var(--ui-fs);cursor:default}details.ui-section>summary.ui-section__head{cursor:pointer;list-style:none}details.ui-section>summary.ui-section__head::-webkit-details-marker{display:none}details.ui-section:not([open])>summary.ui-section__head{border-bottom:none;border-radius:6px}.ui-section__title{font-weight:600}.ui-section__extra{margin-left:auto;color:var(--muted);display:inline-flex;gap:6px;align-items:center}.ui-section__body{padding:8px 10px}.ui-table-wrap{overflow-x:auto;max-width:100%}.ui-table{border-collapse:collapse;font-size:var(--ui-fs);width:100%;table-layout:auto}.ui-table th{text-align:left;padding:0 8px;height:28px;background:var(--panel);border-bottom:1px solid var(--border);white-space:normal;line-height:1.2;font-weight:600;color:#334155}.ui-table td{padding:0 8px;height:28px;border-bottom:1px solid #eef2f7;vertical-align:middle}.ui-table tr:hover>td{background:#f8fafc}.ui-table th.ui-td--first,.ui-table td.ui-td--first{font-weight:600;color:#0f172a;white-space:nowrap}.ui-table th.ui-td--num,.ui-table td.ui-td--num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ui-table th.ui-td--act,.ui-table td.ui-td--act{text-align:right;width:1%;white-space:nowrap}.ui-table td.ui-td--act .ui-btn{visibility:hidden}.ui-table tr:hover td.ui-td--act .ui-btn,.ui-table tr:focus-within td.ui-td--act .ui-btn,.ui-table td.ui-td--act .ui-btn--keep{visibility:visible}@media (hover: none){.ui-table td.ui-td--act .ui-btn{visibility:visible}}.ui-table--lead th:first-child,.ui-table--lead tr:not(.ui-tr--group):not(.ui-tr--detail)>td:first-child{font-weight:600;color:#0f172a;white-space:nowrap}.ui-table--acts th:last-child,.ui-table--acts tr:not(.ui-tr--group):not(.ui-tr--detail)>td:last-child{text-align:right;width:1%;white-space:nowrap}.ui-table--acts tr:not(.ui-tr--group):not(.ui-tr--detail)>td:last-child .ui-btn{visibility:hidden}.ui-table--acts tr:hover>td:last-child .ui-btn,.ui-table--acts tr:focus-within>td:last-child .ui-btn,.ui-table--acts td:last-child .ui-btn--keep,.ui-table--acts td:last-child .ui-btn--primary{visibility:visible}@media (hover: none){.ui-table--acts td:last-child .ui-btn{visibility:visible}}.ui-table .ui-select,.ui-table .ui-input{height:22px;font-size:11px}.ui-table .ui-btn{height:22px;padding:0 7px;font-size:11px}.ui-empty{color:var(--muted);font-size:var(--ui-fs);padding:8px 2px}.ui-badge{display:inline-block;padding:0 6px;border-radius:9px;font-size:11px;line-height:16px;font-weight:600}.ui-badge--muted{background:#e2e8f0;color:#475569}.ui-badge--info{background:var(--ui-primary-bg);color:var(--ui-primary)}.ui-badge--warn{background:var(--ui-warn-bg);color:var(--ui-warn)}.ui-badge--danger{background:var(--ui-danger-bg);color:var(--ui-danger)}.ui-badge--ok{background:var(--ui-ok-bg);color:var(--ui-ok)}.ui-msg{display:flex;align-items:flex-start;gap:8px;padding:4px 8px;margin:4px 0;font-size:var(--ui-fs);border-radius:var(--ui-radius);white-space:pre-wrap}.ui-msg__text{flex:1;min-width:0}.ui-msg--ok{background:var(--ui-ok-bg);color:var(--ui-ok)}.ui-msg--danger{background:var(--ui-danger-bg);color:var(--ui-danger)}.ui-msg--warn{background:var(--ui-warn-bg);color:var(--ui-warn)}.ui-msg--info{background:var(--ui-info-bg);color:var(--ui-info)}.ui-guidebar__info{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);text-align:right}.ui-guidebar__info--miss{color:var(--ui-warn)}.ui-guidebar__warn{flex:none;display:inline-flex;align-items:center;gap:3px;border:1px solid #e5c07b;background:#fff8e6;color:#a15c00;border-radius:10px;padding:1px 8px;font-size:var(--ui-fs);cursor:pointer}.ui-guidebar__warn:hover{background:#ffefc2}.ui-stepfocus{display:flex;align-items:center;gap:6px;padding:3px 6px;margin:2px 0 4px;border:1px solid #e5c07b;background:#fff8e6;color:#a15c00;border-radius:4px;font-size:var(--ui-fs)}.ui-warn--block{color:#800}.ui-warn--red{color:#b00}.ui-warn--yellow{color:#a15c00}.ui-warn--info{color:var(--muted)}.holiday-board{border-collapse:collapse;font-size:var(--ui-fs);width:100%}.holiday-board th,.holiday-board td{border:1px solid #eef2f7;padding:2px 6px;vertical-align:top;text-align:left}.holiday-board thead th{background:var(--panel);font-weight:600;text-align:center;position:sticky;top:0;z-index:2;white-space:normal;line-height:1.2}.holiday-board thead th.w6,.holiday-board thead th.w7,.holiday-board thead th.w0{text-align:center}.holiday-board .hb-type{font-weight:400;font-size:11px;color:var(--muted)}.holiday-board th.hb-name,.holiday-board td.hb-name{position:sticky;left:0;z-index:1;background:#fff;white-space:nowrap;font-weight:600;min-width:84px}.holiday-board thead th.hb-name{z-index:3;background:var(--panel)}.holiday-board tr.hb-group>td{background:var(--tab-track);font-weight:700;padding:4px 8px;white-space:nowrap}.holiday-board tr.hb-group>td .ui-muted{font-weight:400}.holiday-board tr.hb-toggle{cursor:pointer}.holiday-board tr.hb-role>td{min-width:96px}.holiday-board tr.hb-role .ui-tag{font-size:11px}.holiday-board .hb-cell{display:flex;flex-wrap:wrap;gap:3px;align-items:center}.holiday-board .hb-cell .ui-tag{cursor:pointer}.holiday-board .hb-add{position:relative;display:inline-flex;width:22px;height:22px}.holiday-board .hb-add>.ui-btn{pointer-events:none}.holiday-board .hb-add>select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.holiday-board .hb-add:hover>.ui-btn{background:var(--ui-primary-bg);color:var(--ui-primary);border-color:var(--ui-primary)}.holiday-board tr.hb-person>td{height:22px;padding:0 6px}.holiday-board td.hb-code{text-align:center;white-space:nowrap;cursor:pointer}.holiday-board .hb-duty{color:#0a7d4f}.holiday-board tr.hb-person.hb-hl>td{box-shadow:inset 0 0 0 2px #e5c07b}.holiday-board .ui-tag.hb-hl{outline:2px solid #e5c07b}.batch-cals{display:flex;gap:10px;margin:6px 0}.batch-cal{flex:1 1 0;min-width:0;border:1px solid var(--border);border-radius:6px;padding:6px 8px;background:#fff}.batch-cal__title{font-size:var(--ui-fs);font-weight:600;margin-bottom:4px}.batch-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:2px}.batch-cal__head{font-size:11px;color:var(--muted);text-align:center}.batch-cal__cell{min-height:34px;border-radius:4px;padding:2px 3px;font-size:11px;line-height:1.2;cursor:pointer;border:1px solid var(--border)}.batch-cal__cell:not(.w6):not(.w7):not(.w0){background:#fff}.batch-cal__cell:hover{outline:1px solid var(--ui-primary)}.batch-cal__cell--out{color:var(--code-dim);background:transparent!important;border-color:transparent;cursor:default}.batch-cal__cell--out:hover{outline:none}.batch-cal__cell--leave{border:1.5px solid #c00}.batch-cal__cell--busy{opacity:.5;cursor:progress}.batch-cal__day{color:var(--muted);font-size:10px;display:inline-block;padding:0 4px;border-radius:8px}.batch-cal__cell--today .batch-cal__day{background:var(--ui-primary);color:#fff}.batch-cal__code{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.batch-cal__rest{color:#c00}.batch-cal__hol{font-size:10px;color:#c2410c;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.batch-cal__taken{display:flex;flex-wrap:wrap;gap:2px;margin-top:1px}.batch-cal__chip{display:inline-block;padding:0 4px;border-radius:7px;font-size:10px;line-height:14px;background:#faf6e8;border:1px solid #d9cda4;color:#8a6d3b;white-space:nowrap}.batch-cal__duty{color:#0a7d4f}.ui-slice{border:1px solid var(--border);border-radius:6px;overflow:auto;max-width:100%;background:#fff;margin:6px 0;max-height:260px}.ui-slice table{border-collapse:collapse;font-size:11px}.ui-slice th,.ui-slice td{padding:2px 4px;border:1px solid #eef2f7;text-align:center;white-space:nowrap}.ui-slice th{background:var(--panel);font-weight:600;position:sticky;top:0;z-index:1}.ui-slice th.ui-slice__name,.ui-slice td.ui-slice__name{text-align:left;position:sticky;left:0;background:#fff;z-index:2}.ui-slice th.ui-slice__name{z-index:3;background:var(--panel)}.ui-slice td.ui-slice__cell{cursor:pointer;min-width:30px}.ui-slice td.ui-slice__cell:hover{outline:2px solid var(--ui-primary);outline-offset:-2px}.ui-slice td.ui-slice__hl{box-shadow:inset 0 0 0 2px var(--ui-primary)}.ui-slice__foot{display:flex;justify-content:flex-end;gap:8px;padding:2px 6px;font-size:11px;color:var(--muted)}.grid-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0f172a73;display:flex;flex-direction:column;padding:16px}.grid-overlay__box{flex:1;min-height:0;display:flex;flex-direction:column;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 20px 50px #00000059}.grid-overlay__bar{flex:none;display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--border);background:var(--panel);font-size:var(--ui-fs)}.grid-overlay__body{flex:1;min-height:0;display:flex;flex-direction:column}.pagebar{margin-bottom:6px}.pagebar__row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-height:26px}.pagebar__title{font-size:13px;white-space:nowrap}.pagebar__actions{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}.pagebar__status{color:var(--muted);font-size:var(--ui-fs)}.pagebar__help{margin-left:auto}.pagebar__helpbox{margin-top:6px;padding:6px 10px;border-radius:6px;background:#00000009;font-size:var(--ui-fs);line-height:1.6;color:#334155}.ui-panel{border:1px solid var(--border);border-radius:6px;padding:8px 12px 10px;margin-top:8px;font-size:var(--ui-fs);background:#fff}.ui-panel--bare{margin-top:0}.station-swap-form{border:0;margin:0 0 8px;background:transparent}.station-swap-form>.ui-section__head{border:0;padding:0;background:transparent}.station-swap-form>.ui-section__body{padding:0}.station-swap-dates{white-space:normal;max-width:240px}.ui-table tr.ui-tr--hl>td{background:var(--ui-warn-bg)}.ui-table tr.ui-tr--done>td{color:var(--muted);background:#f8fafc}.ui-table tr.ui-tr--dim>td{opacity:.65}.ui-table td.ui-td--note{padding-top:0;font-size:11px}.ui-table .ui-td--right{text-align:right;white-space:nowrap}.ui-section--info{border-color:var(--ui-primary)}.ui-section--info>.ui-section__head{background:var(--ui-primary-bg);color:var(--ui-primary)}.ui-section--danger{border-color:var(--ui-danger)}.ui-section--danger>.ui-section__head{background:var(--ui-danger-bg);color:var(--ui-danger)}.ui-section--warn{border-color:#e0c060}.ui-section--warn>.ui-section__head{background:var(--ui-warn-bg);color:var(--ui-warn)}.ui-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:3px 0;border-bottom:1px solid var(--border);font-size:var(--ui-fs)}.ui-row:last-child{border-bottom:none}.ui-note{font-size:11px;color:var(--muted)}.ui-notes{display:inline-flex;gap:10px;flex-wrap:wrap;font-size:11px}.ui-tag{display:inline-flex;align-items:center;gap:1px;border:1px solid var(--border);border-radius:4px;padding:0 1px 0 5px;background:#fff;white-space:nowrap}.ui-tag .ui-btn--sm.ui-btn--icon{width:18px;height:18px}.ui-scroll{max-height:40vh;overflow:auto}.ui-w-narrow{max-width:120px}.ui-w-xnarrow{max-width:80px}.ui-w-num{width:56px}.ui-table th,.ui-table td{border-width:0;border-bottom-width:1px;text-align:left}.ui-table th{position:static}.ui-table.ui-table--tight th,.ui-table.ui-table--tight td{padding:0 8px}.ui-table.ui-table--tight .ui-select{padding:0 2px}.ui-table tr.ui-tr--new>td{background:#f3f8ff}.ui-table tr.ui-tr--muted>td{color:var(--muted);background:#fafafa}.ui-table tr.ui-tr--busy>td{opacity:.5}.ui-table tr.ui-tr--detail>td{background:#f3f8ff;padding:6px 10px}.ui-table tr.ui-tr--group>td{background:var(--tab-track);font-weight:700;white-space:normal}.ui-table td.ui-td-note{white-space:normal;font-size:11px}.ui-td-center{text-align:center}.ui-td-right{text-align:right}.ui-actions{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.ui-muted{color:var(--muted)}.ui-text-info{color:var(--ui-primary)}.ui-text-ok{color:var(--ui-ok)}.ui-text-warn{color:var(--ui-warn)}.ui-text-danger{color:var(--ui-danger)}.ui-nowrap{white-space:nowrap}.ui-select.ui-select--set{color:var(--ui-primary);font-weight:700}.ui-select.ui-select--unset{color:var(--muted)}.ui-card{border:1px solid var(--border);border-radius:6px;padding:6px 8px;margin-bottom:8px;background:#fff}.ui-scrollbox{display:inline-block;max-width:100%;overflow:auto;border:1px solid var(--border);border-radius:6px}.ui-chips{display:flex;flex-wrap:wrap;gap:4px}.ui-chip{display:inline-flex;align-items:center;gap:4px;font-size:var(--ui-fs);padding:3px 8px;border-radius:6px;cursor:pointer;border:1px solid var(--border);background:#fff}.ui-chip input{margin:0}.ui-chip--on{border-color:var(--ui-ok);background:var(--ui-ok-bg)}.ui-chip--busy{opacity:.5}.ui-panel--notice{border-color:#e0c060;background:#fffbe6}.ui-hr{border:0;border-top:1px dashed var(--border);margin:4px 0}.ui-checks{display:inline-flex;gap:6px;flex-wrap:wrap}.ui-check--danger{color:var(--ui-danger)}.ui-msg--inline{display:inline-flex;margin:0;padding:2px 8px}.ui-table.ui-table--full{width:100%}.ui-table.ui-table--top td{vertical-align:top}.ui-table tr.ui-tr--set>td{background:#f3f8ff}.ui-name{font-weight:600;white-space:nowrap}.ui-chip--off{color:var(--muted);background:#f4f4f4}.ui-chip--locked{cursor:not-allowed}.ui-chip__sub{font-size:10px;color:var(--muted)}.ui-card--done{background:var(--panel)}.ui-card__head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ui-card__body{white-space:pre-wrap;margin-top:2px}.ui-card__more{margin-top:2px;color:var(--muted)}.ui-card__more>summary{cursor:pointer}.ui-pre{white-space:pre-wrap;word-break:break-all;margin:2px 0;font-size:11px;font-family:inherit}.ui-notebox{margin-top:6px;padding:4px 6px;background:var(--panel);border:1px solid var(--border);border-radius:4px;color:var(--muted);font-size:var(--ui-fs)}.ui-btn.ui-btn--report{background:#b35c00;border-color:#b35c00;color:#fff;font-weight:700}.ui-btn.ui-btn--report:hover:not(:disabled){background:#9e5000;border-color:#9e5000}.ui-popover{position:fixed;right:12px;top:44px;z-index:60;width:380px;max-width:92vw;background:#fff;border:1px solid var(--border);border-radius:8px;padding:10px;box-shadow:0 6px 24px #0000002e;font-size:var(--ui-fs)}.ui-popover__head{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:13px}.ui-textarea{width:100%;box-sizing:border-box;font-size:var(--ui-fs);font-family:inherit;padding:4px 6px;border:1px solid var(--border);border-radius:var(--ui-radius)}.ui-textarea:focus-visible{outline:2px solid var(--tab-focus);outline-offset:1px}.ui-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;flex:none}.ui-dot--todo{color:var(--muted)}.ui-dot--doing{color:#b05a00}.ui-dot--done{color:#2a7d4f}.ui-progress{background:#fff;margin-bottom:10px}.ui-progress--slim{display:flex;align-items:center;gap:6px;padding:3px 8px;font-size:var(--ui-fs)}.ui-progress--slim .ui-toolbar__right{margin-left:auto;display:inline-flex;align-items:center;gap:4px}.ui-visfold{margin-top:4px;border-top:1px solid var(--border);padding-top:3px;font-size:var(--ui-fs)}.ui-visfold>summary{cursor:pointer;display:flex;align-items:baseline;gap:6px;color:#334155}.ui-visfold>summary .ui-muted{font-size:11px}.ui-visfold__body{padding:4px 0 2px}.ui-batch{display:grid;grid-template-columns:auto auto repeat(7,minmax(28px,auto)) auto;gap:2px 6px;align-items:center;margin:2px 0 6px;padding:4px 6px;border-radius:4px;background:#00000008}.ui-batch__col{display:inline-flex;justify-content:center;color:var(--muted)}.ui-batch__dot{cursor:pointer}.ui-batch__cur.ui-btn{background:#3b5b8c;border-color:#3b5b8c;color:#fff;opacity:1}.ui-setup__note{color:var(--muted);font-size:11px;line-height:1.6;margin:0 0 4px}.ui-setup__list{display:grid;gap:2px}.ui-setup__row{display:grid;grid-template-columns:18px 92px 1fr auto;gap:2px 8px;align-items:start;padding:4px 6px;border-radius:4px;background:#00000008}.ui-setup__ico{margin-top:1px}.ui-setup__ico--ok{color:#2a7d4f}.ui-setup__ico--warn{color:#a15c00}.ui-setup__ico--info{color:#3b5b8c}.ui-setup__ico--unknown{color:var(--muted)}.ui-setup__label{font-weight:600}.ui-setup__body{display:grid;gap:1px;min-width:0}.ui-setup__missing{color:#a15c00}.ui-setup__why{color:var(--muted);font-size:11px;line-height:1.5}@media (max-width: 900px){.ui-setup__row{grid-template-columns:18px 1fr auto}.ui-setup__body{grid-column:1 / -1;grid-row:2}.ui-setup__row>:last-child{grid-column:3;grid-row:1}}.ui-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#00000059;display:flex;align-items:center;justify-content:center;padding:16px}.ui-modal__box{background:#fff;border:1px solid var(--border);border-radius:6px;font-size:var(--ui-fs);width:min(760px,96vw);max-height:86vh;display:flex;flex-direction:column}.ui-modal__head{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border)}.ui-modal__title{font-size:14px}.ui-modal__body{overflow:auto;padding:6px 12px;min-height:0;flex:1}.ui-modal__foot{display:flex;gap:8px;align-items:center;padding:8px 12px;border-top:1px solid var(--border)}.ui-rule{border-top:1px solid var(--border);padding:6px 0}.ui-rule__row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}.ui-rule__name{flex:1 1 220px;min-width:0}.ui-rule__dot{display:inline-flex}.ui-rule__what{color:var(--muted);font-size:11px;margin-top:2px;line-height:1.5}.ui-rule--hardlist{margin-top:10px}.ui-rule__hard{opacity:.75;padding:2px 0}.ui-warn--blue{color:var(--ui-primary)}.ui-inbox{font-size:var(--ui-fs)}.ui-inbox__section{margin-top:6px}.ui-inbox__head{font-weight:700;color:var(--muted)}.ui-inbox__row{display:flex;gap:6px;align-items:flex-start;flex-wrap:wrap;padding:6px 2px;border-top:1px solid var(--border)}.ui-inbox--compact .ui-inbox__row{padding:8px 2px}.ui-inbox__main{flex:1 1 200px;min-width:0}.ui-inbox__main>.ui-badge{margin-right:6px}.ui-inbox__date{font-size:13px;margin-right:6px}.ui-inbox__detail{font-size:11px;color:var(--muted);margin-top:2px}.ui-inbox__actions{display:inline-flex;gap:4px;flex-wrap:wrap;align-items:center}.ui-inbox__goto{color:var(--ui-primary)}.ui-btn--alarm{background:#b00;border-color:#b00;color:#fff;font-weight:700}.ui-btn--alarm:hover:not(:disabled){background:#900;border-color:#900}.dlg-actions .ui-btn{height:36px;padding:0 16px;font-size:13px}.sched-msg{margin:0;border-radius:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.ui-btn.brush-btn--station{border-color:#7a4bd0;color:#7a4bd0;background:#f3ecff}.psb{display:flex;flex-direction:column;gap:4px}.psb-group{display:flex;align-items:flex-start;gap:6px;border-bottom:1px solid #eef2f7;padding:3px 0}.psb-group__head{flex:none;width:72px;display:flex;flex-direction:column;gap:1px;padding:3px 4px;font-size:var(--ui-fs)}.psb-group__head .ui-muted{font-size:10px}.psb-group__head .ui-btn{height:18px;padding:0 4px;font-size:10px;margin:0}.psb-cards{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center}.psb-card{display:inline-flex;align-items:center;gap:4px;padding:1px 2px 1px 0;border:1px solid var(--border);border-radius:14px;background:#fff;font-size:11px}.psb-card--target{cursor:copy}.psb-card--target:hover{border-color:var(--ui-primary);box-shadow:0 0 0 2px var(--ui-primary-bg)}.psb-card--support{border-color:#9db8e8;background:#f5f8ff}.psb-card--custom{border-style:dashed}.psb-card--none{border-style:dashed;background:#fafafa}.psb-card--empty .psb-card__head{color:var(--ui-danger)}.psb-card--over{border-color:var(--ui-danger)}.psb-card--over .psb-card__count{color:var(--ui-danger)}.psb-card__head{display:inline-flex;align-items:center;gap:3px;padding:0 6px 0 8px;border-right:1px solid #e2e8f0;white-space:nowrap}.psb-card__head .ui-badge{font-size:9px;line-height:13px;padding:0 4px}.psb-card__name{font-weight:700}.psb-card__count{color:var(--muted);font-variant-numeric:tabular-nums}.psb-card__body{display:inline-flex;flex-wrap:wrap;gap:3px;padding:1px 2px;min-height:18px;align-items:center}.psb-card__empty{color:var(--muted);font-size:10px;padding:0 4px}.psb-chip{display:inline-flex;align-items:center;padding:0 7px;border-radius:10px;border:1px solid transparent;background:#eef2f7;cursor:grab;-webkit-user-select:none;user-select:none;white-space:nowrap;line-height:17px}.psb-chip:hover{background:#e2e8f0}.psb-chip--ov{border-color:var(--ui-primary)}.psb-chip--picked{background:var(--ui-primary);color:#fff;border-color:var(--ui-primary)}.psb-chip--drag{opacity:.4}.psb-chip__slot{font-style:normal;font-size:10px;margin-left:2px;color:var(--ui-primary)}.psb-chip--picked .psb-chip__slot{color:#fff}.psb-chip__days{font-style:normal;font-size:10px;margin-left:3px;color:var(--ui-warn);font-weight:700}.psb-chip--picked .psb-chip__days{color:#fff}.psb--cols{flex-direction:row;align-items:flex-start;gap:6px;overflow-x:auto;padding-bottom:4px}.psb--cols .psb-group{flex:none;width:200px;flex-direction:column;align-items:stretch;border:1px solid #eef2f7;border-bottom:1px solid #eef2f7;border-radius:6px;padding:3px 4px;background:#fcfcfd}.psb--cols .psb-group__head{width:auto;flex-direction:row;align-items:center;flex-wrap:wrap;gap:4px}.psb--cols .psb-cards{flex:none;width:100%;flex-direction:column;align-items:stretch;gap:4px}.psb--cols .psb-card{display:flex;flex-direction:column;align-items:stretch;border-radius:6px;padding:0}.psb--cols .psb-card__head{border-right:none;border-bottom:1px solid #e2e8f0;padding:1px 6px}.psb--cols .psb-card__count{margin-left:auto}.psb--cols .psb-card__body{display:flex;flex-wrap:wrap;padding:3px 4px}.psb--cols .psb-card--empty .psb-card__head{border-bottom:none}.grid-filter{flex:none;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:4px 8px;border:1px solid var(--border);border-bottom:0;background:var(--panel);font-size:var(--ui-fs)}.grid-filter--on{background:#fff8e6;border-color:#e5c07b;box-shadow:inset 3px 0 #e5c07b}.grid-filter--on .grid-filter__count{color:#a15c00;font-weight:700}.grid-filter .ui-input{height:24px}.grid-wrap{display:flex;align-items:stretch;gap:0;min-height:0}.grid-dock{flex:none;width:270px;display:flex;flex-direction:column;min-height:0;border:1px solid var(--border);border-left:0;background:var(--panel)}.grid-dock__bar{flex:none;display:flex;align-items:center;gap:4px;padding:4px 4px 0}.grid-dock__body{flex:1;min-height:0;overflow:auto;padding:6px}.grid-dock__warns{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.grid-dock__warns>li{font-size:var(--ui-fs);line-height:1.45}.grid-dock__warns>li>button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:3px 4px;border-radius:4px;font:inherit;color:inherit;cursor:pointer}.grid-dock__warns>li>button:hover{background:#fff}.grid-dock__tab{flex:none;width:22px;border:1px solid var(--border);border-left:0;background:var(--panel);color:var(--muted);font-size:11px;cursor:pointer;padding:6px 0;writing-mode:vertical-rl;text-orientation:mixed}.grid-dock__tab:hover{background:#fff;color:var(--ink, #0f172a)}@media (max-width: 1100px){.grid-dock{width:220px}}.sched tr.sched-group>th{position:sticky;left:0;text-align:left;background:#eef2f7;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:2px 8px;font-size:11px;font-weight:400;white-space:nowrap}.sched-group__toggle{border:0;background:transparent;font:inherit;cursor:pointer;padding:0 6px 0 0;display:inline-flex;align-items:center;gap:3px;color:inherit}.sched-group__toggle:hover{text-decoration:underline}.sched-group__inner{position:sticky;left:0;display:inline-flex;align-items:baseline;padding-right:8px;background:inherit}.sched tr.sched-group>th .sched-group__inner>span{margin-left:10px}.sched-group__miss{color:#a15c00}.sched-group__warn{color:#b00}.sched-group__ok{color:#2a7d4f}.sched tr.sched-group--dark .sched-group__miss{color:#ffcf8f}.sched tr.sched-group--dark .sched-group__warn{color:#ffa8a8}.sched tr.sched-group--dark .sched-group__ok{color:#8fe3ac}.sched tr.sched-group--dark .ui-muted{color:#ffffffc7}.code-vis{border:0;background:transparent;font:inherit;cursor:pointer;padding:0 2px;color:var(--ink, #0f172a);border-radius:3px}.code-vis:hover:not(:disabled){background:#0f172a12}.code-vis:focus-visible{outline:2px solid var(--ui-focus, #1155cc);outline-offset:1px}.code-vis--off{color:#a8b0ba}.code-vis:disabled{cursor:default}.code-fav{border:0;background:transparent;cursor:pointer;padding:0 1px;font-size:12px;line-height:1;color:#cbd5e1}.code-fav:hover:not(:disabled){color:#b08900}.code-fav--on{color:#e0a800}.code-fav:focus-visible{outline:2px solid var(--ui-focus, #1155cc);outline-offset:1px}.code-fav:disabled{cursor:default}.ui-filterchips{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:3px 0 2px}.ui-fchip{display:inline-flex;align-items:center;gap:4px;font:inherit;font-size:var(--ui-fs);line-height:1;padding:4px 9px;border-radius:999px;border:1px solid var(--border);background:#fff;color:#1f2937;cursor:pointer}.ui-fchip:hover:not(:disabled){background:#f3f6fa;border-color:#cbd5e1}.ui-fchip:focus-visible{outline:2px solid var(--tab-focus);outline-offset:1px}.ui-fchip:disabled{opacity:.45;cursor:default}.ui-fchip__n{font-variant-numeric:tabular-nums;color:var(--muted)}.ui-fchip--on{border-color:var(--ui-primary);background:var(--ui-primary-bg);color:var(--ui-primary);font-weight:700}.ui-fchip--on .ui-fchip__n{color:inherit}.ui-fchip--warn{color:var(--ui-warn);border-color:#e5c07b}.ui-fchip--warn.ui-fchip--on{color:var(--ui-warn);border-color:var(--ui-warn);background:var(--ui-warn-bg)}.ui-senior{white-space:nowrap;font-variant-numeric:tabular-nums}.ui-senior--bad{display:inline-flex;align-items:center;gap:3px;color:var(--ui-warn)}.ui-grip{display:inline-flex;align-items:center;justify-content:center;flex:none;width:14px;height:18px;cursor:grab;color:#b6bec9}.ui-grip:hover{color:#64748b}.ui-grip:active{cursor:grabbing}.ui-grip[draggable=false]{opacity:.4;cursor:default}.ui-swatch{width:30px;height:22px;padding:0;vertical-align:middle;cursor:pointer;border:1px solid var(--border);border-radius:4px;background:transparent}.ui-swatch::-webkit-color-swatch-wrapper{padding:2px}.ui-swatch::-webkit-color-swatch{border:0;border-radius:2px}.ui-swatch::-moz-color-swatch{border:0;border-radius:2px}.ui-swatch:focus-visible{outline:2px solid var(--ui-focus, #1155cc);outline-offset:1px}.ui-swatch:disabled{cursor:default;opacity:.5}.ui-table tr.ui-tr--dragging>td{opacity:.45}.ui-table tr.ui-tr--drop-above>td{box-shadow:inset 0 2px 0 0 var(--ui-primary, #1155cc)}.ui-table tr.ui-tr--drop-below>td{box-shadow:inset 0 -2px 0 0 var(--ui-primary, #1155cc)}.dept-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:999px;background:var(--dept-color, #eef2f7);color:var(--dept-ink, #0f172a);border:1px solid rgba(15,23,42,.12)}.dept-chip>b{letter-spacing:.3px}.ui-msglist{display:flex;flex-direction:column;gap:2px;margin:4px 0 2px;font-size:var(--ui-fs)}.ui-disabled-hint{display:inline-flex}.ui-check:has(input:disabled){opacity:.5;cursor:default}.pos-table__t{border-collapse:separate;border-spacing:0;font-size:12.5px;width:auto;table-layout:fixed}.pos-table__t th,.pos-table__t td{border:0;border-bottom:1px solid var(--border);padding:3px 6px;text-align:left;white-space:normal;word-break:break-all;vertical-align:middle}.pos-table__t thead th{position:sticky;top:0;z-index:1;background:var(--panel);color:var(--muted);font-weight:600;font-size:11.5px;letter-spacing:.02em;border-bottom:1px solid #cbd5e1}.pos-table__t thead th.pos-table__cur{color:#1e293b;box-shadow:inset 0 3px 0 var(--ui-ok)}.pos-table__t thead th .code-vis{font:inherit;color:inherit}.pos-table__dept{font-weight:700;font-size:13px;background:#f8fafc;vertical-align:top;text-align:center;border-right:1px solid var(--border);border-bottom:2px solid #cbd5e1!important}.pos-table__dept--open{background:#e8eefc;box-shadow:inset 3px 0 #15c}.pos-table__t tbody tr:last-child>td{border-bottom:2px solid #cbd5e1}.pos-table__row{display:flex;gap:8px;align-items:flex-start}.pos-table__side{transition:margin-top .15s ease;flex:0 0 380px;max-width:45%;border:1px solid var(--border);border-radius:6px;padding:6px 8px;background:#fbfcfe}.pos-table__side .ui-card{border:0;box-shadow:none;padding:0}.pos-table__pos{font-weight:500;border-right:1px solid var(--border);line-height:1.25}.pos-table__pos .ui-badge,.pos-table__pos .tier-tag{margin-left:4px;vertical-align:1px}.pos-table__cur{background:#f3faf3}.pos-table__over td{background:#fff4f4}.pos-table__un td{background:#fafbfc;color:var(--muted);font-size:11.5px;padding-top:2px;padding-bottom:2px}.pos-table__un td.pos-table__cur{background:#f3faf3}.pos-table__t tbody tr:not(.pos-table__un)>td:not(.pos-table__dept):not(.pos-table__pos):hover{background:#f1f5fb}.pos-table__t tbody tr:not(.pos-table__un)>td.pos-table__cur:hover{background:#e6f2e6}.pos-table__cell{display:flex;align-items:center;gap:4px;min-width:0}.pos-table__sel{flex:1 1 auto;border:0;font:inherit;width:100%;min-width:0;cursor:pointer;padding:1px 14px 1px 0;color:#1e293b;white-space:normal;word-break:break-all;line-height:1.25;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent no-repeat right 2px center;background-image:none}.pos-table__t td:hover .pos-table__sel,.pos-table__sel:focus-visible{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>")}.pos-table__sel{text-align:left;color:inherit}.pos-table__sel--open{background-color:#eef3ff}.pos-table__sel:focus-visible{outline:2px solid #1155cc;outline-offset:-2px;border-radius:3px}.person-picker{padding:8px 10px;display:flex;flex-direction:column}.person-picker__body{overflow:auto;min-height:0}.person-picker__sec{padding:4px 0 6px}.person-picker__sec+.person-picker__sec{border-top:1px solid var(--border)}.person-picker__hd{font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.04em;margin:2px 0 4px}.person-picker .ui-chip{padding:2px 8px}.person-picker .ui-chip:hover{border-color:#94a3b8;background:#f8fafc}.person-picker .ui-chip--on:hover{background:var(--ui-ok-bg)}.pos-table__sel:disabled{opacity:.6;cursor:progress}.pos-table__hot{box-shadow:inset 0 0 0 2px #15c;border-radius:2px}.pos-table__handed{flex:0 0 auto;display:inline-flex;align-items:center;line-height:1;font-size:12px;color:#94a3b8;cursor:help;margin-right:14px}.tier-tag{display:inline-block;margin-left:3px;padding:0 3px;border-radius:3px;font-size:9px;line-height:13px;font-weight:700;vertical-align:1px}.tier-tag--a{background:#dce8ff;color:#1a4fb3}.typhoon-mark{position:absolute;right:1px;bottom:1px;color:#0369a1;line-height:1;pointer-events:auto}.typhoon-mark--inline{position:static;margin-left:auto;display:inline-flex}.month-mark{position:absolute;left:1px;top:1px;font-size:9px;line-height:1;font-weight:600;color:var(--muted)}table.sched thead th.has-month .day-num{margin-left:14px}.tier-tag--b{background:#fff1b8;color:#8a6100}.tier-tag--rot{background:#eee;color:var(--muted)}.pos-table__t td.pos-table__tier-a{background:#edf3ff}.pos-table__t td.pos-table__tier-b{background:#fff8dc}.tier-btn{width:24px;height:20px;border-radius:4px;border:1px solid var(--border);background:#fff;font-size:11px;font-weight:700;cursor:pointer;color:var(--muted)}.tier-btn--a.tier-btn--on{background:#dce8ff;color:#1a4fb3;border-color:#1a4fb3}.tier-btn--b.tier-btn--on{background:#fff1b8;color:#8a6100;border-color:#8a6100}.cell-history{margin-top:6px;padding-top:4px;border-top:1px dashed var(--border);font-size:11px}.cell-history__title{font-weight:700;display:flex;align-items:center;gap:4px}.cell-history__list{list-style:none;margin:2px 0 0;padding:0}.cell-history__list li{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap;line-height:1.6}.cell-history__ts{color:var(--muted);font-variant-numeric:tabular-nums}.cell-history__ctx{color:#7a4bd0}.ui-linkbtn{border:0;background:none;padding:0;color:#15c;cursor:pointer;font-size:inherit;text-decoration:underline}.oncall-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:12px;white-space:nowrap;background:#f3e8ff;color:#6a1b9a;border:1px solid #d8b4fe}.oncall-chip--muted{background:var(--panel);color:var(--muted);border-color:var(--border)}.oncall-chip__tel{margin-left:4px;color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px}.oncall-chip__none{margin-left:4px;color:var(--muted);font-size:11px}.oncall-chip__src{margin-left:3px;font-size:10px;padding:0 4px;border-radius:6px;background:#6a1b9a;color:#fff}.gate-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:3px;font-size:13px}.gate-list li{display:flex;align-items:center;gap:6px}.gate-list li[data-ok=true]{color:#0a7d4f}.gate-list li[data-ok=false][data-hard=true]{color:#b00;font-weight:700}.gate-list li[data-ok=false][data-hard=false]{color:#a15c00}
