:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172033;background:#f5f7fb;line-height:1.5;--primary:#2457d6;--primary-dark:#183f9f;--surface:#fff;--border:#dfe5ef;--muted:#667085;--shadow:0 12px 35px rgba(31,42,68,.08)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,#edf3ff 0,transparent 34rem),#f5f7fb}.container{max-width:1280px;margin:auto;padding:0 1.25rem}.topbar{background:rgba(17,32,62,.96);color:#fff;box-shadow:0 4px 20px #10203e33}.topbar-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand,.topbar a{color:#fff;text-decoration:none}.brand{font-weight:800;font-size:1.15rem;letter-spacing:-.02em}.topbar nav{display:flex;gap:.35rem;flex-wrap:wrap}.topbar nav a{padding:.55rem .75rem;border-radius:.55rem;color:#dfe8ff}.topbar nav a:hover{background:#ffffff18;color:#fff}main.container{padding-top:1.5rem;padding-bottom:3rem}h1{margin:.25rem 0 1.25rem;font-size:clamp(1.7rem,3vw,2.35rem);letter-spacing:-.04em}h2{margin:0;font-size:1.15rem}.card,.event-card{background:rgba(255,255,255,.96);border:1px solid var(--border);border-radius:1rem;box-shadow:var(--shadow)}.card{padding:1.25rem;margin-bottom:1rem}.narrow{max-width:560px}.alert{padding:.85rem 1rem;border-radius:.7rem;margin:0 0 1rem;border:1px solid transparent}.alert-success{background:#ecfdf3;border-color:#abefc6;color:#067647}.alert-error{background:#fef3f2;border-color:#fecdca;color:#b42318}.success-panel{background:#ecfdf3;padding:1rem;border-radius:.75rem;margin-bottom:1rem}.page-intro{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.page-intro p,.section-heading p{margin:.2rem 0 0;color:var(--muted)}.eyebrow{display:block;color:var(--primary);font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.11em;margin-bottom:.25rem}.toolbar,.form-actions{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.button,button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:.65rem;background:var(--primary);color:#fff;padding:.7rem 1rem;text-decoration:none;cursor:pointer;font:inherit;font-weight:700;transition:.15s ease}.button:hover,button:hover{background:var(--primary-dark);transform:translateY(-1px)}.button.secondary{background:#344054}.button.ghost{background:#f2f4f7;color:#344054;border:1px solid #e4e7ec}.button.ghost:hover{background:#e8ecf2}.compact{padding:.5rem .7rem;font-size:.88rem}.danger-button{background:#fff1f0;color:#b42318;border:1px solid #fecdca}.danger-button:hover{background:#fee4e2}.filters,.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.filters{grid-template-columns:minmax(220px,2fr) repeat(3,minmax(130px,1fr)) auto auto;align-items:end}.span-2{grid-column:span 2}label{display:flex;flex-direction:column;gap:.4rem;font-weight:700;font-size:.9rem;color:#344054}input,select,textarea{width:100%;padding:.72rem .8rem;border:1px solid #cfd6e2;border-radius:.65rem;font:inherit;background:#fff;color:#172033;outline:none;transition:.15s}input:focus,select:focus,textarea:focus{border-color:#84a7ff;box-shadow:0 0 0 4px #2457d61a}textarea{resize:vertical}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;padding-top:.25rem;border-bottom:1px solid var(--border);padding-bottom:.75rem;margin-top:.3rem}.schedule-heading{margin-top:.7rem}.date-list{display:grid;gap:.75rem}.date-row{display:grid;grid-template-columns:40px minmax(180px,1.6fr) minmax(130px,1fr) minmax(130px,1fr) 42px;gap:.75rem;align-items:end;padding:.9rem;border:1px solid var(--border);border-radius:.85rem;background:#f9fbff}.date-number{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e8efff;color:var(--primary);font-weight:800;margin-bottom:.18rem}.icon-button{width:38px;height:38px;padding:0;border-radius:.6rem;font-size:1.4rem;background:#fff1f0;color:#b42318;border:1px solid #fecdca;margin-bottom:.05rem}.icon-button:disabled{opacity:.35;cursor:not-allowed}.sticky-actions{margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border)}.event-list{display:grid;gap:.85rem}.event-card{display:grid;grid-template-columns:92px 1fr auto;align-items:center;gap:1rem;padding:1rem}.event-date{height:70px;border-radius:.8rem;background:#eef3ff;color:var(--primary);display:flex;flex-direction:column;align-items:center;justify-content:center}.event-date strong{font-size:1.7rem;line-height:1}.event-date span{font-size:.78rem;font-weight:700;margin-top:.25rem}.event-title-row{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.event-meta{display:flex;gap:.5rem 1rem;flex-wrap:wrap;color:var(--muted);font-size:.88rem;margin-top:.35rem}.event-meta span+span:before{content:"•";margin-right:1rem;color:#b2bac8}.event-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.event-actions form,.inline-form{margin:0}.status{display:inline-block;padding:.22rem .55rem;border-radius:999px;font-size:.78rem;font-weight:800}.status-published{background:#dcfae6;color:#067647}.status-draft{background:#fef0c7;color:#b54708}.status-cancelled{background:#fee4e2;color:#b42318}.empty-state{text-align:center;padding:3rem 1rem}.empty-state p{color:var(--muted)}small{color:var(--muted)}code{background:#f2f4f7;padding:.15rem .35rem;border-radius:.3rem}@media(max-width:980px){.filters{grid-template-columns:1fr 1fr}.event-card{grid-template-columns:75px 1fr}.event-actions{grid-column:1/-1;justify-content:flex-start;padding-left:91px}.date-row{grid-template-columns:36px 1fr 1fr}.date-row label:first-of-type{grid-column:2/-1}.date-row .icon-button{grid-column:3;justify-self:end}}@media(max-width:700px){.topbar-inner,.page-intro{align-items:flex-start;flex-direction:column}.topbar-inner{padding-top:1rem;padding-bottom:1rem}.filters,.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.event-card{grid-template-columns:64px 1fr}.event-actions{padding-left:0}.date-row{grid-template-columns:34px 1fr}.date-row label,.date-row label:first-of-type{grid-column:2}.date-row .icon-button{grid-column:2;justify-self:start}.schedule-heading{align-items:flex-start;flex-direction:column}}
.user-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:1rem}.user-card{margin:0}.user-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem;padding-bottom:.85rem;border-bottom:1px solid var(--border)}.user-card-head strong,.user-card-head small{display:block}.department-picker{border:1px solid var(--border);border-radius:.75rem;padding:.8rem;display:flex;flex-wrap:wrap;gap:.55rem}.department-picker legend{padding:0 .35rem;font-weight:800;color:#344054}.check-option{display:flex;flex-direction:row;align-items:center;gap:.35rem;background:#f5f7fb;border:1px solid var(--border);padding:.45rem .65rem;border-radius:999px;font-weight:600}.check-option input,.switch-label input{width:auto}.switch-label{display:flex;flex-direction:row;align-items:center;gap:.4rem}.compact-grid{gap:.75rem}@media(max-width:700px){.user-grid{grid-template-columns:1fr}}

/* Gemeinde Hohenwestedt Branding */
:root{
    --primary:#0B4563;
    --primary-dark:#07364e;
    --accent:#009EE2;
    --surface:#fff;
    --border:#d8e3e9;
    --muted:#5d6f78;
    --shadow:0 14px 38px rgba(11,69,99,.10);
}
html,body{min-height:100%}
body{display:flex;min-height:100vh;flex-direction:column;background:linear-gradient(180deg,#f3f9fc 0,#f7fafb 22rem,#f5f7f8 100%)}
.container{width:100%;max-width:none;margin:0;padding-left:clamp(1rem,2.5vw,3rem);padding-right:clamp(1rem,2.5vw,3rem)}
.topbar{background:#fff;color:var(--primary);border-bottom:4px solid var(--accent);box-shadow:0 5px 22px rgba(11,69,99,.10)}
.topbar-inner{min-height:92px}
.brand{display:flex;align-items:center;gap:1rem;color:var(--primary);font-weight:800;text-decoration:none}
.brand img{display:block;width:min(310px,42vw);height:auto;max-height:62px}
.brand span{padding-left:1rem;border-left:1px solid var(--border);font-size:1rem;white-space:nowrap;color:var(--primary)}
.topbar nav{align-items:center}
.topbar nav a{color:var(--primary);font-weight:700;padding:.65rem .85rem}
.topbar nav a:hover,.topbar nav a:focus-visible{background:#e7f6fc;color:var(--primary)}
.page-content{flex:1;padding-top:clamp(1.5rem,3vw,2.5rem);padding-bottom:3rem}
h1{color:var(--primary)}
.eyebrow{color:var(--accent)}
.button,button{background:var(--primary)}
.button:hover,button:hover{background:var(--primary-dark)}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(0,158,226,.16)}
.event-date{background:#e5f5fb;color:var(--primary);border-left:4px solid var(--accent)}
.date-number{background:#e5f5fb;color:var(--primary)}
.card,.event-card{border-color:#d6e4ea}
.app-footer{margin-top:auto;background:var(--primary);color:#fff}
.app-footer-inner{min-height:72px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.92rem}
.app-footer a{color:#fff;font-weight:700;text-underline-offset:3px}
.app-footer a:hover{color:#bcecff}
@media(max-width:760px){
    .topbar-inner{min-height:auto}
    .brand{width:100%;justify-content:space-between}
    .brand img{width:min(250px,68vw)}
    .brand span{display:none}
    .topbar nav{width:100%}
}

/* Version 2.3: klare Aktionsfarben und Footer ohne Link */
:root{--primary:#0B4563;--primary-dark:#07364e;--accent:#009EE2}
.danger-button,.button.danger-button{background:#c62828!important;color:#fff!important;border:1px solid #a91f1f!important}
.danger-button:hover,.button.danger-button:hover{background:#a91f1f!important;color:#fff!important}
.archive-info{margin-bottom:1rem;padding:1rem 1.1rem;border-left:4px solid var(--accent);background:#eaf7fc;border-radius:.75rem;color:#173b4d}
.archive-age{font-size:.83rem;color:var(--muted);margin-top:.35rem}
.archive-delete-ready{color:#9b1c1c;font-weight:700}

.date-row{grid-template-columns:40px minmax(170px,1.4fr) minmax(120px,.8fr) minmax(120px,.8fr) auto auto 42px}.date-check{display:flex;flex-direction:row;align-items:center;gap:.4rem;white-space:nowrap;padding-bottom:.55rem}.date-check input{width:auto}.trash-note{font-size:.85rem;color:var(--muted)}

/* Version 2.8: konkrete Veranstaltungstage in der Terminübersicht */
.event-occurrences{display:grid;gap:.45rem;margin-top:.75rem;padding-top:.7rem;border-top:1px solid var(--border)}
.event-occurrence{display:flex;align-items:center;gap:.55rem .8rem;flex-wrap:wrap;font-size:.88rem}
.event-occurrence-date{font-weight:750;color:var(--primary)}
.event-occurrence-time{color:var(--muted)}
.status-postponed{background:#e5f5fb;color:#086c94}
@media(max-width:700px){.event-occurrence{align-items:flex-start;flex-direction:column;gap:.25rem}.event-occurrence .status{margin-top:.1rem}}
