@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--radius:16px;--radius-md:12px;--radius-sm:9px;--radius-xs:6px;--sidebar-w:248px;--ease:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--z-topbar:30;--z-scrim:35;--z-sidebar:40;--z-modal:60;--z-tooltip:70;font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;scroll-behavior:smooth;font-family:Geist Variable,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5}:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f4f1;--surface:#fcfcfb;--surface-2:#f3f3f0;--surface-3:#ebebe7;--border:#e4e3de;--border-strong:#d3d2cc;--text:#121211;--text-soft:#52514e;--text-faint:#8a8984;--brand:#2a78d6;--brand-ink:#1c5cab;--brand-soft:#e6f0fc;--series-1:#2a78d6;--series-1-fill:#2a78d624;--series-2:#eb6834;--grid:#e9e8e3;--green:#0c7a0c;--green-soft:#e5f3e3;--red:#c23434;--red-soft:#fbe9e7;--amber:#a66a00;--amber-soft:#fbf0d9;--blue:#1c5cab;--blue-soft:#e6f0fc;--shadow:0 1px 2px #28261e0d, 0 2px 6px #28261e0a;--shadow-hover:0 2px 4px #28261e0f, 0 10px 24px #28261e14;--shadow-lg:0 18px 48px #28261e2e}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111110;--surface:#1a1a19;--surface-2:#222220;--surface-3:#2a2a28;--border:#2e2e2b;--border-strong:#3d3d39;--text:#f4f4f1;--text-soft:#c3c2b7;--text-faint:#8d8c84;--brand:#3987e5;--brand-ink:#86b6ef;--brand-soft:#1b2a3d;--series-1:#3987e5;--series-1-fill:#3987e538;--series-2:#d95926;--grid:#2a2a27;--green:#4cc24c;--green-soft:#17291a;--red:#e66767;--red-soft:#351b1b;--amber:#e9a320;--amber-soft:#33270f;--blue:#86b6ef;--blue-soft:#1b2a3d;--shadow:0 1px 2px #0006;--shadow-hover:0 2px 4px #0006, 0 12px 28px #00000059;--shadow-lg:0 18px 48px #0000008c}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-size:14px;transition:background .25s,color .25s}body:before{content:"";pointer-events:none;z-index:0;opacity:.035;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:fixed;inset:0}a{color:var(--brand);text-decoration:none}h1,h2,h3{letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:650}button{font-family:inherit}::selection{background:var(--brand-soft)}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.num,.stat .value,table.data td{font-variant-numeric:tabular-nums}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;transition:background .2s var(--ease), border-color .2s var(--ease), transform .12s var(--ease), box-shadow .2s var(--ease), color .2s var(--ease);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:13.5px;font-weight:560;display:inline-flex}.btn:hover{background:var(--surface-2);border-color:var(--border-strong)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 1px 2px #1c5cab40}.btn-primary:hover{background:var(--brand-ink);border-color:var(--brand-ink)}[data-theme=dark] .btn-primary:hover{background:#2a78d6;border-color:#2a78d6}.btn-danger{background:var(--red);border-color:var(--red);color:#fff}.btn-danger:hover{filter:brightness(.94);background:var(--red)}.btn-ghost{color:var(--text-soft);background:0 0;border-color:#0000}.btn-ghost:hover{color:var(--text);background:var(--surface-2);border-color:var(--border)}.btn-sm{padding:5px 10px;font-size:12.5px}.btn svg{flex-shrink:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);position:relative}.panel{padding:18px 20px 16px}.panel-head{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:14px;display:flex}.panel-head h3{font-size:15px}.panel-head .sub{color:var(--text-faint);font-size:12.5px}.panel-head .spacer{flex:1}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{color:var(--text-soft);font-size:12.5px;font-weight:560}.input,.select,:where(input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea):not(.input,.select){border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);transition:border-color .2s var(--ease), box-shadow .2s var(--ease);outline:none;padding:9px 12px;font-family:inherit;font-size:14px}.input:hover,.select:hover,:where(input:not([type=checkbox],[type=radio]),select,textarea):hover{border-color:var(--border-strong)}.input:focus,.select:focus,:where(input:not([type=checkbox],[type=radio]),select,textarea):focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.seg{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--text-soft);border-radius:var(--radius-xs);cursor:pointer;transition:background .2s var(--ease), color .2s var(--ease);background:0 0;border:0;padding:5px 11px;font-size:12.5px;font-weight:560}.seg button:hover{color:var(--text)}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.table-wrap{border-radius:var(--radius);overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:13.5px}table.data th{text-align:left;color:var(--text-faint);border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap;padding:11px 16px;font-size:12px;font-weight:560}table.data td{border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle;padding:12px 16px}table.data tr:last-child td{border-bottom:none}table.data tbody tr{transition:background .15s}table.data tbody tr:hover{background:var(--surface-2)}.mono{font-family:Geist Mono Variable,ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12.5px}.muted{color:var(--text-soft)}.badge{border-radius:var(--radius-xs);text-transform:capitalize;white-space:nowrap;align-items:center;gap:6px;padding:2px 9px;font-size:12px;font-weight:560;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.badge-green{color:var(--green);background:var(--green-soft)}.badge-red{color:var(--red);background:var(--red-soft)}.badge-red .dot{animation:1.8s ease-in-out infinite pulse}.badge-amber{color:var(--amber);background:var(--amber-soft)}.badge-blue{color:var(--blue);background:var(--blue-soft)}.badge-gray{color:var(--text-soft);background:var(--surface-3)}.shell{z-index:1;min-height:100dvh;display:flex;position:relative}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);z-index:var(--z-sidebar);transition:transform .3s var(--ease);flex-direction:column;flex-shrink:0;display:flex;position:fixed;inset:0 auto 0 0}.sidebar .brand{letter-spacing:-.02em;align-items:center;gap:10px;padding:20px 20px 18px;font-size:16px;font-weight:680;display:flex}.brand .logo{background:linear-gradient(145deg, var(--brand), var(--brand-ink));color:#fff;border-radius:10px;place-items:center;width:32px;height:32px;font-size:15px;font-weight:750;display:grid;box-shadow:0 4px 12px #2a78d659,inset 0 1px #ffffff40}.brand small{color:var(--text-faint);letter-spacing:0;font-size:11px;font-weight:500;display:block}.nav{flex-direction:column;gap:2px;padding:6px 12px;display:flex;overflow-y:auto}.nav a{border-radius:var(--radius-sm);color:var(--text-soft);transition:background .2s var(--ease), color .2s var(--ease);align-items:center;gap:11px;padding:9px 12px;font-size:13.5px;font-weight:540;display:flex;position:relative}.nav a:hover{background:var(--surface-2);color:var(--text)}.nav a.active{background:var(--brand-soft);color:var(--brand-ink);font-weight:620}[data-theme=dark] .nav a.active{color:#cde2fb}.nav a.active:before{content:"";background:var(--brand);width:3px;animation:grow-y .35s var(--ease-spring);border-radius:0 3px 3px 0;position:absolute;top:8px;bottom:8px;left:-12px}.nav a .ico{place-items:center;width:18px;height:18px;display:grid}.sidebar-foot{border-top:1px solid var(--border);margin-top:auto;padding:16px}.who{align-items:center;gap:10px;margin-bottom:12px;display:flex}.avatar{background:var(--surface-3);width:34px;height:34px;color:var(--text-soft);border-radius:10px;place-items:center;font-size:13px;font-weight:650;display:grid}.who .name{font-size:13px;font-weight:620}.who .role{color:var(--text-faint);text-transform:capitalize;font-size:11.5px}.main{margin-left:var(--sidebar-w);flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:var(--z-topbar);background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(12px)saturate(1.2);backdrop-filter:blur(12px)saturate(1.2);border-bottom:1px solid color-mix(in srgb, var(--border) 70%, transparent);align-items:center;gap:14px;padding:14px 28px;display:flex;position:sticky;top:0}.topbar h1{font-size:17px}.topbar .crumb{color:var(--text-faint);font-size:13px}.topbar .spacer{flex:1}.icon-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-soft);border-radius:var(--radius-sm);cursor:pointer;width:36px;height:36px;transition:background .2s var(--ease), color .2s var(--ease), transform .12s var(--ease);place-items:center;display:grid}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn:active{transform:scale(.94)}.hamburger{display:none}.content{width:100%;max-width:1320px;padding:26px 28px 48px}.page{animation:page-in .45s var(--ease) backwards}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-bottom:16px;display:grid}.grid-2{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px;margin-bottom:16px;display:grid}.grid-2.even{grid-template-columns:repeat(2,minmax(0,1fr))}.section{margin-top:24px}.section-head{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:18px;display:flex}.section-head h2{letter-spacing:-.03em;font-size:22px}.section-head .lede{color:var(--text-soft);max-width:65ch;margin-top:3px;font-size:13.5px}.section-head .spacer{flex:1}.row-actions>input{width:220px}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.h-sec{margin:22px 0 10px;font-size:15px}.stat{flex-direction:column;gap:6px;padding:16px 18px 14px;display:flex;overflow:hidden}.stat .top{justify-content:space-between;align-items:center;gap:8px;display:flex}.stat .label{color:var(--text-soft);font-size:12.5px;font-weight:540}.stat .emoji{background:var(--surface-2);width:32px;height:32px;color:var(--text-soft);border-radius:9px;place-items:center;font-size:15px;display:grid}.stat.tone-bad .emoji{background:var(--red-soft);color:var(--red)}.stat.tone-good .emoji{background:var(--green-soft);color:var(--green)}.stat.tone-warn .emoji{background:var(--amber-soft);color:var(--amber)}.stat .value{letter-spacing:-.035em;font-size:30px;font-weight:650;line-height:1.1}.stat .hint{color:var(--text-faint);font-size:12px}.stat .spark{width:calc(100% + 36px);height:38px;margin:4px -18px -14px}.stat .spark svg{width:100%}.stat-clickable{cursor:pointer;transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease)}.stat-clickable:hover{box-shadow:var(--shadow-hover);border-color:var(--border-strong);transform:translateY(-2px)}.stat-clickable:active{transform:translateY(0)scale(.99)}.chart{width:100%;position:relative}.chart svg{width:100%;display:block;overflow:visible}.chart .grid-line{stroke:var(--grid);stroke-width:1px}.chart .axis-label{fill:var(--text-faint);font-variant-numeric:tabular-nums;font-size:11px}.chart .line{fill:none;stroke:var(--series-1);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart .line.draw{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:draw 1.1s var(--ease) .1s forwards}.chart .area{opacity:0;animation:fade .8s var(--ease) .45s forwards}.chart .crosshair{stroke:var(--border-strong);stroke-width:1px;stroke-dasharray:3 3}.chart .dot{fill:var(--series-1);stroke:var(--surface);stroke-width:2px}.chart .col{fill:var(--series-1);transform-box:fill-box;transform-origin:bottom;animation:grow-y .7s var(--ease) both;transition:opacity .15s}.chart .col.dim{opacity:.35}.tooltip{z-index:var(--z-tooltip);pointer-events:none;background:var(--text);color:var(--bg);border-radius:var(--radius-xs);white-space:nowrap;box-shadow:var(--shadow-lg);animation:tip-in .14s var(--ease);padding:7px 10px;font-size:12px;line-height:1.35;position:absolute;transform:translate(-50%,calc(-100% - 10px))}.tooltip b{font-variant-numeric:tabular-nums;font-size:13px;font-weight:650}.tooltip .t-sub{opacity:.7}.bars{flex-direction:column;gap:4px;display:flex}.bar-row{border-radius:var(--radius-xs);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 12px;margin:0 -8px;padding:7px 8px;transition:background .15s;display:grid}.bar-row.clickable{cursor:pointer}.bar-row:hover{background:var(--surface-2)}.bar-row .b-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13.5px;font-weight:540;overflow:hidden}.bar-row .b-sub{color:var(--text-faint);margin-left:6px;font-size:12px;font-weight:450}.bar-row .b-value{font-variant-numeric:tabular-nums;text-align:right;font-size:13px;font-weight:600}.bar-row .b-value small{color:var(--text-faint);margin-left:6px;font-weight:450}.bar-track{background:var(--surface-3);border-radius:4px;grid-column:1/-1;height:6px;overflow:hidden}.bar-fill{background:var(--series-1);transform-origin:0;height:100%;animation:grow-x .8s var(--ease) both;border-radius:4px}.meter{background:var(--surface);border-radius:4px;gap:2px;height:8px;display:flex;overflow:hidden}.meter span{transform-origin:0;animation:grow-x .8s var(--ease) both;border-radius:4px;display:block}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border-radius:var(--radius-xs);background:var(--surface-2);border:1px solid var(--border);color:var(--text-soft);align-items:center;gap:6px;padding:4px 10px;font-size:12.5px;display:inline-flex}.chip b{color:var(--text);font-weight:560}.folds{gap:6px;display:grid}.fold{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);transition:background .2s var(--ease)}.fold[open]{background:var(--surface-2)}.fold summary{cursor:pointer;align-items:center;gap:10px;padding:10px 14px;font-size:13.5px;font-weight:560;list-style:none;display:flex}.fold summary::-webkit-details-marker{display:none}.fold summary:after{content:"";border-right:1.75px solid var(--text-faint);border-bottom:1.75px solid var(--text-faint);width:7px;height:7px;transition:transform .25s var(--ease);margin-left:auto;transform:rotate(-45deg)}.fold[open] summary:after{transform:rotate(45deg)}.fold-count{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:12px;font-weight:500}.fold .chips{animation:rise .35s var(--ease) backwards;padding:0 14px 14px}.empty{text-align:center;color:var(--text-soft);padding:44px 20px}.empty .big{background:var(--surface-2);border-radius:14px;place-items:center;width:52px;height:52px;margin:0 auto 12px;font-size:24px;animation:3s ease-in-out infinite float;display:grid}.spinner{border:2.5px solid var(--border);border-top-color:var(--brand);border-radius:50%;width:22px;height:22px;animation:.7s linear infinite spin}.center-pad{place-items:center;padding:48px;display:grid}.skeleton-grid{gap:14px;display:grid}.skel{border-radius:var(--radius);background:linear-gradient(90deg, var(--surface-2) 0%, var(--surface-3) 40%, var(--surface-2) 80%);background-size:300% 100%;animation:1.4s ease-in-out infinite shimmer}.alert{border-radius:var(--radius-sm);animation:page-in .3s var(--ease) backwards;margin-bottom:14px;padding:11px 14px;font-size:13.5px}.alert-error{background:var(--red-soft);color:var(--red)}.alert-ok{background:var(--green-soft);color:var(--green)}.alert-warn{background:var(--amber-soft);color:var(--amber)}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:var(--z-modal);background:#11111080;place-items:center;padding:16px;animation:.2s both fade;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:90vh;animation:modal-in .32s var(--ease-spring) both;overflow-y:auto}.modal.wide{max-width:760px}.modal-head{border-bottom:1px solid var(--border);align-items:center;padding:16px 20px;display:flex}.modal-head h3{flex:1;font-size:16px}.modal-body{padding:20px}.modal-foot{border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius) var(--radius);justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.login-wrap{z-index:1;background:radial-gradient(700px 420px at 85% -5%, var(--brand-soft), transparent 70%), radial-gradient(600px 400px at -10% 110%, var(--surface-3), transparent 70%), var(--bg);place-items:center;min-height:100dvh;padding:20px;display:grid;position:relative}.login-card{width:100%;max-width:400px;animation:modal-in .5s var(--ease-spring) backwards;padding:32px 30px 28px}.login-card .brand{letter-spacing:-.02em;align-items:center;gap:11px;margin-bottom:6px;font-size:19px;font-weight:680;display:flex}.login-card .sub{color:var(--text-soft);margin-bottom:24px;font-size:13.5px}.scrim{display:none}.reveal{animation:rise .55s var(--ease) backwards;animation-delay:calc(var(--i,0) * 55ms)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.97)}}@keyframes tip-in{0%{opacity:0;transform:translate(-50%,calc(-100% - 4px))}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes grow-x{0%{transform:scaleX(0)}}@keyframes grow-y{0%{transform:scaleY(0)}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.35}}@keyframes float{50%{transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.chart .line.draw{stroke-dashoffset:0}.chart .area{opacity:1}}@media (width<=1100px){.grid-2,.grid-2.even{grid-template-columns:minmax(0,1fr)}}@media (width<=900px){.sidebar{box-shadow:var(--shadow-lg);transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main{margin-left:0}.hamburger{display:grid}.scrim.show{z-index:var(--z-scrim);background:#11111066;animation:.2s both fade;display:block;position:fixed;inset:0}.content{padding:18px 16px 40px}.topbar{padding:12px 16px}.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat .value{font-size:24px}}@media (width<=299px){.cards-grid{grid-template-columns:minmax(0,1fr)}}.shop-cards{gap:12px;display:grid}.shop-card{min-width:0;transition:box-shadow .25s var(--ease), border-color .25s var(--ease);padding:14px 16px}.shop-card:hover{box-shadow:var(--shadow-hover);border-color:var(--border-strong)}.shop-card-head{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:10px;display:flex}.shop-card-head strong{font-size:15.5px}.shop-card-online{color:var(--text-soft);margin-left:auto;font-size:12.5px}.shop-card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:10px 18px;display:grid}.shop-card-grid>div{overflow-wrap:anywhere;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;display:flex}.shop-card-grid .k{color:var(--text-faint);font-size:11.5px}.shop-card-grid .soft,.shop-card .soft{color:var(--text-soft);font-size:11.5px}.sidebar-foot .version{text-align:center;color:var(--text-faint);font-variant-numeric:tabular-nums;margin-top:10px;font-size:11.5px}
