:root{--bg:#f1f5f9;--surface:#fff;--surface-2:#f8fafc;--border:#e2e8f0;--text:#0f172a;--text-muted:#64748b;--primary:#4f46e5;--primary-hover:#4338ca;--primary-soft:#eef2ff;--success:#059669;--success-soft:#ecfdf5;--danger:#dc2626;--danger-soft:#fef2f2;--warning:#d97706;--warning-soft:#fffbeb;--info:#0284c7;--info-soft:#f0f9ff;--sidebar-bg:#0f172a;--sidebar-muted:#94a3b8;--radius:14px;--radius-sm:10px;--shadow:0 1px 2px rgba(15,23,42,.06) , 0 8px 24px -12px rgba(15,23,42,.18)}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;padding:0}body{font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.55;-webkit-font-smoothing:antialiased}:focus-visible{outline:3px solid rgba(79,70,229,.45);outline-offset:2px}.icon{width:1.25rem;height:1.25rem;flex:none}.skip-link{position:absolute;left:-9999px;top:0;background:var(--primary);color:#fff;padding:.6rem 1rem;border-radius:0 0 8px 0;z-index:100}.skip-link:focus{left:0}.app-shell{display:flex;min-height:100vh}.app-main{flex:1;min-width:0;display:flex;flex-direction:column}.sidebar{width:268px;flex:0 0 268px;background:var(--sidebar-bg);color:#e2e8f0;display:flex;flex-direction:column;padding:1.25rem 1rem;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar__brand{display:flex;align-items:center;gap:.75rem;padding:.35rem .5rem 1.35rem}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.brand-mark .icon{width:1.35rem;height:1.35rem}.brand-text{display:flex;flex-direction:column;line-height:1.1}.brand-text strong{font-size:1.05rem;letter-spacing:.06em;color:#fff}.brand-text small{color:var(--sidebar-muted);font-size:.72rem}.nav-group{margin-bottom:1.1rem}.nav-group__title{text-transform:uppercase;letter-spacing:.12em;font-size:.66rem;color:#64748b;margin:0 .5rem .4rem;font-weight:700}.nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}.nav-link{display:flex;align-items:center;gap:.7rem;padding:.6rem .7rem;border-radius:10px;color:#cbd5e1;text-decoration:none;font-size:.9rem;font-weight:500;transition:background .15s , color .15s}.nav-link:hover{background:rgba(255,255,255,.06);color:#fff}.nav-link.is-active{background:linear-gradient(90deg,rgba(99,102,241,.35),rgba(99,102,241,.12));color:#fff;box-shadow:inset 3px 0 0 #818cf8}.nav-link .icon{color:#94a3b8}.nav-link.is-active .icon,.nav-link:hover .icon{color:#c7d2fe}.sidebar__footer{margin-top:auto;padding-top:1rem;border-top:1px solid rgba(255,255,255,.08)}.sidebar-user{display:flex;align-items:center;gap:.65rem}.avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-weight:700;flex:none}.sidebar-user__meta{display:flex;flex-direction:column;line-height:1.2;min-width:0}.sidebar-user__meta strong{font-size:.84rem;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user__meta span{font-size:.72rem;color:var(--sidebar-muted)}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:1rem;padding:.85rem 1.5rem;background:rgba(255,255,255,.85);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.topbar__toggle{display:none}@media (min-width:768px){.sidebar-toggle,.btn-sidebar-toggle,[data-sidebar-toggle],.header-toggle,.topbar__toggle{display:none!important}}.topbar__titles{min-width:0;flex:1 1 auto;text-align:left}.topbar__title{margin:0;font-size:1.1rem;font-weight:700;letter-spacing:-.01em}.topbar__subtitle{margin:0;font-size:.78rem;color:var(--text-muted)}.topbar__user{margin-left:auto;display:flex;align-items:center;gap:.75rem}.user-meta{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.user-meta__name{font-weight:600;font-size:.86rem}.logout-form{margin:0}.icon-btn{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:background .15s , border-color .15s}.icon-btn:hover{background:var(--surface-2);border-color:#cbd5e1}.content{padding:1.75rem 1.5rem 3rem;max-width:1200px;width:100%;margin:0 auto}.page-head{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;font-weight:700;color:var(--primary);margin:0 0 .25rem}.page-head__title{margin:0;font-size:1.6rem;letter-spacing:-.02em}.page-head__subtitle{margin:.35rem 0 0;color:var(--text-muted);max-width:62ch}.page-head__meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.muted{color:var(--text-muted)}.badge{display:inline-flex;align-items:center;padding:.22rem .6rem;border-radius:999px;font-size:.72rem;font-weight:600;background:#e2e8f0;color:#334155;white-space:nowrap}.badge--danger{background:var(--danger-soft);color:var(--danger)}.badge--info{background:var(--info-soft);color:var(--info)}.badge--success{background:var(--success-soft);color:var(--success)}.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:.75rem;color:var(--text-muted)}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.15rem 1.25rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.25rem;min-width:0}.stat-card__label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:700}.stat-card__value{font-size:1.35rem;overflow-wrap:anywhere}.stat-card__hint{font-size:.78rem;color:var(--text-muted)}.section{margin-bottom:2rem}.section__head{margin-bottom:.9rem}.section__title{margin:0;font-size:1.05rem}.quick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.9rem}.quick-card{display:flex;align-items:center;gap:.9rem;padding:1rem 1.1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:inherit;box-shadow:var(--shadow);transition:transform .15s , border-color .15s , box-shadow .15s}.quick-card:hover{transform:translateY(-2px);border-color:#c7d2fe;box-shadow:0 12px 30px -18px rgba(79,70,229,.5)}.quick-card__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--primary-soft);color:var(--primary);flex:none}.quick-card__body{display:flex;flex-direction:column;min-width:0}.quick-card__hint{font-size:.76rem;color:var(--text-muted)}.quick-card__chevron{margin-left:auto;color:#94a3b8}.permission-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.5rem .9rem}.permission-item{display:flex;align-items:center;gap:.55rem;padding:.7rem .9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem}.permission-item__icon{color:var(--success)}.flash-stack{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.25rem}.alert{display:flex;align-items:flex-start;gap:.6rem;padding:.8rem 1rem;border-radius:var(--radius-sm);border:1px solid transparent;font-size:.88rem;transition:opacity .4s , transform .4s}.alert.is-hiding{opacity:0;transform:translateY(-6px)}.alert--success{background:var(--success-soft);border-color:#a7f3d0;color:#065f46}.alert--error{background:var(--danger-soft);border-color:#fecaca;color:#991b1b}.alert--warning{background:var(--warning-soft);border-color:#fde68a;color:#92400e}.alert--info{background:var(--info-soft);border-color:#bae6fd;color:#075985}.alert__icon{flex:none}.alert__text{flex:1}.alert__close{border:0;background:transparent;font-size:1.2rem;line-height:1;color:inherit;cursor:pointer;opacity:.6;padding:0 .15rem}.alert__close:hover{opacity:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.62rem 1.1rem;border-radius:10px;border:1px solid transparent;font-size:.9rem;font-weight:600;cursor:pointer;text-decoration:none;transition:background .15s , border-color .15s , transform .05s}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--primary);color:#fff}.btn--primary:hover{background:var(--primary-hover)}.btn--ghost{background:var(--surface);border-color:var(--border);color:var(--text)}.btn--ghost:hover{background:var(--surface-2)}.btn--block{width:100%}.btn__icon{width:1.1rem;height:1.1rem}.form{display:flex;flex-direction:column;gap:1rem}.field{display:flex;flex-direction:column;gap:.35rem}.field label{font-size:.82rem;font-weight:600;color:#334155}.field input{width:100%;padding:.7rem .85rem;border:1px solid #cbd5e1;border-radius:10px;font-size:.95rem;background:#fff;color:var(--text);transition:border-color .15s , box-shadow .15s}.field input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.15)}.auth-body{min-height:100vh;background:radial-gradient(1200px 600px at 10% -10%,#e0e7ff 0%,transparent 60%) , radial-gradient(1000px 500px at 110% 10%,#ede9fe 0%,transparent 55%) , var(--bg)}.auth-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;gap:1rem}.auth-panel{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:2rem 1.75rem;box-shadow:0 24px 60px -30px rgba(15,23,42,.35)}.auth-brand{display:flex;align-items:center;gap:.7rem;margin-bottom:1.5rem}.auth-brand .brand-mark{width:46px;height:46px}.auth-brand .brand-text strong{font-size:1.15rem;color:var(--text)}.auth-brand .brand-text small{color:var(--text-muted)}.auth-head{margin-bottom:1.25rem}.auth-head h1{margin:0 0 .35rem;font-size:1.5rem;letter-spacing:-.02em}.auth-head p{margin:0;color:var(--text-muted);font-size:.9rem}.auth-help{margin:1.25rem 0 0;text-align:center;font-size:.8rem;color:var(--text-muted)}.auth-footnote{margin:0;font-size:.75rem;color:#94a3b8}.auth-actions{margin-top:1.25rem}.error-code{font-size:.8rem;font-weight:800;letter-spacing:.15em;color:var(--danger);text-transform:uppercase;margin:0 0 .4rem}.debug-panel{background:#0f172a;color:#e2e8f0;padding:1rem;border-radius:10px;overflow:auto;font-size:.78rem;margin:0 0 1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}.card--empty{max-width:560px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:2.5rem 1.5rem}.card__icon{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:var(--primary-soft);color:var(--primary);margin-bottom:.35rem}.card__icon .icon{width:1.9rem;height:1.9rem}.card__title{margin:0;font-size:1.15rem}.card__text{margin:0 0 .5rem;color:var(--text-muted);max-width:48ch}.page-head__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.75rem;margin-bottom:1rem}.toolbar__search{flex:1 1 240px;min-width:0}.toolbar input[type="search"],.toolbar select{padding:.6rem .75rem;border:1px solid #cbd5e1;border-radius:10px;font-size:.9rem;background:#fff;color:var(--text);font-family:inherit}.toolbar input[type="search"]{width:100%}.toolbar input[type="search"]:focus,.toolbar select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.15)}.table-wrap{padding:0;overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:.88rem;min-width:720px}.table thead th{text-align:left;padding:.8rem 1rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap}.table tbody td{padding:.85rem 1rem;border-bottom:1px solid var(--border);vertical-align:top}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--surface-2)}.table__sub{display:block;font-size:.76rem;color:var(--text-muted);margin-top:.15rem;max-width:42ch;overflow-wrap:anywhere}.table__line{display:block}.table__actions{white-space:nowrap}.table__actions .btn+.btn,.table__actions form+form{margin-left:.35rem}.inline-form{display:inline}.text-right{text-align:right}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-grid .field--full{grid-column: 1 / -1}.field select,.field textarea{width:100%;padding:.7rem .85rem;border:1px solid #cbd5e1;border-radius:10px;font-size:.95rem;background:#fff;color:var(--text);font-family:inherit}.field textarea{min-height:110px;resize:vertical}.field select:focus,.field textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.15)}.field select:disabled{background:var(--surface-2);color:var(--text-muted);cursor:not-allowed}.field .req{color:var(--danger)}.field-error{margin:.15rem 0 0;font-size:.78rem;color:var(--danger)}.input-error{border-color:var(--danger)!important}.hint{margin:.15rem 0 0;font-size:.76rem;color:var(--text-muted)}.form-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:flex-end;margin-top:.5rem}.btn--sm{padding:.4rem .7rem;font-size:.8rem;border-radius:8px}.btn--danger{background:var(--danger);color:#fff}.btn--danger:hover{background:#b91c1c}.badge--depot{background:var(--primary-soft);color:var(--primary)}.badge--villa{background:#fdf4ff;color:#a21caf}.badge--internal{background:#f1f5f9;color:#475569}.badge--muted{background:#f1f5f9;color:#64748b}.badge--warning{background:var(--warning-soft);color:var(--warning)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:720px){.form-grid{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.form-actions .btn{width:100%}}.code-chip{display:inline-flex;align-items:center;padding:.18rem .5rem;border-radius:6px;background:#0f172a;color:#e2e8f0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;letter-spacing:.04em}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.product-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.product-card__media{display:grid;place-items:center;aspect-ratio: 16 / 9;background:var(--surface-2);color:#94a3b8;overflow:hidden;text-decoration:none}.product-card__media img{width:100%;height:100%;object-fit:cover;display:block}.product-card__media .icon{width:2.5rem;height:2.5rem}.product-card__body{display:flex;flex-direction:column;gap:.55rem;padding:1rem 1.1rem .75rem;flex:1}.product-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.product-card__title{margin:0;font-size:1.02rem;line-height:1.3}.product-card__title a{color:inherit;text-decoration:none}.product-card__title a:hover{color:var(--primary)}.product-card__stock{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:auto;padding-top:.35rem}.stock-pill{display:flex;flex-direction:column;padding:.4rem .6rem;border-radius:10px;background:var(--surface-2);border:1px solid var(--border);min-width:78px}.stock-pill strong{font-size:1.1rem;line-height:1.1}.stock-pill span{font-size:.64rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:700}.stock-pill--ok strong{color:var(--success)}.stock-pill--warn strong{color:var(--warning)}.product-card__actions{display:flex;flex-wrap:wrap;gap:.4rem;padding:0 1.1rem 1rem}.product-hero{display:grid;grid-template-columns:300px 1fr;gap:1.25rem;margin-bottom:1.5rem;align-items:start}.product-hero__media{display:grid;place-items:center;aspect-ratio: 4 / 3;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;color:#94a3b8}.product-hero__media img{width:100%;height:100%;object-fit:cover;display:block}.product-hero__media .icon{width:3rem;height:3rem}.stock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.65rem;margin-bottom:.75rem}.stock-card{display:flex;flex-direction:column;gap:.15rem;padding:.8rem .9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.stock-card__label{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:700}.stock-card__value{font-size:1.5rem;line-height:1.1}.stock-card--ok .stock-card__value{color:var(--success)}.stock-card--danger .stock-card__value{color:var(--danger)}.stock-card--warning .stock-card__value{color:var(--warning)}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1.5rem}.kv{display:grid;grid-template-columns:minmax(120px,150px) 1fr;gap:.45rem 1rem;margin:.75rem 0 0}.kv dt{font-size:.78rem;font-weight:700;color:var(--text-muted)}.kv dd{margin:0;font-size:.9rem;overflow-wrap:anywhere}.item-qr{max-width:190px;margin:.75rem auto 0}.item-qr svg{width:100%;height:auto;display:block}.form-section{display:flex;flex-direction:column;gap:1rem}.form-section+.form-section{padding-top:1.25rem;border-top:1px solid var(--border)}.form-section__title{margin:0;font-size:.95rem;letter-spacing:.01em}.photo-current{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.5rem}.photo-current img{width:140px;height:100px;object-fit:cover;border-radius:10px;border:1px solid var(--border);background:var(--surface-2)}.checkbox{display:inline-flex;align-items:center;gap:.45rem;font-size:.85rem;color:var(--text)}.checkbox input{width:auto}.field input[type="file"]{padding:.55rem .65rem;background:var(--surface-2);border:1px solid #cbd5e1;border-radius:10px;font-size:.85rem}.table tbody tr.is-unavailable td{background:#fffafa}.table tbody tr.is-unavailable td:first-child{box-shadow:inset 3px 0 0 var(--danger)}.label-area{display:flex;justify-content:center;padding:1.5rem 0}.label-card{display:flex;align-items:center;gap:16px;width:380px;max-width:100%;padding:16px;background:#fff;border:1px solid #cbd5e1;border-radius:12px;box-shadow:var(--shadow)}.label-card__qr{width:140px;height:140px;flex:none}.label-card__qr svg{width:100%;height:100%;display:block}.label-card__info{min-width:0}.label-card__brand{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#64748b}.label-card__name{font-size:1rem;font-weight:700;line-height:1.25;margin:.2rem 0}.label-card__code{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95rem;letter-spacing:.06em;background:#f1f5f9;padding:.15rem .4rem;border-radius:6px}.label-card__meta{font-size:.72rem;color:#64748b;margin-top:.25rem}.label-card__hint{font-size:.62rem;color:#64748b;margin-top:.35rem}.label-note{max-width:520px;margin:0 auto;text-align:center}@media (max-width:900px){.product-hero{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}}@media print{.label-toolbar,.label-note,.flash-stack{display:none!important}.app-body{background:#fff}.content{padding:0;max-width:none}.label-area{display:block;padding:0}.label-card{width:70mm;border:1px dashed #94a3b8;border-radius:0;box-shadow:none}.label-card__qr{width:32mm;height:32mm}@page {
        margin: 10mm;
    }}.line-add{display:grid;grid-template-columns:minmax(0,2fr) 140px auto;gap:.75rem;align-items:end;margin-bottom:1rem}.line-add .field{margin:0}.line-qty-form{display:flex;align-items:center;gap:.35rem}.qty-input{width:90px;padding:.42rem .5rem;border:1px solid #cbd5e1;border-radius:8px;font-size:.85rem;font-family:inherit;color:var(--text);background:#fff}.qty-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.15)}@media (max-width:720px){.line-add{grid-template-columns:1fr}.line-add .btn{width:100%}}.availability-hint{min-height:1.1rem}.text-danger{color:var(--danger)}.error-list{margin:.5rem 0 0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.6rem}.error-list ul{margin:.25rem 0 0;padding-left:1.2rem}.pdf-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.pdf-card__info{display:flex;flex-direction:column;gap:.2rem;min-width:0}.pdf-card__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.scan-screen{display:flex;flex-direction:column;gap:1rem;max-width:720px;margin:0 auto}.scan-camera{background:#0f172a;border-radius:16px;padding:1rem;box-shadow:var(--shadow)}.scan-camera__frame{min-height:260px;border:2px dashed rgba(255,255,255,.35);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;color:#cbd5e1;text-align:center;padding:1.5rem}.scan-camera__icon{width:3rem;height:3rem;color:#818cf8}.scan-camera__frame strong{font-size:1rem;color:#fff}.scan-camera__frame span{font-size:.82rem;color:#94a3b8;max-width:34ch}.scan-intro{max-width:640px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:2rem 1.5rem}@media (max-width:640px){.scan-camera__frame{min-height:220px}}.scan-summary{display:flex;flex-direction:column;gap:.85rem;margin-bottom:1rem}.scan-summary__event{min-width:0}.scan-summary__badges{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.35rem}.scan-summary__title{margin:0;font-size:1.25rem}.scan-summary__event .muted{margin:.2rem 0 0;font-size:.85rem}.scan-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.scan-stat{display:flex;flex-direction:column;gap:.1rem;padding:.6rem .7rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.scan-stat span{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:700}.scan-stat strong{font-size:1.25rem;line-height:1.1}.scan-progress{width:100%;height:14px;accent-color:var(--primary)}.scan-progress--sm{height:9px}.scan-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,1fr);gap:1rem;align-items:start}.scan-viewer{display:flex;flex-direction:column;gap:.75rem}.scan-reader{width:100%;min-height:300px;background:#0f172a;border-radius:14px;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#94a3b8}.scan-reader video{width:100%!important;height:auto!important;display:block}.scan-reader canvas,.scan-reader img{max-width:100%}.scan-controls{display:flex;flex-direction:column;gap:.5rem}.scan-controls .btn{min-height:52px;font-size:1rem}.scan-manual{display:flex;flex-direction:column;gap:.35rem;margin-top:.25rem}.scan-manual label{font-size:.82rem;font-weight:600;color:#334155}.scan-manual__row{display:grid;grid-template-columns:1fr auto;gap:.5rem}.scan-manual input{width:100%;padding:.75rem .85rem;border:1px solid #cbd5e1;border-radius:10px;font-size:1rem;background:#fff;color:var(--text);font-family:inherit}.scan-manual input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.15)}.scan-manual .btn{min-height:52px}.scan-result{display:flex;flex-direction:column;gap:.2rem;padding:.9rem 1rem;border-radius:12px;border:1px solid transparent;font-size:.9rem}.scan-result--success{background:var(--success-soft);border-color:#a7f3d0;color:#065f46}.scan-result--error{background:var(--danger-soft);border-color:#fecaca;color:#991b1b}.scan-result strong{font-size:.95rem}.scan-side{display:flex;flex-direction:column;gap:1rem}.scan-products{display:flex;flex-direction:column;gap:.65rem}.scan-product{padding:.7rem .8rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.scan-product__head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.scan-product__head strong{font-size:.9rem}.scan-product__counts{display:flex;flex-wrap:wrap;gap:.6rem;margin:.4rem 0;font-size:.76rem;color:var(--text-muted)}.scan-product__counts strong{color:var(--text)}.scan-page-head{margin-bottom:1rem}@media (max-width:900px){.scan-layout{grid-template-columns:1fr}.scan-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.scan-reader{min-height:260px}}@media (max-width:640px){.scan-manual__row{grid-template-columns:1fr}.scan-controls .btn{min-height:56px}.scan-reader{min-height:240px}}.scan-return-options{border:1px solid var(--border);border-radius:12px;padding:.9rem 1rem;margin:0}.scan-return-options legend{padding:0 .35rem;font-size:.82rem;font-weight:700;color:#334155}.scan-return-options .form-grid{gap:.75rem}.scan-result--info{background:var(--info-soft);border-color:#bae6fd;color:#075985}.scan-stat--primary{background:var(--primary-soft);border-color:#c7d2fe}.scan-stat--primary strong{color:var(--primary)}.scan-stat--success{background:var(--success-soft);border-color:#a7f3d0}.scan-stat--success strong{color:var(--success)}.scan-pending__head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.6rem}.scan-pending__head .section__title{margin:0}.scan-pending__list{display:flex;flex-direction:column;gap:.55rem;max-height:320px;overflow-y:auto}.scan-pending-item{padding:.6rem .7rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.scan-pending-item__main{display:flex;flex-direction:column;gap:.1rem}.scan-pending-item__meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;margin-top:.35rem}.scan-session-returned{margin-top:.6rem}.scan-session-returned__list{list-style:none;margin:.35rem 0 0;padding:0;display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;color:var(--text-muted)}.late-return-list{margin:.5rem 0 0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.3rem}.late-return-list a{color:inherit;font-weight:600}.section__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.section__actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.report-nav{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.report-nav a{display:inline-flex;align-items:center;padding:.35rem .7rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-muted);font-size:.78rem;font-weight:600;text-decoration:none}.report-nav a:hover{color:var(--primary);border-color:#c7d2fe;background:var(--primary-soft)}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem;margin-bottom:2rem}.metric-card{display:flex;flex-direction:column;gap:.2rem;min-width:0;padding:1rem 1.1rem;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:var(--radius);box-shadow:var(--shadow);color:inherit;text-decoration:none;transition:transform .15s , box-shadow .15s , border-color .15s}.metric-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px -18px rgba(15,23,42,.35)}.metric-card--danger{border-left-color:var(--danger);background:#fff7f7}.metric-card__label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:700}.metric-card__value{font-size:1.65rem;line-height:1.1}.metric-card__hint{font-size:.76rem;color:var(--text-muted)}.report-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem;margin-bottom:1rem}.report-summary__item{display:flex;flex-direction:column;gap:.2rem;padding:.9rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow)}.report-summary__label{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-weight:700}.report-summary__value{font-size:1.35rem}.report-summary__hint{font-size:.76rem;color:var(--text-muted)}.report-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.report-card-title{margin:0;padding:1rem 1rem .4rem;font-size:.92rem}.report-table{min-width:640px}.report-table__notes{max-width:28ch;overflow-wrap:anywhere}.calendar-nav{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.calendar-nav__label{min-width:9rem;text-align:center;text-transform:capitalize}.calendar-legend{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin-bottom:.65rem;font-size:.78rem;color:var(--text-muted)}.calendar-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);margin-bottom:1rem}.calendar{min-width:820px}.calendar__weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--surface-2);border-bottom:1px solid var(--border)}.calendar__weekdays span{padding:.5rem;text-align:center;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.calendar__week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar__day{min-height:108px;padding:.4rem;border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:.25rem}.calendar__week .calendar__day:last-child{border-right:0}.calendar__week:last-child .calendar__day{border-bottom:0}.calendar__day.is-outside{background:var(--surface-2)}.calendar__day.is-outside .calendar__date{color:#94a3b8}.calendar__day.is-today{outline:2px solid var(--primary);outline-offset:-2px;background:#eef2ff}.calendar__date{font-size:.74rem;font-weight:700;color:var(--text-muted)}.calendar__events{display:flex;flex-direction:column;gap:.2rem}.calendar-event{display:flex;align-items:center;gap:.2rem;padding:.18rem .35rem;border-radius:6px;font-size:.66rem;line-height:1.25;text-decoration:none;color:#334155;background:#e2e8f0;overflow:hidden}.calendar-event__code{font-weight:700;white-space:nowrap}.calendar-event__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.8}.calendar-event__warning{margin-left:auto;color:var(--danger);font-weight:800}.calendar-event--confirmed{background:var(--info-soft);color:#075985}.calendar-event--draft{background:#f1f5f9;color:#475569}.calendar-event--in_progress{background:var(--warning-soft);color:#92400e}.utilization-bar{width:120px;height:.55rem;accent-color:var(--primary)}.audit-filters{align-items:flex-end}.audit-filters__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;flex:1 1 100%}.audit-filters__actions{display:flex;gap:.5rem;flex-wrap:wrap}.audit-table{min-width:1100px}.audit-table__date{white-space:nowrap}.audit-table__summary,.audit-table__reason{max-width:26ch;overflow-wrap:anywhere}.audit-action{display:inline-block;font-weight:600}.audit-details summary{cursor:pointer;color:var(--primary);font-weight:600;white-space:nowrap}.audit-details__label{margin:.55rem 0 .2rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.audit-details__json{margin:0;padding:.5rem .6rem;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;font-size:.72rem;line-height:1.45;max-width:320px;max-height:240px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}.pagination{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.pagination__info{font-size:.82rem;color:var(--text-muted)}.correction-form-card{border-color:#f59e0b}.correction-form{display:flex;flex-direction:column;gap:1rem}.correction-form__actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.loss-form{display:flex;flex-direction:column;gap:.4rem}.loss-reason{width:100%;min-width:220px;padding:.5rem .6rem;border:1px solid #cbd5e1;border-radius:8px;font-family:inherit;font-size:.82rem;resize:vertical}.sidebar-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:40}@media (max-width:960px){.stats-grid{grid-template-columns:1fr 1fr}.report-columns{grid-template-columns:1fr}.topbar__subtitle{display:none}}@media (max-width:767px){.sidebar{position:fixed;left:0;top:0;z-index:50;transform:translateX(-100%);transition:transform .2s ease;height:100vh}.sidebar.is-open{transform:translateX(0);box-shadow:0 20px 60px rgba(0,0,0,.4)}.topbar__toggle{display:grid}}@media (max-width:640px){.content{padding:1.25rem 1rem 2.5rem}.topbar{padding:.7rem 1rem}.user-meta{display:none}.stats-grid{grid-template-columns:1fr}.metric-grid,.report-summary-grid{grid-template-columns:1fr}.page-head__title{font-size:1.35rem}.quick-grid{grid-template-columns:1fr}.permission-list{grid-template-columns:1fr}.auth-panel{padding:1.6rem 1.25rem;border-radius:16px}}@media print{.sidebar,.topbar,.sidebar-overlay,.flash-stack{display:none!important}.app-shell,.app-main{display:block}.content{padding:0;max-width:none}}