:root{--ink: #16202e;--ink-2: #33445c;--slate: #64748b;--line: #dfe3ea;--line-2: #eef1f6;--paper: #ffffff;--ground: #f5f6f9;--gold: #a8791f;--gold-lt: #f7efdc;--good: #17734b;--good-lt: #e4f3ec;--warn: #9a6207;--warn-lt: #fdf1dc;--bad: #a32222;--bad-lt: #fbe9e9;--info: #1e5ba8;--info-lt: #e7effa;--r: 10px;--r-s: 7px;--sh: 0 1px 2px rgba(22,32,46,.06), 0 4px 14px rgba(22,32,46,.05);--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--sans);background:var(--ground);color:var(--ink);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.015em;text-wrap:balance}a{color:var(--info)}button,input,select,textarea{font:inherit;color:inherit}.app{display:grid;grid-template-columns:232px 1fr;min-height:100%}.side{background:var(--ink);color:#cdd6e2;display:flex;flex-direction:column;gap:4px;padding:18px 12px;position:sticky;top:0;height:100vh}.brand{padding:6px 10px 16px;display:flex;align-items:baseline;gap:8px}.brand b{color:#fff;font-size:16px;letter-spacing:-.02em}.brand span{color:#7b8ca3;font-size:11px;text-transform:uppercase;letter-spacing:.09em}.side button{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;border-radius:var(--r-s);padding:9px 11px;text-align:left;color:#cdd6e2;cursor:pointer;font-size:14px}.side button:hover{background:#ffffff12;color:#fff}.side button.on{background:#ffffff21;color:#fff;font-weight:600}.side .spacer{flex:1}.side .who{padding:10px 11px;border-top:1px solid rgba(255,255,255,.12);font-size:12px;color:#8496ad}.side .who b{display:block;color:#dbe3ec;font-size:13px;font-weight:600}.badge{margin-left:auto;background:var(--gold);color:#241a05;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.main{padding:26px 30px 70px;max-width:1180px}.head{margin-bottom:20px}.head h1{font-size:23px}.head p{margin:3px 0 0;color:var(--slate);font-size:14px}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}.pad{padding:18px}.grid{display:grid;gap:14px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.stat{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:15px 17px;box-shadow:var(--sh)}.stat .k{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--slate);font-weight:600}.stat .v{font-size:27px;font-weight:680;letter-spacing:-.025em;margin-top:5px;font-variant-numeric:tabular-nums}.stat .s{font-size:12.5px;color:var(--slate);margin-top:3px}.stat.accent .v{color:var(--gold)}.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);box-shadow:var(--sh)}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--slate);font-weight:650;padding:10px 12px;border-bottom:1px solid var(--line);background:#fafbfd;white-space:nowrap}td{padding:11px 12px;border-bottom:1px solid var(--line-2);vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafbfd}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.muted{color:var(--slate)}.small{font-size:12.5px}.pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:620;white-space:nowrap;border:1px solid transparent}.pill.pending{background:var(--warn-lt);color:var(--warn)}.pill.booked{background:var(--info-lt);color:var(--info)}.pill.paid,.pill.received{background:var(--good-lt);color:var(--good)}.pill.cancel,.pill.sent{background:var(--bad-lt);color:var(--bad)}.pill.neutral{background:var(--line-2);color:var(--ink-2)}.flag{display:flex;gap:7px;align-items:flex-start;font-size:13px;padding:3px 0}.flag.error{color:var(--bad)}.flag.check{color:var(--warn)}.btn{background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:var(--r-s);padding:8px 15px;font-size:14px;font-weight:560;cursor:pointer;white-space:nowrap}.btn:hover{background:#223046}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{background:var(--paper);color:var(--ink);border-color:var(--line)}.btn.ghost:hover{background:var(--ground)}.btn.gold{background:var(--gold);border-color:var(--gold);color:#fff}.btn.gold:hover{background:#94690f}.btn.danger{background:var(--paper);color:var(--bad);border-color:#eccaca}.btn.danger:hover{background:var(--bad-lt)}.btn.sm{padding:5px 10px;font-size:13px}label.f{display:block;margin-bottom:12px}label.f>span{display:block;font-size:12px;font-weight:620;color:var(--ink-2);margin-bottom:4px}input,select,textarea{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-s);padding:8px 10px;font-size:14px}input:focus,select:focus,textarea:focus{outline:2px solid var(--info);outline-offset:-1px;border-color:var(--info)}textarea{min-height:68px;resize:vertical}.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:0 14px}.note{background:var(--info-lt);border:1px solid #cfe0f5;color:#17436f;border-radius:var(--r);padding:11px 14px;font-size:13.5px;margin-bottom:16px}.note.warn{background:var(--warn-lt);border-color:#f0dcb4;color:#6d4708}.note.good{background:var(--good-lt);border-color:#c3e4d4;color:#0e5334}.empty{text-align:center;padding:48px 20px;color:var(--slate)}.empty h3{color:var(--ink-2);font-size:16px;margin-bottom:6px}.login{display:grid;place-items:center;min-height:100vh;background:var(--ink);padding:20px}.login .box{background:var(--paper);border-radius:14px;padding:30px;width:100%;max-width:386px;box-shadow:0 20px 60px #0000004d}.login h1{font-size:20px;margin-bottom:4px}.login p.sub{color:var(--slate);font-size:14px;margin:0 0 20px}.codein{font-family:var(--mono);font-size:26px;letter-spacing:9px;text-align:center}.drop{border:2px dashed var(--line);border-radius:var(--r);background:var(--paper);padding:40px 20px;text-align:center;cursor:pointer;transition:.12s}.drop.over{border-color:var(--gold);background:var(--gold-lt)}.drop h3{font-size:16px;margin-bottom:5px}.drop p{margin:0;color:var(--slate);font-size:13.5px}.maprow{display:grid;grid-template-columns:190px 1fr;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line-2)}.maprow:last-child{border-bottom:0}.maprow .lbl{font-size:13.5px;font-weight:560}.maprow .req{color:var(--bad)}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%) translateY(14px);background:var(--ink);color:#fff;padding:10px 18px;border-radius:999px;font-size:14px;opacity:0;pointer-events:none;transition:.18s;z-index:90;box-shadow:0 8px 26px #00000040}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.chk{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:2px 14px}.chk label{display:flex;gap:8px;align-items:center;font-size:13.5px;padding:4px 0;cursor:pointer}.chk input{width:auto}.bar{height:7px;background:var(--line-2);border-radius:99px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--gold)}@media (max-width: 820px){.app{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;gap:4px}.side .brand,.side .who,.side .spacer{display:none}.side button{width:auto}.main{padding:18px 15px 60px}}
