:root{--text: #14202b;--text-soft: #5c6a78;--border: #d4deea;--bg: #edf3f9;--card: #ffffff;--brand: #0f5fa8;--brand-strong: #0b4e8b;--brand-soft: #e5effd;--ok-bg: #eefaf2;--ok-text: #13653d;--danger: #b61b1b;--danger-strong: #981616;--danger-soft: #ffe8e8;--radius-lg: 16px;--radius-md: 12px;--radius-sm: 10px;--shadow-1: 0 8px 20px rgba(18, 36, 55, .08);--shadow-2: 0 14px 30px rgba(18, 36, 55, .12);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--text);background:radial-gradient(circle at 8% 2%,rgba(15,95,168,.2),transparent 35%),radial-gradient(circle at 100% 0%,rgba(10,106,56,.16),transparent 32%),linear-gradient(180deg,#f5f9ff,#edf3f9 60%,#eaf2f7)}a{color:inherit}.app-shell{max-width:1360px;margin:0 auto;padding:1rem}.top-bar{position:sticky;top:0;z-index:60;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.8rem;margin-bottom:.8rem;padding:.85rem 1rem;border:1px solid rgba(255,255,255,.65);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffe0;box-shadow:var(--shadow-1)}.top-bar h1{margin:0;letter-spacing:.2px;font-size:clamp(1.25rem,1.7vw,1.6rem)}.top-bar-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem}.main-nav{position:sticky;top:84px;z-index:50;margin-top:.6rem;padding:.45rem;border:1px solid #dce6f1;border-radius:14px;background:#ffffffd9;box-shadow:var(--shadow-1);display:flex;flex-wrap:wrap;gap:.45rem}.main-nav a{text-decoration:none;color:#1d3f67;background:#eef4ff;border:1px solid #d6e5ff;border-radius:10px;padding:.62rem .95rem;font-size:.94rem;font-weight:700;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}.main-nav a:hover{transform:translateY(-1px);background:#e2eeff}.main-nav a.active{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--brand),#137fc2);box-shadow:0 8px 16px #0f5fa842}.page-content{margin-top:1rem}.dashboard-layout{display:grid;gap:1rem}.dashboard-hero{display:flex;justify-content:space-between;align-items:center;gap:.8rem;flex-wrap:wrap}.dashboard-stats-grid{margin-top:0}.card{background:linear-gradient(180deg,#fff,#fbfdff);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-1)}.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:min(100%,430px)}h2,h3,h4{margin-top:0;margin-bottom:.65rem}.muted-text{color:var(--text-soft)}.error-text{color:#a51313;font-weight:700}.success-text{color:var(--ok-text);font-weight:700}.machine-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.8rem;margin-top:.9rem}.machine-btn{text-decoration:none;text-align:center;font-size:1.13rem;font-weight:800;letter-spacing:.2px;color:#fff;border-radius:14px;border:1px solid transparent;padding:1.15rem;min-height:82px;display:grid;place-items:center;background:linear-gradient(140deg,#0f5fa8,#0f84a8);box-shadow:0 14px 20px #0f5fa838;transition:transform .18s ease,box-shadow .18s ease,filter .2s ease}.machine-btn:hover{transform:translateY(-2px);box-shadow:0 16px 26px #0f5fa84d;filter:brightness(1.03)}.form-grid{display:grid;gap:.8rem}.form-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}label{display:grid;gap:.38rem;font-weight:700;color:#203447}input,select{width:100%;border:1px solid #c8d6e5;border-radius:var(--radius-sm);padding:.74rem .78rem;font-size:1rem;background:#fff;transition:border-color .16s ease,box-shadow .16s ease}input:focus,select:focus{outline:none;border-color:#62a3dc;box-shadow:0 0 0 3px #0f5fa826}button{border:0;border-radius:var(--radius-sm);font-weight:800;line-height:1.1;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}button:hover{transform:translateY(-1px)}button:disabled{opacity:.65;cursor:not-allowed;transform:none}.primary-btn,.secondary-btn,.danger-btn{min-height:48px;padding:.72rem 1rem}.primary-btn{color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-strong));box-shadow:0 8px 14px #0f5fa838}.secondary-btn{color:#1c4167;background:var(--brand-soft);border:1px solid #cfe0fb}.danger-btn{color:#fff;background:linear-gradient(135deg,var(--danger),var(--danger-strong));box-shadow:0 8px 14px #b61b1b33}.large-btn{font-size:1.06rem}.user-chip{background:#edf4ff;border:1px solid #d6e5fc;border-radius:999px;padding:.48rem .86rem;font-size:.9rem;font-weight:700}.print-section{margin-top:1rem}.label-card{border:2px dashed #cadef3;border-radius:var(--radius-md);background:#f8fbff;padding:.9rem;max-width:380px;margin-bottom:.8rem}.label-card img{width:100%;height:auto}.section-title-row{display:flex;justify-content:space-between;align-items:center;gap:.8rem}.table-wrap{width:100%;overflow-x:auto;margin-bottom:.9rem;border-radius:12px;border:1px solid #d6e0eb;background:#fff}table{width:100%;border-collapse:collapse;min-width:720px}th,td{border-bottom:1px solid #e0e7f0;text-align:left;padding:.72rem;font-size:.95rem}thead th{position:sticky;top:0;z-index:2;background:#eef5fc}tbody tr:nth-child(2n) td{background:#fbfdff}.scan-row{display:grid;grid-template-columns:1fr auto;gap:.6rem;margin-bottom:1rem}.filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-bottom:1rem}.report-filter-grid{grid-template-columns:minmax(0,1fr) 180px}.scan-result{border:1px solid #d8e4ef;border-radius:12px;padding:1rem;background:linear-gradient(180deg,#fcfeff,#f7fbff)}.camera-wrap{margin-bottom:.8rem}.scanner-video{width:100%;max-width:430px;border-radius:12px;border:1px solid #cfdbea;background:#000}.nested-wrap{margin-top:-.2rem}.details-inline-row>td{background:#f4f9ff;padding:.6rem}.details-inline-row .nested-wrap{margin-top:0}.variant-note{margin:.35rem 0 .7rem}.short-pallet-section{border:1px solid #efd9b7;background:#fff8ef;border-radius:var(--radius-md);padding:.75rem;margin-bottom:.7rem}.short-pallet-section h4{margin:0 0 .6rem}.warehouse-split{display:grid;grid-template-columns:1fr;gap:.9rem}.warehouse-panel{border:1px solid var(--border);border-radius:14px;background:#fcfdff;padding:.85rem}.warehouse-panel h3{margin-bottom:.8rem}.warehouse-panel table{min-width:660px}.stock-panel th{background:#eef9f2}.delivered-panel th{background:#eef4fb}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-top:1rem}.stat-card{border:1px solid #d7e1ec;border-radius:var(--radius-md);padding:.85rem;background:#f8fbff}.stat-card h3{margin-bottom:0}.charts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin-top:1rem}.chart-card{border:1px solid #d7e1ec;border-radius:var(--radius-md);padding:.8rem;background:#f8fbff}.public-page{min-height:100vh;display:grid;place-items:center;padding:1rem}.public-card{width:min(100%,560px)}.public-details p{margin:.45rem 0}.button-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.small-btn{min-height:34px;padding:.35rem .62rem;font-size:.85rem}.icon-btn{display:inline-flex;align-items:center;gap:.35rem}.icon-btn svg{width:14px;height:14px;flex-shrink:0}.warehouse-wide{width:calc(100vw - 2rem);max-width:1760px;margin-left:calc(50% - 50vw + 1rem)}.warehouse-wide th,.warehouse-wide td{font-size:.98rem;padding:.78rem}.warehouse-wide .warehouse-panel table{min-width:760px}@media (max-width: 1024px){.app-shell{padding:.8rem}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.charts-grid{grid-template-columns:1fr}.warehouse-wide{width:100%;max-width:100%;margin-left:0}}@media (max-width: 768px){.top-bar{position:static;margin-bottom:.65rem}.main-nav{position:static;top:auto;padding:.38rem}.main-nav a{flex:1 1 calc(50% - .45rem);text-align:center}.machine-grid,.form-grid.compact,.scan-row,.filter-grid,.report-filter-grid,.stats-grid{grid-template-columns:1fr}.card{padding:.85rem}.user-chip{width:100%;text-align:center}.top-bar-actions{width:100%;justify-content:stretch}.top-bar-actions button{width:100%}}@media print{.top-bar,.main-nav,.print-section>h3,.print-section>button,.form-grid,.muted-text{display:none!important}.card{box-shadow:none;border:0}.printable-label{border:0;background:#fff}}
