:root{--text:#16243a;--bg:#f4f7fc;--surface:#fff;--border:#d9e1ed;--accent:#155bda;--muted:#61718a;--soft:#edf3ff;color-scheme:light}
[data-theme=dark]{--text:#e5edf7;--bg:#0d1824;--surface:#152333;--border:#36475b;--accent:#82b8ff;--muted:#b2bfd1;--soft:#22364e;color-scheme:dark}
@font-face{font-family:system;src:local('Segoe UI')}*{box-sizing:border-box}html{font-family:system,Arial,sans-serif;color:var(--text);background:var(--bg);font-size:16px}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,a:focus-visible{outline:3px solid #6daaff;outline-offset:3px}button{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;padding:12px 17px;min-height:46px;font-weight:650}button:hover:not(:disabled){background:#eef4ff}button.primary{background:var(--accent);border-color:var(--accent);color:white}button.primary:hover:not(:disabled){background:#104abb}button.danger{background:#fff1f0;color:#b32624;border-color:#ffd1cd}button.link{background:none;border:0;color:var(--accent);padding:6px;min-height:44px}button.small{font-size:.875rem;padding:9px 12px}button.icon{width:44px;padding:9px}.brand{display:flex;align-items:center;gap:10px;font-size:1.4rem;font-weight:800;letter-spacing:-.6px}.logo{width:38px;height:38px;background:var(--accent);color:white;border-radius:11px;display:grid;place-items:center;font-size:1.45rem}.brand small{display:block;letter-spacing:0;font-size:.75rem;color:#697990;font-weight:500}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 auto;padding:0 28px;max-width:1192px}.top-actions{display:flex;align-items:center;gap:12px}.status{font-size:.8rem;color:#53637b;padding:7px 11px;background:#e7edf7;border-radius:30px}.app-header{background:var(--surface);border-bottom:1px solid var(--border)}main{max-width:1136px;margin:0 auto;padding:30px 0 120px}h1{font-size:2rem;letter-spacing:-.9px;line-height:1.2;margin:0 0 8px}h2{font-size:1.2rem;letter-spacing:-.3px;margin:0 0 16px}h3{font-size:1rem;margin:0 0 8px}p{line-height:1.6;margin:8px 0;color:#61718a}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}.eyebrow{font-size:.78rem;letter-spacing:1.4px;font-weight:750;color:#657791;text-transform:uppercase;margin:0 0 12px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:24px}.grid{display:grid;gap:20px}.two{grid-template-columns:1.25fr 1fr}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:26px}.stat{padding:22px;border-radius:17px;background:var(--surface);border:1px solid var(--border)}.stat:first-child{background:var(--accent);border-color:var(--accent);color:white}.stat span{display:block;font-size:.875rem;color:#677791;margin-bottom:12px}.stat:first-child span{color:#deebff}.stat strong{font-size:1.9rem;letter-spacing:-.8px;display:block}.stat small{display:block;margin-top:9px;font-size:.8rem;color:#6d7c91}.stat:first-child small{color:#d8e8ff}.row{display:flex;align-items:center;justify-content:space-between;gap:14px}.stack{display:grid;gap:16px}.actions{display:flex;flex-wrap:wrap;gap:10px}.wide{width:100%}.muted{color:#68778d;font-size:.875rem}.money{font-variant-numeric:tabular-nums}.empty{text-align:center;padding:36px 20px}.empty-symbol{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 16px;background:#edf3ff;color:var(--accent);border-radius:20px}.empty h3{font-size:1.15rem}.empty p{max-width:340px;margin:8px auto 18px;font-size:.9rem}.nav{position:fixed;z-index:5;bottom:20px;left:50%;transform:translateX(-50%);width:min(600px,calc(100% - 32px));display:flex;justify-content:space-around;border:1px solid #dce4f0;border-radius:20px;background:var(--surface);backdrop-filter:blur(16px);padding:7px;box-shadow:0 8px 32px #172f6020}.nav button{flex:1;min-width:0;display:grid;justify-items:center;gap:4px;border:0;background:none;font-size:.75rem;color:#687990;padding:8px 3px;font-weight:600;border-radius:12px}.nav button.active{color:var(--accent);background:#edf3ff}.nav button[data-page=kasir].active{background:var(--accent);color:white}.svg{width:22px;height:22px;vertical-align:middle;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}.search{position:relative;margin-bottom:18px}.search svg{position:absolute;left:15px;top:15px;color:#738299}.search input{padding-left:47px}input,select,textarea{width:100%;padding:13px 14px;min-height:48px;border-radius:11px;border:1px solid var(--border);background:var(--surface);color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #155bda16}input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--accent)}label{display:grid;gap:8px;font-weight:600;font-size:.875rem}label small{font-weight:400;color:#68778d;line-height:1.5}label.check{display:flex;align-items:center;gap:10px;font-weight:500}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field-full{grid-column:1/-1}.section-label{font-size:.875rem;color:#68778d;margin:20px 0 10px}.product-list{display:grid;gap:10px}.product-button{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:14px;border:1px solid #e2e8f2;background:var(--surface);border-radius:14px;font-weight:400}.product-button .p-icon{width:44px;height:44px;flex-shrink:0;border-radius:12px;background:#f0f4fb;color:#50698d;display:grid;place-items:center;font-size:.95rem;font-weight:750}.product-button .product-info{flex:1;min-width:0}.product-button strong{display:block;font-size:.95rem;overflow-wrap:anywhere}.product-button small{display:block;color:#6a798f;font-size:.8rem;margin-top:4px}.product-button .price{font-size:.9rem;font-weight:700;color:var(--accent);white-space:nowrap}.product-button .add{margin-left:3px;color:var(--accent)}.badge{display:inline-flex;border-radius:6px;padding:4px 7px;font-size:.75rem;line-height:1.3;font-weight:650;background:#edf2f9;color:#52617a}.badge.warn{background:#fff3d7;color:#8b5700}.badge.good{background:#e6f5ee;color:#157348}.badge.bad{background:#ffedeb;color:#a5312e}.line-item{border-bottom:1px solid #e7edf5;padding:16px 0}.line-item:first-child{padding-top:0}.line-item .fields{margin-top:12px;grid-template-columns:.8fr 1.2fr;gap:12px}.line-item input{padding:10px 12px;min-height:44px}.line-item label{font-size:.78rem;color:#68778d}.total{display:flex;justify-content:space-between;align-items:center;padding:20px 0 16px;font-weight:700}.total strong{font-size:1.7rem;letter-spacing:-.5px}.payments{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 16px}.payments button{padding:10px;font-size:.875rem}.payments button.selected{background:#edf3ff;color:var(--accent);border-color:var(--accent)}.notice{background:#edf4ff;border-radius:11px;padding:12px 14px;font-size:.875rem;line-height:1.55;color:#365581}.notice.warn{background:#fff6e3;color:#835608}.notice.error{background:#fff0ef;color:#a02c28}.notice.success{background:#eaf7ef;color:#1b7048}.notice:empty{display:none}.cart-panel{align-self:start;position:sticky;top:20px}.list-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:17px 0;border-bottom:1px solid #e8edf5}.list-row:last-child{border-bottom:0}.list-row strong{font-size:.94rem;overflow-wrap:anywhere}.list-row small{display:block;margin-top:6px;color:#68778d;font-size:.8rem}.transaction{cursor:pointer}.transaction:hover{background:#f7faff}.right{text-align:right}.summary-row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;font-size:.9rem}.summary-row strong{font-variant-numeric:tabular-nums}.tabs{display:flex;gap:8px;margin-bottom:22px;border-bottom:1px solid #dce4ef;padding-bottom:12px;flex-wrap:wrap}.tabs button{border:0;background:transparent;color:#63748d}.tabs button.active{background:#e7efff;color:var(--accent)}.export-actions{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0}.stock-entry{padding:18px 0;border-bottom:1px solid #e3eaf3}.stock-entry:last-child{border-bottom:0}.stock-entry .actions{margin-top:12px}.stock-top{display:flex;justify-content:space-between;gap:12px}.stock-top strong{overflow-wrap:anywhere}.stock-number{font-size:1.3rem;font-weight:750;text-align:right;white-space:nowrap}.stock-number small{font-size:.75rem;color:#68778d;font-weight:500}.stock-entry p{font-size:.85rem;margin-top:7px}.mini-link{color:var(--accent)}.welcome-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:25px}.welcome-actions button{text-align:left;padding:20px;display:flex;gap:13px;align-items:center;background:var(--surface);border-radius:16px}.welcome-actions button strong{display:block}.welcome-actions button small{font-weight:400;color:#6a798f;display:block;font-size:.8rem;margin-top:4px}dialog{width:min(570px,calc(100% - 24px));border:0;border-radius:22px;padding:26px;max-height:90dvh;box-shadow:0 24px 100px #10233d40;color:var(--text)}dialog::backdrop{background:#13243d78;backdrop-filter:blur(3px)}dialog .dialog-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px}dialog .dialog-head h2{margin:0}dialog .dialog-head button{border:0;background:#f0f4fa}.receipt{text-align:center;background:var(--surface);font-size:.9rem}.receipt h2{font-size:1.4rem}.receipt .receipt-meta{border-top:1px dashed #bdc9d9;border-bottom:1px dashed #bdc9d9;padding:14px 0;margin:18px 0;line-height:1.8}.receipt .summary-row{text-align:left}.receipt .receipt-total{border-top:1px dashed #bdc9d9;margin-top:12px;padding-top:16px;font-size:1.2rem}.receipt p{font-size:.85rem;white-space:pre-line}.receipt .payment-label{margin-top:16px;font-size:.8rem;letter-spacing:1px}.receipt .method{font-size:1.15rem;margin:4px 0 12px}#toast{position:fixed;bottom:115px;left:50%;transform:translateX(-50%);background:#163e2d;color:white;padding:14px 20px;border-radius:12px;max-width:90%;z-index:30;box-shadow:0 6px 30px #152d4d24;display:none}#print-area{display:none}.inline-number{font-size:1.4rem;color:var(--accent)}.form-error{margin:14px 0}.subtle{font-size:.8rem;color:#697b93}.mobile-cart{display:none}.page-sub{font-size:.95rem;margin:0}.report-table{border-collapse:collapse;width:100%;font-size:.85rem}.report-table th,.report-table td{text-align:left;padding:10px;border-bottom:1px solid #dde4ef}.table-wrap{overflow-x:auto}.history-limit{font-size:.8rem;color:#68778d;margin-top:15px}
@media(max-width:1200px){main{margin:0 24px}}@media(max-width:760px){.topbar{padding:0 20px;height:74px}.brand{font-size:1.2rem}.brand small{font-size:.7rem}.status{font-size:.7rem;padding:6px 8px}.top-actions{gap:6px}.top-actions .settings-label{display:none}main{margin:0;padding:24px 18px 112px}h1{font-size:1.7rem}.page-head{margin-bottom:22px}.page-head .primary{padding:11px 13px;font-size:.85rem}.eyebrow{font-size:.72rem}.two{grid-template-columns:1fr}.panel{padding:20px;border-radius:17px}.stats{gap:10px;grid-template-columns:1fr 1fr}.stat{padding:17px}.stat:first-child{grid-column:1/-1}.stat:first-child strong{font-size:2.15rem}.stat strong{font-size:1.5rem}.stat span{margin-bottom:9px}.stat small{font-size:.75rem}.nav{bottom:0;width:100%;border-radius:18px 18px 0 0;padding:8px 8px calc(8px + env(safe-area-inset-bottom));border-bottom:0}.nav button{font-size:.7rem;padding:8px 2px}.welcome-actions{gap:10px}.welcome-actions button{padding:16px 12px;gap:9px}.welcome-actions button small{font-size:.75rem}.welcome-actions .svg{width:21px;flex-shrink:0}.cart-panel{position:static}.mobile-cart{display:flex;position:fixed;bottom:91px;left:18px;right:18px;z-index:4;align-items:center;justify-content:space-between;background:var(--accent);color:white;box-shadow:0 6px 20px #155bda36}.fields{gap:14px}.product-button{padding:13px}.product-list{gap:8px}.list-row{gap:10px}.list-row strong{font-size:.85rem}.list-row small{font-size:.75rem}.payments button{font-size:.85rem}.stock-top .badge{max-width:130px}.export-actions button{font-size:.8rem;padding:10px}.page-head .actions{gap:6px}dialog{padding:21px;max-height:92dvh}.receipt .summary-row{font-size:.85rem}.page-sub{font-size:.875rem}.status.short{max-width:125px;text-align:center}.stock-entry .actions button{font-size:.8rem}.topbar .icon{width:40px;padding:8px}}
input,select,textarea{font-size:1rem}
.report-grid{margin-top:20px}.history-controls{margin-bottom:16px}.history-controls label{font-size:.8rem}.history-controls select{font-size:.9rem}.detail-cost-note{border-top:1px solid #e1e8f3;margin-top:22px;padding-top:18px}.detail-cost-note strong{font-size:.8rem;text-align:right}.summary-row>strong{overflow-wrap:anywhere}.export-actions button{min-height:46px}
html{scroll-padding-bottom:110px}#checkout,input,button{scroll-margin-bottom:110px}dialog input,dialog button{scroll-margin-bottom:16px}.line-item{scroll-margin-bottom:110px}
.cashier-surface{max-width:680px;margin:0 auto}.cashier-surface .page-head{margin-bottom:16px}.cashier-surface .cart-panel{position:static}.picker-trigger{display:flex;align-items:center;gap:12px;width:100%;background:var(--surface);border:1.5px solid #a9c5f5;min-height:58px;margin-bottom:18px;color:var(--accent);text-align:left;box-shadow:0 2px 8px #155bda08}.picker-trigger span{flex:1}.picker-dialog{padding-bottom:16px;overflow:hidden}.picker-dialog .dialog-head{margin-bottom:16px}.picker-search{margin-bottom:12px}.picker-list{height:min(440px,calc(83dvh - 175px));min-height:150px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;display:block;padding-right:3px}.picker-product{border:0;border-bottom:1px solid #e6edf5;border-radius:0;padding:11px 8px;min-height:68px;gap:10px}.picker-product .product-info strong{font-size:.9rem}.picker-product .price{font-size:.875rem}.picker-product>.svg{width:18px;flex-shrink:0}.picker-product .product-info small{font-size:.8rem}.cart-panel h2{margin-bottom:6px}.cart-panel .line-item{padding:14px 0}.cart-panel .line-item>.row>strong{font-size:.95rem}.remove-item{border:0;color:#8896aa;background:none;min-height:40px;width:40px;padding:8px;margin-right:-8px}.remove-item svg{width:18px;height:18px}.item-summary{font-size:.875rem;color:#65758e;margin:4px 0 12px;font-variant-numeric:tabular-nums}.item-summary strong{color:var(--text);font-size:1rem}.quantity-control{display:flex;align-items:center;border:1px solid #d5dfed;border-radius:11px;overflow:hidden}.quantity-control button{width:44px;min-height:42px;padding:6px;border:0;border-radius:0;background:#f3f7fc;font-size:1.2rem}.quantity-control input{width:48px;text-align:center;padding:8px 0;min-height:42px;border:0;border-radius:0;font-size:1rem;appearance:textfield;-moz-appearance:textfield}.quantity-control input::-webkit-inner-spin-button,.quantity-control input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.item-price-state{font-size:.8rem;color:#536e65;line-height:1.5;margin:10px 0 0}.item-price-state.invalid{color:#a12e29;background:#fff1ef;padding:8px 10px;border-radius:8px}.cart-controls{gap:10px}.stock-sort{display:flex;align-items:center;justify-content:space-between;gap:16px;color:#61718a;font-size:.85rem;padding:0 0 14px;border-bottom:1px solid #e5ecf5}.stock-sort select{width:auto;max-width:65%;font-size:.875rem;min-height:44px;padding:9px 30px 9px 12px}.detail-stock-actions{border-top:1px solid #e1e8f3;padding-top:20px;margin-top:22px}.cost-history{border-top:1px solid #e1e8f3;margin-top:20px;padding-top:18px}.cost-history summary{font-weight:650;cursor:pointer;min-height:32px}.cost-history .summary-row{font-size:.825rem}.cost-history .summary-row strong{white-space:nowrap}.restock-results{max-height:380px;overflow-y:auto;overscroll-behavior:contain}body:has(dialog[open]){overflow:hidden}
@media(max-width:600px){dialog.picker-dialog{margin:auto 0 0;width:100%;max-width:100%;border-radius:22px 22px 0 0;padding:20px 18px calc(16px + env(safe-area-inset-bottom));max-height:90dvh}.picker-list{height:min(450px,calc(87dvh - 180px))}.cashier-surface .panel{padding:18px}.cashier-surface .page-head .link{padding-right:0}.cashier-surface .page-head h1{font-size:1.65rem}.picker-trigger{min-height:54px}.cart-panel .total{padding-top:19px}.cart-panel .total strong{font-size:1.6rem}.picker-product{min-height:66px}.stock-sort{gap:8px}.restock-results{max-height:45dvh}}
@media print{body>*{display:none!important}#print-area{display:block!important;color:#000;background:var(--surface);padding:10px}.receipt{max-width:76mm;margin:0 auto}.receipt p{color:#000}.report-table{font-size:10pt}h1{font-size:18pt}@page{margin:10mm}}

.brand-image{display:block;width:184px;height:64px;object-fit:contain}.brand-dark{display:none}.brand small{text-align:center;font-size:.68rem}.topbar{height:94px}.brand{letter-spacing:0}.dashboard-reminder{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.dashboard-reminder p{margin:3px 0 0;color:inherit}.history-controls{margin-top:16px}button.primary,.stat:first-child,.nav button[data-page=kasir].active{background:#155bda;border-color:#155bda;color:#fff}p,.muted,label small,.list-row small,.product-button small,.stock-sort,.item-summary,.brand small,.subtle,.stat small,.stat span{color:var(--muted)}.item-summary strong{color:var(--text)}.receipt{color:var(--text)}
[data-theme=dark] .brand-light{display:none}[data-theme=dark] .brand-dark{display:block}[data-theme=dark] .app-header{background:#0d1824}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:var(--surface);color:var(--text)}[data-theme=dark] dialog{background:var(--surface);color:var(--text)}[data-theme=dark] button:hover:not(:disabled),[data-theme=dark] .transaction:hover{background:#22364e}[data-theme=dark] button.primary:hover:not(:disabled){background:#104abb}[data-theme=dark] .status,[data-theme=dark] .empty-symbol,[data-theme=dark] .quantity-control button,[data-theme=dark] dialog .dialog-head button,[data-theme=dark] .tabs button.active,[data-theme=dark] .payments button.selected,[data-theme=dark] .nav button.active{background:var(--soft);color:#b4d5ff}[data-theme=dark] .badge{background:#2a3b50;color:#d5e4f7}[data-theme=dark] .badge.warn,[data-theme=dark] .notice.warn{background:#3d321c;color:#ffe1a1}[data-theme=dark] .badge.good,[data-theme=dark] .notice.success{background:#163e32;color:#9be6bc}[data-theme=dark] .badge.bad,[data-theme=dark] .notice.error,[data-theme=dark] .item-price-state.invalid,[data-theme=dark] button.danger{background:#482728;color:#ffc6c3;border-color:#6d3839}[data-theme=dark] .notice{background:#22364e;color:#c0d9ff}[data-theme=dark] .item-price-state{color:#b5d8c8}[data-theme=dark] .line-item,[data-theme=dark] .list-row,[data-theme=dark] .stock-entry,[data-theme=dark] .picker-product,[data-theme=dark] .quantity-control,[data-theme=dark] .detail-stock-actions,[data-theme=dark] .detail-cost-note,[data-theme=dark] .cost-history,[data-theme=dark] .stock-sort{border-color:var(--border)}[data-theme=dark] .nav button[data-page=kasir].active{background:#155bda;color:#fff}
@media(max-width:400px){.topbar{padding:0 12px;gap:6px}.brand-image{width:160px;height:62px}.top-actions{gap:2px}.status.short{max-width:78px}.panel{padding:16px}.fields{gap:10px}.dashboard-reminder{align-items:flex-start}.dashboard-reminder button{padding:8px;font-size:.8rem}.total strong{font-size:1.4rem}}
@media print{html,body,#print-area,.receipt{background:white!important;color:black!important}.receipt p,.receipt .muted{color:black!important}}
[data-theme=dark] .nav button,[data-theme=dark] .tabs button,[data-theme=dark] .welcome-actions button small,[data-theme=dark] .stock-number small,[data-theme=dark] .section-label,[data-theme=dark] .line-item label,[data-theme=dark] .search svg,[data-theme=dark] input::placeholder{color:var(--muted)}
