:root{--theme-primary: #2563eb;--theme-secondary: #1e40af;--touch-min: 44px;--sidebar-width: 248px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;color:#0f172a;background:#f1f5f9}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,.btn,a.button{min-height:var(--touch-min);padding:.5rem 1rem;border-radius:8px;border:1px solid #cbd5e1;background:#fff;cursor:pointer;font-size:1rem}button:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--theme-primary);color:#fff;border-color:var(--theme-primary)}.btn.secondary{background:#e2e8f0}input,select,textarea{width:100%;min-height:var(--touch-min);padding:.5rem .75rem;border:1px solid #cbd5e1;border-radius:8px;font-size:1rem}input[type=checkbox],input[type=radio]{width:1.125rem;height:1.125rem;min-height:0;padding:0;margin:0;flex-shrink:0;accent-color:var(--theme-primary);cursor:pointer}label{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.card{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #00000014;margin-bottom:1rem}.muted{color:#64748b}.alert{padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem}.alert.error{background:#fef2f2;color:#b91c1c}.alert.success{background:#f0fdf4;color:#15803d}.alert-dismissible{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.alert-dismiss{flex-shrink:0;min-height:28px;min-width:28px;padding:0;border:none;background:transparent;color:inherit;opacity:.7;cursor:pointer;font-size:1rem;line-height:1}.alert-dismiss:hover{opacity:1}.page{width:100%;max-width:none}.page h1{margin-top:0}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.header-actions{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.filter-toggle{display:inline-flex;flex-direction:row;align-items:center;gap:.55rem;margin:0;padding:.45rem .9rem;min-height:var(--touch-min);background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;font-size:.95rem;font-weight:500;color:#334155;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:border-color .15s,background .15s,box-shadow .15s}.filter-toggle:hover{border-color:#cbd5e1;background:#f8fafc}.filter-toggle:has(input:checked){border-color:var(--theme-primary);background:color-mix(in srgb,var(--theme-primary) 8%,white);color:var(--theme-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-primary) 12%,transparent)}.filter-toggle input[type=checkbox]{width:1rem;height:1rem}.app-main:has(.detail-page){padding:0;display:flex;flex-direction:column}.app-layout{display:flex;min-height:100vh}.app-content{flex:1;display:flex;flex-direction:column;min-width:0}.app-topbar{background:var(--theme-secondary);color:#fff;min-height:64px;padding:0 1.5rem;display:flex;align-items:center;justify-content:flex-end;flex-shrink:0;box-shadow:0 2px 8px #00000014}.manager-topbar{justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.5rem 1.25rem}.topbar-logo-link{display:flex;align-items:center;text-decoration:none;flex-shrink:0}.topbar-right{display:flex;align-items:center;gap:1rem}.topbar-user{font-weight:600;font-size:.95rem}.topbar-role{font-size:.8rem;opacity:.85;text-transform:capitalize;padding:.2rem .6rem;background:#ffffff26;border-radius:999px}.topbar-logout{min-height:36px;padding:.35rem .85rem;font-size:.875rem;border:1px solid rgba(255,255,255,.35);background:#ffffff1a;color:#fff;border-radius:8px;cursor:pointer}.topbar-logout:hover{background:#fff3}.low-stock-bell{position:relative}.low-stock-bell-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;min-height:42px;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:10px;background:#ffffff1f;color:#fff;cursor:pointer}.low-stock-bell-btn svg{width:20px;height:20px}.low-stock-bell-btn:hover,.low-stock-bell-btn[aria-expanded=true]{background:#ffffff38}.low-stock-bell-btn.has-alerts{background:#ffffff2e}.low-stock-bell-badge{position:absolute;top:-4px;right:-4px;min-width:1.25rem;height:1.25rem;padding:0 .3rem;border-radius:999px;background:#fbbf24;color:#78350f;font-size:.68rem;font-weight:800;line-height:1.25rem;text-align:center;border:2px solid var(--theme-secondary)}.low-stock-panel{position:absolute;top:calc(100% + .55rem);right:0;width:min(380px,calc(100vw - 2rem));max-height:min(70vh,480px);display:flex;flex-direction:column;background:#fff;color:#0f172a;border-radius:14px;box-shadow:0 18px 40px #0f172a38;border:1px solid #e2e8f0;z-index:1200;overflow:hidden}.low-stock-panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:1rem 1rem .75rem;border-bottom:1px solid #e2e8f0;background:#fffbeb}.low-stock-panel-header strong{display:block;font-size:.95rem}.low-stock-panel-header p{margin:.2rem 0 0;font-size:.82rem}.low-stock-refresh{min-height:34px;padding:.25rem .65rem;border-radius:8px;border:1px solid #fcd34d;background:#fff;color:#92400e;font-size:.8rem;font-weight:600;cursor:pointer}.low-stock-panel-body{overflow-y:auto;flex:1}.low-stock-empty{margin:0;padding:1.25rem 1rem;text-align:center}.low-stock-list{list-style:none;margin:0;padding:.35rem}.low-stock-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .75rem;border-radius:10px;text-decoration:none;color:inherit}.low-stock-item:hover{background:#fff7ed}.low-stock-item-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}.low-stock-item-name{font-weight:650;font-size:.92rem}.low-stock-item-qty{flex-shrink:0;font-size:.9rem;color:#b45309}.low-stock-item-qty strong{font-size:1rem}.low-stock-panel-footer{padding:.75rem 1rem;border-top:1px solid #e2e8f0;background:#f8fafc}.low-stock-panel-footer a{color:var(--theme-primary);font-weight:600;font-size:.88rem;text-decoration:none}.low-stock-panel-footer a:hover{text-decoration:underline}.app-main{flex:1;padding:1.5rem;overflow:auto;background:#f1f5f9}.sidebar{width:var(--sidebar-width);background:var(--theme-primary);color:#fff;display:flex;flex-direction:column;flex-shrink:0;min-height:100vh;max-height:100vh;position:sticky;top:0;overflow:hidden}.sidebar-brand{display:flex;align-items:center;justify-content:center;padding:1rem 1rem .85rem;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.12)}.brand-logo,.sidebar-logo-img{max-width:100%;width:auto;height:auto;max-height:64px;object-fit:contain;display:block}.topbar-logo-img{max-height:52px;max-width:180px;object-fit:contain}.brand-logo-fallback{width:72px;height:72px;display:flex;align-items:center;justify-content:center;background:#ffffff26;border-radius:12px;color:#fff}.brand-logo-fallback svg{width:36px;height:36px}.sidebar-brand .brand-logo-fallback{width:64px;height:64px}.sidebar-brand .brand-logo-fallback svg{width:32px;height:32px}.branding-logo-preview{margin-bottom:1.25rem;padding:1rem;background:#f8fafc;border-radius:10px;text-align:center}.branding-preview-img{max-height:80px;max-width:200px;object-fit:contain;margin-top:.5rem}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:.15rem;padding:.65rem .55rem 1rem;overflow-y:auto}.sidebar-link{color:#ffffffe0;text-decoration:none;padding:.55rem .75rem;border-radius:8px;min-height:40px;display:flex;align-items:center;font-size:.92rem;font-weight:500}.sidebar-link.active,.sidebar-link:hover{background:#ffffff2e;color:#fff}.sidebar-accordion{display:flex;flex-direction:column;gap:.1rem}.sidebar-accordion-trigger{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;min-height:40px;padding:.45rem .75rem;margin:0;border:none;border-radius:8px;background:transparent;color:#ffffffb8;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-align:left}.sidebar-accordion-trigger:hover,.sidebar-accordion.open>.sidebar-accordion-trigger,.sidebar-accordion.has-active>.sidebar-accordion-trigger{background:#ffffff1a;color:#fff}.sidebar-accordion-chevron{width:16px;height:16px;flex-shrink:0;opacity:.8;transition:transform .18s ease}.sidebar-accordion.open>.sidebar-accordion-trigger .sidebar-accordion-chevron{transform:rotate(180deg)}.sidebar-accordion-panel{display:flex;flex-direction:column;gap:.1rem;padding:.15rem 0 .35rem .35rem}.sidebar-accordion-panel[hidden]{display:none}.sidebar-sublink{padding-left:.9rem;font-size:.88rem;font-weight:500;min-height:38px;color:#ffffffd1}.manager-layout{min-height:100vh;display:flex;flex-direction:column}.manager-tabs{display:flex;gap:.35rem;flex:1;justify-content:center;flex-wrap:wrap}.manager-tabs a{color:#ffffffe6;text-decoration:none;padding:.5rem .85rem;border-radius:8px;font-weight:500;min-height:var(--touch-min);display:flex;align-items:center}.manager-tabs a.active,.manager-tabs a:hover{background:#fff3;color:#fff}.manager-main{flex:1;padding:1rem 1.5rem;max-width:900px;margin:0 auto;width:100%;background:#f1f5f9}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;position:relative;overflow:hidden;background:linear-gradient(145deg,var(--theme-secondary) 0%,var(--theme-primary) 45%,#1d4ed8 100%)}.login-bg-shapes{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.login-shape{position:absolute;border-radius:50%;background:#ffffff0f}.login-shape-1{width:420px;height:420px;top:-120px;right:-80px}.login-shape-2{width:280px;height:280px;bottom:-60px;left:-40px}.login-shape-3{width:160px;height:160px;top:40%;left:12%;background:#ffffff0a}.login-shell{position:relative;z-index:1;width:100%;max-width:520px;display:flex;flex-direction:column;align-items:center}.login-card{width:100%;background:#fffffffa;border-radius:20px;padding:3rem 3.25rem;box-shadow:0 24px 48px #0f172a2e,0 0 0 1px #ffffff14;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.login-card-header{text-align:center;margin-bottom:2rem}.login-logo{max-height:88px;max-width:220px;object-fit:contain;margin:0 auto 1.25rem;display:block}.login-logo-placeholder{width:72px;height:72px;margin:0 auto 1.25rem;border-radius:16px;background:linear-gradient(135deg,var(--theme-primary),var(--theme-secondary));color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px #2563eb59}.login-logo-placeholder svg{width:36px;height:36px}.login-card h1{margin:0 0 .5rem;font-size:1.75rem;font-weight:700;letter-spacing:-.02em;color:#0f172a}.login-subtitle{margin:0;color:#64748b;font-size:1rem;line-height:1.5}.login-alert{margin-bottom:1.25rem}.login-fields{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1.75rem}.login-label{margin-bottom:0}.login-label span{font-size:.9rem;font-weight:600;color:#334155;margin-bottom:.5rem}.login-label input{min-height:52px;padding:.75rem 1rem;font-size:1.05rem;border:1.5px solid #e2e8f0;border-radius:12px;transition:border-color .15s,box-shadow .15s}.login-label input:focus{outline:none;border-color:var(--theme-primary);box-shadow:0 0 0 4px #2563eb1f}.login-label input::placeholder{color:#94a3b8}.password-input-wrap{position:relative;display:flex;align-items:center}.password-input-wrap input{width:100%;padding-right:3rem}.password-toggle{position:absolute;right:.5rem;min-height:44px;min-width:44px;padding:0;border:none;background:transparent;color:#64748b;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:none}.password-toggle:hover{color:var(--theme-primary);background:#f1f5f9}.password-toggle svg{width:22px;height:22px}.login-submit{width:100%;min-height:52px;font-size:1.05rem;font-weight:600;border-radius:12px;border:none;box-shadow:0 8px 20px #2563eb4d;transition:transform .15s,box-shadow .15s}.login-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 24px #2563eb59}.login-submit:active:not(:disabled){transform:translateY(0)}.login-footer{margin-top:1.75rem;color:#ffffffeb;text-align:center;font-size:.95rem;line-height:1.6;max-width:420px}@media(max-width:560px){.login-card{padding:2.25rem 1.75rem;border-radius:16px}.login-card h1{font-size:1.5rem}}.table-toolbar{display:flex;gap:1rem;margin-bottom:1rem;align-items:center;flex-wrap:wrap}.data-table-panel{margin-top:.5rem;width:100%}.search-box{position:relative;flex:1;min-width:240px;max-width:420px}.search-icon{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);width:18px;height:18px;color:#94a3b8;pointer-events:none}.search-input{width:100%;max-width:none;padding-left:2.5rem;padding-right:2.25rem;min-height:44px;border-radius:10px;border:1.5px solid #e2e8f0;background:#fff;transition:border-color .15s,box-shadow .15s}.search-input:focus{outline:none;border-color:var(--theme-primary);box-shadow:0 0 0 3px #2563eb1a}.search-clear{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);min-height:32px;min-width:32px;padding:0;border:none;background:#f1f5f9;color:#64748b;border-radius:6px;font-size:1.1rem;line-height:1;box-shadow:none}.table-card{background:#fff;border-radius:14px;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0f172a0f;overflow:hidden}.table-wrap{overflow-x:auto}table.data-table{width:100%;border-collapse:collapse;table-layout:auto}.data-table .col-wrap{max-width:220px;white-space:normal;word-break:break-word}.data-table .col-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85rem;color:#475569}.data-table thead{background:linear-gradient(to bottom,#f8fafc,#f1f5f9);border-bottom:2px solid #e2e8f0}.data-table th{text-align:left;padding:.85rem 1rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b;white-space:nowrap}.data-table td{padding:.9rem 1rem;border-bottom:1px solid #f1f5f9;vertical-align:middle;font-size:.95rem}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:#f8fafc}.data-table .col-primary{font-weight:600;color:#0f172a}.data-table .col-actions{width:1%;white-space:nowrap;text-align:right}.detail-link{display:inline-flex;align-items:center;gap:.15rem;color:var(--theme-primary);text-decoration:none;font-weight:600;font-size:.875rem;padding:.35rem .65rem;border-radius:8px;transition:background .15s}.detail-link:hover{background:#eff6ff}.detail-link svg{width:16px;height:16px}.status-badge{display:inline-flex;align-items:center;padding:.25rem .65rem;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.02em}.status-badge.active{background:#dcfce7;color:#15803d}.status-badge.inactive{background:#f1f5f9;color:#64748b}.contact-cell{display:flex;flex-direction:column;gap:.15rem}.contact-line{font-size:.9rem;color:#334155}.contact-phone{font-size:.85rem;color:#64748b}.cell-muted{color:#94a3b8}.stock-low{color:#b45309;font-weight:600}.stock-ok{color:#0f172a;font-weight:500}.table-footer{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;border-top:1px solid #e2e8f0;background:#fafbfc;flex-wrap:wrap;gap:.75rem}.table-count{font-size:.875rem;color:#64748b}.pagination{display:flex;align-items:center;gap:.5rem}.pagination-btn{min-height:36px;padding:.35rem .85rem;font-size:.875rem;border-radius:8px}.page-indicator{font-size:.875rem;color:#64748b;min-width:4.5rem;text-align:center}.table-loading{padding:1rem}.skeleton-row{height:48px;margin-bottom:.5rem;border-radius:8px;background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0,#f1f5f9 75%);background-size:200% 100%;animation:shimmer 1.2s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.table-empty{padding:3rem 1.5rem;text-align:center}.table-empty p{margin:0 0 .35rem;font-weight:600;color:#334155}.back-link{display:inline-flex;align-items:center;color:var(--theme-primary);text-decoration:none;font-weight:600;font-size:.9rem;margin-bottom:1rem}.back-link:hover{text-decoration:underline}.detail-page{flex:1;display:flex;flex-direction:column;min-height:100%;width:100%}.detail-hero{background:linear-gradient(135deg,var(--theme-primary) 0%,color-mix(in srgb,var(--theme-primary) 72%,var(--theme-secondary)) 100%);color:#fff;padding:1.75rem 2rem 2rem;box-shadow:0 4px 24px #0f172a1f}.detail-hero-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.detail-back{color:#ffffffeb;text-decoration:none;font-weight:600;font-size:.9rem;padding:.35rem .75rem;border-radius:8px;background:#ffffff1f;transition:background .15s}.detail-back:hover{background:#ffffff38;text-decoration:none}.detail-hero .status-badge.active{background:#fff3;color:#fff}.detail-hero .status-badge.inactive{background:#0003;color:#ffffffd9}.detail-title{margin:0 0 .5rem;font-size:clamp(1.75rem,3vw,2.35rem);font-weight:800;letter-spacing:-.02em;line-height:1.15}.detail-timeline{display:flex;flex-wrap:wrap;gap:.35rem .5rem;font-size:.875rem;opacity:.88}.detail-timeline-sep{opacity:.6}.detail-highlights{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}.detail-highlight{background:#ffffff24;border:1px solid rgba(255,255,255,.2);border-radius:12px;padding:.75rem 1.1rem;min-width:120px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.detail-highlight-warning{background:#fbbf2438;border-color:#fbbf2459}.detail-highlight-success{background:#22c55e33;border-color:#22c55e59}.detail-highlight-label{display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;opacity:.85;margin-bottom:.25rem}.detail-highlight-value{font-size:1.35rem;font-weight:800;line-height:1.2}.detail-body{flex:1;padding:1.75rem 2rem 2.5rem;background:#f1f5f9}.detail-body-centered{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:320px;padding:2rem}.detail-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;width:100%}.detail-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:1.15rem 1.25rem;box-shadow:0 1px 3px #0f172a0d;transition:box-shadow .15s,border-color .15s}.detail-card:hover{border-color:color-mix(in srgb,var(--theme-primary) 25%,#e2e8f0);box-shadow:0 4px 16px #0f172a14}.detail-card-wide{grid-column:1 / -1}.detail-card-label{display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin-bottom:.5rem}.detail-card-value{font-size:1.05rem;font-weight:600;color:#0f172a;word-break:break-word;line-height:1.45}.detail-section{margin-top:2rem;width:100%}.detail-section-title{margin:0 0 1rem;font-size:1.2rem;font-weight:700;color:#0f172a}.detail-hero-skeleton{min-height:180px}.detail-skeleton-title{height:36px;width:280px;max-width:60%;border-radius:8px;background:#fff3;margin-bottom:1rem}.detail-skeleton-line{height:16px;width:200px;border-radius:6px;background:#ffffff26}.detail-card-skeleton{min-height:88px;background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0,#f1f5f9 75%);background-size:200% 100%;animation:shimmer 1.2s infinite}.detail-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.detail-header h1{margin:0}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem}.detail-field{display:flex;flex-direction:column;gap:.35rem}.detail-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.detail-value{font-size:1rem;color:#0f172a;word-break:break-word}.detail-loading{padding:2rem;color:#64748b}.section-title{margin:2rem 0 1rem;font-size:1.15rem}.low-stock{color:#b45309;font-weight:600}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:#fff;padding:1rem;border-radius:12px;display:flex;flex-direction:column;border:1px solid transparent;box-shadow:0 1px 3px #0000000f}.stat-card-link{text-decoration:none;color:inherit;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.stat-card-link:hover{border-color:color-mix(in srgb,var(--theme-primary) 35%,#e2e8f0);box-shadow:0 4px 14px #0f172a14;transform:translateY(-1px)}.stat-card span{color:#64748b;font-size:.85rem}.stat-card strong{font-size:1.75rem}.bar-group-link{text-decoration:none;color:inherit;cursor:pointer;border-radius:10px;padding:.35rem;transition:background .15s ease}.bar-group-link:hover{background:#f8fafc}.alert-badge strong{color:#b45309}.bar-chart{display:flex;gap:2rem;align-items:flex-end;height:200px;padding:1rem 0}.bar-group{display:flex;flex-direction:column;align-items:center;flex:1;height:100%;justify-content:flex-end}.bar{width:60px;background:var(--theme-primary);border-radius:6px 6px 0 0;min-height:4px}.bar.dispatched{background:#f59e0b}.scanner-block{margin:0 0 1rem}.scanner-hint{margin:.5rem 0 0;font-size:.875rem}.scanner-input{display:flex;gap:.75rem;margin:0;align-items:stretch}.scanner-input.success .scan-field{border-color:#22c55e}.scanner-input.error .scan-field{border-color:#ef4444}.scanner-input .scan-field{flex:1;min-width:0}.transaction-page{display:flex;flex-direction:column;gap:1rem;max-width:1100px}.transaction-page>.card,.transaction-page>.alert{margin-bottom:0}.transaction-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.25rem}.transaction-header h1{margin:0;font-size:1.65rem}.transaction-subtitle{margin:.25rem 0 0;font-size:.95rem}.transaction-controls{padding:1rem 1.25rem}.transaction-controls-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:end}.transaction-field{margin-bottom:0;min-width:0}.scope-badge{display:flex;flex-direction:column;justify-content:center;gap:.2rem;min-height:calc(var(--touch-min) + 1.5rem);padding:.5rem .85rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:.95rem;color:#0f172a}.scope-badge-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.transaction-section-title{margin:0 0 .85rem;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.transaction-add{padding:1.15rem 1.25rem}.product-search{padding-top:.85rem;border-top:1px solid #e2e8f0}.product-search label{margin-bottom:0}.product-search .select-list{margin-top:.75rem;max-height:220px}.search-product-btn{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;text-align:left}.search-product-btn:disabled{opacity:.55;cursor:not-allowed}.search-product-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}.search-product-name{font-weight:600}.stock-pill{flex-shrink:0;display:inline-flex;align-items:center;gap:.3rem;padding:.28rem .7rem;border-radius:999px;background:color-mix(in srgb,var(--theme-secondary) 18%,white);color:var(--theme-secondary);border:1.5px solid color-mix(in srgb,var(--theme-secondary) 45%,white);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--theme-secondary) 8%,transparent);font-size:.78rem;font-weight:800;letter-spacing:.01em;white-space:nowrap}.stock-pill:before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:var(--theme-secondary);box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-secondary) 25%,transparent)}.stock-pill-empty{background:#fef2f2;color:#b91c1c;border-color:#fecaca;box-shadow:none}.stock-pill-empty:before{background:#ef4444;box-shadow:0 0 0 3px #ef444433}.stock-inline{display:inline-flex;align-items:center;gap:.3rem;margin-left:.65rem;padding:.2rem .6rem;border-radius:999px;background:color-mix(in srgb,var(--theme-secondary) 16%,white);color:var(--theme-secondary);border:1.5px solid color-mix(in srgb,var(--theme-secondary) 40%,white);font-size:.78rem;font-weight:800;letter-spacing:.01em}.stock-inline:before{content:"";width:.4rem;height:.4rem;border-radius:50%;background:var(--theme-secondary)}.search-section-title{margin:1rem 0 .5rem;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.search-section-title:first-of-type{margin-top:.75rem}.search-pack-btn{display:flex;align-items:center;gap:.65rem}.search-pack-badge{display:inline-flex;padding:.15rem .5rem;border-radius:999px;background:color-mix(in srgb,var(--theme-secondary) 15%,white);color:var(--theme-secondary);font-size:.7rem;font-weight:700;text-transform:uppercase;flex-shrink:0}.transaction-page .scan-field{font-size:1.25rem;flex:1}.line-items .line-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.line-items .line-header h2{margin:0;font-size:1.05rem;display:flex;align-items:center;gap:.5rem}.line-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.6rem;height:1.6rem;padding:0 .4rem;border-radius:999px;background:#f1f5f9;color:#475569;font-size:.85rem;font-weight:700}.line-empty{margin:.75rem 0 0}.transaction-footer{position:sticky;bottom:0;padding:.75rem 0 .25rem;background:linear-gradient(to top,#f1f5f9 70%,transparent);z-index:5}.transaction-footer .submit-btn{margin-top:0}@media(max-width:720px){.transaction-controls-row{grid-template-columns:1fr}}.line-list{list-style:none;padding:0;margin:0}.line-list>li{display:grid;grid-template-columns:1fr auto auto;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid #e2e8f0}.line-list>li.line-list-pack{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:1.25rem}.line-pack-main{min-width:0}.line-pack-actions{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.75rem;align-self:center}.line-pack-qty{display:inline-flex;flex-direction:row;align-items:center;gap:.5rem}.line-pack-qty-caption{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b;line-height:1;white-space:nowrap}.line-pack-actions>button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch-min);min-width:var(--touch-min);padding:0;line-height:1}.line-pack-qty-input{width:72px!important;height:var(--touch-min)!important;min-height:var(--touch-min)!important;padding:0 .4rem!important;margin:0!important;line-height:normal;text-align:center;font-size:1.1rem;font-weight:700}.line-pack-items{list-style:none;margin:.5rem 0 0;padding:.65rem .85rem;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.line-pack-items>li{display:grid;grid-template-columns:1fr auto auto;gap:.75rem;align-items:center;padding:.35rem 0;border:none;font-size:.9rem}.line-pack-item-qty{font-weight:600;color:#475569;white-space:nowrap}.line-name{font-size:1.15rem;font-weight:600}.line-list>li>.line-meta{grid-column:1;color:#64748b;font-size:.9rem}.line-pack-main>.line-meta{color:#64748b;font-size:.9rem}.qty-input{width:80px;text-align:center;font-size:1.1rem}.submit-btn{width:100%;font-size:1.1rem;margin-top:1rem}.form-card{max-width:520px}.form-actions{display:flex;gap:.75rem;flex-wrap:wrap}.pack-form{max-width:720px;padding:1.5rem 1.75rem;margin-bottom:1.5rem}.pack-form-header{margin-bottom:1.25rem}.pack-form-header h2{margin:0 0 .35rem;font-size:1.35rem}.pack-form-header p{margin:0;font-size:.9rem}.pack-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.25rem;margin-bottom:1.5rem}.pack-field{display:flex;flex-direction:column;gap:.4rem;margin:0}.pack-field span{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.pack-field-wide{grid-column:1 / -1}.pack-items-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1.25rem 1.35rem;margin-bottom:1.5rem}.pack-items-section h3{margin:0 0 1rem;font-size:1.05rem}.pack-items-add{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;padding-bottom:1rem;border-bottom:1px solid #e2e8f0;margin-bottom:1rem}.pack-add-field{display:flex;flex-direction:column;gap:.4rem;margin:0}.pack-add-field span{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.pack-add-product{flex:1;min-width:200px}.pack-add-product select{width:100%}.pack-add-qty{width:100px}.pack-add-qty input{width:100%;text-align:center}.pack-add-btn{flex-shrink:0;min-height:var(--touch-min)}.pack-empty-hint{margin:0;padding:.75rem 0;font-size:.9rem}.pack-items-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.pack-item-row{display:flex;align-items:center;gap:1rem;padding:.85rem 1rem;background:#fff;border:1px solid #e2e8f0;border-radius:10px}.pack-item-info{flex:1;min-width:0}.pack-item-info strong{font-size:.95rem;color:#0f172a}.pack-item-qty{font-weight:700;color:var(--theme-primary);min-width:3rem;text-align:center}.pack-item-remove{min-height:36px;padding:.35rem .75rem;font-size:.85rem;color:#b91c1c;border-color:#fecaca;background:#fef2f2}.pack-item-remove:hover{background:#fee2e2}.pack-form-actions{padding-top:.25rem}.pack-warehouse-filter{padding:1rem 1.25rem;margin-bottom:1rem;max-width:360px}.pack-warehouse-filter label{margin:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:1.25rem;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-dialog{background:#fff;border-radius:16px;box-shadow:0 24px 48px #0f172a33;width:100%;max-width:720px;max-height:calc(100vh - 2.5rem);overflow:hidden;display:flex;flex-direction:column}.confirm-modal{padding:0}.confirm-modal-header{padding:1.5rem 1.75rem 1rem;border-bottom:1px solid #e2e8f0}.confirm-modal-header h2{margin:0 0 .35rem;font-size:1.35rem}.confirm-modal-header p{margin:0}.confirm-modal-body{overflow-y:auto;flex:1;min-height:0}.confirm-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;padding:1rem 1.75rem;background:#f8fafc;border-bottom:1px solid #e2e8f0}.confirm-meta-row{display:flex;flex-direction:column;gap:.2rem}.confirm-meta-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.confirm-meta-value{font-weight:600;color:#0f172a}.confirm-table-wrap{overflow:auto;padding:0 1.75rem;flex:1}.confirm-section-title{margin:0 0 .75rem;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.confirm-pack-section{padding:1rem 1.75rem 0;border-bottom:1px solid #e2e8f0}.confirm-pack-hint{margin:0 0 .75rem;font-size:.9rem}.confirm-pack-list{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.75rem}.confirm-pack-card{border:1px solid #e2e8f0;border-radius:10px;padding:1rem;background:#fff}.confirm-pack-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:nowrap;margin-bottom:.75rem}.confirm-pack-head strong{display:block;margin-top:.35rem}.confirm-pack-barcode{display:block;margin-top:.2rem;font-size:.85rem}.confirm-pack-count{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:.5rem;margin:0;flex-shrink:0;font-size:.8rem;font-weight:600;color:#475569;align-self:center}.confirm-pack-count input{width:72px;height:var(--touch-min);min-height:var(--touch-min);padding:0 .4rem;text-align:center;font-size:1.1rem;font-weight:700;line-height:normal}.confirm-pack-items{list-style:none;margin:0;padding:.65rem .85rem;background:#f8fafc;border-radius:8px}.confirm-pack-items li{display:grid;grid-template-columns:1fr auto auto;gap:.75rem;padding:.3rem 0;font-size:.9rem}.confirm-pack-item-qty{font-weight:600;color:#475569;white-space:nowrap}.confirm-table{margin:1rem 0}.confirm-summary{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 1.75rem;background:#f8fafc;border-top:1px solid #e2e8f0;font-size:.9rem;color:#475569}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.75rem 1.5rem;border-top:1px solid #e2e8f0}.report-filters{display:flex;flex-wrap:wrap;gap:1rem 1.25rem;align-items:flex-end;padding:1rem 1.25rem;margin-bottom:1rem}.report-filters label{margin:0;min-width:160px}@media(max-width:640px){.pack-form-grid{grid-template-columns:1fr}.pack-items-add{flex-direction:column;align-items:stretch}.pack-add-qty{width:100%}.pack-item-row{flex-wrap:wrap}}.tab-bar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tab-bar button.active{background:var(--theme-primary);color:#fff}.barcode-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:start}.barcode-warehouse-filter{max-width:360px;margin-bottom:1rem}.barcode-picker{padding:1.25rem 1.5rem;max-height:calc(100vh - 220px);overflow-y:auto}.barcode-section{margin-bottom:1.75rem}.barcode-section:last-child{margin-bottom:0}.barcode-section h2{margin:0 0 .85rem;font-size:1.05rem;padding-bottom:.5rem;border-bottom:1px solid #e2e8f0}.barcode-select-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.barcode-select-list button{width:100%;text-align:left;display:flex;flex-direction:column;gap:.2rem;padding:.75rem 1rem;border-radius:10px;border:1.5px solid #e2e8f0;background:#fff;cursor:pointer;transition:border-color .15s,background .15s}.barcode-select-list button:hover{border-color:#cbd5e1;background:#f8fafc}.barcode-select-list button.active{border-color:var(--theme-primary);background:color-mix(in srgb,var(--theme-primary) 8%,white)}.barcode-item-name{font-weight:600;color:#0f172a;font-size:.95rem}.barcode-item-code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.8rem;color:#64748b}.barcode-empty{margin:0;padding:.5rem 0;font-size:.9rem}.barcode-preview{padding:1.75rem 1.5rem;text-align:center;position:sticky;top:1rem}.barcode-preview h2{margin:0 0 .35rem}.barcode-preview-code{margin:0 0 1.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:#64748b;font-size:.95rem}.barcode-svg-wrap{padding:1.25rem;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0;margin-bottom:1.25rem}.barcode-preview-empty{min-height:280px;display:flex;align-items:center;justify-content:center}.select-list{list-style:none;padding:0;max-height:200px;overflow:auto}.select-list button{width:100%;text-align:left;margin-bottom:.35rem}.barcode-preview{text-align:center}.page-loading{padding:2rem;text-align:center}.inline-label{display:inline-flex;flex-direction:row;align-items:center;gap:.5rem;margin-bottom:1rem}.checkbox-label{flex-direction:row;align-items:center;gap:.5rem;margin:0}@media(max-width:768px){.app-layout{flex-direction:column}.sidebar{width:100%}.sidebar-brand{padding:1rem}.brand-logo,.sidebar-logo-img{max-height:64px}.sidebar-nav{flex-direction:column;flex-wrap:nowrap;max-height:none}.app-topbar{min-height:52px;padding:.5rem 1rem}.topbar-right{gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.topbar-role{display:none}.detail-hero{padding:1.25rem 1rem 1.5rem}.detail-body{padding:1.25rem 1rem 2rem}.detail-cards-grid{grid-template-columns:1fr}.detail-highlights{gap:.5rem}.detail-highlight{min-width:0;flex:1 1 calc(50% - .5rem)}.barcode-layout{grid-template-columns:1fr}.barcode-preview{position:static}}
