:root{--rp-navy:#071223;--rp-blue:#10a9e5;--rp-ink:#10223b;--rp-muted:#64748b;--rp-line:#d9e4ee;--rp-paper:#f2f6fa;--rp-green:#10a979;--tenant-primary:#0a2239;--tenant-accent:#00aee9}*{box-sizing:border-box}body.portal{margin:0;background:var(--rp-paper);color:var(--rp-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}.portal a{color:inherit;text-decoration:none}.portal-shell{min-height:100vh}.portal-topbar{align-items:center;background:var(--rp-navy);color:#fff;display:flex;gap:20px;justify-content:space-between;padding:15px max(20px,calc((100vw - 1180px)/2))}.portal-topbar img{display:block;width:224px}.portal-topbar nav{align-items:center;display:flex;gap:18px}.portal-topbar nav a{color:#b8c7d8;font-size:13px;font-weight:700}.portal-topbar nav a:hover{color:#fff}.portal-main{margin:auto;max-width:1180px;padding:48px 20px 80px}.portal-heading{align-items:end;display:flex;gap:24px;justify-content:space-between;margin-bottom:28px}.portal-heading h1{font-size:clamp(34px,5vw,56px);letter-spacing:-.045em;line-height:1;margin:0 0 10px}.portal-heading p{color:var(--rp-muted);margin:0;max-width:690px}.portal-grid{display:grid;gap:20px;grid-template-columns:repeat(12,1fr)}.portal-card{background:#fff;border:1px solid var(--rp-line);border-radius:17px;box-shadow:0 10px 35px rgba(7,18,35,.06);padding:26px}.span-12{grid-column:span 12}.span-8{grid-column:span 8}.span-7{grid-column:span 7}.span-6{grid-column:span 6}.span-5{grid-column:span 5}.span-4{grid-column:span 4}.portal-card h2{font-size:21px;letter-spacing:-.02em;margin:0 0 5px}.portal-card h3{font-size:15px;margin:0 0 12px}.portal-card>p,.help{color:var(--rp-muted);font-size:13px}.field-grid{display:grid;gap:15px;grid-template-columns:repeat(2,minmax(0,1fr))}.field-grid .full{grid-column:1/-1}.portal label{color:#31435a;display:block;font-size:11px;font-weight:800}.portal input,.portal select,.portal textarea{background:#fff;border:1px solid #c8d6e4;border-radius:9px;color:var(--rp-ink);display:block;font:inherit;margin-top:6px;min-height:45px;padding:11px 12px;width:100%}.portal input:focus,.portal select:focus,.portal textarea:focus{border-color:var(--rp-blue);box-shadow:0 0 0 3px rgba(16,169,229,.13);outline:0}.portal textarea{min-height:92px;resize:vertical}.portal-button{align-items:center;background:linear-gradient(135deg,var(--rp-blue),#087ebd);border:0;border-radius:9px;color:#fff!important;cursor:pointer;display:inline-flex;font-size:13px;font-weight:850;gap:8px;justify-content:center;min-height:45px;padding:11px 18px}.portal-button:hover{filter:brightness(1.04);transform:translateY(-1px)}.portal-button.secondary{background:#fff;border:1px solid #bdd0e2;color:var(--rp-ink)!important}.portal-button.dark{background:var(--rp-navy)}.portal-button.danger{background:#fff1f1;border:1px solid #f5baba;color:#b42318!important}.portal-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.notice{background:#eaf8ff;border:1px solid #8fdcff;border-radius:11px;color:#0b5275;font-size:12px;margin-bottom:20px;padding:13px 15px}.notice strong{display:block;margin-bottom:3px}.notice.warning{background:#fff8e8;border-color:#f1d18b;color:#704d00}.setup-steps{display:flex;gap:8px;margin:0 0 26px}.setup-steps span{background:#dfe8f1;border-radius:99px;color:#63758a;font-size:10px;font-weight:850;padding:7px 11px}.setup-steps span.active{background:var(--rp-navy);color:#fff}.stat-grid{display:grid;gap:12px;grid-template-columns:repeat(4,1fr)}.stat{background:#fff;border:1px solid var(--rp-line);border-radius:13px;padding:18px}.stat small{color:var(--rp-muted);display:block;font-size:10px;font-weight:800;text-transform:uppercase}.stat strong{display:block;font-size:26px;margin-top:4px}.status-pill{background:#e2f8ef;border-radius:99px;color:#087c59;display:inline-flex;font-size:10px;font-weight:850;padding:5px 9px;text-transform:uppercase}.status-pill.test{background:#eaf3ff;color:#155ba7}.portal-table-wrap{overflow:auto}.portal-table{border-collapse:collapse;width:100%}.portal-table th{color:#708095;font-size:9px;letter-spacing:.1em;padding:10px;text-align:left;text-transform:uppercase}.portal-table td{border-top:1px solid #e6edf3;font-size:12px;padding:13px 10px;vertical-align:top}.portal-table td strong,.portal-table td small{display:block}.portal-table td small{color:var(--rp-muted);margin-top:3px}.codebox{background:#071223;border-radius:10px;color:#d7e7f4;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.6;overflow:auto;padding:16px;white-space:pre-wrap}.brand-preview{background:linear-gradient(140deg,var(--tenant-primary),color-mix(in srgb,var(--tenant-primary),#fff 12%));border-radius:16px;color:#fff;min-height:300px;padding:28px;position:relative}.brand-preview img{max-height:62px;max-width:230px}.brand-preview .fallback-brand{font-size:22px;font-weight:900}.brand-preview h2{font-size:38px;line-height:1;margin:55px 0 14px}.brand-preview h2 span{color:var(--tenant-accent)}.brand-preview p{color:#c7d4e2;max-width:430px}.powered{bottom:18px;color:#8fa3b7;font-size:9px;position:absolute}.auth-wrap{align-items:center;display:grid;min-height:calc(100vh - 78px);padding:45px 20px}.auth-card{background:#fff;border:1px solid var(--rp-line);border-radius:18px;box-shadow:0 25px 70px rgba(7,18,35,.12);margin:auto;max-width:470px;padding:32px;width:100%}.auth-card h1{font-size:32px;letter-spacing:-.04em;margin:0 0 7px}.auth-card>p{color:var(--rp-muted);font-size:13px;margin:0 0 22px}.auth-card form{display:grid;gap:14px}.hidden{display:none!important}.empty{border:1px dashed #bdccdb;border-radius:12px;color:var(--rp-muted);font-size:13px;padding:26px;text-align:center}.toast{background:#071223;border-radius:10px;bottom:22px;color:#fff;font-size:12px;left:50%;max-width:calc(100vw - 32px);opacity:0;padding:12px 17px;pointer-events:none;position:fixed;transform:translate(-50%,20px);transition:.2s;z-index:100}.toast.show{opacity:1;transform:translate(-50%,0)}.booking-page{background:linear-gradient(140deg,var(--tenant-primary),color-mix(in srgb,var(--tenant-primary),#000 15%));min-height:100vh;padding:24px}.booking-shell{margin:auto;max-width:760px}.booking-brand{align-items:center;color:#fff;display:flex;gap:14px;justify-content:space-between;margin:5px 0 22px}.booking-brand img{max-height:70px;max-width:270px}.booking-brand strong{font-size:22px}.booking-brand a{color:#c8d7e6;font-size:11px}.booking-card{background:#fff;border-radius:20px;box-shadow:0 25px 80px rgba(0,0,0,.24);padding:30px}.booking-card h1{font-size:32px;letter-spacing:-.04em;line-height:1.05;margin:0 0 8px}.booking-card>p{color:var(--rp-muted);font-size:13px}.quote-result{background:var(--tenant-primary);border-radius:13px;color:#fff;display:flex;gap:20px;justify-content:space-between;margin:18px 0;padding:18px}.quote-result strong{font-size:30px}.quote-result small{color:#bed0df;display:block}.install-box{background:#eef8ff;border:1px solid #a5dcf3;border-radius:12px;margin-top:20px;padding:15px}.install-box h3{margin:0 0 5px}.install-box p{color:#51697f;font-size:12px;margin:0}.trip-card{border:1px solid var(--rp-line);border-radius:13px;margin-top:12px;padding:16px}.trip-card header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.trip-card h3{margin:0}.trip-card p{color:var(--rp-muted);font-size:12px}.trip-statuses{display:flex;flex-wrap:wrap;gap:7px}.trip-statuses button{background:#fff;border:1px solid #c8d6e4;border-radius:8px;color:#30465c;cursor:pointer;font-size:10px;font-weight:800;padding:8px 9px}.trip-statuses button.current{background:var(--rp-navy);color:#fff}.fine-print{color:#718399;font-size:10px;margin-top:18px;text-align:center}@media(max-width:850px){.portal-topbar{align-items:flex-start;flex-direction:column}.portal-topbar nav{flex-wrap:wrap}.span-4,.span-5,.span-6,.span-7,.span-8{grid-column:span 12}.stat-grid{grid-template-columns:repeat(2,1fr)}.portal-heading{align-items:flex-start;flex-direction:column}.brand-preview h2{font-size:32px}}@media(max-width:560px){.portal-main{padding:28px 14px 60px}.portal-card,.booking-card,.auth-card{padding:21px}.field-grid{grid-template-columns:1fr}.field-grid>*{grid-column:1!important}.setup-steps{overflow:auto}.portal-topbar img{width:200px}.stat-grid{grid-template-columns:1fr 1fr}.booking-page{padding:14px}.booking-brand{align-items:flex-start;flex-direction:column}.quote-result{align-items:flex-start;flex-direction:column}}
