:root{--bg:#f5f6f8;--surface:#fff;--border:#e4e7eb;--text:#1f2937;--text-muted:#6b7684;--primary:#2c6eda;--primary-hover:#2258b0;--primary-soft:#eaf1fd;--danger:#e02b2b;--danger-bg:#fdecec;--success:#159f5e;--success-bg:#e7f8ef;--warning-bg:#fff8e6;--warning-border:#fbe0a0;--sidebar-bg:#fff;--sidebar-border:#e9ebee;--sidebar-text:#5b6b79;--sidebar-active-bg:#eaf1fd;--sidebar-active-text:#2c6eda;--chart-1:#2c6eda;--chart-2:#eb6834;--radius:8px;--shadow:0 1px 2px #1018280f, 0 1px 3px #1018280a}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;overflow-x:hidden}h1{margin:0 0 1.2rem;font-size:1.6rem}h2{margin:0 0 .8rem;font-size:1.1rem}button{cursor:pointer;font-family:inherit}input,select{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:.5rem .7rem;font-family:inherit;font-size:.95rem}input:focus,select:focus{outline:2px solid var(--primary);outline-offset:-1px}.layout{background:var(--bg);min-height:100vh;display:flex}.sidebar{background:var(--sidebar-bg);border-inline-end:1px solid var(--sidebar-border);width:232px;color:var(--sidebar-text);flex-direction:column;flex-shrink:0;padding:1.1rem .75rem;display:flex}.brand{color:var(--text);align-items:center;gap:.5rem;margin-bottom:1.4rem;padding:.4rem .5rem;font-size:1.05rem;font-weight:700;display:flex}.brand-icon{font-size:1.4rem}.sidebar nav{flex-direction:column;gap:.15rem;display:flex}.nav-link{color:var(--sidebar-text);border-inline-start:3px solid #0000;border-radius:6px;align-items:center;gap:.65rem;padding:.6rem .75rem;font-size:.88rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-link:hover{color:var(--text);background:#f5f7fa}.nav-link.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text);border-inline-start-color:var(--primary);font-weight:600}.nav-icon{font-size:1.02rem}.bottom-nav{display:none}.main-col{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:1.2rem;min-height:56px;padding:0 1.6rem;display:flex}.topbar-title{white-space:nowrap;flex-shrink:0;font-size:1rem;font-weight:700}.topbar-search{background:var(--bg);border:1px solid var(--border);border-radius:6px;flex:1;align-items:center;gap:.4rem;min-width:0;max-width:360px;padding:.35rem .7rem;display:flex}.topbar-search input{background:0 0;border:none;flex:1;min-width:0;padding:0;font-size:.85rem}.topbar-search input:focus{outline:none}.search-icon{opacity:.6;font-size:.85rem}.topbar-actions{align-items:center;gap:.5rem;margin-left:auto;display:flex}.lang-switch{border:1px solid var(--border);border-radius:6px;display:flex;overflow:hidden}.lang-switch button{background:var(--surface);color:var(--text-muted);border:none;padding:.35rem .6rem;font-size:.72rem;font-weight:700}.lang-switch button+button{border-inline-start:1px solid var(--border)}.lang-switch button.active{background:var(--primary-soft);color:var(--primary)}.icon-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:.4rem;font-size:1.05rem;text-decoration:none;display:inline-flex;position:relative}.icon-btn:hover{background:var(--bg)}.notif-wrapper{position:relative}.notif-badge{top:2px;background:var(--danger);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:15px;height:15px;padding:0 3px;font-size:.62rem;font-weight:700;line-height:1;display:flex;position:absolute;inset-inline-end:2px}.notif-dropdown{top:calc(100% + 8px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);z-index:60;width:300px;max-width:88vw;position:absolute;inset-inline-end:0;overflow:hidden;box-shadow:0 10px 30px #10182826}.notif-dropdown-header{border-bottom:1px solid var(--border);padding:.7rem .9rem;font-size:.85rem;font-weight:700}.notif-list{max-height:260px;margin:0;padding:0;list-style:none;overflow-y:auto}.notif-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.6rem;padding:.6rem .9rem;font-size:.85rem;display:flex}.notif-list li:last-child{border-bottom:none}.notif-item-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.notif-item-qty{flex-shrink:0;font-size:.8rem;font-weight:700}.notif-dropdown-footer{text-align:center;color:var(--primary);border-top:1px solid var(--border);padding:.6rem;font-size:.82rem;font-weight:600;text-decoration:none;display:block}.notif-dropdown-footer:hover{background:var(--bg)}.product-thumb{object-fit:cover;background:var(--bg);border:1px solid var(--border);border-radius:6px;width:40px;height:40px;display:block}.product-thumb-placeholder{justify-content:center;align-items:center;font-size:1.1rem;display:flex}.photo-uploader{align-items:center;gap:1rem;margin-bottom:.4rem;display:flex}.photo-uploader-preview{object-fit:cover;border:1px solid var(--border);background:var(--bg);border-radius:8px;flex-shrink:0;width:72px;height:72px}.photo-uploader-placeholder{justify-content:center;align-items:center;font-size:1.8rem;display:flex}.photo-uploader-actions{flex-direction:column;align-items:flex-start;gap:.4rem;display:flex}.form-grid label.photo-upload-btn{flex-direction:unset;color:var(--text);cursor:pointer;gap:0;font-size:.92rem;display:inline-block}.field-hint{color:var(--text-muted);margin:-.3rem 0 0;font-size:.8rem}.avatar{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin-inline-start:.3rem;padding:0;font-size:.78rem;font-weight:700;display:flex}.user-menu-dropdown{width:220px}.user-menu-info{border-bottom:1px solid var(--border);padding:.8rem .9rem}.user-menu-name{font-size:.9rem;font-weight:700}.user-menu-role{color:var(--text-muted);margin-top:.1rem;font-size:.8rem}.user-menu-logout{cursor:pointer;width:100%;color:var(--danger);font:inherit;background:0 0;border:none}.content{flex:1;width:100%;max-width:1240px;padding:1.8rem 2.2rem}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:1.2rem;display:flex}.page-header-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin-bottom:1.8rem;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:.9rem;padding:1.05rem 1.2rem;display:flex}.stat-icon{background:var(--primary-soft);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.15rem;display:flex}.stat-body{flex-direction:column;gap:.15rem;min-width:0;display:flex}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;font-size:.78rem;font-weight:600}.stat-value{font-size:1.35rem;font-weight:700}.warning-card .stat-icon{background:var(--warning-bg)}.warning-card .stat-value{color:#b45309}.panel-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1.2rem;display:grid}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1.2rem;padding:1.2rem 1.3rem;overflow-x:auto}.panel h2{font-size:.95rem;font-weight:700}.table-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.table-card table{min-width:560px;margin:0}.table-card tbody tr:last-child td{border-bottom:none}table{border-collapse:collapse;width:100%;font-size:.88rem}th{text-align:start;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);background:#fafbfc;padding:.7rem .6rem;font-size:.72rem;font-weight:600}td{border-bottom:1px solid var(--border);padding:.7rem .6rem}tbody tr:hover td{background:#fafbfc}tr.row-warning td{background:var(--warning-bg)}.text-danger{color:var(--danger);font-weight:600}.empty-state{text-align:center;color:var(--text-muted);padding:1.5rem 0}.clickable-row{cursor:pointer}.clickable-row:hover{background:#f8fafc}.sub-table{background:#f8fafc;border-radius:8px}.toolbar{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.toolbar input[type=text]{flex:1;min-width:180px;max-width:320px}.checkbox-label{color:var(--text-muted);align-items:center;gap:.4rem;font-size:.9rem;display:flex}.form-row{flex-wrap:wrap;align-items:center;gap:.7rem;display:flex}.form-row select,.form-row input{flex:1;min-width:140px}.inline-form{gap:.5rem;margin-top:.5rem;display:flex}.btn-primary{background:var(--primary);color:#fff;border:none;border-radius:7px;padding:.55rem 1.1rem;font-size:.92rem;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{color:var(--text);background:#eef2f7;border:none;border-radius:7px;padding:.55rem 1.1rem;font-size:.92rem;font-weight:600}.btn-block{width:100%;margin-top:.8rem}.btn-link{color:var(--primary);background:0 0;border:none;padding:.2rem .4rem;font-size:.88rem}.btn-danger{color:var(--danger)}.row-actions{white-space:nowrap}.modal-backdrop{z-index:50;background:#0f172a73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius);width:480px;max-width:92vw;max-height:88vh;padding:1.6rem;overflow-y:auto;box-shadow:0 10px 40px #0003}.form-grid{grid-template-columns:1fr 1fr;gap:.9rem;display:grid}.form-grid label{color:var(--text-muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.form-actions{grid-column:1/-1;justify-content:flex-end;gap:.6rem;margin-top:.4rem;display:flex}.category-manager{color:var(--text-muted);margin-top:1.2rem;font-size:.85rem}.badge{border-radius:999px;padding:.2rem .55rem;font-size:.78rem;font-weight:600}.badge-in{color:#166534;background:#dcfce7}.badge-out{color:#991b1b;background:#fee2e2}.badge-adjustment{color:#3730a3;background:#e0e7ff}.trend-chart{position:relative}.trend-chart-svg{touch-action:none;width:100%;height:220px;display:block}.trend-grid-line{stroke:var(--border);stroke-width:1px}.trend-axis-label{fill:var(--text-muted);font-size:10px}.trend-crosshair{stroke:var(--border);stroke-width:1px}.trend-end-label{font-size:11px;font-weight:700}.trend-empty{color:var(--text-muted);pointer-events:none;justify-content:center;align-items:center;font-size:.85rem;display:flex;position:absolute;inset:0}.trend-legend{justify-content:center;gap:1.1rem;margin-top:.3rem;display:flex}.trend-legend-item{color:var(--text-muted);align-items:center;gap:.4rem;font-size:.8rem;display:flex}.trend-legend-swatch{border-radius:2px;flex-shrink:0;width:10px;height:10px}.trend-tooltip{background:var(--text);color:#fff;pointer-events:none;white-space:nowrap;z-index:5;border-radius:6px;padding:.5rem .65rem;font-size:.78rem;position:absolute;top:6px;transform:translate(-50%);box-shadow:0 6px 16px #1018282e}.trend-tooltip-start{transform:translate(0)}.trend-tooltip-end{transform:translate(-100%)}.trend-tooltip-date{opacity:.85;margin-bottom:.25rem;font-weight:700}.trend-tooltip-row{align-items:center;gap:.4rem;display:flex}.trend-tooltip-key{border-top:2px solid;flex-shrink:0;width:10px;height:0}.trend-tooltip-label{opacity:.85;flex:1}.trend-tooltip-value{font-weight:700}.pos-layout{grid-template-columns:2fr 1fr;align-items:start;gap:1.2rem;display:grid}.pos-catalog input{width:100%;margin-bottom:1rem}.barcode-form input{border-color:var(--primary);background:var(--primary-soft)}.product-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.7rem;display:grid}.product-tile{border:1px solid var(--border);text-align:start;background:#f8fafc;border-radius:8px;flex-direction:column;gap:.25rem;padding:.8rem;display:flex}.product-tile:hover:not(.disabled){border-color:var(--primary);background:var(--primary-soft)}.product-tile.disabled{opacity:.45;cursor:not-allowed}.product-tile-photo{object-fit:cover;background:var(--surface);border-radius:6px;width:100%;height:72px;margin-bottom:.15rem}.product-tile-photo-placeholder{border:1px solid var(--border);justify-content:center;align-items:center;font-size:1.6rem;display:flex}.product-tile-name{font-size:.9rem;font-weight:600}.product-tile-price{color:var(--primary);font-weight:700}.product-tile-stock{color:var(--text-muted);font-size:.78rem}.pos-cart{position:sticky;top:1rem}.qty-input{width:60px}.cart-total{border-top:2px solid var(--border);justify-content:space-between;margin-top:.5rem;padding-top:.8rem;font-size:1.15rem;font-weight:700;display:flex}.pos-customer{flex-direction:column;gap:.6rem;margin:.8rem 0;display:flex}.pos-customer label{color:var(--text-muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.pos-customer select,.pos-customer input{width:100%}.toast-stack{z-index:100;flex-direction:column;align-items:flex-end;gap:.5rem;display:flex;position:fixed;bottom:1.2rem;left:1.2rem;right:1.2rem}.toast{color:#fff;border-radius:8px;max-width:100%;padding:.7rem 1.1rem;font-size:.9rem;animation:.2s ease-out slide-in;box-shadow:0 6px 20px #00000026}.toast-success{background:var(--success)}.toast-error{background:var(--danger)}@keyframes slide-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.error-banner{background:var(--danger-bg);color:var(--danger);border-radius:8px;padding:.8rem 1rem}.receipt-modal{width:340px}.receipt-printable{color:var(--text);font-family:Courier New,monospace;font-size:.82rem}.receipt-header{text-align:center;border-bottom:1px dashed var(--border);margin-bottom:.8rem;padding-bottom:.6rem}.receipt-shop-name{font-size:1.05rem;font-weight:700}.receipt-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem}.receipt-meta{flex-direction:column;gap:.2rem;margin-bottom:.8rem;display:flex}.receipt-table{border-collapse:collapse;width:100%;font-size:.8rem}.receipt-table th,.receipt-table td{text-align:start;border-bottom:1px dashed var(--border);background:0 0;padding:.3rem .2rem}.receipt-total{border-top:1px dashed var(--border);justify-content:space-between;margin-top:.6rem;padding-top:.6rem;font-size:1rem;font-weight:700;display:flex}.receipt-thanks{text-align:center;color:var(--text-muted);margin-top:1rem}.receipt-actions{margin-top:1.2rem}@media print{body *{visibility:hidden}.receipt-printable,.receipt-printable *{visibility:visible}.receipt-printable{width:100%;position:absolute;top:0;left:0}}.auth-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:380px;max-width:100%;box-shadow:var(--shadow);padding:2rem 1.8rem 1.8rem;position:relative}.auth-lang-switch{top:1rem;position:absolute;inset-inline-end:1rem}.auth-brand{align-items:center;gap:.5rem;margin-bottom:1rem;font-weight:700;display:flex}.auth-card h1{margin:0 0 1.2rem;font-size:1.3rem}.auth-form{flex-direction:column;gap:.9rem;display:flex}.auth-form label{color:var(--text-muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.auth-switch{text-align:center;color:var(--text-muted);margin-top:1.2rem;font-size:.87rem}.auth-hint{text-align:center;margin-top:1rem}.report-date-nav{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}@media (width<=900px){.layout{flex-direction:column;min-height:auto}.sidebar{display:none}.bottom-nav{z-index:40;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 8px #1018280f}.bottom-nav-link{color:var(--text-muted);border-top:2px solid #0000;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.15rem;padding:.5rem .2rem .45rem;text-decoration:none;display:flex}.bottom-nav-link.active{color:var(--primary);border-top-color:var(--primary)}.bottom-nav-icon{font-size:1.15rem;line-height:1}.bottom-nav-label{white-space:nowrap;font-size:.65rem;font-weight:600}.main-col{padding-bottom:64px}.pos-layout{grid-template-columns:1fr}.pos-cart{position:static}.content{padding:1.2rem}}@media (width<=640px){.topbar{gap:.6rem;padding:0 1rem}.topbar-search{display:none}.content{padding:1rem}.form-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr}.topbar-actions{gap:.3rem}.lang-switch button{padding:.3rem .45rem}.notif-dropdown{width:260px}}@media (width<=420px){.stat-grid{grid-template-columns:1fr}.avatar{display:none}}
