@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-Dc4VJyIJ.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-BPnxn4xp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-BLGc9T1a.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-ZzOtrSSW.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-Bput3-QP.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-DCpCPQOf.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-DxZsaF_h.woff2) format("woff2"),url(/assets/inter-greek-400-normal-BZzXV7-1.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-BUNmGMP1.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-hnt3BR84.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-C1t-h-pH.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-BOOGhInR.woff2) format("woff2"),url(/assets/inter-latin-400-normal-gitzw0hO.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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-BShVwWPj.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-CUiC4oBV.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-D4Vwzodn.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-DH2hs3aW.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-B6guLgqG.woff2) format("woff2"),url(/assets/inter-greek-ext-500-normal-M2hEX8vc.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-CeQXL5ds.woff2) format("woff2"),url(/assets/inter-greek-500-normal-d_eO-yCQ.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2) format("woff2"),url(/assets/inter-vietnamese-500-normal-DQPw2Hwd.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CIS2RHJS.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-UMdmhHu2.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-D2bGa7uu.woff2) format("woff2"),url(/assets/inter-latin-500-normal-deR1Tlfd.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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-CaqZN2hq.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bt9VVOA-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-BGBWG807.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-BuzJQFbW.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-Cnui8OiR.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-C9WLioJ8.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-Dhlb-90d.woff2) format("woff2"),url(/assets/inter-greek-600-normal-CwicyhtI.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-Cm6aH8_k.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-BnYJhD27.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CAF0vJDd.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-D273HNI0.woff2) format("woff2"),url(/assets/inter-latin-600-normal-B5cFAncS.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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #F4F2ED;--panel: #FDFCFA;--border: #E4E0D7;--border-strong: #CFC9BC;--text: #22241F;--muted: #75786D;--accent: #3B6D11;--accent-hover: #2F5A0C;--accent-soft: #EAF3DE;--accent-border: #C4DBA4;--danger: #B3362B;--danger-soft: #FBEFED;--danger-border: #ECC5C0;--ok: #3B6D11;--ok-soft: #EFF6E5;--ok-border: #CCE0AE;--warn-text: #8A5A18;--warn-soft: #FBF3E1;--warn-border: #EBD5A4;--free: #F7F5F0;--reserved: #F6E8CB;--reserved-border: #C08A2E;--inactive: #E7E4DB;--inactive-stripe: #EFEDE5;--neutral-block: #8B8E82;--dot: rgba(34, 36, 31, .1);--mark-ink: #22241F;--mark-moss: #639922;--mark-deep: #3B6D11;--toast-bg: #22241F;--toast-text: #FDFCFA;--toast-ok: #A5CE6F;--toast-err: #F1A79E;--chip-neutral-bg: #ECEAE2;--chip-neutral-text: #5B5E53;--radius: 10px;--radius-sm: 8px;--shadow-sm: 0 1px 2px rgba(30, 32, 27, .05);--shadow-md: 0 4px 12px rgba(30, 32, 27, .08);--shadow-lg: 0 12px 32px rgba(30, 32, 27, .16);--ease: cubic-bezier(.22, .61, .36, 1);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text);font-feature-settings:"cv02","cv03","cv04";color-scheme:light}:root[data-theme=dark]{--bg: #161815;--panel: #1C1E1B;--border: #2C2F29;--border-strong: #3C403A;--text: #EDEBE4;--muted: #9A9D90;--accent: #7DB53B;--accent-hover: #90C94E;--accent-soft: #26301B;--accent-border: #3E5623;--danger: #E06A5C;--danger-soft: #33201D;--danger-border: #573028;--ok: #8FC552;--ok-soft: #232D17;--ok-border: #3B4F21;--warn-text: #E0B15E;--warn-soft: #2E2718;--warn-border: #4E4023;--free: #21241F;--reserved: #37301C;--reserved-border: #C08A2E;--inactive: #242722;--inactive-stripe: #1E211D;--neutral-block: #565A50;--dot: rgba(237, 235, 228, .07);--mark-ink: #EDEBE4;--mark-moss: #7DB53B;--mark-deep: #A6D46A;--toast-bg: #EDEBE4;--toast-text: #1C1E1B;--toast-ok: #4E7A1E;--toast-err: #B3362B;--chip-neutral-bg: #262924;--chip-neutral-text: #A5A899;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow-md: 0 4px 14px rgba(0, 0, 0, .45);--shadow-lg: 0 14px 36px rgba(0, 0, 0, .55);color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-size:14px;line-height:1.5;background-color:var(--bg);background-image:radial-gradient(var(--dot) 1px,transparent 1px);background-size:22px 22px}#root{min-height:100vh;display:flex;flex-direction:column}#root>.page,#root>.login-wrap{flex:1}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0 0 8px;font-weight:600;letter-spacing:-.01em}h1{font-size:21px}h2{font-size:16px}h3{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.muted{color:var(--muted)}.small{font-size:12px}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.err,.ok,.warn{padding:10px 12px;border-radius:var(--radius-sm);margin:8px 0;font-size:13px;animation:fade-up .2s var(--ease)}.err{color:var(--danger);background:var(--danger-soft);border:1px solid var(--danger-border)}.ok{color:var(--ok);background:var(--ok-soft);border:1px solid var(--ok-border)}.warn{color:var(--warn-text);background:var(--warn-soft);border:1px solid var(--warn-border)}.topbar{background:var(--panel);color:var(--text);padding:0 20px;display:flex;align-items:center;gap:6px;height:56px;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:40}.topbar .brand{font-weight:600;margin-right:14px;padding:0!important;letter-spacing:-.01em;display:flex;align-items:center;gap:8px;text-decoration:none!important;color:var(--text)!important;background:transparent!important}.topbar a{color:var(--muted);text-decoration:none;padding:7px 12px;border-radius:var(--radius-sm);font-weight:500;font-size:13px;transition:color .15s var(--ease),background .15s var(--ease)}.topbar a:hover{color:var(--text);background:var(--bg)}.topbar a.active{color:var(--accent);background:var(--accent-soft)}.topbar .spacer{flex:1}.topbar .who{color:var(--muted);font-size:12px;margin-right:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.topbar button{background:transparent;color:var(--muted);border:1px solid var(--border)}.topbar button:hover{color:var(--text);border-color:var(--border-strong);background:var(--bg)}.topbar select.lang{padding:5px 8px;font-size:12px;color:var(--muted);border-color:var(--border);background:transparent}.page{padding:20px;max-width:1400px;margin:0 auto;animation:fade-in .18s var(--ease)}.row{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.col{flex:1;min-width:280px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin-bottom:14px;box-shadow:var(--shadow-sm)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.toolbar label{display:flex;gap:6px;align-items:center}button,.btn{background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:var(--radius-sm);padding:7px 14px;cursor:pointer;font-size:13px;font-weight:500;font-family:inherit;text-decoration:none;display:inline-block;transition:background .15s var(--ease),border-color .15s var(--ease),transform .1s var(--ease),box-shadow .15s var(--ease)}button:hover,.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);text-decoration:none}button:active,.btn:active{transform:scale(.98)}button.secondary,.btn.secondary{background:var(--panel);color:var(--text);border-color:var(--border-strong)}button.secondary:hover,.btn.secondary:hover{background:var(--bg);border-color:var(--muted)}button.danger{background:var(--danger);border-color:var(--danger)}button.danger:hover{background:#97281e;border-color:#97281e}button:disabled{opacity:.45;cursor:not-allowed;transform:none}input,select,textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:7px 10px;font-size:13px;font-family:inherit;background:var(--panel);color:var(--text);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}.form label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted);font-weight:500}.form label input,.form label select,.form label textarea{font-size:13px;color:var(--text);font-weight:400}.form .full{grid-column:1 / -1}.form label.check{flex-direction:row;align-items:center;color:var(--text);font-weight:400}.form-section{grid-column:1 / -1;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:6px 0 -2px;padding-top:10px;border-top:1px solid var(--border)}.form-section:first-child{border-top:none;padding-top:0;margin-top:0}form.panel{padding:20px 22px}.empty-state{text-align:center;padding:48px 24px;max-width:440px;margin:48px auto 0}.empty-state h1{margin:0 0 8px;font-size:18px}.empty-state p{margin:0 0 18px}.team-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}.team-list li{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px dashed var(--border);gap:10px;flex-wrap:wrap}.team-list li:last-child{border-bottom:none}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}th{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em}tbody tr{transition:background .12s var(--ease)}tbody tr:hover{background:var(--bg)}.table-wrap{overflow-x:auto}.grid-wrap{overflow-x:auto;padding:2px}.grid{display:grid;gap:6px}.cell{border:1px solid var(--border);border-radius:var(--radius-sm);min-height:68px;padding:6px 8px;background:var(--free);cursor:pointer;position:relative;font-size:11px;line-height:1.3;overflow:hidden;transition:transform .15s var(--ease),box-shadow .15s var(--ease),border-color .15s var(--ease),outline-color .15s var(--ease)}.cell:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.cell .code{font-weight:600;font-size:12px}.cell .meta{color:var(--muted)}.cell.free:hover{border-color:var(--accent)}.cell.inactive{background:repeating-linear-gradient(45deg,var(--inactive),var(--inactive) 4px,var(--inactive-stripe) 4px,var(--inactive-stripe) 8px);cursor:not-allowed;color:var(--muted)}.cell.inactive:hover{transform:none;box-shadow:none}.cell.reserved{background:var(--reserved);border-color:var(--reserved-border)}.cell.reserved .code{color:var(--warn-text)}.cell.reserved .meta{color:var(--warn-text);opacity:.8}.cell.occupied{color:#fff;border-color:transparent}.cell.occupied .meta,.cell.occupied .code{color:#fff}.cell.occupied .meta{opacity:.75}.cell.other{background:var(--neutral-block);color:#fff}.cell.dim{opacity:.4}.cell.selected{outline:3px solid var(--text);outline-offset:1px}.cell.suggested{outline:3px dashed var(--accent);outline-offset:1px}.legend{display:flex;gap:14px;flex-wrap:wrap;margin:10px 0;font-size:12px;color:var(--muted)}.legend span:before{content:"";display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:5px;vertical-align:-2px;border:1px solid var(--border);background:var(--sw)}.stat{display:inline-block;margin-right:22px}.stat b{display:block;font-size:20px;font-weight:600;letter-spacing:-.02em}.stat span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.detail-panel{position:sticky;top:68px}.detail-panel>.panel{animation:fade-up .22s var(--ease)}.kv{display:grid;grid-template-columns:130px 1fr;gap:6px 12px;font-size:13px;margin:8px 0}.kv dt{color:var(--muted)}.kv dd{margin:0}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:500;background:var(--chip-neutral-bg);color:var(--chip-neutral-text)}.badge.reserved,.badge.provisional,.badge.unpaid,.badge.scheduled{background:var(--reserved);color:var(--warn-text)}.badge.in_storage,.badge.reconciled,.badge.paid,.badge.done{background:var(--ok-soft);color:var(--ok)}.badge.departed,.badge.completed,.badge.cancelled{background:var(--chip-neutral-bg);color:var(--muted)}.events{list-style:none;padding:0;margin:0;font-size:12px}.events li{padding:6px 0;border-bottom:1px dashed var(--border);animation:fade-in .2s var(--ease)}.events .ts{color:var(--muted);margin-right:6px}.sug{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center;gap:10px;transition:border-color .15s var(--ease),background .15s var(--ease)}.sug:hover{border-color:var(--border-strong)}.sug.best{border-color:var(--accent-border);background:var(--accent-soft)}.timeline{position:relative;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);overflow:hidden}.tl-hours{display:grid;font-size:11px;color:var(--muted);border-bottom:1px solid var(--border);background:var(--bg)}.tl-hours div{padding:3px 5px;border-left:1px solid var(--border)}.tl-row{display:flex;border-bottom:1px solid var(--border);min-height:42px}.tl-label{width:110px;flex:none;padding:8px;font-size:12px;font-weight:500;border-right:1px solid var(--border)}.tl-track{position:relative;flex:1}.tl-block{position:absolute;top:5px;bottom:5px;border-radius:6px;padding:4px 7px;font-size:11px;font-weight:500;color:#fff;overflow:hidden;white-space:nowrap;cursor:pointer;transition:transform .12s var(--ease),box-shadow .12s var(--ease),opacity .12s var(--ease)}.tl-block:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.tl-block.unload{background:var(--accent)}.tl-block.load{background:#2f8f83}.tl-block.done{opacity:.45}.tl-block.cancelled{background:var(--neutral-block);text-decoration:line-through}.tl-block.sel{outline:3px solid var(--text);outline-offset:1px}.steps{display:flex;gap:8px;margin-bottom:16px;font-size:12px;flex-wrap:wrap}.steps span{padding:5px 12px;border-radius:999px;background:var(--chip-neutral-bg);color:var(--muted);font-weight:500;transition:background .2s var(--ease),color .2s var(--ease)}.steps span.on{background:var(--accent);color:#fff}.login{max-width:380px;margin:72px auto;padding:24px 26px;animation:fade-up .28s var(--ease)}.login h1{font-size:22px}.quote-box{font-size:15px;line-height:1.7}.quote-box b{font-size:24px;font-weight:600;letter-spacing:-.02em}@media (max-width: 960px){.page{padding:14px}.topbar{padding:0 12px;overflow-x:auto}.topbar .who{display:none}.detail-panel{position:static}.detail-panel.floating{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:60;max-height:72vh;overflow-y:auto;margin:0}.detail-panel.floating>.panel{border-radius:16px 16px 0 0;margin:0;box-shadow:var(--shadow-lg);animation:slide-up .26s var(--ease);border-bottom:none}.sheet-close{display:block!important}}@media (max-width: 640px){.form{grid-template-columns:1fr}body{font-size:15px}button,.btn{padding:9px 16px;min-height:40px}input,select,textarea{padding:9px 11px;min-height:40px;font-size:14px}.cell{min-height:58px}.stat{margin-right:14px}.stat b{font-size:17px}h1{font-size:19px}.kv{grid-template-columns:110px 1fr}}.sheet-close{display:none;position:sticky;top:0;float:right;margin:-4px -4px 4px 8px;z-index:5}.toasts{position:fixed;right:16px;bottom:16px;z-index:100;display:flex;flex-direction:column;gap:8px}.toast{display:flex;align-items:center;gap:9px;background:var(--toast-bg);color:var(--toast-text);padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;box-shadow:var(--shadow-lg);animation:toast-in .24s var(--ease);max-width:340px}.toast.out{animation:toast-out .22s var(--ease) forwards}.toast svg{flex:none;color:var(--toast-ok)}.toast.error svg{color:var(--toast-err)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translateY(6px)}}.panel-stagger>*{opacity:0;animation:fade-up .24s var(--ease) forwards}.panel-stagger>*:nth-child(1){animation-delay:0ms}.panel-stagger>*:nth-child(2){animation-delay:50ms}.panel-stagger>*:nth-child(3){animation-delay:.1s}.panel-stagger>*:nth-child(4){animation-delay:.15s}.panel-stagger>*:nth-child(5){animation-delay:.2s}.panel-stagger>*:nth-child(n+6){animation-delay:.25s}.topbar{position:sticky}.topbar .nav{position:relative;display:flex;gap:6px}.topbar .nav .pill{position:absolute;top:50%;transform:translateY(-50%);height:32px;background:var(--accent-soft);border-radius:var(--radius-sm);transition:left .24s var(--ease),width .24s var(--ease);z-index:0}.topbar .nav a{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px}.topbar .nav a.active{background:transparent}.topbar .nav a svg{width:15px;height:15px}.step-slide{animation:step-in .26s var(--ease)}@keyframes step-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.dash-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px;align-items:stretch}@media (max-width: 900px){.dash-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 480px){.dash-cards{grid-template-columns:1fr}}.dash-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-sm);min-width:0}.dash-card .ic{width:30px;height:30px;border-radius:8px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:8px;flex:none}.dash-card .ic svg{width:16px;height:16px}.dash-card .ic.sm{width:22px;height:22px;margin-bottom:0}.dash-card .ic.sm svg{width:12px;height:12px}.dash-card .ic.tone-warn{background:var(--warn-soft);color:var(--reserved-border)}.dash-card b{display:block;font-size:24px;font-weight:600;letter-spacing:-.02em}.dash-card span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.dash-card.ring-card{display:flex;align-items:center;gap:14px}.dash-card-label{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}.dash-card-label span{white-space:normal;line-height:1.3}.radial-stat{position:relative;flex:none;display:flex;align-items:center;justify-content:center}.radial-stat .radial-arc{transition:stroke-dashoffset .7s var(--ease)}.radial-num{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:650;letter-spacing:-.01em}.seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--radius-sm);overflow:hidden}.seg button{border:none;border-radius:0;background:var(--panel);color:var(--muted);padding:7px 14px}.seg button.on{background:var(--accent);color:#fff}.seg button:hover:not(.on){background:var(--bg);color:var(--text)}.heatmap{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.hm-day{aspect-ratio:1.4;border-radius:6px;background:var(--free);border:1px solid var(--border);position:relative;cursor:pointer;font-size:11px;padding:4px 6px;color:var(--muted);transition:background-color .5s var(--ease),border-color .5s var(--ease),transform .12s var(--ease);overflow:hidden}.hm-day:hover{transform:translateY(-1px);border-color:var(--accent)}.hm-day .pct{position:absolute;right:6px;bottom:3px;font-weight:600;font-size:11px}.hm-day.dim{opacity:.35;cursor:default}.hm-head{font-size:11px;color:var(--muted);text-align:center;padding-bottom:2px}.hm-pop{animation:fade-up .18s var(--ease)}.hbar{display:flex;align-items:center;gap:10px;margin:8px 0;font-size:13px}.hbar .name{width:150px;flex:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbar .track{flex:1;height:10px;background:var(--bg);border-radius:999px;overflow:hidden}.hbar .fill{height:100%;border-radius:999px;background:var(--accent);transform-origin:left;animation:bar-grow .7s var(--ease)}.hbar .val{width:90px;flex:none;text-align:right;color:var(--muted);font-size:12px}@media (max-width: 640px){.hbar .name{width:96px}.toasts{left:16px;right:16px}.toast{max-width:none}}@keyframes bar-grow{0%{transform:scaleX(0)}}.hm-day{animation:fade-in .4s var(--ease) both}.gridmark .gm-a{fill:var(--mark-deep)}.gridmark .gm-b{fill:var(--mark-moss)}.gridmark .gm-c{fill:var(--mark-ink)}.brand-lockup{display:inline-flex;align-items:center;gap:9px}.brand-words{font-size:14.5px;letter-spacing:-.01em;white-space:nowrap}.brand-words em{font-style:normal;font-weight:400;color:var(--muted);margin-right:4px}.topbar .brand:hover{text-decoration:none}.topbar a.iconbtn,.iconbtn{padding:0}.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);background:transparent;transition:color .15s var(--ease),border-color .15s var(--ease),background .15s var(--ease)}.iconbtn:hover{color:var(--text);border-color:var(--border-strong);background:var(--bg);text-decoration:none}.iconbtn.active{color:var(--accent);border-color:var(--accent-border);background:var(--accent-soft)}.login-wrap{min-height:calc(100vh + -0px);display:flex;align-items:center;justify-content:center;padding:24px 14px}.login{max-width:400px;width:100%;margin:0;padding:30px 30px 24px}.login-brand{display:flex;flex-direction:column;align-items:center;gap:12px;padding-top:6px}.login-words{text-align:center;line-height:1.15}.login-words em{display:block;font-style:normal;font-weight:400;font-size:14px;color:var(--muted);letter-spacing:.02em}.login-words b{display:block;font-weight:650;font-size:26px;letter-spacing:-.02em}.gridmark.assemble .gm-cell{opacity:0;transform-origin:center;transform-box:fill-box;animation:gm-in .3s var(--ease) forwards}@keyframes gm-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.login-words{opacity:0;animation:fade-up .34s var(--ease) .66s forwards}.login-fade{opacity:0;animation:fade-up .34s var(--ease) .84s forwards}@media (prefers-reduced-motion: reduce){.gridmark.assemble .gm-cell,.login-words,.login-fade{opacity:1!important;animation:none!important;transform:none!important}}.gridmark.settle .gm-cell{animation:gm-pulse .48s var(--ease) both}@keyframes gm-pulse{0%{transform:scale(1);filter:brightness(1)}35%{transform:scale(1.16);filter:brightness(1.35)}to{transform:scale(1);filter:brightness(1)}}.login.login-success{animation:login-out .48s var(--ease) .22s forwards;pointer-events:none}@keyframes login-out{to{opacity:0;transform:translateY(-6px) scale(.985)}}@media (prefers-reduced-motion: reduce){.gridmark.settle .gm-cell{animation:none!important}.login.login-success{animation:none!important;opacity:.6}}.client-color-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px dashed var(--border);flex-wrap:wrap}.client-color-row:last-child{border-bottom:none}.swatches{display:flex;gap:6px;flex-wrap:wrap}.swatch{width:26px;height:26px;border-radius:8px;border:2px solid transparent;padding:0;display:inline-flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:transform .12s var(--ease),border-color .12s var(--ease)}.swatch:hover{transform:scale(1.12);background:inherit;border-color:var(--border-strong)}.swatch.on{border-color:var(--text)}.swatch:disabled{opacity:.5;cursor:wait;transform:none}.seg button svg{vertical-align:-2px}.site-footer{border-top:1px solid var(--border);margin-top:32px;padding:18px 24px}.site-footer-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.site-footer-brand{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--text)}.site-footer-links{display:flex;gap:16px;margin-left:auto}.site-footer-links a,.site-footer a{color:var(--muted);text-decoration:none}.site-footer-links a:hover,.site-footer a:hover{color:var(--accent);text-decoration:underline}.contact-chip{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;background:var(--chip-neutral-bg);color:var(--text);text-decoration:none;font-size:13px}.contact-chip:hover{background:var(--accent-soft);color:var(--accent)}.legal-copy{line-height:1.7}.legal-copy h2{font-size:14px;margin:20px 0 6px}.legal-copy h2:first-child{margin-top:0}.legal-copy p,.legal-copy ul{color:var(--text)}.legal-copy ul{padding-left:20px}.legal-copy a{color:var(--accent)}
