:root{--portal-ink:#172933;--portal-muted:#536973;--portal-line:#d7e2e5;--portal-teal:#176678;--portal-paper:#f5f8f9}.portal{background:#eaf0f1;color:var(--portal-ink);min-height:80vh;padding-bottom:92px}.portal-hero{min-height:270px;background:linear-gradient(90deg,rgba(8,25,31,.88),rgba(8,25,31,.3)),url('/assets/IMG_2304.webp') center 52%/cover;display:flex;align-items:center;color:white}.portal-hero-content{max-width:1120px;margin:auto;width:100%;padding:56px 30px}.portal-hero h1{font-size:clamp(2.6rem,6vw,4.5rem);margin:10px 0;line-height:1.05;color:white}.portal-hero p{max-width:560px;font-size:1.18rem;line-height:1.55;color:white;margin:0}.portal-kicker{font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--portal-teal)}.portal-hero .portal-kicker{color:#bce4e7}.portal-shell{max-width:1120px;margin:0 auto;padding:28px 24px}.portal-panel{background:#fff;border:1px solid var(--portal-line);border-radius:14px;padding:30px;margin:22px 0;box-shadow:0 8px 28px rgba(20,48,58,.045)}.portal-panel h2{font-size:clamp(1.5rem,3vw,2rem);margin:7px 0 14px;line-height:1.2}.portal-panel h3{font-size:1.18rem;margin:0 0 14px}.portal-panel p{line-height:1.55}.portal-panel form{display:grid;gap:12px}.portal-panel label{font-size:1rem;font-weight:700}.portal-panel input:not([type=checkbox]),.portal-panel select,.portal-panel textarea{width:100%;min-height:46px;border:1px solid #9eb5bd;background:#fff;border-radius:8px;padding:11px 13px;font:inherit;font-size:1rem;color:var(--portal-ink)}.portal-panel textarea{min-height:95px}.portal-panel input:focus,.portal-panel select:focus,.portal-panel textarea:focus{outline:3px solid #a7d6dc;outline-offset:2px}.portal-panel .button{justify-self:start;cursor:pointer;min-height:47px}.portal-small,.field-hint,.panel-note{color:var(--portal-muted);font-size:.94rem}.field-hint{margin:0}.portal-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:4px 0 22px}.portal-toolbar p{margin:5px 0 0;word-break:break-word}.portal-link{border:0;background:none;color:#176678;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font:inherit;padding:4px 0;text-align:left}.portal-stats,.admin-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.portal-stats>div,.admin-stats>div{background:#fff;border:1px solid var(--portal-line);border-radius:12px;padding:19px 22px}.portal-stats span,.admin-stats span{display:block;color:var(--portal-muted);font-size:.92rem}.portal-stats strong,.admin-stats strong{display:block;font-size:2rem;line-height:1.25;margin-top:5px}.portal-quicknav{display:flex;gap:9px;flex-wrap:wrap;margin:22px 0}.portal-quicknav a{background:white;border:1px solid var(--portal-line);border-radius:99px;padding:9px 16px;text-decoration:none;color:#174552;font-weight:700}.portal-quicknav a:hover{background:#dcf0f2}.panel-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:20px}.panel-head h2{margin-bottom:0}.portal-empty{padding:20px;border-radius:10px;background:var(--portal-paper);color:var(--portal-muted);margin:0}.vehicle-list{display:grid;gap:18px}.vehicle-card{display:grid;grid-template-columns:minmax(220px,38%) 1fr;border:1px solid var(--portal-line);border-radius:12px;overflow:hidden;background:var(--portal-paper)}.vehicle-photo{margin:0;background:linear-gradient(145deg,#dce7e9,#fff);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:175px}.vehicle-photo img{width:100%;height:210px;object-fit:contain}.vehicle-photo figcaption{font-size:.78rem;line-height:1.4;color:#51636b;padding:8px 12px;text-align:center}.vehicle-photo a{color:#205f72}.vehicle-card-content{padding:22px 25px}.vehicle-card h3{font-size:1.5rem;margin:8px 0 4px;line-height:1.2}.plate-tag{display:inline-block;background:#f6cb35;border:2px solid #171c1e;border-radius:4px;padding:3px 10px;font-weight:800;letter-spacing:.07em;font-size:.94rem}.vehicle-muted{color:var(--portal-muted);margin:0}.vehicle-timeline{margin-top:20px;border-top:1px solid var(--portal-line);padding-top:14px}.vehicle-timeline h4{margin:0 0 12px;font-size:1rem}.timeline-row{border-left:3px solid #8abec7;padding:2px 0 10px 14px;margin:0 0 10px}.timeline-row time{display:block;color:var(--portal-muted);font-size:.9rem}.timeline-row strong{display:block}.timeline-row p{margin:3px 0 0}.appointment-list{display:grid;gap:11px}.appointment-card{border:1px solid var(--portal-line);border-radius:10px;padding:16px 18px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:space-between}.appointment-copy{display:grid;gap:4px;min-width:180px}.appointment-copy strong{font-size:1.05rem}.appointment-copy span,.appointment-copy small{color:var(--portal-muted)}.appointment-customer{color:var(--portal-teal)!important;font-weight:700}.status-pill{display:inline-flex;padding:5px 11px;background:#e5eef0;border-radius:30px;font-size:.86rem;font-weight:700}.status-bevestigd{background:#d6f2e5;color:#13583d}.status-afgerond{background:#e3ebf8;color:#284d86}.status-afgewezen{background:#f6e7e3;color:#8d3d29}.portal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.portal-grid>div{display:grid;align-content:start;gap:7px}.request-panel{background:linear-gradient(90deg,rgba(255,255,255,.97),rgba(255,255,255,.9)),url('/assets/IMG_2301.webp') center/cover}.vehicle-preview{display:grid;grid-template-columns:180px 1fr;gap:15px;border:1px solid var(--portal-line);border-radius:10px;overflow:hidden;align-items:center;background:var(--portal-paper);margin:5px 0}.vehicle-preview .vehicle-photo{min-height:128px}.vehicle-preview .vehicle-photo img{height:112px}.vehicle-preview .vehicle-photo figcaption{font-size:.7rem}.vehicle-facts{display:grid;gap:3px;padding:12px 14px}.vehicle-facts strong{font-size:1.12rem}.vehicle-facts span,.vehicle-facts small{color:var(--portal-muted)}.booking-terms{display:flex;align-items:flex-start;gap:8px;font-size:.86rem!important;font-weight:400!important}.booking-terms input{margin-top:5px}.admin-panel{border-top:5px solid #176678;background:linear-gradient(180deg,#fff,#f7fbfb)}.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:28px}.admin-stats>div{background:#eef6f7}.admin-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.85fr);gap:30px}.admin-layout h3{margin:24px 0 12px}.admin-layout h3:first-child{margin-top:0}.admin-client-list{display:grid;gap:8px;max-height:420px;overflow:auto;padding-right:4px}.client-card{padding:14px 16px;border:1px solid var(--portal-line);border-radius:9px;background:white}.client-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.client-card p{margin:4px 0}.client-card small{display:block;color:var(--portal-muted);margin:6px 0}.client-type{font-size:.78rem;background:#dceff1;padding:3px 8px;border-radius:20px}.admin-actions{background:#e9f2f3;border-radius:12px;padding:22px;align-self:start}.admin-actions form+form{margin-top:30px;padding-top:28px;border-top:1px solid #bfd3d7}.admin-actions h3{margin:0 0 10px}.admin-panel .appointment-card{background:white}.admin-panel .appointment-card select{min-width:135px;width:auto}#portal-status:not(:empty){position:sticky;top:8px;z-index:5;padding:13px 17px;margin:0 0 15px;background:#e0f4f5;border-left:4px solid #176678;border-radius:6px;box-shadow:0 5px 20px #142d3240;line-height:1.5}.login-panel{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;max-width:950px;margin:25px auto}.login-panel form{background:#eaf3f4;border-radius:12px;padding:24px}.login-panel h2{margin-top:10px}[hidden]{display:none!important}@media(max-width:800px){.admin-layout{grid-template-columns:1fr}.portal-stats,.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.login-panel{grid-template-columns:1fr;gap:12px}}@media(max-width:620px){.portal-hero{min-height:220px}.portal-hero-content{padding:42px 20px}.portal-shell{padding:20px 14px}.portal-panel{padding:22px 18px}.portal-grid,.vehicle-card{grid-template-columns:1fr}.vehicle-photo img{height:190px}.portal-stats,.admin-stats{gap:8px}.portal-stats>div,.admin-stats>div{padding:13px}.portal-stats strong,.admin-stats strong{font-size:1.5rem}.panel-head{display:block}.panel-note{display:block;margin-top:6px}.vehicle-preview{grid-template-columns:1fr}.vehicle-preview .vehicle-photo img{height:130px}.portal-toolbar{align-items:flex-start}}@media print{#portal-admin,form,#portal-login,.portal-quicknav,.portal-toolbar button{display:none!important}}
.portal-quicknav button{background:white;border:1px solid var(--portal-line);border-radius:99px;padding:9px 16px;color:#174552;font:inherit;font-weight:700;cursor:pointer}.portal-quicknav button:hover,.portal-quicknav button[aria-expanded=true]{background:#dcf0f2}.vehicle-button{width:100%;padding:0;text-align:left;font:inherit;color:inherit;cursor:pointer}.vehicle-button:hover{border-color:#24788a;box-shadow:0 5px 20px #183a4540}.vehicle-button:focus-visible{outline:3px solid #17899d;outline-offset:3px}.vehicle-card-content{display:flex;flex-direction:column;gap:7px;align-items:flex-start}.vehicle-card-content strong{font-size:1.5rem;line-height:1.2}.vehicle-action{margin-top:18px;color:#176678;font-weight:700}.vehicle-detail-header{display:grid;grid-template-columns:minmax(220px,40%) 1fr;gap:28px;align-items:center;border:1px solid var(--portal-line);border-radius:12px;overflow:hidden;margin:22px 0}.vehicle-detail-facts{padding:18px}.vehicle-detail-facts h2{font-size:clamp(1.6rem,3vw,2.5rem);margin:14px 0}.vehicle-detail-facts p{color:var(--portal-muted)}#vehicle-detail>.button{margin-top:20px}.booking-vehicle-picker{background:#eaf3f4;border-radius:10px;padding:16px 20px}.booking-vehicle-picker>strong{display:block;font-size:1.1rem}.booking-vehicle-picker p{margin:6px 0 12px}.booking-options{display:flex;flex-wrap:wrap;gap:10px}.booking-options label{display:flex;align-items:center;gap:9px;background:white;border:1px solid #bdd5d9;border-radius:8px;padding:10px 12px;cursor:pointer;font-weight:600}.booking-options input{width:18px;height:18px;accent-color:#176678}.booking-price{font-size:1.06rem;font-weight:700;color:#155869;background:#e1eff0;padding:13px 16px;border-radius:8px;margin:4px 0 12px}@media(max-width:620px){.vehicle-detail-header{grid-template-columns:1fr;gap:0}.vehicle-detail-facts{padding:18px}}
.booking-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.booking-options .booking-option{position:relative;display:grid;grid-template-columns:100px minmax(0,1fr) 22px;gap:12px;min-height:105px;align-items:center;padding:9px 12px 9px 9px;border:2px solid #c8dadd;border-radius:12px;background:#fff;box-shadow:0 2px 10px rgba(18,52,60,.04);cursor:pointer;transition:border-color .16s,background .16s,box-shadow .16s}
.booking-option:hover{border-color:#63a4ad;box-shadow:0 5px 16px rgba(18,52,60,.12)}
.booking-option:has(input:checked){background:#e8f6f4;border-color:#176678;box-shadow:0 0 0 2px rgba(23,102,120,.13)}
.booking-option:focus-within{outline:3px solid #90cbd4;outline-offset:2px}
.booking-option input{position:absolute;width:1px!important;height:1px!important;opacity:0;pointer-events:none}
.booking-option-thumb{width:100px;height:85px;display:flex;align-items:center;justify-content:center;background:#e8f0f1;border-radius:8px;overflow:hidden}
.booking-option-thumb img{width:100%;height:100%;object-fit:contain}
.booking-option-summary{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
.booking-option-summary strong{line-height:1.2;overflow-wrap:anywhere}
.booking-option-summary small{font-size:.86rem;color:#536973;font-weight:500}
.booking-option-summary .plate-tag{font-size:.78rem;padding:1px 7px}
.booking-option-check{height:22px;width:22px;border:2px solid #8baeb4;border-radius:50%;display:grid;place-items:center;color:transparent;font-size:.85rem;line-height:1}
.booking-option:has(input:checked) .booking-option-check{background:#176678;border-color:#176678;color:white}
@media(max-width:850px){.booking-options{grid-template-columns:1fr}}
@media(max-width:430px){.booking-options .booking-option{grid-template-columns:73px minmax(0,1fr) 22px;gap:9px}.booking-option-thumb{width:73px;height:76px}}
.vehicle-photo-missing{display:grid;place-items:center;min-height:150px;width:100%;padding:24px;text-align:center;color:#3f626c;font-size:1.16rem;font-weight:800;line-height:1.3;background:linear-gradient(135deg,#dfecee,#f6f9f9)}
.booking-thumb-fallback{display:grid;place-items:center;width:100%;height:100%;font-size:1.1rem;letter-spacing:.16em;font-weight:800;color:#4d7981}
.portal-signed-in .portal-hero{min-height:165px;background-position:center 57%}
.portal-signed-in .portal-hero-content{padding:29px 30px}
.portal-signed-in .portal-hero h1{font-size:clamp(2.2rem,4vw,3.25rem)}
.portal-signed-in .portal-hero p{font-size:1rem}
.portal-view-nav{display:flex;gap:5px;align-items:center;overflow-x:auto;position:sticky;top:0;z-index:4;padding:8px;margin:0 0 20px;border:1px solid #cbdfe2;border-radius:12px;background:rgba(255,255,255,.97);box-shadow:0 7px 18px #17394212;scrollbar-width:thin}
.portal-view-nav button,.portal-view-nav a{flex:none;white-space:nowrap;border:0;border-radius:8px;padding:11px 13px;min-height:44px;background:transparent;color:#244853;font:inherit;font-weight:700;font-size:.91rem;text-decoration:none;cursor:pointer}
.portal-view-nav button:hover,.portal-view-nav a:hover{background:#eaf4f5}
.portal-view-nav [aria-current=page]{background:#176678;color:white}
.portal-view-nav button:focus-visible,.dashboard-action:focus-visible{outline:3px solid #76bac5;outline-offset:2px}
.portal-dashboard{border:1px solid #cbdfe2;border-radius:16px;padding:clamp(21px,3.5vw,38px);background:linear-gradient(145deg,#fff 10%,#f3fafb 100%);box-shadow:0 8px 28px #142f3a0d;scroll-margin-top:85px}
.dashboard-intro h2{font-size:clamp(1.8rem,3.4vw,2.7rem);line-height:1.15;margin:8px 0 7px;color:#173640}
.dashboard-intro p{margin:0;color:#4b6570;font-size:1.05rem;line-height:1.5}
.dashboard-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:24px 0}
.dashboard-action{display:grid;grid-template-columns:54px minmax(0,1fr) 22px;align-items:center;gap:15px;width:100%;min-height:105px;padding:17px 20px;border:1px solid #cbdfe2;border-radius:12px;background:white;text-align:left;color:#173640;font:inherit;cursor:pointer;box-shadow:0 3px 12px #132e360a;transition:transform .15s,border-color .15s,box-shadow .15s}
.dashboard-action:hover{transform:translateY(-2px);border-color:#78aeb6;box-shadow:0 8px 20px #1739421a}
.dashboard-action>span:nth-child(2){display:grid;gap:3px}
.dashboard-action strong{font-size:1.16rem;line-height:1.25}
.dashboard-action small{font-size:.91rem;line-height:1.4;color:#526a73}
.dashboard-action>span:last-child{color:#176678;font-size:1.4rem}
.dashboard-action-icon{display:grid;place-items:center;width:51px;height:51px;border-radius:11px;background:#e1f0f2;color:#176678;font-size:1.7rem;font-weight:600}
.dashboard-action-primary{grid-column:1/-1;min-height:98px;background:linear-gradient(105deg,#0d4f5e,#187489);color:white;border-color:#0d4f5e}
.dashboard-action-primary .dashboard-action-icon{background:#ffffff24;color:white}
.dashboard-action-primary small,.dashboard-action-primary>span:last-child{color:#e1f6f7}
.dashboard-bottom{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:15px}
.dashboard-next{border-radius:12px;background:linear-gradient(100deg,rgba(8,34,41,.94),rgba(9,42,49,.75)),url('/assets/IMG_2367.webp') center/cover;color:white;padding:22px;min-height:168px}
.dashboard-next .portal-kicker{color:#bce4e7}
.dashboard-next h3{font-size:1.3rem;margin:6px 0 10px;color:white}
.dashboard-next p{font-size:1rem;line-height:1.5;margin:0 0 12px}
.dashboard-next .portal-link{color:#c4edf1;font-weight:700}
.dashboard-bottom .portal-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.dashboard-bottom .portal-stats>div{padding:14px;min-width:0;background:#eaf4f5}
.dashboard-bottom .portal-stats span{font-size:.83rem;line-height:1.35}
.dashboard-bottom .portal-stats strong{font-size:1.65rem}
.portal-view-panel{scroll-margin-top:85px}
.live-progress{width:100%;border-top:1px solid var(--portal-line);padding-top:15px;margin-top:4px}
.live-progress h3{font-size:1.05rem;margin:0 0 12px;color:#17596a}
.live-vehicle{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;padding:12px 0;border-top:1px solid #edf2f3}
.live-vehicle:first-of-type{border-top:0}
.live-vehicle>strong{font-size:.98rem;overflow-wrap:anywhere}
.live-current{font-weight:700;color:#176678}
.live-steps{grid-column:1/-1;list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:0;margin:5px 0}
.live-steps li{border-top:5px solid #d5e2e5;padding-top:7px;font-size:.8rem;line-height:1.3;color:#536973}
.live-steps li.is-done{border-color:#176678;color:#174e5b;font-weight:700}
.live-steps li[aria-current=step]{color:#123f49}
.live-vehicle>small{grid-column:1/-1;color:#536973}
.live-progress>p{font-size:.88rem;color:#536973;margin:9px 0 0}
@media(max-width:560px){.live-vehicle{grid-template-columns:1fr}.live-steps{gap:3px}.live-steps li{font-size:.72rem}}
.add-vehicle-form{border:1px solid #bfd6db;background:#eaf4f5;border-radius:11px;padding:19px;margin:18px 0 22px}
.add-vehicle-form p{margin:4px 0 0}
.add-vehicle-fields{display:flex;align-items:center;gap:10px;margin-top:12px}
.add-vehicle-fields input{max-width:300px}
.add-vehicle-form .button{min-width:160px;justify-content:center}
.history-list{display:grid;gap:11px}
.history-entry{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:17px 19px;border:1px solid var(--portal-line);border-radius:10px;background:#f6fafb}
.history-entry>div{display:grid;gap:5px}
.history-entry time,.history-entry span{color:#536973;font-size:.94rem}
.history-entry strong{font-size:1.08rem}
.history-entry p{margin:2px 0 0}
@media(max-width:900px){.dashboard-bottom{grid-template-columns:1fr}}
@media(max-width:620px){.portal-signed-in .portal-hero{min-height:132px}.portal-signed-in .portal-hero-content{padding:23px 20px}.portal-toolbar{align-items:center}.portal-view-nav{border-radius:9px;margin:0 -4px 15px}.dashboard-actions{grid-template-columns:1fr;gap:10px}.dashboard-action-primary{grid-column:auto}.dashboard-action{min-height:89px;padding:13px 15px;grid-template-columns:45px minmax(0,1fr) 19px;gap:12px}.dashboard-action-icon{width:43px;height:43px}.dashboard-action strong{font-size:1.05rem}.dashboard-action small{font-size:.86rem}.portal-dashboard{padding:20px 16px}.dashboard-bottom .portal-stats>div{padding:11px}.dashboard-bottom .portal-stats strong{font-size:1.4rem}.dashboard-bottom .portal-stats span{font-size:.77rem}.add-vehicle-fields{flex-direction:column;align-items:stretch}.add-vehicle-fields input{max-width:none}.add-vehicle-form .button{width:100%}.history-entry{display:block}.history-entry .portal-link{margin-top:9px}}
@media(prefers-reduced-motion:reduce){.dashboard-action{transition:none}.dashboard-action:hover{transform:none}}
.vehicle-brand-mark{display:grid;place-items:center;width:100%;height:100%;min-width:0;padding:12px}
.vehicle-photo .vehicle-brand-mark{height:165px}
.vehicle-photo .vehicle-brand-logo{display:block;width:min(42%,112px);height:112px;object-fit:contain}
.vehicle-preview .vehicle-photo .vehicle-brand-logo{width:75px;height:75px}
.booking-option-thumb .vehicle-brand-mark{padding:8px}
.booking-option-thumb .vehicle-brand-logo{display:block;width:58px;height:58px;object-fit:contain}
.vehicle-brand-name{display:block;max-width:100%;overflow-wrap:anywhere;text-align:center;text-transform:uppercase;letter-spacing:.08em;font-size:1.15rem;font-weight:800;color:#315763}
.booking-option-thumb .vehicle-brand-name{font-size:.8rem;letter-spacing:.03em}
