@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-cyrillic-ext-400-normal-Cycyekte.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-ext-400-normal-Dd5dApAy.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-cyrillic-400-normal-CKu2TFQr.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-400-normal-D9eUeF-O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-greek-ext-400-normal-ByG7UNQ2.woff2) format("woff2"),url(/assets/fira-sans-greek-ext-400-normal-ClCfNE6D.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-greek-400-normal-BFCFncbp.woff2) format("woff2"),url(/assets/fira-sans-greek-400-normal-DQ8sF22y.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-vietnamese-400-normal-ljDTQFsx.woff2) format("woff2"),url(/assets/fira-sans-vietnamese-400-normal-DUVG35gE.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-latin-ext-400-normal-BLG_mAEf.woff2) format("woff2"),url(/assets/fira-sans-latin-ext-400-normal-BCUwhuGB.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-latin-400-normal-a0AnQzuD.woff2) format("woff2"),url(/assets/fira-sans-latin-400-normal-66xCkunx.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-cyrillic-ext-500-normal-Dkk5LlrU.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-ext-500-normal-Cixivk4R.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-cyrillic-500-normal-CXfldnQ8.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-500-normal-Daski1k2.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-greek-ext-500-normal-nq-cjB3m.woff2) format("woff2"),url(/assets/fira-sans-greek-ext-500-normal-Bem4H9fH.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-greek-500-normal-Cy-TUuxE.woff2) format("woff2"),url(/assets/fira-sans-greek-500-normal-C9KT8sAy.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-vietnamese-500-normal-ChEXCnJy.woff2) format("woff2"),url(/assets/fira-sans-vietnamese-500-normal-UV7M6ot_.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-latin-ext-500-normal-OO1QnNpY.woff2) format("woff2"),url(/assets/fira-sans-latin-ext-500-normal-CFRf4jcC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-latin-500-normal-Bvbxc8ch.woff2) format("woff2"),url(/assets/fira-sans-latin-500-normal-Bkfzcwmr.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-cyrillic-ext-600-normal-CE6oUZE1.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-ext-600-normal-BKgjRriM.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-cyrillic-600-normal-JSBvCpTs.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-600-normal-CJ5P9t7t.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-greek-ext-600-normal-fS0evUH3.woff2) format("woff2"),url(/assets/fira-sans-greek-ext-600-normal-DPxZoeHL.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-greek-600-normal-BlqpLOpF.woff2) format("woff2"),url(/assets/fira-sans-greek-600-normal-DfHu91YF.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-vietnamese-600-normal-Dh2KAvU8.woff2) format("woff2"),url(/assets/fira-sans-vietnamese-600-normal-Bxjaclsw.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-latin-ext-600-normal-DTQBTt1m.woff2) format("woff2"),url(/assets/fira-sans-latin-ext-600-normal-DLMQsaV4.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-latin-600-normal-CXKlxLG9.woff2) format("woff2"),url(/assets/fira-sans-latin-600-normal-DtSgd811.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-cyrillic-ext-700-normal-BfO9TR-w.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-ext-700-normal-Gcpdxicj.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-cyrillic-700-normal-Bl-HczEO.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-700-normal-KyW5QH4H.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-greek-ext-700-normal-C1m6bE4Q.woff2) format("woff2"),url(/assets/fira-sans-greek-ext-700-normal-C8J5qYMq.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-greek-700-normal-BVfcrbV7.woff2) format("woff2"),url(/assets/fira-sans-greek-700-normal-CJu31rC4.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-vietnamese-700-normal-j5oLGLJY.woff2) format("woff2"),url(/assets/fira-sans-vietnamese-700-normal-DFi88MGY.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-latin-ext-700-normal-g2Yrd4J5.woff2) format("woff2"),url(/assets/fira-sans-latin-ext-700-normal-cfTxGFzJ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-latin-700-normal-CRhwpWTq.woff2) format("woff2"),url(/assets/fira-sans-latin-700-normal-DgqLm3Fi.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--bg: #111820;--surface: #18212b;--surface-2: #1f2a36;--surface-3: #273442;--text: #ffffff;--text-2: rgb(255 255 255 / .72);--text-3: rgb(255 255 255 / .56);--line: rgb(255 255 255 / .09);--line-strong: rgb(255 255 255 / .16);--accent: #e62b83;--accent-fill: #c8186c;--accent-text: #ff6aad;--success: #176b55;--success-text: #4fc9a2;--info: #087f9b;--info-text: #4cc3e0;--warn: #c17a32;--warn-text: #e6a563;--on-warn: #111820;--danger-text: #ff8a8a;--font: "Fira Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: ui-monospace, "Cascadia Mono", Consolas, monospace;--fs-xs: .8125rem;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: 1.75rem;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--sp-8: 64px;--radius: 10px;--radius-sm: 6px;--tap: 44px;--ease: cubic-bezier(.16, 1, .3, 1);--dur: .18s}@media(prefers-reduced-motion:reduce){:root{--dur: 0ms}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-md);line-height:1.5;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.2;font-weight:600;text-wrap:balance}a{color:var(--accent-text);text-underline-offset:3px}img{display:block;max-width:100%}::selection{background:#e62b8373;color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent;caret-color:var(--accent)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.icon{flex:none;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.mono{font-family:var(--mono);font-size:.92em;letter-spacing:.02em}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--tap);padding:0 var(--sp-4);border:1px solid transparent;border-radius:var(--radius-sm);font:inherit;font-size:var(--fs-sm);font-weight:600;white-space:nowrap;cursor:pointer;text-decoration:none;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn--primary{background:var(--accent-fill);color:var(--text)}.btn--primary:hover:not(:disabled){background:var(--accent)}.btn--secondary{background:var(--surface-2);border-color:var(--line-strong);color:var(--text)}.btn--secondary:hover:not(:disabled){background:var(--surface-3)}.btn--ghost{background:transparent;color:var(--text-2)}.btn--ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn--danger{background:transparent;border-color:#ff8a8a66;color:var(--danger-text)}.btn--danger:hover:not(:disabled){background:#ff8a8a1a}.btn--sm{min-height:36px;padding:0 var(--sp-3)}.btn--icon{width:var(--tap);padding:0}.field{display:grid;gap:6px;min-width:0}.field-label{font-size:var(--fs-sm);font-weight:500;color:var(--text-2)}.field-hint{font-size:var(--fs-xs);color:var(--text-3)}.field-error{font-size:var(--fs-sm);color:var(--danger-text)}.input,.select,.textarea{width:100%;min-width:0;min-height:var(--tap);padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit;font-size:var(--fs-md);transition:border-color var(--dur) var(--ease)}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input:hover,.select:hover,.textarea:hover{border-color:#ffffff47}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #e62b8347}.input[aria-invalid=true]{border-color:var(--danger-text)}.textarea{min-height:88px;resize:vertical}.select{appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-opacity='.6' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.select option{background:var(--surface)}input[type=date]::-webkit-calendar-picker-indicator,input[type=month]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator{filter:invert(1) opacity(.6);cursor:pointer}.check{display:inline-flex;align-items:center;gap:var(--sp-3);min-height:var(--tap);cursor:pointer}.check input{width:20px;height:20px;accent-color:var(--accent-fill)}.badge{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 8px;border-radius:999px;font-size:var(--fs-xs);font-weight:600;white-space:nowrap;background:var(--surface-3);color:var(--text-2)}.badge .icon{width:14px;height:14px;stroke-width:2.25}.badge--in{background:#176b5559;color:var(--success-text)}.badge--out{background:#087f9b52;color:var(--info-text)}.badge--warn{background:var(--warn);color:var(--on-warn)}.badge--accent{background:#e62b832e;color:var(--accent-text)}.shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh;min-height:100dvh}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;height:100dvh;padding:var(--sp-5) var(--sp-3);border-right:1px solid var(--line);background:var(--bg)}.wordmark{display:flex;align-items:center;gap:10px;padding:0 var(--sp-3) var(--sp-5);color:var(--text);text-decoration:none;font-weight:600;line-height:1.15}.wordmark img{height:36px;width:auto}.wordmark-mark{width:12px;height:12px;border-radius:3px;background:var(--accent);flex:none}.wordmark small{display:block;font-weight:400;font-size:var(--fs-xs);color:var(--text-3)}.nav{display:grid;gap:2px}.nav-link{display:flex;align-items:center;gap:var(--sp-3);min-height:var(--tap);padding:0 var(--sp-3);border-radius:var(--radius-sm);color:var(--text-2);text-decoration:none;font-size:var(--fs-sm);font-weight:500;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.nav-link:hover{background:var(--surface);color:var(--text)}.nav-link[aria-current=page]{background:var(--surface-2);color:var(--text)}.nav-link[aria-current=page] .icon{color:var(--accent-text)}.nav-count{margin-left:auto}.sidebar-foot{margin-top:auto;display:grid;gap:2px;padding-top:var(--sp-4);border-top:1px solid var(--line)}.sidebar-user{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-xs);color:var(--text-3)}.main{min-width:0;padding:var(--sp-6) clamp(16px,4vw,48px) var(--sp-8)}.page{max-width:1200px;margin:0 auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-4);margin-bottom:var(--sp-6)}.page-head h1{font-size:var(--fs-2xl);letter-spacing:-.01em}.page-head p{margin-top:var(--sp-1);color:var(--text-2)}.page-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.section{margin-top:var(--sp-7)}.section:first-child{margin-top:0}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3)}.section-head h2{font-size:var(--fs-lg)}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.panel-body{padding:var(--sp-5)}.stack{display:grid;gap:var(--sp-4)}.row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-3)}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4)}.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-3);margin-bottom:var(--sp-4)}.filters .field{min-width:150px;flex:0 1 auto}.summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.summary-item{padding:var(--sp-4) var(--sp-5);border-left:1px solid var(--line);color:inherit;text-decoration:none}.summary-item:first-child{border-left:0}a.summary-item:hover{background:var(--surface-2)}.summary-value{font-size:var(--fs-2xl);font-weight:600;line-height:1.1}.summary-label{margin-top:var(--sp-1);font-size:var(--fs-sm);color:var(--text-2)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.table th{position:sticky;top:0;padding:10px var(--sp-4);border-bottom:1px solid var(--line);background:var(--surface);font-size:var(--fs-xs);font-weight:600;text-align:left;color:var(--text-3);white-space:nowrap}.table td{padding:10px var(--sp-4);border-bottom:1px solid var(--line);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:#ffffff05}.table .num{text-align:right;white-space:nowrap}.table .time{white-space:nowrap;font-weight:500}.table .strike{text-decoration:line-through;color:var(--text-3)}.cell-person{display:flex;align-items:center;gap:var(--sp-3);min-width:0;color:inherit;text-decoration:none}.cell-person:hover strong{text-decoration:underline;text-underline-offset:3px}.cell-person strong{font-weight:500;white-space:nowrap}.mark-btn{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 10px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text);font:inherit;font-weight:500;cursor:pointer}.mark-btn:hover{border-color:var(--line-strong);background:var(--surface-2)}.mark-btn--empty{color:var(--text-3)}.mark-btn--flag{color:var(--warn-text)}.avatar{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;overflow:hidden;background:var(--surface-3);color:var(--text-2);font-size:var(--fs-xs);font-weight:600}.avatar img{width:100%;height:100%;object-fit:cover}.avatar--lg{width:96px;height:96px;font-size:var(--fs-xl)}.list{display:grid}.list-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--line)}.list-item:first-child{border-top:0}.list-item-main{flex:1;min-width:0}.list-item-main strong{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-item-main span{font-size:var(--fs-sm);color:var(--text-2)}.empty{display:grid;justify-items:center;gap:var(--sp-2);padding:var(--sp-7) var(--sp-5);text-align:center;color:var(--text-2)}.empty .icon{width:28px;height:28px;color:var(--text-3)}.empty strong{color:var(--text);font-weight:600}.empty p{max-width:46ch;font-size:var(--fs-sm)}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.notice{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2);font-size:var(--fs-sm);color:var(--text-2)}.notice .icon{margin-top:1px;color:var(--warn-text)}.notice--warn{border-color:#c17a328c}.notice--error{border-color:#ff8a8a73}.notice--error .icon{color:var(--danger-text)}.dialog{width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--line-strong);border-radius:14px;background:var(--surface);color:var(--text)}.dialog::backdrop{background:#05080cb3}.dialog[open]{animation:dialog-in .2s var(--ease)}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px)}}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-4) var(--sp-4) var(--sp-5);border-bottom:1px solid var(--line)}.dialog-head h2{font-size:var(--fs-lg)}.dialog-body{display:grid;gap:var(--sp-4);padding:var(--sp-5)}.dialog-foot{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--line)}.toasts{position:fixed;right:16px;bottom:16px;z-index:50;display:grid;gap:var(--sp-2)}.toast{display:flex;align-items:center;gap:var(--sp-3);max-width:380px;padding:var(--sp-3) var(--sp-4);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-3);font-size:var(--fs-sm);animation:dialog-in .2s var(--ease)}.toast .icon{color:var(--success-text)}.toast--error .icon{color:var(--danger-text)}.capture{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--bg)}.capture--waiting{border-color:var(--accent)}.capture--waiting .icon{color:var(--accent-text);animation:pulse 1.4s ease-in-out infinite}.capture--done{border-style:solid;border-color:#4fc9a299}.capture--done .icon{color:var(--success-text)}@keyframes pulse{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.capture--waiting .icon{animation:none}}.tabs{display:flex;gap:var(--sp-1);margin-bottom:var(--sp-4);border-bottom:1px solid var(--line);overflow-x:auto}.tab{min-height:var(--tap);padding:0 var(--sp-3);border:0;border-bottom:2px solid transparent;background:none;color:var(--text-2);font:inherit;font-size:var(--fs-sm);font-weight:500;white-space:nowrap;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}.tab:hover{color:var(--text)}.tab[aria-selected=true]{border-bottom-color:var(--accent);color:var(--text)}.pager{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-top:var(--sp-3);font-size:var(--fs-sm);color:var(--text-2)}.kv{display:grid;grid-template-columns:max-content 1fr;gap:var(--sp-2) var(--sp-5);font-size:var(--fs-sm)}.kv dt{color:var(--text-3)}.kv dd{margin:0}.login{display:grid;place-items:center;min-height:100vh;min-height:100dvh;padding:var(--sp-4)}.login-card{display:grid;gap:var(--sp-5);width:min(400px,100%)}.login-card h1{font-size:var(--fs-2xl)}.day-cards{display:none}.day-card{display:grid;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--line)}.day-card:first-child{border-top:0}.day-card-marks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-1)}.day-card-marks .mark-btn{justify-content:center;min-height:var(--tap);padding:0 4px;border-color:var(--line);flex-direction:column;gap:0;line-height:1.15}.mark-slot{font-size:11px;font-weight:600;color:var(--text-3)}.show-sm,.mobile-bar,.bottom-nav{display:none}@media(max-width:960px){.shell{grid-template-columns:1fr}.sidebar{display:none}.mobile-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--line);background:#111820f5}.mobile-bar .wordmark{padding:0}.main{padding:var(--sp-5) var(--sp-4) calc(88px + env(safe-area-inset-bottom))}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);background:var(--bg)}.bottom-nav a,.bottom-nav button{display:grid;justify-items:center;gap:2px;min-height:60px;padding:8px 0 6px;border:0;background:none;color:var(--text-3);font:inherit;font-size:11px;font-weight:500;text-decoration:none;cursor:pointer}.bottom-nav [aria-current=page]{color:var(--text)}.bottom-nav [aria-current=page] .icon{color:var(--accent-text)}.summary{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-item:nth-child(3){border-left:0}.summary-item:nth-child(n+3){border-top:1px solid var(--line)}.grid-3{grid-template-columns:1fr 1fr}.page-head{margin-bottom:var(--sp-5)}}@media(max-width:600px){.grid-2,.grid-3{grid-template-columns:1fr}.page-head h1{font-size:var(--fs-xl)}.page-actions{width:100%}.page-actions .btn{flex:1}.filters .field{flex:1 1 140px}.hide-sm{display:none}.show-sm,.day-cards{display:block}.day-table{display:none}.list-item{flex-wrap:wrap}.list-item>.badge{margin-left:48px}.cell-person strong{white-space:normal}.table th,.table td{padding:10px var(--sp-3)}.toasts{left:16px;bottom:calc(76px + env(safe-area-inset-bottom))}}
