@font-face{font-family:Tenor Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d076d52c211703f9-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Tenor Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/2e18b7ef1681887e-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Tenor Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/a0b90fb4308ee44f-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Tenor Sans Fallback;src:local("Arial");ascent-override:84.22%;descent-override:22.89%;line-gap-override:0.00%;size-adjust:109.24%}.__className_0e8206{font-family:Tenor Sans,Tenor Sans Fallback;font-weight:400;font-style:normal}.__variable_0e8206{--font-head:"Tenor Sans","Tenor Sans Fallback"}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_52ad5f{font-family:Inter,Inter Fallback;font-style:normal}.__variable_52ad5f{--font-body:"Inter","Inter Fallback"}:root{--bg:#fafaf8;--surface:#fff;--surface-translucent:hsla(0,0%,100%,.9);--surface-sunken:#efede6;--border:#dddbd2;--border-hover:#b9c4d6;--text:#1a1a18;--text-muted:#6e6a62;--accent:#1f3350;--accent-hover:#254068;--accent-active:#132036;--accent-scan-tint:#7b9bcb;--accent-contrast:#fff;--stock-ok:#5b6b4f;--stock-low:#14233a;--stock-out:#707379;--danger:#c03430;--overlay:rgba(24,24,22,.45);--scrim-camera:#141210;--grad-hero:linear-gradient(165deg,#f8f9f6,#eef1f1 45%,#e7edf3);--grad-accent:linear-gradient(180deg,#27436e,#1f3350);--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--radius-xl:32px;--radius-full:999px;--shadow-sm:0 1px 2px rgba(20,20,18,.06);--shadow-md:0 4px 16px rgba(20,20,18,.08);--shadow-lg:0 12px 32px rgba(20,20,18,.14);--shadow-focus:0 0 0 3px rgba(31,51,80,.32);--shadow-accent:0 6px 18px rgba(31,51,80,.4);--ease:cubic-bezier(0.22,1,0.36,1);--dur-fast:150ms;--dur-base:220ms;--dur-slow:320ms;--scan-cam-grad-a:#1c1815;--scan-cam-grad-b:#0e0c0a;--scan-glass:hsla(0,0%,100%,.12);--scan-glass-hover:hsla(0,0%,100%,.2);--scan-glass-border:hsla(0,0%,100%,.18);--scan-frame-line:hsla(0,0%,100%,.85);--scan-hint:hsla(0,0%,100%,.85);--scan-topbar-scrim:rgba(0,0,0,.55);--scan-scanline-glow:hsla(0,0%,100%,.05);--scan-grid-line:hsla(0,0%,100%,.03);--shadow-sheet:0 -12px 32px rgba(0,0,0,.28);--shadow-scan-fab:0 6px 18px rgba(31,51,80,.4)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body),-apple-system,"SF Pro Text","Segoe UI",Roboto,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100dvh;display:flex;flex-direction:column}.font-head,h1,h2,h3{font-family:var(--font-head),-apple-system,"SF Pro Display","Segoe UI",Roboto,sans-serif;font-weight:400;margin:0}button{font-family:inherit;cursor:pointer}a{color:inherit;text-decoration:none}:focus-visible{outline:none;box-shadow:var(--shadow-focus)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}::view-transition-group(*),::view-transition-new(*),::view-transition-old(*){animation:none!important}}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:var(--bg);padding:16px 20px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font-weight:400;font-size:1.375rem;letter-spacing:.08em;text-transform:uppercase}.topbar-right{display:flex;align-items:center;gap:12px}.topbar-user{font-size:var(--text-sm);font-weight:600;color:var(--text-muted)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-full);background:var(--surface);border:1px solid var(--border);color:var(--text);transition:background var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.icon-btn:hover{background:var(--surface-sunken)}.icon-btn:active{transform:scale(.96)}.icon-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.icon-btn:disabled{opacity:.4;cursor:default}.icon-btn:disabled:hover{background:var(--surface)}.logout-label,.topbar-nav{display:none}@media (min-width:900px){.topbar-nav{display:flex;align-items:center;gap:6px;margin-left:24px;margin-right:auto}.topbar-link{font-size:var(--text-sm);font-weight:600;color:var(--text-muted);padding:8px 14px;border-radius:var(--radius-full);transition:color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.topbar-link:hover{color:var(--text);background:var(--surface)}.topbar-link.active{color:var(--text);background:var(--surface-sunken)}.logout-btn{width:auto;height:40px;padding:0 16px;gap:8px}.logout-label{display:inline;font-size:var(--text-sm);font-weight:600}}.search-field{flex:1 1;display:flex;align-items:center;gap:10px;background:var(--surface-sunken);border:1px solid transparent;border-radius:var(--radius-md);padding:0 8px 0 16px;height:52px;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.search-field:focus-within{border-color:var(--accent);box-shadow:var(--shadow-focus);background:var(--surface)}.search-field svg{flex:none;color:var(--text-muted)}.search-field input{border:none;background:transparent;outline:none;font:inherit;font-size:1.125rem;color:var(--text);width:100%}.search-field input::placeholder{color:var(--text-muted);opacity:1}.search-clear{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;background:transparent;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer}.search-clear:hover{color:var(--text);background:var(--surface)}.chip-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.chip-row::-webkit-scrollbar{display:none}.chip{flex:none;padding:10px 16px;border-radius:var(--radius-full);background:var(--surface);border:1px solid var(--border);font-size:.8125rem;font-weight:600;color:var(--text-muted);transition:all var(--dur-fast) var(--ease)}.chip:hover{color:var(--text)}.chip.active,.chip:hover{border-color:var(--accent)}.chip.active{background:var(--accent);color:var(--accent-contrast)}.chip-applied{display:inline-flex;align-items:center;gap:6px}.grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:16px;gap:16px;margin-top:20px}@media (min-width:720px){.grid{grid-template-columns:repeat(3,1fr);gap:20px}}@media (min-width:1080px){.grid{grid-template-columns:repeat(4,1fr);gap:24px}}.card{background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);display:flex;flex-direction:column;transition:transform var(--dur-base) var(--ease),box-shadow var(--dur-base) var(--ease),border-color var(--dur-base) var(--ease);animation:rise var(--dur-slow) var(--ease) backwards;cursor:pointer}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--border-hover)}.card:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.grid .card:first-child{animation-delay:0s}.grid .card:nth-child(2){animation-delay:40ms}.grid .card:nth-child(3){animation-delay:80ms}.grid .card:nth-child(4){animation-delay:.12s}.grid .card:nth-child(5){animation-delay:.16s}.grid .card:nth-child(6){animation-delay:.2s}.grid .card:nth-child(7){animation-delay:.24s}.grid .card:nth-child(8){animation-delay:.28s}.card-photo{position:relative;aspect-ratio:1/1;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:hidden}.card-photo svg{width:56%;height:56%;color:var(--text);opacity:.78;transition:transform var(--dur-base) var(--ease)}.card:hover .card-photo svg{transform:scale(1.04)}.card-badges{position:absolute;top:10px;left:10px;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.card-cat{font-size:.6875rem;font-weight:600;color:var(--text-muted);letter-spacing:.02em}.badge-stock{font-size:.6875rem;font-weight:700;padding:5px 10px;border-radius:var(--radius-full);letter-spacing:.01em;color:var(--accent-contrast)}.badge-stock.ok{background:var(--stock-ok)}.badge-stock.low{background:var(--stock-low)}.badge-stock.out{background:var(--stock-out)}.card-body{padding:14px 14px 16px;display:flex;flex-direction:column;gap:4px}.card-name{font-size:.9375rem;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-price{font-weight:700;font-size:1.0625rem;margin-top:2px}.card-price .cur,.price .cur{font-size:.75em;font-weight:600;color:var(--text-muted);margin-left:2px}.card-old-price,.old-price{color:var(--text-muted);font-weight:600;font-size:.8em;margin-left:8px;text-decoration:line-through}.badge-discount{background:var(--danger);color:#fff;font-weight:800;font-size:.8125rem;border-radius:999px;padding:3px 10px}.badge-discount.inline{margin-left:10px;font-size:.7em;vertical-align:middle}.blur-wrap{position:absolute;inset:0;overflow:hidden}.blur-canvas,.blur-img{position:absolute;inset:0;width:100%;height:100%}.blur-img{object-fit:cover;opacity:0;transition:opacity var(--dur-base) var(--ease)}.blur-img.is-loaded{opacity:1}.photo-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}@media (prefers-reduced-motion:reduce){.blur-img{transition:none}}.skeleton .card-photo,.skeleton .sk-line{background:linear-gradient(100deg,var(--surface-sunken) 30%,var(--surface) 50%,var(--surface-sunken) 70%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}.skeleton{animation:none;cursor:default}.skeleton .card-photo svg{display:none}.sk-line{height:12px;border-radius:6px}.sk-line.w60{width:60%}.sk-line.w40{width:40%;margin-top:8px}@media (prefers-reduced-motion:reduce){.card,.sk-line,.skeleton .card-photo{animation:none!important}}.filter-btn{display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 18px;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);font-weight:600;font-size:.9375rem;color:var(--text);white-space:nowrap;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.filter-btn:hover{background:var(--surface-sunken);border-color:var(--accent)}.filter-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.filter-group{margin-bottom:20px}.filter-group .label{font-size:.8125rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px;display:block}.filter-options{flex-wrap:wrap}.filter-options,.price-range{display:flex;gap:8px}.price-range input{flex:1 1;height:44px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-sunken);padding:0 12px;font:inherit;font-size:.9375rem;color:var(--text);min-width:0}.price-range input:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus);background:var(--surface)}.price-range input::placeholder{color:var(--text-muted);opacity:1}.filter-reset{width:100%;margin-top:10px}.filter-apply{width:100%;height:52px;margin-top:4px}.drawer-overlay{position:fixed;inset:0;background:var(--overlay);z-index:40}.drawer-overlay.open{animation:fadeIn var(--dur-base) var(--ease)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.drawer{position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:22px 20px calc(24px + env(safe-area-inset-bottom));z-index:41;box-shadow:var(--shadow-lg);max-height:82vh;overflow-y:auto}.drawer.open{animation:slideUp var(--dur-slow) var(--ease)}.drawer h2{font-size:1.125rem;margin-bottom:16px}@media (min-width:900px){.drawer{top:0;bottom:0;left:auto;right:0;width:400px;max-height:none;border-radius:var(--radius-xl) 0 0 var(--radius-xl)}.drawer.open{animation:slideInRight var(--dur-slow) var(--ease)}}@keyframes slideInRight{0%{transform:translateX(100%)}to{transform:none}}@media (prefers-reduced-motion:reduce){.drawer.open{animation:none}}.catalog{padding-top:4px}.catalog-hero{background:var(--grad-hero);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 20px 22px}.catalog-hero h1{font-size:1.75rem;margin-bottom:12px}@media (max-width:640px){.catalog-hero{padding:16px}}.catalog-body{margin-top:16px}.catalog-results{min-width:0}.results-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.sort-select{justify-content:flex-end}.applied-filters{margin-bottom:12px}.pagination{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:24px}.page-btn{min-width:44px;height:44px;padding:0 12px;border-radius:var(--radius-full);background:var(--surface);border:1px solid var(--border);font-size:.875rem;font-weight:600;color:var(--text);transition:all var(--dur-fast) var(--ease)}.page-btn.active,.page-btn:hover:not(:disabled){border-color:var(--accent)}.page-btn.active{background:var(--accent);color:var(--accent-contrast)}.page-btn:disabled{opacity:.4;cursor:default}.btn-primary{height:52px;border-radius:var(--radius-md);border:none;font-weight:700;font-size:.9375rem;padding:0 20px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--grad-accent);color:var(--accent-contrast);transition:transform var(--dur-fast) var(--ease),filter var(--dur-fast) var(--ease)}.btn-primary:hover{filter:brightness(1.08)}.btn-primary:active{background:var(--accent-active);filter:none;transform:scale(.97)}.btn-primary:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.btn-primary:disabled{opacity:.6;cursor:default}.btn-ghost{height:52px;border-radius:var(--radius-md);font-weight:700;font-size:.9375rem;padding:0 20px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--surface);color:var(--text);border:1px solid var(--border);transition:transform var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.btn-ghost:hover{background:var(--surface-sunken)}.btn-ghost:active{transform:scale(.97)}.btn-ghost:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.login-card{display:flex;flex-direction:column;gap:var(--space-4);width:100%;max-width:360px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-6) var(--space-5)}.login-card h1{font-size:var(--text-2xl)}.login-card label{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--text-muted)}.login-card input{height:48px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--surface-sunken);padding:0 var(--space-4);font:inherit;font-size:var(--text-base);color:var(--text);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.login-card input:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus);background:var(--surface)}.login-error{margin:0;font-size:var(--text-sm);color:var(--stock-low)}.app-main{width:100%;max-width:1280px;margin:0 auto;padding:0 20px 96px;flex:1 0 auto}.bottom-nav{position:-webkit-sticky;position:sticky;bottom:0;left:0;right:0;z-index:30;background:var(--surface);border-top:1px solid var(--border);min-height:64px;justify-content:space-around;padding:10px 12px calc(10px + env(safe-area-inset-bottom));color:var(--text)}.bottom-nav,.nav-item{display:flex;align-items:center}.nav-item{flex-direction:column;gap:4px;font-size:.6875rem;font-weight:600;color:var(--text-muted);padding:4px 14px;border-radius:var(--radius-md);background:none;border:none;transition:color var(--dur-fast) var(--ease)}.nav-item svg{width:22px;height:22px}.nav-item.active{color:var(--text)}.nav-scan{width:60px;height:60px;border-radius:var(--radius-full);background:var(--accent);color:var(--accent-contrast);display:flex;align-items:center;justify-content:center;margin-top:-28px;box-shadow:var(--shadow-accent);border:4px solid var(--surface);transition:transform var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.nav-scan:hover{transform:scale(1.04);background:var(--accent-hover)}.nav-scan:active{background:var(--accent-active)}.nav-scan svg{width:26px;height:26px}@media (min-width:900px){.bottom-nav{display:none}}.crumb{font-size:.875rem;color:var(--text-muted)}.crumb b{color:var(--text);font-weight:600}.wrap{max-width:1100px;margin:0 auto;padding:4px 20px 80px}.layout{display:flex;flex-direction:column;gap:28px}@media (min-width:900px){.layout{flex-direction:row;gap:40px;align-items:flex-start}.gallery-col{flex:1.1 1;min-width:0}.info-col{flex:1 1;min-width:0;position:-webkit-sticky;position:sticky;top:96px}}.gallery-main{position:relative;aspect-ratio:4/5;background:var(--grad-hero);border:1px solid var(--border);border-radius:var(--radius-xl);overflow:hidden;animation:fadeUp var(--dur-slow) var(--ease) backwards}.thumbs{display:flex;gap:10px;margin-top:12px}.thumb{position:relative;width:68px;height:68px;border-radius:var(--radius-md);overflow:hidden;background:var(--bg);border:1.5px solid var(--border);transition:border-color var(--dur-fast) var(--ease);flex:none;padding:0}.thumb.active{border-color:var(--accent)}.thumb:hover{border-color:var(--text-muted)}.gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface-translucent);display:flex;align-items:center;justify-content:center;font-size:1.4rem;line-height:1;color:var(--text);cursor:pointer;z-index:1;transition:background var(--dur-fast) var(--ease)}.gallery-nav:hover{background:var(--surface)}.gallery-nav:focus-visible{box-shadow:var(--shadow-focus);outline:none}.gallery-nav.prev{left:12px}.gallery-nav.next{right:12px}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.gallery-main{animation:none}}.code-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.code{font-family:var(--font-body);letter-spacing:.06em;background:var(--surface-sunken);border-radius:var(--radius-sm)}.badge-cat-inline,.code{font-size:.75rem;font-weight:700;color:var(--text-muted);padding:4px 10px}.badge-cat-inline{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full)}h1.name{font-size:1.875rem;font-weight:400;line-height:1.25}.price{font-size:1.75rem;font-weight:800;color:var(--accent);margin-top:10px}.section{margin-top:28px}.section-title{font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:12px}.attrs{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px 16px;gap:12px 16px}.attr{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px}.attr .k{font-size:.75rem;color:var(--text-muted);margin-bottom:2px}.attr .v{font-size:.9375rem;font-weight:600}.stock-list{gap:10px}.stock-list,.stock-row{display:flex;flex-direction:column}.stock-row{gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px}.stock-line{display:flex;align-items:center;justify-content:space-between;gap:10px}.stock-contacts{display:flex;gap:10px;flex-wrap:wrap}.stock-call,.stock-route{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:var(--radius-md);font-size:1rem;font-weight:600;border:1px solid var(--border)}.stock-call{background:var(--accent);color:#fff;border-color:transparent}.stock-route{background:var(--surface-sunken);color:var(--text)}.stock-row .shop{display:flex;align-items:center;gap:10px;font-weight:600;font-size:.9375rem}.stock-dot{width:9px;height:9px;border-radius:50%}.stock-dot.ok{background:var(--stock-ok)}.stock-dot.low{background:var(--stock-low)}.stock-dot.out{background:var(--stock-out)}.stock-qty{font-weight:800;font-size:1.0625rem}.stock-qty.low{color:var(--stock-low)}.similar-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:16px;gap:16px}@media (min-width:640px){.similar-grid{grid-template-columns:repeat(4,1fr)}}.sim-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:transform var(--dur-base) var(--ease),box-shadow var(--dur-base) var(--ease);display:block}.sim-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.sim-photo{position:relative;aspect-ratio:1/1;background:var(--bg)}.sim-body{padding:10px 12px 12px}.sim-name{font-size:.8125rem;font-weight:600;line-height:1.3;display:block}.sim-price{font-weight:800;font-size:.875rem;margin-top:4px;display:block}@media (prefers-reduced-motion:reduce){.sim-card{transition:none}}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);text-align:center;color:var(--text-muted)}.btn-reset-search{min-height:44px;padding:0 20px;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-weight:600}.btn-reset-search,.fav-btn{display:inline-flex;align-items:center}.fav-btn{justify-content:center;width:44px;height:44px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:999px}.fav-btn.active{color:#e0245e}.card-fav{position:absolute;top:6px;right:6px;z-index:3;width:44px;height:44px;background:hsla(0,0%,100%,.86);box-shadow:var(--shadow-sm,0 1px 3px rgba(0,0,0,.15))}.product-fav{margin-left:auto}.favorites-page h1{font-family:var(--font-head);font-size:1.75rem;margin-bottom:var(--space-4)}.hp-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.reserve-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;width:100%;margin-top:12px;padding:0 20px;border:1px solid var(--accent);background:var(--surface);color:var(--accent);border-radius:var(--radius-md);font-size:1.0625rem;font-weight:700;cursor:pointer}.reserve-form{display:flex;flex-direction:column;gap:10px;margin-top:12px}.reserve-title{font-weight:700}.reserve-form input,.reserve-form textarea{min-height:48px;padding:12px 14px;font-size:1rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.reserve-form textarea{min-height:64px}.reserve-actions{display:flex;gap:10px}.reserve-actions .btn-primary{min-height:48px}.reserve-done{margin-top:12px;padding:14px 16px;background:#eafaf0;color:#14663a;border-radius:var(--radius-md);font-weight:600}.admin-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;margin-left:6px;padding:0 6px;background:var(--danger);color:#fff;font-size:.75rem;font-weight:800;border-radius:999px}.reservations{gap:12px}.reservation-card,.reservations{display:flex;flex-direction:column}.reservation-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;gap:8px}.reservation-head{display:flex;align-items:center;justify-content:space-between}.reservation-status{font-size:.8125rem;font-weight:700;border-radius:999px;padding:2px 10px;background:var(--surface-sunken)}.reservation-status.status-new{background:#eef4ff;color:#1f3350}.reservation-date{color:var(--text-muted);font-size:.875rem}.reservation-product{font-weight:600}.reservation-comment{color:var(--text-muted)}.reservation-actions{display:flex;gap:8px;flex-wrap:wrap}.reservation-actions .btn-ghost{min-height:44px}.contacts-page h1{font-family:var(--font-head);font-size:1.75rem;margin-bottom:var(--space-4)}.contacts-grid{display:grid;grid-gap:var(--space-4);gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.contact-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px;display:flex;flex-direction:column;gap:10px}.contact-card h2{font-size:1.5rem}.contact-address{font-size:1rem}.contact-schedule{color:var(--text-muted);font-size:1rem}.contact-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}.text-muted{color:var(--text-muted)}.admin-nav{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);overflow-x:auto}.admin-tab{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;color:var(--text-muted);white-space:nowrap}.admin-tab:hover{background:var(--surface-sunken);color:var(--text)}.admin-tab.active{background:var(--accent);color:var(--accent-contrast)}.admin-body{padding:var(--space-5) var(--space-4) var(--space-8);max-width:1100px;margin:0 auto}.admin-product-page h1,.admin-products-page h1,.admin-toolbar{margin-bottom:var(--space-5)}.admin-toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.admin-search{flex:1 1;min-width:200px;padding:var(--space-2) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface-sunken);font-size:var(--text-sm)}.admin-search:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus);background:var(--surface)}.admin-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.admin-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.admin-table th{text-align:left;padding:var(--space-3) var(--space-3);color:var(--text-muted);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.admin-table td,.admin-table th{border-bottom:1px solid var(--border)}.admin-table td{padding:var(--space-2) var(--space-3);vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-thumb{position:relative;width:44px;height:44px;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-sunken)}.photo-warn{color:var(--stock-low)}.status-pill{display:inline-flex;align-items:center;padding:2px var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700;color:var(--accent-contrast)}.status-pill.draft{background:var(--stock-low)}.status-pill.active{background:var(--stock-ok)}.status-pill.hidden{background:var(--stock-out)}.product-form{gap:var(--space-5);max-width:640px}.form-field,.product-form{display:flex;flex-direction:column}.form-field{gap:var(--space-2)}.form-field>span:first-child{font-size:var(--text-sm);font-weight:600;color:var(--text-muted)}.form-field input[type=number],.form-field input[type=text],.form-field select,.form-field textarea{padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-sunken);font-size:var(--text-base);font-family:inherit}.form-field input:focus-visible,.form-field select:focus-visible,.form-field textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus);background:var(--surface)}.form-error{color:var(--stock-low);font-weight:600}.form-success{color:var(--stock-ok);font-weight:600}.attr-fields,.stock-fields{display:flex;flex-direction:column;gap:var(--space-3)}.attr-field{display:flex;flex-direction:column;gap:var(--space-2)}.attr-field>span:first-child{font-size:var(--text-sm);color:var(--text-muted)}.attr-field input,.attr-field select{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-sunken)}.dims-row{display:flex;gap:var(--space-2)}.dims-row input{width:0;flex:1 1}.stock-field-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.stock-field-row input{width:96px;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-sunken)}.tag-field{flex-direction:column}.tag-chips,.tag-field{display:flex;gap:var(--space-2)}.tag-chips{flex-wrap:wrap}.tag-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2) 2px var(--space-3);border-radius:var(--radius-full);background:var(--surface-sunken);font-size:var(--text-sm)}.tag-chip button{display:inline-flex;padding:2px;color:var(--text-muted);background:none;border:none}.tag-chip button:hover{color:var(--text)}.tag-field>input{padding:var(--space-2) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-sunken)}.tag-field>input:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus);background:var(--surface)}.photo-manager{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-4)}.photo-upload-btn{position:relative;display:inline-flex;overflow:hidden}.photo-upload-btn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.photo-dupe-note,.photo-empty-note{color:var(--text-muted);font-size:var(--text-sm)}.photo-dupe-note a{color:var(--accent);font-weight:600;text-decoration:underline}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:var(--space-4);gap:var(--space-4);list-style:none;padding:0;margin:0}.photo-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.photo-card-thumb{position:relative;aspect-ratio:4/5;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-sunken)}.photo-card-status{position:absolute;left:var(--space-2);top:var(--space-2);padding:2px var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700;color:var(--accent-contrast);background:var(--stock-ok)}.photo-card-status.status-pending,.photo-card-status.status-processing{background:var(--stock-low)}.photo-card-status.status-failed{background:var(--stock-out)}.photo-card-status.status-original_kept{background:var(--accent)}.photo-toggle{align-self:flex-start;padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.photo-card-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.photo-card-actions .icon-btn{width:36px;height:36px}.photo-delete{color:var(--stock-low)}.admin-section{margin-bottom:var(--space-8)}.admin-section h2{margin-bottom:var(--space-4)}.ref-group{margin-bottom:var(--space-5)}.ref-group-title{font-family:var(--font-body),-apple-system,"SF Pro Text","Segoe UI",Roboto,sans-serif;font-size:var(--text-sm);font-weight:600;color:var(--text-muted);margin-bottom:var(--space-2)}.ref-editor{display:flex;flex-direction:column;gap:var(--space-4)}.ref-indent td:first-child{padding-left:var(--space-6);color:var(--text-muted)}.ref-actions{display:flex;gap:var(--space-2);justify-content:flex-end;white-space:nowrap}.ref-delete{color:var(--stock-low)}.ref-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:var(--space-4);gap:var(--space-4);align-items:end;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.ref-form-actions{display:flex;gap:var(--space-3);align-items:center;grid-column:1/-1}.form-field-checkbox{flex-direction:row;align-items:center;gap:var(--space-2)}.form-field-checkbox input{width:auto}.ref-toolbar{display:flex;justify-content:flex-end}.modal-overlay{position:fixed;inset:0;background:var(--overlay);z-index:50;display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:fadeIn var(--dur-base) var(--ease)}.modal{width:100%;max-width:560px;max-height:90vh;overflow-y:auto;overscroll-behavior:contain;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-5)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.modal-head h3{font-size:1.125rem}.modal-close{width:44px;height:44px;border:none;background:none;font-size:1.5rem;line-height:1;color:var(--text-muted);border-radius:var(--radius-sm)}.modal-close:hover{color:var(--text);background:var(--surface-sunken)}.modal-form{display:flex;flex-direction:column;gap:var(--space-4)}.modal-form-actions{display:flex;gap:var(--space-3);align-items:center}.modal-form-actions .btn-primary{flex:1 1}@media (max-width:640px){.modal-overlay{align-items:flex-end;padding:0}.modal{max-width:none;border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-5) var(--space-4) 0;animation:slideUp var(--dur-slow) var(--ease)}.modal-form-actions{position:-webkit-sticky;position:sticky;bottom:0;background:var(--surface);padding:var(--space-3) 0 calc(var(--space-3) + env(safe-area-inset-bottom))}.modal .form-field input,.modal .form-field select,.modal .form-field textarea{font-size:max(16px,var(--text-base))}}.token-reveal{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--accent);border-radius:var(--radius-md);background:var(--surface-sunken)}.token-reveal-warning{font-weight:700;color:var(--stock-low)}.token-reveal-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.token-reveal-value{flex:1 1;min-width:200px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);font-family:var(--font-body);word-break:break-all}@media not (prefers-reduced-motion:reduce){::view-transition-new(*),::view-transition-old(*){animation-duration:var(--dur-base)}}.scan-screen{flex:1 1;min-height:60dvh;flex-direction:column;background:var(--scrim-camera);color:var(--accent-contrast)}.scan-camera,.scan-screen{position:relative;display:flex;overflow:hidden}.scan-camera{flex:1 1;align-items:center;justify-content:center;background:radial-gradient(120% 80% at 50% 20%,var(--scan-scanline-glow),transparent 60%),linear-gradient(160deg,var(--scan-cam-grad-a),var(--scan-cam-grad-b))}.scan-camera:before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(0deg,var(--scan-grid-line) 0 1px,transparent 1px 3px);opacity:.4;pointer-events:none}.scan-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.scan-roi{display:none}.scan-frame-wrap{position:relative;width:78%;max-width:320px;aspect-ratio:16/10;z-index:2}.scan-frame-wrap.is-photo{aspect-ratio:1/1}.scan-frame{position:absolute;inset:0;border:2.5px solid var(--scan-frame-line);border-radius:var(--radius-lg)}.scan-corner{position:absolute;width:26px;height:26px;border:3px solid var(--accent-scan-tint)}.scan-corner.tl{top:-3px;left:-3px;border-right:none;border-bottom:none;border-radius:10px 0 0 0}.scan-corner.tr{top:-3px;right:-3px;border-left:none;border-bottom:none;border-radius:0 10px 0 0}.scan-corner.bl{bottom:-3px;left:-3px;border-right:none;border-top:none;border-radius:0 0 0 10px}.scan-corner.br{bottom:-3px;right:-3px;border-left:none;border-top:none;border-radius:0 0 10px 0}.scan-line{position:absolute;left:6%;right:6%;height:2px;top:12%;border-radius:2px;background:linear-gradient(90deg,transparent,var(--accent-scan-tint),transparent);animation:scan-sweep 2.4s var(--ease) infinite}@keyframes scan-sweep{0%,to{top:12%}50%{top:84%}}.scan-hint{bottom:-40px;text-align:center;font-size:var(--text-sm);font-weight:600;color:var(--scan-hint)}.scan-hint,.scan-manual-trigger{position:absolute;left:0;right:0}.scan-manual-trigger{bottom:20px;z-index:5;display:flex;justify-content:center;gap:10px}.scan-manual-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--radius-full);background:var(--scan-glass);border:1px solid var(--scan-glass-border);color:var(--accent-contrast);font-size:.8125rem;font-weight:700;transition:background var(--dur-fast) var(--ease)}.scan-manual-btn:hover{background:var(--scan-glass-hover)}.scan-manual-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.scan-manual-btn:disabled{opacity:.5;pointer-events:none}.scan-tabs{display:flex;gap:6px;padding:8px;background:var(--scrim-camera);z-index:6}.scan-tab{flex:1 1;min-height:48px;padding:12px 16px;border-radius:var(--radius-md);background:var(--scan-glass);border:1px solid var(--scan-glass-border);color:var(--accent-contrast);font-size:1.125rem;font-weight:700;transition:background var(--dur-fast) var(--ease)}.scan-tab:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.scan-shutter,.scan-tab.is-active{background:var(--accent-scan-tint)}.scan-shutter{min-height:48px;padding:12px 28px;border-radius:var(--radius-full);border:1px solid var(--scan-glass-border);color:var(--accent-contrast);font-size:1.0625rem;font-weight:800}.scan-shutter:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.scan-shutter:disabled{opacity:.5;pointer-events:none}.photo-results{position:absolute;inset:0;z-index:7;overflow-y:auto;overflow-x:hidden;padding:16px 16px 96px;background:var(--scrim-camera)}.photo-results-retry{position:-webkit-sticky;position:sticky;top:0;z-index:8;display:flex;width:100%;min-height:48px;align-items:center;justify-content:center;gap:8px;margin-bottom:16px;padding:12px 18px;border-radius:var(--radius-full);background:var(--scan-glass);border:1px solid var(--scan-glass-border);color:var(--accent-contrast);font-size:.9375rem;font-weight:700;transition:background var(--dur-fast) var(--ease)}.photo-results-retry:hover{background:var(--scan-glass-hover)}.photo-results-retry:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.photo-results-empty{margin-top:24%;text-align:center;font-size:var(--text-sm);font-weight:600;color:var(--scan-hint)}.photo-results-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px;gap:12px}.photo-results-grid>li{min-width:0}.photo-result-card{display:flex;flex-direction:column;width:100%;text-align:left;border-radius:var(--radius-md);background:var(--scan-glass);border:1px solid var(--scan-glass-border);overflow:hidden;color:var(--accent-contrast)}.photo-result-card:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.photo-result-thumb{display:block;position:relative;overflow:hidden;aspect-ratio:1/1}.photo-result-thumb .blur-wrap{width:100%;height:100%}.photo-result-name{padding:8px 10px 0;font-size:var(--text-sm);font-weight:700;line-height:1.25}.photo-result-code{padding:2px 10px 0;font-size:.75rem;opacity:.8}.photo-result-price{padding:2px 10px 10px;font-size:var(--text-sm);font-weight:700}.scan-notfound{top:calc(16px + env(safe-area-inset-top));padding:12px 16px;background:var(--scan-glass);font-weight:600}.scan-create-recovery,.scan-notfound{position:absolute;left:16px;right:16px;z-index:5;border-radius:var(--radius-md);border:1px solid var(--scan-glass-border);color:var(--accent-contrast);font-size:var(--text-sm);text-align:center}.scan-create-recovery{top:calc(16px + env(safe-area-inset-top) + 54px);padding:10px 16px;background:var(--accent-scan-tint);font-weight:700}.scan-create-recovery:hover{filter:brightness(1.1)}.scan-create-recovery:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.scan-create-recovery:disabled{opacity:.5;pointer-events:none}.scan-create-error{position:absolute;top:calc(16px + env(safe-area-inset-top));left:16px;right:16px;z-index:5;padding:12px 16px;border-radius:var(--radius-md);background:var(--scan-glass);border:1px solid var(--scan-glass-border);color:var(--accent-contrast);font-size:var(--text-sm);font-weight:600;text-align:center}@media (prefers-reduced-motion:reduce){.scan-line{animation:none;top:48%}}.sheet-overlay{position:absolute;inset:0;z-index:10;background:var(--overlay);animation:fadeIn var(--dur-base) var(--ease)}@media (prefers-reduced-motion:reduce){.sheet-overlay{animation:none}}.scan-sheet{position:absolute;left:0;right:0;bottom:0;z-index:11;background:var(--surface);color:var(--text);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:14px 20px calc(20px + env(safe-area-inset-bottom));box-shadow:var(--shadow-sheet);animation:sheet-up var(--dur-slow) var(--ease)}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.scan-sheet{animation:none}}.sheet-handle{width:36px;height:4px;border-radius:4px;background:var(--border);margin:0 auto 16px}.sheet-top{display:flex;gap:14px}.sheet-photo{position:relative;width:76px;height:76px;flex:none;border-radius:var(--radius-md);overflow:hidden;background:var(--bg);border:1px solid var(--border)}.sheet-photo .blur-wrap{width:100%;height:100%}.sheet-info{flex:1 1;min-width:0}.sheet-code{font-size:.6875rem;font-weight:700;color:var(--text-muted);letter-spacing:.04em}.sheet-name{font-size:1rem;font-weight:700;margin:2px 0 4px;line-height:1.3}.sheet-price{font-weight:800;color:var(--accent);font-size:1.125rem}.sheet-shops{display:flex;flex-direction:column;gap:14px;margin-top:18px}.sheet-shop{background:var(--surface-sunken);border-radius:var(--radius-md);padding:12px 14px}.sheet-shop-name{font-size:.75rem;font-weight:600;color:var(--text-muted)}.stepper-row{gap:20px;margin-top:10px}.step-btn,.stepper-row{display:flex;align-items:center;justify-content:center}.step-btn{width:56px;height:56px;border-radius:var(--radius-full);border:none;background:var(--surface);color:var(--text);font-size:1.25rem;font-weight:800;transition:background var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.step-btn:active{transform:scale(.94)}.step-btn:disabled{opacity:.5}.step-btn.plus{background:var(--accent);color:var(--accent-contrast)}.step-btn.plus:hover{background:var(--accent-hover)}.step-btn.plus:active{background:var(--accent-active)}.step-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.step-qty{font-size:1.75rem;font-weight:800;min-width:48px;text-align:center}.sheet-floor{margin-top:8px;font-size:var(--text-sm);font-weight:600;color:var(--stock-low);text-align:center}.sheet-cta{display:flex;align-items:center;justify-content:center;width:100%;height:50px;margin-top:20px;border-radius:var(--radius-md);background:transparent;border:1.5px solid var(--border);color:var(--text);font-weight:700;font-size:.9375rem;text-decoration:none;transition:background var(--dur-fast) var(--ease)}.sheet-cta:hover{background:var(--surface-sunken)}.keypad-display{font-size:2rem;font-weight:800;letter-spacing:.2em;text-align:center;color:var(--text);padding:8px 0 16px}.keypad-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.keypad-key{height:56px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-sunken);color:var(--text);font-size:1.375rem;font-weight:700;transition:background var(--dur-fast) var(--ease)}.keypad-key:hover{background:var(--border)}.keypad-key:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.keypad-key.ok{background:var(--accent);color:var(--accent-contrast);border-color:transparent}.keypad-key.ok:disabled{opacity:.5}.scan-cam-error{position:relative;z-index:2;max-width:320px;margin:0 24px;text-align:center;color:var(--accent-contrast)}.scan-cam-error-title{font-family:var(--font-body),-apple-system,"SF Pro Text","Segoe UI",Roboto,sans-serif;font-size:1.125rem;font-weight:800;margin-bottom:8px}.scan-cam-error-body{font-size:var(--text-sm);color:var(--scan-hint);margin-bottom:20px;line-height:1.5}.product-form .form-field input,.product-form .form-field select,.product-form .form-field textarea{min-height:48px;font-size:var(--text-lg)}.product-form .form-section{border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;margin-bottom:16px}.product-form .form-section legend{font-weight:700;padding:0 6px}.price-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.markup-line{color:var(--text-muted)}.markup-warn{color:#b45309}.badge-expected{background:#eef4ff;color:#1f3350;border-radius:999px;padding:2px 10px;font-size:13px}.expected-overdue{color:#b45309;font-weight:600}.sheet-loc,.stock-loc{color:var(--text-muted);font-size:14px}.color-hint{background:var(--surface-sunken);border-radius:8px;padding:8px 12px}.stock-field-row{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;grid-gap:12px;gap:12px;align-items:end;margin-bottom:8px}.admin-row-actions{display:flex;gap:8px}.muted{color:var(--text-muted);font-size:.8125rem}.variant-chip-row{display:flex;flex-wrap:wrap;gap:10px}.variant-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:var(--radius-full);background:var(--surface);border:1px solid var(--border);font-size:.8125rem;font-weight:600;color:var(--text-muted);text-decoration:none;transition:all var(--dur-fast) var(--ease)}.variant-chip.is-current,.variant-chip:hover{border-color:var(--accent);color:var(--text)}.variant-chip.is-current{background:var(--surface-sunken)}.variant-thumb{position:relative;width:32px;height:32px;border-radius:var(--radius-full);overflow:hidden;flex:none;background:var(--bg)}.variant-label{white-space:nowrap}.variant-members{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.variant-members a{color:var(--accent);text-decoration:none}.variant-search-results{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:320px;overflow-y:auto}.variant-search-results .btn-ghost{width:100%;text-align:left}.modal-body{display:flex;flex-direction:column;gap:var(--space-3)}.modal-body>input{width:100%}.sale-control{display:flex;flex-direction:column;gap:8px;margin-top:12px}.sale-hero{width:100%;min-height:56px;padding:0 20px;border:none;border-radius:14px;background:var(--accent);color:var(--accent-contrast);font-size:var(--text-lg);font-weight:700;cursor:pointer}.sale-hero:hover:not(:disabled){background:var(--accent-hover)}.sale-hero:active:not(:disabled){background:var(--accent-active);transform:scale(.98)}.sale-hero:disabled{opacity:.6;cursor:default}.sale-empty{color:var(--text-muted);margin:4px 0}.sale-empty,.sale-floor{font-size:var(--text-sm)}.sale-floor{color:#b45309;margin:2px 0}.sale-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:16px;background:var(--text);padding:12px 18px;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,.28)}.sale-toast,.sale-undo{color:var(--surface);font-size:var(--text-base)}.sale-undo{background:none;border:none;text-decoration:underline;font-weight:700;cursor:pointer;padding:4px 2px;min-height:44px}.manual-stock{margin-top:12px}.manual-stock>summary{cursor:pointer;padding:8px 0}.manual-stock>summary,.sheet-qty-line{color:var(--text-muted);font-size:var(--text-sm)}.admin-reports-page{padding:16px;max-width:900px}.reports-head{justify-content:space-between;gap:12px}.report-presets,.reports-head{display:flex;align-items:center;flex-wrap:wrap}.report-presets{gap:8px;margin:16px 0}.report-preset{min-height:48px;display:inline-flex;align-items:center;padding:0 18px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font-weight:600;text-decoration:none}.report-preset.active{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.report-range{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin-left:auto}.report-range label{display:flex;flex-direction:column;font-size:var(--text-sm);color:var(--text-muted);gap:4px}.report-range input{min-height:44px;border:1px solid var(--border);border-radius:8px;padding:0 10px}.report-tiles{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.report-tile{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px}.report-tile-wide{grid-column:1/-1}.report-tile-label{color:var(--text-muted);font-size:var(--text-sm);font-weight:600}.report-tile-value{font-size:var(--text-2xl);font-weight:800;margin-top:4px}.report-tile-note{color:var(--text-muted);font-size:var(--text-xs);margin-top:8px}.report-top{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.report-top li{display:flex;justify-content:space-between;gap:12px}.report-top-meta{white-space:nowrap}.report-empty,.report-top-meta{color:var(--text-muted)}.report-cats{margin-top:20px}.export-btn{text-decoration:none}@media (max-width:560px){.report-tiles{grid-template-columns:1fr}.report-range{margin-left:0}}.admin-dashboard-page{padding:16px;max-width:1000px}.attn-board{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-top:16px}.attn-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px}.attn-ok{background:#f2f7ee;border-color:#cfe0c2}.attn-title{font-weight:700;font-size:var(--text-lg);display:flex;align-items:center;gap:8px}.attn-count{background:#b45309;color:#fff;border-radius:999px;padding:1px 10px;font-size:var(--text-sm)}.attn-allgood{color:#4a6b3a;font-weight:600;margin-top:8px}.attn-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.attn-list a{color:var(--text);text-decoration:none;display:block;min-height:44px}.attn-all,.attn-list a:hover{color:var(--accent)}.attn-all{display:inline-block;font-weight:600}.attn-all,.attn-more{margin-top:10px}.attn-more summary{cursor:pointer;color:var(--accent);font-weight:600;min-height:44px;display:flex;align-items:center}.attn-more .attn-list{margin-top:6px}@media (max-width:640px){.attn-board{grid-template-columns:1fr}}.admin-reprice-page{padding:16px;max-width:900px}.reprice-form{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:16px 0}.reprice-form .form-field{display:flex;flex-direction:column;gap:4px}.reprice-form input,.reprice-form select{min-height:48px;border:1px solid var(--border);border-radius:8px;padding:0 10px;font-size:var(--text-base)}.reprice-msg{background:var(--surface-sunken);border-radius:8px;padding:10px 12px}.reprice-table{width:100%;border-collapse:collapse;margin:12px 0}.reprice-table td,.reprice-table th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}.reprice-new{font-weight:700;color:var(--accent)}.reprice-reverted{color:var(--text-muted)}.reprice-log{margin-top:24px}.admin-inventory-page,.admin-inventory-session{padding:16px;max-width:900px}.inv-start{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:16px 0}.inv-start select{min-height:48px;border:1px solid var(--border);border-radius:8px;padding:0 10px}.inv-sessions{margin-top:24px}.inv-scan{display:flex;flex-direction:column;gap:12px}.inv-camera{position:relative;aspect-ratio:3/4;max-height:50vh;background:var(--scrim-camera);border-radius:12px;overflow:hidden}.inv-flash{position:absolute;left:0;right:0;bottom:0;background:rgba(24,24,22,.8);color:#fff;padding:10px 14px;font-weight:600}.inv-manual{display:flex;gap:8px}.inv-manual input{flex:1 1;min-height:48px;border:1px solid var(--border);border-radius:8px;padding:0 12px;font-size:var(--text-lg)}.inv-tally-head{font-weight:700;margin-bottom:8px}.inv-tally ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.inv-tally li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--border)}.inv-tally-count{font-weight:700}.inv-warn{background:#fdf3e7;border:1px solid #f0d9b5;border-radius:8px;padding:10px 12px;color:#7a4a12}.inv-table .inv-missing{background:#fdecec}.inv-table .inv-surplus{background:#eef6ec}.inv-report-section{margin-top:24px}.inv-ok{margin-top:16px}.inv-ok summary{cursor:pointer;color:var(--text-muted)}