/* Do'kon Boshqaruv Tizimi — Premium UI v2 */
:root {
  --primary: #4f46e5;
  --primary-dark: #4338ca;
  --primary-soft: #eef2ff;
  --cash: #059669;
  --cash-soft: #ecfdf5;
  --debt: #d97706;
  --debt-soft: #fffbeb;
  --danger: #dc2626;
  --danger-soft: #fef2f2;
  --bg: #f4f6fb;
  --card-bg: #ffffff;
  --border: #e2e8f0;
  --text: #0f172a;
  --text-muted: #64748b;
  --radius: 14px;
  --radius-sm: 10px;
  --shadow-sm: 0 1px 2px rgba(15,23,42,.06);
  --shadow-md: 0 4px 12px rgba(15,23,42,.08);
  --shadow-lg: 0 12px 32px rgba(15,23,42,.14);
  --sidebar-w: 260px;
  --sidebar-bg: #0f172a;
  --sidebar-text: #94a3b8;
  --sidebar-active: #ffffff;
  --sidebar-hover: rgba(255,255,255,.06);
  --sidebar-accent: #818cf8;
  --topbar-h: 60px;
  --input-bg: #f8fafc;
  --input-focus-bg: #ffffff;
}
body.dark-mode {
  --bg: #0f172a;
  --card-bg: #1e293b;
  --border: #334155;
  --text: #f8fafc;
  --text-muted: #94a3b8;
  --primary-soft: rgba(79, 70, 229, 0.2);
  --cash-soft: rgba(5, 150, 105, 0.2);
  --debt-soft: rgba(217, 119, 6, 0.2);
  --danger-soft: rgba(220, 38, 38, 0.2);
  --shadow-sm: 0 1px 2px rgba(0,0,0,.3);
  --shadow-md: 0 4px 12px rgba(0,0,0,.4);
  --shadow-lg: 0 12px 32px rgba(0,0,0,.5);
  --input-bg: #0f172a;
  --input-focus-bg: #1e293b;
}
*{box-sizing:border-box}
body{margin:0;font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}
.hidden{display:none!important}
button{font-family:inherit;cursor:pointer;border:none}
input,select{font-family:inherit;font-size:15px;color:var(--text)}
input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
::-webkit-scrollbar{width:7px;height:7px}
::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:6px}
::-webkit-scrollbar-track{background:transparent}

