:root {
  --green-950:#032719;--green-900:#073d27;--green-800:#075433;--green-700:#08733f;--green-600:#09904e;
  --green-100:#e6f3eb;--green-050:#f4f9f6;--ink:#132219;--muted:#617068;--line:#dce6e0;
  --paper:#fff;--canvas:#f5f8f6;--gold:#f0b323;--orange:#e57b25;--red:#d52735;
  --shadow-sm:0 8px 24px rgba(6,55,32,.08);--shadow:0 24px 64px rgba(6,55,32,.14);
  --radius:18px;--radius-lg:28px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth;max-width:100%;overflow-x:hidden}body{margin:0;max-width:100%;overflow-x:hidden;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--canvas);line-height:1.55}a{color:inherit}img{max-width:100%;height:auto}button,input,textarea,select{font:inherit}.public-icon{width:1.15em;height:1.15em;flex:0 0 auto}.public-container{width:min(1440px,calc(100% - 48px));margin:0 auto}.skip-link{position:fixed;left:12px;top:-100px;z-index:9999;padding:10px 14px;background:#fff;border-radius:8px}.skip-link:focus{top:12px}
.public-header{position:sticky;top:0;z-index:80;background:rgba(255,255,255,.96);border-bottom:1px solid rgba(213,226,218,.9);backdrop-filter:blur(16px)}.public-header-inner{min-height:82px;display:flex;align-items:center;gap:26px}.public-brand{display:flex;align-items:center;flex:0 1 330px;min-width:0;text-decoration:none}.public-brand img{display:block;width:min(330px,100%);max-height:58px;object-fit:contain;object-position:left center}.public-nav-wrap{display:flex;align-items:center;gap:20px;margin-left:auto}.public-nav{display:flex;align-items:center;gap:3px}.public-nav a{position:relative;padding:12px 11px;text-decoration:none;font-weight:760;font-size:.92rem}.public-nav a:after{content:"";position:absolute;left:11px;right:11px;bottom:5px;height:2px;background:var(--green-700);transform:scaleX(0);transition:transform .18s}.public-nav a:hover:after,.public-nav a.is-active:after{transform:scaleX(1)}.public-nav a.is-active{color:var(--green-700)}.public-member-button{display:inline-flex;align-items:center;gap:8px;min-height:43px;padding:9px 15px;color:#fff;background:var(--green-700);border-radius:11px;text-decoration:none;font-weight:800;box-shadow:0 8px 20px rgba(8,115,63,.16)}.public-menu-toggle,.public-nav-close{display:none}.public-overlay{display:none}
.public-hero{position:relative;min-height:560px;overflow:hidden;background:var(--green-950)}.public-hero-image{position:absolute;inset:0 0 0 35%;background:url('/assets/img/public/hero-day.webp') center/cover no-repeat}.public-hero-night{position:absolute;inset:0 55% 0 0;background:url('/assets/img/public/hero-night.webp') left center/cover no-repeat;filter:grayscale(1);opacity:.4}.public-hero-shade{position:absolute;inset:0;background:linear-gradient(104deg,rgba(3,39,25,.98) 0%,rgba(3,39,25,.95) 34%,rgba(3,39,25,.82) 44%,rgba(3,39,25,.12) 61%,rgba(3,39,25,.04) 100%);clip-path:polygon(0 0,48% 0,59% 100%,0 100%)}.public-hero-content{position:relative;z-index:2;display:flex;align-items:center;min-height:560px}.public-hero-copy{width:min(630px,48%);padding:56px 0;color:#fff}.public-eyebrow{display:block;margin-bottom:8px;color:var(--green-700);font-size:.73rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.public-eyebrow:before{content:"";display:inline-block;width:26px;height:2px;margin:0 9px 3px 0;background:currentColor}.public-eyebrow-light{color:#b7e2c8}.public-hero h1{margin:0;color:#fff;font-size:clamp(2.9rem,5vw,5.6rem);line-height:.98;letter-spacing:-.045em}.brand-stripes{display:flex;gap:5px;margin-top:15px}.brand-stripes i{display:block;width:28px;height:5px;transform:skewX(-28deg);background:var(--green-600)}.brand-stripes i:nth-child(2){background:#b4c928}.brand-stripes i:nth-child(3){background:var(--gold)}.brand-stripes i:nth-child(4){background:var(--red)}.brand-stripes-large i{width:38px;height:6px}.public-hero-lead{max-width:560px;margin:22px 0 0;color:rgba(244,251,247,.82);font-size:1.08rem}.public-hero-lead strong{color:#fff}.public-actions{display:flex;gap:11px;flex-wrap:wrap;margin-top:25px}.public-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:45px;padding:10px 17px;color:#fff;background:var(--green-600);border:1px solid var(--green-600);border-radius:11px;text-decoration:none;font-weight:850;transition:transform .15s,box-shadow .15s,background .15s}.public-btn:hover{transform:translateY(-1px);background:var(--green-700);box-shadow:0 9px 22px rgba(0,0,0,.16)}.public-btn-ghost{background:rgba(4,34,22,.32);border-color:rgba(255,255,255,.58)}.public-btn-light{color:var(--green-900);background:#fff;border-color:#fff}.public-hero-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:34px}.public-hero-values>div{display:flex;align-items:flex-start;gap:10px;min-width:0}.public-hero-values .public-icon{width:27px;height:27px;color:#51d876}.public-hero-values strong,.public-hero-values small{display:block}.public-hero-values strong{font-size:.86rem}.public-hero-values small{margin-top:2px;color:rgba(244,251,247,.68);font-size:.73rem;line-height:1.35}
.public-section{padding:76px 0}.public-about-preview{background:#fff}.public-about-grid{display:grid;grid-template-columns:.7fr .85fr 1.8fr;gap:34px;align-items:center}.public-section-copy h2,.public-section-heading-row h2,.public-community-copy h2,.public-cta-card h2,.public-page-hero h1,.public-story-grid h2,.public-two-column h2{margin:0;line-height:1.05;letter-spacing:-.035em}.public-section-copy h2{font-size:clamp(2rem,3vw,3.4rem)}.public-section-copy p{color:var(--muted);font-size:.98rem}.public-text-link{display:inline-flex;align-items:center;gap:7px;color:var(--green-700);font-weight:850;text-decoration:none}.public-text-link:hover{color:var(--green-900)}.public-angle-image{margin:0;overflow:hidden;border-radius:20px;clip-path:polygon(8% 0,100% 0,92% 100%,0 100%);box-shadow:var(--shadow)}.public-angle-image img{display:block;width:100%;height:350px;object-fit:cover}.public-section-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:16px}.public-section-heading-row h2{font-size:clamp(1.65rem,2.3vw,2.35rem)}.public-insight-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.public-insight-card{position:relative;display:block;min-height:230px;overflow:hidden;color:#fff;background:#0a2116;border-radius:16px;clip-path:polygon(7% 0,100% 0,93% 100%,0 100%);text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .18s}.public-insight-card:hover{transform:translateY(-4px)}.public-insight-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(0,0,0,.82))}.public-insight-card img{width:100%;height:100%;min-height:230px;object-fit:cover;filter:saturate(.85)}.public-insight-card span{position:absolute;z-index:2;left:18px;right:18px;bottom:15px;display:flex;align-items:center;gap:6px;font-size:.79rem;font-weight:800}
.public-community-section{background:linear-gradient(180deg,#f7faf8,#fff)}.public-community-grid{display:grid;grid-template-columns:.56fr .92fr 1.5fr;align-items:stretch;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)}.public-community-copy{position:relative;z-index:2;padding:44px 36px;color:#fff;background:linear-gradient(145deg,var(--green-800),var(--green-950));clip-path:polygon(0 0,100% 0,88% 100%,0 100%)}.public-community-copy h2{font-size:clamp(2rem,3vw,3.2rem)}.public-community-copy p{color:rgba(255,255,255,.76)}.public-community-image{margin:0;min-width:0;overflow:hidden;clip-path:polygon(8% 0,100% 0,92% 100%,0 100%)}.public-community-image img{width:100%;height:100%;min-height:420px;object-fit:cover}.public-news-panel{min-width:0;padding:34px 30px;overflow:hidden}.public-news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;min-width:0}.public-news-card{position:relative;z-index:0;display:flex;min-width:0;overflow:hidden;flex-direction:column;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:16px;text-decoration:none;box-shadow:0 4px 14px rgba(5,54,34,.045);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.public-news-card:hover{z-index:2;transform:translateY(-3px);border-color:#b7d5c3;box-shadow:0 12px 28px rgba(5,54,34,.12)}.public-news-card img{display:block;width:100%;height:126px;flex:0 0 auto;object-fit:cover}.public-news-card>div{display:flex;min-width:0;flex:1;flex-direction:column;align-items:flex-start;padding:14px 15px 16px}.public-news-card h3{max-width:100%;margin:9px 0 6px;font-size:1rem;line-height:1.2;overflow-wrap:anywhere;hyphens:auto}.public-news-card p{max-width:100%;margin:0;color:var(--muted);font-size:.8rem;line-height:1.46;overflow-wrap:anywhere;hyphens:auto}.public-tag{display:inline-flex;max-width:100%;padding:4px 8px;color:#17613b;background:#e4f3ea;border-radius:999px;font-size:.61rem;font-weight:900;line-height:1.15;text-transform:uppercase;white-space:normal;overflow-wrap:anywhere}.public-tag-gold{color:#845500;background:#fff0bd}.public-cta-section{background:#fff}.public-cta-card{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:42px;color:#fff;background:radial-gradient(circle at 90% 0,rgba(255,255,255,.12),transparent 18rem),linear-gradient(135deg,var(--green-700),var(--green-950));border-radius:28px;box-shadow:var(--shadow)}.public-cta-card h2{max-width:850px;font-size:clamp(1.9rem,3vw,3.2rem)}.public-cta-card p{margin-bottom:0;color:rgba(255,255,255,.75)}
.public-footer{padding:48px 0 20px;color:#dbece3;background:#052f1e}.public-footer-grid{display:grid;grid-template-columns:1.35fr 1fr .75fr .7fr;gap:36px}.public-footer h2{margin:0 0 12px;color:#fff;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase}.public-footer a,.public-footer span{display:flex;align-items:center;gap:8px;margin:7px 0;color:#dbece3;text-decoration:none;font-size:.85rem}.public-footer a:hover{color:#fff}.public-footer-brand img{display:block;width:270px;max-height:65px;object-fit:contain;object-position:left center;padding:7px;background:#fff;border-radius:12px}.public-footer-brand p{margin:14px 0 0}.public-footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:34px;padding-top:18px;border-top:1px solid rgba(255,255,255,.1);color:rgba(219,236,227,.55);font-size:.76rem}
.public-page-hero{position:relative;display:flex;align-items:flex-end;min-height:390px;padding:72px 0;color:#fff;background-position:center;background-size:cover;overflow:hidden}.public-page-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,39,25,.96),rgba(3,39,25,.72) 48%,rgba(3,39,25,.18))}.public-page-hero .public-container{position:relative;z-index:1}.public-page-hero h1{max-width:950px;color:#fff;font-size:clamp(2.7rem,5vw,5.3rem)}.public-page-hero p{max-width:680px;color:rgba(255,255,255,.8);font-size:1.08rem}.public-page-hero-about{background-image:url('/assets/img/public/station-wide.webp')}.public-page-hero-news{background-image:url('/assets/img/public/gallery-depot-1.webp')}.public-page-hero-events{background-image:url('/assets/img/public/hero-day.webp')}.public-page-hero-gallery{background-image:url('/assets/img/public/gallery-station-night.webp')}.public-page-hero-contact{background-image:url('/assets/img/public/station-facade.webp')}.public-page-hero-legal{min-height:300px;background:linear-gradient(135deg,var(--green-800),var(--green-950))}.public-story-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:52px;align-items:center}.public-story-grid h2,.public-two-column h2{font-size:clamp(2rem,3vw,3.4rem)}.public-story-grid>div>p{color:var(--muted);font-size:1.03rem}.public-story-image{margin:0;overflow:hidden;border-radius:28px;box-shadow:var(--shadow);transform:rotate(1.5deg)}.public-story-image img{display:block;width:100%;height:540px;object-fit:cover}.public-value-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:26px}.public-value-cards article{padding:18px;background:#fff;border:1px solid var(--line);border-radius:16px}.public-value-cards .public-icon{width:28px;height:28px;color:var(--green-700)}.public-value-cards h3{margin:13px 0 5px}.public-value-cards p{margin:0;color:var(--muted);font-size:.84rem}.public-section-soft{background:var(--green-050);border-block:1px solid var(--line)}.public-two-column{display:grid;grid-template-columns:.8fr 1.2fr;gap:55px}.public-check-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.public-check-list p{margin:0;padding:19px;background:#fff;border:1px solid var(--line);border-radius:15px}.public-check-list strong,.public-check-list span{display:block}.public-check-list strong{color:var(--green-700)}.public-check-list span{margin-top:4px;color:var(--muted);font-size:.88rem}.public-page-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.public-feature-card{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-sm)}.public-feature-card img{width:100%;height:230px;object-fit:cover}.public-feature-card>div{padding:22px}.public-feature-card h2{margin:11px 0 8px;font-size:1.35rem}.public-feature-card p{color:var(--muted)}.public-event-public-grid{display:grid;gap:15px}.public-event-info{display:grid;grid-template-columns:86px minmax(0,1fr);gap:22px;align-items:start;padding:25px;background:#fff;border:1px solid var(--line);border-radius:18px}.public-event-number{display:flex;align-items:center;justify-content:center;width:70px;height:70px;color:#fff;background:var(--green-700);border-radius:18px;font-size:1.45rem;font-weight:900}.public-event-info h2{margin:0}.public-event-info p{color:var(--muted)}.public-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:330px;gap:15px}.public-gallery-item{position:relative;margin:0;overflow:hidden;border-radius:20px;box-shadow:var(--shadow-sm)}.public-gallery-wide{grid-column:span 2}.public-gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.public-gallery-item:hover img{transform:scale(1.025)}.public-gallery-item:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.82))}.public-gallery-item figcaption{position:absolute;z-index:2;left:22px;right:22px;bottom:18px;color:#fff}.public-gallery-item strong,.public-gallery-item span{display:block}.public-gallery-item span{margin-top:3px;color:rgba(255,255,255,.72);font-size:.82rem}.public-contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.public-contact-card{padding:28px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-sm)}.public-contact-icon{display:flex;align-items:center;justify-content:center;width:54px;height:54px;color:var(--green-700);background:var(--green-100);border-radius:15px}.public-contact-icon .public-icon{width:25px;height:25px}.public-contact-card h2{margin:18px 0 7px}.public-contact-card p{color:var(--muted)}.public-legal-card{max-width:980px;margin:0 auto;padding:clamp(24px,4vw,54px);background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-sm)}.public-legal-card h2{margin:34px 0 10px;color:var(--green-900);font-size:1.35rem}.public-legal-card h2:first-child{margin-top:0}.public-legal-card p,.public-legal-card li{color:#425048}.public-legal-card a{color:var(--green-700);overflow-wrap:anywhere}
@media(max-width:1180px){.public-container{width:min(100% - 32px,1440px)}.public-about-grid{grid-template-columns:.75fr 1fr}.public-insights{grid-column:1/-1}.public-community-grid{grid-template-columns:.55fr 1fr}.public-news-panel{grid-column:1/-1}.public-news-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.public-footer-grid{grid-template-columns:1.4fr 1fr 1fr}.public-footer-grid>div:last-child{grid-column:2}}
@media(max-width:900px){.public-header-inner{min-height:72px}.public-brand{flex-basis:270px}.public-menu-toggle{display:inline-flex;align-items:center;justify-content:center;width:43px;height:43px;margin-left:auto;padding:0;color:var(--green-800);background:#fff;border:1px solid var(--line);border-radius:11px}.public-nav-wrap{position:fixed;inset:0 0 0 auto;z-index:95;display:flex;flex-direction:column;align-items:stretch;width:min(88vw,360px);height:100dvh;margin:0;padding:84px 22px 24px;background:#fff;transform:translateX(105%);transition:transform .22s;box-shadow:-25px 0 60px rgba(3,39,25,.22)}.public-body.public-menu-open .public-nav-wrap{transform:translateX(0)}.public-nav{display:grid}.public-nav a{padding:12px;border-bottom:1px solid #edf2ef}.public-nav a:after{display:none}.public-nav-close{position:absolute;right:18px;top:16px;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;background:#f2f6f4;border:0;border-radius:11px}.public-member-button{margin-top:auto;justify-content:center}.public-overlay{position:fixed;inset:0;z-index:90;display:block;visibility:hidden;opacity:0;background:rgba(3,28,18,.55);transition:opacity .2s,visibility .2s}.public-body.public-menu-open .public-overlay{visibility:visible;opacity:1}.public-hero{min-height:650px}.public-hero-image{inset:0}.public-hero-night{display:none}.public-hero-shade{clip-path:none;background:linear-gradient(90deg,rgba(3,39,25,.96),rgba(3,39,25,.72),rgba(3,39,25,.38))}.public-hero-content{min-height:650px}.public-hero-copy{width:min(690px,85%)}.public-about-grid{grid-template-columns:1fr 1fr}.public-insights{grid-column:1/-1}.public-insight-grid{grid-template-columns:repeat(2,1fr)}.public-community-grid{display:block}.public-community-copy{clip-path:none}.public-community-image{clip-path:none}.public-community-image img{min-height:360px}.public-news-grid{grid-template-columns:1fr}.public-news-card{display:grid;grid-template-columns:150px minmax(0,1fr);min-height:132px}.public-news-card img{width:150px;height:100%}.public-news-card>div{padding:14px 16px}.public-cta-card{align-items:flex-start;flex-direction:column}.public-footer-grid{grid-template-columns:repeat(2,1fr)}.public-footer-grid>div:last-child{grid-column:auto}.public-story-grid,.public-two-column{grid-template-columns:1fr}.public-story-image img{height:430px}.public-page-card-grid,.public-contact-grid{grid-template-columns:1fr}.public-gallery-grid{grid-template-columns:repeat(2,1fr)}.public-gallery-wide{grid-column:span 2}}
@media(max-width:620px){.public-container{width:calc(100% - 24px)}.public-brand{flex-basis:230px}.public-brand img{max-height:48px}.public-hero{min-height:690px}.public-hero-content{min-height:690px;align-items:flex-end}.public-hero-copy{width:100%;padding:60px 0 35px}.public-hero h1{font-size:clamp(2.65rem,14vw,4.2rem)}.public-hero-values{grid-template-columns:1fr;gap:13px}.public-actions .public-btn{width:100%}.public-section{padding:54px 0}.public-about-grid{grid-template-columns:1fr}.public-angle-image img{height:290px}.public-insight-grid{grid-template-columns:1fr}.public-insight-card{min-height:270px}.public-section-heading-row{align-items:flex-start;flex-direction:column}.public-community-copy,.public-news-panel{padding:30px 20px}.public-news-card{grid-template-columns:108px minmax(0,1fr);min-height:126px}.public-news-card img{width:108px;height:100%}.public-news-card>div{padding:12px 13px}.public-news-card h3{font-size:.94rem}.public-news-card p{font-size:.76rem}.public-cta-card{padding:30px 22px}.public-footer-grid{grid-template-columns:1fr}.public-footer-bottom{align-items:flex-start;flex-direction:column}.public-value-cards,.public-check-list{grid-template-columns:1fr}.public-story-image img{height:330px}.public-page-hero{min-height:330px;padding:48px 0}.public-gallery-grid{display:grid;grid-template-columns:1fr;grid-auto-rows:290px}.public-gallery-wide{grid-column:auto}.public-event-info{grid-template-columns:1fr}.public-event-number{width:58px;height:58px}}


/* ==========================================================================
   GDL-FN MITGLIEDERPORTAL 0.4.0
   Vollständig erneuertes, professionelles Portaldesign.
   ========================================================================== */

.portal-body {
  --portal-green-950: #062a1c;
  --portal-green-900: #083b27;
  --portal-green-800: #075332;
  --portal-green-700: #08723f;
  --portal-green-600: #0a8a4c;
  --portal-green-100: #e7f4ed;
  --portal-green-050: #f3f9f6;
  --portal-gold: #f0b323;
  --portal-red: #cf2634;
  --portal-ink: #17231c;
  --portal-muted: #68766e;
  --portal-line: #dce5df;
  --portal-surface: #ffffff;
  --portal-canvas: #f4f7f5;
  --portal-radius-sm: 10px;
  --portal-radius: 16px;
  --portal-radius-lg: 22px;
  --portal-shadow-sm: 0 5px 18px rgba(20, 50, 34, .06);
  --portal-shadow: 0 18px 45px rgba(20, 50, 34, .09);

  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
  overflow-x: hidden;
  color: var(--portal-ink);
  background:
    radial-gradient(circle at 92% 0%, rgba(240, 179, 35, .09), transparent 25rem),
    linear-gradient(180deg, #f8faf9 0, var(--portal-canvas) 34rem);
}

.portal-body *,
.portal-body *::before,
.portal-body *::after {
  box-sizing: border-box;
}

.portal-body a,
.portal-body button,
.portal-body input,
.portal-body textarea,
.portal-body select {
  font-family: Arial, Helvetica, sans-serif;
}

.portal-shell {
  display: block;
  min-height: 100vh;
  min-height: 100dvh;
}

/* ---------- Seitenleiste ---------- */

.portal-sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 60;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  width: 282px;
  height: 100vh;
  height: 100dvh;
  min-height: 0;
  overflow: hidden;
  color: #eef7f2;
  background:
    radial-gradient(circle at 15% -5%, rgba(255,255,255,.12), transparent 17rem),
    linear-gradient(180deg, var(--portal-green-800), var(--portal-green-950));
  border-right: 1px solid rgba(255,255,255,.08);
  box-shadow: 18px 0 42px rgba(6, 42, 28, .12);
}

.portal-sidebar-head {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 92px;
  padding: 16px;
  border-bottom: 1px solid rgba(255,255,255,.09);
}

.portal-brand {
  display: flex;
  align-items: center;
  min-width: 0;
  flex: 1;
  min-height: 58px;
  padding: 8px 10px;
  overflow: hidden;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 10px 26px rgba(0,0,0,.15);
}

.portal-brand img {
  display: block;
  width: 100%;
  max-height: 43px;
  object-fit: contain;
  object-position: left center;
}

.portal-sidebar-close {
  display: none;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  padding: 0;
  color: #fff;
  background: rgba(255,255,255,.11);
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 12px;
  font-size: 1.55rem;
  line-height: 1;
}

.portal-sidebar-scroll {
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 13px 12px 20px;
  overscroll-behavior-y: contain;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.portal-sidebar-scroll::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.portal-nav {
  display: grid;
  gap: 14px;
}

.portal-nav-group {
  display: grid;
  gap: 4px;
}

.portal-nav-label {
  padding: 7px 11px 5px;
  color: rgba(224, 242, 232, .58);
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.portal-nav-link,
.portal-logout {
  display: flex;
  align-items: center;
  gap: 11px;
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  color: rgba(242, 249, 245, .86);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 11px;
  text-decoration: none;
  text-align: left;
  font-weight: 700;
  font-size: .92rem;
  line-height: 1.2;
  transition:
    background .16s ease,
    border-color .16s ease,
    color .16s ease,
    transform .16s ease;
}

.portal-nav-link:hover,
.portal-logout:hover {
  color: #fff;
  background: rgba(255,255,255,.085);
  border-color: rgba(255,255,255,.07);
}

.portal-nav-link:hover {
  transform: translateX(2px);
}

.portal-nav-link.is-active {
  color: var(--portal-green-900);
  background: #fff;
  border-color: rgba(255,255,255,.45);
  box-shadow: 0 7px 19px rgba(0,0,0,.15);
}

.portal-nav-link.admin:not(.is-active) {
  color: #ffe7a2;
}

.portal-nav-link.admin.is-active {
  color: #68460b;
  background: linear-gradient(135deg, #fff8dd, #fff);
}

.ui-icon {
  width: 19px;
  height: 19px;
  flex: 0 0 auto;
}

.portal-sidebar-footer {
  position: relative;
  z-index: 2;
  padding: 13px 12px max(13px, env(safe-area-inset-bottom));
  background: rgba(2, 31, 20, .62);
  border-top: 1px solid rgba(255,255,255,.1);
  box-shadow: 0 -12px 26px rgba(3, 29, 19, .12);
}

.portal-account {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 10px;
  color: #fff;
  border-radius: 12px;
  text-decoration: none;
  transition: background .16s ease;
}

.portal-account:hover {
  background: rgba(255,255,255,.075);
}

.portal-account-copy {
  min-width: 0;
}

.portal-account-copy strong,
.portal-account-copy small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.portal-account-copy strong {
  color: #fff;
  font-size: .9rem;
}

.portal-account-copy small {
  margin-top: 2px;
  color: rgba(224, 242, 232, .64);
  font-size: .75rem;
}

.portal-account-arrow {
  color: rgba(255,255,255,.46);
}

.portal-account-arrow .ui-icon {
  width: 16px;
  height: 16px;
}

.portal-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  color: var(--portal-green-900);
  background: linear-gradient(145deg, #fff, #dcefe4);
  border-radius: 12px;
  box-shadow: 0 8px 18px rgba(0,0,0,.14);
  font-weight: 900;
  letter-spacing: .02em;
}

.portal-avatar-small {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  box-shadow: none;
}

.portal-sidebar-footer form {
  margin: 4px 0 0;
}

.portal-logout {
  min-height: 40px;
  margin-top: 1px;
  color: rgba(242, 249, 245, .78);
  cursor: pointer;
}

.portal-version {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 9px 10px 0;
  color: rgba(224, 242, 232, .4);
  font-size: .68rem;
}

.portal-version strong {
  color: rgba(224, 242, 232, .58);
}

/* ---------- Inhaltsbereich und Kopfleiste ---------- */

.portal-content {
  min-width: 0;
  min-height: 100vh;
  min-height: 100dvh;
  margin-left: 282px;
}

.portal-topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  min-height: 88px;
  padding: 17px clamp(20px, 3.5vw, 46px);
  background: rgba(248, 250, 249, .92);
  border-bottom: 1px solid rgba(215, 226, 219, .92);
  backdrop-filter: blur(16px);
}

.portal-topbar-title {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.portal-title-copy {
  min-width: 0;
}

.portal-kicker {
  display: block;
  margin-bottom: 2px;
  color: var(--portal-green-700);
  font-size: .67rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.portal-topbar h1 {
  margin: 0;
  color: var(--portal-ink);
  font-size: clamp(1.45rem, 2.6vw, 2rem);
  line-height: 1.12;
  letter-spacing: -.025em;
}

.portal-topbar p {
  margin: 5px 0 0;
  max-width: 760px;
  overflow-wrap: anywhere;
  color: var(--portal-muted);
  font-size: .91rem;
}

.portal-menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  padding: 0;
  color: var(--portal-green-800);
  background: #fff;
  border: 1px solid var(--portal-line);
  border-radius: 11px;
  box-shadow: var(--portal-shadow-sm);
}

.portal-topbar-actions {
  display: flex;
  align-items: center;
  gap: 9px;
  flex: 0 0 auto;
}

.portal-topbar-public,
.portal-topbar-profile {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 5px 10px;
  color: var(--portal-ink);
  background: #fff;
  border: 1px solid var(--portal-line);
  border-radius: 12px;
  text-decoration: none;
  font-size: .84rem;
  font-weight: 750;
  box-shadow: var(--portal-shadow-sm);
}

.portal-topbar-public .ui-icon {
  color: var(--portal-green-700);
}

.portal-page {
  width: min(1480px, 100%);
  margin: 0 auto;
  padding: clamp(20px, 3.2vw, 42px);
}

/* ---------- Allgemeine Portalflächen ---------- */

.portal-panel,
.portal-form-section,
.portal-table-card,
.portal-profile-card {
  min-width: 0;
  background: var(--portal-surface);
  border: 1px solid var(--portal-line);
  border-radius: var(--portal-radius-lg);
  box-shadow: var(--portal-shadow-sm);
}

.portal-panel {
  padding: clamp(20px, 2.5vw, 30px);
  margin-bottom: 20px;
}

.portal-panel-header,
.portal-table-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 20px;
}

.portal-panel-header h2,
.portal-form-section h2,
.portal-table-toolbar h2 {
  margin: 0;
  color: var(--portal-ink);
  font-size: clamp(1.18rem, 2vw, 1.48rem);
  letter-spacing: -.015em;
}

.portal-panel-header p,
.portal-form-section > p,
.portal-table-toolbar p {
  margin: 6px 0 0;
  color: var(--portal-muted);
}

.portal-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 10px 15px;
  color: #fff;
  background: var(--portal-green-700);
  border: 1px solid var(--portal-green-700);
  border-radius: 11px;
  text-decoration: none;
  font-size: .88rem;
  font-weight: 800;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

.portal-btn:hover {
  color: #fff;
  background: var(--portal-green-800);
  border-color: var(--portal-green-800);
  box-shadow: 0 8px 18px rgba(8, 114, 63, .16);
  transform: translateY(-1px);
}

.portal-btn.secondary,
.portal-btn.light {
  color: var(--portal-green-800);
  background: #fff;
  border-color: var(--portal-line);
}

.portal-btn.secondary:hover,
.portal-btn.light:hover {
  color: var(--portal-green-900);
  background: var(--portal-green-050);
  border-color: #bdd6c7;
}

.portal-btn.ghost {
  color: #fff;
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.22);
}

.portal-btn.danger {
  background: var(--portal-red);
  border-color: var(--portal-red);
}

.portal-btn.small {
  min-height: 36px;
  padding: 7px 12px;
  font-size: .8rem;
}

.portal-action-row {
  display: flex;
  align-items: center;
  gap: 9px;
  flex-wrap: wrap;
}

/* ---------- Dashboard ---------- */

.portal-welcome,
.portal-admin-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
  min-height: 210px;
  margin-bottom: 20px;
  padding: clamp(25px, 4vw, 44px);
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 90% 15%, rgba(255,255,255,.16), transparent 15rem),
    linear-gradient(135deg, var(--portal-green-700), var(--portal-green-950));
  border-radius: 24px;
  box-shadow: var(--portal-shadow);
}

.portal-welcome::after,
.portal-admin-hero::after {
  content: "";
  position: absolute;
  right: -60px;
  bottom: -85px;
  width: 240px;
  height: 240px;
  border: 36px solid rgba(240, 179, 35, .18);
  border-radius: 50%;
}

.portal-welcome > *,
.portal-admin-hero > * {
  position: relative;
  z-index: 1;
}

.portal-welcome .portal-kicker,
.portal-admin-hero .portal-kicker {
  color: #bce2cc;
}

.portal-welcome h2,
.portal-admin-hero h2 {
  margin: 7px 0 10px;
  color: #fff;
  font-size: clamp(1.8rem, 4vw, 3rem);
  letter-spacing: -.035em;
}

.portal-welcome p,
.portal-admin-hero p {
  max-width: 760px;
  margin: 0;
  color: rgba(242, 249, 245, .79);
  font-size: 1rem;
}

.portal-welcome-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 22px;
}

.portal-welcome-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 154px;
  min-height: 142px;
  padding: 18px;
  text-align: center;
  background: rgba(255,255,255,.11);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 20px;
  backdrop-filter: blur(8px);
}

.portal-welcome-card strong {
  font-size: 3rem;
  line-height: 1;
}

.portal-welcome-card span {
  margin-top: 8px;
  color: rgba(255,255,255,.77);
  font-size: .85rem;
}

.portal-metric-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 20px;
}

.portal-metric {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
  padding: 19px;
  background: #fff;
  border: 1px solid var(--portal-line);
  border-radius: var(--portal-radius);
  box-shadow: var(--portal-shadow-sm);
}

.portal-metric-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 47px;
  height: 47px;
  flex: 0 0 auto;
  color: var(--portal-green-700);
  background: var(--portal-green-100);
  border-radius: 13px;
}

.portal-metric-icon.gold {
  color: #895d00;
  background: #fff2c8;
}

.portal-metric small,
.portal-metric strong {
  display: block;
}

.portal-metric small {
  overflow: hidden;
  color: var(--portal-muted);
  font-size: .78rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.portal-metric strong {
  margin-top: 3px;
  font-size: 1.42rem;
  line-height: 1.1;
}

.portal-quick-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.portal-quick-grid-member {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portal-quick-card {
  display: block;
  min-width: 0;
  padding: 22px;
  color: var(--portal-ink);
  background: #fff;
  border: 1px solid var(--portal-line);
  border-radius: var(--portal-radius);
  text-decoration: none;
  box-shadow: var(--portal-shadow-sm);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.portal-quick-card:hover {
  color: var(--portal-ink);
  border-color: #b7d3c2;
  box-shadow: var(--portal-shadow);
  transform: translateY(-2px);
}

.portal-quick-card h3 {
  margin: 15px 0 7px;
  font-size: 1.05rem;
}

.portal-quick-card p {
  margin: 0;
  color: var(--portal-muted);
  font-size: .9rem;
}

/* ---------- Mitteilungen ---------- */

.portal-announcements {
  display: grid;
  gap: 12px;
}

.portal-announcement {
  padding: 18px 19px;
  background: #fff;
  border: 1px solid var(--portal-line);
  border-left: 4px solid var(--portal-green-700);
  border-radius: 13px;
}

.portal-announcement h3 {
  margin: 0;
  font-size: 1.02rem;
}

.portal-announcement time {
  display: block;
  margin-top: 5px;
  color: var(--portal-muted);
  font-size: .76rem;
}

.portal-announcement p {
  margin: 11px 0 0;
  color: #38463e;
}

/* ---------- Formulare ---------- */

.portal-form-section {
  padding: clamp(20px, 2.6vw, 30px);
}

.portal-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.portal-body label {
  display: block;
  margin: 0;
  color: #324238;
  font-size: .84rem;
  font-weight: 800;
}

.portal-body input,
.portal-body textarea,
.portal-body select {
  width: 100%;
  max-width: 100%;
  margin-top: 7px;
  padding: 11px 12px;
  color: var(--portal-ink);
  background: #fff;
  border: 1px solid #cbd8d0;
  border-radius: 10px;
  outline: none;
  font-size: .93rem;
  transition: border-color .15s ease, box-shadow .15s ease;
}

.portal-body input:focus,
.portal-body textarea:focus,
.portal-body select:focus {
  border-color: var(--portal-green-600);
  box-shadow: 0 0 0 3px rgba(10, 138, 76, .1);
}

.portal-body textarea {
  min-height: 135px;
  resize: vertical;
}

.portal-checkbox-row,
.portal-switch-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 0;
}

.portal-checkbox-row input {
  width: auto;
  margin: 0;
}

.portal-switch {
  position: relative;
  display: inline-flex;
  width: 46px;
  height: 26px;
  flex: 0 0 auto;
}

.portal-switch input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.portal-switch span {
  position: absolute;
  inset: 0;
  background: #cbd6d0;
  border-radius: 999px;
  cursor: pointer;
  transition: background .16s ease;
}

.portal-switch span::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.18);
  transition: transform .16s ease;
}

.portal-switch input:checked + span {
  background: var(--portal-green-700);
}

.portal-switch input:checked + span::after {
  transform: translateX(20px);
}

.portal-switch-copy strong,
.portal-switch-copy small {
  display: block;
}

.portal-switch-copy small {
  margin-top: 2px;
  color: var(--portal-muted);
}

/* ---------- Tabellen ---------- */

.portal-table-card {
  overflow: hidden;
}

.portal-table-toolbar {
  padding: 20px 22px 0;
}

.portal-table-wrap {
  width: 100%;
  overflow-x: auto;
  border-top: 1px solid var(--portal-line);
  scrollbar-width: thin;
  scrollbar-color: #b9c9c0 transparent;
}

.portal-table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
}

.portal-table th,
.portal-table td {
  padding: 13px 15px;
  text-align: left;
  vertical-align: middle;
  border-bottom: 1px solid #e8eeea;
}

.portal-table th {
  color: #5f7066;
  background: #f7f9f8;
  font-size: .71rem;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.portal-table tbody tr:hover {
  background: #fbfcfb;
}

.portal-table-name strong,
.portal-table-name small {
  display: block;
}

.portal-table-name small {
  margin-top: 3px;
  color: var(--portal-muted);
}

.portal-status,
.badge {
  display: inline-flex;
  align-items: center;
  min-height: 27px;
  padding: 4px 9px;
  border-radius: 999px;
  background: #edf2ef;
  color: #526159;
  font-size: .73rem;
  font-weight: 850;
  white-space: nowrap;
}

.portal-status.active,
.badge.success {
  color: #12603a;
  background: #e3f4ea;
}

.portal-status.invited,
.badge.warning {
  color: #795200;
  background: #fff1c7;
}

.portal-status.blocked,
.badge.danger {
  color: #922332;
  background: #fde8eb;
}

/* ---------- Dokumente ---------- */

.portal-filter {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
}

.portal-filter button {
  min-height: 34px;
  padding: 7px 11px;
  color: var(--portal-muted);
  background: #fff;
  border: 1px solid var(--portal-line);
  border-radius: 9px;
  cursor: pointer;
  font-weight: 750;
}

.portal-filter button.is-active {
  color: #fff;
  background: var(--portal-green-700);
  border-color: var(--portal-green-700);
}

.portal-document-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.portal-document-card {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 14px;
  min-width: 0;
  padding: 18px;
  background: #fff;
  border: 1px solid var(--portal-line);
  border-radius: var(--portal-radius);
  box-shadow: var(--portal-shadow-sm);
}

.portal-file-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  color: var(--portal-green-700);
  background: var(--portal-green-100);
  border-radius: 13px;
}

.portal-document-card h3 {
  margin: 0 0 5px;
  overflow-wrap: anywhere;
  font-size: .98rem;
}

.portal-document-card p {
  margin: 0;
  color: var(--portal-muted);
  font-size: .84rem;
}

.portal-document-meta {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 10px;
  color: var(--portal-muted);
  font-size: .72rem;
}

/* ---------- Veranstaltungen ---------- */

.portal-event-list {
  display: grid;
  gap: 12px;
}

.portal-event-card {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 16px;
  background: #fff;
  border: 1px solid var(--portal-line);
  border-radius: var(--portal-radius);
}

.portal-event-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 66px;
  color: var(--portal-green-800);
  background: var(--portal-green-100);
  border-radius: 12px;
}

.portal-event-date strong {
  font-size: 1.65rem;
  line-height: 1;
}

.portal-event-date span {
  margin-top: 4px;
  font-size: .72rem;
  font-weight: 850;
}

.portal-event-main h3 {
  margin: 3px 0 6px;
  font-size: 1rem;
}

.portal-event-main p {
  margin: 0;
  color: var(--portal-muted);
  font-size: .86rem;
}

.portal-event-action {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

.portal-event-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(290px, .65fr);
  align-items: start;
  gap: 20px;
}

.portal-event-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 20px 0;
}

.portal-event-facts div {
  padding: 12px 13px;
  background: var(--portal-green-050);
  border: 1px solid #e4ece7;
  border-radius: 11px;
}

.portal-event-facts dt {
  color: var(--portal-muted);
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.portal-event-facts dd {
  margin: 4px 0 0;
  font-weight: 750;
}

.portal-agenda {
  padding-left: 21px;
}

.portal-agenda li {
  padding: 4px 0;
}

.portal-response-options {
  display: grid;
  gap: 9px;
  margin: 17px 0;
}

.portal-response-options label {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 12px;
  background: #fff;
  border: 1px solid var(--portal-line);
  border-radius: 11px;
  cursor: pointer;
}

.portal-response-options label:hover {
  border-color: #afd1bd;
  background: var(--portal-green-050);
}

.portal-response-options input {
  width: auto;
  margin: 0;
  accent-color: var(--portal-green-700);
}

.portal-response-options strong,
.portal-response-options small {
  display: block;
}

.portal-response-options small {
  margin-top: 2px;
  color: var(--portal-muted);
}

/* ---------- Profile, Einstellungen und Hinweise ---------- */

.portal-profile-card {
  padding: clamp(20px, 2.5vw, 28px);
}

.portal-profile-meta,
.portal-settings-list {
  display: grid;
  gap: 10px;
}

.portal-callout,
.flash {
  padding: 13px 15px;
  margin-bottom: 14px;
  border: 1px solid;
  border-radius: 11px;
  overflow-wrap: anywhere;
}

.portal-callout > div {
  display: flex;
  gap: 12px;
  align-items: baseline;
  flex-wrap: wrap;
}

.portal-callout span {
  color: inherit;
  opacity: .78;
}

.portal-callout.success,
.flash.success {
  color: #155f39;
  background: #eaf6ef;
  border-color: #acd5bd;
}

.portal-callout.warning,
.flash.error {
  color: #8d2733;
  background: #fdecef;
  border-color: #e8b4bb;
}

.portal-callout.info,
.flash.info {
  color: #345775;
  background: #eef5fb;
  border-color: #bdd0df;
}

.portal-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 170px;
  padding: 25px;
  color: var(--portal-muted);
  text-align: center;
  background: #fafcfb;
  border: 1px dashed #cbd9d1;
  border-radius: 13px;
}

.portal-link-box,
code.linkbox {
  display: block;
  max-width: 100%;
  padding: 11px 12px;
  overflow-wrap: anywhere;
  word-break: break-word;
  color: var(--portal-green-900);
  background: var(--portal-green-050);
  border: 1px solid #dceae2;
  border-radius: 10px;
}

.muted {
  color: var(--portal-muted);
}

/* ---------- Mobile Navigation ---------- */

.portal-overlay {
  display: none;
}

@media (max-width: 1050px) {
  .portal-sidebar {
    width: 250px;
  }

  .portal-content {
    margin-left: 250px;
  }

  .portal-document-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .portal-topbar-public span {
    display: none;
  }
}

@media (max-width: 860px) {
  .portal-content {
    margin-left: 0;
  }

  .portal-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: min(88vw, 300px);
    height: 100vh;
    height: 100dvh;
    transform: translateX(-104%);
    transition: transform .22s ease;
    box-shadow: 24px 0 55px rgba(2, 28, 18, .3);
  }

  .portal-shell.is-open .portal-sidebar {
    transform: translateX(0);
  }

  .portal-overlay {
    position: fixed;
    inset: 0;
    z-index: 55;
    display: block;
    visibility: hidden;
    opacity: 0;
    background: rgba(8, 24, 16, .48);
    backdrop-filter: blur(3px);
    transition: opacity .2s ease, visibility .2s ease;
  }

  .portal-shell.is-open .portal-overlay {
    visibility: visible;
    opacity: 1;
  }

  .portal-sidebar-close,
  .portal-menu-toggle {
    display: inline-flex;
  }

  .portal-content {
    min-height: 100vh;
    min-height: 100dvh;
  }

  .portal-topbar {
    min-height: 78px;
    padding: 13px 16px;
  }

  .portal-topbar-actions {
    display: none;
  }

  .portal-page {
    padding: 18px 14px 32px;
  }

  .portal-metric-grid,
  .portal-quick-grid,
  .portal-quick-grid-member,
  .portal-document-grid,
  .portal-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .portal-event-detail-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .portal-title-copy p {
    display: none;
  }

  .portal-welcome,
  .portal-admin-hero {
    grid-template-columns: 1fr;
    min-height: auto;
    padding: 24px 20px;
  }

  .portal-welcome-card {
    width: 100%;
    min-height: 100px;
  }

  .portal-metric-grid,
  .portal-quick-grid,
  .portal-quick-grid-member,
  .portal-document-grid,
  .portal-form-grid {
    grid-template-columns: 1fr;
  }

  .portal-panel-header,
  .portal-table-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .portal-event-card {
    grid-template-columns: 62px minmax(0, 1fr);
  }

  .portal-event-action {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }

  .portal-event-facts {
    grid-template-columns: 1fr;
  }

  .portal-action-row .portal-btn,
  .portal-welcome-actions .portal-btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-sidebar,
  .portal-overlay,
  .portal-nav-link,
  .portal-btn,
  .portal-quick-card {
    transition: none !important;
  }
}


/* Portal 0.4.1 – feste Navigation auf Desktop
   Links bleibt das Menü dauerhaft sichtbar, nur der rechte Inhalt scrollt. */
@media (min-width: 861px) {
  .portal-sidebar {
    will-change: transform;
  }

  .portal-content {
    width: auto;
  }

  .portal-page [id] {
    scroll-margin-top: 106px;
  }
}


/* Portal 0.4.3 – stabile Karten im Bereich Neuigkeiten & Themen */
.public-community-grid>*{min-width:0}
.public-news-panel .public-section-heading-row{min-width:0}
.public-news-panel .public-section-heading-row>div{min-width:0}
.public-news-panel .public-section-heading-row h2{overflow-wrap:anywhere}
@media (min-width:901px) and (max-width:1260px){
  .public-news-card img{height:112px}
  .public-news-card>div{padding:12px 13px 14px}
  .public-news-card h3{font-size:.94rem}
  .public-news-card p{font-size:.76rem}
}


/* Portal 0.4.4 – eigene Bahn- und Regionalfotografie */
.public-region-section{background:linear-gradient(180deg,#fff,#f3f8f5);border-block:1px solid var(--line)}
.public-region-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:26px}
.public-region-heading>div{max-width:860px}
.public-region-heading h2,.public-gallery-heading h2{margin:0;font-size:clamp(2.1rem,4vw,4.2rem);line-height:1;letter-spacing:-.045em}
.public-region-heading p{max-width:760px;margin:14px 0 0;color:var(--muted);font-size:1.02rem}
.public-region-mosaic{display:grid;grid-template-columns:1.55fr .8fr .8fr;grid-template-rows:250px 250px;gap:15px}
.public-region-card{position:relative;display:block;min-width:0;overflow:hidden;color:#fff;background:#082c1d;border-radius:22px;text-decoration:none;box-shadow:var(--shadow-sm);isolation:isolate}
.public-region-card-main{grid-row:span 2;clip-path:polygon(0 0,96% 0,100% 100%,5% 100%)}
.public-region-card-lake{grid-column:2/4}
.public-region-card img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease,filter .45s ease}
.public-region-card:after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(2,25,16,.88))}
.public-region-card:hover img{transform:scale(1.035);filter:saturate(1.08)}
.public-region-card span{position:absolute;z-index:2;left:24px;right:24px;bottom:21px}
.public-region-card small,.public-region-card strong{display:block}
.public-region-card small{margin-bottom:4px;color:#b9e8ca;font-size:.68rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.public-region-card strong{max-width:620px;font-size:clamp(1.02rem,2vw,1.5rem);line-height:1.15}

.public-gallery-intro{background:linear-gradient(180deg,#fff,#f4f8f6)}
.public-gallery-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.65fr);align-items:end;gap:40px;margin-bottom:30px}
.public-gallery-heading p{margin:0;color:var(--muted);font-size:1rem}
.public-gallery-grid-modern{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:250px;grid-auto-flow:dense}
.public-gallery-grid-modern .public-gallery-item{grid-column:span 1;grid-row:span 1;border-radius:22px}
.public-gallery-grid-modern .public-gallery-wide{grid-column:span 2}
.public-gallery-grid-modern .public-gallery-tall{grid-row:span 2}
.public-gallery-grid-modern .public-gallery-hero-card{grid-column:span 2;grid-row:span 2}
.public-gallery-open{position:relative;display:block;width:100%;height:100%;padding:0;overflow:hidden;color:#fff;background:#062a1c;border:0;text-align:left;cursor:zoom-in}
.public-gallery-open img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease,filter .4s ease}
.public-gallery-open:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(2,20,13,.88));transition:background .25s ease}
.public-gallery-open:hover img,.public-gallery-open:focus-visible img{transform:scale(1.035);filter:saturate(1.08)}
.public-gallery-open:focus-visible{outline:4px solid rgba(9,144,78,.75);outline-offset:-4px}
.public-gallery-grid-modern figcaption{position:absolute;z-index:2;left:22px;right:22px;bottom:19px}
.public-gallery-grid-modern figcaption small,.public-gallery-grid-modern figcaption strong,.public-gallery-grid-modern figcaption span{display:block}
.public-gallery-grid-modern figcaption small{margin-bottom:4px;color:#b8e5c8;font-size:.65rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.public-gallery-grid-modern figcaption strong{font-size:1.08rem;line-height:1.15}
.public-gallery-grid-modern figcaption span{max-width:560px;margin-top:5px;color:rgba(255,255,255,.76);font-size:.78rem;line-height:1.38}
.public-gallery-grid-modern .public-gallery-item:after{display:none}
.public-lightbox{width:min(94vw,1500px);max-width:none;padding:0;overflow:visible;background:transparent;border:0}
.public-lightbox::backdrop{background:rgba(2,18,12,.88);backdrop-filter:blur(8px)}
.public-lightbox img{display:block;width:100%;max-height:85vh;object-fit:contain;background:#071a11;border-radius:18px;box-shadow:0 30px 90px rgba(0,0,0,.5)}
.public-lightbox p{margin:12px 50px 0;color:#fff;text-align:center;font-weight:750}
.public-lightbox-close{position:absolute;z-index:3;right:-10px;top:-14px;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;color:#073d27;background:#fff;border:0;border-radius:50%;font-size:1.65rem;line-height:1;cursor:pointer;box-shadow:0 9px 25px rgba(0,0,0,.28)}

@media(max-width:1100px){
  .public-region-mosaic{grid-template-columns:1.2fr 1fr;grid-template-rows:300px 230px 230px}
  .public-region-card-main{grid-row:span 2}
  .public-region-card-lake{grid-column:auto}
  .public-region-card-night{grid-column:1/-1}
  .public-gallery-grid-modern{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:800px){
  .public-region-heading,.public-gallery-heading{grid-template-columns:1fr;display:grid;align-items:start;gap:15px}
  .public-region-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:320px 220px 220px}
  .public-region-card-main{grid-column:1/-1;grid-row:auto;clip-path:none}
  .public-region-card-lake{grid-column:1/-1}
  .public-region-card-night{grid-column:auto}
  .public-gallery-grid-modern{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:260px}
  .public-gallery-grid-modern .public-gallery-hero-card{grid-column:span 2;grid-row:span 1}
  .public-gallery-grid-modern .public-gallery-tall{grid-row:span 1}
}
@media(max-width:560px){
  .public-region-mosaic{display:grid;grid-template-columns:1fr;grid-template-rows:none}
  .public-region-card,.public-region-card-main,.public-region-card-lake,.public-region-card-night{grid-column:auto;grid-row:auto;min-height:260px;clip-path:none}
  .public-gallery-grid-modern{display:grid;grid-template-columns:1fr;grid-auto-rows:285px}
  .public-gallery-grid-modern .public-gallery-item,.public-gallery-grid-modern .public-gallery-wide,.public-gallery-grid-modern .public-gallery-tall,.public-gallery-grid-modern .public-gallery-hero-card{grid-column:auto;grid-row:auto}
  .public-gallery-grid-modern figcaption span{display:none}
  .public-lightbox-close{right:4px;top:-54px}
  .public-lightbox p{margin-inline:10px}
}

/* ==========================================================================
   Portal 0.4.7 – Community- und Regionsbereich ohne Textbeschnitt
   ========================================================================== */

/* Das Gruppenmodul nutzt auf Desktop bewusst nur noch zwei Spalten.
   Die Meldungskarten liegen darunter über die volle Breite. */
.public-community-grid{
  grid-template-columns:minmax(390px,.82fr) minmax(0,1.18fr);
  align-items:stretch;
}

.public-community-copy{
  position:relative;
  isolation:isolate;
  overflow:visible;
  padding:48px 76px 48px 42px;
  clip-path:none;
}

.public-community-copy::after{
  content:"";
  position:absolute;
  z-index:0;
  top:0;
  right:-52px;
  width:92px;
  height:100%;
  background:linear-gradient(145deg,var(--green-800),var(--green-950));
  clip-path:polygon(0 0,100% 0,42% 100%,0 100%);
  pointer-events:none;
}

.public-community-copy>*{
  position:relative;
  z-index:1;
}

.public-community-copy h2{
  max-width:none;
  font-size:clamp(2rem,3.25vw,3.35rem);
  line-height:1.02;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}

.public-community-copy p{
  max-width:34ch;
}

.public-community-image{
  clip-path:none;
}

.public-community-image img{
  min-height:430px;
}

.public-news-panel{
  grid-column:1/-1;
  padding:32px 34px 36px;
  border-top:1px solid var(--line);
}

/* Die große Regionskarte bleibt modern, ihr Text wird aber nicht mehr von
   einer schrägen Maske angeschnitten. */
.public-region-card-main{
  clip-path:none;
}

.public-region-card span{
  left:30px;
  right:30px;
  bottom:24px;
}

.public-region-card small,
.public-region-card strong{
  max-width:100%;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}

@media(max-width:1100px){
  .public-community-grid{
    grid-template-columns:minmax(330px,.8fr) minmax(0,1.2fr);
  }

  .public-community-copy{
    padding:40px 62px 40px 32px;
  }

  .public-community-copy h2{
    font-size:clamp(1.9rem,4vw,2.75rem);
  }
}

@media(max-width:900px){
  .public-community-grid{
    display:block;
  }

  .public-community-copy{
    padding:34px 28px;
    overflow:hidden;
  }

  .public-community-copy::after{
    display:none;
  }

  .public-community-copy h2{
    max-width:14ch;
  }

  .public-community-image img{
    min-height:340px;
  }

  .public-news-panel{
    padding:28px 22px 32px;
  }

  .public-region-card span{
    left:22px;
    right:22px;
    bottom:20px;
  }
}

@media(max-width:620px){
  .public-community-copy{
    padding:30px 22px;
  }

  .public-community-copy h2{
    max-width:none;
    font-size:clamp(1.9rem,10vw,2.55rem);
  }

  .public-community-copy p{
    max-width:none;
  }
}


/* ==========================================================================\n   PORTAL 0.4.8 – MODERNER ZUGANGSBEREICH\n   ========================================================================== */
.auth-body{
  --auth-green:#075c33;
  --auth-green-dark:#043c24;
  --auth-ink:#14231a;
  --auth-muted:#66756c;
  --auth-line:#dce6df;
  --portal-green-700:#08723f;
  --portal-green-800:#075332;
  --portal-green-900:#083b27;
  --portal-line:#dce5df;
  min-height:100vh;
  min-height:100dvh;
  margin:0;
  overflow-x:hidden;
  color:var(--auth-ink);
  background:#f2f6f3;
  font-family:Inter,"Segoe UI",Arial,sans-serif;
}
.auth-body *,.auth-body *::before,.auth-body *::after{box-sizing:border-box}
.auth-layout{display:grid;grid-template-columns:minmax(420px,1.04fr) minmax(480px,.96fr);min-height:100vh;min-height:100dvh}
.auth-visual{position:relative;min-height:100vh;min-height:100dvh;overflow:hidden;background:#052f1e}
.auth-visual-image{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center}
.auth-visual-shade{position:absolute;inset:0;background:linear-gradient(135deg,rgba(3,49,29,.96) 5%,rgba(3,49,29,.77) 50%,rgba(3,35,23,.42)),linear-gradient(0deg,rgba(0,0,0,.52),transparent 48%)}
.auth-visual-content{position:relative;z-index:1;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;padding:clamp(28px,4vw,58px);color:#fff}
.auth-brand-card{display:flex;align-items:center;width:min(330px,72%);min-height:76px;padding:10px 14px;background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.58);border-radius:17px;text-decoration:none;box-shadow:0 18px 45px rgba(0,0,0,.2);backdrop-filter:blur(10px)}
.auth-brand-card img{display:block;width:100%;max-height:57px;object-fit:contain;object-position:left center}
.auth-visual-copy{width:min(650px,92%);margin:auto 0}
.auth-visual-kicker{display:flex;align-items:center;gap:10px;margin-bottom:14px;color:#c3ead1;font-size:.72rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}
.auth-visual-kicker::before{content:"";width:32px;height:2px;background:#f1b51d}
.auth-visual-copy h1{margin:0;color:#fff;font-size:clamp(2.6rem,5vw,5.2rem);line-height:.98;letter-spacing:-.055em}
.auth-visual-copy>p{max-width:620px;margin:22px 0 0;color:rgba(244,250,246,.8);font-size:clamp(1rem,1.35vw,1.16rem);line-height:1.7}
.auth-feature-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:32px}
.auth-feature{display:flex;align-items:flex-start;gap:10px;min-width:0;padding:13px 12px;color:rgba(255,255,255,.88);background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.13);border-radius:13px;font-size:.8rem;line-height:1.35;backdrop-filter:blur(7px)}
.auth-feature-icon{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:30px;height:30px;color:#0a6f3e;background:#fff;border-radius:9px}
.auth-feature-icon .ui-icon{width:17px;height:17px}
.auth-location{color:rgba(255,255,255,.58);font-size:.76rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.auth-panel{display:flex;align-items:center;justify-content:center;min-width:0;padding:clamp(28px,5vw,72px);background:radial-gradient(circle at 100% 0,rgba(240,179,35,.1),transparent 20rem),linear-gradient(180deg,#f8faf9,#eff4f1)}
.auth-card{width:min(100%,520px);padding:clamp(28px,4vw,46px);background:rgba(255,255,255,.96);border:1px solid rgba(211,224,216,.95);border-radius:26px;box-shadow:0 28px 70px rgba(10,55,34,.13)}
.auth-mobile-brand{display:none}
.auth-card>.portal-kicker{margin-bottom:7px;color:#08713f}
.auth-card h2{margin:0;color:#14231a;font-size:clamp(2rem,3.2vw,3rem);line-height:1.02;letter-spacing:-.04em}
.auth-intro{margin:14px 0 26px;color:var(--auth-muted);font-size:.98rem;line-height:1.65}
.auth-form{display:grid;gap:18px}
.auth-field{display:grid;gap:7px}
.auth-field>label,.auth-label-row label{margin:0;color:#26372d;font-size:.82rem;font-weight:850}
.auth-label-row{display:flex;align-items:center;justify-content:space-between;gap:14px}
.auth-label-row a{color:#08713f;font-size:.78rem;font-weight:800;text-decoration:none}
.auth-label-row a:hover{text-decoration:underline}
.auth-input-wrap{position:relative}
.auth-input-icon{position:absolute;left:14px;top:50%;display:flex;color:#728078;transform:translateY(-50%);pointer-events:none}
.auth-input-icon .ui-icon{width:19px;height:19px}
.auth-body .auth-input-wrap input{width:100%;height:52px;margin:0;padding:12px 14px 12px 46px;color:#17251c;background:#fff;border:1px solid #cbd8d0;border-radius:12px;outline:none;font-size:.95rem;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.auth-body .auth-input-wrap input:hover{border-color:#aebfb5}
.auth-body .auth-input-wrap input:focus{background:#fff;border-color:#078047;box-shadow:0 0 0 4px rgba(7,128,71,.11)}
.auth-field small{color:#7b8981;font-size:.75rem}
.auth-primary-button{width:100%;min-height:52px;margin-top:3px;justify-content:space-between;padding-inline:18px;border-radius:12px;font-size:.94rem}
.auth-primary-button .ui-icon{width:19px;height:19px}
.auth-security-note{display:flex;align-items:flex-start;gap:10px;margin-top:20px;padding:13px 14px;color:#55645b;background:#f3f7f4;border:1px solid #e0e9e3;border-radius:12px;font-size:.78rem;line-height:1.45}
.auth-security-note .ui-icon{flex:0 0 auto;width:18px;height:18px;margin-top:1px;color:#08713f}
.auth-card-footer{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:25px;padding-top:19px;color:#7a8880;border-top:1px solid #e5ece7;font-size:.75rem}
.auth-card-footer a{color:#5d6d63;text-decoration:none}
.auth-card-footer a:hover{color:#08713f;text-decoration:underline}
.auth-back-link{display:inline-flex;margin-top:19px;color:#08713f;font-size:.82rem;font-weight:800;text-decoration:none}
.auth-back-link:hover{text-decoration:underline}
.auth-welcome-note{margin:0 0 18px;padding:12px 14px;color:#17623a;background:#ebf7f0;border:1px solid #b8dbc6;border-radius:11px}
.auth-result{display:flex;align-items:flex-start;gap:14px;margin:2px 0 20px;padding:16px;border-radius:13px}
.auth-result>span{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:38px;height:38px;border-radius:11px}
.auth-result>span .ui-icon{width:21px;height:21px}
.auth-result strong{display:block;margin-bottom:4px}
.auth-result p{margin:0;font-size:.84rem;line-height:1.5}
.auth-result-success{color:#155e38;background:#eaf7ef;border:1px solid #afd9bf}
.auth-result-success>span{color:#fff;background:#0b7b45}
.auth-card .flash{margin:0 0 18px}

@media(max-width:1050px){
  .auth-layout{grid-template-columns:minmax(360px,.85fr) minmax(450px,1.15fr)}
  .auth-feature-list{grid-template-columns:1fr}
  .auth-feature{padding:11px 12px}
}
@media(max-width:820px){
  .auth-layout{display:block;min-height:100dvh}
  .auth-visual{display:none}
  .auth-panel{min-height:100dvh;padding:28px 18px}
  .auth-card{width:min(100%,540px);padding:30px 26px}
  .auth-mobile-brand{display:flex;align-items:center;width:min(290px,85%);min-height:66px;margin:0 0 30px;padding:8px 11px;background:#fff;border:1px solid #dbe6df;border-radius:14px;box-shadow:0 10px 30px rgba(8,72,42,.08)}
  .auth-mobile-brand img{display:block;width:100%;max-height:49px;object-fit:contain;object-position:left center}
}
@media(max-width:480px){
  .auth-panel{align-items:flex-start;padding:16px 12px}
  .auth-card{padding:24px 19px;border-radius:20px}
  .auth-card h2{font-size:2.05rem}
  .auth-intro{font-size:.91rem}
  .auth-label-row{align-items:flex-start;flex-direction:column;gap:4px}
}


/* Portal 0.5.0 – Redaktionsbereich und dynamische öffentliche Inhalte */
.portal-editor-hero{margin-bottom:18px}
.portal-editor-tabs{position:sticky;top:88px;z-index:30;display:flex;gap:8px;margin:0 0 20px;padding:10px;background:rgba(244,247,245,.94);border:1px solid var(--portal-line);border-radius:14px;backdrop-filter:blur(12px)}
.portal-editor-tabs a{display:inline-flex;align-items:center;min-height:40px;padding:8px 13px;color:var(--portal-green-800);background:#fff;border:1px solid var(--portal-line);border-radius:10px;text-decoration:none;font-weight:800}
.portal-editor-section{scroll-margin-top:155px;margin-bottom:26px}
.portal-editor-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);align-items:start;gap:20px}
.portal-editor-form{display:grid;gap:14px}
.portal-editor-fieldset{min-width:0;margin:0;padding:16px;border:1px solid var(--portal-line);border-radius:13px;background:#fafcfb}
.portal-editor-fieldset legend{padding:0 7px;color:var(--portal-green-800);font-weight:900}
.portal-editor-fieldset small,.portal-editor-form label small{display:block;margin-top:5px;color:var(--portal-muted);font-weight:500}
.portal-editor-preview{display:block;width:100%;max-height:320px;margin:0 0 12px;object-fit:cover;border-radius:13px;border:1px solid var(--portal-line)}
.portal-editor-list-panel{position:sticky;top:154px;max-height:calc(100dvh - 180px);overflow:auto;scrollbar-width:thin}
.portal-editor-list{display:grid;gap:12px}
.portal-editor-item{display:grid;grid-template-columns:130px minmax(0,1fr);gap:14px;overflow:hidden;background:#fff;border:1px solid var(--portal-line);border-radius:14px}
.portal-editor-item>img{width:130px;height:100%;min-height:160px;object-fit:cover}
.portal-editor-item-copy{min-width:0;padding:14px 14px 14px 0}
.portal-editor-item h3{margin:8px 0 5px;font-size:1rem}
.portal-editor-item p{margin:0 0 12px;color:var(--portal-muted);font-size:.82rem;line-height:1.42;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.portal-editor-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--portal-muted);font-size:.7rem;font-weight:800}
.portal-editor-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.portal-editor-gallery article{overflow:hidden;background:#fff;border:1px solid var(--portal-line);border-radius:14px}
.portal-editor-gallery img{display:block;width:100%;height:150px;object-fit:cover}
.portal-editor-gallery article>div{padding:12px}
.portal-editor-gallery h3{margin:8px 0 4px;font-size:.96rem}
.portal-editor-gallery p{margin:0 0 10px;color:var(--portal-muted);font-size:.76rem}
.portal-status.draft{color:#715000;background:#fff0c4}
.portal-status.published{color:#11603a;background:#e2f4e9}

.public-managed-list{display:grid;gap:22px}
.public-managed-card{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-sm)}
.public-managed-card>img{width:100%;height:100%;min-height:310px;object-fit:cover}
.public-managed-card>div{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:34px}
.public-managed-card small{margin-top:9px;color:var(--muted);font-weight:750}
.public-managed-card h2{margin:10px 0 9px;font-size:clamp(1.55rem,3vw,2.65rem);line-height:1.03;letter-spacing:-.035em}
.public-managed-card p{max-width:720px;margin:0 0 18px;color:var(--muted)}
.public-event-managed-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.public-event-managed-card{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-sm)}
.public-event-managed-card>img{display:block;width:100%;height:260px;object-fit:cover}
.public-event-managed-card>div{padding:24px}
.public-event-managed-card h2{margin:10px 0;font-size:1.55rem;line-height:1.1}
.public-event-managed-card p{color:var(--muted)}
.public-event-managed-facts{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
.public-event-managed-facts span{display:inline-flex;align-items:center;gap:5px;padding:7px 9px;color:var(--green-800);background:#edf6f1;border-radius:9px;font-size:.78rem;font-weight:800}
.public-article-hero{position:relative;min-height:520px;display:flex;align-items:flex-end;overflow:hidden;background:#052c1c}
.public-article-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.public-article-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,23,15,.08),rgba(2,23,15,.88))}
.public-article-hero-copy{position:relative;z-index:2;padding-block:80px;color:#fff}
.public-article-hero-copy h1{max-width:1050px;margin:15px 0 12px;font-size:clamp(2.5rem,6vw,5.7rem);line-height:.96;letter-spacing:-.05em}
.public-article-hero-copy p{max-width:760px;margin:0;color:rgba(255,255,255,.78);font-size:1.05rem}
.public-article-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:42px}
.public-article-body{min-width:0;padding:clamp(24px,4vw,48px);background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-sm)}
.public-rich-text{color:#283a30;font-size:1.03rem;line-height:1.82;overflow-wrap:anywhere}
.public-article-aside{position:sticky;top:105px;padding:24px;background:#edf6f1;border:1px solid #d8e9df;border-radius:18px}
.public-article-aside strong{display:block;margin:5px 0;font-size:1.3rem}
.public-article-aside p{color:var(--muted)}
.public-event-facts-public{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:28px}
.public-event-facts-public div{padding:14px;background:#f1f7f4;border-radius:12px}
.public-event-facts-public small,.public-event-facts-public strong{display:block}
.public-event-facts-public small{color:var(--muted);font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.public-empty-state{padding:70px 25px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:24px}
.public-empty-state h1{margin:0;font-size:clamp(2rem,4vw,3.5rem)}

@media(max-width:1050px){
  .portal-editor-grid{grid-template-columns:1fr}
  .portal-editor-list-panel{position:static;max-height:none}
  .public-managed-card{grid-template-columns:1fr}
  .public-managed-card>img{min-height:260px;height:320px}
  .public-article-layout{grid-template-columns:1fr}
  .public-article-aside{position:static}
}
@media(max-width:760px){
  .portal-editor-tabs{top:78px;overflow-x:auto;white-space:nowrap}
  .portal-editor-gallery{grid-template-columns:1fr}
  .portal-editor-item{grid-template-columns:96px minmax(0,1fr)}
  .portal-editor-item>img{width:96px;min-height:170px}
  .public-event-managed-grid{grid-template-columns:1fr}
  .public-event-facts-public{grid-template-columns:1fr}
  .public-article-hero{min-height:430px}
  .public-article-hero-copy{padding-block:50px}
}
