:root{--color-canvas:#f5f6f7;--color-surface:#fff;--color-surface-subtle:#f8f9fa;--color-surface-hover:#f1f5f8;--color-ink:#172634;--color-ink-secondary:#536374;--color-ink-muted:#596d7c;--color-border:#cbd5de;--color-control-border:#7b8b99;--color-border-subtle:#e3e8ed;--color-sidebar:#192b38;--color-sidebar-hover:#253b4b;--color-sidebar-active:#334c60;--color-sidebar-text:#dde6ed;--color-primary:#1d567b;--color-primary-hover:#164765;--color-primary-pressed:#123a53;--color-primary-contrast:#fff;--color-focus:#2d79b1;--color-warning:#854812;--color-warning-bg:#fff4e9;--color-success:#166540;--color-success-bg:#e9f6ed;--color-danger:#a32e34;--color-danger-bg:#fff0f0;--color-disabled:#a8b3bc;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-control:6px;--radius-panel:8px;--font-body:Arial,Helvetica,sans-serif;--text-small:13px;--text-body:14px;--text-title:28px;--sidebar-width:224px;--header-height:64px;--motion-fast:.15s}
*{box-sizing:border-box}html{font-family:var(--font-body);color:var(--color-ink);background:var(--color-canvas);font-size:var(--text-body);line-height:1.5}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-control);min-height:44px;padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-primary-contrast);cursor:pointer;transition:background var(--motion-fast);border:1px solid #0000;font-weight:600;display:inline-flex}button:hover{background:var(--color-primary-hover)}button:active{background:var(--color-primary-pressed)}button:disabled{opacity:.5;cursor:not-allowed}.button-secondary,button[type=button]{background:var(--color-surface);color:var(--color-ink-secondary);border-color:var(--color-border)}.button-secondary:hover,button[type=button]:hover{background:var(--color-surface-hover)}a{color:var(--color-primary);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:var(--text-title);letter-spacing:-.5px;margin-bottom:var(--space-2);line-height:1.2}h2{margin:var(--space-6) 0 var(--space-4);font-size:18px;line-height:1.35}h3{margin-bottom:var(--space-2);font-size:15px}p{margin-bottom:var(--space-4)}small,.muted{font-size:var(--text-small);color:var(--color-ink-secondary)}main{min-width:0;padding:var(--space-8);max-width:1920px;margin:0 auto}main>p{max-width:80ch;color:var(--color-ink-secondary)}main>a:first-child{margin-bottom:var(--space-4);font-size:var(--text-small);display:inline-flex}main>form,main>section{margin-bottom:var(--space-6)}form{gap:var(--space-4);max-width:540px;display:grid}label{gap:var(--space-2);color:var(--color-ink-secondary);font-weight:600;display:grid}input,select,textarea{width:100%;min-width:0;min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-ink);font-weight:400}input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:var(--color-primary);margin:0}label:has(>input[type=checkbox]){align-items:center;gap:var(--space-3);min-height:44px;display:flex}fieldset{border:1px solid var(--color-border);border-radius:var(--radius-panel);min-width:0;padding:var(--space-4);gap:var(--space-4);display:grid}legend{padding:0 var(--space-2);font-weight:600}ul{padding-left:var(--space-5)}li{padding:var(--space-2) 0}li button{margin-left:var(--space-3)}[role=status]:empty{display:none}[role=status]:not(:empty){padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-primary);background:var(--color-surface-hover);overflow-wrap:anywhere}[role=alert]{background:var(--color-danger-bg);color:var(--color-danger);padding:var(--space-4);border-left:3px solid var(--color-danger);overflow-wrap:anywhere}.table-scroll{max-width:100%;overflow:auto}table{border-collapse:collapse;background:var(--color-surface);font-variant-numeric:tabular-nums;width:100%}th,td{text-align:left;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);vertical-align:middle}th{font-size:var(--text-small);background:var(--color-surface-subtle);color:var(--color-ink-secondary);white-space:nowrap;font-weight:600}tbody tr:hover{background:var(--color-surface-hover)}td.numeric,th.numeric{text-align:right}td small{display:block}svg{flex-shrink:0}.brand{align-items:center;gap:var(--space-3);letter-spacing:-.5px;font-size:22px;display:inline-flex}.app-sidebar{width:var(--sidebar-width);background:var(--color-sidebar);color:var(--color-sidebar-text);z-index:30;padding:var(--space-6) var(--space-3);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.app-sidebar .brand{padding:var(--space-2) var(--space-3) var(--space-8);color:var(--color-primary-contrast)}.app-sidebar nav{gap:var(--space-1);display:grid}.app-sidebar nav a{gap:var(--space-3);padding:var(--space-3);color:inherit;border-radius:var(--radius-control);align-items:center;min-height:44px;font-size:13px;text-decoration:none;display:flex}.app-sidebar nav a:hover{background:var(--color-sidebar-hover)}.app-sidebar nav a[aria-current=page]{background:var(--color-sidebar-active);color:var(--color-primary-contrast);font-weight:600}.sidebar-note{padding:var(--space-8) var(--space-3) 0;color:var(--color-sidebar-text);margin-top:auto;font-size:12px}.app-workspace{margin-left:var(--sidebar-width);min-width:0}.app-topbar{min-height:var(--header-height);justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-8);border-bottom:1px solid var(--color-border);background:var(--color-surface);display:flex}.app-topbar form{align-items:center;gap:var(--space-2);display:flex}.topbar-context,.account{align-items:center;gap:var(--space-3);display:flex}.account small{display:block}.topbar-search{flex:1;max-width:440px}.topbar-search input{background:var(--color-surface-subtle)}.icon-button{padding:var(--space-2);width:44px}.mobile-menu{display:none}.skip-link{left:var(--space-4);z-index:100;background:var(--color-surface);padding:var(--space-3);position:fixed;top:-100px}.skip-link:focus{top:var(--space-4)}.page-heading{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);display:flex}.page-heading p{color:var(--color-ink-secondary);margin:0}.button-link{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-4);background:var(--color-primary);border-radius:var(--radius-control);color:var(--color-primary-contrast);font-weight:600;text-decoration:none;display:inline-flex}.stat-strip{border:1px solid var(--color-border);border-radius:var(--radius-panel);margin-bottom:var(--space-6);background:var(--color-surface-subtle);align-items:stretch;display:flex}.stat{gap:var(--space-3);padding:var(--space-5);border-right:1px solid var(--color-border-subtle);flex:1;align-items:center;display:flex}.stat:last-child{border:0}.stat span{color:var(--color-ink-secondary);font-size:var(--text-small);display:block}.stat strong{font-variant-numeric:tabular-nums;font-size:18px}.dashboard-grid{gap:var(--space-5);grid-template-columns:minmax(0,1fr) 290px;display:grid}.dashboard-grid:not(:has(.dashboard-aside)){grid-template-columns:1fr}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);min-width:0;overflow:hidden}.panel-heading{padding:var(--space-4);border-bottom:1px solid var(--color-border-subtle);justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.panel-heading h2{margin:0}.panel-body{padding:var(--space-4)}.toolbar{align-items:end;gap:var(--space-3);max-width:none;padding:var(--space-4);border-bottom:1px solid var(--color-border-subtle);flex-wrap:wrap;display:flex}.toolbar label{flex:1;min-width:120px}.status-badge{align-items:center;gap:var(--space-1);border-radius:var(--radius-control);white-space:nowrap;padding:3px 7px;font-size:12px;font-weight:600;display:inline-flex}.status-warning{color:var(--color-warning);background:var(--color-warning-bg)}.status-success{color:var(--color-success);background:var(--color-success-bg)}.quantity{white-space:nowrap;font-variant-numeric:tabular-nums;display:grid}.quantity>span{color:var(--color-ink-secondary);font-size:var(--text-small)}.suggestion{padding:var(--space-4);border-bottom:1px solid var(--color-border-subtle);justify-content:space-between;gap:var(--space-3);display:flex}.suggestion p{margin:0}.suggestion small{display:block}.empty-state{padding:var(--space-8);text-align:center;color:var(--color-ink-secondary)}.empty-state svg{margin:auto}.empty-state p{margin:var(--space-3) 0 0}.section-gap{margin-top:var(--space-5)}.stock-mobile{display:none}.login-page{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);max-width:440px;margin:10vh auto}.login-page .brand{margin-bottom:var(--space-6)}.login-page h1{font-size:24px}.scanner-panel{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);margin:var(--space-5) 0}.scanner-viewport{background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:var(--radius-panel);padding:var(--space-6);text-align:center;margin-bottom:var(--space-4)}.scanner-viewport>svg{color:var(--color-primary);margin:var(--space-4)}.scanner-video{object-fit:cover;border-radius:var(--radius-control);width:100%;max-height:260px}.scanner-panel form{max-width:none;margin-top:var(--space-4)}.scanner-panel details{margin-top:var(--space-4)}summary{cursor:pointer;min-height:44px;padding:var(--space-2) 0;color:var(--color-primary);font-weight:600}.cart-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);overflow:hidden}.cart-list h2{padding:var(--space-4);border-bottom:1px solid var(--color-border-subtle);margin:0}.cart-line{padding:var(--space-4);border-bottom:1px solid var(--color-border-subtle);gap:var(--space-4);grid-template-columns:minmax(0,1fr) auto;display:grid}.cart-line:last-child{border-bottom:0}.cart-line h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.cart-line p{margin:0 0 var(--space-1);font-size:var(--text-small);color:var(--color-ink-secondary)}.quantity-controls{align-items:center;gap:var(--space-2);display:flex}.quantity-controls label{max-width:64px}.quantity-controls input{text-align:center;padding:var(--space-2);font-weight:600}.quantity-controls button{width:44px;padding:var(--space-2)}.cart-actions{gap:var(--space-2);align-content:center;display:grid}.cart-actions .remove-line{color:var(--color-ink-secondary);background:0 0;min-height:44px;padding:0;font-weight:400}.withdrawal-page{max-width:1050px}.withdrawal-actions{z-index:10;padding:var(--space-4) 0 calc(var(--space-4) + env(safe-area-inset-bottom));background:var(--color-canvas);border-top:1px solid var(--color-border);gap:var(--space-2);margin-top:var(--space-5);flex-wrap:wrap;align-items:center;display:flex;position:sticky;bottom:0}.withdrawal-actions p{flex:1 0 100%;margin:0;font-weight:600}.withdrawal-actions>button:first-of-type{flex:1}.feature-row{gap:var(--space-5);padding:var(--space-5);border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface);grid-template-columns:minmax(0,1fr) auto;display:grid}.feature-row p{margin-bottom:var(--space-2);max-width:85ch}.feature-row button{align-self:start;min-width:120px}.feature-row button[aria-checked=false]{background:var(--color-surface);border-color:var(--color-border);color:var(--color-ink-secondary)}.feature-group{border:1px solid var(--color-border);border-radius:var(--radius-panel);margin-bottom:var(--space-5);overflow:hidden}.feature-group h2{padding:var(--space-4);background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border);margin:0}dialog{max-width:min(560px,100% - 32px);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-panel);color:var(--color-ink)}dialog::backdrop{background:#0a19268c}dialog h2{margin-top:0}.dialog-actions{gap:var(--space-3);margin-top:var(--space-5);justify-content:flex-end;display:flex}.label-layout{gap:var(--space-6);grid-template-columns:minmax(300px,1fr) minmax(360px,1.2fr);align-items:start;display:grid}.label-layout form{max-width:none}.label-selection{border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);max-height:440px;overflow:auto}.label-selection label{padding:var(--space-3);border-bottom:1px solid var(--color-border-subtle);font-weight:400}.label-preview{min-width:0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel)}.label-preview iframe{border:1px solid var(--color-border);width:100%;height:580px}.admin-form{background:var(--color-surface);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-panel)}.catalog-list{border:1px solid var(--color-border);background:var(--color-surface);max-height:360px;padding:0;list-style:none;overflow:auto}.catalog-list li{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);display:flex}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (min-width:1600px){.dashboard-grid{grid-template-columns:minmax(0,1fr) 340px}.app-topbar,main{padding-left:var(--space-10);padding-right:var(--space-10)}}@media (max-width:1279px){.dashboard-grid{grid-template-columns:1fr}.dashboard-aside{gap:var(--space-5);grid-template-columns:1fr 1fr;display:grid}.label-layout{grid-template-columns:1fr}.topbar-search{max-width:300px}.stat{padding:var(--space-4)}}@media (max-width:1023px){.app-sidebar{display:none}.app-sidebar.is-open{width:260px;display:flex;box-shadow:0 0 0 100vmax #0a192673}.app-workspace{margin-left:0}.mobile-menu{display:inline-flex}.app-topbar{padding:var(--space-3) var(--space-5)}main{padding:var(--space-6)}.account small{display:none}}@media (max-width:767px){.topbar-search,.topbar-context,.account>div{display:none}.app-topbar{min-height:56px;padding:var(--space-2) var(--space-4)}.app-topbar .mobile-title{font-weight:600;display:inline}.app-topbar .account{margin-left:auto}.app-sidebar .mobile-menu{align-self:end}.page-heading{flex-wrap:wrap;align-items:start}.page-heading .button-link{width:100%}main{padding:var(--space-4)}h1{font-size:24px}.stat-strip{grid-template-columns:1fr 1fr;display:grid}.stat{padding:var(--space-3)}.stat strong{font-size:16px}.stat:nth-child(2){border-right:0}.stat:last-child{border-top:1px solid var(--color-border-subtle);grid-column:1/-1}.dashboard-aside{display:block}.dashboard-aside>.panel{margin-bottom:var(--space-4)}.stock-desktop{display:none}.stock-mobile{display:block}.stock-mobile article{padding:var(--space-4);border-bottom:1px solid var(--color-border-subtle);gap:var(--space-3);grid-template-columns:1fr auto;display:grid}.stock-mobile h3{margin:0}.stock-mobile p{color:var(--color-ink-secondary);font-size:var(--text-small);margin:0}.stock-mobile .status-badge{margin-top:var(--space-2)}.feature-row{padding:var(--space-4);gap:var(--space-2);grid-template-columns:1fr}.feature-row button{justify-self:start}.cart-line{gap:var(--space-3);grid-template-columns:1fr}.cart-actions{justify-content:space-between;align-items:center;display:flex}.scanner-panel{padding:var(--space-3)}.scanner-viewport{padding:var(--space-4)}.withdrawal-actions>button{min-height:48px}.withdrawal-actions>button:first-of-type{flex-basis:100%}.withdrawal-actions{bottom:0}.label-layout{display:block}.label-preview{margin-top:var(--space-5)}.toolbar{padding:var(--space-3)}.login-page{margin:var(--space-8) var(--space-4);padding:var(--space-6)}.quantity-controls{gap:var(--space-1)}}@media (min-width:768px){.mobile-title{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.app-sidebar,.app-topbar,.withdrawal-actions{display:none}.app-workspace{margin:0}main{padding:0}body{background:#fff}}.dashboard-grid>div{min-width:0}.quantity{align-content:start}.stock-mobile article{align-items:start}.feature-group+.feature-group{margin-top:var(--space-5)}@media (max-width:767px){.app-topbar .topbar-search{display:none}.toolbar{grid-template-columns:minmax(0,1fr);display:grid}.toolbar label{min-width:0}.toolbar button{width:100%}}.feature-row{padding:var(--space-4)}.feature-row p:last-child{margin-bottom:0}.camera-options{margin:0 0 var(--space-3)!important}.scanner-panel .camera-options summary{font-size:var(--text-small)}.scanner-panel .camera-options label{margin-bottom:var(--space-3)}@media (max-width:767px){.withdrawal-page>a:first-child{display:none}.scanner-viewport{padding:var(--space-3)}.scanner-viewport>svg{margin:var(--space-2)}.withdrawal-actions>button:last-child{background:var(--color-surface);color:var(--color-ink-secondary);border-color:var(--color-border)}}.mobile-nav{background:var(--color-sidebar);width:280px;max-width:85vw;height:100dvh;max-height:100dvh;color:var(--color-sidebar-text);padding:var(--space-4);border:0;border-radius:0;margin:0;inset:0 auto 0 0}.mobile-nav>.icon-button{margin-left:auto;display:flex}.mobile-nav .brand{margin:var(--space-4) 0 var(--space-6)}.mobile-nav nav{gap:var(--space-1);display:grid}.mobile-nav nav a{color:inherit;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-control);min-height:44px;text-decoration:none;display:flex}.mobile-nav nav a[aria-current=page],.mobile-nav nav a:hover{background:var(--color-sidebar-active)}input,select,textarea,.button-secondary,button[type=button],.feature-row button[aria-checked=false]{border-color:var(--color-control-border)}.quantity-controls label{width:84px;max-width:84px}.quantity-controls input{width:84px}.cart-line [role=alert]{color:var(--color-danger)}
