/* Quickshine DASH v1.12 — MyAir Customer Portal */

.portal-admin-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px}
.portal-admin-heading h1{margin:0;font-size:34px;letter-spacing:-.045em}
.portal-admin-heading p:not(.eyebrow){margin:7px 0 0;color:var(--qs-muted);font-size:9px}
.portal-admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:17px}
.portal-admin-stats article{border:1px solid var(--qs-border);border-radius:15px;background:#fff;padding:16px;box-shadow:var(--qs-shadow)}
.portal-admin-stats span{display:block;color:var(--qs-muted);font-size:8px}
.portal-admin-stats strong{display:block;margin-top:7px;font-size:25px}
.portal-admin-list{display:grid}
.portal-admin-card{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.6fr);gap:18px;padding:16px;border-bottom:1px solid var(--qs-border)}
.portal-admin-card>div:first-child{display:grid;align-content:start;gap:5px}
.portal-admin-card>div:first-child strong{font-size:9px}
.portal-admin-card>div:first-child span{color:var(--qs-muted);font-size:7px}
.portal-admin-vehicles{display:grid;gap:8px}
.portal-admin-vehicles>div{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--qs-border);border-radius:10px;padding:10px}
.portal-admin-vehicles span{font-size:8px;font-weight:700}
.portal-admin-actions{display:flex;gap:7px;flex-wrap:wrap}
.portal-copy-input{width:100%;border:1px solid var(--qs-border);border-radius:8px;padding:10px;font:inherit;font-size:8px}

