:root{--bg:#f4f7fb;--card:#fff;--ink:#152235;--muted:#65758b;--primary:#176b87;--accent:#20a47a;--danger:#c23b4a;--line:#dbe4ee}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}header{background:#103c50;color:#fff;padding:14px 20px;display:flex;gap:14px;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:3}header h1{font-size:19px;margin:0}.wrap{max-width:1280px;margin:auto;padding:18px}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 4px 18px #25445b0c}.span-12{grid-column:span 12}.span-8{grid-column:span 8}.span-6{grid-column:span 6}.span-4{grid-column:span 4}.metrics{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px}.metric{background:#eef7fa;border-radius:12px;padding:12px}.metric b{display:block;font-size:20px}.muted{color:var(--muted)}h2,h3{margin:0 0 12px}input,select,button,textarea{font:inherit;border-radius:9px;border:1px solid #bdcad8;padding:10px 12px}input,select,textarea{background:white;min-width:0}button{background:var(--primary);color:#fff;border:0;cursor:pointer;font-weight:650}button.secondary{background:#60758a}button.good{background:var(--accent)}button.danger{background:var(--danger)}button.light{background:#e8f1f5;color:#123}button:disabled{opacity:.45;cursor:not-allowed}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stack{display:grid;gap:10px}.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.list{display:grid;gap:9px}.item{border:1px solid var(--line);border-radius:11px;padding:12px;background:#fff}.item strong{font-size:16px}.badge{display:inline-block;padding:3px 8px;border-radius:20px;background:#e7eef4;font-size:12px}.badge.queued{background:#fff0bd}.badge.in_service{background:#dff3ff}.badge.awaiting_payment{background:#ffe2c9}.badge.paid{background:#d8f5e9}.badge.debt{background:#f6dff0}.badge.cancelled{background:#eee}.toast{position:fixed;right:16px;bottom:16px;background:#172c39;color:#fff;padding:12px 16px;border-radius:10px;display:none;z-index:10}.login{max-width:430px;margin:10vh auto}.login .card{padding:28px}.login input,.login button{width:100%}table{width:100%;border-collapse:collapse}th,td{text-align:left;border-bottom:1px solid var(--line);padding:8px}.touch button{min-height:48px;min-width:110px}.queue-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.catalog-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.catalog-columns section{min-width:0}.catalog-columns .list{max-height:55vh;overflow:auto;padding-right:3px}.payment-total{padding:12px;border-radius:10px;background:#eef7fa;font-size:18px}.payment-grid label,.payment-options label{display:grid;gap:5px;font-weight:650}.payment-grid input[readonly]{background:#eef3f6;font-weight:700}#visitDialog{max-width:1100px}dialog{border:0;border-radius:16px;max-width:720px;width:calc(100% - 24px);box-shadow:0 20px 70px #0004}dialog::backdrop{background:#0a263788}.hidden{display:none!important}a{color:inherit}.warehouse-stock{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:10px}.stock-card{border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:8px;background:#fff}.stock-card>strong{font-size:20px}.stock-negative{border:2px solid var(--danger);background:#fff3f4}.negative-warning,.debt-text{color:var(--danger);font-weight:750}.stock-positive{color:var(--accent);font-weight:700}.invoice-line{display:grid;grid-template-columns:minmax(220px,2fr) 100px 160px 120px auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:10px}.table-wrap{overflow:auto}.compact-list{margin-top:12px}.badge.paid{background:#d8f4e9}.badge.partial{background:#fff0bd}.badge.debt{background:#ffdfe3}@media(max-width:1000px){.warehouse-stock{grid-template-columns:repeat(2,minmax(220px,1fr))}.invoice-line{grid-template-columns:1fr 90px 140px}.invoice-line .invoice-line-total{grid-column:1/3}}@media(max-width:850px){.span-8,.span-6,.span-4{grid-column:span 12}.metrics{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr 1fr}.wrap{padding:10px}header{position:static}}@media(max-width:500px){.form-grid{grid-template-columns:1fr}.metrics{grid-template-columns:1fr 1fr}.row>*{flex:1}header{align-items:flex-start}.hide-mobile{display:none}}