body{font-family:Arial,sans-serif;margin:0;background:#f4f6f8;color:#222;line-height:1.5}.container{max-width:900px;margin:0 auto;padding:30px 20px 60px}h1{line-height:1.2;margin-bottom:20px}.section{background:#fff;border-radius:12px;padding:22px;margin-bottom:20px;box-shadow:0 1px 4px #00000014}.section h2{margin-top:0;font-size:21px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}label{display:block;font-weight:bold;margin-bottom:6px}input,select,textarea{width:100%;box-sizing:border-box;padding:11px;border:1px solid #999;border-radius:7px;font:inherit}textarea{min-height:110px;resize:vertical}.hint{margin-top:6px;color:#555;font-size:14px}.checkbox-row{display:flex;gap:10px;align-items:flex-start}.checkbox-row input{width:auto;margin-top:6px;flex-shrink:0}.consent{font-weight:normal}.button{display:inline-block;border:0;background:#0a4f9e;color:#fff;padding:14px 20px;border-radius:8px;font:inherit;cursor:pointer;text-decoration:none}.button:hover{background:#073a73}.button:disabled{background:#666;cursor:not-allowed}.back{display:inline-block;margin:0 10px 20px 0;color:#0a4f9e}.available{font-weight:bold;color:#187a32}.errors{background:#fff0f0;border:2px solid #a6192e;padding:18px;border-radius:8px;margin-bottom:20px}.notice{background:#fff4d8;padding:14px;border-radius:8px}dt{font-weight:bold}dd{margin:0 0 14px;overflow-wrap:anywhere}a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:3px solid #b45c00;outline-offset:3px}@media(max-width:700px){.grid{grid-template-columns:1fr}.full{grid-column:auto}h1{font-size:28px}}
:root{--ice-blue:#64abd5;--ice-blue-hover:#4f99c5;--ice-blue-dark:#12394f;--ice-blue-link:#145f88;--ice-blue-soft:#e7f3fa}.button{background:var(--ice-blue);color:var(--ice-blue-dark);font-weight:700;transition:background-color .15s ease}.button:hover{background:var(--ice-blue-hover)}.button:disabled{background:#666;color:#fff}.button-secondary{box-sizing:border-box;border:2px solid var(--ice-blue);background:#fff;color:var(--ice-blue-link);padding:12px 18px}.button-secondary:hover{background:var(--ice-blue-soft);color:var(--ice-blue-dark)}.action-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 20px}.action-buttons .button{margin:0}.back{color:var(--ice-blue-link)}a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline-color:var(--ice-blue-link)}@media(max-width:520px){.action-buttons{display:grid}.action-buttons .button{text-align:center}}
.login-page{max-width:560px;padding-top:48px}.login-card{padding:32px}.login-header{margin-bottom:28px}.login-kicker{margin:0 0 6px;color:var(--ice-blue-link);font-weight:700}.login-header h1{margin:0;font-size:34px;color:var(--ice-blue-dark)}.login-subtitle{margin:8px 0 0;color:#555;font-size:18px}.login-form p{margin:0 0 20px}.login-action{display:block;width:100%;text-align:center}.login-form .login-action{margin-top:4px}.login-separator{display:flex;align-items:center;gap:12px;margin:22px 0;color:#777;font-size:14px}.login-separator::before,.login-separator::after{content:"";height:1px;background:#d9dfe3;flex:1}.login-separator span{padding:0 2px}@media(max-width:520px){.login-page{padding-top:20px}.login-card{padding:24px 20px}.login-header h1{font-size:30px}}

/* Öffentliche Buchungsseite */
body.booking-page{background:#eaf6fc url('eis-spuren.svg') center top/cover fixed no-repeat;color:#1f303a}
.booking-container{max-width:920px;padding-top:24px}
.booking-topbar{margin-bottom:20px}
.booking-back{display:inline-flex;align-items:center;margin:0;box-shadow:0 4px 14px rgba(18,57,79,.08)}
.booking-header{position:relative;overflow:hidden;margin:0 0 22px;padding:30px 34px;border-radius:18px;background:linear-gradient(135deg,#0d5278 0%,#247eac 58%,#64abd5 100%);box-shadow:0 12px 30px rgba(18,57,79,.18);color:#fff}
.booking-header::after{content:"";position:absolute;right:-85px;top:-80px;width:240px;height:150px;border:11px solid rgba(255,255,255,.18);border-radius:50%;transform:rotate(-22deg)}
.booking-kicker{position:relative;z-index:1;margin:0 0 8px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#dff2fb}
.booking-header h1{position:relative;z-index:1;margin:0;color:#fff;font-size:clamp(30px,4vw,40px)}
.booking-header>p:last-child{position:relative;z-index:1;max-width:680px;margin:12px 0 0;color:#eef9fe;font-size:17px}
.booking-page .section{border:1px solid rgba(100,171,213,.22);box-shadow:0 7px 22px rgba(18,57,79,.09)}
.booking-summary{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:25px 28px;border-left:6px solid var(--ice-blue)!important}
.booking-summary-label{display:block;margin-bottom:5px;color:var(--ice-blue-link);font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.booking-summary h2{margin:0 0 5px;color:var(--ice-blue-dark);font-size:23px}
.booking-summary p{margin:0;color:#425866}
.booking-summary .available{flex:0 0 auto;padding:13px 16px;border-radius:10px;background:#eaf8ed;color:#17662a;text-align:center}
.booking-summary .available span{display:block;font-size:24px;line-height:1.1}
.required-note{margin:24px 0 12px;padding:10px 14px;border-radius:8px;background:rgba(255,255,255,.78);color:#425866;font-size:14px}
.booking-page form>.section{position:relative;padding:26px 28px;border-top:4px solid var(--ice-blue)}
.booking-page form>.section h2{color:var(--ice-blue-dark)}
.booking-page input,.booking-page select,.booking-page textarea{border:1px solid #9aadb8;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}
.booking-page input:focus,.booking-page select:focus,.booking-page textarea:focus{border-color:var(--ice-blue-link);box-shadow:0 0 0 3px rgba(100,171,213,.22)}
.booking-actions{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:12px;margin-top:8px}
.booking-submit{display:block;width:100%;margin:0;padding:16px 22px;font-size:17px;box-shadow:0 7px 18px rgba(18,57,79,.15)}
.booking-cancel{display:flex;align-items:center;justify-content:center;text-align:center}
.booking-page footer{background:rgba(255,255,255,.72);backdrop-filter:blur(3px)}
@media(max-width:700px){body.booking-page{background-attachment:scroll}.booking-container{padding:16px 14px 40px}.booking-header{padding:26px 22px;border-radius:14px}.booking-summary{align-items:flex-start;flex-direction:column;gap:18px;padding:22px}.booking-summary .available{width:100%;box-sizing:border-box}.booking-page form>.section{padding:22px 20px}.booking-back{width:100%;justify-content:center;text-align:center;box-sizing:border-box}.booking-actions{grid-template-columns:1fr}.booking-cancel{min-height:52px}}