.portal-public-shell{min-height:100vh;background:#f1f5f7;color:#102b3b;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.portal-public-header{display:flex;justify-content:space-between;align-items:center;gap:20px;max-width:1220px;margin:0 auto;padding:22px 24px}
.portal-brand{display:flex;align-items:center;gap:12px}
.portal-brand-mark{display:grid;min-width:56px;height:36px;place-items:center;border-radius:10px;background:#0e5a8a;color:#fff;font-size:13px;font-weight:900;letter-spacing:-.04em}
.portal-brand>div:last-child{display:grid;gap:2px}
.portal-brand strong{font-size:11px}
.portal-brand span,.portal-public-user span{color:#6b7d88;font-size:7px}
.portal-public-user{display:grid;text-align:right;gap:3px}
.portal-public-user strong{font-size:9px}

.portal-vehicle-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;max-width:1220px;margin:0 auto;padding:42px 24px 26px}
.portal-vehicle-hero h1{margin:2px 0 8px;font-size:40px;line-height:1;letter-spacing:-.05em}
.portal-vehicle-hero p:not(.portal-kicker){max-width:670px;margin:0;color:#687d89;font-size:10px;line-height:1.7}
.portal-kicker{margin:0;color:#0e5a8a;font-size:7px!important;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.portal-vehicle-select{display:grid;gap:6px;min-width:230px}
.portal-vehicle-select span{color:#71838d;font-size:7px;font-weight:800}
.portal-vehicle-select select{min-height:42px;border:1px solid #ced9df;border-radius:10px;background:#fff;padding:0 11px;color:#163545;font:inherit;font-size:8px}

.portal-score-section{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:14px;max-width:1220px;margin:0 auto;padding:0 24px 18px}
.portal-score-section article{border:1px solid #d6e0e5;border-radius:18px;background:#fff;padding:20px;box-shadow:0 10px 30px rgba(28,61,79,.06)}
.portal-score-card{background:linear-gradient(145deg,#0e5a8a,#103e5e)!important;color:#fff}
.portal-score-card>span,.portal-improvement-card>span{display:block;font-size:8px;font-weight:750}
.portal-score-card>strong,.portal-improvement-card>strong{display:block;margin-top:8px;font-size:44px;line-height:1;letter-spacing:-.05em}
.portal-score-card small{margin-left:3px;font-size:12px;font-weight:600;opacity:.7}
.portal-score-card p{margin:10px 0 0;font-size:8px;line-height:1.5;opacity:.78}
.portal-improvement-card>span{color:#72848e}
.portal-improvement-card>strong{color:#16815b}
.portal-improvement-card p{margin:10px 0 0;color:#70828c;font-size:8px;line-height:1.5}
.portal-summary-card{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;padding:0!important;overflow:hidden;background:#dfe7eb!important}
.portal-summary-card div{display:grid;align-content:center;gap:7px;background:#fff;padding:20px}
.portal-summary-card span{color:#74858e;font-size:7px}
.portal-summary-card strong{font-size:11px;text-transform:capitalize}

.portal-public-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:18px;max-width:1220px;margin:0 auto;padding:0 24px 34px}
.portal-public-main,.portal-public-aside{display:grid;gap:18px;align-content:start}
.portal-public-panel{border:1px solid #d6e0e5;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 10px 30px rgba(28,61,79,.05)}
.portal-public-panel__header{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:18px 20px;border-bottom:1px solid #e3e9ec}
.portal-public-panel__header h2{margin:3px 0 0;font-size:17px;letter-spacing:-.03em}
.portal-text-button{border:0;background:transparent;color:#0e5a8a;font-size:8px;font-weight:800;cursor:pointer}

.portal-report-summary{display:grid;gap:18px;padding:20px}
.portal-report-score-flow{display:flex;align-items:center;gap:14px}
.portal-report-score-flow>div{display:grid;gap:5px}
.portal-report-score-flow span{color:#74858e;font-size:7px}
.portal-report-score-flow strong{font-size:29px}
.portal-score-arrow{font-size:18px!important;color:#8fa0a9!important}
.portal-report-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.portal-report-facts div{display:grid;gap:5px;border-radius:10px;background:#f2f6f8;padding:12px}
.portal-report-facts span{color:#74858e;font-size:7px}
.portal-report-facts strong{font-size:8px;text-transform:capitalize}
.portal-technician-note{border-left:3px solid #0e5a8a;background:#f2f7fa;padding:13px 14px}
.portal-technician-note span{color:#0e5a8a;font-size:7px;font-weight:850;text-transform:uppercase}
.portal-technician-note p{margin:5px 0 0;color:#4e6674;font-size:8px;line-height:1.6}

.portal-photo-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:20px}
.portal-photo-gallery article{border:1px solid #dce4e8;border-radius:13px;overflow:hidden}
.portal-photo-placeholder{position:relative;display:grid;height:120px;place-items:center;background:linear-gradient(145deg,#dce7ed,#f3f7f9)}
.portal-photo-placeholder span{position:absolute;top:9px;left:9px;border-radius:999px;background:rgba(15,48,68,.82);padding:5px 7px;color:#fff;font-size:6px;font-weight:850}
.portal-photo-placeholder strong{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:#fff;color:#16815b;font-size:15px;box-shadow:0 5px 18px rgba(30,61,79,.13)}
.portal-photo-gallery h3{margin:11px 12px 0;font-size:8px}
.portal-photo-gallery p{margin:4px 12px 12px;color:#74858e;font-size:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.portal-history{display:grid}
.portal-history-item{display:grid;grid-template-columns:130px minmax(180px,1fr) 100px 90px;gap:15px;align-items:center;padding:15px 20px;border-bottom:1px solid #e3e9ec}
.portal-history-item:last-child{border-bottom:0}
.portal-history-item>div{display:grid;gap:4px}
.portal-history-item span{color:#74858e;font-size:7px}
.portal-history-item strong{font-size:8px;text-transform:capitalize}

.portal-maintenance-list{display:grid}
.portal-maintenance-list>div{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;align-items:center;padding:15px 18px;border-bottom:1px solid #e3e9ec}
.portal-maintenance-icon{display:grid;width:28px;height:28px;place-items:center;border-radius:9px;background:#eaf3f8;color:#0e5a8a;font-size:12px}
.portal-maintenance-list p{display:grid;gap:4px;margin:0}
.portal-maintenance-list p strong{font-size:8px}
.portal-maintenance-list p span{color:#74858e;font-size:7px}
.portal-maintenance-list small{border-radius:999px;background:#edf3f5;padding:5px 7px;color:#5f737f;font-size:6px;font-weight:800}
.portal-maintenance-list small.is-soon{background:#fff0dc;color:#a65e16}

.portal-recommendations{display:grid;padding:8px 18px 16px}
.portal-recommendations>div{display:grid;grid-template-columns:22px 1fr;gap:7px;padding:10px 0;border-bottom:1px solid #e8edef}
.portal-recommendations>div:last-child{border-bottom:0}
.portal-recommendations span{display:grid;width:20px;height:20px;place-items:center;border-radius:50%;background:#e5f5ed;color:#16815b;font-size:7px}
.portal-recommendations p{margin:2px 0 0;color:#506875;font-size:8px;line-height:1.5}

.portal-preferences{display:grid;gap:10px;padding:16px 18px}
.portal-preferences label{display:flex;align-items:center;gap:8px;font-size:8px;font-weight:700}
.portal-preferences input{width:16px;height:16px}
.portal-primary-button,.portal-secondary-button{min-height:41px;border-radius:10px;padding:0 14px;font:inherit;font-size:8px;font-weight:850;cursor:pointer}
.portal-primary-button{border:0;background:#0e5a8a;color:#fff}
.portal-secondary-button{border:1px solid #cbd9e0;background:#fff;color:#274958}
.portal-book-card{border-radius:18px;background:linear-gradient(145deg,#103e5e,#0e5a8a);padding:22px;color:#fff;box-shadow:0 14px 35px rgba(14,90,138,.22)}
.portal-book-card .portal-kicker{color:#a9d3eb}
.portal-book-card h2{margin:5px 0 8px;font-size:21px;letter-spacing:-.035em}
.portal-book-card p:not(.portal-kicker){margin:0 0 16px;color:#d7e6ef;font-size:8px;line-height:1.6}
.portal-book-card .portal-primary-button{width:100%;background:#fff;color:#0e5a8a}

.portal-book-form{display:grid;gap:12px}
.portal-book-form label{display:grid;gap:6px}
.portal-book-form span{color:var(--qs-muted);font-size:8px;font-weight:700}
.portal-book-form select,.portal-book-form textarea{width:100%;border:1px solid var(--qs-border);border-radius:9px;background:#fff;padding:9px;font:inherit;font-size:8px}

.portal-empty{padding:38px 20px;text-align:center}
.portal-empty strong{display:block;font-size:10px}
.portal-empty p{max-width:440px;margin:7px auto 0;color:#74858e;font-size:8px;line-height:1.6}
.portal-invalid{display:grid;max-width:600px;min-height:70vh;align-content:center;justify-items:center;margin:0 auto;padding:30px;text-align:center}
.portal-invalid h1{margin:20px 0 8px;font-size:29px}
.portal-invalid p{margin:0;color:#6e818b;font-size:9px;line-height:1.7}
.portal-public-footer{display:flex;justify-content:space-between;gap:20px;max-width:1220px;margin:0 auto;padding:24px;border-top:1px solid #d8e1e5;color:#71828b;font-size:7px}
.portal-public-footer strong{color:#274958}

@media(max-width:1050px){
  .portal-score-section{grid-template-columns:1fr 1fr}
  .portal-summary-card{grid-column:1/-1}
  .portal-public-grid{grid-template-columns:1fr}
  .portal-photo-gallery{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .portal-admin-stats,.portal-admin-card,.portal-score-section,.portal-report-facts,.portal-photo-gallery,.portal-history-item{grid-template-columns:1fr}
  .portal-admin-vehicles>div,.portal-vehicle-hero,.portal-public-header,.portal-public-footer{align-items:flex-start;flex-direction:column}
  .portal-public-user{text-align:left}
  .portal-vehicle-hero{padding-top:22px}
  .portal-vehicle-hero h1{font-size:32px}
  .portal-vehicle-select{width:100%}
  .portal-summary-card{grid-template-columns:1fr}
  .portal-public-grid,.portal-score-section,.portal-vehicle-hero,.portal-public-header,.portal-public-footer{padding-left:16px;padding-right:16px}
  .portal-report-score-flow{justify-content:center}
}
