:root{--bg:#14171c;--surface:#1e232b;--surface-2:#262c36;--text:#e7e9ec;--text-dim:#8b93a1;--accent:#4fa3e3;--accent-dim:#345c7d;--warn:#e8a23c;--good:#5fbf8f;--danger:#e2645c;--border:#2e3542;--radius:10px}:root[data-theme=light]{--bg:#f4f6f9;--surface:#fff;--surface-2:#f0f2f6;--text:#1b2230;--text-dim:#6b7385;--accent:#2a7bc4;--accent-dim:#bfdcf2;--warn:#b4761f;--good:#2f9463;--danger:#c4453d;--border:#e1e4ea;--radius:10px}*{box-sizing:border-box;transition:background-color .15s,border-color .15s,color .15s}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,sans-serif}.mono{font-family:JetBrains Mono,monospace}a{color:inherit}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:4px;width:220px;padding:24px 14px;display:flex}.brand{letter-spacing:.3px;align-items:center;gap:9px;padding:0 10px 22px;font-family:JetBrains Mono,monospace;font-size:17px;font-weight:700;display:flex}.brand .dot{background:var(--good);width:9px;height:9px;box-shadow:0 0 8px var(--good);border-radius:50%}.navitem{color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:11px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.navitem:hover{background:var(--surface-2);color:var(--text)}.navitem.active{background:var(--surface-2);color:var(--accent)}.nav-footer{color:var(--text-dim);border-top:1px solid var(--border);margin-top:auto;padding:14px 12px 10px;font-size:11.5px}main.content{flex:1;min-width:0;max-width:1080px;padding:26px 30px 90px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:22px;display:flex}.page-title{letter-spacing:.2px;font-family:JetBrains Mono,monospace;font-size:22px;font-weight:700}.page-sub{color:var(--text-dim);margin-top:3px;font-size:13px}.hero-card{background:linear-gradient(135deg, var(--surface) 0%, var(--surface-2) 100%);border:1px solid var(--accent-dim);border-radius:var(--radius);padding:20px 22px}.hero-value{font-variant-numeric:tabular-nums;margin:8px 0 12px;font-size:32px;font-weight:700}.hero-breakdown{color:var(--text-dim);flex-wrap:wrap;gap:22px;font-size:13px;display:flex}.hero-breakdown .dot{border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.stat-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 16px 14px}.stat-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px;margin-bottom:9px;font-size:11.5px}.stat-value{font-variant-numeric:tabular-nums;font-family:JetBrains Mono,monospace;font-size:24px;font-weight:700}.stat-value.warn{color:var(--warn)}.stat-value.good{color:var(--good)}.section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:18px;overflow:hidden}.section-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:14px 18px;display:flex}.section-head h3{margin:0;font-size:14px;font-weight:600}.section-body{padding:6px 18px 16px}.empty{color:var(--text-dim);text-align:center;padding:24px 4px;font-size:13px}.btn{background:var(--accent);color:#0d1117;cursor:pointer;border:none;border-radius:7px;align-items:center;gap:6px;padding:9px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:filter .15s,transform .1s;display:inline-flex}.btn:hover{filter:brightness(1.1)}.btn:active{transform:scale(.97)}.btn.ghost{border:1px solid var(--border);color:var(--text);background:0 0}.btn.ghost:hover{background:var(--surface-2)}.btn.small{padding:5px 10px;font-size:12px}.btn.danger{background:var(--danger);color:#1a0e0e}.btn:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:7px;width:100%;padding:9px 10px;font-family:inherit;font-size:13.5px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px;font-size:11.5px;display:block}.field{margin-bottom:12px}.field-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.searchbar{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.searchbar input{flex:1;min-width:160px}.searchbar select{width:auto}table{border-collapse:collapse;width:100%;font-size:13.5px}th{text-align:left;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);padding:8px;font-size:11px;font-weight:600}td{border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 8px}tr:last-child td{border-bottom:none}.num{font-variant-numeric:tabular-nums;font-family:JetBrains Mono,monospace}.row-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.badge{border-radius:20px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.badge .ledot{border-radius:50%;width:6px;height:6px}.badge.received{color:var(--accent);background:#4fa3e326}.badge.received .ledot{background:var(--accent)}.badge.diagnosing,.badge.in_repair{color:var(--warn);background:#e8a23c26}.badge.diagnosing .ledot,.badge.in_repair .ledot{background:var(--warn)}.badge.ready{color:var(--good);background:#5fbf8f26}.badge.ready .ledot{background:var(--good)}.badge.collected{color:var(--text-dim);background:#8b93a126}.badge.collected .ledot{background:var(--text-dim)}.badge.active{color:var(--good);background:#5fbf8f26}.badge.grace{color:var(--warn);background:#e8a23c26}.badge.expired{color:var(--danger);background:#e2645c26}.banner{border-radius:var(--radius);align-items:center;gap:8px;padding:11px 14px;font-size:12.5px;display:flex}.banner.good{border:1px solid var(--good);color:var(--good);background:#5fbf8f1f}.banner.warn{border:1px solid var(--warn);color:var(--warn);background:#e8a23c1f}.stock-list{flex-direction:column;gap:10px;display:flex}.stock-card{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;overflow:hidden}.stock-card-main{cursor:pointer;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}.stock-card-main:hover{background:#ffffff05}.stock-card-title{flex-wrap:wrap;align-items:center;gap:4px;font-size:14.5px;font-weight:700;display:flex}.stock-card-sub{color:var(--text-dim);margin-top:3px;font-size:12px}.stock-card-figures{text-align:right;align-items:center;gap:22px;display:flex}.stock-card-detail{border-top:1px solid var(--border);background:var(--bg);padding:14px 16px}.tabs{background:var(--surface-2);border:1px solid var(--border);border-radius:9px;gap:4px;padding:4px;display:flex;overflow-x:auto}.tab{color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:7px 13px;font-family:inherit;font-size:12.5px;font-weight:600;transition:background .15s,color .15s}.tab:hover{color:var(--text)}.tab.active{background:var(--accent);color:#0d1117}.risk-meter{background:var(--surface-2);border-radius:5px;height:9px;position:relative;overflow:hidden}.risk-meter-fill{border-radius:5px;height:100%;transition:width .3s}.risk-label{border-radius:20px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.risk-label.low{color:var(--good);background:#5fbf8f26}.risk-label.moderate{color:var(--warn);background:#e8a23c26}.risk-label.high{color:var(--danger);background:#e2645c26}.pill{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);border-radius:20px;align-items:center;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.pill.owner{color:var(--accent);border-color:var(--accent-dim)}.pill.seller{color:var(--good)}.pill.technician{color:var(--warn)}.ticket-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.ticket{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.ticket-top{justify-content:space-between;align-items:flex-start;gap:8px;padding:13px 14px 11px;display:flex}.ticket-id{color:var(--accent);font-family:JetBrains Mono,monospace;font-size:13.5px;font-weight:700}.ticket-perf{border-top:1.5px dashed var(--border);height:0;position:relative}.ticket-perf:before,.ticket-perf:after{content:"";background:var(--bg);border-radius:50%;width:14px;height:14px;position:absolute;top:-7px}.ticket-perf:before{left:-7px}.ticket-perf:after{right:-7px}.ticket-bottom{flex-direction:column;flex:1;gap:8px;padding:13px 14px 14px;display:flex}.ticket-device{font-size:14px;font-weight:600}.ticket-issue{color:var(--text-dim);font-size:12.5px;line-height:1.4}.ticket-meta{color:var(--text-dim);justify-content:space-between;margin-top:2px;font-size:11.5px;display:flex}.ticket-actions{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.low-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 0;font-size:13px;display:flex}.low-item:last-child{border-bottom:none}.item-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;display:grid}.item-card{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:14px 16px 16px}.item-card-top{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.item-name{font-size:14.5px;font-weight:600}.item-sub{color:var(--text-dim);margin-top:2px;font-size:11.5px}.item-stock-line{margin-top:2px;font-size:13.5px}.item-stock-line.warn{color:var(--warn);font-weight:600}.item-reorder{color:var(--text-dim);margin-top:2px;font-size:11.5px}.item-price{color:var(--good);margin-top:6px;font-size:14px;font-weight:600}.item-card-actions{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.batch-list{border-top:1px dashed var(--border);flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;display:flex}.batch-row{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:9px 11px}.batch-row-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:5px;display:flex}.batch-row-meta{color:var(--text-dim);flex-wrap:wrap;gap:12px;font-size:11.5px;display:flex}.subtabs{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.subtab{background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:20px;padding:8px 14px;font-family:inherit;font-size:12.5px;font-weight:600}.subtab.active{background:var(--accent);color:#0d1117;border-color:var(--accent)}.report-nav{flex-wrap:wrap;gap:6px;margin-bottom:18px;display:flex}.report-nav button{background:var(--surface);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;white-space:nowrap;border-radius:8px;padding:8px 13px;font-family:inherit;font-size:12.5px;font-weight:500}.report-nav button.active{background:var(--surface-2);color:var(--accent);border-color:var(--accent-dim)}.period-picker{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.period-picker select,.period-picker input{width:auto}.activity-item{border-bottom:1px solid var(--border);align-items:flex-start;gap:10px;padding:9px 0;font-size:13px;display:flex}.activity-item:last-child{border-bottom:none}.activity-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-top:5px}.activity-time{color:var(--text-dim);white-space:nowrap;font-size:11.5px}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#0a0c0f99;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:440px;max-height:88vh;padding:20px;overflow-y:auto}.modal h3{margin:0 0 16px;font-family:JetBrains Mono,monospace;font-size:16px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.form-error{border:1px solid var(--danger);color:var(--danger);background:#e2645c1f;border-radius:7px;margin-bottom:12px;padding:9px 11px;font-size:12.5px}.login-screen{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:360px;padding:30px}.login-card .brand{justify-content:center;padding-bottom:6px}.login-sub{color:var(--text-dim);text-align:center;margin-bottom:22px;font-size:13px}.bottomnav{display:none}.save-indicator{color:var(--text-dim);align-items:center;gap:6px;font-size:11.5px;display:flex}.save-indicator .dot{background:var(--danger);border-radius:50%;width:6px;height:6px}.save-indicator.online .dot{background:var(--good)}.live-indicator{color:var(--text-dim);align-items:center;gap:6px;margin-top:6px;font-size:11px;display:flex}.live-indicator .dot{background:var(--danger);border-radius:50%;flex-shrink:0;width:6px;height:6px}.live-indicator.live .dot{background:var(--good);box-shadow:0 0 6px var(--good)}.theme-toggle-fab{display:none}@media (width<=860px){.sidebar{display:none}main.content{max-width:none;padding:18px 14px 84px}.stat-grid{grid-template-columns:repeat(2,1fr)}.theme-toggle-fab{background:var(--surface);border:1px solid var(--border);width:42px;height:42px;color:var(--text);z-index:41;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;bottom:76px;right:16px;box-shadow:0 2px 10px #00000040}.bottomnav{background:var(--surface);border-top:1px solid var(--border);padding:8px 6px calc(8px + env(safe-area-inset-bottom)) 6px;z-index:40;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.bottomnav a{color:var(--text-dim);background:0 0;border:none;border-radius:8px;flex-direction:column;align-items:center;gap:3px;padding:5px 8px;font-family:inherit;font-size:10.5px;font-weight:600;text-decoration:none;display:flex}.bottomnav a.active{color:var(--accent)}.field-row{grid-template-columns:1fr}}@media (width<=480px){.stat-grid{grid-template-columns:1fr 1fr}.page-title{font-size:19px}}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--surface-2);border-radius:5px}.theme-toggle{background:var(--surface-2);border:1px solid var(--border);width:100%;color:var(--text-dim);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;margin-top:8px;padding:8px;font-family:inherit;font-size:12px;font-weight:600;display:flex}.theme-toggle:hover{color:var(--text)}.pos-layout{grid-template-columns:1fr 340px;align-items:start;gap:16px;display:grid}.pos-catalog{min-width:0}.pos-search{gap:8px;margin-bottom:12px;display:flex}.pos-search input{flex:1;padding:12px 14px;font-size:15px}.pos-chips{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.pos-chip{background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:20px;padding:6px 13px;font-family:inherit;font-size:12.5px;font-weight:600}.pos-chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.pos-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;max-height:calc(100vh - 260px);padding-bottom:8px;display:grid;overflow-y:auto}.pos-tile{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:12px;flex-direction:column;gap:6px;min-height:96px;padding:14px 12px;font-family:inherit;display:flex;position:relative}.pos-tile:hover{border-color:var(--accent-dim);transform:translateY(-1px)}.pos-tile:active{transform:scale(.97)}.pos-tile:disabled{opacity:.4;cursor:not-allowed;transform:none}.pos-tile-name{font-size:14px;font-weight:700;line-height:1.25}.pos-tile-stock{color:var(--text-dim);font-size:11px}.pos-tile-price{color:var(--good);margin-top:auto;font-family:JetBrains Mono,monospace;font-size:14.5px;font-weight:700}.pos-tile-low:before{content:"";background:var(--warn);border-radius:50%;width:7px;height:7px;position:absolute;top:10px;right:10px}.pos-tile.custom{color:var(--text-dim);text-align:center;border-style:dashed;justify-content:center;align-items:center}.cart-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;max-height:calc(100vh - 110px);display:flex;position:sticky;top:0}.cart-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 16px 10px;display:flex}.cart-head h3{margin:0;font-size:14px;font-weight:700}.cart-items{flex:1;min-height:60px;padding:6px 10px;overflow-y:auto}.cart-line{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 6px;display:flex}.cart-line:last-child{border-bottom:none}.cart-line-info{flex:1;min-width:0}.cart-line-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.cart-line-price{color:var(--text-dim);font-size:11.5px}.cart-line-price input{width:70px;color:var(--text-dim);background:0 0;border:1px solid #0000;border-radius:4px;padding:2px 5px;font-size:11.5px}.cart-line-price input:hover,.cart-line-price input:focus{background:var(--surface-2);border-color:var(--border)}.qty-stepper{background:var(--surface-2);border-radius:7px;align-items:center;gap:6px;padding:3px;display:flex}.qty-stepper button{background:var(--surface);width:22px;height:22px;color:var(--text);cursor:pointer;border:none;border-radius:5px;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.qty-stepper button:hover{background:var(--accent);color:#fff}.qty-stepper span{text-align:center;font-variant-numeric:tabular-nums;min-width:16px;font-size:13px;font-weight:600}.cart-line-total{text-align:right;width:64px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600}.cart-line-remove{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:4px;display:flex}.cart-line-remove:hover{color:var(--danger)}.cart-empty{text-align:center;color:var(--text-dim);padding:36px 16px;font-size:13px}.cart-foot{border-top:1px solid var(--border);padding:12px 16px 16px}.cart-totals-row{color:var(--text-dim);justify-content:space-between;padding:3px 0;font-size:13px;display:flex}.cart-totals-row.grand{color:var(--text);border-top:1px dashed var(--border);margin-top:5px;padding-top:9px;font-size:19px;font-weight:700}.cart-totals-row.grand .num{font-family:JetBrains Mono,monospace}.pay-methods{grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0;display:grid}.pay-method{background:var(--surface-2);border:1.5px solid var(--border);color:var(--text-dim);cursor:pointer;text-align:center;border-radius:8px;padding:9px 4px;font-family:inherit;font-size:12px;font-weight:700}.pay-method.active{border-color:var(--accent);color:var(--accent);background:#4fa3e31a}.charge-btn{background:var(--good);color:#0d1117;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;padding:15px;font-family:inherit;font-size:16px;font-weight:700;display:flex}.charge-btn:hover{filter:brightness(1.06)}.charge-btn:disabled{opacity:.4;cursor:not-allowed}.customer-row{gap:8px;margin-bottom:10px;display:flex}.customer-row input{font-size:13px}.installment-toggle{color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:8px 0;font-size:12.5px;display:flex}.installment-toggle input{width:auto}@media (width<=860px){.pos-layout{grid-template-columns:1fr}.cart-panel{max-height:none;position:static}.pos-grid{max-height:none}}.report-print-header{display:none}@media print{.sidebar,.topbar,.report-nav,.period-picker{display:none!important}.content{background:#fff!important;padding:0!important}body{background:#fff!important}.report-print-header{color:#000;border-bottom:2px solid #000;margin-bottom:18px;padding-bottom:10px;display:block}.report-print-shop{font-family:JetBrains Mono,monospace;font-size:18px;font-weight:700}.report-print-title{margin-top:2px;font-size:14px}.report-print-meta{color:#555;margin-top:2px;font-size:11px}.section,.stat-card,table,th,td{color:#000;background:#fff!important;border-color:#ccc!important}}
