@font-face{font-family:Inter;font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/inter-latin.woff2) format("woff2");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:Inter;font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/inter-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,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}:root{--bg:#F6F6F4;--surface:#FFFFFF;--surface-2:#FAFAF9;--line:#E4E4E0;--line-bright:#D6D6D1;--fg:#1C1F23;--muted:#565E68;--input-bg:#FFFFFF;--accent:#CFA161;--accent-dim:#B8894C;--accent-text:#7A5A1E;--accent-soft:#FFF1D6;--btn-bg:#1A1D21;--btn-fg:#FFFFFF;--btn-line:#1A1D21;--warn:#8A5A00;--bad:#B42318;--ok:#1F6B45;--info:#2B5A9E;--ok-soft:#E6F4EC;--warn-soft:#FFF1D6;--bad-soft:#FDECEA;--info-soft:#EAF1FB;--side-bg:#1A1D21;--side-fg:#F3F4F6;--side-muted:#A3ABB6;--side-hover:#2A3038;--side-line:#2A3038;--chart-grid:#ECECE8;--chart-text:#565E68;--chart-label:#1C1F23;--chart-track:#F1F1EE;--chart-ring:#FFFFFF;--shadow:0 8px 30px rgba(20,22,26,.12);--radius:12px}@media(prefers-color-scheme:dark){:root{--bg:#1A1D21;--surface:#22262C;--surface-2:#1E2227;--line:#2F343B;--line-bright:#3E444D;--fg:#F3F4F6;--muted:#A3ABB6;--input-bg:#1A1D21;--accent-text:#D4B87A;--accent-soft:#2A2418;--btn-bg:#CFA161;--btn-fg:#1A1D21;--btn-line:#CFA161;--warn:#FBBF24;--bad:#F87171;--ok:#4ADE80;--info:#60A5FA;--ok-soft:#163024;--warn-soft:#2A2418;--bad-soft:#331C1C;--info-soft:#18263A;--side-bg:#16191C;--side-line:#2A3038;--chart-grid:#2A3038;--chart-text:#A3ABB6;--chart-label:#E6E9F2;--chart-track:#1A1D21;--chart-ring:#22262C;--shadow:0 8px 30px rgba(0,0,0,.45)}}*{box-sizing:border-box}html{color-scheme:light dark}body{margin:0;background:var(--bg);color:var(--fg);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;font-size:14px}a{color:var(--accent-text)}h1{letter-spacing:-.02em;font-size:26px;margin:0 0 6px;font-weight:700}h2{font-size:16px;margin:0 0 10px;letter-spacing:-.01em;font-weight:600}h3{font-size:14px;margin:14px 0 6px;color:var(--fg)}p{margin:0 0 10px}label{display:block;font-size:12.5px;color:var(--muted);margin:12px 0 4px}input,textarea,select{width:100%;background:var(--input-bg);border:1px solid var(--line-bright);color:var(--fg);padding:9px 11px;border-radius:8px;font:inherit}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent-dim)}input[type=color]{width:44px;height:38px;padding:3px;cursor:pointer}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--accent-dim)}textarea{min-height:90px;resize:vertical}button{font:inherit;font-weight:600;padding:9px 14px;border-radius:9px;cursor:pointer;border:1px solid var(--btn-line);background:var(--btn-bg);color:var(--btn-fg)}button:hover{filter:brightness(1.08)}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}button.gold{background:var(--accent);border-color:var(--accent);color:#1a1d21}button.ghost{background:transparent;color:var(--fg);border-color:var(--line-bright)}button.ghost:hover{background:var(--surface-2);filter:none}button.danger{background:transparent;color:var(--bad);border-color:var(--bad)}button.sm{padding:5px 10px;font-size:12.5px}button.link{background:none;border:0;color:var(--accent-text);padding:0;font-weight:500;text-decoration:underline}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-top:16px}.card h2{margin-top:0}.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px}.muted{color:var(--muted)}.small{font-size:12.5px}.snippet{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:12px;word-break:break-all;white-space:pre-wrap;overflow-x:auto}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.row.between{justify-content:space-between}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 18px}.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 18px}.badge{display:inline-block;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;border:1px solid transparent;color:var(--muted);background:var(--surface-2);letter-spacing:.01em}.badge.ok{color:var(--ok);background:var(--ok-soft)}.badge.warn{color:var(--warn);background:var(--warn-soft)}.badge.bad{color:var(--bad);background:var(--bad-soft)}.badge.info{color:var(--info);background:var(--info-soft)}.help-link{font-size:12.5px;color:var(--accent-text);text-decoration:none;border:1px solid var(--line-bright);border-radius:999px;padding:3px 10px;white-space:nowrap}.help-link:hover{background:var(--surface-2)}table.tbl{width:100%;border-collapse:collapse;font-size:13px}table.tbl th,table.tbl td{text-align:left;padding:8px;border-bottom:1px solid var(--line);vertical-align:top}table.tbl th{color:var(--muted);font-weight:600;font-size:12px}table.tbl tr:hover td{background:var(--surface-2)}.hint{font-size:12px;color:var(--muted);margin:4px 0 0}.notice{border:1px solid var(--line);background:var(--accent-soft);padding:12px 14px;border-radius:10px;margin:12px 0;font-size:13px}.notice.warn{background:var(--warn-soft)}.notice.bad{background:var(--bad-soft);border-color:var(--bad)}.toggle{display:flex;align-items:center;gap:10px;margin:10px 0;cursor:pointer;color:var(--fg);font-size:13.5px}.toggle input{width:auto;margin:0}.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:0 0 14px}.tabs button{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:8px 10px;border-radius:0;font-weight:600}.tabs button.active{color:var(--fg);border-bottom-color:var(--accent)}.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.kpi .tile{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:12px 14px}.kpi .tile .v{font-size:24px;font-weight:700;letter-spacing:-.02em}.kpi .tile .l{font-size:12px;color:var(--muted)}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.side{background:var(--side-bg);color:var(--side-fg);padding:20px 12px;display:flex;flex-direction:column;gap:14px}.brand{display:flex;align-items:baseline;gap:8px;padding:2px 10px 4px}.brand b{font-size:19px;letter-spacing:-.02em;color:var(--side-fg)}.brand b i{font-style:normal;color:var(--accent)}.brand span{font-family:ui-monospace,Menlo,monospace;font-size:10.5px;letter-spacing:.18em;color:var(--side-muted)}.nav{display:flex;flex-direction:column;gap:2px}.nav a,.nav button.navbtn{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;color:var(--side-muted);padding:8px 10px;border-radius:8px;text-decoration:none;font-weight:500;font-size:13.5px}.nav a svg,.nav button.navbtn svg{flex-shrink:0}.nav a:hover,.nav button.navbtn:hover{background:var(--side-hover);color:var(--side-fg);filter:none}.nav a.active{background:var(--accent);color:#1a1d21;font-weight:600}.nav a.sub{padding-left:38px;font-size:13px}.nav a.sub.active{background:var(--side-hover);color:var(--side-fg);box-shadow:inset 2px 0 0 var(--accent)}.nav .sec{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--side-muted);margin:14px 10px 4px}.side-foot{margin-top:auto;border-top:1px solid var(--side-line);padding:12px 4px 0;display:flex;flex-direction:column;gap:8px}.side-foot select{background:transparent;color:var(--side-fg);border-color:var(--side-line)}.side-foot .org{font-size:13px;font-weight:600;color:var(--side-fg);padding:0 6px}.side-foot .who{font-size:12px;color:var(--side-muted);padding:0 6px;overflow-wrap:anywhere}.side button.navbtn{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;color:var(--side-muted);padding:8px 10px;border-radius:8px;font-weight:500;font-size:13.5px}.side button.navbtn:hover{background:var(--side-hover);color:var(--side-fg);filter:none}.side .nav button.navbtn.more{display:none}.main{padding:30px 40px 80px;max-width:1200px;width:100%}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.savebar{position:fixed;left:240px;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line);padding:10px 28px;display:flex;gap:10px;align-items:center;justify-content:flex-end;z-index:20;box-shadow:var(--shadow)}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,44%);gap:18px;align-items:start}.preview-wrap{position:sticky;top:16px}.preview-wrap iframe{width:100%;height:620px;border:1px solid var(--line);border-radius:10px;background:#fff}.preview-tools{display:flex;gap:8px;margin-bottom:8px;align-items:center;flex-wrap:wrap}.toast{position:fixed;right:18px;bottom:70px;background:var(--surface);border:1px solid var(--line-bright);color:var(--fg);padding:10px 14px;border-radius:10px;box-shadow:var(--shadow);z-index:50;font-size:13px}.toast.bad{border-color:var(--bad)}.modal-bg{position:fixed;inset:0;background:#0a0c0f8c;z-index:40;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:var(--surface);border:1px solid var(--line-bright);border-radius:14px;padding:22px;width:min(640px,100%);max-height:90vh;overflow:auto;box-shadow:var(--shadow)}.chart{width:100%;height:auto;display:block}.chart-tip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--line-bright);border-radius:8px;padding:6px 9px;font-size:12px;white-space:nowrap;z-index:5}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:6px 0}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}.sortable{list-style:none;padding:0;margin:0}.sortable li{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.home{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:24px;align-items:start}.home .sec-title{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column}.list>.item{display:flex;align-items:center;gap:14px;padding:15px 18px;border-bottom:1px solid var(--line);color:var(--fg);text-decoration:none}.list>.item:last-child{border-bottom:0}a.item:hover{background:var(--surface-2)}.item .dot{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--surface-2)}.item .dot.warn{background:var(--warn-soft);color:var(--warn)}.item .dot.info{background:var(--info-soft);color:var(--info)}.item .dot.bad{background:var(--bad-soft);color:var(--bad)}.item .dot.ok{background:var(--ok-soft);color:var(--ok)}.item .grow{flex-grow:1;min-width:0}.item .title{font-weight:600}.item .sub{color:var(--muted);margin-top:2px}.wrap{max-width:720px;margin:0 auto;padding:48px 20px}.center{text-align:center}@media(max-width:900px){.app{grid-template-columns:1fr}.side{position:fixed;left:0;right:0;bottom:0;z-index:30;flex-direction:row;padding:6px 6px calc(6px + env(safe-area-inset-bottom));gap:0;border-top:1px solid var(--side-line)}.side .brand,.side .nav .sec,.side .side-foot,.side .nav .secondary,.side .nav a.sub,.side .nav button.navbtn:not(.more){display:none}.side .nav{flex-direction:row;width:100%;gap:2px}.side .nav>a.primary,.side .nav>button.navbtn.more{flex:1;flex-direction:column;gap:3px;padding:6px 2px;font-size:11px;text-align:center;justify-content:center;display:flex;align-items:center;min-height:48px}.side .nav a.primary.active{background:var(--side-hover);color:var(--accent)}.side.open{top:0;flex-direction:column;overflow:auto;padding:18px 14px calc(18px + env(safe-area-inset-bottom));gap:14px}.side.open .brand,.side.open .nav .sec,.side.open .side-foot,.side.open .nav .secondary,.side.open .nav a.sub,.side.open .nav button.navbtn{display:flex}.side.open .nav .sec{display:block}.side.open .nav{flex-direction:column}.side.open .nav>a.primary,.side.open .nav>button.navbtn.more{flex:none;flex-direction:row;font-size:13.5px;justify-content:flex-start;text-align:left;padding:8px 10px;gap:10px;min-height:0}.savebar{left:0;bottom:66px}.split,.home{grid-template-columns:1fr}.preview-wrap{position:static}.main{padding:18px 16px 100px}}
