:root{--bg:#ffffff;--surface:#ffffff;--sunk:#ffffff;--fg:#000000;--muted:#000000;--line:#000000;--accent:#000000;--accent-fg:#ffffff;--accent-strong:#333333;--ok:#1f7a46;--ok-soft:#dcf1e3;--warn:#9a6200;--warn-soft:#faefd6;--bad:#b8322a;--bad-soft:#f8e0dd;--info:#2c63c4;--info-soft:#e1ebfb;--radius:8px;--radius-sm:6px;--hover:#f2f2f2;--font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;color-scheme:light}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--fg);font:15px/1.55 var(--font)}a{color:inherit}h1,h2,h3{margin:0;line-height:1.2;text-wrap:balance}h1{font-size:1.7rem;font-weight:800;letter-spacing:-.01em}h2{font-size:1.25rem;font-weight:750}h3{font-size:1rem;font-weight:650}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.mono{font-family:var(--mono);font-size:.85em}.muted{color:var(--muted)}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wrap{max-width:1180px;margin:0 auto;padding:0 16px}.stack{display:grid;gap:16px}.row,.spread{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:var(--surface);padding:8px 14px;border-radius:var(--radius-sm);font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap}.btn:hover{background:var(--hover)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.btn.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn.danger{color:var(--bad)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.sm{padding:4px 10px;font-size:.85rem}.btn.block{width:100%}.field{display:grid;gap:4px;font-size:.82rem;font-weight:600;color:var(--muted)}.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-sm);padding:8px 10px;font-weight:400;color:var(--fg);min-width:0;width:100%}.check{display:flex;gap:8px;align-items:flex-start;font-size:.9rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.pad{padding:16px}.pill{display:inline-block;font:600 .72rem var(--mono);padding:2px 8px;border-radius:999px;white-space:nowrap}.p-ok{background:var(--ok-soft);color:var(--ok)}.p-warn{background:var(--warn-soft);color:var(--warn)}.p-bad{background:var(--bad-soft);color:var(--bad)}.p-info{background:var(--info-soft);color:var(--info)}.p-mute{background:var(--sunk);color:var(--muted)}.tag{display:inline-block;font:600 .75rem var(--mono);background:var(--accent);color:var(--accent-fg);padding:1px 6px;border-radius:2px}.alert{padding:10px 12px;border-radius:var(--radius-sm);font-size:.9rem}.alert.err{background:var(--bad-soft);color:var(--bad)}.alert.ok{background:var(--ok-soft);color:var(--ok)}.alert.warn{background:var(--warn-soft);color:var(--warn)}.tbl{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}td,th{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:middle}th{font:600 .7rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--sunk)}td.r,th.r{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:0}.shop-head{background:var(--bg);color:var(--fg);border-bottom:1px solid var(--line)}.shop-head .wrap{justify-content:space-between;gap:12px;padding-block:12px;flex-wrap:wrap}.brand,.shop-head .wrap{display:flex;align-items:center}.brand{gap:10px;font-weight:800;text-decoration:none;letter-spacing:.01em}.brand-mark{display:inline-grid;place-items:center;width:30px;height:30px;background:var(--accent);color:var(--accent-fg);border-radius:4px;font:800 .8rem var(--mono)}.shop-head nav{display:flex;gap:16px;align-items:center;font-weight:600}.shop-head nav a{text-decoration:none;opacity:.85}.shop-head nav a:hover{opacity:1}.date-bar{gap:12px;align-items:end}.cats,.date-bar{display:flex;flex-wrap:wrap}.cats{gap:6px}.cats a{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 12px;font-size:.88rem;text-decoration:none}.cats a[aria-current=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}.shop-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start}.products{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.prod{padding:14px;display:grid;gap:8px;align-content:start}.prod-thumb{aspect-ratio:4/3;max-width:100%;background:var(--sunk);border-radius:var(--radius-sm);display:grid;place-items:center;color:var(--muted);overflow:hidden}.prod-thumb img{width:100%;height:100%;object-fit:contain;background:#fff}.prod h3{font-size:.95rem;min-height:2.5em}.prod .pill{justify-self:start}.price{font-weight:750;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cart{position:sticky;top:16px;padding:16px;display:grid;gap:12px}.cart-line{display:flex;justify-content:space-between;gap:8px;font-size:.9rem;align-items:flex-start}.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm)}.qty button{border:0;background:none;width:28px;height:28px;cursor:pointer}.qty span{min-width:22px;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.totals{display:grid;gap:4px;font-size:.9rem;border-top:1px solid var(--line);padding-top:10px}.totals div{display:flex;justify-content:space-between;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.totals .grand{font-weight:800;font-size:1.05rem;padding-top:4px}.note{font-size:.82rem}.note,.shop-foot{color:var(--muted)}.shop-foot{border-top:1px solid var(--line);margin-top:48px;padding-block:24px;font-size:.85rem}.checkout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;align-items:start}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.admin{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.side{background:var(--bg);color:var(--fg);border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;gap:4px}.side .brand{margin-bottom:18px;font-size:.95rem}.side a.nav{display:block;padding:8px 10px;border-radius:var(--radius-sm);text-decoration:none;font-weight:600;opacity:.8}.side a.nav:hover{opacity:1;background:var(--hover)}.side .who{margin-top:auto;font-size:.82rem;opacity:.75;display:grid;gap:6px}.side .who button{background:none;border:1px solid;color:inherit;border-radius:var(--radius-sm);padding:4px 8px;cursor:pointer;justify-self:start}.admin-main{padding:24px;display:grid;gap:20px;align-content:start;min-width:0}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.tile{padding:14px;display:grid;gap:2px}.tile b{font-size:1.7rem;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tile span{font-size:.85rem;color:var(--muted)}.tile.alarm{border-color:var(--bad)}.tile.alarm b{color:var(--bad)}.cal{overflow-x:auto}.cal-grid{display:grid;min-width:960px;font-size:.78rem}.cal-grid .hd{font:600 .68rem var(--mono);color:var(--muted);padding:6px 2px;text-align:center;border-bottom:1px solid var(--line);background:var(--sunk)}.cal-grid .hd.today{color:var(--accent-strong)}.cal-grid .rl{padding:6px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-grid .cell,.cal-grid .rl{border-bottom:1px solid var(--line)}.cal-grid .cell{border-left:1px solid var(--line);position:relative;min-height:32px}.cal-grid .cell.today{background:color-mix(in srgb,var(--accent) 14%,transparent)}.bar{position:absolute;inset:5px 0;font:600 .66rem var(--mono);padding:3px 6px;overflow:hidden;white-space:nowrap;text-decoration:none;color:var(--fg)}.bar.CONFIRMED,.bar.PENDING_PAYMENT{background:var(--info-soft)}.bar.PREPPED{background:var(--warn-soft)}.bar.OUT{background:var(--ok-soft)}.bar.RETURNED{background:var(--sunk)}.bar.overdue{background:var(--bad-soft)}.bar.start{border-left:3px solid var(--muted)}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login .card{width:100%;max-width:380px;padding:24px;display:grid;gap:14px}.labels{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.label{border:1px dashed var(--line);background:#fff;color:#111;padding:10px;display:grid;justify-items:center;gap:4px;border-radius:4px;page-break-inside:avoid;break-inside:avoid}.label svg{width:120px;height:120px}.label b{font:700 1rem var(--mono)}.label small{font-size:.7rem;text-align:center;color:#444}@media print{.no-print,.side{display:none!important}.admin{display:block}.admin-main{padding:0}body{background:#fff}.labels{grid-template-columns:repeat(4,1fr)}}.scan{max-width:520px;margin:0 auto;padding:0 16px;padding-block:12px 40px;display:grid;gap:12px}.scan-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.viewer{position:relative;aspect-ratio:4/3;max-width:100%;background:#000;border-radius:12px;overflow:hidden}.viewer video{width:100%;height:100%;object-fit:cover;display:block}.viewer .frame{position:absolute;inset:20% 26%;border:2px solid var(--accent);border-radius:10px;pointer-events:none}.viewer .hint{position:absolute;left:0;right:0;bottom:10px;text-align:center;color:#ddd;font-size:.85rem}.progress{height:6px;background:var(--sunk);border-radius:3px;overflow:hidden}.progress i{display:block;height:100%;background:var(--ok)}.scan-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);font-size:.9rem}.scan-item.done{border-color:var(--ok);background:var(--ok-soft)}.scan-item.missing{border-color:var(--bad);background:var(--bad-soft)}.manual{display:flex;gap:6px}.manual input{flex:1 1;min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-sm);padding:8px 10px;font-family:var(--mono);text-transform:uppercase}.manual input::placeholder{text-transform:none;font-family:var(--font)}@media (max-width:900px){.checkout,.shop-grid{grid-template-columns:1fr}.cart{position:static}.admin{grid-template-columns:1fr}.side{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px}.side .brand{margin:0 12px 0 0}.side .who{margin:0 0 0 auto;display:flex;align-items:center}.admin-main{padding:16px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.theme-edit{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:20px;align-items:start}.swatch-row{display:grid;grid-template-columns:44px 1fr 92px;gap:10px;align-items:center}.swatch-row input[type=color]{width:44px;height:34px;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:none;cursor:pointer}.swatch-row input[type=text]{font-family:var(--mono);text-transform:lowercase}.swatch-row b{display:block;font-size:.88rem}.swatch-row small{color:var(--muted);font-size:.75rem}.presets{display:flex;gap:8px;flex-wrap:wrap}.preview{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.preview-inner{background:var(--bg);color:var(--fg);font-family:var(--font);padding:16px;display:grid;gap:14px}@media (max-width:860px){.theme-edit{grid-template-columns:1fr}}.prod-link{display:grid;gap:8px;text-decoration:none;color:inherit}.prod-link:hover h3{text-decoration:underline}.crumbs{display:flex;gap:8px;font-size:.88rem;color:var(--muted)}.crumbs a{text-decoration:none}.crumbs a:hover{text-decoration:underline}.item{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;align-items:start}.gallery{display:grid;gap:10px}.gallery-main{aspect-ratio:1/1;border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden;display:grid;place-items:center}.gallery-main img{width:100%;height:100%;object-fit:contain}.gallery-thumbs{display:flex;gap:8px;flex-wrap:wrap}.gallery-thumbs button{width:72px;height:72px;padding:4px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;cursor:pointer;opacity:.6}.gallery-thumbs button:hover,.gallery-thumbs button[aria-current=true]{opacity:1;outline:2px solid var(--fg);outline-offset:-2px}.gallery-thumbs img{width:100%;height:100%;object-fit:contain}.price-big{font-size:1.6rem;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.date-bar.compact{gap:8px}.avail-box{border:1px solid var(--line);border-radius:var(--radius);padding:14px;display:grid;gap:10px}.avail-box .btn{justify-self:start;padding:10px 22px;font-size:1rem}.specs{margin:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.specs div{display:grid;grid-template-columns:minmax(120px,34%) 1fr;gap:12px;padding:9px 14px;border-top:1px solid var(--line)}.specs div:first-child{border-top:0}.specs dt{font-weight:650}.specs dd{margin:0}@media (max-width:860px){.item{grid-template-columns:1fr}}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.photo-tile{margin:0;border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px;display:grid;gap:8px}.photo-tile img{width:100%;aspect-ratio:1/1;object-fit:contain;background:#fff}.field textarea{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-sm);padding:8px 10px;font-weight:400;color:var(--fg);width:100%;resize:vertical}