@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-vietnamese-400-normal-Dpl4UHAZ.woff2)format("woff2"),url(/assets/barlow-vietnamese-400-normal-BFeobeCK.woff)format("woff");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:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-ext-400-normal-HxX4XjxC.woff2)format("woff2"),url(/assets/barlow-latin-ext-400-normal-CvBsJvxq.woff)format("woff");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:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-400-normal-qiz4-Cze.woff2)format("woff2"),url(/assets/barlow-latin-400-normal-fsAxiSwU.woff)format("woff");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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-vietnamese-500-normal-zTViEIzf.woff2)format("woff2"),url(/assets/barlow-vietnamese-500-normal-GNfB7rCE.woff)format("woff");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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-ext-500-normal-DOaysfXq.woff2)format("woff2"),url(/assets/barlow-latin-ext-500-normal-CJPcKP2Q.woff)format("woff");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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-500-normal-BPAOfeC8.woff2)format("woff2"),url(/assets/barlow-latin-500-normal-C1h8hMer.woff)format("woff");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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-vietnamese-600-normal-DcjprdFV.woff2)format("woff2"),url(/assets/barlow-vietnamese-600-normal-CA_GiK2e.woff)format("woff");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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-ext-600-normal-B8NK_A3D.woff2)format("woff2"),url(/assets/barlow-latin-ext-600-normal-DMVRjfRT.woff)format("woff");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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-600-normal-DILqtrty.woff2)format("woff2"),url(/assets/barlow-latin-600-normal-CNwfPWQD.woff)format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff)format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff)format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff)format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff)format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff)format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2)format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");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{--bg:#e4e7e5;--surface:#fff;--surface-2:#f1f3f2;--ink:#1c2124;--ink-2:#545d61;--line:#cdd2cf;--line-strong:#8f9894;--accent:#f2c200;--accent-press:#d6ab00;--accent-ink:#1c2124;--danger:#b42318;--danger-bg:#fbe8e6;--ok:#1d7446;--ok-bg:#e3f3ea;--focus:#2f6fdb;--scrim:#14181a8c;--radius-s:4px;--radius-m:8px;--font-ui:"Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Barlow Condensed", "Barlow", system-ui, sans-serif;--font-code:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--sidebar:236px;--tabbar:64px;--gutter:16px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#15181a;--surface:#1e2326;--surface-2:#262c2f;--ink:#e8ebe9;--ink-2:#9aa4a7;--line:#323a3d;--line-strong:#59635f;--accent:#f2c200;--accent-press:#ffd633;--accent-ink:#15181a;--danger:#ff8070;--danger-bg:#3b1e1a;--ok:#62d394;--ok-bg:#173325;--focus:#7aa7ff;--scrim:#000000a6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:400 16px/1.45 var(--font-ui);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0}h1,h2,h3,p{margin:0}h1{font:700 2.125rem/1.05 var(--font-display);letter-spacing:.005em;overflow-wrap:anywhere}h2{font:600 1.125rem/1.3 var(--font-ui)}h3{font:600 1rem/1.3 var(--font-ui)}a{color:inherit}img{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.code{font-family:var(--font-code);letter-spacing:0;overflow-wrap:anywhere;font-size:.875em}.muted{color:var(--ink-2)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.shell{min-height:100dvh}.sidebar{display:none}.main{padding:16px var(--gutter) calc(var(--tabbar) + 32px + env(safe-area-inset-bottom));max-width:1160px;margin:0 auto}.tabbar{z-index:20;height:calc(var(--tabbar) + env(safe-area-inset-bottom));padding:0 8px env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);align-items:end;display:grid;position:fixed;inset:auto 0 0}.tab{height:var(--tabbar);color:var(--ink-2);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.75rem;font-weight:500;text-decoration:none;display:flex}.tab[aria-current=page]{color:var(--ink);font-weight:600}.tab-scan{color:var(--accent-ink)}.tab-scan .tab-scan-mark{border-radius:var(--radius-m);background:var(--accent);width:56px;height:40px;box-shadow:0 0 0 4px var(--surface);place-items:center;margin-top:-14px;display:grid}.tab-scan[aria-current=page] .tab-scan-mark{background:var(--accent-press)}.tab-scan span:last-child{color:var(--ink)}@media (min-width:900px){.shell{grid-template-columns:var(--sidebar) 1fr;display:grid}.tabbar{display:none}.main{width:100%;padding:32px 40px 64px}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:24px;height:100dvh;padding:24px 16px;display:flex;position:sticky;top:0}h1{font-size:2.5rem}}.brand{font:700 1.5rem/1 var(--font-display);letter-spacing:.01em;align-items:center;gap:10px;padding:0 8px;text-decoration:none;display:flex}.brand-mark{flex:none;width:32px;height:32px}.nav{flex-direction:column;gap:2px;display:flex}.nav-link{border-radius:var(--radius-s);min-height:42px;color:var(--ink-2);align-items:center;gap:12px;padding:0 12px;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{background:var(--surface-2);color:var(--ink)}.nav-link[aria-current=page]{background:var(--surface-2);color:var(--ink);box-shadow:inset 3px 0 0 var(--accent);font-weight:600}.sidebar-scan{margin:0 4px}.sidebar-foot{border-top:1px solid var(--line);flex-direction:column;gap:8px;margin-top:auto;padding:16px 8px 0;display:flex}.sidebar-user{flex-direction:column;min-width:0;display:flex}.sidebar-user strong{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.sidebar-user span{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;overflow:hidden}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 16px;margin-bottom:20px;display:flex}.page-head-actions{flex-wrap:wrap;gap:8px;display:flex}.back-link{min-height:36px;color:var(--ink-2);align-items:center;gap:4px;margin-bottom:8px;font-weight:500;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--ink)}.sheet{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m)}.section{padding:20px}.section+.section{border-top:1px solid var(--line)}.section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.center-screen{place-items:center;min-height:60dvh;display:grid}.btn{border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--surface);min-height:44px;color:var(--ink);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:.9375rem;font-weight:600;line-height:1.1;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{flex:none;width:18px;height:18px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-press);border-color:var(--accent-press)}.btn-danger{color:var(--danger);border-color:currentColor}.btn-danger:hover{background:var(--danger-bg)}.btn-danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger-solid:hover{background:var(--danger);filter:brightness(.92)}.btn-ghost{background:0 0;border-color:#0000}.btn-block{width:100%}.btn-small{min-height:34px;padding:0 10px;font-size:.875rem}.icon-btn{border-radius:var(--radius-s);width:44px;height:44px;color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;flex:none;place-items:center;padding:0;display:inline-grid}.icon-btn:hover{background:var(--surface-2)}.icon-btn svg{width:20px;height:20px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{font-size:.9375rem;font-weight:600}.field-hint{color:var(--ink-2);font-size:.875rem}.input,.select,.textarea{border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--surface);width:100%;min-height:46px;padding:10px 12px;font-size:1rem}.textarea{resize:vertical;min-height:104px;line-height:1.5}.input::placeholder,.textarea::placeholder{color:var(--ink-2);opacity:.75}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline-offset:0}.input-code{font-family:var(--font-code);font-size:.9375rem}.input-group{gap:8px;display:flex}.input-group .input{flex:1}.form-grid{gap:18px;display:grid}@media (min-width:640px){.form-grid-2{grid-template-columns:1fr 1fr}.form-grid-3{grid-template-columns:repeat(3,1fr)}}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.alert{border-radius:var(--radius-s);background:var(--danger-bg);color:var(--danger);align-items:flex-start;gap:10px;padding:12px 14px;font-weight:500;display:flex}.alert svg{flex:none;width:18px;height:18px;margin-top:2px}.alert-ok{background:var(--ok-bg);color:var(--ok)}.segmented{border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--surface);padding:3px;display:inline-flex}.segmented button{min-height:38px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:2px;padding:0 14px;font-size:.9375rem;font-weight:600}.segmented button[aria-pressed=true]{background:var(--ink);color:var(--surface)}.segmented-block{display:flex}.segmented-block button{flex:1}.check{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:8px;min-height:38px;padding:0 12px;font-size:.9375rem;font-weight:500;display:inline-flex}.check[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--surface)}.auth{min-height:100dvh;padding:24px var(--gutter);place-items:center;display:grid}.auth-panel{width:100%;max-width:400px}.auth-panel .brand{margin-bottom:28px;padding:0}.auth-panel h1{margin-bottom:6px}.auth-panel .lede{color:var(--ink-2);margin-bottom:24px}.auth-foot{color:var(--ink-2);margin-top:20px;font-size:.9375rem}.toolbar{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.search{flex:320px;position:relative}.search svg{width:18px;height:18px;color:var(--ink-2);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search .input{padding-left:40px}.toolbar-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar-filters .select{width:auto;min-height:38px;padding:6px 10px;font-size:.9375rem}.list-meta{min-height:40px;color:var(--ink-2);justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:.9375rem;display:flex}.ledger{overflow:hidden}.ledger-head{display:none}.item-row{color:inherit;grid-template-columns:52px minmax(0,1fr) auto;grid-template-areas:"thumb main qty";align-items:center;gap:12px;padding:10px 14px;text-decoration:none;display:grid}.item-row+.item-row{border-top:1px solid var(--line)}.item-row:hover{background:var(--surface-2)}.item-row-select{grid-area:select;display:none}.selecting .item-row-select{display:grid}.selecting .item-row{cursor:pointer;grid-template-columns:auto 52px minmax(0,1fr) auto;grid-template-areas:"select thumb main qty"}.item-row-select input{width:22px;height:22px;accent-color:var(--ink)}.item-row .thumb{grid-area:thumb}.item-row-main{grid-area:main;min-width:0}.item-row-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.item-row-sub{color:var(--ink-2);flex-wrap:wrap;gap:2px 12px;font-size:.875rem;display:flex}.item-row-sku,.item-row-loc,.item-row-cat{display:none}.item-row-qty{text-align:right;white-space:nowrap;grid-area:qty}.qty-num{font:700 1.5rem/1 var(--font-display)}.qty-unit{color:var(--ink-2);margin-left:4px;font-size:.875rem}.is-low .qty-num{color:var(--danger)}.tag{background:var(--surface-2);height:22px;color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:0 8px;font-size:.8125rem;font-weight:600;display:inline-flex}.tag-low{background:var(--danger-bg);color:var(--danger)}@media (min-width:900px){.ledger-head,.item-row{grid-template-columns:44px minmax(0,2.4fr) minmax(0,1.1fr) minmax(0,1.1fr) minmax(0,1fr) 120px;grid-template-areas:"thumb main sku loc cat qty"}.selecting .ledger-head,.selecting .item-row{grid-template-columns:auto 44px minmax(0,2.4fr) minmax(0,1.1fr) minmax(0,1.1fr) minmax(0,1fr) 120px;grid-template-areas:"select thumb main sku loc cat qty"}.ledger-head{border-bottom:1px solid var(--line);color:var(--ink-2);gap:12px;padding:10px 14px;font-size:.875rem;font-weight:600;display:grid}.ledger-head .ledger-select{grid-area:select;width:22px;display:none}.selecting .ledger-head .ledger-select{display:block}.lh-item{grid-column:thumb-start/main-end}.lh-sku{grid-area:sku}.lh-loc{grid-area:loc}.lh-cat{grid-area:cat}.lh-qty{text-align:right;grid-area:qty}.item-row-sku,.item-row-loc,.item-row-cat{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.item-row-sku{grid-area:sku}.item-row-loc{grid-area:loc}.item-row-cat{color:var(--ink-2);grid-area:cat}.item-row-sub{display:none}}.thumb{aspect-ratio:1;border-radius:var(--radius-s);background:var(--surface-2);width:100%;color:var(--line-strong);place-items:center;display:grid;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%}.thumb svg{width:45%;height:45%}.empty{flex-direction:column;align-items:flex-start;gap:12px;padding:36px 24px;display:flex}.empty p{max-width:46ch;color:var(--ink-2)}.selection-bar{bottom:calc(var(--tabbar) + 12px + env(safe-area-inset-bottom));z-index:10;border-radius:var(--radius-m);background:var(--ink);color:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;padding:10px 10px 10px 16px;display:flex;position:sticky}.selection-bar .btn-ghost{color:inherit}.selection-bar .btn-ghost:hover{background:#ffffff1f}@media (min-width:900px){.selection-bar{bottom:16px}}.load-more{justify-content:center;padding:16px;display:flex}.detail{gap:16px;display:grid}.detail-side,.detail-main{display:contents}.detail-gallery{order:1}.detail-counter{order:2}.detail-facts{order:3}.detail-label{order:4}.detail-history{order:5}@media (min-width:900px){.detail{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start;gap:28px}.detail-side,.detail-main{flex-direction:column;gap:16px;display:flex}.detail-side{position:sticky;top:32px}}.detail-title{margin-bottom:4px}.detail-codes{color:var(--ink-2);flex-wrap:wrap;gap:4px 16px;display:flex}.counter{grid-template-columns:64px 1fr 64px;align-items:center;gap:12px;display:grid}.counter-btn{border-radius:var(--radius-m);background:var(--accent);height:64px;color:var(--accent-ink);cursor:pointer;touch-action:manipulation;border:0;place-items:center;display:grid}.counter-btn:hover{background:var(--accent-press)}.counter-btn:active{transform:translateY(1px)}.counter-btn:disabled{background:var(--surface-2);color:var(--line-strong);cursor:not-allowed}.counter-btn svg{stroke-width:2.75px;width:28px;height:28px}.counter-value{text-align:center}.counter-num{font:700 4.5rem/.9 var(--font-display);letter-spacing:-.01em;display:block}.counter-unit{color:var(--ink-2);font-weight:500}.counter.is-low .counter-num{color:var(--danger)}.counter-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:14px;display:flex}.facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;display:grid}.facts div{min-width:0}.facts dt{color:var(--ink-2);font-size:.875rem}.facts dd{overflow-wrap:anywhere;margin:2px 0 0;font-weight:500}.description{white-space:pre-wrap;overflow-wrap:anywhere}.history{margin:0;padding:0;list-style:none}.history li{grid-template-columns:64px 1fr auto;align-items:baseline;gap:12px;padding:10px 0;display:grid}.history li+li{border-top:1px solid var(--line)}.history-delta{font:700 1.25rem/1 var(--font-display)}.history-delta.up{color:var(--ok)}.history-delta.down{color:var(--danger)}.history-note{overflow-wrap:anywhere;min-width:0}.history-meta{color:var(--ink-2);font-size:.875rem;display:block}.history-after{color:var(--ink-2);text-align:right;white-space:nowrap;font-size:.875rem}.gallery-cover{aspect-ratio:4/3;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface-2);cursor:zoom-in;width:100%;padding:0;display:block;overflow:hidden}.gallery-cover img{object-fit:cover;width:100%;height:100%}.gallery-strip{grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:8px;margin-top:8px;display:grid}.gallery-strip button{border:1px solid var(--line);border-radius:var(--radius-s);cursor:pointer;background:0 0;padding:0}.gallery-empty{aspect-ratio:4/3;border:1px dashed var(--line-strong);border-radius:var(--radius-m);background:var(--surface);color:var(--ink-2);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:20px;display:flex}.gallery-empty>svg{width:36px;height:36px;color:var(--line-strong)}.photo-buttons{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.gallery-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.pending-photos{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;display:grid}.pending-photo{position:relative}.pending-photo .icon-btn{background:var(--surface);border-color:var(--line);border-radius:999px;width:30px;height:30px;position:absolute;top:4px;right:4px}.pending-photo .icon-btn svg{width:16px;height:16px}.viewer{flex-direction:column;gap:12px;display:flex}.viewer-image{border-radius:var(--radius-s);background:#0e1011;place-items:center;min-height:200px;max-height:70dvh;display:grid;overflow:hidden}.viewer-image img{object-fit:contain;max-height:70dvh}.viewer-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.label{color:#000;background:#fff;border:1.5px solid #000;border-radius:3px;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"qr text""barcode barcode";align-items:center;gap:8px 12px;width:100%;padding:12px;display:grid}.label-qr-only{grid-template-areas:"qr text"}.label-barcode-only{grid-template-columns:minmax(0,1fr);grid-template-areas:"text""barcode"}.label-qr{width:84px;height:84px;image-rendering:pixelated;grid-area:qr}.label-text{flex-direction:column;grid-area:text;gap:2px;min-width:0;display:flex}.label-name{font:700 1.125rem/1.1 var(--font-display);-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.label-sku{font:500 .8125rem/1.2 var(--font-code);overflow-wrap:anywhere}.label-loc{text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.label-barcode{grid-area:barcode;width:100%;height:64px;display:block}.label-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.scan-layout{gap:16px;display:grid}@media (min-width:900px){.scan-layout{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start}}.scanner{aspect-ratio:3/4;border-radius:var(--radius-m);color:#fff;background:#0e1011;width:100%;max-height:62dvh;position:relative;overflow:hidden}@media (min-width:640px){.scanner{aspect-ratio:4/3}}.scanner video{object-fit:cover;width:100%;height:100%}.scanner-frame{pointer-events:none;transition:transform .16s ease-out;position:absolute;inset:18% 12%}.scanner-frame:before,.scanner-frame:after,.scanner-frame span:before,.scanner-frame span:after{content:"";border:0 solid var(--accent);width:34px;height:34px;position:absolute}.scanner-frame:before{border-width:5px 0 0 5px;top:0;left:0}.scanner-frame:after{border-width:5px 5px 0 0;top:0;right:0}.scanner-frame span:before{border-width:0 0 5px 5px;bottom:0;left:0}.scanner-frame span:after{border-width:0 5px 5px 0;bottom:0;right:0}.scanner.is-hit .scanner-frame{transform:scale(.96)}.scanner.is-hit .scanner-frame:before,.scanner.is-hit .scanner-frame:after,.scanner.is-hit .scanner-frame span:before,.scanner.is-hit .scanner-frame span:after{border-color:#3ddc84}.scanner-controls{background:linear-gradient(#0000,#0000008c);justify-content:space-between;gap:8px;padding:12px;display:flex;position:absolute;inset:auto 0 0}.scanner-controls .icon-btn{color:#fff;background:#00000073;border-radius:999px}.scanner-controls .icon-btn[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.scanner-message{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:absolute;inset:0}.scanner-message p{color:#c9d0d2;max-width:34ch}.scanner-paused{background:#0000008c;place-items:center;display:grid;position:absolute;inset:0}.scan-result{padding:16px}.scan-result-item{color:inherit;grid-template-columns:56px 1fr;align-items:center;gap:12px;text-decoration:none;display:grid}.scan-log{margin:0;padding:0;list-style:none}.scan-log li{grid-template-columns:56px 1fr auto;align-items:center;gap:10px;padding:10px 16px;display:grid}.scan-log li+li{border-top:1px solid var(--line)}.scan-log a{color:inherit;font-weight:600;text-decoration:none}.scan-log .scan-log-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dialog{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface);width:min(560px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--ink);padding:0}.dialog-wide{width:min(880px,100vw - 24px)}.dialog::backdrop{background:var(--scrim)}.dialog-body{padding:20px}.dialog-head{justify-content:space-between;align-items:center;gap:12px;margin:-8px -8px 14px 0;display:flex}.dialog-head h2{font:700 1.5rem/1.1 var(--font-display)}@media (max-width:639px){.dialog{border-radius:var(--radius-m) var(--radius-m) 0 0;width:100vw;max-width:100vw;padding-bottom:env(safe-area-inset-bottom);margin:auto 0 0}}.toasts{inset:auto 0 calc(var(--tabbar) + 16px + env(safe-area-inset-bottom)) 0;z-index:50;pointer-events:none;flex-direction:column;align-items:center;gap:8px;padding:0 12px;display:flex;position:fixed}@media (min-width:900px){.toasts{bottom:24px;left:var(--sidebar)}}.toast{border-radius:var(--radius-m);background:var(--ink);max-width:520px;min-height:48px;color:var(--surface);pointer-events:auto;align-items:center;gap:12px;padding:8px 8px 8px 16px;font-weight:500;animation:.18s ease-out toast-in;display:flex}.toast-error{background:var(--danger);color:#fff}.toast .btn{min-height:34px;color:inherit;background:#ffffff29;border-color:#0000}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.spinner{border:3px solid var(--line);border-top-color:var(--ink);border-radius:50%;width:22px;height:22px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}.spinner{animation-duration:1.4s!important}}.member{grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 0;display:grid}.member+.member{border-top:1px solid var(--line)}.avatar{background:var(--surface-2);width:40px;height:40px;font:700 1.0625rem/1 var(--font-display);border-radius:50%;place-items:center;display:grid}.member-name{overflow-wrap:anywhere;font-weight:600}.member-meta{color:var(--ink-2);overflow-wrap:anywhere;font-size:.875rem}.team-grid{gap:20px;display:grid}@media (min-width:1000px){.team-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start}}.print-toolbar{z-index:5;padding:12px var(--gutter);background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex;position:sticky;top:0}.print-toolbar .field{min-width:140px}.print-toolbar .select,.print-toolbar .input{min-height:40px;padding:6px 10px}.print-toolbar-actions{gap:8px;margin-left:auto;display:flex}.print-area{padding:24px var(--gutter) 48px}.sheet-grid{grid-template-columns:repeat(auto-fill,minmax(62mm,1fr));gap:4mm;max-width:200mm;margin:0 auto;display:grid}.sheet-grid .label{break-inside:avoid}.roll{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.roll-label{background:#fff;display:flex;overflow:hidden}.roll-label .label{border:0;align-content:center;gap:1mm 2mm;height:100%;padding:2mm}.roll-label .label-qr{aspect-ratio:1;width:auto;height:100%;max-height:100%}.roll-label .label-barcode{height:auto;min-height:0}.roll-preview .roll-label{outline:1px dashed var(--line-strong)}@media print{@page{margin:10mm}body{background:#fff}.no-print{display:none!important}.print-area{padding:0}.sheet-grid{max-width:none}.roll{display:block}.roll-label{break-after:page;outline:0!important}.roll-label:last-child{break-after:auto}}
