:root{--gold:#ffbd12;--gold-dark:#e89c00;--charcoal:#4d4d50;--ink:#192231;--muted:#738095;--line:#e3e7ed;--panel:#fff;--bg:#eef1f4;--green:#14845c;--red:#b4233e;--amber:#a66d00;--shadow:0 18px 50px rgba(22,34,50,.12);--purple:#e89c00;--purple2:#d58f00;--orange:#ffbd12}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
button,input,select,textarea{font:inherit}button{cursor:pointer}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(145deg,#1a2230 0%,#303c4d 100%)}
.login-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px 30px;box-shadow:0 32px 90px rgba(0,0,0,.38)}
.login-logo{display:block;width:min(330px,88%);height:auto;margin:0 auto 22px;object-fit:contain}
.login-card h1{text-align:center;margin:0 0 7px;font-size:24px;letter-spacing:-.03em;color:var(--ink)}
.lead{text-align:center;margin:0 0 24px;color:var(--muted);font-size:11px;line-height:1.55}
.stack{display:grid;gap:15px}.stack label,.booking-form label{display:grid;gap:7px;font-weight:800;font-size:10px;color:#475469}
.stack input,.booking-form input,.booking-form select,.booking-form textarea{width:100%;min-height:46px;padding:11px 12px;border:1.5px solid #d7dde5;border-radius:11px;background:#fff;color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}
.stack input:focus,.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus:focus{border-color:var(--gold-dark);box-shadow:0 0 0 3px rgba(255,189,18,.16)}
.primary,.secondary,.link-btn,.icon-btn{border:0;border-radius:11px;font-weight:900}.primary{background:var(--gold);color:#2d2b24;padding:11px 15px;box-shadow:0 8px 20px rgba(255,189,18,.23)}.primary:hover{background:#ffc62e}.primary.large{padding:13px 16px;min-height:48px}.secondary{background:#e9edf2;color:#465268;padding:11px 15px}.secondary:hover{background:#dde3ea}
.text-link{border:0;background:transparent;color:#8c6200;font-weight:900;padding:4px 0;text-align:center;font-size:10px;text-decoration:none}.text-link:hover{text-decoration:underline}
.form-notice{padding:11px 13px;border-radius:11px;background:#edf8f2;color:#245f4a;border:1px solid #c8ead9;font-size:10px;line-height:1.5}.login-help{text-align:center;color:var(--muted);font-size:9px;margin:20px 0 0}.form-error{padding:11px 13px;border-radius:11px;background:#fff0f2;color:#a72d46;border:1px solid #f6c9d2;font-size:10px;line-height:1.5}
.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;background:#202938;color:#fff;padding:18px 14px;display:flex;flex-direction:column;z-index:20}.side-brand{display:flex;align-items:center;gap:11px;padding:8px 8px 20px}.side-brand strong{display:block;font-size:16px}.side-brand span{display:block;color:#9ca3af;font-size:12px}.side-icon{width:42px;height:42px;border-radius:12px;background:var(--gold);color:#2d2b24;display:grid;place-items:center}.agency-box{margin:0 7px 14px;padding:10px 12px;border:1px solid #3a4657;border-radius:11px;background:#2a3545}.agency-box span{display:block;color:#9ca3af;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.agency-box strong{font-size:13px}nav{display:grid;gap:5px}nav a,.side-footer a{width:100%;display:flex;align-items:center;gap:12px;border:0;background:transparent;color:#d1d5db;padding:11px 12px;border-radius:10px;text-align:left;font-weight:700}nav a i,.side-footer a i{width:20px;text-align:center}nav a:hover,nav a.active{background:#303c4d;color:#fff}.side-footer{margin-top:auto;border-top:1px solid #354154;padding-top:12px}.main{grid-column:2;min-width:0}.topbar{height:84px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10}.top-title h1{margin:0;font-size:21px}.top-title p{margin:3px 0 0;color:var(--muted);font-size:12px}.top-actions{display:flex;align-items:center;gap:16px}.user-chip{display:flex;align-items:center;gap:8px;padding-left:14px;border-left:1px solid var(--line)}.user-chip>i{font-size:28px;color:#986900}.user-chip strong,.user-chip span{display:block}.user-chip strong{font-size:13px}.user-chip span{font-size:11px;color:var(--muted);text-transform:capitalize}.content{padding:26px;display:grid;gap:20px}.tab-panel{display:grid;gap:20px}.account-banner{background:linear-gradient(135deg,#202938,#303c4d);border-radius:18px;color:#fff;padding:22px 24px;display:flex;justify-content:space-between;align-items:center;gap:20px}.eyebrow{display:block;color:var(--gold);font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:10px}.account-banner h2{margin:4px 0;font-size:25px}.account-banner p{margin:0;color:#cbd5e1}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat{background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px;box-shadow:0 4px 16px rgba(15,23,42,.04)}.stat>span{display:block;color:var(--muted);font-size:12px;font-weight:800}.stat>strong{display:block;font-size:27px;margin:6px 0 2px}.stat>small{color:var(--muted)}.progress{height:6px;border-radius:99px;background:#e2e8f0;margin-top:12px;overflow:hidden}.progress span{display:block;height:100%;background:var(--gold-dark);width:0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 5px 20px rgba(15,23,42,.04)}.panel-head,.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.panel-head h3,.section-head h2{margin:0}.section-head p{margin:4px 0 0;color:var(--muted)}.link-btn{background:transparent;color:#986900;padding:7px}.mini-list{display:grid;gap:9px;margin-top:14px}.mini-item{padding:11px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px}.mini-item:first-child{border-top:0}.mini-item strong,.mini-item span{display:block}.mini-item span{font-size:12px;color:var(--muted);margin-top:3px}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:850;background:#e2e8f0;color:#475569;white-space:nowrap}.badge.green{background:#dcfce7;color:#166534}.badge.amber{background:#fef3c7;color:#92400e}.badge.red{background:#fee2e2;color:#991b1b}.cards-list{display:grid;gap:12px}.booking-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px;display:grid;grid-template-columns:minmax(150px,.65fr) minmax(280px,1.8fr) minmax(120px,.6fr) auto;gap:16px;align-items:center}.booking-card h3{margin:0 0 4px;font-size:15px}.booking-card p{margin:2px 0;color:var(--muted);font-size:13px}.route-line{display:grid;grid-template-columns:18px 1fr;gap:7px;align-items:start;margin:3px 0}.route-line i{font-size:8px;margin-top:6px;color:#986900}.booking-actions{display:flex;gap:7px;justify-content:flex-end}.danger-btn{border:0;border-radius:9px;background:#fee2e2;color:#991b1b;font-weight:800;padding:9px 11px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 5px 18px rgba(15,23,42,.04)}table{width:100%;border-collapse:collapse;min-width:780px}th,td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#f8fafc}td{font-size:13px}tbody tr:last-child td{border-bottom:0}.money{font-variant-numeric:tabular-nums;font-weight:800}.debit{color:#b91c1c}.credit{color:#15803d}.client-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.client-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px;box-shadow:0 4px 15px rgba(15,23,42,.04);cursor:pointer}.client-card:hover{border-color:var(--gold);box-shadow:0 9px 24px rgba(15,23,42,.08)}.client-card h3{margin:0 0 5px}.client-card p{margin:3px 0;color:var(--muted);font-size:12px}.client-fin{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.client-fin div{background:#f8fafc;border-radius:9px;padding:9px}.client-fin span,.client-fin strong{display:block}.client-fin span{font-size:10px;color:var(--muted)}.client-fin strong{font-size:14px;margin-top:2px}.agency-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.empty-state,.loading-card{background:#fff;border:1px dashed #cbd5e1;border-radius:16px;padding:45px;text-align:center;color:var(--muted)}.empty-state i,.loading-card i{font-size:30px;color:#986900;margin-bottom:10px}.empty-state h2{color:var(--ink);margin:8px 0}.icon-btn{width:40px;height:40px;display:grid;place-items:center;background:#f1f5f9;color:#334155}.booking-form{padding:22px;display:grid;grid-template-columns:1fr 1fr;gap:15px}.field.full,.booking-form>.full{grid-column:1/-1}.quote-box{grid-column:1/-1;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:11px;padding:12px}.booking-page-card{max-width:900px;width:100%;margin:0 auto;padding:0;overflow:hidden}.booking-client-strip{display:flex;align-items:center;gap:8px;padding:16px 22px;background:#fff7dd;border-bottom:1px solid #f3d47a;color:#5e4300}.booking-client-strip span{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.booking-client-strip strong{font-size:15px}.booking-form-inline{padding:22px}.booking-page-actions{display:flex;justify-content:flex-end;gap:9px;border-top:1px solid var(--line);padding-top:16px;margin-top:4px}.toast{position:fixed;right:20px;bottom:20px;z-index:100;max-width:420px;padding:12px 15px;background:#202938;color:#fff;border-radius:11px;box-shadow:var(--shadow);opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translateY(0)}.mobile-only{display:none}@media(max-width:1150px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-card{grid-template-columns:1fr 2fr}.booking-actions{justify-content:flex-start}.top-actions{gap:8px}}@media(max-width:820px){.app-shell{display:block}.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.main{grid-column:auto}.topbar{padding:0 15px;height:auto;min-height:74px}.mobile-only{display:grid}.top-title{margin-right:auto;margin-left:9px}.user-chip{display:none}.content{padding:16px}.two-col{grid-template-columns:1fr}.booking-card{grid-template-columns:1fr}.stats-grid,.agency-stats{grid-template-columns:1fr 1fr}.client-grid{grid-template-columns:1fr}.account-banner{align-items:flex-start;flex-direction:column}.booking-form{grid-template-columns:1fr}.field.full,.booking-form>.full{grid-column:auto}}@media(max-width:520px){.booking-page-actions{flex-direction:column-reverse}.booking-page-actions button{width:100%}.stats-grid,.agency-stats{grid-template-columns:1fr}.login-shell{padding:10px}.login-card{padding:22px 16px;border-radius:16px}.login-logo{width:min(300px,90%);margin-bottom:18px}.top-title h1{font-size:17px}.top-title p{display:none}.content{padding:12px}.section-head{align-items:flex-start;flex-direction:column}.section-head .primary{width:100%}}

/* Portal 1.0.5 navigation/pages, receipts and dashboard booking modal */
body.modal-open{overflow:hidden}
.modal-overlay{position:fixed;inset:0;z-index:1000;background:rgba(12,18,28,.72);backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px;overflow:auto}
.modal-overlay[hidden]{display:none!important}
.modal-dialog{width:min(760px,100%);max-height:calc(100vh - 40px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 32px 90px rgba(0,0,0,.42)}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px 16px;border-bottom:1px solid var(--line);background:#fff}
.modal-head h2{margin:3px 0 4px;font-size:22px}.modal-head p{margin:0;color:var(--muted);font-size:12px}.modal-head .icon-btn{flex:0 0 auto}
.modal-booking-form{padding:20px 22px 22px}
.receipt-link{display:inline-flex;align-items:center;gap:6px;color:#7a5500;font-weight:850;text-decoration:none;white-space:nowrap}.receipt-link:hover{color:#a56f00;text-decoration:underline}.receipt-link.compact{font-size:11px;margin-top:5px}.receipt-pending{font-size:12px;color:var(--muted)}
.mini-actions{display:flex;flex-direction:column;align-items:flex-end;justify-content:center}
.client-card.selected{border-color:var(--gold-dark);box-shadow:0 0 0 2px rgba(255,189,18,.18),0 9px 24px rgba(15,23,42,.08)}
.client-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.client-card-head h3{margin:0 0 5px}.client-open{margin-top:13px;padding-top:11px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;color:#7a5500;font-size:11px;font-weight:850}
#noClientState .primary{margin-top:10px}
@media(max-width:820px){.modal-overlay{padding:10px}.modal-dialog{max-height:calc(100vh - 20px);border-radius:16px}.modal-head{padding:16px}.modal-booking-form{padding:16px}.mini-actions{align-items:flex-start}}

/* Portal 1.0.6 real-page navigation */
nav a,.side-footer a{text-decoration:none}
.button-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none}
.icon-link{min-width:40px;padding:9px 11px}
.client-card{text-decoration:none;color:inherit}
.standalone-head{padding:18px 22px 0}
.compact-empty{padding:20px}
.muted{color:#64748b}
