:root{--assist-w: 0px;--ask-room: 136px}html body{margin-right:var(--assist-w)}html .overlay,html .drop-page{right:var(--assist-w)}html .toasts{left:calc((100% - var(--assist-w)) / 2)}@media (min-width: 861px){html[data-assist=closed] .main .page-top,html[data-assist=closed] .main .page-head,html[data-assist=closed] .main .toolbar.stick{padding-right:var(--ask-room)}}body.assist-dragging,body.assist-dragging *{cursor:col-resize!important;-webkit-user-select:none;user-select:none}.ask-ai{position:fixed;top:20px;right:max(16px,env(safe-area-inset-right,0px));z-index:900;display:flex;align-items:center;gap:7px;height:36px;padding:0 12px 0 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--accent);font:600 13px/1 var(--font);box-shadow:var(--shadow-sm);cursor:pointer}.ask-ai:hover{border-color:var(--accent);background:var(--accent-soft)}.ask-ai:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ask-ai kbd{font:500 11px ui-monospace,Menlo,monospace;color:var(--faint)}.assist{position:fixed;top:max(16px,env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));z-index:3500;display:flex;flex-direction:column;background:var(--surface);border-radius:var(--r-card);box-shadow:var(--shadow);border-top:1px solid var(--line);overflow:hidden}.assist.cover{left:max(16px,env(safe-area-inset-left,0px));width:auto;box-shadow:var(--shadow-lg)}.assist-grip{position:absolute;top:16px;bottom:16px;left:0;width:6px;border-radius:3px;cursor:col-resize;z-index:1}.assist-grip:hover,body.assist-dragging .assist-grip{background:var(--accent-soft)}@media (max-width: 860px){.ask-ai{top:auto;bottom:max(20px,env(safe-area-inset-bottom,0px));right:max(20px,env(safe-area-inset-right,0px));height:44px;padding:0 16px;background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow)}.ask-ai kbd{display:none}}.assist-head{display:flex;align-items:center;gap:8px;padding:12px 12px 12px 16px;border-bottom:1px solid var(--line)}.assist-page{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assist-body{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.assist-empty{display:flex;flex-direction:column;gap:8px;color:var(--muted);font-size:14px}.assist-empty p{margin:0 0 4px}.assist-starter{text-align:left;padding:9px 12px;border:1px solid var(--line);border-radius:var(--r-row);background:var(--surface-2);color:var(--ink);font:inherit;font-size:14px;cursor:pointer}.assist-starter:hover{border-color:var(--accent)}.assist-msg{font-size:14px;line-height:1.5;max-width:100%;min-width:0}.assist-msg.admin{align-self:flex-end;max-width:88%;padding:9px 12px;border-radius:14px 14px 4px;background:var(--accent-soft);white-space:pre-wrap}.assist-msg.assistant{display:flex;flex-direction:column;gap:8px}.assist-msg.error{padding:9px 12px;border-radius:10px;background:var(--red-soft);color:var(--red)}.assist-compose{display:flex;gap:8px;align-items:flex-end;padding:12px;border-top:1px solid var(--line)}.assist-compose textarea{flex:1;resize:none;padding:9px 12px;border:1px solid var(--line);border-radius:12px;font:inherit;font-size:14px;background:var(--surface);color:var(--ink)}.assist-compose textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p,.md ul,.md ol{margin:0 0 8px}.md ul,.md ol{padding-left:20px}.md code{font-size:.88em;background:var(--surface-3);padding:1px 4px;border-radius:4px}.md h1,.md h2,.md h3{font-size:14px;margin:8px 0 4px}.plan-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}.plan-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;background:var(--surface-2);border-bottom:1px solid var(--line)}.plan-explain{padding:10px 12px 0}.plan-steps{margin:8px 12px 0;padding-left:18px;font-size:13px}.plan-steps .mono{font-family:ui-monospace,Menlo,monospace;font-size:12px}.plan-whole{color:var(--orange);font-size:12px;margin-left:4px}.plan-assume{margin:8px 12px 0;font-size:13px}.plan-assume ul{margin:2px 0 0;padding-left:18px}.plan-k{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--faint)}.plan-effects{padding:4px 12px 8px}.plan-eff{display:grid;grid-template-columns:74px minmax(0,1fr);gap:8px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:13px}.plan-eff:last-child{border-bottom:0}.plan-eff .plan-k{padding-top:2px}.plan-pay{width:100%;margin-top:6px;border-collapse:collapse;font-size:12px}.plan-pay td{padding:3px 6px 3px 0;vertical-align:top}.plan-pay .num{white-space:nowrap}.plan-note{margin:8px 12px 0;padding:8px 10px;border-radius:8px;font-size:13px}.plan-note.stop{background:var(--red-soft);color:var(--red)}.plan-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;padding:10px 12px;border-top:1px solid var(--line)}.linkish{border:0;background:none;padding:4px 0 0;color:var(--accent);font:inherit;font-size:12px;cursor:pointer}.at-pickers{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.at-pickers .select{width:auto;min-width:160px}.at-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.at-cal .wd{font-size:12px;font-weight:600;color:var(--muted);padding:0 6px 2px}.at-day{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:112px;padding:8px;border:0;border-radius:14px;background:var(--surface-2);text-align:left;cursor:pointer;min-width:0}.at-day:hover{background:var(--surface-3)}.at-day:disabled{cursor:default;opacity:.45}.at-day:disabled:hover{background:var(--surface-2)}.at-day.future{background:transparent;box-shadow:inset 0 0 0 1px var(--line-2)}.at-day.flagged{box-shadow:inset 0 0 0 1.5px #f0b25a}.at-day.today{box-shadow:inset 0 0 0 1.5px var(--accent)}.at-day .top{display:flex;align-items:center;gap:6px;width:100%}.at-day .dn{font-weight:700;font-size:13px}.at-day .hol{font-size:10px;font-weight:600;color:var(--orange);margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.at-day .io{font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}.at-day .sh{height:20px;font-size:11px}.at-badges{display:flex;flex-wrap:wrap;gap:3px}.at-b{display:inline-flex;align-items:center;height:19px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap;background:transparent}.at-b.red{color:var(--red);box-shadow:inset 0 0 0 1px #f2b8b2}.at-b.blue{color:var(--accent-strong);box-shadow:inset 0 0 0 1px #b9d3f2}.at-b.leave{color:var(--leave-ink);box-shadow:inset 0 0 0 1px #d7b8e2}.at-b.on.red{background:var(--red);color:#fff;box-shadow:none}.at-b.on.blue{background:var(--accent);color:#fff;box-shadow:none}.at-b.on.leave{background:var(--leave-ink);color:#fff;box-shadow:none}.at-flag{display:inline-flex;align-items:center;height:19px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:600;background:var(--orange-soft);color:var(--orange);white-space:nowrap}.at-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted);align-items:center}@media (max-width: 760px){.at-day{min-height:80px;padding:5px}.at-badges,.at-day .io{display:none}}.at-range{font-weight:600;min-width:132px}.at-n{margin-left:6px;padding:0 6px;border-radius:999px;background:var(--orange-soft);color:var(--orange);font-size:11px;font-weight:700}.dg-cell .at-b{height:16px;padding:0 4px;font-size:10px}.at-b.ask{box-shadow:none;border:1px dashed #8fb6e6}.at-tk{display:inline-flex;align-items:center;gap:1px}.at-more{font-size:9px;font-weight:700;color:var(--muted)}.dg td.flag .dg-cell{box-shadow:inset 0 0 0 1.5px #f0b25a}.dg td.flag .dg-cell:after,.at-key.flag:after{content:"";position:absolute;top:0;right:0;border-style:solid;border-width:0 10px 10px 0;border-color:transparent var(--orange) transparent transparent}.dg td.quiet .dg-cell>*{opacity:.25}.dg th.noimp,.dg td.noimp,.at-key.noimp,.at-day.noimp{background:repeating-linear-gradient(45deg,var(--surface) 0 5px,var(--line) 5px 6px)}.dg thead th.noimp .dn{color:var(--faint)}.dg td.noimp .dg-cell>*{opacity:.5}.at-lg{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.at-key{position:relative;display:inline-block;width:18px;height:16px;border-radius:3px;box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}.at-grid .dg .tot{padding:0 14px 0 8px}.at-tot{display:grid;grid-template-columns:repeat(5,32px) 44px 40px;column-gap:2px;align-items:center;font-size:12px;font-variant-numeric:tabular-nums;text-align:right;line-height:1.2}.at-tot.head{font-weight:600;color:var(--muted)}.at-tot .cap{grid-column:1 / -1;margin-bottom:3px;text-align:left;font-size:10px;font-weight:500;color:var(--faint)}.at-tot .z{color:var(--faint)}.at-tot .red{color:var(--red);font-weight:600}.at-tot .ask{display:block;font-size:10px;font-weight:600;color:var(--accent-strong)}.at-sec{display:flex;flex-direction:column;gap:8px}.at-sec>h3{font-size:14px;font-weight:600}.at-punch{display:flex;align-items:flex-start;gap:12px;padding:8px 12px;border-radius:12px;background:var(--surface-2)}.at-punch .t{font-weight:700;font-variant-numeric:tabular-nums;min-width:64px}.at-punch .body{flex:1;min-width:0}.at-punch .why{display:block;font-size:12px;color:var(--muted)}.at-punch.gone{background:transparent;box-shadow:inset 0 0 0 1px var(--line-2);color:var(--muted)}.at-punch.gone .t{text-decoration:line-through;font-weight:500}.at-mtable td,.at-mtable th{padding:7px 10px}.at-mtable td.zero{color:var(--faint)}.at-tl{display:grid;grid-template-columns:78px 1fr;gap:5px 10px;align-items:center}.at-tl .lbl{font-size:12px;color:var(--muted);text-align:right}.at-tl .track{position:relative;height:16px;border-radius:6px;background:var(--surface-2)}.at-tl .ticks{position:relative;height:14px}.at-tl .ticks span{position:absolute;transform:translate(-50%);font-size:10px;color:var(--faint);font-variant-numeric:tabular-nums}.at-tl .grid-line{position:absolute;top:0;bottom:0;width:1px;background:#1018280f}.at-tl .bar{position:absolute;top:2px;bottom:2px;border-radius:4px;min-width:2px}.at-tl .bar.plan{background:var(--sh-office)}.at-tl .bar.core{background:var(--sh-flex)}.at-tl .bar.brk{background:repeating-linear-gradient(135deg,#c9ccd3 0 3px,transparent 3px 6px)}.at-tl .bar.leave{background:var(--leave)}.at-tl .bar.act{background:#6b6f7a}.at-tl .bar.reg{background:#3e9b5c}.at-tl .bar.miss{background:#e0796f}.at-tl .bar.early,.at-tl .bar.ot{background:#f4c27a}.at-tl .bar.otok{background:#c97a14}.at-tl .tick{position:absolute;top:-2px;bottom:-2px;width:2px;margin-left:-1px;background:var(--ink);border-radius:1px}.at-tl .tick.dropped{background:transparent;border-left:2px dotted var(--faint)}.sg-range{font-weight:600;min-width:132px}.sg-show{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.sg-show .select{width:auto;min-width:190px}.dg-cell .sh{height:20px;min-width:28px;font-size:11px}.dg-wrap.month .dg-cell .sh{min-width:30px;padding:0 4px}.sg-times{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.sg-mark{position:absolute;top:1px;right:3px;font-size:9px;font-weight:700;color:var(--accent);line-height:1}.sg-ok{color:var(--green);font-weight:600}.sg-short{border:0;background:var(--red-soft);color:var(--red);font-weight:700;font-size:12px;border-radius:999px;height:24px;padding:0 8px;cursor:pointer;white-space:nowrap}.sg-short:hover{background:#fbd5d1}.dg-wrap.month .sg-short{padding:0 6px;height:22px}.sg-short-text{color:var(--red);font-weight:600}.sg-selbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 6px 6px 14px;margin:-6px 0;border-radius:14px;background:var(--accent-soft);font-size:14px;font-weight:500}.sg-selbar-actions{display:flex;gap:6px;flex-wrap:wrap;flex:1}.sg-selbar .btn .sh{height:18px;min-width:26px;font-size:10px}.sg-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted)}.sg-legend b{color:var(--accent);font-size:10px;margin-right:3px}.sg-choices{display:flex;flex-direction:column;gap:4px}.sg-choice{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 12px;border-radius:12px;background:var(--surface-2);cursor:pointer}.sg-choice:hover{background:var(--surface-3)}.sg-choice:has(input:checked){background:var(--accent-soft);outline:1.5px solid var(--accent)}.sg-choice input{width:16px;height:16px;accent-color:var(--accent);flex:none}.sg-choice .t{font-weight:500}.sg-choice .m{margin-left:auto;font-size:12px;color:var(--muted)}.sg-pick{display:flex;flex-direction:column;gap:2px;max-height:340px;overflow:auto;border:1px solid var(--line-2);border-radius:14px;padding:4px}.sg-pick label{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:10px;cursor:pointer}.sg-pick label:hover{background:var(--surface-2)}.sg-pick input{width:16px;height:16px;accent-color:var(--accent);flex:none}.sg-pick .m{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}.sg-row{display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 10px 8px 14px;border-radius:var(--r-row)}.sg-row:hover{background:var(--surface-2)}.sg-row .body{flex:1;min-width:0}.sg-row .body a{font-weight:600;color:var(--ink);text-decoration:none}.sg-row .body a:hover{color:var(--accent);text-decoration:underline}.sg-row .desc{display:block;font-size:13px;color:var(--muted)}.sg-demand td,.sg-demand th{text-align:center;padding:8px 6px}.sg-demand th:first-child,.sg-demand td:first-child{text-align:left}.sg-demand .input{width:52px;height:32px;padding:0 4px;text-align:center}.sg-demand tr:last-child th{border-bottom:0}.sg-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.sg-cycle{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.sg-cycle .sh{height:20px;min-width:34px;font-size:11px}.sg-cycle .sh.off{background:var(--surface-3)}.sh.none{background:repeating-linear-gradient(135deg,var(--surface-2) 0 4px,var(--line) 4px 5px);color:var(--faint);font-weight:500}.sg-over{border:0;background:var(--orange-soft);color:var(--orange);font-weight:700;font-size:12px;border-radius:999px;height:24px;padding:0 8px;cursor:pointer;white-space:nowrap}.dg-wrap.month .sg-over{padding:0 6px;height:22px}.dg-head .sub .linkbtn,.sub .linkbtn{font-size:12px}.rg-wrap{--rg-h1: 30px;overflow:auto;max-height:calc(100vh - 120px);border-top:1px solid var(--line-2)}table.rg{border-collapse:separate;border-spacing:0;min-width:100%;font-size:13px}.rg th,.rg td{padding:0 12px;height:44px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line-2);background:var(--surface)}.rg .r{text-align:right}.rg .gs{border-left:1px solid var(--line)}.rg thead th{position:sticky;top:0;z-index:2;height:36px;font-size:12px;font-weight:600;color:var(--muted);vertical-align:bottom;padding-bottom:8px}.rg-wrap.two thead tr.h1 th{height:var(--rg-h1);padding-bottom:4px;border-bottom:0}.rg-wrap.two thead tr.h2 th{top:var(--rg-h1)}.rg thead th.grp{font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-2)}.rg .name{position:sticky;left:0;z-index:1;min-width:190px;max-width:240px;padding-left:22px;box-shadow:inset -1px 0 0 var(--line);vertical-align:middle}.rg thead th.name{z-index:4}.rg tbody .name{font-weight:500;font-size:14px}.rg tbody .name a{color:var(--ink);text-decoration:none}.rg tbody .name a:hover{color:var(--accent);text-decoration:underline}.rg .name .sub{display:block;font-size:12px;font-weight:400;color:var(--muted)}.rg .net{position:sticky;right:0;z-index:1;font-weight:700;color:var(--ink);box-shadow:inset 1px 0 0 var(--line);background:#f8fafd}.rg thead th.net{z-index:3;background:var(--surface)}.rg .tot{font-weight:600;color:var(--ink)}.rg .er{color:var(--muted)}.rg tfoot th,.rg tfoot td{position:sticky;bottom:0;z-index:2;font-weight:700;color:var(--ink);background:var(--surface-2);border-top:1px solid var(--line);border-bottom:0}.rg tfoot .name{z-index:4;font-size:13px}.rg tfoot .net{z-index:3;background:#eef2f8}.rg-cell{border:0;background:none;padding:4px 6px;margin:0 -6px;border-radius:7px;font:inherit;color:inherit;cursor:pointer}.rg-cell:hover{background:var(--accent-soft);color:var(--accent-strong)}.rg-cell.on{background:var(--accent);color:#fff}:root{color-scheme:light;--ground: #e8eaee;--surface: #ffffff;--surface-2: #f6f7f9;--surface-3: #eef0f3;--sidebar: #f7f8fa;--line: #e3e5ea;--line-2: #eef0f3;--ink: #1d1d1f;--ink-2: #3a3a40;--muted: #55555c;--faint: #8a8a92;--accent: #0062cc;--accent-strong: #004a9e;--accent-soft: #e6f0fc;--green: #1b7034;--green-soft: #e4f4e8;--orange: #8f4c00;--orange-soft: #fff0db;--orange-wash: #fff4e3;--red: #b42318;--red-soft: #fde7e5;--purple: #6941c6;--purple-soft: #f0ebfc;--sh-day: #f4e5b5;--sh-day-ink: #5e4500;--sh-night: #d8dcf4;--sh-night-ink: #29327a;--sh-office: #d3e9e1;--sh-office-ink: #0b4f41;--sh-mid: #f7dde6;--sh-mid-ink: #7a2346;--sh-flex: #e3e3fa;--sh-flex-ink: #3a3a8c;--leave: #ead8f0;--leave-ink: #62287a;--shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 10px 30px rgba(16, 24, 40, .07);--shadow-sm: 0 1px 2px rgba(16, 24, 40, .08);--shadow-lg: 0 2px 8px rgba(10, 12, 20, .08), 0 32px 80px rgba(10, 12, 20, .28);--r-card: 22px;--r-row: 14px;--r-ctl: 10px;--font: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--ink);font:14px/1.45 var(--font);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent)}a:hover{color:var(--accent-strong)}h1,h2,h3,h4{margin:0;letter-spacing:-.01em}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:13px}.tiny{font-size:12px}.strong{font-weight:600}.right{text-align:right}.nowrap{white-space:nowrap}.label{font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}.app{display:flex;flex-wrap:wrap;gap:16px;padding:16px;min-height:100%}.sidebar{flex:0 0 248px;align-self:flex-start;position:sticky;top:16px;height:calc(100vh - 32px);overflow:auto;background:var(--sidebar);border-radius:var(--r-card);box-shadow:var(--shadow);padding:12px;display:flex;flex-direction:column;gap:2px}.sidebar .co{display:flex;align-items:center;gap:10px;padding:6px 6px 12px}.avatar{flex:none;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;border-radius:999px;width:32px;height:32px;background:#f2d7c4;color:#7a3e14}.avatar.co-mark{border-radius:11px;width:36px;height:36px;background:#0e7c6b;color:#fff}.nav-section{font-size:11px;font-weight:600;color:var(--muted);padding:16px 10px 4px;letter-spacing:.03em;text-transform:uppercase}.nav-fold{display:flex;flex-direction:column;padding-left:10px}.nav-fold .nav-section{padding:8px 10px 2px}.nav-fold .nav-item{min-height:30px}.nav-item{display:flex;align-items:center;gap:10px;min-height:38px;padding:0 10px;border-radius:var(--r-ctl);color:var(--ink);text-decoration:none}.nav-item:hover{background:var(--surface-3);color:var(--ink)}.nav-item.parent{color:var(--accent);font-weight:600}.nav-item.on{background:var(--accent);color:#fff;font-weight:500}.nav-item .count{margin-left:auto;font-size:12px;font-weight:600;color:var(--ink-2);background:#e3e5ea;border-radius:999px;padding:1px 8px}.nav-item .count.warn{color:var(--orange);background:var(--orange-soft)}.nav-item.on .count{background:#ffffff38;color:#fff}.nav-item .meta{margin-left:auto;font-size:12px;color:var(--muted)}.nav-item.on .meta{color:#ffffffd9}.sidebar .me{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px 6px 4px;border-top:1px solid var(--line)}.main{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;gap:16px;padding-bottom:48px}@media (max-width: 860px){.sidebar{flex:1 1 100%;position:static;height:auto;max-height:none}}.page-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:4px 4px 0;min-height:36px}.page-top.stick{position:sticky;top:0;z-index:5;background:var(--ground);margin:-16px -4px -8px;padding:16px 8px 8px}.crumbs{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);flex-wrap:wrap}.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--ink)}.crumbs .here{color:var(--ink);font-weight:500}.page-top .actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.page-head{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:4px 6px 2px}.page-head h1{font-size:26px;font-weight:700}.page-head .sub{margin:2px 0 0;color:var(--muted)}.page-head.stick{position:sticky;top:0;z-index:5;background:var(--ground);margin:-16px -4px 0;padding:16px 10px 8px}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:2px 2px 10px;border-bottom:1px solid var(--line-2)}.card.tight>.toolbar{padding:6px 8px 10px}.toolbar .end{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.toolbar .select{width:auto;max-width:100%}.toolbar.stick{position:sticky;top:0;z-index:4;background:var(--surface);border-radius:var(--r-row) var(--r-row) 0 0}.page-head .actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.tile{flex:none;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:11px;background:var(--surface-3);color:var(--ink-2)}.tile.lg{width:52px;height:52px;border-radius:16px}.tile.blue{background:var(--accent-soft);color:var(--accent)}.tile.green{background:var(--green-soft);color:var(--green)}.tile.orange{background:var(--orange-soft);color:var(--orange)}.tile.purple{background:var(--purple-soft);color:var(--purple)}.tile.red{background:var(--red-soft);color:var(--red)}.card{background:var(--surface);border-radius:var(--r-card);box-shadow:var(--shadow);padding:20px 22px;display:flex;flex-direction:column;gap:14px;min-width:0}.card.tight{padding:8px;gap:2px}.card.flush{padding:0;gap:0;overflow:clip}.main>.toolbar{border-bottom:0;padding:0 4px}.card.flush>.toolbar{padding:14px 22px 10px}.card-head{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}.card-head h2{font-size:16px;font-weight:600}.card-head .sub{margin:2px 0 0;font-size:13px;color:var(--muted)}.card-head .actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.cols{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.cols>.wide{flex:2 1 440px;min-width:0;display:flex;flex-direction:column;gap:16px}.cols>.narrow{flex:1 1 280px;min-width:0;display:flex;flex-direction:column;gap:16px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.stack{display:flex;flex-direction:column;gap:8px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spacer{flex:1}.lrow{display:flex;align-items:center;gap:14px;min-height:56px;padding:10px 14px;border-radius:var(--r-row);background:var(--surface-2);color:var(--ink);text-decoration:none;border:0;width:100%;text-align:left;cursor:pointer}button.lrow{font:inherit}.lrow:hover{background:var(--surface-3);color:var(--ink)}.lrow.plain{background:transparent}.lrow.plain:hover{background:var(--surface-2)}.lrow.outline{background:transparent;border:1px solid var(--line-2);cursor:default}.lrow.selected{background:var(--accent-soft);outline:1.5px solid var(--accent)}.lrow .body{flex:1;min-width:0}.lrow .title{font-weight:600}.lrow .desc{font-size:13px;color:var(--muted)}.lrow .chev{color:var(--faint);flex:none}.addrow{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:var(--r-row);border:1.5px dashed #bfcce0;color:var(--accent);background:transparent;text-decoration:none;font-weight:500;cursor:pointer;width:100%;text-align:left}.addrow:hover{background:var(--accent-soft)}.kv{margin:0}.kv>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-2)}.kv>div:last-child{border-bottom:0}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:500;text-align:right}.kvgrid{margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px 16px}.kvgrid dt{font-size:12px;color:var(--muted)}.kvgrid dd{margin:2px 0 0;font-weight:500}.stats{display:flex;gap:28px;flex-wrap:wrap}.stat .v{font-size:22px;font-weight:700}.stat .k{font-size:12px;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;border-radius:999px;border:0;background:var(--surface);box-shadow:var(--shadow-sm);color:var(--ink);font-weight:500;cursor:pointer;white-space:nowrap;text-decoration:none}.btn:hover{background:var(--surface-2);color:var(--ink)}.btn.primary{background:var(--accent);color:#fff;font-weight:600;box-shadow:none}.btn.primary:hover{background:var(--accent-strong)}.btn.soft{background:var(--surface-3);box-shadow:none}.btn.soft:hover{background:#e3e5ea}.btn.danger{color:var(--red)}.btn.ghost{background:transparent;box-shadow:none;color:var(--accent);padding:0 8px}.btn.ghost:hover{background:var(--accent-soft)}.btn.sm{height:30px;padding:0 12px;font-size:13px}.btn.icon{width:36px;padding:0}.btn.sm.icon{width:30px}.btn:disabled{opacity:.45;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>.lbl{font-size:13px;font-weight:500;color:var(--ink-2)}.field>.hint{font-size:12px;color:var(--muted)}.field>.err{font-size:12px;color:var(--red)}.input,.select,.textarea{height:40px;padding:0 12px;border:1px solid #d5d8de;border-radius:var(--r-ctl);background:var(--surface);outline:none;min-width:0;width:100%}.textarea{height:auto;min-height:84px;padding:10px 12px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input.sm,.select.sm{height:32px;padding:0 8px}.input.inline{width:84px;height:32px;padding:0 8px;text-align:center;font-weight:600;color:var(--accent-strong);background:var(--surface)}.form{display:flex;flex-direction:column;gap:16px}.form .two{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.check{display:flex;align-items:center;gap:8px;cursor:pointer}.check input{width:16px;height:16px;accent-color:var(--accent)}.seg{display:inline-flex;padding:3px;background:var(--surface-3);border-radius:12px;gap:2px;flex-wrap:wrap}.seg button{height:32px;padding:0 14px;border:0;border-radius:9px;background:transparent;color:var(--ink-2);font-size:13px;font-weight:500;cursor:pointer}.seg button[aria-pressed=true]{background:var(--surface);box-shadow:0 1px 3px #1018281f;color:var(--ink);font-weight:600}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 13px;border:1px solid #d5d8de;border-radius:999px;background:var(--surface);color:var(--ink-2);font-size:13px;font-weight:500;cursor:pointer}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.tabs{display:inline-flex;gap:4px;flex-wrap:wrap;padding:4px;background:#fff9;border-radius:999px;box-shadow:var(--shadow-sm);align-self:flex-start}.tabs a,.tabs button{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;border-radius:999px;border:0;background:transparent;color:var(--ink-2);text-decoration:none;font-size:13px;font-weight:500;cursor:pointer}.tabs .on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:var(--shadow-sm)}.pill{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px;background:var(--surface-3);color:var(--ink-2);white-space:nowrap}.pill.green{background:var(--green-soft);color:var(--green)}.pill.orange{background:var(--orange-soft);color:var(--orange)}.pill.red{background:var(--red-soft);color:var(--red)}.pill.blue{background:var(--accent-soft);color:var(--accent-strong)}.pill.purple{background:var(--purple-soft);color:var(--purple)}.pill.leave{background:var(--leave);color:var(--leave-ink)}.pill.outline{background:transparent;box-shadow:inset 0 0 0 1px var(--line);color:var(--muted);font-weight:500}.pill.white{background:var(--surface);border:1px solid var(--line);font-weight:500}.sh{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:22px;padding:0 6px;border-radius:6px;font-size:12px;font-weight:600}.sh.day{background:var(--sh-day);color:var(--sh-day-ink)}.sh.night{background:var(--sh-night);color:var(--sh-night-ink)}.sh.office{background:var(--sh-office);color:var(--sh-office-ink)}.sh.mid{background:var(--sh-mid);color:var(--sh-mid-ink)}.sh.flex{background:var(--sh-flex);color:var(--sh-flex-ink)}.sh.leave{background:var(--leave);color:var(--leave-ink)}.sh.off{background:transparent;color:var(--faint);font-weight:500}.notice{display:flex;gap:12px;align-items:flex-start;padding:14px 18px;border-radius:18px;background:var(--orange-wash);color:#5c3300}.notice a{color:#7a4100;font-weight:600}.notice.info{background:var(--accent-soft);color:var(--accent-strong)}.notice.info a{color:var(--accent-strong)}.notice.error{background:var(--red-soft);color:#7a1a12}.notice.error a{color:#7a1a12}.notice.ok{background:var(--green-soft);color:#12471f}.notice .ico{flex:none;margin-top:1px}.table-wrap{overflow-x:auto}table.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line-2);vertical-align:middle}.table th{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}.table tr:last-child td{border-bottom:0}.table td.r,.table th.r{text-align:right}.table tr.click{cursor:pointer}.table tr.click:hover td{background:var(--surface-2)}.table tfoot td{font-weight:600;border-top:1px solid var(--line)}.table.sticky-head thead th{position:sticky;top:0;z-index:1;background:var(--surface)}.empty{padding:28px 16px;text-align:center;color:var(--muted)}.sentence{font-size:16px;line-height:2.3;padding:14px 16px;border-radius:16px;background:var(--surface-2)}.sentence .tok{display:inline-flex;align-items:center;height:30px;padding:0 10px;margin:0 1px;border-radius:9px;background:var(--surface);box-shadow:0 1px 2px #1018281a;color:var(--accent-strong);font-weight:600;font-size:15px;line-height:1;vertical-align:baseline}.sentence.plain{background:transparent;padding:0;font-size:14px;line-height:1.7}.sentence.plain .tok{height:auto;padding:0 5px;border-radius:6px;background:var(--accent-soft);box-shadow:none;font-size:14px;line-height:1.5}.sentence select.tok,.sentence input.tok{border:0;outline:none;cursor:pointer;font-family:inherit}.sentence input.tok{width:84px;text-align:center;cursor:text}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c1e2652;display:flex;justify-content:flex-end;align-items:stretch;padding:16px;animation:fade .12s ease-out}.overlay.center{justify-content:center;align-items:flex-start;padding-top:8vh}.sheet{width:min(560px,100%);background:var(--surface);border-radius:26px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:slide .16s ease-out}.sheet.wide{width:min(760px,100%)}.modal{width:min(520px,100%);background:var(--surface);border-radius:24px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:84vh;overflow:hidden}.sheet-head{display:flex;align-items:center;gap:10px;padding:16px 20px 12px}.sheet-head h2{font-size:17px;font-weight:600}.sheet-head .sub{font-size:13px;color:var(--muted)}.sheet-body{flex:1;overflow:auto;padding:4px 22px 20px;display:flex;flex-direction:column;gap:16px}.sheet-foot{display:flex;gap:8px;justify-content:flex-end;align-items:center;flex-wrap:wrap;padding:12px 20px 16px;border-top:1px solid var(--line-2)}.sheet-foot .note{margin-right:auto;font-size:12px;color:var(--muted)}@keyframes fade{0%{opacity:0}}@keyframes slide{0%{transform:translate(24px);opacity:0}}.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.dg-wrap{--dg-foot-h: 38px;overflow:auto;max-height:calc(100vh - 150px);border-top:1px solid var(--line-2)}table.dg{border-collapse:separate;border-spacing:0;min-width:100%}.dg th,.dg td{padding:0;background:var(--surface);border-bottom:1px solid var(--line-2);text-align:center;vertical-align:middle}.dg thead th{position:sticky;top:0;z-index:2;padding:8px 2px 7px;font-size:11px;font-weight:500;color:var(--muted);line-height:1.2;vertical-align:bottom;border-bottom:1px solid var(--line);white-space:nowrap}.dg thead .wd{display:block}.dg thead .dn{display:block;font-size:13px;font-weight:600;color:var(--ink)}.dg thead .tag{display:block;margin-top:2px;font-size:10px;font-weight:600}.dg thead .tag.hol{color:var(--orange)}.dg thead .tag.vt{color:var(--accent)}.dg thead .tag.lock{color:var(--faint)}.dg thead th.today,.dg thead th.today .dn{color:var(--accent)}.dg thead th.hol .dn{color:var(--orange)}.dg thead th.locked .dn{color:var(--faint)}.dg td.today{background:#f7faff}.dg td.locked{background:repeating-linear-gradient(135deg,var(--surface) 0 6px,var(--surface-2) 6px 12px)}.dg th.vt,.dg td.vt{box-shadow:inset -2px 0 0 var(--accent)}.dg .name{position:sticky;left:0;z-index:1;min-width:200px;max-width:240px;padding:6px 12px 6px 22px;text-align:left;font-weight:500;box-shadow:inset -1px 0 0 var(--line)}.dg thead th.name{z-index:4;font-size:12px;font-weight:600}.dg .name a{color:var(--ink);text-decoration:none}.dg .name a:hover{color:var(--accent);text-decoration:underline}.dg .name .sub{display:block;font-size:12px;font-weight:400;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dg .tot{position:sticky;right:0;z-index:1;padding:0 18px 0 12px;text-align:left;box-shadow:inset 1px 0 0 var(--line)}.dg thead th.tot{z-index:4}.dg tfoot th,.dg tfoot td{position:sticky;z-index:2;height:var(--dg-foot-h);background:var(--surface-2);border-bottom:0;font-size:12px}.dg tfoot tr.first>*{border-top:1px solid var(--line)}.dg tfoot .name,.dg tfoot .tot{z-index:4;font-size:13px}.dg-wrap.week .dg td{min-width:112px}.dg-wrap.month .dg td{min-width:44px}.dg-wrap.week .dg tbody td{height:58px}.dg-wrap.month .dg tbody td{height:46px}.dg td.tot{min-width:0}.dg-cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%;height:100%;min-height:inherit;padding:3px 2px;border:0;background:transparent;color:inherit;cursor:pointer}.dg-cell:hover{background:#1018280a}.dg-cell:disabled{cursor:default;opacity:.5}.dg-cell:disabled:hover{background:transparent}.dg tbody.selectable{-webkit-user-select:none;user-select:none}.dg td.sel{background:var(--accent-soft);box-shadow:inset 0 0 0 1px #9cc2ee}.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:150px;padding:20px;border:1.5px dashed #c5c9d2;border-radius:18px;background:var(--surface-2);color:var(--muted);text-align:center;cursor:pointer;transition:background .12s,border-color .12s}.drop:hover{background:var(--surface-3)}.drop:focus-within{outline:2px solid var(--accent);outline-offset:2px}.drop .t{color:var(--ink);font-weight:600}.drop .t u{color:var(--accent);text-decoration:none}.drop .h{font-size:12px}.drop.over{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.drop.bad{border-color:var(--red)}.drop-err{font-size:13px;color:var(--red)}.drop-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;padding:24px;background:#e8eaeeb8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;display:flex;animation:fade .1s ease-out}.drop-page .box{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:2px dashed var(--accent);border-radius:var(--r-card);background:#e6f0fcd9;color:var(--accent-strong)}.drop-page .t{font-size:18px;font-weight:700}.drop-page .h{font-size:13px}.file-row{display:flex;align-items:center;gap:10px;min-height:52px;padding:8px 8px 8px 14px;border-radius:14px;background:var(--surface-2)}.file-row .body{flex:1;min-width:0}.file-row .n{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row .m{display:block;font-size:12px;color:var(--muted)}.linkbtn{border:0;background:none;padding:0;color:var(--accent);font-size:13px;font-weight:500;cursor:pointer}.linkbtn:hover{color:var(--accent-strong);text-decoration:underline}.more summary{width:fit-content;color:var(--accent);font-size:13px;font-weight:500;cursor:pointer}.more[open] summary{margin-bottom:12px}.applies{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--muted);white-space:nowrap}.pop{position:fixed;z-index:2000;width:min(440px,calc(100vw - 24px));max-height:min(440px,calc(100vh - 24px));overflow:auto;background:var(--surface);border-radius:18px;box-shadow:var(--shadow-lg);padding:14px 16px;display:flex;flex-direction:column;gap:10px;animation:fade .1s ease-out}.toasts{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:9999;align-items:center}.toast{background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;font-weight:500;box-shadow:var(--shadow-lg)}.toast.warn{background:var(--orange)}.toast.error{background:var(--red)}.login{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px 16px}.login .panel{width:min(720px,100%);display:flex;flex-direction:column;gap:16px}.drows{display:flex;flex-direction:column}.drow{display:grid;grid-template-columns:minmax(120px,32%) 1fr auto;align-items:center;gap:12px;min-height:46px;padding:8px 12px;border:0;border-radius:var(--r-row);background:transparent;color:var(--ink);font:inherit;text-align:left;width:100%}.drow+.drow{box-shadow:0 -1px 0 var(--line-2)}button.drow{cursor:pointer}button.drow:hover{background:var(--surface-2)}.drow .k{color:var(--muted);font-size:13px}.drow .v{min-width:0;font-weight:500;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.drow .chev{color:var(--faint)}.drows-label{padding:10px 12px 2px}@media (max-width: 560px){.drow{grid-template-columns:1fr auto;gap:2px 12px}.drow .k,.drow .v{grid-column:1}.drow .chev{grid-column:2;grid-row:1 / span 2}}.seg a{display:inline-flex;align-items:center;height:32px;padding:0 14px;border-radius:9px;color:var(--ink-2);font-size:13px;font-weight:500;text-decoration:none}.seg a[aria-current=page]{background:var(--surface);box-shadow:0 1px 3px #1018281f;color:var(--ink);font-weight:600}
