:root{--blue:#075ea8;--ink:#17232f;--muted:#62707d;--line:#dce4e8;--paper:#fff;--wash:#f3f7f7;--teal:#176a72;--orange:#e98731;--danger:#a33f3f;--shadow:0 16px 45px rgba(25,58,70,.10);font-family:"Atkinson Hyperlegible","Aptos","Segoe UI",sans-serif;color:var(--ink);background:var(--wash);font-size:17px}*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:var(--blue)}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;border:1px solid #b8c5cb;border-radius:10px;padding:.72rem .8rem;background:#fff;color:var(--ink)}textarea{resize:vertical}label{display:grid;gap:.38rem;font-weight:700;color:#34434e}.muted{color:var(--muted)}.eyebrow{margin:0 0 .35rem;text-transform:uppercase;letter-spacing:.11em;font-size:.78rem;font-weight:800;color:var(--teal)}h1,h2,h3,p{margin-top:0}h1{font-family:"Bree Serif","Georgia",serif;font-size:clamp(2rem,4vw,3.35rem);line-height:1.04;margin-bottom:.5rem}h2{font-size:1.35rem}.brand-mark{width:4.4rem;height:4.4rem;border-radius:50% 46% 52% 42%;display:grid;place-items:center;background:linear-gradient(145deg,var(--blue),var(--teal));color:#fff;font:800 1.45rem Georgia;box-shadow:inset -10px -10px 0 rgba(255,255,255,.1);margin-bottom:1.2rem}.button,.secondary-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:0;border-radius:999px;padding:.72rem 1.2rem;text-decoration:none;font-weight:800;cursor:pointer}.button{background:var(--blue);color:#fff;box-shadow:0 5px 14px rgba(7,94,168,.2)}.secondary-button{border:1px solid #9caeb7;background:#fff;color:var(--ink)}.icon-button{width:2.7rem;height:2.7rem;padding:0;background:#fff;border:1px solid var(--line);font-size:1.7rem}.notice{padding:.9rem 1rem;border-radius:12px;margin-bottom:1rem}.notice.success{background:#e2f4e8;color:#245d37}.notice.error{background:#fbe8e6;color:#843b34}.login-body{background:linear-gradient(120deg,#e7f2f4 0 55%,#fff 55%)}.login-shell{min-height:100vh;max-width:1100px;margin:auto;padding:6vw 4vw;display:grid;grid-template-columns:1.1fr .9fr;gap:7vw;align-items:center}.login-welcome>p:last-child{font-size:1.15rem;color:var(--muted);max-width:35rem}.login-card,.setup-card{background:#fff;padding:clamp(1.5rem,4vw,3rem);border-radius:24px;box-shadow:var(--shadow)}.login-card form{display:grid;gap:1rem}.login-card .button{margin-top:.6rem}.setup-body{padding:5vw;background:linear-gradient(135deg,#e8f3f4,#f9f5ec)}.setup-card{max-width:820px;margin:auto}.intro{color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-grid h2,.form-grid .full{grid-column:1/-1}.topbar{position:sticky;top:0;z-index:10;min-height:70px;display:flex;align-items:center;gap:2rem;padding:.7rem clamp(1rem,4vw,3.5rem);background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--ink)}.brand span{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--teal);color:#fff;font-weight:900}.topbar nav{display:flex;gap:.35rem}.topbar nav a{padding:.55rem .7rem;text-decoration:none;color:#40515b;font-weight:700}.user-menu{margin-left:auto;display:flex;gap:.8rem;align-items:center;font-size:.9rem}.app-shell{max-width:1480px;margin:auto;padding:2rem clamp(1rem,4vw,3.5rem) 4rem}.page-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.7rem}.page-head h1{font-size:clamp(2rem,3vw,2.9rem)}.toolbar{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1rem}.toolbar h2{margin:0;min-width:13rem;text-align:center}.group-legend{display:flex;flex-wrap:wrap;gap:.55rem 1rem;margin-bottom:1rem}.group-legend span{display:flex;align-items:center;gap:.35rem;font-size:.82rem;color:#52636d}.group-legend i,.event-meta b{display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--group);color:#fff;font-style:normal;font-weight:900}.calendar{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays div{padding:.65rem;text-align:center;background:#e7f1f2;color:#3b5961;font-weight:800}.day{min-width:0;min-height:150px;padding:.55rem;border-top:1px solid var(--line);border-right:1px solid var(--line);background:#fff}.day:nth-child(7n){border-right:0}.day.outside{background:#f4f5f5;color:#9ba4a8}.day>time{display:block;font-weight:800;margin-bottom:.45rem}.event-pill{display:flex;gap:.4rem;align-items:flex-start;margin:.3rem 0;padding:.38rem;border-left:4px solid var(--group);border-radius:7px;background:#f1f5f5;color:var(--ink);text-decoration:none;font-size:.72rem;line-height:1.2}.event-pill>b{display:grid;place-items:center;flex:0 0 1.35rem;height:1.35rem;border-radius:50%;background:var(--group);color:#fff}.event-pill span{min-width:0}.event-pill strong,.event-pill small{display:block;overflow:hidden;text-overflow:ellipsis}.event-pill small{color:var(--muted);margin-top:.15rem}.status-cancelled{opacity:.55;text-decoration:line-through}.mobile-list{display:none}.event-form{display:grid;gap:1.2rem}.event-form fieldset{border:1px solid var(--line);background:#fff;border-radius:18px;padding:1.2rem;box-shadow:0 6px 22px rgba(25,58,70,.05)}.event-form legend{padding:0 .5rem;font:800 1.15rem Georgia;color:var(--teal)}.event-form fieldset>label{margin-top:.5rem}.form-actions{display:flex;gap:1rem;align-items:center}.danger-link{border:0;background:transparent;color:var(--danger);font-weight:800;cursor:pointer}.data-list{display:grid;gap:.7rem}.data-list article{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.2rem;border:1px solid var(--line);border-radius:14px;background:#fff}.data-list p{margin:.25rem 0 0;color:var(--muted)}.empty{padding:2rem;text-align:center;background:#fff;border:1px dashed #aab8bf;border-radius:16px;color:var(--muted)}footer{text-align:center;padding:1.5rem;color:#71808a;font-size:.82rem}
.admin-split{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(360px,1.2fr);gap:1.5rem;align-items:start}.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.55rem;margin-top:.6rem}.check-grid label{display:flex;align-items:center;gap:.45rem;font-weight:500}.check-grid input{width:auto}.check-grid span{display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--group);color:#fff;font-weight:900}.role-badge{padding:.35rem .65rem;border-radius:999px;background:#e8f1f2;color:#31555d;font-size:.8rem;font-weight:800;white-space:nowrap}
@media(max-width:820px){:root{font-size:16px}.login-shell{grid-template-columns:1fr;padding:2rem 1rem}.login-welcome{padding:1rem}.login-welcome h1{font-size:2.45rem}.topbar{flex-wrap:wrap;gap:.45rem 1rem}.topbar nav{order:3;width:100%;overflow:auto}.user-menu span{display:none}.app-shell{padding-top:1.25rem}.page-head{align-items:flex-start;flex-direction:column}.desktop-calendar{display:none}.mobile-list{display:grid;gap:.75rem}.list-event{display:grid;grid-template-columns:4rem 1fr;gap:1rem;padding:1rem;background:#fff;border-left:6px solid var(--group);border-radius:15px;box-shadow:0 6px 20px rgba(25,58,70,.07)}.date-card{display:flex;flex-direction:column;align-items:center;color:var(--group)}.date-card strong{font-size:2rem;line-height:1}.date-card span{font-size:.8rem;font-weight:900;letter-spacing:.08em}.list-event h3{margin:.25rem 0}.list-event p{margin:0 0 .5rem;color:var(--muted)}.form-grid{grid-template-columns:1fr}.form-grid h2,.form-grid .full{grid-column:auto}.form-actions{align-items:stretch;flex-direction:column}.data-list article{align-items:flex-start;flex-direction:column}.admin-split{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr 1fr}}
@media print{.topbar,.button,.secondary-button,.icon-button,.group-legend,footer{display:none!important}.app-shell{padding:0}.calendar{box-shadow:none}.day{min-height:130px}}

/* WeK V0.2 */
.brand img{display:block;width:3.8rem;height:3.15rem;object-fit:contain}.brand span{display:none}.login-logo{display:block;width:min(18rem,65%);height:7rem;object-fit:contain;object-position:left center;margin-bottom:1.2rem}.login-welcome{position:relative}.login-silhouette{display:block;width:115%;max-width:none;margin:2.5rem 0 -1rem -8%;opacity:.24}.app-shell{position:relative}.app-shell:after{content:"";display:block;height:9rem;margin:4rem 0 -3rem;background:url("kassel-silhouette.png") center bottom/contain no-repeat;opacity:.12;pointer-events:none}.field-help{margin:0 0 1rem;color:var(--muted);font-size:.9rem}.cost-list{display:grid;gap:.8rem}.cost-row{display:grid;grid-template-columns:minmax(9rem,.45fr) minmax(15rem,1fr) minmax(16rem,.8fr) 2.8rem;gap:.8rem;align-items:end;padding:.9rem;border-radius:13px;background:#f5f8f8}.cost-row label small{display:block;color:var(--muted);font-weight:500;margin-top:.25rem}.cost-row input[type=file]{padding:.52rem;background:#fff}.remove-cost{width:2.65rem;height:2.65rem;border:1px solid #d7b5b5;border-radius:50%;background:#fff;color:var(--danger);font-size:1.5rem;cursor:pointer}.cost-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem}.cost-footer strong{font-size:1.15rem}.destination-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:1.2rem;margin-bottom:1.5rem}.destination-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.destination-card{padding:1.25rem;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 7px 24px rgba(25,58,70,.06)}.destination-card h2{margin-bottom:.55rem}.destination-meta{display:grid;gap:.25rem;color:var(--muted);font-size:.87rem}.card-links{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1rem;font-weight:700}.visit-list{border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem}.visit-list p{margin-bottom:.65rem}
@media(max-width:1050px){.cost-row{grid-template-columns:9rem 1fr 1fr 2.8rem}.destination-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.destination-layout{grid-template-columns:1fr}}
@media(max-width:820px){.brand img{width:3.1rem;height:2.6rem}.brand strong{white-space:nowrap}.cost-row{grid-template-columns:1fr 2.8rem}.cost-row label{grid-column:1}.cost-row .remove-cost{grid-column:2;grid-row:1}.cost-footer{align-items:stretch;flex-direction:column}.destination-grid{grid-template-columns:1fr}.login-silhouette{width:110%;margin-top:1rem}.app-shell:after{height:6rem}}

/* WeK V0.3 */
.topbar{min-height:82px}.brand{flex:0 0 auto}.brand img{width:9rem;height:4.2rem}.brand strong{font-size:1rem;max-width:9rem;line-height:1.15}.topbar nav{min-width:0;overflow-x:auto}.app-shell:after{display:none}.desktop-calendar{background:#fff url("kassel-silhouette.png") center 58%/78% auto no-repeat}.desktop-calendar .day{background:rgba(255,255,255,.90)}.desktop-calendar .day.outside{background:rgba(239,242,242,.96)}.term-switch{display:grid;gap:.25rem;width:min(25rem,100%);margin-bottom:.7rem}.term-switch span{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--teal)}.term-switch select{padding:.45rem .75rem;font-weight:800;background:#fff}.page-head>div{min-width:min(100%,25rem)}
@media(max-width:1050px){.topbar{gap:1rem}.brand strong{display:none}.brand img{width:7rem}.topbar nav a{white-space:nowrap}}
@media(max-width:820px){.topbar{min-height:70px}.brand img{width:5rem;height:3rem}.desktop-calendar{background-image:none}}
.archive-filter{display:grid;grid-template-columns:1fr 1fr 1.2fr auto;gap:.8rem;align-items:end;margin:0 0 1.25rem;padding:1rem;background:#fff;border:1px solid var(--line);border-radius:16px}.account-actions,.log-actions{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;flex-wrap:wrap}.account-actions form,.log-actions form{margin:0}.compact{padding:.45rem .75rem;font-size:.82rem}.inactive-row{opacity:.66}.inline-check{display:flex;align-items:center;gap:.55rem}.inline-check input{width:auto}.undone{color:var(--teal);font-weight:700}
@media(max-width:820px){.archive-filter{grid-template-columns:1fr}.account-actions,.log-actions{justify-content:flex-start}}

/* WeK V0.4 – historisches Terminarchiv */
.archive-filter{grid-template-columns:minmax(11rem,1fr) minmax(15rem,1.5fr) auto}.archive-calendar{margin-bottom:1.6rem}.archive-pill{background:rgba(241,245,245,.94)}.archive-results{margin-top:1.5rem}.archive-visit-list{display:grid;gap:.75rem}.archive-visit-list>article{display:grid;grid-template-columns:7rem 1fr;gap:1rem;padding:1rem 1.2rem;background:#fff;border:1px solid var(--line);border-radius:14px}.archive-visit-list>article>time{font:800 1.05rem Georgia;color:var(--teal)}.archive-visit-list h3{margin:0 0 .3rem}.archive-visit-list p{margin:0 0 .35rem}.archive-visit-list .eyebrow{font-size:.7rem}.archive-visit-list .card-links{margin-top:.45rem}
@media(max-width:820px){.archive-filter{grid-template-columns:1fr}.archive-visit-list>article{grid-template-columns:1fr;gap:.35rem}}

/* WeK V0.5 – Scanarchiv */
.archive-filter{grid-template-columns:minmax(9rem,.7fr) minmax(13rem,1fr) minmax(16rem,1.5fr) auto}.archive-results-first{margin:0 0 1.3rem}.archive-results-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.archive-results-head strong{color:var(--teal)}.archive-calendar-toggle{margin-top:1.2rem;padding:1rem;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.72)}.archive-calendar-toggle>summary{cursor:pointer;font-weight:800;color:var(--blue)}.archive-calendar-toggle[open]>summary{margin-bottom:1rem}.source-note{color:var(--muted);font-size:.78rem}.archive-visit-list>article{content-visibility:auto;contain-intrinsic-size:110px}
@media(max-width:820px){.archive-filter{grid-template-columns:1fr}.archive-results-head{align-items:flex-start;flex-direction:column}}
