:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#1e293b;background:#f8fafc;font-size:15px}*{box-sizing:border-box}body{margin:0}main{max-width:1350px;margin:auto;padding:16px}header{display:flex;align-items:center;justify-content:space-between;gap:12px}h1{font-size:1.55rem}h2{margin-top:0}nav{display:flex;gap:7px;flex-wrap:wrap;margin:15px 0}button{cursor:pointer;background:#2563eb;color:white;border:0;border-radius:9px;padding:10px 14px;font:inherit}button:hover{filter:brightness(.94)}button.secondary{background:#e2e8f0;color:#334155}.danger{background:#b91c1c}#calendar,.panel{background:white;border:1px solid #e2e8f0;border-radius:14px;padding:15px}.panel{margin:10px 0}.login{max-width:430px;margin:60px auto}label{display:block;margin:10px 0;font-weight:550}input:not([type=checkbox]):not([type=color]),textarea,select{display:block;width:100%;padding:10px;margin-top:5px;border:1px solid #cbd5e1;border-radius:8px;font:inherit;background:white;color:#1e293b}input[type=checkbox]{margin-right:8px}.cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;flex-wrap:wrap}dialog{width:min(96vw,600px);max-height:90vh;overflow:auto;border:1px solid #cbd5e1;border-radius:16px;padding:20px;box-shadow:0 20px 80px #0003}dialog::backdrop{background:#0f172a88}#notice:not(:empty){background:#dbeafe;padding:10px;border-radius:8px;margin-bottom:10px}.hint{font-size:.85rem;color:#64748b}.background-label{opacity:.68;font-size:.75rem}.fc .fc-event{cursor:pointer}.fc .fc-toolbar-title{font-size:1.25rem!important}.fc .fc-button{background:#2563eb!important;border:0!important}.fc-multimonth{border:0!important}@media(max-width:700px){main{padding:9px}header{align-items:start}h1{font-size:1.2rem}.cols{grid-template-columns:1fr}nav button{padding:9px 10px}.fc .fc-toolbar{gap:5px;flex-wrap:wrap}.fc .fc-toolbar-title{font-size:1rem!important}dialog{padding:14px}}
@media(prefers-color-scheme:dark){:root{color:#e2e8f0;background:#0f172a}#calendar,.panel,dialog{background:#1e293b;color:#e2e8f0;border-color:#475569}input:not([type=checkbox]):not([type=color]),textarea,select{background:#0f172a;color:#e2e8f0;border-color:#475569}button.secondary{background:#475569;color:#fff}.hint{color:#cbd5e1}}

/* Subtle seasonal framing: decoration never replaces calendar contrast. */
:root{--season-art:url('season-spring.svg')}
:root[data-season="spring"]{--season-art:url('season-spring.svg')}
:root[data-season="summer"]{--season-art:url('season-summer.svg')}
:root[data-season="autumn"]{--season-art:url('season-autumn.svg')}
:root[data-season="winter"]{--season-art:url('season-winter.svg')}
body{min-height:100vh;background-image:linear-gradient(to bottom,transparent 0,rgba(248,250,252,.32) 350px,#f8fafc 1050px),var(--season-art);background-position:top center;background-size:100% auto,cover;background-repeat:no-repeat;background-attachment:scroll}
header{padding:12px 18px;border:1px solid rgba(255,255,255,.7);border-radius:16px;background:rgba(255,255,255,.72);backdrop-filter:blur(9px)}
#calendar,.panel{box-shadow:0 8px 24px rgba(30,41,59,.045)}
#calendar{background:rgba(255,255,255,.96)}
@media(prefers-color-scheme:dark){body{background-image:linear-gradient(to bottom,rgba(15,23,42,.72),#0f172a 610px),var(--season-art)}header{background:rgba(30,41,59,.86);border-color:#475569}#calendar{background:#1e293b}}
@media(max-width:700px){header{padding:9px 12px}body{background-size:auto 360px,auto 360px}}
@media(prefers-reduced-transparency:reduce){header{backdrop-filter:none;background:#fff}}

/* Feiertage und Schulferien als kleine, unaufdringliche Beschriftung ohne Farbfläche. */
.fc .fc-event.background-label,.fc .fc-event.background-label:hover{background:transparent!important;border:0!important;box-shadow:none!important;color:#64748b!important;font-size:.72rem!important;font-weight:400!important;padding:0 2px!important;white-space:normal!important;pointer-events:none;cursor:default;opacity:1}
.fc .fc-event.background-label .fc-event-main{color:inherit!important;padding:0!important}
@media(prefers-color-scheme:dark){.fc .fc-event.background-label{color:#cbd5e1!important}}

.user-manage-row{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.75rem 0;border-bottom:1px solid #94a3b855}.user-manage-row strong{min-width:6rem}.user-manage-row input[type=password]{max-width:16rem}

/* Navigation controls use deliberate arrow glyphs, not FullCalendar icon font. */
.fc .fc-backward-button,.fc .fc-forward-button{font-size:1.65rem!important;line-height:1!important;min-width:2.5rem;padding:5px 11px!important;font-weight:600!important}

/* Release 2026-11: accessible form layout and visible user events */
[hidden]{display:none!important}
#editor label,#admin label{margin:13px 0}
#admin input[type=color]{display:inline-block;vertical-align:middle;width:72px;height:45px;margin-left:12px}
#newUserBtn{margin-top:18px}
.owner-display{padding:12px 14px;background:#eef2ff;border-radius:9px;font-weight:650}
.verification-status{margin:4px 0 14px;font-weight:650}
.verification-status.ok{color:#147d43}
.verification-status.pending{color:#9b5510}
.fc .fc-event:not(.background-label){opacity:1!important;min-height:24px!important;color:var(--family-text-color,#fff)!important;font-weight:600!important;border-radius:4px!important;overflow:visible!important;line-height:1.3!important}
.fc .fc-event:not(.background-label) .fc-event-main{color:var(--family-text-color,#fff)!important;opacity:1!important;padding:3px 5px!important;white-space:normal!important}
.fc .fc-event:not(.background-label) .fc-event-title,.fc .fc-event:not(.background-label) .fc-event-time{color:var(--family-text-color,#fff)!important;opacity:1!important;visibility:visible!important}
.fc .fc-daygrid-event-dot{display:none!important}
.fc .fc-daygrid-event-harness{margin:2px 1px!important}
.fc .fc-daygrid-block-event .fc-event-main{display:block!important}
.fc .fc-list-event-title{color:inherit!important}
#allEvents{width:min(94vw,820px)}
.event-list-month{margin-top:22px;border-bottom:1px solid #cbd5e1;padding-bottom:6px}
.event-list-entry{display:flex;gap:12px;width:100%;text-align:left;background:transparent;color:inherit;border:0;border-bottom:1px solid #d1d5db66;border-left:5px solid var(--event-color,#2563eb);border-radius:0;padding:12px;margin:0}
.event-list-entry:hover{background:#dbeafe33}
.event-list-date{min-width:135px;font-weight:650}.event-list-details{flex:1}
.event-list-owner{font-size:.84rem;opacity:.75}
@media(max-width:600px){.event-list-entry{display:block}.event-list-date{display:block;margin-bottom:3px}}

.family-event-text{display:inline-block;white-space:normal!important;overflow-wrap:anywhere}.family-event-time{font-weight:500;opacity:.95}#start[readonly],#end[readonly]{cursor:pointer;background-image:linear-gradient(transparent,transparent)}
