:root{--bg: #F2F5F6;--surface: #FFFFFF;--ink: #1B2A30;--muted: #5C6E75;--line: #D7E0E3;--forest: #002D3B;--forest-dark: #001820;--amber: #C97B2E;--amber-soft: #F4E2C8;--alert: #B23A2E;--alert-soft: #F3DCD5;--sky: #008ABF;--sky-soft: #DCF0F7}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:IBM Plex Sans,system-ui,sans-serif}.display-font{font-family:Fraunces,Georgia,serif}.tabular{font-variant-numeric:tabular-nums}.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px}.btn-primary{background:var(--forest);color:#fff;border:none;border-radius:6px;padding:8px 14px;font-weight:600;cursor:pointer}.btn-primary:hover{background:var(--forest-dark)}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:8px 14px;cursor:pointer}.input{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:6px;font-size:13.5px}table.grid-tbl{border-collapse:collapse;width:100%;font-size:13.5px}table.grid-tbl th,table.grid-tbl td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left}.qty-cell{width:28px;height:26px;border:1px solid var(--line);border-radius:5px;font-size:12.5px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--surface)}.qty-cell[data-active=true]{background:var(--sky-soft);border-color:var(--sky);font-weight:600}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px}.tab{padding:8px 14px;font-size:13.5px;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent}.tab.active{color:var(--forest);border-bottom-color:var(--forest);font-weight:600}.print-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff;z-index:300;overflow-y:auto;padding:28px 34px}.print-toolbar{display:flex;justify-content:flex-end;gap:8px;margin-bottom:18px}.print-sheet table{width:100%;border-collapse:collapse;font-size:13px}.print-sheet th,.print-sheet td{border:1px solid #999;padding:6px 8px;text-align:left}.print-sheet th{background:#edebe3}.invoice-page{padding-bottom:30px;margin-bottom:30px;border-bottom:1px dashed #ccc}@page{size:A4;margin:0}@media print{html,body{width:210mm;height:297mm;margin:0!important;padding:0!important;overflow:hidden!important}body *{visibility:hidden}.print-overlay,.print-overlay *{visibility:visible}.print-overlay{position:absolute;top:0;left:0;width:210mm;padding:0;margin:0;overflow:visible!important}.no-print{display:none!important}.invoice-page{page-break-after:always;border-bottom:none}.invoice-page:last-child{page-break-after:auto}}
