@font-face{font-family:DM Sans;src:url(DMSans-latin.woff2) format('woff2');font-weight:100 1000;font-display:swap}@font-face{font-family:Libre Bodoni;src:url(LibreBodoni-latin.woff2) format('woff2');font-weight:400 700;font-display:swap}
:root{--navy:#021c48;--blue:#245daf;--ink:#1d304c;--muted:#627189;--line:#dbe3ed;--pale:#edf3fa;--paper:#f7f9fc;--white:#fff;font-family:DM Sans,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}a{color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid #3879d3;outline-offset:4px}[hidden]{display:none!important}.skip{position:absolute;left:20px;top:-100px;background:white;padding:15px;z-index:10}.skip:focus{top:10px}.site-header{max-width:1450px;margin:auto;padding:29px 60px 27px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.site-header img{display:block;width:211px;height:auto}.contact-link{font-size:13px;text-decoration:none}.contact-link span{margin-left:17px;font-size:22px;color:var(--blue)}main{max-width:1450px;margin:auto;padding:0 60px}.intro{display:grid;grid-template-columns:1.4fr 1fr;gap:80px;padding:67px 0 59px;align-items:center}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2.1px;margin:0 0 19px;color:var(--blue)}h1,h2{font-family:Libre Bodoni,Georgia,serif;font-weight:400;color:var(--navy)}h1{font-size:clamp(42px,4.8vw,70px);line-height:1.06;letter-spacing:-2.2px;margin:0 0 23px}h2{font-size:31px;line-height:1.2;margin:0}.lead{font-size:15px;line-height:1.85;color:var(--muted);margin:0}.steps{list-style:none;padding:3px 0 0 45px;margin:0;border-left:1px solid var(--line)}.steps li{display:flex;gap:22px;padding:16px 0}.steps li>span{font-family:Libre Bodoni,serif;font-size:24px;color:#839fbe;width:34px}.steps strong{font-size:14px;font-weight:600}.steps p{font-size:12px;color:var(--muted);margin:6px 0 0}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:26px}.selection{min-width:0;background:var(--white);border:1px solid var(--line);padding:29px 27px 20px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-heading .eyebrow{margin-bottom:10px}.section-heading h2{font-size:27px}.count{font-size:11px;border:1px solid var(--line);border-radius:4px;padding:8px 10px;white-space:nowrap}.plan-toolbar{margin-top:25px;display:flex;justify-content:space-between;gap:10px;align-items:center}.view-switch{display:flex;gap:4px}.view-switch button,.zoom-controls button{border:1px solid var(--line);background:white;color:var(--ink);padding:9px 14px;font-size:12px;min-height:40px}.view-switch button[aria-pressed=true]{background:var(--navy);color:white;border-color:var(--navy)}.zoom-controls{display:flex;gap:4px}.zoom-controls button{padding:8px 11px}.plan-viewport{margin-top:17px;background:#f2f5f9;border:1px solid #e7ecf2;overflow:hidden;aspect-ratio:1.2;touch-action:pan-y;position:relative;cursor:grab}.plan-viewport.zoomed{touch-action:none}.plan-viewport:active{cursor:grabbing}.plan-viewport svg{width:100%;height:100%;display:block}.plan-empty{padding:55px 25px;text-align:center;font-size:14px;color:var(--muted)}.garage polygon{fill:#cbdcf2;stroke:#718eae;stroke-width:1.3;vector-effect:non-scaling-stroke}.garage.available{cursor:pointer}.garage.available:hover polygon{fill:#a6c4ec;stroke:#245daf}.garage.selected polygon{fill:var(--navy);stroke:#021c48;stroke-width:2}.garage text{fill:#213f66;font-family:DM Sans,sans-serif;font-size:17px;text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-weight:600}.garage.selected text{fill:white}.garage.reserved polygon,.garage.pending polygon{fill:url(#reserved-pattern);stroke:#b51e2c}.garage.blocked polygon,.garage.rented polygon{fill:#e1e5eb;stroke:#b2becd}.garage.blocked text,.garage.rented text{fill:#78869a}.garage:focus-visible polygon{stroke:#174b97;stroke-width:4}.garage-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:18px;max-height:600px;overflow:auto}.garage-card{border:1px solid var(--line);background:#fff;padding:13px;text-align:left;min-width:0;color:var(--ink);min-height:96px}.garage-card strong,.garage-card span{display:block}.garage-card strong{font-size:13px}.garage-card .area{font-size:12px;margin:6px 0}.garage-card .status{font-size:10px;color:var(--muted)}.garage-card.selected{border:2px solid var(--navy);background:var(--pale)}.garage-card[aria-disabled=true]{background:#f3f5f8;color:#798395}.plan-footer{padding:19px 0 8px}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:10px}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:12px;height:12px;border:1px solid #91a4bc}.legend .free{background:#cbdcf2}.legend .reserved{background:repeating-linear-gradient(45deg,#fbd5d8,#fbd5d8 3px,#b51e2c 3px,#b51e2c 5px)}.legend .blocked{background:#e1e5eb}
.legend .rented{background:#e1e5eb}.plan-footer p{font-size:10px;color:var(--muted);margin:13px 0 0}.connection{font-size:11px;color:var(--muted);padding-top:8px}.connection.error{color:#93452f}.text-button{border:0;background:transparent;font-size:11px;color:var(--blue);padding:9px 0;text-decoration:underline;text-underline-offset:3px}.booking{background:var(--navy);color:white;padding:30px 27px}.booking h2{color:white;font-size:29px}.booking .eyebrow{color:#afcbee}.selected-detail{margin:24px 0 23px;padding:18px 0;border-top:1px solid #345074;border-bottom:1px solid #345074;min-height:89px}.selected-detail p{font-size:12px;line-height:1.7;color:#c4d1e3;margin:0}.selected-detail strong{display:block;font-size:22px;margin-bottom:6px}.selected-detail span{font-size:13px;color:#c4d1e3}.booking fieldset{border:0;margin:0;padding:0;min-width:0}.booking legend{position:absolute;width:1px;height:1px;overflow:hidden}.booking label{display:block;font-size:12px;margin:15px 0 7px}.booking input:not([type=checkbox]){width:100%;min-width:0;border:1px solid #496286;color:white;background:#17335b;padding:12px 13px;border-radius:0;font-size:13px}.booking input::placeholder{color:#a6b8d0}.booking fieldset:disabled{opacity:.55}.booking .privacy{display:flex;align-items:flex-start;gap:9px;line-height:1.6;font-size:10px;margin:18px 0}.privacy input{margin-top:3px;accent-color:#84afea}.primary{border:1px solid #a4c5f0;background:#d7e7fc;color:#021c48;font-weight:600;padding:14px 17px;width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;min-height:47px}.primary:hover{background:#edf5ff}.booking-note{font-size:11px;line-height:1.8;color:#c5d4e8;margin:22px 0 13px}.fine{font-size:10px;line-height:1.7;color:#a5b9d1;margin:0}.form-message:empty{display:none}.form-message{font-size:12px;line-height:1.8;border:1px solid #91add2;padding:13px;margin-top:18px;overflow-wrap:anywhere}.form-message strong{display:block;font-size:14px}.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.closing{padding:65px 0 55px;text-align:center}.closing h2{font-size:34px}.closing p{font-size:13px;color:var(--muted);margin:13px 0 20px}.closing a{font-size:14px;text-underline-offset:5px}.closing a span{margin-left:14px}footer{border-top:1px solid var(--line);max-width:1330px;padding:23px 0 28px;margin:0 auto;display:flex;justify-content:space-between;color:var(--muted);font-size:11px}footer nav{display:flex;gap:25px}footer a{text-decoration:none}.noscript{position:fixed;bottom:0;left:0;right:0;background:white;padding:20px;border:2px solid var(--navy)}.link-panel{border:1px solid #a6beda;background:#eaf1fa;padding:28px;margin-bottom:28px}.link-panel h2{margin-bottom:16px}.link-panel p{font-size:14px;line-height:1.8}.link-panel .primary{max-width:320px;margin:12px 0}.link-panel .text-button{font-size:13px}.selection.stale .garage.available polygon{fill:#e1e5eb}.selection.stale .garage.available{cursor:default}
@media(min-width:1500px){.plan-viewport{aspect-ratio:1.15}}@media(max-width:1100px){.site-header{padding:25px 32px}main{padding:0 32px}.workspace{grid-template-columns:minmax(0,1fr) 300px;gap:18px}.selection{padding:22px 18px}.booking{padding:25px 21px}.intro{gap:35px}.steps{padding-left:25px}.section-heading{align-items:flex-start;flex-direction:column;gap:10px}.garage-list{grid-template-columns:repeat(2,minmax(0,1fr))}footer{margin:0 32px}}@media(max-width:780px){.site-header{padding:22px 24px}.site-header img{width:173px}.contact-link{font-size:11px}.contact-link span{margin-left:5px}main{padding:0 24px}.intro{padding:42px 0 35px;grid-template-columns:1fr;gap:28px}.lead br{display:none}h1{font-size:53px}.steps{display:flex;gap:18px;border-left:0;border-top:1px solid var(--line);padding:15px 0 0}.steps li{gap:9px;flex:1;align-items:flex-start}.steps li>span{font-size:20px;width:auto}.steps strong{font-size:11px}.steps p{font-size:10px;line-height:1.6}.workspace{grid-template-columns:1fr;gap:20px}.section-heading{flex-direction:row;align-items:center}.plan-viewport{aspect-ratio:1.17}.booking{padding:27px}.booking h2 br{display:none}.booking h2{font-size:29px}.booking-note{max-width:520px}.closing{padding:48px 0}.garage-list{grid-template-columns:repeat(3,minmax(0,1fr));max-height:500px}footer{margin:0 24px}.eyebrow{font-size:9px;letter-spacing:1.65px}}@media(max-width:430px){.site-header{padding:19px 18px}.site-header img{width:156px}.contact-link{max-width:105px;line-height:1.5}main{padding:0 16px}h1{font-size:43px;letter-spacing:-1.4px}.intro{padding-top:32px}.steps{gap:8px}.steps li{flex-direction:column;padding-bottom:4px}.selection{padding:20px 13px 12px}.section-heading{flex-direction:column;align-items:flex-start}.section-heading h2{font-size:27px}.plan-toolbar{margin-top:18px}.view-switch button{padding:8px 11px}.zoom-controls button{padding:8px 10px}.plan-viewport{aspect-ratio:1}.garage-list{grid-template-columns:repeat(2,minmax(0,1fr))}.booking{padding:27px 23px}.legend{gap:11px}.count{font-size:10px}footer{margin:0 16px;font-size:10px;gap:12px}footer nav{gap:14px}}
@media(prefers-reduced-motion:no-preference){.intro{animation:arrive .45s ease-out}@keyframes arrive{from{opacity:.5;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}
.privacy-page{max-width:900px;padding-top:55px;padding-bottom:55px}.privacy-page h1{font-size:55px;margin-bottom:38px}.privacy-page h2{font-size:25px;margin:34px 0 16px}.privacy-page p:not(.eyebrow){font-size:14px;line-height:1.9;color:var(--muted)}

/* Original Einreichplan: transparent status areas preserve walls, dimensions and labels. */
.plan-viewport{aspect-ratio:3601/3105;background:#fff}
.submission-plan{pointer-events:none}
.garage polygon{fill:#5f96d6;fill-opacity:.12;stroke:#335f96;stroke-opacity:.65;stroke-width:1}
.garage.available:hover polygon{fill:#427fc9;fill-opacity:.23;stroke:#174b97;stroke-opacity:1}
.garage.selected polygon{fill:#164b91;fill-opacity:.28;stroke:#082d64;stroke-opacity:1;stroke-width:2}
.garage text,.garage.selected text{font-size:13px;fill:#0a2e5e;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.garage.reserved polygon,.garage.pending polygon{fill:url(#reserved-pattern);fill-opacity:1;stroke:#b51e2c;stroke-opacity:1;stroke-width:2}
.garage.blocked polygon,.garage.rented polygon{fill:#5d6a7b;fill-opacity:.18;stroke:#697588}
.selection.stale .garage.available polygon{fill:#68798e;fill-opacity:.14}
.plan-caption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 14px;font-size:10px;color:var(--muted);line-height:1.7;margin:12px 0 0}
.plan-caption a{text-underline-offset:3px}

/* Reservation state stays red even when a previously selected garage is taken. */
.garage.reserved text,.garage.pending text{fill:#951b28}
.garage-card.reserved,.garage-card.pending{background:#fff0f1;border:2px solid #b51e2c;color:#951b28}
.garage-card.reserved .status,.garage-card.pending .status{color:#951b28;font-weight:700}
.garage-card.reserved .area,.garage-card.pending .area{color:#873c46}
.legend .reserved{border:1px solid #b51e2c}
