:root{--ink:#183f3a;--muted:#607872;--green:#176658;--line:#dce7e2;--paper:#fff;--bg:#f3f6f2}*{box-sizing:border-box}body{margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--bg)}header{height:84px;display:flex;align-items:center;justify-content:space-between;max-width:1160px;margin:auto;padding:0 28px}.brand{font-size:24px;font-weight:750;text-decoration:none;color:var(--ink);display:flex;gap:12px;align-items:center}.brand span{font-size:17px}main{max-width:1104px;margin:auto;padding:0 24px}button,.button{border:0;background:var(--green);color:white;border-radius:12px;padding:12px 20px;font:inherit;font-weight:650;cursor:pointer;text-decoration:none;display:inline-block}button:hover,.button:hover{filter:brightness(.94)}button:disabled{opacity:.55;cursor:wait}.quiet{background:#e6eeea;color:var(--ink)}.intro{background:#e4ede4;border:1px solid #d9e5da;border-radius:28px;padding:42px 48px;margin:12px 0 28px;position:relative}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:750;color:var(--green)}h1{font-size:clamp(32px,5vw,52px);letter-spacing:-2px;line-height:1.1;margin:16px 0}p{color:var(--muted)}.intro p{max-width:520px}.intro button{margin-top:8px}.intro button span{margin-left:20px}.calendar-panel,.day-panel,.admin-panel{background:white;border:1px solid var(--line);border-radius:22px;padding:26px;margin-bottom:22px;box-shadow:0 6px 24px #173c3410}h2{margin:0;font-size:23px;letter-spacing:-.5px}.calendar-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.calendar-top p{margin:6px 0 0;font-size:14px}.nav{display:flex;gap:6px;flex-shrink:0}.nav button{padding:8px 12px}.legend{display:flex;gap:20px;flex-wrap:wrap;font-size:13px;margin:22px 0 18px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:7px}.dot{height:9px;width:9px;border-radius:50%}.free{background:#8eb89b}.pending{background:#d8942c}.approved{background:#367dac}.blocked{background:#8a9297}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays{text-align:center;font-size:12px;color:var(--muted);font-weight:650;margin-bottom:8px}.calendar{gap:5px}.day{min-height:105px;padding:8px;text-align:left;background:#f7faf7;color:var(--ink);border:1px solid #e6ede7;border-radius:10px;font-weight:500;font-size:13px;overflow:hidden}.day:hover{background:#edf4ec}.day.outside{opacity:.4}.day.current{border:2px solid var(--green)}.date-number{font-weight:750;display:block;margin-bottom:6px}.event{display:block;border-radius:5px;font-size:10px;line-height:1.4;padding:3px 4px;margin-top:3px;background:#e4eef8;color:#215879;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event.pending{background:#fff0d8;color:#8c5c18}.event.blocked{background:#e8eaec;color:#566068}.hint{font-size:12px;color:var(--muted);margin:16px 0 0}.day-panel button{margin-top:12px}.entry{padding:14px 0;border-bottom:1px solid var(--line)}.entry:last-child{border:0}.entry p{margin:5px 0;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}.entry .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.entry button{font-size:13px;padding:8px 12px}.badge{font-size:12px;border-radius:6px;padding:3px 7px;display:inline-block;background:#e8efeb;margin-left:8px}.admin-tools{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.admin-tools>*{font-size:13px}footer{text-align:center;padding:8px 0 30px;font-size:12px;color:var(--muted)}dialog{border:0;border-radius:22px;padding:28px;width:min(560px,94vw);max-height:90vh;color:var(--ink);box-shadow:0 20px 80px #13372f30}dialog::backdrop{background:#102e2877;backdrop-filter:blur(3px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.close{padding:3px 11px;font-size:24px}label{display:block;font-size:13px;font-weight:650;margin:14px 0}input,select,textarea{display:block;width:100%;font:16px system-ui;border:1px solid #c8d9d0;border-radius:9px;padding:11px;background:#fafcf9;color:var(--ink);margin-top:6px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.error{color:#a33030;font-size:14px}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:12px;padding:14px 24px;max-width:90vw;box-shadow:0 5px 25px #0003;z-index:10}[hidden]{display:none!important}:focus-visible{outline:3px solid #b58f2c;outline-offset:3px}@media(max-width:650px){header{padding:0 20px;height:70px}.brand span{font-size:14px}header button{font-size:12px;padding:9px}main{padding:0 12px}.intro{padding:28px;border-radius:20px;margin-top:8px}.calendar-panel{padding:14px}.calendar-top{align-items:flex-start;flex-direction:column}.calendar-top h2{font-size:22px}.legend{gap:12px;font-size:11px}.calendar{gap:3px}.day{min-height:80px;padding:4px;font-size:12px}.event{font-size:9px;padding:2px}.fields{grid-template-columns:1fr;gap:0}dialog{padding:20px}.day-panel,.admin-panel{padding:20px}}

/* Version 1.1: klare Kalenderfarben und größere Termine */
.dot{height:12px;width:12px}.free{background:#259653}.pending{background:#ed9a13}.approved{background:#176ccc}.blocked{background:#606c7a}
.legend{font-size:14px;font-weight:650}.day{min-height:130px;background:#e0f3e5;border-color:#a7d7b5;font-size:15px}.day:hover{background:#caebd4}.date-number{font-size:17px;margin-bottom:8px}.day.current{border:3px solid #176658}
.event{font-size:12px;line-height:1.5;padding:5px 6px;background:#176ccc;color:#fff;font-weight:700;white-space:normal;overflow-wrap:anywhere}.event.pending{background:#ffc14a;color:#4c3200}.event.blocked{background:#606c7a;color:#fff}
.badge{font-weight:700}.badge.pending{background:#ffc14a;color:#4c3200}.badge.approved{background:#176ccc;color:#fff}.badge.blocked{background:#606c7a;color:#fff}.badge.rejected,.badge.cancelled{background:#e8eaec;color:#566068}
@media(max-width:650px){.legend{font-size:12px;gap:10px}.day{min-height:104px;padding:4px}.date-number{font-size:15px}.event{font-size:10px;padding:3px 2px;line-height:1.35}}

.access-panel{max-width:500px;margin:40px auto 80px;padding:32px;border-radius:22px;background:white;border:1px solid var(--line)}.access-panel h1{font-size:34px}.access-panel form{margin-top:22px}header{gap:10px}.brand{margin-right:auto}@media(max-width:650px){.access-panel{margin:24px 16px;padding:24px}.brand span{font-size:12px}}

.linked-request{background:#edf6ee;border:2px solid #176658!important;border-radius:12px;padding:18px;margin:16px 0;scroll-margin:24px}

/* Weekend backgrounds are independent of booking status badges. */
.dot.saturday{background:#8071cf}.dot.sunday{background:#d75573}
.day.saturday{background:#e5ddff;border-color:#aa96e0}.day.saturday:hover{background:#d4c7fb}
.day.sunday{background:#ffdce4;border-color:#e698ab}.day.sunday:hover{background:#fac5d2}
.saturday-label{color:#59409c}.sunday-label{color:#a6294a}
.holiday-name{display:block;color:#92213e;font-size:11px;font-weight:750;line-height:1.3;margin-bottom:5px;overflow-wrap:anywhere}
.holiday-detail{color:#92213e;font-weight:700}
@media(max-width:650px){.holiday-name{font-size:9px}}

.google-panel{border:1px solid var(--line);background:#f3f7f5;border-radius:14px;padding:16px;margin:18px 0}.google-panel h3{margin:0}.google-panel p{overflow-wrap:anywhere}

.privacy{max-width:850px;margin:20px auto}.privacy h2{margin-top:30px}.privacy a{color:var(--green)}.privacy .button{margin-top:20px}