/* === Buttons === */
.btn{border-radius:var(--radius-sm);padding:10px 16px;font-size:14px;font-weight:600;transition:transform .06s,box-shadow .15s,background .15s,opacity .15s}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:var(--primary-dark);box-shadow:var(--shadow-md)}
.btn-ghost{background:transparent;color:var(--text-muted)}
.btn-ghost:hover{background:var(--primary-soft);color:var(--primary)}
.btn-danger{background:var(--danger);color:#fff}
.btn-danger:hover{filter:brightness(.92)}
.btn-lg{width:100%;padding:14px;font-size:16px}
.btn-xl{padding:20px;font-size:18px;border-radius:var(--radius)}
.btn-cash{background:var(--cash);color:#fff;flex:1;box-shadow:var(--shadow-sm)}
.btn-cash:hover{filter:brightness(1.06);box-shadow:var(--shadow-md)}
.btn-debt{background:var(--debt);color:#fff;flex:1;box-shadow:var(--shadow-sm)}
.btn-debt:hover{filter:brightness(1.06);box-shadow:var(--shadow-md)}
.btn:disabled{opacity:.45;pointer-events:none;box-shadow:none}

/* === Auth Screen === */
.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#0f172a 0%,#1e293b 50%,#334155 100%)}
.auth-card{background:var(--card-bg);border-radius:20px;padding:40px 32px;width:100%;max-width:400px;box-shadow:0 25px 60px rgba(0,0,0,.3)}
.auth-card h1{font-size:20px;text-align:center;margin:0 0 28px;letter-spacing:-.02em;color:var(--text)}
.auth-form h2{font-size:16px;margin:0 0 16px;color:var(--text-muted)}
.auth-form input{width:100%;padding:13px 14px;margin-bottom:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);transition:border-color .15s,background .15s}
.auth-form input:focus{outline:none;border-color:var(--primary);background:var(--input-focus-bg)}
.auth-error{color:var(--danger);font-size:13px;min-height:20px}
.auth-switch{text-align:center;font-size:13px;color:var(--text-muted)}
.auth-switch a{color:var(--primary);text-decoration:none;font-weight:600}
.auth-switch a:hover{text-decoration:underline}

/* === App Layout: Sidebar + Content === */
.app-screen{min-height:100vh;display:flex}

/* Sidebar */
.sidebar{width:var(--sidebar-w);background:var(--sidebar-bg);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:80;transition:transform .25s cubic-bezier(.4,0,.2,1);overflow-y:auto;overflow-x:hidden}
.sidebar-brand{padding:22px 20px 18px;border-bottom:1px solid rgba(255,255,255,.08)}
.sidebar-brand-name{font-size:16px;font-weight:700;color:#fff;letter-spacing:-.01em}
.sidebar-brand-sub{font-size:12px;color:var(--sidebar-text);margin-top:2px}
.sidebar-nav{flex:1;padding:12px 10px;display:flex;flex-direction:column;gap:2px}
.sidebar-link{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:10px;font-size:14px;font-weight:500;color:var(--sidebar-text);text-decoration:none;transition:background .15s,color .15s;background:none;width:100%;text-align:left}
.sidebar-link:hover{background:var(--sidebar-hover);color:#e2e8f0}
.sidebar-link.active{background:rgba(99,102,241,.2);color:#fff;font-weight:600}
.sidebar-link .nav-icon{width:20px;height:20px;opacity:.6;flex-shrink:0}
.sidebar-link.active .nav-icon{opacity:1}
.sidebar-section{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:rgba(148,163,184,.5);padding:18px 14px 6px}
.sidebar-footer{padding:14px 16px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:8px}
.sidebar-footer-user{font-size:13px;color:var(--sidebar-text)}
.sidebar-footer-role{font-size:11px;color:rgba(148,163,184,.5)}
.sidebar-logout{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:8px;font-size:13px;font-weight:500;color:var(--sidebar-text);background:none;transition:background .15s,color .15s;width:100%;text-align:left}
.sidebar-logout:hover{background:rgba(220,38,38,.15);color:#fca5a5}

/* Content area */
.app-content{margin-left:var(--sidebar-w);flex:1;display:flex;flex-direction:column;min-height:100vh}

/* Top bar */
.topbar{height:var(--topbar-h);background:var(--card-bg);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 24px;gap:12px;position:sticky;top:0;z-index:50}
.topbar-hamburger{display:none;background:none;padding:6px;border-radius:8px;color:var(--text)}
.topbar-hamburger:hover{background:var(--bg)}
.topbar-hamburger svg{width:24px;height:24px}
.topbar-title{font-size:16px;font-weight:700;letter-spacing:-.01em;margin-right:auto}
.topbar-badges{display:flex;gap:8px;align-items:center}

/* Subscription banner */
.subscription-banner{padding:10px 16px;text-align:center;font-size:13px;font-weight:600}
.subscription-banner.warning{background:var(--debt-soft);color:#92400e;border-bottom:1px solid #fde68a}
.subscription-banner.expired{background:var(--danger-soft);color:var(--danger);border-bottom:1px solid #fecaca}

/* Mobile sidebar */
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:79}
@media(max-width:860px){
  .sidebar{transform:translateX(-100%)}
  .sidebar.open{transform:translateX(0)}
  .sidebar-overlay.open{display:block}
  .app-content{margin-left:0}
  .topbar-hamburger{display:flex}
}

/* === Dashboard === */
.view{flex:1;padding:20px 24px}
.dash-cards{display:flex;flex-wrap:wrap;gap:14px;max-width:1100px;margin:0 auto 18px}
.dash-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;flex:1;min-width:160px;display:flex;flex-direction:column;gap:5px;box-shadow:var(--shadow-sm);transition:box-shadow .15s}
.dash-card:hover{box-shadow:var(--shadow-md)}
.dash-card .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}
.dash-card .value{font-size:22px;font-weight:800;letter-spacing:-.02em}
.dash-card .sub{font-size:12px;color:var(--text-muted)}
.dash-card-warn .value{color:var(--debt)}
.dash-card-profit .value{color:var(--cash)}
.report-period{display:flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:1100px;margin:0 auto 18px}
.period-btn{background:var(--card-bg);border:1px solid var(--border)}
.period-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.report-range-picker{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.report-range-picker input[type=date]{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:8px 10px;color:var(--text);font-size:13px}
.report-columns{display:flex;flex-direction:column;gap:18px;max-width:1100px;margin:0 auto 22px}
.report-col h3{margin:0 0 10px;font-size:14px;font-weight:700;letter-spacing:-.01em}
@media(min-width:800px){.report-columns{flex-direction:row}.report-col{flex:1;min-width:0}}

/* Chart */
.chart-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px 16px 12px;height:280px;position:relative}
.chart-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;min-width:0}
.chart-bar{width:100%;max-width:46px;background:linear-gradient(180deg,#818cf8,var(--primary));border-radius:8px 8px 3px 3px;transition:filter .15s}
.chart-col:hover .chart-bar{filter:brightness(1.15)}
.chart-value{font-size:11px;font-weight:700;color:var(--primary);white-space:nowrap}
.chart-label{font-size:11px;color:var(--text-muted)}

/* === Kassa === */
.kassa-layout{display:flex;flex-direction:column;gap:14px;max-width:940px;margin:0 auto}
.search-input{width:100%;padding:13px 14px;font-size:16px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--card-bg);box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}
.search-input::placeholder{color:#94a3b8}
.search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.12)}
.search-row{display:flex;gap:8px}
.search-row .search-input{flex:1}
.kassa-category-bar{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.kassa-category-chip{padding:7px 14px;border-radius:999px;border:1px solid var(--border);background:var(--card-bg);cursor:pointer;font-size:13px;font-weight:600;color:var(--text);transition:background .12s}
.kassa-category-chip:hover{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}
.kassa-category-chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn-scan{background:var(--primary);color:#fff;font-size:20px;padding:0 16px;border-radius:var(--radius);flex-shrink:0;box-shadow:var(--shadow-sm)}
.btn-scan:hover{background:var(--primary-dark)}
#scanner-viewport{width:100%;min-height:260px;background:#000;border-radius:var(--radius-sm);overflow:hidden}
#scanner-viewport video{width:100%!important}
.search-results{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);margin-top:8px;max-height:280px;overflow-y:auto;box-shadow:var(--shadow-md)}
.search-results:empty{display:none}
.search-result-item{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background .12s}
.search-result-item:last-child{border-bottom:none}
.search-result-item:hover{background:var(--primary-soft)}
.sri-name{font-weight:600;font-size:14px}
.sri-meta{font-size:12px;color:var(--text-muted)}
.sri-price{font-weight:700;color:var(--primary);white-space:nowrap;margin-left:12px;font-size:14px}
.cart-empty{text-align:center;color:var(--text-muted);padding:36px 12px;background:var(--card-bg);border:1.5px dashed var(--border);border-radius:var(--radius)}
.cart-table{width:100%;border-collapse:collapse;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.cart-table td{padding:11px 13px;border-bottom:1px solid var(--border);vertical-align:middle;font-size:14px}
.cart-table tr:last-child td{border-bottom:none}
.cart-item-name{font-weight:600}
.cart-item-price{font-size:12px;color:var(--text-muted)}
.cart-price-control{display:flex;align-items:center;gap:6px;margin-top:4px}
.cart-price-input{width:90px;padding:6px 8px;font-size:13px;font-weight:600;border:1px solid var(--border);border-radius:8px;background:var(--input-bg)}
.cart-price-input:focus{outline:none;border-color:var(--primary);background:var(--input-focus-bg)}
.cart-price-unit{font-size:11px;color:var(--text-muted)}
.qty-control{display:flex;align-items:center;gap:6px}
.qty-btn{width:32px;height:32px;border-radius:8px;background:var(--bg);border:1px solid var(--border);font-size:16px;font-weight:700;line-height:1;transition:background .12s}
.qty-btn:hover{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}
.qty-value{width:40px;text-align:center;font-weight:700}
.qty-value-input{width:56px;text-align:center;font-weight:700;padding:6px 4px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg)}
.qty-value-input:focus{outline:none;border-color:var(--primary);background:var(--input-focus-bg)}
.qty-unit{font-size:11px;color:var(--text-muted)}
.cart-remove{color:var(--danger);font-size:18px;background:none;padding:4px 6px;border-radius:8px}
.cart-remove:hover{background:var(--danger-soft)}
.cart-line-total{text-align:right;font-weight:700;white-space:nowrap;font-size:14px}
.kassa-total-row{display:flex;justify-content:flex-end;align-items:baseline;gap:8px;padding:16px 20px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);font-size:16px;box-shadow:var(--shadow-sm)}
#cart-total{font-size:28px;font-weight:800;color:var(--primary);letter-spacing:-.02em}
.kassa-pay-buttons{display:flex;gap:12px}

/* === Ombor === */
.sklad-panel{max-width:940px;margin:0 auto 16px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;box-shadow:var(--shadow-sm)}
.sklad-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.sklad-panel-header h3{margin:0;font-size:14px;font-weight:700}
.sklad-list{display:flex;flex-wrap:wrap;gap:8px}
.sklad-chip{display:flex;align-items:center;gap:8px;padding:7px 13px;border-radius:999px;background:var(--bg);border:1px solid var(--border);font-size:13px;font-weight:500}
.sklad-chip.blocked{opacity:.5;text-decoration:line-through}
.sklad-chip button{background:none;color:var(--primary);font-size:12px;font-weight:600;padding:0;text-decoration:underline}
.ombor-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 auto 14px;max-width:940px}
.ombor-toolbar .search-input{flex:1;min-width:180px}
.table-wrap{overflow-x:auto;max-width:1100px;margin:0 auto}
.ombor-table{width:100%;border-collapse:collapse;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.ombor-table th,.ombor-table td{padding:10px 13px;text-align:left;border-bottom:1px solid var(--border);font-size:13px;white-space:nowrap}
.ombor-table th{background:#f8fafc;color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.ombor-table tbody tr{transition:background .12s}
.ombor-table tbody tr:hover{background:#f8fafc}
.ombor-table tbody tr:last-child td{border-bottom:none}
.ombor-table .low-stock{color:var(--danger);font-weight:700}
.row-actions{display:flex;gap:4px}
.row-actions button{padding:5px 9px;font-size:12px;border-radius:8px}
.checkbox-label{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:var(--text-muted);white-space:nowrap;cursor:pointer}
.checkbox-label input{width:16px;height:16px;accent-color:var(--primary)}
.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600}
.badge-overdue{background:var(--danger-soft);color:var(--danger)}
.badge-ok{background:var(--cash-soft);color:var(--cash)}
.badge-warn{background:var(--debt-soft);color:var(--debt)}
.badge-clear{background:var(--bg);color:var(--text-muted)}
.debt-summary{display:flex;gap:22px;flex-wrap:wrap;background:var(--bg);border-radius:var(--radius-sm);padding:14px 16px;margin-bottom:16px}
.debt-summary-item{display:flex;flex-direction:column}
.debt-summary-item .label{font-size:11px;color:var(--text-muted)}
.debt-summary-item .value{font-size:17px;font-weight:700}
.history-list{max-height:170px;overflow-y:auto;margin-bottom:12px}
.history-item{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}
.history-item:last-child{border-bottom:none}
.history-empty{color:var(--text-muted);font-size:13px;padding:10px 0}

/* === Modal === */
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center;z-index:100}
@media(min-width:640px){.modal-backdrop{align-items:center}}
.modal{background:var(--card-bg);border-radius:18px 18px 0 0;padding:26px 24px;width:100%;max-width:430px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:modal-in .18s ease}
@keyframes modal-in{from{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(min-width:640px){.modal{border-radius:18px}}
.modal h2{margin-top:0;font-size:18px;letter-spacing:-.01em}
.modal input,.modal select{width:100%;padding:11px 12px;margin-bottom:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);transition:border-color .15s,background .15s}
.modal input:focus,.modal select:focus{outline:none;border-color:var(--primary);background:var(--input-focus-bg)}
.modal-divider{text-align:center;color:var(--text-muted);font-size:12px;margin:12px 0}
.modal-subtitle{color:var(--text-muted);margin-top:-8px;font-size:13px}
.modal-actions{display:flex;gap:10px;margin-top:10px}
.modal-actions .btn{flex:1}

/* === Toast === */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#1e293b;color:#fff;padding:12px 20px;border-radius:12px;font-size:14px;font-weight:500;z-index:200;box-shadow:var(--shadow-lg);animation:toast-in .2s ease;max-width:calc(100vw - 40px)}
@keyframes toast-in{from{transform:translate(-50%,10px);opacity:0}to{transform:translate(-50%,0);opacity:1}}
.toast.error{background:var(--danger)}
.toast.success{background:var(--cash)}
.toast.warn{background:var(--debt)}

/* === Sync/Shift badges === */
.sync-badge{padding:5px 12px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.sync-badge.offline{background:var(--danger-soft);color:var(--danger)}
.sync-badge.pending{background:var(--debt-soft);color:var(--debt)}
.sync-badge.syncing{background:var(--primary-soft);color:var(--primary)}
.sync-badge.done{background:var(--cash-soft);color:var(--cash)}
.shift-badge{padding:5px 12px;border-radius:999px;font-size:12px;font-weight:600;background:var(--cash-soft);color:var(--cash);white-space:nowrap}

/* QR / Receipt */
.qrcode-canvas-wrap{display:flex;justify-content:center;padding:14px 0}
.qrcode-value{text-align:center;color:var(--text-muted);font-size:13px;letter-spacing:1px;font-weight:600}
.receipt{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:12px;max-width:300px;margin:0 auto}
.receipt-store{text-align:center;font-size:16px;margin:0 0 6px;font-family:inherit}
.receipt-meta{text-align:center;color:var(--text-muted);font-size:11px;margin:2px 0}
.receipt-divider{border-top:1.5px dashed #cbd5e1;margin:12px 0}
.receipt-row{display:flex;justify-content:space-between;gap:12px;padding:3px 0}
.receipt-row span:first-child{overflow-wrap:anywhere}
.receipt-row span:last-child{white-space:nowrap;font-weight:600}
.receipt-total{font-size:15px;font-weight:800}
.receipt-payment{color:var(--text-muted)}
.receipt-thanks{text-align:center;margin:14px 0 0;color:var(--text-muted);font-size:11px}
@media print{body *{visibility:hidden}.modal:not(.hidden) .print-area,.modal:not(.hidden) .print-area *{visibility:visible}.modal:not(.hidden) .print-area{position:fixed;top:0;left:0;width:100%;text-align:center}}

/* Shift bar */
.shift-bar{max-width:940px;margin:0 auto 14px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:11px 16px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-sm)}
#shift-bar-text{flex:1;font-size:13px;font-weight:600;color:var(--text-muted)}
.shift-bar.shift-open #shift-bar-text{color:var(--cash)}

/* Kassa customer/loyalty */
.kassa-customer-btn{width:100%;margin-top:8px;justify-content:center}
.kassa-customer-chip{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--primary-soft);color:var(--primary);padding:10px 14px;border-radius:var(--radius-sm);margin-top:8px;font-weight:600;font-size:13px}
.kassa-customer-chip button{background:none;color:var(--primary);font-size:18px;font-weight:700;padding:0 4px}
.kassa-loyalty-row{display:flex;align-items:center;gap:10px;margin-top:8px}
.kassa-loyalty-row input{width:140px;margin:0}

/* Matrix list */
.matrix-list{display:flex;flex-direction:column;gap:8px}
.matrix-row{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg);border-radius:var(--radius-sm);cursor:pointer;transition:background .12s}
.matrix-row:hover{background:var(--primary-soft)}
.matrix-row-name{font-weight:600;font-size:14px}
.matrix-row-meta{font-size:12px;color:var(--text-muted)}

/* Shipment rows */
.shipment-item-row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:8px;margin-bottom:8px;align-items:center}
.shipment-item-row select,.shipment-item-row input{margin:0}
.shipment-item-remove{background:var(--danger-soft);color:var(--danger);border-radius:8px;padding:8px}
.admin-settings-btn{font-size:16px;padding:6px 10px}

/* Desktop kassa two-col */
@media(min-width:800px){
  .kassa-layout{flex-direction:row;align-items:flex-start; max-width: 100%;}
  .kassa-search-col{flex:1; position:sticky; top:calc(var(--topbar-h) + 16px);}
  .kassa-cart-col{width: 400px; flex-shrink: 0; background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; box-shadow: var(--shadow-sm);}
}

/* Kassa Checkout Modal Styles */
.checkout-total-display {
  background: var(--primary-soft);
  color: var(--primary);
  padding: 20px;
  border-radius: var(--radius);
  text-align: center;
  margin-bottom: 24px;
  font-size: 18px;
}
.checkout-total-display strong {
  font-size: 32px;
  display: block;
  margin-top: 5px;
}
.checkout-payment-methods {
  display: flex;
  gap: 10px;
}
.payment-method-label {
  flex: 1;
  text-align: center;
  border: 2px solid var(--border);
  border-radius: var(--radius);
  padding: 15px 10px;
  cursor: pointer;
  transition: all 0.2s;
  background: var(--card-bg);
}
.payment-method-label:hover {
  border-color: var(--primary-soft);
}
.payment-method-label input {
  display: none;
}
.payment-method-label input:checked + span {
  color: var(--primary);
  font-weight: 600;
}
.payment-method-label:has(input:checked) {
  border-color: var(--primary);
  background: var(--primary-soft);
}

.checkout-quick-amounts {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}
.checkout-quick-amounts .btn {
  flex: 1;
  padding: 8px;
  font-size: 14px;
}

/* Kassa Products Grid */
.kassa-products-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
  margin-top: 20px;
  max-height: calc(100vh - 280px);
  overflow-y: auto;
  padding-right: 5px;
}
.kassa-products-grid::-webkit-scrollbar {
  width: 6px;
}
.kassa-products-grid::-webkit-scrollbar-thumb {
  background: var(--border-hover);
  border-radius: 4px;
}

.pos-product-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 12px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform 0.1s, box-shadow 0.1s, border-color 0.1s;
  min-height: 110px;
  user-select: none;
}
.pos-product-card:hover {
  border-color: var(--primary);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}
.pos-product-card:active {
  transform: translateY(0);
}
.pos-product-card.out-of-stock {
  opacity: 0.6;
  border-color: var(--danger-soft);
  cursor: not-allowed;
}
.pos-product-card.out-of-stock:hover {
  transform: none;
  box-shadow: none;
}
.pos-card-name {
  font-weight: 600;
  font-size: 14px;
  color: var(--text);
  margin-bottom: 4px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pos-card-sku {
  font-size: 11px;
  color: var(--text-muted);
  margin-bottom: 8px;
  word-break: break-all;
}
.pos-card-bottom {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: auto;
}
.pos-card-price {
  font-weight: bold;
  color: var(--primary);
  font-size: 14px;
}
.pos-card-stock {
  font-size: 12px;
  font-weight: 500;
  padding: 2px 6px;
  border-radius: 4px;
  background: var(--success-soft);
  color: var(--success);
}
.pos-product-card.out-of-stock .pos-card-stock {
  background: var(--danger-soft);
  color: var(--danger);
}

/* Old header/nav classes kept for JS compat but now hidden — sidebar replaces them */
.app-header{display:none!important}
.app-nav{display:none!important}
.nav-btn{display:none!important}

