@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-opsz-normal-Czevyj-6.woff2) format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-opsz-normal-CJcjJNj7.woff2) format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-opsz-normal-DihXLNYH.woff2) format("woff2-variations");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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-opsz-italic-DxWqP7Ku.woff2) format("woff2-variations");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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-opsz-italic-CGbN9UgK.woff2) format("woff2-variations");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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-opsz-italic-lSdLDfvT.woff2) format("woff2-variations");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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-vietnamese-400-normal-CRcqvyg1.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-400-normal-BuGn0gnm.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-ext-400-normal-CiZNW1ec.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-ext-400-normal-DYBYyMQr.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-400-normal-PpnXBOrz.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-400-normal-bXgqVju9.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-vietnamese-500-normal-DREgrEoJ.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-500-normal-CfdwVo8-.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-latin-ext-500-normal-h0Fp6aX0.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-ext-500-normal-CK0UkkKf.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-latin-500-normal-B6LVzGNe.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-500-normal-BJkVuMHw.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-vietnamese-600-normal-nyU-ZL2p.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-600-normal-DkpCIyan.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-ext-600-normal-BNd8euf0.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-ext-600-normal-BeUwKxhG.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-600-normal-BZDkUTrt.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-600-normal-5IO4e7bK.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-vietnamese-700-normal-Csr0PCuG.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-700-normal-By_5yT39.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-latin-ext-700-normal-C8_gqRu2.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-ext-700-normal-4Hjo2OtD.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-latin-700-normal-DlW1Zbsh.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-700-normal-C2EtzaOi.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}.lsn-list{display:grid;gap:12px;margin:0;padding:0;list-style:none}.lsn-list.lsn-cols{grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));align-items:start}.lsn-item{display:grid;gap:10px;padding:14px 16px 14px 20px}.lsn-item .quote-empty{color:var(--ink-3);font-style:italic}.lsn-good{--q: var(--good)}.lsn-ok{--q: var(--gold)}.lsn-bad{--q: var(--neg)}.lsn-none{--q: var(--line-strong)}.lsn-report{--q: var(--sky)}.lsn-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px}.lsn-head-aside{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:13px}.lsn-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;color:var(--ink-3);font-size:12.5px}.lsn-meta .name{color:var(--ink-2)}.lsn-item .fields{padding-top:10px;border-top:1px dashed var(--line);font-size:13px}.lsn-item .field-value .badge{margin-top:4px}.lsn-errs{display:grid;margin:0;padding:0;list-style:none}.lsn-err{display:grid;grid-template-columns:86px minmax(0,1fr);gap:16px;padding:16px 0;border-top:1px solid var(--line)}.lsn-err:first-child{border-top:0;padding-top:4px}.lsn-err-count{display:grid;align-content:start;justify-items:center;gap:1px;padding:10px 6px;border-radius:var(--radius);background:var(--surface-2);text-align:center}.lsn-err-count strong{font-family:var(--font-display);font-size:22px;font-weight:600;line-height:1.15;font-variant-numeric:lining-nums tabular-nums}.lsn-err.is-fatal .lsn-err-count{background:var(--danger-soft);color:var(--danger)}.lsn-err.is-fatal .lsn-err-count .sub{color:var(--danger)}.lsn-err-body{display:grid;gap:10px;min-width:0}.lsn-err-msg{color:var(--ink);font-family:var(--font-mono);font-size:13px;line-height:1.5;overflow-wrap:anywhere}.lsn-err-body .fields{gap:8px 22px;font-size:13px}.lsn-err-body .fold{margin-top:0}.lsn-line{display:block}.lsn-stack{max-height:320px;overflow:auto;margin:0;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink-2);font-family:var(--font-mono);font-size:11px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:640px){.lsn-err{grid-template-columns:minmax(0,1fr);gap:10px}.lsn-err-count{display:flex;align-items:baseline;justify-content:flex-start;gap:8px;padding:8px 12px}}.lst-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));grid-auto-flow:row dense;gap:14px}@media(max-width:760px){.lst-tiles{grid-template-columns:minmax(0,1fr)}}.lst-tile{display:grid;grid-template-columns:132px minmax(0,1fr);grid-template-rows:auto 1fr auto;gap:12px 14px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);transition:border-color .12s ease,box-shadow .12s ease}.lst-tile:hover{border-color:var(--line-strong)}.lst-tile.is-on{border-color:var(--accent);box-shadow:var(--ring)}.lst-tiles.is-tall .lst-tile{grid-template-columns:96px minmax(0,1fr)}.lst-cover{position:relative;grid-row:1 / 3;align-self:start;overflow:hidden;aspect-ratio:3 / 2;border-radius:var(--radius-sm);background:var(--surface-3)}.lst-tiles.is-tall .lst-cover{aspect-ratio:2 / 3}.lst-cover img{display:block;width:100%;height:100%;object-fit:cover}.lst-tile.is-off .lst-cover img{filter:grayscale(.7);opacity:.75}.lst-cover-empty{display:grid;place-items:center;align-content:center;gap:4px;height:100%;color:var(--ink-4);font-size:11.5px;text-align:center}.lst-cover-count{position:absolute;right:6px;bottom:6px;padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--ink) 72%,transparent);color:var(--surface);font-size:11px;font-weight:600}.lst-body{display:grid;align-content:start;gap:4px;min-width:0}.lst-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.lst-title{font-weight:650;line-height:1.35}.lst-body .code{justify-self:start}.lst-stats{grid-column:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:10px;border-top:1px dashed var(--line)}.lst-stat-label{display:block;color:var(--ink-3);font-size:11.5px}.lst-stats strong{display:block;font-variant-numeric:tabular-nums}.lst-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px}.lst-editor{grid-column:1 / -1;scroll-margin:16px 0 24px;padding:18px 20px 20px;border:1px solid var(--accent);border-radius:var(--radius-lg);background:var(--surface-2)}.lst-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.lst-editor-head h4{font-size:15px;font-weight:650}.lst-editor-body{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:26px;align-items:start}.lst-editor-body.is-form-only{grid-template-columns:minmax(0,1fr)}@media(max-width:1100px){.lst-editor-body{grid-template-columns:minmax(0,1fr)}}.lst-editor .card-h4:first-child{margin-top:0}.lst-editor-title{display:grid;justify-items:start;gap:4px}.lst-editor .form-grid,.lst-loan .form-grid{align-items:start}.lst-loan .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.lst-editor .form .card-h4{margin:4px 0 -6px}.lst-editor>.notice,.lst-gap{margin-bottom:14px}.lst-full{grid-column:1 / -1}.lst-shots{grid-template-columns:repeat(auto-fill,minmax(116px,1fr))}.lst-shot{display:grid;gap:6px;min-width:0}.lst-shots .thumb{display:block}.lst-shots.is-tall .thumb,.lst-shots.is-tall .upload{aspect-ratio:2 / 3}.lst-shot-tag{position:absolute;top:6px;left:6px}.lst-shot-tools{display:flex;justify-content:center;gap:4px}.upload.is-busy{cursor:progress;opacity:.6}.lst-pad{padding:0 22px 18px}.ver-rules{display:grid;gap:12px;color:var(--ink-2);font-size:13px;line-height:1.55}.ver-timeline{display:grid;margin:0;padding:0;list-style:none}.ver-timeline>li{position:relative;padding:0 0 22px 30px}.ver-timeline>li:before{content:"";position:absolute;left:4px;top:4px;width:12px;height:12px;border:2px solid var(--line-strong);border-radius:50%;background:var(--surface)}.ver-timeline>li:after{content:"";position:absolute;left:9px;top:22px;bottom:2px;width:2px;border-radius:2px;background:var(--line)}.ver-timeline>li:last-child{padding-bottom:0}.ver-timeline>li:last-child:after{display:none}.ver-timeline>li.is-live:before{border-color:var(--brand);background:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}.ver-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.ver-when{font-weight:600;font-variant-numeric:tabular-nums}.ver-nums{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:8px;color:var(--ink-3);font-size:12.5px}.ver-nums>span{display:inline-flex;align-items:center;gap:6px}.ver-notes{margin-top:10px;padding:10px 14px;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink-2);font-size:13px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}:root{--font-display: "Fraunces Variable", "Iowan Old Style", Georgia, serif;--font-body: "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;--bg: #f4efe5;--bg-deep: #ece5d8;--surface: #fffdf8;--surface-2: #f8f3ea;--surface-3: #f0e9dc;--line: #e6ddcd;--line-strong: #d6cab5;--ink: #1b2a21;--ink-2: #4a584e;--ink-3: #848a7f;--ink-4: #aeb0a6;--brand: #2c654a;--brand-strong: #1f4c37;--brand-soft: #dcebe1;--brand-ink: #fffdf8;--accent: #e2875f;--accent-strong: #c96a43;--accent-soft: #fbe3d6;--gold: #d6a03c;--gold-soft: #f7ebcd;--rose: #c55479;--rose-soft: #f6dde6;--sky: #4b7fa8;--sky-soft: #dde9f2;--danger: #b8473a;--danger-soft: #f6dcd7;--c1: #2c654a;--c2: #e2875f;--c3: #d6a03c;--viz-muted: #d3c9b6;--viz-wash: rgba(44, 101, 74, .16);--good: #3a8a5a;--warn: #d6a03c;--serious: #e07a4f;--critical: #b8473a;--pos: #3a8a5a;--neutral: #cbc0ad;--neg: #c4553d;--grid: rgba(27, 42, 33, .07);--side-bg: #14261d;--side-bg-2: #1b3226;--side-ink: #e9e3d3;--side-ink-2: #a9b5a8;--side-line: rgba(233, 227, 211, .14);--side-active: #f2a07b;--side-active-ink: #1b2a21;--radius-sm: 8px;--radius: 14px;--radius-lg: 20px;--shadow-sm: 0 1px 0 rgba(27, 42, 33, .04), 0 1px 2px rgba(27, 42, 33, .04);--shadow: 0 1px 0 rgba(27, 42, 33, .04), 0 8px 24px -12px rgba(27, 42, 33, .18);--shadow-pop: 0 24px 60px -20px rgba(15, 25, 19, .45);--ring: 0 0 0 3px rgba(226, 135, 95, .35);color-scheme:light}html[data-theme=dark]{--bg: #0e1712;--bg-deep: #0a120e;--surface: #152019;--surface-2: #1a271f;--surface-3: #213027;--line: #26362c;--line-strong: #344a3c;--ink: #ece6d6;--ink-2: #b9bfb2;--ink-3: #848d82;--ink-4: #5c675e;--brand: #6fbf91;--brand-strong: #8fd4ab;--brand-soft: #1f3a2b;--brand-ink: #0e1712;--accent: #f0a07c;--accent-strong: #f6b897;--accent-soft: #3c2a20;--gold: #e6bb62;--gold-soft: #3a3020;--rose: #e48aa8;--rose-soft: #3b2430;--sky: #86b4d8;--sky-soft: #1d2d3a;--danger: #ec8a7c;--danger-soft: #3d2320;--c1: #6fbf91;--c2: #f0a07c;--c3: #e6bb62;--viz-muted: #3d4b41;--viz-wash: rgba(111, 191, 145, .18);--good: #6fbf91;--warn: #e6bb62;--serious: #f0a07c;--critical: #ec7c6c;--pos: #6fbf91;--neutral: #4d5a50;--neg: #ec7c6c;--grid: rgba(236, 230, 214, .07);--side-bg: #08100c;--side-bg-2: #0f1a14;--side-line: rgba(233, 227, 211, .1);--shadow-sm: 0 1px 0 rgba(0, 0, 0, .2);--shadow: 0 1px 0 rgba(0, 0, 0, .25), 0 10px 30px -14px rgba(0, 0, 0, .6);--ring: 0 0 0 3px rgba(240, 160, 124, .35);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{min-height:100vh}h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.2}p{margin:0}a{color:var(--brand);text-decoration:none}a:hover{color:var(--accent-strong)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--radius-sm)}code,kbd{font-family:var(--font-mono);font-size:.92em}kbd{display:inline-block;min-width:1.6em;padding:0 .4em;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:6px;background:var(--surface);color:var(--ink-2);font-size:11px;line-height:1.6;text-align:center}img{max-width:100%}::selection{background:var(--accent-soft)}.num,.tnum{font-variant-numeric:tabular-nums}.muted{color:var(--ink-3)}.sub{display:block;color:var(--ink-3);font-size:12px;line-height:1.4}.strong{font-weight:600}.nowrap{white-space:nowrap}.pre{white-space:pre-wrap}.serif{font-family:var(--font-display)}.neg-text{color:var(--danger)}.pos-text{color:var(--good)}.faded{opacity:.55}.stack{display:grid;gap:18px}.stack-sm{display:grid;gap:10px}.row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.row-between{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.grow{flex:1 1 auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.app{display:grid;grid-template-columns:var(--side-w, 272px) minmax(0,1fr);min-height:100vh;transition:grid-template-columns .2s ease}.app.is-collapsed{--side-w: 76px}.side{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;background:radial-gradient(120% 60% at 0% 0%,rgba(242,160,123,.12),transparent 60%),linear-gradient(180deg,var(--side-bg-2),var(--side-bg));color:var(--side-ink);overflow:hidden}.side-brand{color:inherit;display:flex;align-items:center;gap:12px;padding:20px 18px 16px}.side-logo{flex:none;width:40px;height:40px;border-radius:12px;background:#f2a07b1f;display:grid;place-items:center}.side-name{min-width:0;line-height:1.15}.side-brand:hover{color:inherit}.side-name strong{display:block;font-family:var(--font-display);font-size:19px;font-weight:600;letter-spacing:-.01em;font-variation-settings:"opsz" 48}.side-name span{color:var(--side-ink-2);font-size:12px}.side-search{margin:0 14px 10px;display:flex;align-items:center;gap:8px;height:38px;padding:0 10px 0 12px;border:1px solid var(--side-line);border-radius:11px;background:#ffffff0a;color:var(--side-ink-2);font-size:13px;text-align:left}.side-search:hover{background:#ffffff14;color:var(--side-ink)}.side-search span{flex:1}.side-search kbd{border-color:var(--side-line);background:transparent;color:var(--side-ink-2)}.tree{flex:1;overflow-y:auto;padding:6px 10px 16px;scrollbar-width:thin;scrollbar-color:var(--side-line) transparent}.tree-group+.tree-group{margin-top:4px}.tree-head{display:flex;align-items:center;gap:10px;width:100%;height:36px;padding:0 10px;border:0;border-radius:10px;background:none;color:var(--side-ink);font-size:13.5px;font-weight:600;text-align:left}.tree-head:hover{background:#ffffff0f}.tree-head .tree-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-head .tree-caret{color:var(--side-ink-2);transition:transform .18s ease}.tree-group.is-open .tree-caret{transform:rotate(90deg)}.tree-head.has-active .tree-icon{color:var(--side-active)}.tree-icon{flex:none;display:grid;place-items:center;width:20px;color:var(--side-ink-2)}.tree-count{min-width:20px;padding:0 6px;border-radius:999px;background:#f2a07b2e;color:var(--side-active);font-size:11px;font-weight:600;line-height:18px;text-align:center}.tree-branch{position:relative;display:grid;margin:2px 0 6px 19px;padding-left:14px}.tree-branch:before{content:"";position:absolute;left:0;top:0;bottom:17px;border-left:1px solid var(--side-line)}.tree-leaf{position:relative;display:flex;align-items:center;gap:9px;height:34px;padding:0 10px;border-radius:9px;color:var(--side-ink-2);font-size:13px;white-space:nowrap}.tree-leaf:before{content:"";position:absolute;left:-14px;top:50%;width:10px;border-top:1px solid var(--side-line)}.tree-leaf:hover{background:#ffffff0f;color:var(--side-ink)}.tree-leaf.is-active{background:var(--side-active);color:var(--side-active-ink);font-weight:600;box-shadow:0 6px 18px -8px #f2a07bb3}.tree-leaf.is-active .tree-icon{color:var(--side-active-ink)}.tree-leaf .tree-label{overflow:hidden;text-overflow:ellipsis}.side-foot{display:flex;align-items:center;gap:6px;padding:12px 14px 16px;border-top:1px solid var(--side-line)}.side-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 10px;border:1px solid var(--side-line);border-radius:10px;background:transparent;color:var(--side-ink-2);font-size:12.5px;white-space:nowrap}.side-btn:hover{background:#ffffff12;color:var(--side-ink)}.side-btn.grow{flex:1}.app.is-collapsed .side-name,.app.is-collapsed .side-search span,.app.is-collapsed .side-search kbd,.app.is-collapsed .tree-label,.app.is-collapsed .tree-caret,.app.is-collapsed .tree-count,.app.is-collapsed .side-btn .side-btn-text{display:none}.app.is-collapsed .side-brand{justify-content:center;padding-inline:0}.app.is-collapsed .side-search{justify-content:center;margin-inline:16px;padding:0}.app.is-collapsed .tree-head{justify-content:center;padding:0}.app.is-collapsed .tree-branch{margin-left:0;padding-left:0}.app.is-collapsed .tree-branch:before,.app.is-collapsed .tree-leaf:before{display:none}.app.is-collapsed .tree-leaf{justify-content:center;padding:0}.app.is-collapsed .side-foot{flex-direction:column}.main{min-width:0;padding:26px clamp(18px,3vw,40px) 60px}.head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px 20px;margin-bottom:22px}.crumbs{display:flex;align-items:center;gap:6px;margin-bottom:6px;color:var(--ink-3);font-size:12.5px}.crumbs a{color:var(--ink-3)}.crumbs a:hover{color:var(--accent-strong)}.head h1{font-family:var(--font-display);font-size:clamp(26px,2.6vw,34px);font-weight:600;letter-spacing:-.015em;font-variation-settings:"opsz" 96}.head-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.palette-scrim{position:fixed;inset:0;z-index:50;display:grid;justify-items:center;align-items:start;padding-top:12vh;background:#0a120e6b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .12s ease}.palette{width:min(560px,calc(100vw - 32px));overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-pop);animation:pop-in .14s ease}.palette-input{display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--line);color:var(--ink-3)}.palette-input input{flex:1;height:54px;border:0;background:none;outline:none;color:var(--ink);font-size:16px}.palette-list{max-height:52vh;overflow-y:auto;padding:8px}.palette-group{padding:8px 10px 4px;color:var(--ink-3);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.palette-item{display:flex;align-items:center;gap:12px;width:100%;padding:9px 10px;border:0;border-radius:10px;background:none;color:var(--ink);text-align:left}.palette-item .tree-icon{color:var(--ink-3)}.palette-item.is-on{background:var(--accent-soft)}.palette-item.is-on .tree-icon{color:var(--accent-strong)}.palette-item small{margin-left:auto;color:var(--ink-3);font-size:12px}.palette-empty{padding:22px;color:var(--ink-3);text-align:center}.palette-foot{display:flex;gap:14px;padding:10px 16px;border-top:1px solid var(--line);background:var(--surface-2);color:var(--ink-3);font-size:12px}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(-6px) scale(.985)}}.gate{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr)}.gate-art{position:relative;overflow:hidden;padding:48px;background:radial-gradient(80% 60% at 20% 15%,rgba(242,160,123,.28),transparent 60%),radial-gradient(70% 60% at 85% 90%,rgba(214,160,60,.2),transparent 60%),linear-gradient(160deg,#1d3a2b,#0f1d16);color:#f3ecdc;display:flex;flex-direction:column;justify-content:space-between}.gate-art h1{font-family:var(--font-display);font-size:clamp(40px,5vw,64px);font-weight:500;letter-spacing:-.02em;line-height:1.02;font-variation-settings:"opsz" 144}.gate-art h1 em{color:#f2a07b;font-style:italic}.gate-art p{max-width:420px;color:#f3ecdcb3}.gate-petals{position:absolute;right:-80px;top:50%;width:460px;opacity:.16;transform:translateY(-50%);pointer-events:none}.gate-form{display:grid;align-content:center;gap:16px;padding:48px clamp(28px,6vw,80px);background:var(--surface)}.gate-form h2{font-family:var(--font-display);font-size:28px;font-weight:600}@media(max-width:860px){.app{grid-template-columns:1fr}.side{position:static;height:auto}.tree{max-height:40vh}.gate{grid-template-columns:1fr}.gate-art{min-height:220px}}.palette-input input:focus-visible{box-shadow:none}.tree-branch[hidden]{display:none}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;align-items:start}.grid>*{grid-column:span 12}.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-9{grid-column:span 9}.span-12{grid-column:span 12}@media(max-width:1180px){.span-3{grid-column:span 6}.span-4,.span-5,.span-7,.span-8,.span-9{grid-column:span 12}}@media(max-width:760px){.span-3,.span-6{grid-column:span 12}}.section-title{display:flex;align-items:baseline;gap:12px;margin:30px 0 12px;font-family:var(--font-display);font-size:20px;font-weight:600;letter-spacing:-.01em}.section-title:after{content:"";flex:1;height:1px;background:var(--line);transform:translateY(-4px)}.section-title:first-child{margin-top:4px}.card{min-width:0;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);padding:20px 22px}.card.is-flush{padding:0;overflow:hidden}.card.is-flush>.card-head{padding:18px 22px 0}.card.tone-brand{border-color:transparent;background:linear-gradient(150deg,var(--brand),var(--brand-strong));color:var(--brand-ink)}.card.tone-soft{background:var(--surface-2)}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.card-head h3{font-size:15.5px;font-weight:650;letter-spacing:-.005em}.card-head p{margin-top:3px;color:var(--ink-3);font-size:12.5px}.card-aside{flex:none;display:flex;align-items:center;gap:8px;font-size:13px}.card-h4{margin:18px 0 10px;color:var(--ink-3);font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.card-note{margin-top:12px;color:var(--ink-3);font-size:12.5px}.card-empty{padding:22px 0;color:var(--ink-3);text-align:center}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.kpi{position:relative;display:flex;flex-direction:column;gap:4px;min-width:0;padding:16px 18px 15px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}a.kpi:hover{color:var(--ink);border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-1px)}.kpis{grid-auto-flow:dense}.kpi-tall{grid-row:span 2;justify-content:space-between}.kpi-tall .kpi-value{font-size:64px}.kpi-label{display:flex;align-items:center;gap:7px;color:var(--ink-2);font-size:12.5px;font-weight:500}.kpi-main{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.kpi-value{font-family:var(--font-display);font-size:34px;font-weight:600;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:lining-nums tabular-nums;font-variation-settings:"opsz" 96;white-space:nowrap}.kpi-hint{color:var(--ink-3);font-size:12px;line-height:1.45}.kpi.tone-brand{border-color:transparent;background:radial-gradient(90% 120% at 100% 0%,rgba(242,160,123,.35),transparent 55%),linear-gradient(150deg,#2c654a,#173a2a);color:#fdf8ee}html[data-theme=dark] .kpi.tone-brand{background:radial-gradient(90% 120% at 100% 0%,rgba(242,160,123,.25),transparent 55%),linear-gradient(150deg,#24533d,#102a1e)}a.kpi.tone-brand:hover{color:#fdf8ee}.kpi.tone-brand .kpi-label,.kpi.tone-brand .kpi-hint{color:#fdf8eec7}.kpi.tone-brand .delta{background:#ffffff24;color:#fdf8ee}.kpi-arrow{position:absolute;top:14px;right:14px;color:var(--ink-4);opacity:0;transition:opacity .15s ease}a.kpi:hover .kpi-arrow{opacity:1}.live-dot{position:relative;width:8px;height:8px;border-radius:50%;background:#7ee2a5}.live-dot:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid #7ee2a5;animation:pulse 1.8s ease-out infinite}@keyframes pulse{0%{opacity:.8;transform:scale(.5)}to{opacity:0;transform:scale(1.6)}}.delta{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;font-size:11.5px;font-weight:600}.delta-good{background:var(--brand-soft);color:var(--good)}.delta-bad{background:var(--danger-soft);color:var(--danger)}.delta-flat{background:var(--surface-3);color:var(--ink-3)}.strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));margin-top:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);overflow:hidden}.strip>div{padding:11px 16px;border-right:1px solid var(--line)}.strip>div:last-child{border-right:0}.strip span{display:block;color:var(--ink-3);font-size:11.5px}.strip strong{font-size:16px;font-variant-numeric:tabular-nums}.figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:6px}.figure{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:var(--radius);background:var(--surface-2);color:var(--ink)}a.figure:hover{background:var(--accent-soft);color:var(--ink)}.figure-label{color:var(--ink-3);font-size:12px}.figure-value{font-family:var(--font-display);font-size:22px;font-weight:600;letter-spacing:-.01em;font-variant-numeric:lining-nums tabular-nums}.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px 22px}.field{display:flex;flex-direction:column;gap:2px;min-width:0}.field-label{color:var(--ink-3);font-size:11.5px;font-weight:500;letter-spacing:.02em}.field-value{overflow-wrap:anywhere}.lines{display:grid;margin:0;padding:0;list-style:none}.lines li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:2px 12px;padding:9px 0;border-bottom:1px dashed var(--line)}.lines li:last-child{border-bottom:0}.lines li strong{font-variant-numeric:tabular-nums}.lines li .sub{grid-column:1 / -1}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:999px;background:var(--surface-3);color:var(--ink-2);font-size:11.5px;font-weight:600;white-space:nowrap;vertical-align:middle}.badge-green{background:var(--brand-soft);color:var(--brand-strong)}.badge-peach{background:var(--accent-soft);color:var(--accent-strong)}.badge-gold{background:var(--gold-soft);color:#8a6414}.badge-rose{background:var(--rose-soft);color:var(--rose)}.badge-sky{background:var(--sky-soft);color:var(--sky)}.badge-red{background:var(--danger-soft);color:var(--danger)}.badge-gray{background:var(--surface-3);color:var(--ink-3)}html[data-theme=dark] .badge-gold{color:var(--gold)}html[data-theme=dark] .badge-green{color:var(--brand)}.badge-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.code{display:inline-block;padding:1px 7px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--ink);font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;white-space:nowrap}a .code:hover,a.code:hover{border-color:var(--accent);color:var(--accent-strong)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 15px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--ink);font-size:13px;font-weight:600;white-space:nowrap;transition:background .12s ease,border-color .12s ease,transform .06s ease}.btn:hover:not(:disabled){border-color:var(--ink-3)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{border-color:transparent;background:var(--brand);color:var(--brand-ink)}.btn-primary:hover:not(:disabled){border-color:transparent;background:var(--brand-strong)}.btn-accent{border-color:transparent;background:var(--accent);color:#1b2a21}.btn-accent:hover:not(:disabled){border-color:transparent;background:var(--accent-strong)}.btn-danger{border-color:transparent;background:var(--danger-soft);color:var(--danger)}.btn-danger:hover:not(:disabled){border-color:var(--danger)}.btn-ghost{border-color:transparent;background:transparent;color:var(--ink-2)}.btn-ghost:hover:not(:disabled){border-color:transparent;background:var(--surface-3);color:var(--ink)}.btn-sm{height:30px;padding:0 11px;font-size:12.5px}.btn-icon{width:36px;padding:0}.btn-sm.btn-icon{width:30px}.input,.select,.textarea{width:100%;min-width:0;height:38px;padding:0 12px;border:1px solid var(--line-strong);border-radius:11px;background:var(--surface);color:var(--ink);transition:border-color .12s ease,box-shadow .12s ease}.textarea{height:auto;min-height:96px;padding:10px 12px;line-height:1.5;resize:vertical}.select{appearance:none;width:auto;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23848a7f' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.input::placeholder,.textarea::placeholder{color:var(--ink-4)}.input-sm{height:32px;font-size:13px}.search{position:relative;display:flex;align-items:center;flex:1 1 260px;max-width:420px}.search svg{position:absolute;left:12px;color:var(--ink-3);pointer-events:none}.search .input{padding-left:36px}.form{display:grid;gap:16px}.form-row{display:grid;gap:6px}.form-row>span:first-child{color:var(--ink-2);font-size:12.5px;font-weight:600}.form-row .sub{margin-top:-2px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.check{display:inline-flex;align-items:flex-start;gap:10px;cursor:pointer;line-height:1.4}.check input{position:absolute;opacity:0;pointer-events:none}.check-box{flex:none;display:grid;place-items:center;width:20px;height:20px;margin-top:1px;border:1.5px solid var(--line-strong);border-radius:6px;background:var(--surface);color:transparent;transition:all .12s ease}.check input:checked+.check-box{border-color:var(--brand);background:var(--brand);color:var(--brand-ink)}.check input:focus-visible+.check-box{box-shadow:var(--ring)}.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer}.switch input{position:absolute;opacity:0;pointer-events:none}.switch-track{position:relative;flex:none;width:38px;height:22px;border-radius:999px;background:var(--line-strong);transition:background .15s ease}.switch-track:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .15s ease}.switch input:checked+.switch-track{background:var(--brand)}.switch input:checked+.switch-track:after{transform:translate(16px)}.switch input:focus-visible+.switch-track{box-shadow:var(--ring)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px}.toolbar .spacer{flex:1}.seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border:1px solid var(--line);border-radius:999px;background:var(--surface-3)}.seg button{height:30px;padding:0 13px;border:0;border-radius:999px;background:none;color:var(--ink-2);font-size:12.5px;font-weight:600;white-space:nowrap}.seg button:hover{color:var(--ink)}.seg button.is-on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #1b2a2124}.tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:18px;border-bottom:1px solid var(--line)}.tabs button,.tabs a{position:relative;display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 14px;border:0;background:none;color:var(--ink-3);font-size:13.5px;font-weight:600}.tabs button:hover,.tabs a:hover,.tabs .is-on{color:var(--ink)}.tabs .is-on:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--accent)}.count-line{margin:0 0 10px;color:var(--ink-3);font-size:12.5px}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.card .table-wrap{border-radius:var(--radius)}.card.is-flush .table-wrap{border:0;border-top:1px solid var(--line);border-radius:0}table{width:100%;border-collapse:collapse}th,td{padding:11px 14px;text-align:left;vertical-align:top}th{position:sticky;top:0;z-index:1;background:var(--surface-2);border-bottom:1px solid var(--line);color:var(--ink-3);font-size:11.5px;font-weight:600;letter-spacing:.03em;white-space:nowrap}td{border-bottom:1px solid var(--line)}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:color-mix(in srgb,var(--accent-soft) 35%,transparent)}th.col-wide{min-width:230px}th.col-mid{min-width:170px}th.num,td.num{text-align:right;font-variant-numeric:tabular-nums}td.empty{padding:34px 14px;color:var(--ink-3);text-align:center}.name{font-weight:600}a.name,.name a{color:var(--ink)}a.name:hover,.name a:hover{color:var(--accent-strong)}.who{display:inline-flex;align-items:center;gap:10px;min-width:0;color:var(--ink)}.who:hover{color:var(--ink)}.who:hover .who-name{color:var(--accent-strong)}.avatar{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--av, var(--brand-soft));color:#1b2a21;font-size:12px;font-weight:700}.who-text{display:grid;min-width:0}.who-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}.pager-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.pager-page{min-width:34px;height:34px;padding:0 8px;border:1px solid transparent;border-radius:10px;background:none;color:var(--ink-2);font-weight:600;font-variant-numeric:tabular-nums}.pager-page:hover:not(:disabled){background:var(--surface-3)}.pager-page.current{border-color:var(--line-strong);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.pager-gap{padding:0 4px;color:var(--ink-4)}.notice{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);color:var(--ink-2);font-size:13px}.notice svg{flex:none;margin-top:2px}.notice-error{border-color:transparent;background:var(--danger-soft);color:var(--danger)}.notice-warn{border-color:transparent;background:var(--gold-soft);color:#7a5710}html[data-theme=dark] .notice-warn{color:var(--gold)}.notice-ok{border-color:transparent;background:var(--brand-soft);color:var(--brand-strong)}html[data-theme=dark] .notice-ok{color:var(--brand)}.skeleton{display:grid;gap:14px}.skeleton-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.skeleton-block{height:110px;border-radius:var(--radius-lg);background:linear-gradient(90deg,var(--surface-3) 0%,var(--surface-2) 40%,var(--surface-3) 80%);background-size:300% 100%;animation:shimmer 1.4s ease-in-out infinite}.skeleton-block.tall{height:280px}.skeleton-label{color:var(--ink-3);font-size:12.5px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.is-stale{opacity:.6;transition:opacity .2s ease}.fold{margin-top:14px;border-top:1px dashed var(--line);padding-top:10px}.fold>summary{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);font-size:12.5px;font-weight:600;cursor:pointer;list-style:none}.fold>summary::-webkit-details-marker{display:none}.fold>summary:before{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s ease}.fold[open]>summary:before{transform:rotate(45deg)}.fold>summary:hover{color:var(--accent-strong)}.fold>:not(summary){margin-top:12px}.quotes{display:grid;gap:10px;margin:0;padding:0;list-style:none}.quote{position:relative;padding:12px 14px 12px 18px;border-radius:var(--radius);background:var(--surface-2)}.quote:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:3px;background:var(--q, var(--accent))}.quote p{font-family:var(--font-display);font-size:15px;line-height:1.5;font-variation-settings:"opsz" 24;white-space:pre-wrap;overflow-wrap:anywhere}.quote .sub{margin-top:6px}.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.thumb{position:relative;overflow:hidden;aspect-ratio:4 / 3;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-3)}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb .btn{position:absolute;top:6px;right:6px}.upload{display:grid;place-items:center;gap:4px;aspect-ratio:4 / 3;border:1.5px dashed var(--line-strong);border-radius:var(--radius);color:var(--ink-3);font-size:12.5px;cursor:pointer;text-align:center}.upload:hover{border-color:var(--accent);color:var(--accent-strong)}.upload input{display:none}.picklist{display:grid;gap:8px}.pick{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);text-align:left}.pick:hover{border-color:var(--line-strong)}.pick.is-on{border-color:var(--accent);background:var(--accent-soft)}.viz{position:relative}.viz-c1{background:var(--c1)}.viz-c2{background:var(--c2)}.viz-c3{background:var(--c3)}.viz-muted{background:var(--viz-muted)}.viz-wash{background:var(--viz-wash)}.viz-good{background:var(--good)}.viz-warn{background:var(--warn)}.viz-serious{background:var(--serious)}.viz-critical{background:var(--critical)}.viz-pos{background:var(--pos)}.viz-neutral{background:var(--neutral)}.viz-neg{background:var(--neg)}.viz-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-bottom:12px;color:var(--ink-2);font-size:12px}.viz-legend span{display:inline-flex;align-items:center;gap:7px}.viz-key{display:inline-block;flex:none}.viz-key-rect{width:10px;height:10px;border-radius:3.5px}.viz-key-line{width:14px;height:3px;border-radius:2px}.viz-key-none{display:inline-block;flex:none;width:14px}.viz-plot{display:flex;gap:8px}.viz-y{position:relative;flex:none;width:44px;color:var(--ink-3);font-size:10.5px;font-variant-numeric:tabular-nums}.viz-y span{position:absolute;right:0;line-height:1;white-space:nowrap;transform:translateY(50%)}.viz-area{position:relative;flex:1;min-width:0}.viz-grid{position:absolute;left:0;right:0;border-top:1px dashed var(--grid)}.viz-base{border-top:1px solid var(--line-strong)}.viz-cols{position:absolute;inset:0;display:flex;align-items:flex-end;gap:3px}.viz-col{display:flex;align-items:flex-end;justify-content:center;flex:1;min-width:0;height:100%;border-radius:8px 8px 0 0;outline:none}.viz-col.is-hover{background:var(--grid)}.viz-col:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.viz-stack{display:flex;flex-direction:column-reverse;gap:2px;width:min(22px,74%)}.viz-seg{flex-basis:0;min-height:2px;border-radius:3px}.viz-stack>.viz-seg:last-child{border-radius:7px 7px 3px 3px}.viz-x{display:flex;gap:3px;margin:8px 0 0 52px;color:var(--ink-3);font-size:10.5px;font-variant-numeric:tabular-nums}.viz-x span{flex:1;min-width:0;text-align:center;white-space:nowrap}.viz-x-num{position:relative;display:block;height:14px}.viz-x-num span{position:absolute;transform:translate(-50%)}.viz-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.viz-band{fill:var(--viz-wash)}.viz-line{fill:none;stroke:var(--c1);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.viz-ref{position:absolute;left:0;right:0;border-top:1.5px dashed var(--accent)}.viz-ref span{position:absolute;right:4px;bottom:4px;padding:1px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:10.5px;font-weight:600}.viz-cross{position:absolute;top:0;bottom:0;border-left:1px solid var(--line-strong);pointer-events:none}.viz-dot{position:absolute;width:11px;height:11px;border-radius:50%;box-shadow:0 0 0 3px var(--surface);transform:translate(-50%,50%);pointer-events:none}.viz-tip{position:absolute;top:4px;z-index:3;min-width:160px;max-width:270px;padding:9px 12px;border-radius:12px;background:#14261d;color:#f1ebdc;box-shadow:var(--shadow-pop);font-size:12px;pointer-events:none}html[data-theme=dark] .viz-tip{background:#ece6d6;color:#14261d}.viz-tip-title{margin-bottom:4px;opacity:.7;font-size:11.5px}.viz-tip-row{display:flex;align-items:center;gap:7px;line-height:1.65;white-space:nowrap}.viz-tip-row strong{font-variant-numeric:tabular-nums}.viz-tip-row span{opacity:.72}.hbars{display:grid;gap:10px}.hbar{display:grid;grid-template-columns:minmax(96px,34%) 1fr auto;align-items:center;gap:12px;font-size:12.5px}.hbar-label{min-width:0;line-height:1.3;overflow-wrap:anywhere}.hbar-label a{color:var(--ink)}.hbar-label a:hover{color:var(--accent-strong)}.hbar-track{height:12px;overflow:hidden;border-radius:999px;background:var(--surface-3)}.hbar-fill{height:100%;min-width:3px;border-radius:999px}.hbar-value{display:flex;flex-direction:column;align-items:flex-end;min-width:58px;line-height:1.25;font-variant-numeric:tabular-nums}.hbar-value .sub{font-size:11px;white-space:nowrap}.split-bar{display:flex;gap:3px;height:14px}.split-seg{flex-basis:0;min-width:4px;border-radius:4px}.split-seg:first-child{border-radius:999px 4px 4px 999px}.split-seg:last-child{border-radius:4px 999px 999px 4px}.split-seg:only-child{border-radius:999px}.split-empty{flex:1;border-radius:999px;background:var(--surface-3)}.split-legend{display:grid;gap:4px;margin-top:12px}.split-row{display:grid;grid-template-columns:1fr auto 44px;align-items:center;gap:10px;font-size:12.5px}.split-row strong,.split-row .sub{text-align:right;font-variant-numeric:tabular-nums}.split-label,.split-label a{display:inline-flex;align-items:center;gap:8px;min-width:0;color:var(--ink)}.split-label a:hover{color:var(--accent-strong)}.split-icon{width:12px;color:var(--ink-3);font-size:11px;text-align:center}.spark{position:relative;flex:none;width:90px;height:34px;margin-bottom:6px}.spark svg{display:block;width:100%;height:100%;overflow:visible}.spark polyline{fill:none;stroke:var(--viz-muted);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.spark polygon{fill:var(--viz-wash)}.spark-dot{position:absolute;right:-4px;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--surface)}.kpi.tone-brand .spark polyline{stroke:#fdf8ee80}.kpi.tone-brand .spark polygon{fill:#fdf8ee1a}.kpi.tone-brand .spark-dot{box-shadow:0 0 0 2px #24573f}.ring{display:grid;justify-items:center}.ring svg{display:block;width:100%;max-width:260px;height:auto}.ring-bar{fill:var(--c1);opacity:.85;transition:opacity .1s ease}.ring-bar.is-peak{fill:var(--accent);opacity:1}.ring-bar.is-hover{opacity:1;fill:var(--accent-strong)}.ring-track{fill:none;stroke:var(--surface-3)}.ring-tick{fill:var(--ink-3);font-size:9px;font-family:var(--font-body);text-anchor:middle;dominant-baseline:middle}.ring-center-value{fill:var(--ink);font-family:var(--font-display);font-size:26px;font-weight:600;text-anchor:middle}.ring-center-label{fill:var(--ink-3);font-size:10px;text-anchor:middle}.donut{display:flex;flex-wrap:wrap;align-items:center;gap:18px}.donut svg{flex:none;width:140px;height:140px}.donut-seg{fill:none;stroke-width:16;transition:stroke-width .12s ease}.donut-seg:hover{stroke-width:20}.donut .split-legend{flex:1;min-width:180px;margin-top:0}.donut-value{fill:var(--ink);font-family:var(--font-display);font-size:24px;font-weight:600;text-anchor:middle}.donut-label{fill:var(--ink-3);font-size:10px;text-anchor:middle}.cohort td,.cohort th{padding:7px 12px}.cohort td.heat,.cohort tbody tr:hover td.heat{background:color-mix(in srgb,var(--c1) var(--heat, 0%),transparent)}.cohort-avg td{border-bottom:2px solid var(--line-strong);font-weight:650}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:26px}@media(max-width:760px){.two-col{grid-template-columns:1fr}.spark{width:54px}}.card{container-type:inline-size}@container (max-width: 460px){.hbar{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}.hbar-track{grid-column:1 / -1;grid-row:2;height:8px}.hbar-value{flex-direction:row;align-items:baseline;gap:6px}}
