@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./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(./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(./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(./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(./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(./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(./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(./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(./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(./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(./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}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-vietnamese-wght-normal.qRpaaN48.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-latin-ext-wght-normal.DmpS2jIq.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-latin-wght-normal.eXO_dkmS.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 Fallback;font-weight:100 450;src:local(Arial),local(ArialMT);size-adjust:101.1%;ascent-override:99.39%;descent-override:29.17%;line-gap-override:0%}@font-face{font-family:Geist Fallback;font-weight:451 550;src:local(Arial),local(ArialMT);size-adjust:103.4%;ascent-override:97.2%;descent-override:28.53%;line-gap-override:0%}@font-face{font-family:Geist Fallback;font-weight:551 650;src:local(Arial Bold),local(Arial-BoldMT);size-adjust:99.3%;ascent-override:101.23%;descent-override:29.71%;line-gap-override:0%}@font-face{font-family:Geist Fallback;font-weight:651 750;src:local(Arial Bold),local(Arial-BoldMT);size-adjust:101.4%;ascent-override:99.13%;descent-override:29.1%;line-gap-override:0%}@font-face{font-family:Geist Fallback;font-weight:751 900;src:local(Arial Bold),local(Arial-BoldMT);size-adjust:103.5%;ascent-override:97.07%;descent-override:28.49%;line-gap-override:0%}@font-face{font-family:Geist Fallback Roboto;font-weight:100 450;src:local(Roboto),local(Roboto-Regular);size-adjust:109.9%;ascent-override:91.44%;descent-override:26.84%;line-gap-override:0%}@font-face{font-family:Geist Fallback Roboto;font-weight:451 550;src:local(Roboto),local(Roboto-Regular);size-adjust:112.4%;ascent-override:89.42%;descent-override:26.25%;line-gap-override:0%}@font-face{font-family:Geist Fallback Roboto;font-weight:551 650;src:local(Roboto Bold),local(Roboto-Bold);size-adjust:107.2%;ascent-override:93.76%;descent-override:27.52%;line-gap-override:0%}@font-face{font-family:Geist Fallback Roboto;font-weight:651 750;src:local(Roboto Bold),local(Roboto-Bold);size-adjust:109.5%;ascent-override:91.82%;descent-override:26.95%;line-gap-override:0%}@font-face{font-family:Geist Fallback Roboto;font-weight:751 900;src:local(Roboto Bold),local(Roboto-Bold);size-adjust:111.8%;ascent-override:89.91%;descent-override:26.39%;line-gap-override:0%}:root{--font:"Geist Variable", "Geist", "Geist Fallback", "Geist Fallback Roboto", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display:"Plus Jakarta Sans Variable", var(--font);--mono:"Geist Mono Variable", "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--bg:#fafafa;--surface:#fff;--surface-2:#f4f4f5;--surface-3:#e4e4e7;--border:#e4e4e7;--border-subtle:#ececee;--text:#18181b;--text-2:#3f3f46;--text-muted:#6f6f78;--ink:#f27a22;--ink-hover:#e66b10;--ink-fg:#121a4f;--accent:#2f43a0;--accent-hover:#26378a;--accent-fg:#fff;--accent-soft:#eef1fc;--primary:#2f43a0;--success:#15803d;--success-bg:#f0fdf4;--success-border:#bbf7d0;--warning:#a15c00;--warning-bg:#fffbeb;--warning-border:#fde68a;--info:#2563eb;--info-bg:#eff6ff;--info-border:#bfdbfe;--danger:#be2f2a;--danger-bg:#fef2f2;--danger-border:#fecaca;--star:#f59e0b;--hot:#c2410c;--hot-bg:#fff7ed;--hot-border:#fed7aa;--purple:#7e22ce;--purple-bg:#faf5ff;--purple-border:#e9d5ff;--success-fg:#fff;--danger-fg:#fff;--radius-sm:8px;--radius:12px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 2px #0000000d;--shadow:0 1px 3px #00000014;--shadow-elevated:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--ring:0 0 0 3px #2f43a038;--container:1024px;--container-wide:1200px;--header-h:64px;--bnav-h:0px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0a0a0b;--surface:#161618;--surface-2:#212124;--surface-3:#2c2c30;--border:#292a2e;--border-subtle:#232326;--text:#fafafa;--text-2:#d4d4d8;--text-muted:#a1a1aa;--ink:#ff8a3d;--ink-hover:#ffa05f;--ink-fg:#0d1240;--accent:#8ea2ff;--accent-hover:#a9b8ff;--accent-fg:#0d1240;--accent-soft:#161c3d;--primary:#8ea2ff;--success:#4ade80;--success-bg:#052e16;--success-border:#14532d;--warning:#fbbf24;--warning-bg:#1f1503;--warning-border:#713f12;--info:#60a5fa;--info-bg:#0b1730;--info-border:#1e3a8a;--danger:#f87171;--danger-bg:#2a0a0a;--danger-border:#7f1d1d;--hot:#fb923c;--hot-bg:#271204;--hot-border:#7c2d12;--purple:#d8b4fe;--purple-bg:#1e0b33;--purple-border:#581c87;--success-fg:#04140a;--danger-fg:#1c0505;--shadow-elevated:0 20px 25px -5px #00000073;--ring:0 0 0 3px #8ea2ff40;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0a0a0b;--surface:#161618;--surface-2:#212124;--surface-3:#2c2c30;--border:#292a2e;--border-subtle:#232326;--text:#fafafa;--text-2:#d4d4d8;--text-muted:#a1a1aa;--ink:#ff8a3d;--ink-hover:#ffa05f;--ink-fg:#0d1240;--accent:#8ea2ff;--accent-hover:#a9b8ff;--accent-fg:#0d1240;--accent-soft:#161c3d;--primary:#8ea2ff;--success:#4ade80;--success-bg:#052e16;--success-border:#14532d;--warning:#fbbf24;--warning-bg:#1f1503;--warning-border:#713f12;--info:#60a5fa;--info-bg:#0b1730;--info-border:#1e3a8a;--danger:#f87171;--danger-bg:#2a0a0a;--danger-border:#7f1d1d;--hot:#fb923c;--hot-bg:#271204;--hot-border:#7c2d12;--purple:#d8b4fe;--purple-bg:#1e0b33;--purple-border:#581c87;--success-fg:#04140a;--danger-fg:#1c0505;--shadow-elevated:0 20px 25px -5px #00000073;--ring:0 0 0 3px #8ea2ff40;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;padding-bottom:var(--bnav-h);margin:0;font-size:15px;line-height:1.55}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}a:hover{text-decoration:none}p{margin:0 0 .75em}h1,h2,h3,h4{letter-spacing:-.02em;line-height:1.2;font-family:var(--font-display);text-wrap:balance;margin:0}h1,.h1{font-size:clamp(26px,4vw,34px);font-weight:800}h2,.h2{font-size:20px;font-weight:700}h3,.h3{font-size:16px;font-weight:700}h4,.h4{font-size:1em;font-weight:700}small,.small{font-size:13px}.xs{font-size:12px}code,kbd,pre{font-family:var(--mono);font-size:13px}pre{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;line-height:1.5;overflow-x:auto}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}hr{border:0;border-top:1px solid var(--border-subtle);margin:16px 0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=600px){.label-sm{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.skip-link{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link:focus{clip:auto;z-index:200;background:var(--surface);width:auto;height:auto;color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-elevated);border-radius:8px;padding:10px 14px;font-weight:600;position:fixed;top:12px;left:12px;overflow:visible}[tabindex="-1"]:focus:not(:focus-visible){outline:none}[data-scroll-region]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 16px}.container-wide{max-width:var(--container-wide)}.stack>*+*{margin-top:var(--gap,16px)}.stack>.check{width:fit-content;display:flex}.row{align-items:center;gap:var(--gap,12px);display:flex}.row-wrap{flex-wrap:wrap}.between{justify-content:space-between}.grow{flex:auto;min-width:0}.grid{gap:var(--gap,16px);display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=860px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.grid-2,.grid-3{grid-template-columns:1fr}}.split{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:20px;display:grid}@media (width<=900px){.split{grid-template-columns:1fr}}.sticky-side{top:calc(var(--header-h) + 16px);position:sticky}.muted{color:var(--text-muted)}.text-2{color:var(--text-2)}.center{text-align:center}.right{text-align:right}.nowrap{white-space:nowrap}.mt-0{margin-top:0!important}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mt-8{margin-top:32px}.mb-0{margin-bottom:0!important}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.w-full{width:100%}.hidden{display:none!important}main{min-height:60vh;padding:20px 0 48px;display:block}.section{margin-top:28px}.section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.section-head :is(h2,h3){align-items:center;gap:8px;display:flex}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);align-items:center;gap:6px;font-size:12px;font-weight:700;display:inline-flex}.lead{color:var(--text-muted);max-width:680px;font-size:15px}.count-pill{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);border-radius:999px;padding:1px 8px;font-size:12px;font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.card.pad-0{padding:0}.card.pad-sm{padding:14px}.card-head{align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.card-head .icon-box{flex:none}.card-head :is(h2,h3,h4){font-size:16px}.card-head p{color:var(--text-muted);margin:2px 0 0;font-size:13px}.icon-box{border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border-subtle);width:36px;height:36px;color:var(--text-2);place-items:center;display:grid}.icon-box svg{width:18px;height:18px}.callout{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);padding:12px 14px;font-size:13px}.callout :is(h2,h3,h4){align-items:center;gap:6px;margin-bottom:4px;font-size:13px;display:flex}.callout :is(h2,h3,h4) svg{flex:none;width:15px;height:15px}.callout ul{margin:4px 0 0;padding-left:18px}.callout.warning{background:var(--warning-bg);border-color:var(--warning-border)}.callout.warning :is(h2,h3,h4){color:var(--warning)}.callout.info{background:var(--info-bg);border-color:var(--info-border)}.callout.info :is(h2,h3,h4){color:var(--info)}.callout.success{background:var(--success-bg);border-color:var(--success-border)}.callout.danger{background:var(--danger-bg);border-color:var(--danger-border)}.divider-list>*+*{border-top:1px solid var(--border-subtle)}.btn{--h:40px;height:var(--h);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);font:600 14px/1 var(--font);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 16px;text-decoration:none;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:active{transform:translateY(1px)}.btn svg{width:16px;height:16px}.btn-primary,.btn-ink{background:var(--ink);color:var(--ink-fg);border-color:var(--ink)}.btn-primary:hover,.btn-ink:hover{background:var(--ink-hover)}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-2)}.btn-danger{background:var(--danger);color:var(--danger-fg);border-color:var(--danger)}.btn-success{background:var(--success);color:var(--success-fg);border-color:var(--success)}.btn-sm{--h:32px;border-radius:8px;padding:0 12px;font-size:13px}.btn-xs{--h:26px;border-radius:6px;padding:0 8px;font-size:12px}.btn-lg{--h:48px;padding:0 22px;font-size:15px}.btn-block{width:100%}.btn-cta{--h:52px;background:var(--ink);width:100%;color:var(--ink-fg);border-radius:var(--radius);letter-spacing:.04em;text-transform:uppercase;border:0;font-size:15px;font-weight:800}.btn-cta:hover{background:var(--ink-hover)}.btn-icon{width:var(--h);padding:0}.btn[disabled],.btn.is-disabled{opacity:.5;pointer-events:none}.link{text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);font-weight:600}.link:hover{text-decoration-color:currentColor}.back-link{min-height:24px;color:var(--text-muted);align-items:center;gap:6px;margin-bottom:14px;font-size:14px;display:inline-flex}.back-link:hover{color:var(--text)}.back-link svg{width:16px;height:16px}.badge{background:var(--surface-2);height:22px;color:var(--text-2);border:1px solid var(--border);white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:0 8px;font-size:11.5px;font-weight:700;display:inline-flex}.badge svg{width:12px;height:12px}.badge-ink{background:var(--ink);color:var(--ink-fg);border-color:var(--ink)}.badge-hot{background:var(--hot-bg);color:var(--hot);border-color:var(--hot-border)}.badge-new{background:var(--info-bg);color:var(--info);border-color:var(--info-border)}.badge-success{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}.badge-warning{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}.badge-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}.badge-purple{background:var(--purple-bg);color:var(--purple);border-color:var(--purple-border)}.badge-pill{border-radius:999px}.tag-member{letter-spacing:.06em;background:var(--ink);color:var(--ink-fg);border-radius:999px;padding:2px 6px;font-size:9.5px;font-weight:800}.dot{background:var(--success);border-radius:50%;width:8px;height:8px;display:inline-block}.dot.warn{background:var(--star)}.dot.off{background:var(--danger)}.dot.muted{background:var(--text-muted)}.field{gap:6px;display:grid}.field>label,.label{font-size:14px;font-weight:600}.label .opt,.field .opt{color:var(--text-muted);font-size:12px;font-weight:400}.hint{color:var(--text-muted);margin:0;font-size:12px}.error-text{color:var(--danger);margin:0;font-size:12px}.input,.select,.textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;height:42px;color:var(--text);font:400 14.5px var(--font);padding:0 12px;transition:border-color .15s,box-shadow .15s}.textarea{resize:vertical;height:auto;min-height:96px;padding:10px 12px;line-height:1.5}.input:focus,.select:focus,.textarea:focus{border-color:var(--text-muted);box-shadow:var(--ring);outline:none}.input::placeholder,.textarea::placeholder{color:var(--text-muted);opacity:.8}.input-group{align-items:stretch;display:flex}.input-group .input{border-radius:var(--radius) 0 0 var(--radius)}.input-group .btn{border-radius:0 var(--radius) var(--radius) 0;height:42px}.input-icon{position:relative}.input-icon svg{width:16px;height:16px;color:var(--text-muted);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-icon .input{padding-left:36px}.check{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:inline-flex}.check input{width:16px;height:16px;accent-color:var(--ink)}.switch{flex:none;width:38px;height:22px;position:relative}.switch input{opacity:0;width:0;height:0}.switch span{background:var(--surface-3);cursor:pointer;border-radius:999px;transition:all .2s;position:absolute;inset:0}.switch span:before{content:"";width:16px;height:16px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:all .2s;position:absolute;top:3px;left:3px}.switch input:checked+span{background:var(--ink)}.switch input:checked+span:before{background:var(--ink-fg);transform:translate(16px)}.switch input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}.qty{align-items:center;gap:8px;display:inline-flex}.qty .input{text-align:center;width:80px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);height:36px;font:500 14px var(--font);color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:0 14px;display:inline-flex}.chip:hover{border-color:var(--text-muted)}.chip[aria-pressed=true],.chip[aria-checked=true],.chip.is-active{background:var(--surface-2);border-color:var(--text);color:var(--text);font-weight:600}.chip[aria-pressed=true]:before,.chip[aria-checked=true]:before{content:"✓";font-weight:700}.chip-sm{border-radius:8px;height:30px;padding:0 10px;font-size:13px}.chip .count{color:var(--text-muted);font-size:11px;font-weight:700}.chip-dark[aria-pressed=true],.chip-dark.is-active{background:var(--ink);color:var(--ink-fg);border-color:var(--ink)}.chip-dark[aria-pressed=true]:before{content:none}.segmented{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);gap:2px;padding:3px;display:inline-flex}.segmented button{height:30px;font:600 13px var(--font);color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.segmented svg{width:15px;height:15px}.option-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;align-items:flex-start;gap:12px;padding:14px;transition:border-color .15s,background .15s;display:flex;position:relative}.option-card:hover{border-color:var(--text-muted)}.option-card.is-selected{border-color:var(--text);background:var(--surface-2)}.option-card:has(input:checked){border-color:var(--text);background:var(--surface-2)}.option-card input{opacity:0;pointer-events:none;position:absolute}.option-card .oc-check{border:1.5px solid var(--border);border-radius:50%;flex:none;place-items:center;width:20px;height:20px;margin-left:auto;display:grid}.option-card.is-selected .oc-check{background:var(--ink);border-color:var(--ink)}.option-card:has(input:checked) .oc-check{background:var(--ink);border-color:var(--ink)}.option-card.is-selected .oc-check:after{content:"✓";color:var(--ink-fg);font-size:12px;font-weight:800}.option-card:has(input:checked) .oc-check:after{content:"✓";color:var(--ink-fg);font-size:12px;font-weight:800}.option-card .oc-title{font-size:14px;font-weight:600}.option-card .oc-sub{color:var(--text-muted);font-size:12.5px}.option-card.is-disabled{opacity:.55;cursor:not-allowed}:is(.option-card:has(input:focus-visible),.chip:has(input:focus-visible)){outline:2px solid var(--primary);outline-offset:2px}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap;padding:10px 14px;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--border-subtle);vertical-align:middle;padding:12px 14px}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--surface-2)}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .mono{font-family:var(--mono);font-size:12.5px}.pthumb{aspect-ratio:1;border-radius:var(--radius);color:#fff;place-items:center;width:100%;font-size:34px;font-weight:800;display:grid;position:relative;overflow:hidden}.pthumb:after{content:"";background:radial-gradient(120% 80% at 0 0,#ffffff38,#0000 55%);position:absolute;inset:0}.pthumb.sm{border-radius:10px;flex:none;width:44px;height:44px;font-size:18px}.pthumb.md{border-radius:14px;flex:none;width:72px;height:72px;font-size:28px}.pthumb.lg{border-radius:18px;flex:none;width:96px;height:96px;font-size:40px}.pthumb-logo{--mk:27cqi;--mk-w:62%;--mk-max:108px;--mk-ring:4px;--mk-ring-c:color-mix(in srgb, var(--b) 35%, transparent);--mk-glow:var(--b);background:color-mix(in srgb, var(--b) 13%, var(--surface));color:var(--text);container-type:inline-size}.pthumb-mark{width:var(--mk-w);max-width:var(--mk-max);aspect-ratio:1;z-index:1;font-size:min(var(--mk), 48px);letter-spacing:0;box-shadow:0 0 0 var(--mk-ring) var(--mk-ring-c), 0 14px 24px -14px var(--mk-glow);background:#fff;border-radius:50%;place-items:center;font-weight:400;line-height:1;display:grid;position:relative}.pthumb-mark.is-mono{font-size:min(calc(var(--mk) * .78), 38px);letter-spacing:-.02em;color:color-mix(in srgb, var(--b) 78%, #000);font-weight:800}.pthumb-logo.sm{--mk:40cqi;--mk-w:78%;--mk-ring:2px}.pthumb-logo.sm .pthumb-mark{box-shadow:0 0 0 var(--mk-ring) var(--mk-ring-c)}.pthumb-logo.md{--mk:32cqi;--mk-w:72%;--mk-ring:3px}.pthumb-logo.lg{--mk:32cqi;--mk-w:70%;--mk-ring:4px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pthumb-logo{background:color-mix(in srgb, var(--b) 22%, var(--surface));--mk-ring-c:color-mix(in srgb, color-mix(in srgb, var(--b) 70%, #fff) 60%, transparent);--mk-glow:color-mix(in srgb, var(--b) 50%, transparent)}:root:not([data-theme=light]) .pthumb-mark{background:var(--surface-2)}:root:not([data-theme=light]) .pthumb-mark.is-mono{color:color-mix(in srgb, var(--b) 55%, #fff)}}:root[data-theme=dark] .pthumb-logo{background:color-mix(in srgb, var(--b) 22%, var(--surface));--mk-ring-c:color-mix(in srgb, color-mix(in srgb, var(--b) 70%, #fff) 60%, transparent);--mk-glow:color-mix(in srgb, var(--b) 50%, transparent)}:root[data-theme=dark] .pthumb-mark{background:var(--surface-2)}:root[data-theme=dark] .pthumb-mark.is-mono{color:color-mix(in srgb, var(--b) 55%, #fff)}.pcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);flex-direction:column;padding:10px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;position:relative}.pcard:hover{border-color:var(--text-muted);box-shadow:var(--shadow);transform:translateY(-1px)}.pcard .pthumb-wrap{position:relative}.pcard .pthumb-wrap>.pthumb{border-radius:var(--radius)}.pcard .pthumb-flags{z-index:2;flex-direction:column;gap:4px;display:flex;position:absolute;top:6px;left:6px}.pcard .pname{font-family:var(--font-display);letter-spacing:-.01em;margin:10px 2px 4px;font-size:14px;font-weight:700;line-height:1.3}.pcard .pmeta{flex-wrap:wrap;gap:4px;margin:0 2px 6px;display:flex}.pcard .pprice{flex-wrap:wrap;align-items:baseline;gap:6px;margin:auto 2px 0;display:flex}.pcard .pprice b{font-size:15px}.pcard .pfoot{color:var(--text-muted);justify-content:space-between;align-items:center;margin:6px 2px 0;font-size:12px;display:flex}.pcard.is-soldout .pthumb{filter:grayscale();opacity:.6}.pcard .variants-btn{margin-top:8px}.price-from{color:var(--text-muted);font-size:12px}.price-compare{color:var(--text-muted);font-size:12.5px;text-decoration:line-through}.stock-ok{color:var(--success);font-weight:600}.stock-low{color:var(--hot);font-weight:600}.stock-out{color:var(--danger);font-weight:600}.pgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}@media (width>=640px){.pgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}}@media (width>=900px){.pgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=1100px){.pgrid{grid-template-columns:repeat(5,minmax(0,1fr))}}.pgrid .pthumb-flags .badge{border-radius:999px;gap:3px;height:24px;padding:0 8px;font-size:11px}.pgrid .pthumb-flags .badge svg{width:11px;height:11px}.plist{gap:8px;display:grid}.plist .pcard{flex-direction:row;align-items:center;gap:12px}.plist .pcard .pthumb-wrap{flex:none;width:64px}.plist .pthumb-logo{--mk:34cqi;--mk-w:76%;--mk-ring:3px}.plist .pcard .pname{margin-top:0}.stars{color:var(--star);gap:1px;display:inline-flex}.stars svg{fill:currentColor;width:14px;height:14px}.rating{align-items:center;gap:4px;font-size:12.5px;font-weight:600;display:inline-flex}.rating svg{width:13px;height:13px;fill:var(--star);color:var(--star)}.checklist{gap:6px;margin:0;padding:0;font-size:13.5px;list-style:none;display:grid}.checklist li{align-items:flex-start;gap:8px;display:flex}.checklist li:before{content:"✓";color:var(--success);flex:none;width:14px;font-weight:800}.checklist li.no:before{content:"✕";color:var(--hot)}.checklist li.no{color:var(--text-2);font-style:italic}.site-header{z-index:40;background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);position:sticky;top:0}.site-header .bar{height:var(--header-h);justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.02em;align-items:center;gap:10px;font-size:18px;font-weight:800;display:inline-flex}.brand-mark{background:var(--accent) url(../../../brand/mascot-128.webp) center / cover no-repeat;color:#0000;letter-spacing:-.04em;border-radius:9px;flex:none;place-items:center;width:32px;height:32px;font-size:13px;font-weight:900;display:grid;overflow:hidden}.header-actions{align-items:center;gap:8px;display:flex}.user-chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;height:40px;font:600 14px var(--font);color:var(--text);border-radius:999px;align-items:center;gap:8px;padding:0 10px 0 6px;display:inline-flex}.avatar{background:var(--surface-2);border:1px solid var(--border);width:28px;height:28px;color:var(--text-2);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.avatar.lg{width:40px;height:40px;font-size:15px}.cat-nav{border-bottom:1px solid var(--border-subtle);background:var(--bg)}.cat-nav ul{scrollbar-width:none;gap:2px;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.cat-nav a{color:var(--text-2);white-space:nowrap;border-bottom:2px solid #0000;padding:10px 12px;font-size:13.5px;font-weight:500;display:block}.cat-nav a:hover{color:var(--text)}.cat-nav a.is-active{color:var(--text);border-bottom-color:var(--text);font-weight:600}.site-footer{border-top:1px solid var(--border-subtle);text-align:center;color:var(--text-muted);padding:40px 0 28px;font-size:14px}.site-footer .brand{color:var(--text);justify-content:center;margin-bottom:12px}.site-footer p{max-width:420px;margin:0 auto 16px}.site-footer nav{flex-wrap:wrap;justify-content:center;gap:6px 22px;margin-bottom:14px;display:flex}.site-footer nav a:hover{color:var(--text)}.breadcrumb{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:14px;font-size:12.5px;display:flex}.breadcrumb a{align-items:center;min-height:24px;display:inline-flex}.breadcrumb a:hover{color:var(--text)}.breadcrumb .sep{opacity:.5}.ticker{border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);background:var(--surface);color:var(--text-muted);font-size:12.5px;overflow:hidden}.ticker-track{align-items:center;gap:28px;width:max-content;padding:6px 0;animation:45s linear infinite ticker;display:flex}.ticker:hover .ticker-track,.ticker:focus-within .ticker-track,.ticker.is-paused .ticker-track{animation-play-state:paused}.ticker-set{flex:none;align-items:center;gap:28px;display:flex}.ticker-item{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.ticker-item a{min-height:24px;color:var(--text);align-items:center;font-weight:600;display:inline-flex}@keyframes ticker{to{transform:translate(-50%)}}.dropdown{position:relative}.dropdown-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:220px;box-shadow:var(--shadow-elevated);z-index:60;padding:6px;display:none;position:absolute;top:calc(100% + 6px);right:0}.dropdown.is-open .dropdown-menu{display:block}.dropdown-menu .dm-head{border-bottom:1px solid var(--border-subtle);margin-bottom:4px;padding:8px 10px}.dropdown-menu a,.dropdown-menu button{width:100%;font:500 14px var(--font);color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:8px;padding:8px 10px;display:flex}.dropdown-menu a:hover,.dropdown-menu button:hover{background:var(--surface-2)}.dropdown-menu svg{width:16px;height:16px;color:var(--text-muted)}.overlay{z-index:80;background:#00000080;justify-content:center;align-items:center;padding:16px;animation:.15s fade;display:none;position:fixed;inset:0}.overlay.is-open{display:flex}.dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:460px;max-height:calc(100vh - 32px);box-shadow:var(--shadow-elevated);flex-direction:column;animation:.18s ease-out pop;display:flex}.dialog.wide{max-width:640px}.dialog-head{align-items:flex-start;gap:12px;padding:18px 20px 12px;display:flex}.dialog-head :is(h2,h3){font-size:17px}.dialog-close{margin-left:auto}.dialog-body{padding:4px 20px 16px;overflow-y:auto}.dialog-foot{border-top:1px solid var(--border-subtle);gap:10px;padding:14px 20px 16px;display:grid}.drawer-right{background:var(--surface);border-left:1px solid var(--border);z-index:81;flex-direction:column;width:min(440px,100%);animation:.2s ease-out slideIn;display:flex;position:fixed;top:0;bottom:0;right:0}@media (width<=600px){.overlay.sheet{align-items:flex-end;padding:0}.overlay.sheet .dialog{border-radius:18px 18px 0 0;max-width:100%;max-height:92vh;animation:.2s ease-out up}}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.97)translateY(6px)}}@keyframes up{0%{opacity:.5;transform:translateY(40px)}}@keyframes slideIn{0%{opacity:.5;transform:translate(40px)}}.toast-wrap{left:50%;bottom:calc(20px + var(--bnav-h));z-index:100;gap:8px;display:grid;position:fixed;transform:translate(-50%)}.toast{background:var(--accent);color:var(--accent-fg);border-radius:var(--radius);box-shadow:var(--shadow-elevated);align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:500;animation:.2s ease-out up;display:flex}.toast svg{width:16px;height:16px}.cart-bar{z-index:45;background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);padding:10px 0 max(10px, env(safe-area-inset-bottom));position:fixed;bottom:0;left:0;right:0}.cart-bar .container{align-items:center;gap:12px;display:flex}.cart-ic{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);place-items:center;width:44px;height:44px;display:grid;position:relative}.cart-ic svg{width:20px;height:20px}.cart-ic .n{background:var(--ink);min-width:20px;height:20px;color:var(--ink-fg);border-radius:999px;place-items:center;padding:0 5px;font-size:11px;font-weight:800;display:grid;position:absolute;top:-6px;right:-6px}.sticky-foot{z-index:20;background:color-mix(in srgb, var(--surface) 95%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);align-items:center;gap:12px;margin-top:16px;padding:12px;display:flex;position:sticky;bottom:0}details.acc{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}details.acc+details.acc{margin-top:8px}details.acc summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;font-size:14.5px;font-weight:600;list-style:none;display:flex}details.acc summary::-webkit-details-marker{display:none}details.acc summary:after{content:"+";color:var(--text-muted);border:1px solid var(--border);border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:18px;font-weight:400;display:grid}details.acc[open] summary:after{content:"−"}details.acc .acc-body{color:var(--text-2);padding:0 16px 14px;font-size:14px}.tabs{border-bottom:1px solid var(--border);scrollbar-width:none;gap:4px;display:flex;overflow-x:auto}.tabs button,.tabs a{font:600 14px var(--font);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:10px 14px;display:inline-flex}.tabs button[aria-selected=true],.tabs a.is-active{color:var(--text);border-bottom-color:var(--text)}.tab-panel[hidden]{display:none}.stepper{justify-content:space-between;align-items:flex-start;padding:4px 8px;display:flex;position:relative}.stepper .st{cursor:pointer;font:500 12.5px var(--font);color:var(--text-muted);background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:6px;display:flex;position:relative}.stepper .st:not(:last-child):after{content:"";background:var(--border);height:2px;position:absolute;top:15px;left:calc(50% + 20px);right:calc(20px - 50%)}.stepper .st .n{border:1.5px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--text-2);z-index:1;border-radius:50%;place-items:center;font-weight:700;display:grid;position:relative}.stepper .st.is-current{color:var(--text);font-weight:700}.stepper .st.is-current .n{background:var(--ink);color:var(--ink-fg);border-color:var(--ink);box-shadow:0 0 0 4px var(--surface-3)}.stepper .st.is-done .n{background:var(--success);border-color:var(--success);color:var(--success-fg)}.stepper .st.is-done .n:before{content:"✓"}.stepper .st.is-done .n span{display:none}.stepper .st.is-done:not(:last-child):after{background:var(--success)}@media (width<=560px){.stepper .st .lbl{display:none}.stepper .st.is-current .lbl{display:block}}.progress{background:var(--surface-3);border-radius:999px;height:6px;overflow:hidden}.progress>span{background:var(--ink);border-radius:inherit;height:100%;transition:width .3s;display:block}.progress.success>span{background:var(--success)}.carousel{border-radius:var(--radius-lg);position:relative;overflow:hidden}.carousel-track{transition:transform .45s;display:flex}.carousel-slide{color:#fff;flex-direction:column;justify-content:flex-end;gap:6px;min-width:100%;min-height:200px;padding:28px;display:flex}.carousel-slide h2,.carousel-slide h3{font-size:clamp(20px,3.2vw,28px);font-weight:800}.carousel-slide p{opacity:.85;max-width:420px;margin:0 0 8px}.carousel-slide .btn{color:#111;background:#fff;border-color:#fff;align-self:flex-start}.carousel-nav{color:#111;cursor:pointer;background:#ffffffe6;border:0;border-radius:50%;place-items:center;width:36px;height:36px;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.carousel-nav.prev{left:10px}.carousel-nav.next{right:10px}.carousel-nav svg{width:18px;height:18px}.carousel-dots{align-items:center;display:flex;position:absolute;bottom:4px;right:8px}.carousel-dots button{cursor:pointer;background:0 0;border:0;place-items:center;min-width:24px;height:24px;padding:0 3px;display:grid}.carousel-dots button:before{content:"";background:#ffffff80;border-radius:999px;width:8px;height:8px;transition:width .2s;display:block}.carousel-dots button[aria-current=true]:before{background:#fff;width:22px}.carousel-dots button:focus-visible{outline-offset:-2px;border-radius:6px;outline:2px solid #fff}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px}.stat .k{color:var(--text-muted);align-items:center;gap:6px;font-size:12.5px;font-weight:500;display:flex}.stat .k svg{width:15px;height:15px}.stat .v{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:4px;font-size:24px;font-weight:800}.stat .d{margin-top:2px;font-size:12px}.up{color:var(--success)}.down{color:var(--danger)}.empty{text-align:center;color:var(--text-muted);padding:40px 16px}.empty .icon-box{width:48px;height:48px;margin:0 auto 12px}.app{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.app-side{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.app-side .side-brand{border-bottom:1px solid var(--border-subtle);align-items:center;gap:10px;padding:16px;display:flex}.app-side .side-brand small{color:var(--text-muted);letter-spacing:0;font-size:11.5px;font-weight:500;display:block}.side-nav{gap:1px;padding:10px;display:grid}.side-nav .grp{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);padding:14px 10px 6px;font-size:11px;font-weight:700}.side-nav a{color:var(--text-2);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:14px;font-weight:500;display:flex}.side-nav a:hover{background:var(--surface-2);color:var(--text)}.side-nav a svg{flex:none;width:17px;height:17px}.side-nav a .badge{height:20px;margin-left:auto;font-size:11px}.side-foot{border-top:1px solid var(--border-subtle);margin-top:auto;padding:12px}.app-main{min-width:0}.app-top{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:30;align-items:center;gap:12px;height:60px;padding:0 24px;display:flex;position:sticky;top:0}.app-top .crumbs{color:var(--text-muted);font-size:13.5px}.app-top .crumbs b{color:var(--text);font-weight:600}.app-content{max-width:1280px;padding:24px}.page-head h1{font-size:24px}.page-head p{color:var(--text-muted);margin:4px 0 0;font-size:14px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.toolbar .input,.toolbar .select{width:auto;height:36px;font-size:13.5px}.toolbar .input-icon .input{width:240px}.pagination{color:var(--text-muted);border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:13px;display:flex}.side-toggle{display:none}@media (width<=960px){.app{grid-template-columns:1fr}.app-side{z-index:70;width:264px;box-shadow:var(--shadow-elevated);transition:transform .2s;position:fixed;left:0;transform:translate(-100%)}.app.side-open .app-side{transform:none}.side-toggle{display:inline-flex}.app-content{padding:16px}.app-top{padding:0 16px}}.kv{grid-template-columns:140px 1fr;gap:8px 16px;margin:0;font-size:14px;display:grid}.kv dt{color:var(--text-muted)}.kv dd{margin:0;font-weight:500}.bar-chart{align-items:flex-end;gap:6px;height:160px;padding-top:8px;display:flex}.bar-chart .b{background:color-mix(in srgb, var(--ink) 85%, transparent);border-radius:4px 4px 0 0;flex:1;min-height:2px;position:relative}.bar-chart .b:hover{background:var(--ink)}.bar-chart .b span{color:var(--text-muted);font-size:10.5px;position:absolute;bottom:-20px;left:50%;transform:translate(-50%)}.timeline{gap:14px;margin:0;padding:0;list-style:none;display:grid}.timeline li{grid-template-columns:22px 1fr;gap:10px;font-size:14px;display:grid}.timeline .tdot{background:var(--border);border-radius:50%;justify-self:center;width:12px;height:12px;margin-top:5px}.timeline li.done .tdot{background:var(--success)}.timeline li.now .tdot{background:var(--ink);box-shadow:0 0 0 4px var(--surface-3)}@media (width<=600px){.hide-sm{display:none}.header-actions .btn-primary span,.header-actions .btn-ghost span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.mockup-note{left:12px;bottom:calc(12px + var(--bnav-h));z-index:90;background:var(--surface);border:1px dashed var(--border);color:var(--text-muted);border-radius:8px;padding:6px 10px;font-size:11.5px;position:fixed}.mockup-note a{color:var(--text);font-weight:600}@media (width<=600px){.mockup-note{display:none}}.bnav{display:none}@media (width<=639px){body[data-layout=store]{--mnav-h:64px;padding-bottom:calc(var(--bnav-h) + var(--mnav-h))}body[data-layout=store] .cat-nav,body[data-layout=store] .header-actions>.btn-primary{display:none}.bnav{z-index:46;background:var(--bg);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bnav a{height:64px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:500;display:flex;position:relative}.bnav a svg{width:22px;height:22px}.bnav a.is-active{color:var(--text);font-weight:600}.bnav a.is-active:before{content:"";background:var(--text);border-radius:2px;height:2px;position:absolute;top:0;left:25%;right:25%}.bnav a.fab .fab-ic{background:var(--ink);width:46px;height:46px;color:var(--ink-fg);border-radius:14px;place-items:center;margin-top:-16px;display:grid;box-shadow:0 6px 14px -6px #00000073}.bnav a.fab.is-active:before{display:none}body[data-layout=store] .cart-bar{bottom:calc(64px + env(safe-area-inset-bottom))}body[data-layout=store] .mockup-note{display:none}.toast-wrap{bottom:calc(84px + var(--bnav-h))}}body[data-layout=admin] .mockup-note,body[data-layout=reseller] .mockup-note{left:auto;right:12px}.grid>*,.split>*,.app-content>*,.card,.stack>*,.row>.grow,.between>*{min-width:0}@media (width<=640px){.toolbar{flex-wrap:wrap}.toolbar>*{max-width:100%}.toolbar .input-icon,.toolbar .input-icon .input{width:100%}.page-head>*{max-width:100%}.page-head .row,.card-head{flex-wrap:wrap}.kv{grid-template-columns:1fr;gap:2px 0}.kv dd{margin-bottom:8px}}.table-wrap{position:relative}.stat{min-width:0}.stat .v{overflow-wrap:anywhere}@media (width<=640px){.stat{padding:12px}.stat .v{font-size:19px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.ticker-track{scrollbar-width:none;width:auto;overflow-x:auto;animation:none!important}.ticker-dup{display:none}}:root{--side-w:248px;--top-h:60px;--scrim:#00000073}.app{grid-template-columns:var(--side-w) minmax(0, 1fr)}.app-side{height:100dvh;overflow:hidden}.app-side .side-brand{height:var(--top-h);flex:none;padding:0 16px}.side-brand .brand-name{min-width:0;font-family:var(--font-display);letter-spacing:-.01em;font-size:15px;font-weight:800;line-height:1.2}.side-nav{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent;flex:auto;align-content:start;gap:1px;min-height:0;padding:6px 10px 12px;overflow-y:auto}.side-nav .grp{padding:10px 10px 3px;font-size:10.5px;line-height:1.3}.side-nav a{min-height:32px;padding:5px 10px;font-size:13.5px;line-height:1.3;transition:background .12s,color .12s;position:relative}.side-nav a svg{width:16px;height:16px;color:var(--text-muted)}.side-nav a:hover svg{color:var(--text-2)}.side-nav .lbl{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.side-nav a .badge{font-variant-numeric:tabular-nums;border-radius:999px;flex:none;justify-content:center;min-width:22px;height:20px;margin-left:0;padding:0 6px;font-size:11px}.side-nav a .badge-soon{min-width:0;height:18px;color:var(--text-muted);background:0 0;font-size:10.5px;font-weight:600}.side-nav .badge-urgent{background:var(--danger);color:var(--danger-fg);border-color:var(--danger)}.side-nav a.is-active{background:var(--accent-soft);color:var(--text);box-shadow:none;font-weight:600}.side-nav a.is-active svg{color:var(--accent)}.side-nav a.is-active:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:5px;bottom:5px;left:-10px}.side-foot{flex:none;padding:8px 10px}.side-link{min-height:32px;color:var(--text-2);border-radius:8px;align-items:center;gap:10px;padding:5px 10px;font-size:13.5px;font-weight:500;display:flex}.side-link:hover{background:var(--surface-2);color:var(--text)}.side-link svg{width:16px;height:16px;color:var(--text-muted)}.side-link .side-link-ext{width:14px;height:14px;margin-left:auto}.app-top{height:var(--top-h);gap:8px;padding-inline:max(32px,50% - 768px)}.app-top .btn-icon{--h:36px}.app-top .crumbs{white-space:nowrap;flex:auto;align-items:center;gap:6px;min-width:0;font-size:13.5px;display:flex;overflow:hidden}.app-top .crumbs b{text-overflow:ellipsis;min-width:0;overflow:hidden}.acct{flex:none}.acct-btn{border:1px solid var(--border);background:var(--surface);height:36px;color:var(--text);font:600 13.5px var(--font);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:0 10px 0 3px;display:inline-flex}.acct-btn:hover,.acct-btn[aria-expanded=true]{background:var(--surface-2)}.acct-btn .avatar{width:28px;height:28px}.acct-btn>svg{width:14px;height:14px;color:var(--text-muted);transition:transform .15s}.acct-btn[aria-expanded=true]>svg{transform:rotate(180deg)}.acct-name{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.acct .dropdown-menu{min-width:220px}.acct .dm-head{align-items:center;gap:10px;display:flex}.acct .dm-head .avatar{width:32px;height:32px}.acct .dm-name{overflow-wrap:anywhere;font-size:14px;font-weight:600}.acct form{margin:0}.side-scrim{z-index:65;background:var(--scrim);border:0;padding:0;position:fixed;inset:0}@media (width>=961px){.side-scrim{display:none}}@media (width<=960px){.app{grid-template-columns:minmax(0,1fr)}.app-side{box-shadow:none}.app.side-open .app-side{box-shadow:var(--shadow-elevated)}.side-nav a,.side-link{min-height:40px}.app-top{padding-inline:16px}}@media (width<=600px){.app-top .btn-icon{--h:40px}.app-top .crumbs .crumb-root,.app-top .crumbs .sep{display:none}.app-top .crumbs{font-size:14px}.acct-btn{height:40px;padding:0 4px}.acct-btn .avatar{width:32px;height:32px}.acct-btn>svg{display:none}}.app-content{width:100%;max-width:1600px;margin-inline:auto;padding:28px 32px 56px}@media (width<=960px){.app-content{padding:16px 16px 40px}}.page{gap:24px;display:grid}.page>*{min-width:0;margin-block:0}.page>.page-head{margin-bottom:0}.page>:is(.chips,.toolbar)+:is(.chips,.toolbar,.table-wrap){margin-top:-12px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 24px;margin-bottom:24px;display:flex}.page-head .page-title{flex:320px;min-width:0}.page-head h1{overflow-wrap:anywhere;font-size:24px;line-height:1.25}.page-head p{max-width:80ch;color:var(--text-muted);margin:4px 0 0;font-size:14px;line-height:1.5}.page-actions{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.page-actions .btn{--h:40px;border-radius:var(--radius);padding:0 16px;font-size:14px}.page-actions .btn-icon{padding:0}.page-actions .select{height:40px}@media (width<=640px){.page-head h1{font-size:22px}.page-head p{font-size:13.5px}.page-actions{flex:100%}.page-actions>.btn:not(.btn-ghost){flex:auto}}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.kpi-grid>*{min-width:0}@media (width>=640px){.kpi-grid{grid-template-columns:repeat(var(--kpi-cols-md,2), minmax(0, 1fr))}}@media (width>=1280px){.kpi-grid{grid-template-columns:repeat(var(--kpi-cols,4), minmax(0, 1fr))}}.stat{flex-direction:column;display:flex}.stat .k{align-items:flex-start;line-height:1.35}.stat .k svg{flex:none;margin-top:1px}.stat .v{margin-top:6px;line-height:1.2}.stat .d{margin-top:4px;line-height:1.4}@supports (grid-template-rows:subgrid){.kpi-grid{row-gap:0;margin-bottom:-12px}.page>.kpi-grid{margin-block:0 -12px}.kpi-grid>*{grid-row:span 3;margin-bottom:12px}.kpi-grid>.stat{grid-template-rows:subgrid;row-gap:0;display:grid}}.cols-main-side{grid-template-columns:minmax(0,1fr);align-items:start;gap:20px;display:grid}.cols-main-side>*{min-width:0}@media (width>=1100px){.cols-main-side{grid-template-columns:minmax(0,1fr) 360px}}.cols-2{grid-template-columns:minmax(0,1fr);align-items:start;gap:20px;display:grid}.cols-2>*{min-width:0}@media (width>=960px){.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.form-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;display:grid}.form-grid>*{min-width:0}.field{align-content:start}@media (width>=720px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid>.span-2{grid-column:1/-1}}.form-actions{border-top:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:20px;padding-top:16px;display:flex}@media (width<=640px){.form-actions{flex-direction:column-reverse}.form-actions>.btn{width:100%}.card-head{flex-wrap:nowrap}.card-head>:has(>:is(h2,h3,h4)){flex:auto;min-width:0}.card-head:has(>:is(.btn,.row,a,button)){flex-wrap:wrap}.card-head:has(>:is(.btn,.row,a,button))>:has(>:is(h2,h3,h4)){flex-basis:100%}.card-head:has(>:is(.btn,.row,a,button))>.icon-box+:has(>:is(h2,h3,h4)){flex-basis:calc(100% - 56px)}}.parts>*+*{margin-left:.5em}.empty{justify-items:center;gap:8px;display:grid}.empty .icon-box{margin:0 0 4px}.empty p{max-width:46ch;margin:0}.table th{letter-spacing:.05em;height:40px;padding:8px 16px;font-size:11.5px}.table td{padding:12px 16px}.table tbody tr{transition:background .12s}.table tbody tr.empty-row:hover{background:0 0}.table .empty-row>td{padding:0}.table .act{white-space:nowrap;text-align:right;width:1%}.table .act>:is(.row,div){justify-content:flex-end}.pagination{flex-wrap:wrap;row-gap:6px;min-height:52px;padding:10px 16px}.pagination .pg-nav{align-items:center;gap:6px;margin-left:auto;display:flex}.pagination .pg-at{font-variant-numeric:tabular-nums;margin-right:4px}@media (width<=640px){.table th,.table td,.pagination{padding-inline:12px}}.overlay{background:var(--scrim)}.overlay.is-drawer{justify-content:flex-end;padding:0}.dialog-head{border-bottom:1px solid var(--border-subtle);flex:none;align-items:flex-start;gap:12px;padding:16px 16px 14px 20px}.dialog-head .dialog-title{flex:auto;min-width:0}.dialog-head :is(h2,h3){overflow-wrap:anywhere;font-size:17px;line-height:1.3}.dialog-head .dialog-sub{color:var(--text-muted);margin:4px 0 0;font-size:13px;line-height:1.45}.dialog-close{flex:none;margin:-4px 0 0}.dialog-body{overscroll-behavior:contain;flex:auto;min-height:0;padding:16px 20px 20px;overflow-y:auto}.dialog-foot{border-top:1px solid var(--border-subtle);flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:8px;padding:12px 20px;display:flex}.dialog-foot .row{flex-wrap:wrap;justify-content:flex-end}.drawer-right{box-shadow:var(--shadow-elevated)}@media (width<=600px){.overlay.sheet .dialog{max-height:92dvh}.dialog-head{padding:14px 12px 12px 16px}.dialog-body{padding:16px}.dialog-foot{padding:12px 16px max(12px, env(safe-area-inset-bottom))}.overlay.sheet .dialog-foot>:is(.btn,.row),.overlay.sheet .dialog-foot .row>.btn{flex:auto}}.toast-wrap{bottom:max(20px, env(safe-area-inset-bottom));width:max-content;max-width:calc(100vw - 32px)}.toast{max-width:100%;line-height:1.4}
