:root{--ink: #16202b;--ink-2: #51606b;--paper: #f3f6f8;--card: #ffffff;--line: #e0e8ec;--teal: #0d9488;--teal-deep: #0b7a70;--teal-ink: #084f49;--cyan: #2fd4c6;--indigo: #5563d6;--indigo-deep: #2b3477;--indigo-ink: #1d2452;--indigo-soft: #e8ebfb;--amber: #e0961b;--amber-soft: #fbf1dc;--teal-soft: #dcf3f0;--red: #b3372c;--red-soft: #f8e9e7;--radius: 14px;--shadow-sm: 0 1px 2px rgba(29, 36, 82, .05), 0 1px 3px rgba(29, 36, 82, .07);--shadow-md: 0 4px 14px rgba(29, 36, 82, .1), 0 1px 3px rgba(29, 36, 82, .06);--ring: 0 0 0 3px rgba(13, 148, 136, .18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);background-image:radial-gradient(1100px 500px at 85% -10%,rgba(85,99,214,.07),transparent 60%),radial-gradient(700px 400px at -10% 110%,rgba(47,212,198,.06),transparent 60%);background-attachment:fixed;font:15px/1.55 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3,.display{font-family:Archivo,Inter,sans-serif;letter-spacing:-.01em}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}::selection{background:var(--teal-soft)}.shell{display:flex;min-height:100vh}.sidebar{width:244px;color:#e9ecf8;flex-shrink:0;background:linear-gradient(180deg,var(--indigo-deep) 0%,var(--indigo-ink) 100%);display:flex;flex-direction:column;padding:22px 12px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{font-family:Archivo;font-weight:700;font-size:21px;letter-spacing:.3px;padding:2px 12px 20px;color:#fff}.brand span{color:var(--cyan)}.nav a{display:block;padding:10px 14px;margin:1px 0;color:#c0c7ea;font-weight:500;font-size:14px;border-radius:9px;transition:background .15s ease,color .15s ease,transform .15s ease}.nav a:hover{color:#fff;text-decoration:none;background:#ffffff12}.nav a.active{color:#fff;background:#ffffff1f;box-shadow:inset 3px 0 0 var(--cyan);font-weight:600}.nav .section{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#8a94cc;padding:20px 14px 7px;font-weight:600}.sidebar .foot{margin-top:auto;padding:16px 14px 4px;font-size:12px;color:#8a94cc;border-top:1px solid rgba(255,255,255,.08)}.sidebar .foot .foot-user{display:block;margin-bottom:4px;color:#c0c7ea}.sidebar .foot select{background:#ffffff14;color:#eaf4f2;border:1px solid rgba(255,255,255,.15);font-size:12.5px}.sidebar .foot .btn{font-size:13px;padding:8px 14px}.main{flex:1;padding:36px 44px 60px;max-width:1160px;animation:pagein .25s ease both}@keyframes pagein{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.page-title{font-size:27px;font-weight:700;margin:0 0 4px}.page-sub{color:var(--ink-2);margin:0 0 26px;font-size:14.5px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;box-shadow:var(--shadow-sm);transition:box-shadow .2s ease}.card:hover{box-shadow:var(--shadow-md)}.card[style*="padding:0"],.card[style*="padding: 0"]{overflow:hidden}.grid{display:grid;gap:18px}.grid.cols-3{grid-template-columns:repeat(3,1fr)}@media (max-width: 900px){.grid.cols-3{grid-template-columns:1fr}.main{padding:20px}}.meter{border-top:4px solid var(--indigo)}.meter .label{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);font-weight:600}.meter .value{font-family:Archivo;font-weight:700;font-size:38px;font-variant-numeric:tabular-nums;margin:6px 0 2px;color:var(--teal-ink)}.meter .hint{font-size:13px;color:var(--ink-2)}.meter.ok{border-top-color:var(--teal)}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2);font-weight:600;padding:12px 14px;background:#fafcfb;border-bottom:1px solid var(--line)}td{padding:13px 14px;border-bottom:1px solid #edf2f0;vertical-align:top}tbody tr:last-child td{border-bottom:0}tbody tr{transition:background .12s ease}tbody tr:hover{background:#f7faf9}tr.rowlink{cursor:pointer}tr.rowlink:hover{background:var(--teal-soft)}.num{text-align:right;font-variant-numeric:tabular-nums}.badge{display:inline-block;padding:3px 11px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.01em}.badge.open{background:var(--amber-soft);color:#8a5a0a}.badge.paid,.badge.bulk{background:var(--teal-soft);color:var(--teal-deep)}.badge.counter{background:#eef0ef;color:var(--ink-2)}.badge.progress{background:var(--amber-soft);color:#8a5a0a}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.chip{background:#fff;color:var(--teal-deep);border:1px solid var(--line);border-radius:999px;padding:8px 15px;font-weight:600;font-size:13px;box-shadow:var(--shadow-sm);transition:all .15s ease}.chip:hover{background:var(--teal);border-color:var(--teal);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-md)}.chip:active{transform:none}.paid-stamp{color:var(--teal-deep);font-weight:700;border:2px solid var(--teal);display:inline-block;padding:5px 14px;border-radius:8px;letter-spacing:.03em}.due-stamp{color:#8a5a0a;font-weight:700;border:2px solid var(--amber);display:inline-block;padding:5px 14px;border-radius:8px;letter-spacing:.03em}.btn{background:linear-gradient(180deg,#15b0a2,var(--teal));color:#fff;border:0;border-radius:10px;padding:10px 20px;font-weight:600;box-shadow:var(--shadow-sm);transition:all .15s ease;display:inline-block;text-align:center}.btn:hover{background:var(--teal-deep);box-shadow:var(--shadow-md);transform:translateY(-1px);text-decoration:none}.btn:active{transform:none;box-shadow:var(--shadow-sm)}.btn:focus-visible{outline:none;box-shadow:var(--ring)}.btn:disabled{background:#b9c9c6;cursor:not-allowed;transform:none;box-shadow:none}.btn.ghost{background:#fff;color:var(--teal);border:1px solid var(--line)}.btn.ghost:hover{background:var(--teal-soft);border-color:var(--teal);color:var(--teal-deep)}input,textarea,select{font:inherit;width:100%;max-width:100%;padding:10px 13px;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}img{max-width:100%}input:hover,textarea:hover,select:hover{border-color:#c2ced6}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--teal);box-shadow:var(--ring)}input::placeholder,textarea::placeholder{color:#9aa9a5}label{font-size:13px;font-weight:600;display:block;margin:14px 0 6px;color:var(--ink)}.error{background:var(--red-soft);color:var(--red);border-radius:10px;border:1px solid rgba(179,55,44,.18);padding:11px 15px;margin:12px 0;font-size:14px}.empty{color:var(--ink-2);text-align:center;padding:40px 16px}.msg{border:1px solid var(--line);border-radius:10px;padding:11px 15px;margin:8px 0;background:#fff;transition:all .12s ease}.msg[style*=cursor]:hover{border-color:var(--teal);background:var(--teal-soft);transform:translate(2px)}.msg.staff{background:var(--teal-soft);border-color:transparent}.muted{color:var(--ink-2);font-size:13px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.toolbar .btn{flex-shrink:0}.toolbar input{flex:1 1 170px;min-width:0;width:auto}.toolbar select{flex:1 1 150px;min-width:0;width:auto}.counter-grid{display:grid;grid-template-columns:1.45fr 1.05fr;gap:18px;align-items:start}.counter-grid>div:last-child{position:sticky;top:16px}@media (max-width: 980px){.counter-grid{grid-template-columns:1fr}.counter-grid>div:last-child{position:static}}.cart-line{padding:10px 0;border-bottom:1px solid #edf2f0}.cart-line:last-child{border-bottom:0;padding-bottom:2px}.cart-line-top{display:flex;align-items:flex-start;gap:8px}.cart-name{flex:1;font-weight:600;font-size:13.5px;line-height:1.3}.cart-from{display:block;font-size:11px;color:var(--ink-2);font-weight:500}.cart-remove{background:none;border:0;color:var(--ink-2);font-size:14px;padding:2px 7px;border-radius:6px;line-height:1.2}.cart-remove:hover{background:var(--red-soft);color:var(--red)}.cart-line-controls{display:flex;align-items:center;gap:8px;margin-top:7px;flex-wrap:wrap}.qty-step{display:inline-flex;align-items:stretch;border:1.5px solid var(--line);border-radius:10px;overflow:hidden}.qty-step button{border:0;background:#f3f6f8;width:30px;font-size:16px;font-weight:700;color:var(--teal-deep);transition:background .12s ease}.qty-step button:hover{background:var(--teal-soft)}.qty-step input{border:0!important;border-radius:0;width:58px;text-align:center;padding:7px 2px;box-shadow:none!important}.cart-x{color:var(--ink-2);font-size:13px}.cart-rate{width:84px!important;flex:0 0 84px;text-align:right;padding:7px 8px!important}.cart-amount{margin-left:auto;font-weight:700;font-size:14.5px;font-variant-numeric:tabular-nums;white-space:nowrap}.rate-note{font-size:11px;color:var(--ink-2);margin-top:3px}.qty-step input::-webkit-outer-spin-button,.qty-step input::-webkit-inner-spin-button,.cart-rate::-webkit-outer-spin-button,.cart-rate::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.qty-step input[type=number],.cart-rate[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.counter-grid.easy .qty-step button{width:42px;font-size:20px}.counter-grid.easy .qty-step input{width:66px;font-size:17px}.counter-grid.easy .cart-rate{width:96px!important;flex-basis:96px;font-size:16px}.counter-grid.easy .cart-amount{font-size:17px}.counter-grid.easy .cart-name{font-size:15px}.counter-grid.easy .cart-remove{font-size:17px;padding:4px 10px}.receipt{max-width:440px}.brand-line{font-family:Archivo;font-weight:700;font-size:18px}.brand-line span{color:var(--cyan)}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:10px;margin-bottom:12px}.tile{display:flex;flex-direction:column;align-items:center;gap:6px;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:12px 8px 10px;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .15s ease}.tile:hover,.tile:active{border-color:var(--teal);box-shadow:var(--shadow-md);transform:translateY(-2px)}.tile img{width:64px;height:64px;object-fit:contain}.tile-initials{width:64px;height:64px;border-radius:12px;background:var(--teal-soft);color:var(--teal-deep);font-family:Archivo;font-weight:700;font-size:24px;display:flex;align-items:center;justify-content:center}.tile-name{font-size:12.5px;font-weight:600;text-align:center;line-height:1.25}.tile-price{font-size:12px;color:var(--ink-2)}.counter-grid.easy input,.counter-grid.easy select,.counter-grid.easy .btn{font-size:16px}.counter-grid.easy .btn{padding:12px 20px}.counter-grid.easy td,.counter-grid.easy th{padding:12px 10px;font-size:15px}.spinner{width:18px;height:18px;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;display:inline-block;vertical-align:-4px;margin-right:8px;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#16211f73;display:flex;align-items:center;justify-content:center;z-index:999}.overlay .panel{background:#fff;border-radius:14px;padding:30px 40px;box-shadow:var(--shadow-md);text-align:center;font-weight:600;max-width:340px}.overlay .spinner{width:30px;height:30px;margin:0 auto 14px;display:block;border-color:#0f6e6e33;border-top-color:var(--teal)}.overlay .panel.modal{text-align:left;font-weight:400;max-width:520px;width:100%;margin:0 16px;padding:24px 26px;max-height:90vh;overflow-y:auto}.form-2col{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.form-3col{display:grid;grid-template-columns:1.4fr .8fr 1fr;gap:0 12px}@media (max-width: 560px){.form-2col,.form-3col{grid-template-columns:1fr}}.loading-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;padding:60px 0}.spinner.big{width:36px;height:36px;margin:0;display:block;border-color:#0d94882e;border-top-color:var(--teal)}.app-loader{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px}.inv-doc{color:#111;font-size:9pt;font-family:Arial,Inter,sans-serif}.inv-doc,.inv-doc *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.inv-doc table{border-collapse:collapse;width:100%;font-size:9pt}.inv-doc td{vertical-align:top}.inv-doc .inv-head td{border:0;padding:0}.inv-doc .inv-title{font-size:20pt;font-weight:700;color:#1e3a8a}.inv-doc .inv-docbox{width:95%;margin-left:auto;margin-top:6px}.inv-doc .inv-docbox td{border:.5pt solid #000;font-size:8pt;padding:4px 6px;white-space:nowrap;text-align:left}.inv-doc .inv-docbox td.label{font-weight:700;background:#f3f4f6}.inv-doc .inv-addr{margin-top:15px;border:.5pt solid #000}.inv-doc .addressheader{font-size:10pt;font-weight:700;background:#1e3a8a;color:#fff;padding:6px}.inv-doc .address{font-size:9pt;line-height:140%;padding:8px}.inv-doc .inv-items{margin-top:20px}.inv-doc .inv-items th{font-size:9pt;font-weight:700;background:#1e3a8a;color:#fff;padding:6px;text-align:left;border:.5pt solid #ccc;text-transform:none;letter-spacing:0}.inv-doc .inv-items td{padding:5px;border:.5pt solid #ccc;line-height:140%}.inv-doc .inv-items tbody tr:nth-child(2n){background:#f8f9fa}.inv-doc .inv-items tbody tr:hover{background:inherit}.inv-doc .inv-totalbox{border:.5pt solid #000}.inv-doc .inv-totalbox td{font-size:9pt;padding:6px;border-bottom:.5pt solid #ccc}.inv-doc .inv-totalbox td.label{font-weight:700;border-right:.5pt solid #000;background:#f3f4f6}.inv-doc .inv-totalbox tr.final td{background:#1e3a8a;color:#fff;font-weight:700}.inv-doc .inv-footer{margin-top:40px}.inv-doc .inv-footer hr{border:none;height:1px;background:#1e3a8a;margin-bottom:8px}.inv-doc .inv-footer div{font-size:10pt;font-weight:700;text-align:center}.tracker{display:flex;align-items:flex-start;gap:0}.tracker .t-step{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:20px}.tracker .t-dot{width:16px;height:16px;border-radius:50%;background:#dfe7ea;border:3px solid #fff;box-shadow:0 0 0 1.5px var(--line);transition:all .3s ease}.tracker .t-step.done .t-dot{background:var(--teal);box-shadow:0 0 0 1.5px var(--teal)}.tracker .t-step.now .t-dot{background:var(--cyan);box-shadow:0 0 0 1.5px var(--cyan);animation:pulse 1.6s ease infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 1.5px var(--cyan)}50%{box-shadow:0 0 0 5px #2fd4c640}}.tracker .t-bar{flex:1;height:3px;background:#dfe7ea;margin-top:6.5px;border-radius:2px;transition:background .3s ease}.tracker .t-bar.done{background:var(--teal)}.tracker .t-label{font-size:10.5px;font-weight:600;color:var(--ink-2);white-space:nowrap}.tracker .t-step.now .t-label{color:var(--teal-ink)}.tracker.compact .t-dot{width:11px;height:11px;border-width:2px}.tracker.compact .t-bar{margin-top:4.5px;height:2.5px;min-width:12px}@media (max-width: 820px){.shell{flex-direction:column}.sidebar{position:sticky;top:0;width:100%;height:auto;z-index:40;padding:10px 12px 6px;overflow:visible}.brand{padding:2px 4px 8px;font-size:18px}.nav{display:flex;gap:4px;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch}.nav a{white-space:nowrap;padding:8px 12px;font-size:13px;margin:0}.nav a.active{box-shadow:inset 0 -3px 0 var(--cyan)}.nav .section{display:none}.sidebar .foot{display:flex;align-items:center;gap:10px;margin-top:4px;padding:8px 4px 2px}.sidebar .foot .foot-user{margin:0;white-space:nowrap}.sidebar .foot .foot-tag{display:none}.sidebar .foot select{flex:1;margin-top:0!important;width:auto}.sidebar .foot .btn{width:auto!important;margin-top:0!important;padding:7px 12px}.main{padding:16px 14px 48px}.page-title{font-size:22px}.page-sub{margin-bottom:18px}.card{padding:16px}.meter .value{font-size:30px}.counter-grid{grid-template-columns:1fr}.overlay .panel{margin:0 16px}.receipt-wrap .toolbar .btn{flex:1 1 auto}}@media (max-width: 700px){.main .card table,.main>table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}th,td{padding:9px 8px;font-size:13px}td input,td select{min-width:72px}.grid.cols-3{grid-template-columns:1fr}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#c2ced6;border-radius:8px;border:2px solid var(--paper)}::-webkit-scrollbar-track{background:transparent}.print-only{display:none}@page{size:letter;margin:0}@media print{body{background:#fff}.sidebar,.no-print,.page-title,.page-sub{display:none!important}.main{padding:.6in;max-width:none;animation:none}.receipt{border:0}.print-only{display:block}.card{border:0;box-shadow:none}.print-inv .receipt,.print-rcpt .inv-doc{display:none!important}}
