:root{--bg: #f6f4f1;--card: #ffffff;--ink: #2b2723;--muted: #8a8178;--accent: #b0805b;--accent-dark: #96684a;--danger: #c0392b;--ok: #2e7d32;--border: #e6e0d8;--radius: 14px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}#root{max-width:860px;margin:0 auto;padding:16px}header.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 4px}header.topbar h1{font-size:1.25rem;margin:0}header.topbar .who{color:var(--muted);font-size:.85rem;text-align:right}nav.tabs{display:flex;gap:8px;margin:8px 0 16px;flex-wrap:wrap}nav.tabs button{flex:1;min-width:120px;padding:14px 10px;font-size:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--ink);cursor:pointer}nav.tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px}.card h2{margin:0 0 12px;font-size:1.05rem}label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:4px}input,select{width:100%;padding:12px;font-size:1rem;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--ink)}button.primary,button.secondary,button.danger{padding:14px 18px;font-size:1.05rem;border-radius:var(--radius);border:none;cursor:pointer}button.primary{background:var(--accent);color:#fff;font-weight:600}button.primary:hover{background:var(--accent-dark)}button.primary:disabled{background:var(--muted);cursor:not-allowed}button.secondary{background:#fff;border:1px solid var(--border);color:var(--ink)}button.danger{background:#fff;border:1px solid var(--danger);color:var(--danger)}.line-row{display:grid;grid-template-columns:1fr 70px 110px 90px 44px;gap:8px;margin-bottom:8px;align-items:end}.pay-row{display:flex;gap:8px;margin:12px 0}.pay-row button{flex:1;padding:16px;font-size:1.05rem;border-radius:var(--radius);border:1px solid var(--border);background:#fff;cursor:pointer}.pay-row button.selected{background:var(--ink);color:#fff;border-color:var(--ink)}.total{display:flex;justify-content:space-between;font-size:1.4rem;font-weight:700;margin:12px 0}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:500;font-size:.8rem}td.num,th.num{text-align:right}.badge{padding:3px 8px;border-radius:999px;font-size:.75rem}.badge.finalized{background:#e8f5e9;color:var(--ok)}.badge.voided{background:#fdecea;color:var(--danger)}.badge.pending{background:#fff8e1;color:#b26a00}.msg-ok{color:var(--ok);margin:8px 0}.msg-err{color:var(--danger);margin:8px 0;white-space:pre-wrap}.login-wrap{max-width:420px;margin:10vh auto}.login-wrap .hint{color:var(--muted);font-size:.85rem;line-height:1.5}.actions{display:flex;gap:8px;flex-wrap:wrap}.spacer{flex:1}
