:root { --green:#7cb653; --ink:#292929; --muted:#70736f; --paper:#fafbf8; --line:#dfe4db; --card:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); font-family:Arial, Helvetica, sans-serif; background:var(--paper); line-height:1.5; }
a { color:inherit; }
.wrap { width:min(1600px, calc(100% - 160px)); margin:auto; }
.site-header { position:sticky; z-index:10; top:0; left:0; right:0; padding:17px 0; background:rgba(255,255,255,.97); border-bottom:1px solid var(--line); box-shadow:0 2px 13px rgba(31,39,28,.06); }
.nav { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand img { display:block; width:250px; max-width:45vw; height:auto; }
.nav-links { display:flex; gap:24px; align-items:center; color:var(--ink); font-size:.9rem; font-weight:700; }
.nav-links a { text-decoration:none; }
.nav-links a:hover { color:#599438; }
.resident-link { border:1px solid var(--green); border-radius:999px; padding:9px 15px; color:#477d2d; }
.resident-link:hover { color:#fff!important; background:var(--green); }
.hero { position:relative; min-height:850px; display:grid; align-items:end; overflow:hidden; color:#fff; background:#20251d; }
.hero::before { position:absolute; z-index:0; inset:-3%; content:''; background:linear-gradient(90deg, rgba(20,26,18,.8) 0%, rgba(20,26,18,.47) 47%, rgba(20,26,18,.08) 100%), url('../../images/garten.webp') center/cover; animation:hero-breathe 30s ease-in-out infinite alternate; }
@keyframes hero-breathe { from { transform:scale(1) translate3d(0,0,0); } to { transform:scale(1.035) translate3d(-.7%,.4%,0); } }
.hero::after { position:absolute; z-index:1; right:0; bottom:0; left:0; height:8px; content:''; background:linear-gradient(90deg,#e40303,#ff8c00,#ffed00,#008026,#004dff,#750787,#e40303); background-size:200% 100%; animation:pride-flow 18s linear infinite; }
@keyframes pride-flow { to { background-position:200% 0; } }
@media (prefers-reduced-motion:reduce) { .hero::before,.hero::after { animation:none; } }
.hero-inner { position:relative; z-index:2; width:min(1600px, calc(100% - 160px)); margin:0 auto; padding:150px 0 76px; }
.eyebrow { margin:0 0 14px; color:#d8efc8; text-transform:uppercase; letter-spacing:.13em; font-size:.76rem; font-weight:700; }
h1,h2,h3 { margin:0; line-height:1.07; letter-spacing:-.03em; }
h1 { font-size:clamp(3.25rem, 7.5vw, 6.6rem); max-width:760px; }
.hero-title-line { white-space:nowrap; }
.hero p:not(.eyebrow) { max-width:570px; margin:23px 0 30px; padding:12px 16px; border-left:3px solid var(--green); border-radius:0 12px 12px 0; background:rgba(17,22,15,.55); box-shadow:0 5px 18px rgba(0,0,0,.18); color:#fff; font-size:1.18rem; text-shadow:0 1px 2px rgba(0,0,0,.75); backdrop-filter:blur(7px); }
.button,.resident-link { text-decoration:none; }
.button { display:inline-block; padding:13px 22px; appearance:none; border:1px solid transparent; border-radius:999px; background:var(--green); color:#fff; font:inherit; font-weight:700; line-height:1.5; cursor:pointer; transition:.2s ease; }
.button:hover { background:#669f42; transform:translateY(-1px); }
.button--ghost { background:transparent; color:var(--green); border:1px solid var(--green); }
.button--ghost:hover { color:#fff; }
section { padding:96px 0; }
#zuhause { padding-top:66px; }
.intro { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:start; }
.section-label { display:inline-flex; width:36px; height:36px; border-radius:50%; align-items:center; justify-content:center; margin-bottom:20px; color:#fff; background:var(--green); font-size:.8rem; font-weight:700; }
h2 { font-size:clamp(2.1rem,4vw,3.45rem); }
.intro-text { padding-top:9px; color:var(--muted); font-size:1.1rem; }
.facts { margin-top:28px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.fact { min-height:99px; padding:17px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:#f3f5f0; }
.fact b { display:block; margin-bottom:6px; color:#599438; text-transform:uppercase; letter-spacing:.06em; font-size:.72rem; }
.fact span { font-size:.96rem; }
.spaces { padding-top:20px; }
.spaces-header { display:flex; justify-content:space-between; gap:25px; align-items:end; margin-bottom:30px; }
.spaces-header p { margin:0; color:var(--muted); max-width:380px; }
.gallery { display:grid; grid-template-columns:1.22fr .78fr; gap:14px; }
.gallery figure { position:relative; min-height:255px; margin:0; overflow:hidden; background:#ddd; }
.gallery figure:first-child { grid-row:span 2; min-height:524px; }
.gallery .gallery-feature { grid-column:1 / -1; min-height:430px; }
.gallery img { height:100%; width:100%; object-fit:cover; position:absolute; inset:0; transition:transform .4s; }
.gallery figure:hover img { transform:scale(1.025); }
.gallery figcaption { position:absolute; bottom:0; left:0; padding:28px 18px 14px; right:0; color:#fff; font-size:.86rem; font-weight:700; background:linear-gradient(transparent,rgba(0,0,0,.65)); }
.living { background:#292929; color:#fff; }
.living-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:8vw; align-items:center; }
.living p { color:#d1d3cf; font-size:1.06rem; }
.checklist { padding:0; margin:27px 0 0; list-style:none; }
.checklist li { padding:12px 0; border-bottom:1px solid #4c504a; }
.checklist li::before { content:'✓'; color:#9ad36f; font-weight:bold; margin-right:11px; }
.resident-card { background:#f0f3ed; color:var(--ink); padding:44px; }
.resident-card h3 { font-size:2rem; }
.resident-card p { color:var(--muted); font-size:1rem; }
.resident-card form { display:grid; gap:12px; margin-top:22px; }
input { width:100%; border:1px solid #cbd2c7; background:#fff; padding:13px; font:inherit; }
.note { display:block; margin-top:13px; color:#72766f; font-size:.78rem; }
.contact { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:center; }
.contact p { color:var(--muted); font-size:1.08rem; }
.contact-box { border:1px solid var(--line); background:#fff; padding:34px; }
.contact-box p { margin:0 0 16px; font-size:1rem; }
.contact-box strong { display:block; font-size:1.12rem; }
.contact-box .inclusion-note { margin:0 0 20px; color:#477d2d; font-size:.92rem; font-weight:700; }
footer { padding:30px 0; border-top:1px solid var(--line); color:#70736f; font-size:.8rem; }
.footer-content { display:flex; justify-content:space-between; gap:18px; align-items:center; }
.footer-links { display:flex; align-items:center; gap:14px; margin-left:auto; }
.footer-links a { padding-left:14px; border-left:1px solid #cfd4cc; color:#70736f; text-decoration:none; }
.footer-links a:hover { color:var(--green); }
.owner-link { color:#93978f; text-decoration:none; }
.owner-link:hover { color:var(--green); }
.rainbow-heart { display:inline-block; margin-right:5px; font-size:2rem; line-height:.5; vertical-align:-.18em; background:linear-gradient(90deg,#e40303,#ff8c00,#ffed00,#008026,#004dff,#750787); -webkit-background-clip:text; background-clip:text; color:transparent; }
.portal-page { background:#f8f9f6; color:var(--ink); }
.portal-page .site-header { background:#fff; }
@media (min-width:1501px) { .portal-page .site-header .wrap{width:calc(100% - 80px);max-width:none} }
.portal-page main { min-height:calc(100vh - 170px); }
.portal-nav { display:flex; gap:28px; align-items:center; font-size:.86rem; font-weight:700; }
.portal-nav a { text-decoration:none; }
.portal-nav-link { position:relative; padding:12px 0; }
.portal-nav-link:hover { color:#477d2d; }
.portal-nav-link::after { position:absolute; right:0; bottom:0; left:0; height:4px; content:''; border-radius:99px; background:#7cb653; transform:scaleX(0); transform-origin:left; transition:transform .18s ease; }
.portal-nav-link.is-active::after { transform:scaleX(1); }
.portal-nav-dropdown { position:relative; display:flex; align-items:center; gap:5px; }
.portal-nav-dropdown.is-active > .portal-nav-link::after { transform:scaleX(1); }
.portal-nav-dropdown-toggle { display:grid; width:22px; height:32px; padding:0; place-items:center; border:0; background:transparent; color:#596254; cursor:pointer; }
.portal-nav-dropdown-toggle svg { width:10px; height:7px; fill:none; stroke:currentColor; stroke-width:1.8; transition:transform .18s ease; }
.portal-nav-dropdown.is-open .portal-nav-dropdown-toggle svg { transform:rotate(180deg); }
.portal-nav-submenu { position:absolute; z-index:30; top:calc(100% + 7px); left:-18px; display:none; width:max-content; min-width:190px; padding:8px; border:1px solid var(--line); background:#fff; box-shadow:0 12px 28px rgba(31,39,28,.14); }
.portal-nav-submenu a { display:block; padding:10px 12px; color:var(--ink); white-space:nowrap; }
.portal-nav-submenu a.portal-nav-submenu-featured { margin-bottom:6px; border-bottom:1px solid var(--line); }
.portal-nav-submenu a:hover,.portal-nav-submenu a:focus-visible { background:#eff6ea; color:#477d2d; outline:0; }
.portal-nav-submenu a.is-active { background:#568c38; color:#fff; }
@media (min-width:1501px) {
  .portal-nav-submenu::before { position:absolute; right:0; bottom:100%; left:0; height:8px; content:''; }
  .portal-nav-dropdown:hover .portal-nav-submenu,.portal-nav-dropdown:focus-within .portal-nav-submenu,.portal-nav-dropdown.is-open .portal-nav-submenu{display:grid}
}

/* Verbrauch: Zählerstände und vergleichbare Tagesverläufe. */
.utility-page{background:#f7f8f5}
.utility-heading-icon svg{width:28px;height:28px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round}
.utility-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:28px}
.utility-summary-card{position:relative;display:flex;min-width:0;min-height:310px;padding:22px;border:0;border-top:6px solid var(--meter-color);border-radius:0;overflow:hidden;flex-direction:column;gap:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--meter-color) 11%,#fff),#fff 58%);box-shadow:0 12px 30px rgba(25,44,18,.09);color:inherit;text-decoration:none;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.utility-summary-card::before{display:none}
.utility-summary-card:hover{transform:translateY(-3px);border-color:var(--meter-color);box-shadow:0 15px 34px rgba(25,44,18,.14)}
.utility-summary-card-link{position:absolute;z-index:1;inset:0;border-radius:inherit}
.utility-summary-card-link:focus-visible{outline:3px solid color-mix(in srgb,var(--meter-color) 48%,transparent);outline-offset:-5px}
.utility-summary-edit{position:absolute;z-index:3;top:13px;right:13px;display:grid;width:34px;height:34px;padding:0;place-items:center;border:0;border-radius:9px;background:var(--meter-color);box-shadow:0 4px 12px color-mix(in srgb,var(--meter-color) 28%,transparent);color:#fff;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}
.utility-summary-edit:hover{transform:translateY(-1px) scale(1.04);box-shadow:0 6px 15px color-mix(in srgb,var(--meter-color) 38%,transparent)}
.utility-summary-edit:focus-visible{outline:3px solid color-mix(in srgb,var(--meter-color) 35%,transparent);outline-offset:3px}
.utility-summary-edit svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.utility-summary-head{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:13px}
.utility-summary-head>div{display:grid;min-width:0;padding-right:30px;gap:3px}
.utility-summary-head small{color:var(--meter-color);font-size:.76rem;font-weight:900;letter-spacing:.055em;text-transform:uppercase}
.utility-summary-head>div>span{color:var(--muted);font-size:.66rem;line-height:1.35}
.utility-summary-provider{display:flex;min-width:0;align-items:center;gap:7px;font-size:.82rem;line-height:1.25}
.utility-summary-provider img{width:auto;max-width:70px;height:20px;object-fit:contain;object-position:left center}
.utility-summary-reading{display:grid;min-width:0;gap:3px;padding-bottom:14px;border-bottom:1px solid color-mix(in srgb,var(--meter-color) 24%,var(--line))}
.utility-summary-reading>span,.utility-summary-costs dt,.utility-summary-balance span,.utility-summary-saving>span{color:var(--muted);font-size:.65rem;font-style:normal;font-weight:800;letter-spacing:.035em;text-transform:uppercase}
.utility-summary-reading strong{overflow:hidden;font-size:1.45rem;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}
.utility-summary-reading small{color:var(--muted);font-size:.69rem;line-height:1.4}
.utility-summary-costs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0}
.utility-summary-costs>div{display:grid;min-width:0;gap:4px;padding:11px;border:1px solid color-mix(in srgb,var(--meter-color) 26%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--meter-color) 9%,#fff)}
.utility-summary-costs dt,.utility-summary-costs dd{margin:0}
.utility-summary-costs dd{color:var(--meter-color);font-size:1.05rem;font-weight:900;white-space:nowrap}
.utility-summary-balance{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;margin-top:auto;padding:12px 13px;border:1px solid color-mix(in srgb,var(--meter-color) 25%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--meter-color) 10%,#fff)}
.utility-summary-balance.is-negative{background:color-mix(in srgb,var(--meter-color) 10%,#fff)}
.utility-summary-balance>div{display:grid;min-width:0;gap:2px}
.utility-summary-balance strong{font-size:.78rem;white-space:nowrap}
.utility-summary-balance small{color:var(--muted);font-size:.59rem;line-height:1.25}
.utility-summary-balance em{grid-column:1 / -1;margin-top:4px;padding-top:7px;border-top:1px solid rgba(65,105,45,.18);color:#477d2d;font-size:.76rem;font-style:normal;font-weight:900;text-align:right}
.utility-summary-balance.is-negative em{border-color:rgba(171,55,41,.18);color:#b43a2f}
.utility-summary-saving{display:grid;margin-top:auto;padding:12px 13px;border:1px solid color-mix(in srgb,var(--meter-color) 25%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--meter-color) 10%,#fff);gap:3px}
.utility-summary-saving strong{color:var(--meter-color);font-size:1rem}
.utility-summary-saving small{color:var(--muted);font-size:.67rem}
.utility-tariff-dialog{width:min(calc(100% - 40px),860px);max-height:none;overflow:visible}
.utility-tariff-dialog-card{display:block;height:auto;max-height:none;padding:0;overflow:visible}
.utility-tariff-dialog-header{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:17px;padding:24px 28px 20px;border-top:6px solid var(--meter-color);border-bottom:1px solid color-mix(in srgb,var(--meter-color) 25%,var(--line));background:color-mix(in srgb,var(--meter-color) 8%,#fff)}
.utility-tariff-dialog-header>div:nth-child(2){display:grid;gap:3px}.utility-tariff-dialog-header h2,.utility-tariff-dialog-header p{margin:0}.utility-tariff-dialog-header h2{font-size:1.55rem}.utility-tariff-dialog-header p:last-child{color:var(--muted);font-size:.78rem}.utility-tariff-dialog-header .portal-dialog-close{position:static;flex:0 0 auto}
.utility-tariff-provider-mark{display:grid;width:54px;height:54px;padding:7px;place-items:center;border:1px solid color-mix(in srgb,var(--meter-color) 30%,var(--line));border-radius:13px;background:#fff;color:var(--meter-color);font-size:1.35rem;font-weight:900}
.utility-tariff-provider-mark img{display:block;width:100%;height:100%;object-fit:contain}
.utility-tariff-dialog-scroll{overflow:visible;padding:26px 0 30px}
.utility-tariff-form{display:grid;width:100%;gap:20px}.utility-tariff-form fieldset{min-width:0;margin:0;padding:19px;border:1px solid color-mix(in srgb,var(--meter-color) 22%,var(--line));background:color-mix(in srgb,var(--meter-color) 5%,#fff)}.utility-tariff-form legend{padding:0 8px;color:var(--meter-color);font-size:1rem;font-weight:900}
.utility-tariff-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}.utility-tariff-fields--three{grid-template-columns:repeat(3,minmax(0,1fr))}.utility-tariff-fields label{display:grid;align-content:start;gap:7px;min-width:0;font-size:.82rem;font-weight:800}.utility-tariff-fields label small{color:var(--muted);font-size:.68rem;font-weight:400;line-height:1.35}.utility-tariff-fields input,.utility-tariff-fields select{width:100%;min-width:0;height:50px;padding:0 12px;border:1px solid #cbd2c7;border-radius:8px;background:#fff;font:inherit}.utility-tariff-fields input:focus,.utility-tariff-fields select:focus{border-color:var(--meter-color);outline:3px solid color-mix(in srgb,var(--meter-color) 18%,transparent)}
.utility-tariff-hint{margin:0;padding:13px 15px;border-left:4px solid var(--meter-color);background:color-mix(in srgb,var(--meter-color) 9%,#fff);color:var(--muted);font-size:.8rem;line-height:1.45}.utility-tariff-save{width:100%;background:var(--meter-color);border-color:var(--meter-color)}
.utility-meter-icon{display:grid;width:46px;height:46px;place-items:center;border-radius:50%;background:var(--meter-color);color:#fff}
.utility-meter-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.utility-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.utility-meter{min-width:0;padding:24px;scroll-margin-top:110px}
.utility-meter-heading{display:grid;grid-template-columns:50px minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:0;padding-bottom:18px;border-bottom:0}
.utility-unit{margin:0 0 3px;color:var(--meter-color);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.panel .utility-meter-heading h2{margin:0;font-size:1.733rem;line-height:1.05}
.utility-meter-heading p:last-child{margin:5px 0 0;color:var(--muted);font-size:.8rem;line-height:1.4}
.utility-period-switch{display:block;align-self:start}
.utility-period-switch select{width:150px;min-width:150px;height:44px;padding:0 40px 0 16px;border:1px solid var(--meter-color);border-radius:999px;appearance:none;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%2352604b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:12px 8px;color:#52604b;font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}
.utility-period-switch select:hover,.utility-period-switch select:focus-visible{outline:2px solid color-mix(in srgb,var(--meter-color) 28%,transparent);outline-offset:2px}
.utility-entry-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:12px;margin:18px 0 26px;padding:16px;background:#f5f7f3}
.utility-entry-form label{min-width:0}
.utility-entry-form input{background:#fff}
.portal-form.utility-entry-form>.button{display:flex;grid-column:1 / -1;width:100%;max-width:none;min-height:48px;margin:0;padding-inline:20px;box-sizing:border-box;align-items:center;justify-content:center;justify-self:stretch;white-space:nowrap}
.portal-form.utility-entry-form>.button:not(.button--ghost){border-color:var(--meter-color);background:var(--meter-color);color:#fff}
.portal-form.utility-entry-form>.button:not(.button--ghost):hover,.portal-form.utility-entry-form>.button:not(.button--ghost):focus-visible{filter:brightness(.9)}
.utility-chart-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:8px}
.utility-chart-heading h3{margin:0;font-size:1rem}
.utility-chart-heading p{margin:4px 0 0;color:var(--muted);font-size:.72rem}
.utility-chart-stats{display:grid;width:100%;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:8px;color:var(--meter-color);font-size:.7rem;font-weight:800;white-space:nowrap}
.utility-chart-stats span{display:flex;min-width:0;align-items:center;justify-content:center;padding:6px 9px;border:1px solid currentColor;border-radius:999px;line-height:1;text-align:center}
.utility-chart-stats [data-utility-stat="daily"],.utility-chart-stats [data-utility-stat="monthly"]{font-weight:400}
.utility-chart-stats [data-utility-stat="annual"]{font-weight:800}
.utility-chart{width:100%;overflow:hidden}
.utility-chart svg{display:block;width:100%;height:auto;min-height:210px}
.utility-chart-mobile{display:none!important}
.utility-chart-grid{stroke:#dfe4dc;stroke-width:1}
.utility-chart-time-grid{stroke:#edf0eb;stroke-width:1}
.utility-chart-line{fill:none;stroke:var(--meter-color);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.utility-chart-point{fill:var(--meter-color);stroke:var(--meter-color);stroke-width:1}
.utility-chart-bar{fill:var(--meter-color)}
.utility-chart-bar.is-partial{opacity:.46;stroke:var(--meter-color);stroke-width:1.5;stroke-dasharray:4 3}
.utility-chart-average-line{stroke:var(--meter-color);stroke-width:1;stroke-dasharray:4 3;opacity:.8}
.utility-chart-average-label{fill:var(--meter-color);font-family:Arial,sans-serif;font-size:9px;text-anchor:end}
.utility-chart-average-label--mobile{text-anchor:middle}
.utility-chart-x,.utility-chart-y{fill:#72796f;font-family:Arial,sans-serif;font-size:11px}
.utility-chart-x{text-anchor:middle}.utility-chart-y{text-anchor:end}
.utility-chart-legend{display:flex;flex-wrap:wrap;gap:7px 15px;margin:4px 0 12px;padding:0 8px;color:var(--muted);font-size:.7rem}
.utility-chart-legend span{display:inline-flex;align-items:center;gap:6px}
.utility-chart-legend i{display:block;width:18px;height:3px;border-radius:99px}
.utility-empty-chart{display:grid;min-height:210px;place-items:center;margin-top:10px;padding:22px;border:1px dashed #cfd6cb;background:#fafbfa;color:var(--muted);font-size:.82rem;text-align:center}
.portal-form.utility-entry-form>.utility-readings-open{display:flex;width:100%;border:1px solid var(--meter-color);background:#fff;color:var(--meter-color);align-items:center;justify-content:center;font-weight:400}
.portal-form.utility-entry-form>.utility-readings-open:hover,.portal-form.utility-entry-form>.utility-readings-open:focus-visible{background:var(--meter-color);color:#fff}
.portal-dialog.utility-readings-dialog{width:min(calc(100% - 40px),1120px);height:min(1190px,calc(100dvh - 24px));max-height:none}
.utility-readings-dialog-card{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%;max-height:none;padding:0;overflow:hidden}
.utility-readings-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 28px 20px;border-bottom:1px solid var(--line);background:#fff}
.utility-readings-dialog-header h2{margin:2px 0 0}
.utility-readings-dialog-header p:last-child{margin:6px 0 0;color:var(--muted);font-size:.78rem}
.utility-readings-dialog-header .portal-dialog-close{position:static;flex:0 0 auto}
.utility-readings-dialog-scroll{display:grid;grid-template-rows:auto minmax(0,1fr);gap:16px;min-height:0;overflow:hidden;padding:24px 28px 28px}
.utility-readings-dialog-scroll.is-unfiltered{grid-template-rows:minmax(0,1fr);gap:0}
.utility-reading-years{display:flex;flex-wrap:wrap;gap:8px}
.utility-reading-years button{min-width:68px;height:40px;padding:0 14px;border:1px solid var(--meter-color);border-radius:999px;background:#fff;color:var(--meter-color);font:inherit;font-size:.78rem;font-weight:800;cursor:pointer}
.utility-reading-years button:hover,.utility-reading-years button:focus-visible{outline:2px solid color-mix(in srgb,var(--meter-color) 28%,transparent);outline-offset:2px}
.utility-reading-years button.is-active{background:var(--meter-color);color:#fff}
.utility-readings-dialog .utility-table-wrap{height:100%;max-height:none}
.utility-table-wrap tr[hidden]{display:none!important}
.utility-readings{margin-top:16px;border-top:1px solid var(--line)}
.utility-readings summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 2px;cursor:pointer;font-size:.85rem;font-weight:800;list-style:none}
.utility-readings summary::-webkit-details-marker{display:none}
.utility-readings summary::after{content:'+';color:var(--meter-color);font-size:1.25rem;line-height:1}
.utility-readings[open] summary::after{content:'−'}
.utility-readings summary small{margin-left:auto;color:var(--muted);font-size:.7rem;font-weight:600}
.utility-table-wrap{max-width:100%;max-height:330px;overflow-x:hidden;overflow-y:auto;border:1px solid var(--line)}
.utility-table-wrap table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:.71rem}
.utility-table-wrap th,.utility-table-wrap td{padding:10px 7px;border-bottom:1px solid var(--line);overflow-wrap:anywhere;text-align:left;vertical-align:middle;white-space:normal}
.utility-table-wrap th{position:sticky;top:0;z-index:1;background:#f4f6f2;color:var(--muted);font-size:.64rem;letter-spacing:.04em;text-transform:uppercase}
.utility-table-wrap th:nth-child(1),.utility-table-wrap td:nth-child(1){width:12%}
.utility-table-wrap th:nth-child(2),.utility-table-wrap td:nth-child(2){width:15%}
.utility-table-wrap th:nth-child(3),.utility-table-wrap td:nth-child(3){width:16%}
.utility-table-wrap th:nth-child(4),.utility-table-wrap td:nth-child(4){width:14%}
.utility-table-wrap th:nth-child(5),.utility-table-wrap td:nth-child(5){width:14%}
.utility-table-wrap th:nth-child(6),.utility-table-wrap td:nth-child(6){width:12%}
.utility-table-wrap th:nth-child(7),.utility-table-wrap td:nth-child(7){width:6%}
.utility-table-wrap th:nth-child(n+3):nth-child(-n+7),.utility-table-wrap td:nth-child(n+3):nth-child(-n+7){text-align:right}
.utility-table-wrap table.has-kwh-column th:nth-child(1),.utility-table-wrap table.has-kwh-column td:nth-child(1){width:10%}
.utility-table-wrap table.has-kwh-column th:nth-child(2),.utility-table-wrap table.has-kwh-column td:nth-child(2){width:13%}
.utility-table-wrap table.has-kwh-column th:nth-child(3),.utility-table-wrap table.has-kwh-column td:nth-child(3){width:14%}
.utility-table-wrap table.has-kwh-column th:nth-child(n+4):nth-child(-n+7),.utility-table-wrap table.has-kwh-column td:nth-child(n+4):nth-child(-n+7){width:12%;text-align:right}
.utility-table-wrap table.has-kwh-column th:nth-child(8),.utility-table-wrap table.has-kwh-column td:nth-child(8){width:6%;text-align:right}
.utility-table-wrap tbody tr:last-child td{border-bottom:0}
.utility-table-wrap td:last-child{width:70px;padding:5px 14px 5px 25px}
.utility-table-wrap td:last-child form{display:flex;justify-content:flex-end}
.utility-table-wrap .utility-delete{width:31px;min-width:31px;height:31px;min-height:31px}
.utility-table-wrap .utility-delete::before{width:16px;height:16px;-webkit-mask-size:16px 16px;mask-size:16px 16px}
@media(max-width:1180px){.utility-grid{grid-template-columns:1fr}.utility-entry-form{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.utility-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.utility-summary{grid-template-columns:1fr}.utility-summary-card{min-height:0;padding:20px}.utility-summary-costs{grid-template-columns:repeat(2,minmax(0,1fr))}.utility-meter{padding:19px 16px}.utility-meter-heading{grid-template-columns:50px minmax(0,1fr)}.utility-period-switch{grid-column:1 / -1;width:100%;margin-top:3px}.utility-period-switch select{width:100%;min-width:0}.utility-entry-form{grid-template-columns:1fr;padding:15px}.utility-entry-form .button{width:100%}.utility-chart-heading{align-items:flex-start;flex-direction:column;gap:6px}.utility-chart{overflow:hidden}.utility-chart-desktop{display:none!important}.utility-chart-mobile{display:block!important;width:100%;height:auto;min-height:0}.portal-dialog.utility-readings-dialog{width:calc(100% - 18px);height:calc(100dvh - 18px)}.utility-readings-dialog-header{padding:20px 18px 16px}.utility-readings-dialog-header h2{font-size:1.45rem}.utility-readings-dialog-scroll{padding:16px 14px 20px}.utility-table-wrap{max-height:420px}.utility-readings-dialog .utility-table-wrap{max-height:none}.utility-table-wrap table{table-layout:auto}.utility-table-wrap thead{display:none}.utility-table-wrap tbody,.utility-table-wrap tr{display:block}.utility-table-wrap tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 12px;padding:10px;border-bottom:1px solid var(--line)}.utility-table-wrap tr:last-child{border-bottom:0}.utility-table-wrap td,.utility-table-wrap td:nth-child(n){display:grid;width:auto;padding:6px 0;border:0;overflow-wrap:anywhere}.utility-table-wrap td::before{margin-bottom:2px;color:var(--muted);content:attr(data-label);font-size:.58rem;font-weight:800;letter-spacing:.04em;text-align:left;text-transform:uppercase}.utility-table-wrap td:last-child{display:flex;align-items:flex-end;justify-content:flex-end}.utility-table-wrap td:last-child::before{content:none}.panel .utility-meter-heading h2{font-size:1.733rem}}
@media(max-width:760px){.portal-dialog.utility-tariff-dialog{width:calc(100% - 18px);height:auto;max-height:none;overflow:visible}.utility-tariff-dialog-card{height:auto;max-height:none;overflow:visible}.utility-tariff-dialog-header{grid-template-columns:46px minmax(0,1fr) auto;gap:12px;padding:18px 15px 15px}.utility-tariff-provider-mark{width:44px;height:44px}.utility-tariff-dialog-header h2{font-size:1.2rem}.utility-tariff-dialog-header p:last-child{display:none}.utility-tariff-dialog-scroll{overflow:visible;padding:19px 0 24px}.utility-tariff-fields,.utility-tariff-fields--three{grid-template-columns:1fr}.utility-tariff-form fieldset{padding:16px 13px}.utility-summary-edit{top:11px;right:11px}}
.portal-area-switch { padding:9px 14px; border:1px solid #9fc986; border-radius:999px; color:#477d2d; text-decoration:none; white-space:nowrap; }
.portal-area-switch:hover { border-color:#7cb653; background:#f3f8ef; }
.portal-user-name { display:grid; gap:2px; margin-left:-10px; padding:7px 18px; border-left:1px solid #cfd7ca; color:#477d2d; font-size:.78rem; font-weight:800; line-height:1.1; white-space:nowrap; }
.portal-user-name small { color:#7a8175; font-size:.63rem; font-weight:700; }
.portal-logout { margin-left:-10px; padding:12px 0 12px 18px; border-left:1px solid #cfd7ca; color:#5f654f; }
.portal-return-admin { margin:0 0 0 -10px; padding-left:18px; border-left:1px solid #cfd7ca; }
.portal-return-admin button { padding:9px 12px; border:1px solid #7cb653; border-radius:999px; background:#fff; color:#477d2d; font:inherit; font-weight:700; cursor:pointer; }
.portal-return-admin button:hover { background:#eff7e9; }
.portal-menu-toggle { display:none; align-items:center; gap:8px; border:1px solid #9fc986; border-radius:999px; padding:10px 13px; background:#fff; color:#477d2d; font:inherit; font-size:.82rem; font-weight:700; cursor:pointer; }
.portal-menu-toggle span,.portal-menu-toggle span::before,.portal-menu-toggle span::after { display:block; width:17px; height:2px; border-radius:3px; background:currentColor; content:''; }
.portal-menu-toggle span { position:relative; }
.portal-menu-toggle span::before { position:absolute; top:-5px; }
.portal-menu-toggle span::after { position:absolute; top:5px; }
.portal-auth { display:grid; min-height:calc(100vh - 160px); place-items:center; padding:80px 28px; }
.portal-auth-card { width:min(100%,560px); padding:48px; background:#fff; border:1px solid var(--line); box-shadow:0 12px 35px rgba(31,39,28,.09); }
.portal-auth-card h1 { margin-bottom:16px; font-size:clamp(2.3rem,4vw,3.8rem); }
.portal-auth-card > p:not(.eyebrow) { color:var(--muted); line-height:1.65; }
.portal-auth-secondary { margin-top:16px; padding:10px 16px; font-size:.82rem; }
.portal-form { display:grid; gap:15px; }
.portal-form label { display:grid; gap:7px; font-size:.88rem; font-weight:700; }
.portal-form label.portal-check { display:flex; align-items:center; gap:9px; font-weight:400; }
.portal-form label.portal-check input { width:auto; }
.portal-form label.portal-remember-login { align-items:flex-start; margin:2px 0; cursor:pointer; }
.portal-form .portal-remember-login input { width:18px; height:18px; margin:2px 0 0; padding:0; accent-color:var(--green); }
.portal-remember-login span { display:grid; gap:2px; }
.portal-remember-login small { color:var(--muted); font-size:.75rem; font-weight:400; line-height:1.4; }
.portal-form input,.portal-form textarea,.portal-form select { box-sizing:border-box; border:1px solid #cbd2c7; border-radius:8px; padding:13px; font:inherit; background:#fff; }
.password-field { position:relative; display:block; }
.password-field input { display:block; line-height:1.5; }
.portal-form .password-field input { padding-right:49px; }
.password-toggle { position:absolute; top:50%; right:8px; display:grid; width:34px; height:34px; padding:0; place-items:center; transform:translateY(-50%); border:0; border-radius:50%; background:transparent; color:#4f584a; cursor:pointer; }
.password-toggle:hover,.password-toggle:focus-visible { background:#eaf1e5; color:#477d2d; outline:none; }
.password-toggle svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.portal-form textarea { resize:vertical; }
.portal-form .button { width:max-content; min-height:46px; align-self:start; justify-self:start; border:0; cursor:pointer; font:inherit; line-height:1.2; }
.portal-form > .button:only-of-type { display:flex; width:100%; max-width:none; min-width:0; grid-column:1 / -1; align-items:center; justify-content:center; justify-self:stretch; box-sizing:border-box; text-align:center; white-space:normal; }
.portal-public-actions { display:flex; align-items:center; gap:12px; }
.portal-language-switcher { position:relative; z-index:20; color:#263331; font-size:.78rem; font-weight:800; direction:ltr; }
.portal-language-current { display:grid; grid-template-columns:22px auto 13px; gap:8px; align-items:center; min-height:38px; padding:6px 12px; border:1px solid #cfd8cf; border-radius:999px; background:#fff; color:inherit; cursor:pointer; font:inherit; font-weight:inherit; }
.portal-language-current img,.portal-language-options img { display:block; width:22px; height:15px; border:1px solid rgba(0,0,0,.18); object-fit:cover; }
.portal-language-current svg { width:12px; height:8px; fill:none; stroke:currentColor; stroke-width:1.8; transition:transform .18s ease; }
.portal-language-current[aria-expanded="true"] svg { transform:rotate(180deg); }
.portal-language-options { position:absolute; top:calc(100% + 7px); right:0; width:158px; overflow:hidden; border:1px solid #cfd8cf; background:#fff; box-shadow:0 10px 25px rgba(25,38,31,.16); }
.portal-language-options[hidden] { display:none; }
.portal-language-options button { display:grid; width:100%; grid-template-columns:22px minmax(0,1fr); gap:10px; align-items:center; padding:10px 12px; border:0; background:#fff; color:#263331; text-align:left; cursor:pointer; font:inherit; }
.portal-language-options button:hover,.portal-language-options button:focus-visible { background:#eef6e8; outline:0; }
.portal-language-options button[aria-current="true"] { background:#568c38; color:#fff; }
.portal-form .button--ghost { border:1px solid var(--green); }
.portal-small { margin:16px 0 0; color:#71776c; font-size:.82rem; line-height:1.5; }
.portal-flash { box-sizing:border-box; margin-top:24px; padding:14px 18px; border-left:4px solid var(--green); background:#eff7e9; }
.portal-flash--error { border-left-color:#bd4134; background:#fff0ed; }
.portal-hero { padding:88px 0 76px; background:#292929; color:#fff; }
.portal-hero--admin,.portal-page--admin-bewohner-php .portal-subhero--alert,.portal-page--admin-auswertung-php .portal-subhero--alert,.portal-page--admin-unterlagen-php .portal-subhero--alert,.portal-page--admin-schaeden-php .portal-subhero--alert,.portal-page--admin-historie-php .portal-subhero--alert,.portal-page--admin-web-push-php .portal-subhero--alert { background-color:#292929; background-image:repeating-linear-gradient(135deg,transparent 0,transparent 7px,#393939 7px,#393939 8px); }
.portal-hero h1 { max-width:900px; font-size:clamp(3rem,6vw,6.2rem); }
.resident-greeting { display:flex; flex-wrap:wrap; align-items:baseline; gap:.18em; }
.resident-person-name { direction:ltr; unicode-bidi:isolate; }
.portal-hero p:not(.eyebrow) { max-width:650px; margin:18px 0 0; color:#dde0d8; font-size:1.14rem; }
.portal-content { padding:80px 0 116px; }
.portal-start-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.portal-start-card { display:grid; grid-template-columns:58px minmax(0,1fr) 24px; gap:20px; align-items:center; min-height:150px; padding:28px; border:1px solid var(--line); background:#fff; color:inherit; text-decoration:none; transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.portal-start-card:hover { transform:translateY(-3px); border-color:#a7ca93; box-shadow:0 10px 27px rgba(31,39,28,.09); }
.portal-start-card h2 { margin:0 0 8px; font-size:1.55rem; }
.portal-start-card p { margin:0; color:var(--muted); line-height:1.5; }
.portal-start-card > b { color:#5a9638; font-size:1.6rem; font-weight:400; }
.portal-icon,.portal-heading-icon,.portal-rule-icon { display:grid; place-items:center; border-radius:50%; background:#7cb653; color:#fff; font-weight:800; }
.portal-icon { width:52px; height:52px; font-size:1.6rem; }
.portal-subhero { padding:72px 0; background:#292929; color:#fff; }
.portal-subhero .wrap { display:flex; align-items:center; gap:24px; }
.portal-heading-icon { flex:0 0 auto; width:66px; height:66px; font-size:2.2rem; }
.portal-subhero h1 { font-size:clamp(3rem,6vw,5.4rem); }
.portal-subhero p:not(.eyebrow) { margin:14px 0 0; color:#dde0d8; font-size:1.1rem; }
@media (min-width:761px) { .devices-subhero h1 { max-width:none; font-size:clamp(2.8rem,5vw,5.4rem); white-space:nowrap; } }
.portal-card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.portal-card { min-height:180px; padding:27px; border:1px solid var(--line); background:#fff; color:inherit; text-decoration:none; transition:transform .2s ease, box-shadow .2s ease; }
.portal-card:hover { transform:translateY(-3px); box-shadow:0 10px 27px rgba(31,39,28,.09); }
.portal-card span,.portal-section > .section-label { display:inline-grid; width:30px; height:30px; place-items:center; border-radius:50%; background:var(--green); color:#fff; font-size:.72rem; font-weight:700; }
.portal-card h2 { margin:20px 0 8px; font-size:1.55rem; }
.portal-card p { margin:0; color:var(--muted); line-height:1.5; }
.portal-section { padding:94px 0 0; }
.portal-section > h2 { margin:14px 0 26px; font-size:clamp(2.2rem,4vw,4rem); }
.portal-lead { max-width:850px; margin:0 0 28px; color:var(--muted); font-size:1.08rem; line-height:1.65; }
.portal-upload-panel { display:grid; grid-template-columns:minmax(250px,.76fr) minmax(0,1.7fr); align-items:center; gap:30px; margin:0 0 34px; padding:24px 28px; }
.portal-upload-panel h2 { margin:0; font-size:clamp(1.7rem,2.25vw,2.3rem); }
.portal-upload-panel .portal-small { margin:8px 0 0; }
.portal-upload-form { grid-template-columns:minmax(180px,1fr) minmax(250px,1.3fr) auto; align-items:end; gap:12px; }
.portal-upload-form .button { align-self:end; margin:0; white-space:nowrap; }
.portal-info-grid,.portal-rules,.portal-guide-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.portal-info-grid { grid-template-columns:repeat(4,1fr); }
.portal-info-grid article,.portal-rules article,.portal-guide-grid article,.panel { padding:26px; border:1px solid var(--line); background:#fff; }
.portal-info-grid h3,.portal-rules h3,.portal-guide-grid h3,.panel h3 { margin-bottom:12px; font-size:1.2rem; }
.portal-info-grid h2,.portal-rules h2,.portal-guide-grid h2,.panel h2 { margin:0 0 12px; font-size:1.3rem; }
.portal-info-grid p,.portal-rules p,.portal-guide-grid p,.portal-guide-grid li,.panel p { color:var(--muted); line-height:1.58; }
.portal-rule-icon { width:34px; height:34px; margin-bottom:16px; font-size:1rem; }
.together-subhero { background-color:#22372f; background-image:radial-gradient(circle at 84% 20%,rgba(124,182,83,.2),transparent 30%),linear-gradient(135deg,#22372f,#2b4338); }
.together-heading-icon { background:#f0b85b; color:#22372f; }
.together-heading-icon svg { width:36px; height:36px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.together-page { padding-top:62px; background:#f5f6f2; }
.together-intro { max-width:930px; margin:0 0 36px; }
.together-intro h2 { max-width:850px; font-size:clamp(2.2rem,4vw,4rem); }
.together-intro > p:last-child { max-width:760px; margin:18px 0 0; color:var(--muted); font-size:1.06rem; line-height:1.65; }
.together-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.together-card { position:relative; overflow:hidden; border:1px solid var(--line); background:#fff; box-shadow:0 10px 28px rgba(35,49,40,.055); }
.together-card-copy { padding:38px; }
.together-card h2 { margin:0 0 14px; font-size:clamp(2rem,3.3vw,3.55rem); }
.together-card p { margin:0; color:#606760; line-height:1.62; }
.together-card .together-lead { margin-bottom:12px; color:#303630; font-size:1.08rem; font-weight:700; line-height:1.5; }
.together-card-topline { display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.together-kicker { margin:0!important; color:inherit!important; text-transform:uppercase; letter-spacing:.1em; font-size:.72rem; font-weight:900; }
.together-icon { display:grid; flex:0 0 auto; width:48px; height:48px; place-items:center; border-radius:50%; background:currentColor; }
.together-icon svg { width:26px; height:26px; fill:none; stroke:#fff; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.together-card--smoking { grid-column:1 / -1; display:grid; grid-template-columns:calc(50% + 3px) minmax(360px,1fr); min-height:320px; border-color:#91b7cc; border-top:6px solid #277fa8; background:linear-gradient(135deg,#fff 38%,#edf6fa); }
.together-card--smoking .together-photo { position:relative; min-height:320px; margin:0; overflow:hidden; }
.together-card--smoking .together-photo::after { position:absolute; inset:0; content:''; background:linear-gradient(90deg,transparent 65%,rgba(16,35,43,.2)); }
.together-card--smoking .together-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.together-card--smoking figcaption { position:absolute; z-index:1; right:22px; bottom:20px; left:22px; width:max-content; max-width:calc(100% - 44px); padding:9px 14px; border-radius:999px; background:rgba(24,42,49,.82); color:#fff; font-size:.76rem; font-weight:800; backdrop-filter:blur(6px); }
.together-card--smoking .together-card-copy { display:flex; flex-direction:column; justify-content:center; color:#27759a; }
.together-card--smoking .together-icon { color:#277fa8; }
.together-place { display:inline-flex; width:max-content; max-width:100%; margin-top:24px; padding:10px 16px; border-radius:999px; background:#277fa8; color:#fff; font-size:.86rem; }
.together-card--kitchen { grid-column:1 / -1; display:grid; grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr); gap:46px; align-items:center; padding:42px; border-color:#d8c8a7; border-top:6px solid #b27a28; background:linear-gradient(125deg,#f6eddb,#fffdf8 56%); }
.together-kitchen-intro { color:#8a6223; }
.together-kitchen-intro h2 { max-width:540px; }
.together-icon--kitchen { color:#b27a28; }
.together-kitchen-points { display:grid; gap:11px; }
.together-kitchen-point { display:grid; grid-template-columns:46px minmax(0,1fr); gap:15px; align-items:start; padding:17px 18px; border:1px solid #e3d6bc; background:rgba(255,255,255,.8); }
.together-kitchen-point > span { display:grid; width:42px; height:42px; place-items:center; border-radius:50%; background:#fff4dc; color:#a96f1e; }
.together-kitchen-point svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.together-kitchen-point h3 { margin:1px 0 5px; font-size:1.08rem; letter-spacing:-.015em; }
.together-kitchen-point p { font-size:.9rem; line-height:1.5; }
.together-card--doors { grid-column:1 / -1; display:grid; grid-template-columns:230px minmax(0,1fr); align-items:stretch; border-color:#e7baaa; background:linear-gradient(120deg,#fff8f3,#fff 58%); }
.together-door-visual { display:grid; min-height:365px; place-items:center; background:#d96946; color:#fff; }
.together-door-visual svg { width:145px; height:145px; fill:none; stroke:currentColor; stroke-width:4.5; stroke-linecap:round; stroke-linejoin:round; }
.together-card--doors .together-card-copy { align-self:center; padding:44px 48px; color:#ae442b; }
.together-card--doors .together-lead { max-width:820px; }
.together-card--doors .together-card-copy > p:not(.together-kicker) { max-width:980px; }
.together-steps { display:flex; flex-wrap:wrap; gap:9px; margin-top:24px; }
.together-steps span { padding:8px 13px; border:1px solid #e5b6a6; border-radius:999px; background:#fff; color:#a7442d; font-size:.78rem; font-weight:800; }
.together-card--compact { min-height:310px; padding:31px; }
.together-card--compact h2 { margin-bottom:13px; font-size:clamp(1.7rem,2.6vw,2.55rem); }
.together-card--compact .together-card-topline { margin-bottom:24px; }
.together-card--quiet { border-top:6px solid #6b649c; color:#5c568d; background:linear-gradient(145deg,#f6f4fb,#fff 58%); }
.together-card--quiet .together-icon { color:#6b649c; }
.together-card--shared { border-top:6px solid #6da34d; color:#56843c; background:linear-gradient(145deg,#f2f8ee,#fff 58%); }
.together-card--shared .together-icon { color:#6da34d; }
.together-card--chat { border-top:6px solid #318f7e; color:#277768; background:linear-gradient(145deg,#eef8f5,#fff 58%); }
.together-card--chat .together-icon { color:#318f7e; }
.together-icon--whatsapp svg { fill:none; stroke:#fff; stroke-width:1.65; }
.together-card--visitors { border-top:6px solid #d99c35; color:#a66d15; background:linear-gradient(145deg,#fff8e9,#fff 58%); }
.together-card--visitors .together-icon { color:#d99c35; }
.wlan-card { position:relative; min-height:198px; padding-right:132px !important; }
.wlan-card p { margin:0; }
.wlan-card .wifi-copy-button { margin-top:17px; padding:9px 13px; font:inherit; font-size:.78rem; cursor:pointer; }
.wlan-card img { position:absolute; right:20px; bottom:20px; width:94px; height:94px; padding:5px; border:1px solid var(--line); background:#fff; }
.important-page { padding-top:56px; }
.important-overview { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.important-card { display:grid; grid-template-columns:58px minmax(0,1fr); gap:22px; align-items:start; min-height:214px; padding:28px; border:1px solid var(--line); background:#fff; }
.important-card h2 { margin:0 0 10px; font-size:clamp(1.45rem,2vw,2rem); }
.important-card p { margin:0; color:var(--muted); line-height:1.55; }
.important-card a { overflow-wrap:anywhere; }
.important-kicker { margin:0 0 7px!important; color:#568c38!important; text-transform:uppercase; letter-spacing:.09em; font-size:.7rem; font-weight:800; }
.important-icon { display:grid; width:52px; height:52px; place-items:center; border-radius:50%; background:#eef6e8; color:#568c38; }
.important-icon svg { width:27px; height:27px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.important-icon--red { background:#fff0ee; color:#b7463b; }
.important-card--emergency .important-kicker { color:#b7463b!important; }
.important-card-note { margin-top:7px!important; font-size:.87rem; }
.important-card--documents > div > p:not(.important-kicker) { max-width:570px; margin-bottom:16px; }
.important-action { margin-top:17px; padding:10px 16px; font-size:.84rem; }
.emergency-numbers { display:flex; flex-wrap:wrap; gap:9px; margin:16px 0 18px; }
.emergency-numbers a { display:flex; gap:9px; align-items:center; padding:8px 16px; border:1px solid #e2b7b2; border-radius:999px; background:#fff8f7; color:inherit; text-decoration:none; }
.emergency-numbers strong { color:#b43f34; font-size:1.25rem; }
.emergency-numbers span { color:var(--muted); font-size:.76rem; }
.emergency-numbers .emergency-number--police { border-color:#9fc4dd; background:#f1f8fc; }
.emergency-numbers .emergency-number--police strong { color:#2474a8; }
.wifi-feature { display:grid; grid-template-columns:minmax(0,1fr) 230px; gap:36px; align-items:center; margin-top:16px; padding:34px; border:1px solid #a9cfe5; background:linear-gradient(120deg,#edf7fc 0,#fff 62%); }
.wifi-feature-copy { display:grid; grid-template-columns:58px minmax(0,1fr); gap:22px; align-items:start; }
.important-icon--wifi { background:#0875b8; color:#fff; }
.wifi-feature .important-kicker { color:#0875b8!important; }
.wifi-feature h2 { margin:0 0 9px; font-size:clamp(1.8rem,3vw,2.8rem); }
.wifi-feature p:not(.important-kicker) { margin:0; color:var(--muted); }
.wifi-copy-button { margin-top:20px; border:0; background:#0875b8; cursor:pointer; font:inherit; }
.wifi-copy-button:hover { background:#05659f; }
.wifi-qr { display:grid; justify-items:center; gap:8px; padding-left:35px; border-left:1px solid #d4e6f1; color:var(--muted); font-size:.72rem; font-weight:700; }
.wifi-qr img { width:160px; height:160px; padding:8px; border:1px solid var(--line); background:#fff; }
.broadcast-card { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr); gap:38px; align-items:center; margin-top:16px; padding:34px; border:1px solid #a9d1d5; background:linear-gradient(120deg,#eef8f8 0,#fff 68%); }
.broadcast-copy { display:grid; grid-template-columns:58px minmax(0,1fr); gap:22px; align-items:start; }
.important-icon--broadcast { background:#168894; color:#fff; }
.broadcast-card h2 { margin:0 0 13px; font-size:clamp(1.8rem,3vw,2.8rem); }
.broadcast-card p:not(.important-kicker) { max-width:780px; margin:0 0 11px; color:var(--muted); line-height:1.55; }
.broadcast-button { margin-top:10px; background:#168894; }
.broadcast-button:hover { background:#0f747e; }
.broadcast-number { display:grid; justify-items:center; gap:5px; padding:28px 22px; border:1px solid #b9dadd; background:#fff; text-align:center; }
.broadcast-number span { color:#157b85; text-transform:uppercase; letter-spacing:.09em; font-size:.72rem; font-weight:800; }
.broadcast-number strong { color:#202525; font-size:clamp(2rem,4vw,3.8rem); line-height:1.1; letter-spacing:.04em; white-space:nowrap; }
.broadcast-number small { max-width:280px; margin-top:8px; color:var(--muted); line-height:1.4; }
.streaming-guide { margin-top:34px; padding:30px; border:1px solid var(--line); background:#eef0ed; }
.streaming-header { display:grid; grid-template-columns:58px minmax(0,1fr); gap:22px; align-items:start; }
.streaming-header-icon { display:grid; width:58px; height:58px; place-items:center; border-radius:50%; background:#20251f; color:#fff; }
.streaming-header-icon svg { width:30px; height:30px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.streaming-header h2 { margin:0 0 8px; font-size:clamp(1.9rem,3.6vw,3.35rem); line-height:1.05; }
.streaming-header p:not(.important-kicker) { margin:0; color:var(--muted); font-size:1.02rem; }
.streaming-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:22px; }
.streaming-card { display:grid; min-height:112px; place-items:center; padding:18px; border:1px solid #d9ddd6; background:#fff; }
.streaming-card > img { display:block; width:min(100%,180px); height:58px; place-self:center; object-fit:contain; }
.transit-guide { margin-top:34px; padding:0; }
.transit-header { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:25px 30px; background:#f0d722; color:#171717; }
.transit-header .important-kicker { color:#454219!important; }
.transit-header h2 { font-size:clamp(2rem,4vw,3.5rem); }
.transit-header > strong { font-size:clamp(2rem,4vw,3.4rem); letter-spacing:-.06em; }
.transit-list { display:grid; gap:12px; padding:16px 0 0; }
.transit-row { display:grid; grid-template-columns:116px minmax(0,1fr) 62px; gap:22px; align-items:center; min-height:112px; padding:18px 24px; border:1px solid var(--line); background:#fff; color:inherit; text-decoration:none; transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease; }
.transit-row:hover { transform:translateY(-2px); border-color:#a9ca93; background:#fbfdf9; box-shadow:0 8px 20px rgba(31,39,28,.08); }
.transit-row:focus-visible { border-color:#7cb653; outline:3px solid rgba(124,182,83,.28); outline-offset:2px; }
.transit-row h3 { margin:0 0 5px; font-size:1.35rem; }
.transit-row p { margin:0; color:var(--muted); }
.transit-row--disrupted { border-color:#d8cce7; background:linear-gradient(90deg,#faf7fd 0,#fff 38%); }
.transit-row--disrupted:hover { border-color:#8064a9; background:linear-gradient(90deg,#f5effa 0,#fff 42%); }
.transit-disruption { display:flex; flex-wrap:wrap; align-items:center; gap:7px 12px; margin-top:11px!important; color:#654786!important; font-size:.82rem; font-weight:700; }
.transit-disruption strong { display:inline-flex; align-items:center; padding:6px 11px; border-radius:999px; background:#8064a9; color:#fff; font-size:.75rem; line-height:1.2; letter-spacing:.035em; text-transform:uppercase; }
.transit-disruption span { color:#654786; }
.line-badge { display:inline-flex; width:max-content; min-width:92px; min-height:54px; align-items:center; justify-content:center; padding:5px 13px; color:#fff; font-size:2rem; font-weight:900; line-height:1; }
.line-badge--222 { background:#f5a623; }
.line-badge--s25 { border-radius:999px; background:#149447; }
.line-badge--s1 { border-radius:999px; background:#d75c9e; }
.line-badge--u6 { background:#8064a9; }
.transit-mode-logo { justify-self:end; width:58px; height:58px; object-fit:contain; }
.transit-mode-logo--u { border-radius:0; }
.bvg-app-card { display:grid; grid-template-columns:88px minmax(240px,1fr) auto; gap:24px; align-items:center; margin-top:16px; padding:24px; border:1px solid var(--line); background:#eef0ed; }
.bvg-app-icon { width:88px; height:88px; border-radius:18px; object-fit:cover; box-shadow:0 5px 14px rgba(0,0,0,.12); }
.bvg-app-copy h3 { margin:0 0 6px; font-size:1.5rem; }
.bvg-app-copy p:not(.important-kicker) { max-width:520px; margin:0; color:var(--muted); }
.app-store-buttons { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; }
.app-store-button { display:flex; min-width:176px; min-height:56px; gap:10px; align-items:center; padding:8px 15px; border:1px solid #000; border-radius:9px; background:#090909; color:#fff; text-decoration:none; transition:transform .18s ease,background .18s ease; }
.app-store-button:hover { transform:translateY(-2px); background:#252525; }
.app-store-button > img { flex:0 0 auto; width:29px; height:29px; object-fit:contain; }
.app-store-button span { display:grid; line-height:1; }
.app-store-button small { margin-bottom:3px; font-size:.62rem; }
.app-store-button strong { font-size:1.08rem; letter-spacing:-.02em; }
.nearby-guide { padding:72px 0 0; }
.nearby-heading { margin-bottom:24px; }
.nearby-heading h2 { margin:0 0 10px; font-size:clamp(2.2rem,4vw,3.8rem); }
.nearby-heading > p:not(.important-kicker) { margin:0; color:var(--muted); font-size:1.02rem; }
.nearby-market-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.nearby-card { display:grid; grid-template-columns:92px minmax(0,1fr) 24px; gap:20px; align-items:center; min-height:138px; padding:22px 24px; border:1px solid var(--line); background:#fff; color:inherit; text-decoration:none; transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease; }
.nearby-card:hover,.hospital-card:hover { transform:translateY(-2px); border-color:#a9ca93; box-shadow:0 8px 20px rgba(31,39,28,.08); }
.nearby-card:focus-visible,.hospital-card:focus-visible { border-color:#7cb653; outline:3px solid rgba(124,182,83,.28); outline-offset:2px; }
.nearby-logo { display:grid; width:92px; height:76px; overflow:hidden; padding:9px; place-items:center; border:1px solid #e5e8e2; background:#fff; }
.nearby-logo img { display:block; width:auto!important; height:auto!important; max-width:100%!important; max-height:100%!important; place-self:center; object-fit:contain; }
.nearby-logo--square img { width:56px!important; height:56px!important; max-width:56px!important; max-height:56px!important; }
.pharmacy-grid { margin-top:16px; }
.pharmacy-card { grid-template-columns:150px minmax(0,1fr) 24px; }
.pharmacy-card .nearby-logo { width:150px; height:76px; padding:8px; }
.pharmacy-card--square { grid-template-columns:92px minmax(0,1fr) 24px; }
.pharmacy-card .nearby-logo--square { width:92px; padding:9px; }
.nearby-copy { display:grid; gap:3px; }
.nearby-copy small,.hospital-copy small { color:#568c38; text-transform:uppercase; letter-spacing:.08em; font-size:.68rem; font-weight:800; }
.nearby-copy strong { font-size:1.45rem; line-height:1.1; }
.nearby-copy span,.hospital-copy span { color:var(--muted); font-size:.82rem; }
.nearby-card > b { justify-self:end; color:#5d963b; font-size:1.35rem; }
.hospital-card { display:grid; grid-template-columns:62px minmax(0,1fr) minmax(160px,260px) auto; gap:24px; align-items:center; min-height:148px; margin-top:16px; padding:26px 30px; border:1px solid #e2b4b4; background:linear-gradient(110deg,#fff3f3 0,#fff 65%); color:inherit; text-decoration:none; transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease; }
.hospital-card:hover { border-color:#cf7e7e; }
.hospital-symbol { position:relative; display:grid; width:58px; height:58px; place-items:center; border-radius:50%; background:#c53f47; color:#fff; font-size:0; line-height:1; }
.hospital-symbol::before,.hospital-symbol::after { position:absolute; width:30px; height:7px; border-radius:1px; background:#fff; content:""; }
.hospital-symbol::after { transform:rotate(90deg); }
.hospital-copy { display:grid; gap:4px; }
.hospital-copy small { color:#ad3138; }
.hospital-copy strong { font-size:clamp(1.45rem,2.3vw,2.2rem); line-height:1.08; }
.hospital-card > img { display:block; width:100%; max-height:72px; object-fit:contain; }
.hospital-card > b { justify-self:end; padding:11px 16px; border-radius:999px; background:#c53f47; color:#fff; font-size:.8rem; white-space:nowrap; }
.portal-guide-grid { grid-template-columns:repeat(2,1fr); }
.portal-guide-grid ul { padding-left:18px; margin:0; }
.portal-guide-grid .alexa-feature { grid-column:1 / -1; overflow:hidden; padding:0; border-color:#9eddf6; border-top:6px solid #1597cf; background:linear-gradient(135deg,#eefaff 0,#fff 62%); }
.alexa-kicker { margin:0!important; color:#1585bb!important; text-transform:uppercase; letter-spacing:.11em; font-size:.72rem; font-weight:900; }
.alexa-areas { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:20px; padding:28px 34px 34px; }
.alexa-area { display:flex; overflow:hidden; flex-direction:column; padding:0; border:1px solid #b9def0; background:rgba(255,255,255,.88); }
.alexa-area-heading { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:15px 20px; background:#1597cf; color:#fff; }
.alexa-area-heading h3 { margin:0; font-size:1.32rem; }
.alexa-area-heading span { font-size:.88rem; white-space:nowrap; }
.alexa-living-layout { display:grid; flex:1; grid-template-rows:1fr auto; }
.portal-guide-grid .alexa-command-list { display:grid; flex:1; grid-template-rows:repeat(4,minmax(58px,1fr)); gap:0; padding:0; list-style:none; }
.alexa-command-list li { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:58px; padding:12px 20px; border-top:1px solid #d8edf6; }
.alexa-command-list li:first-child { border-top:0; }
.alexa-command-list strong { color:#222; font-size:1.08rem; }
.alexa-command-list span { color:#59676e; text-align:right; }
.alexa-group-command { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:110px; padding:20px 24px; border-top:1px solid #b9def0; background:#f4fbfe; text-align:center; }
.alexa-group-command strong { color:#126f9d; font-size:1.45rem; }
.alexa-group-command span { margin-top:7px; color:#59676e; line-height:1.4; }
.house-subhero { background:#263c32; background-image:radial-gradient(circle at 84% 18%,rgba(124,182,83,.2),transparent 31%),linear-gradient(135deg,#22342c,#30483b); }
.house-heading-icon svg { width:34px; height:34px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.house-topic-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:20px; }
.house-topic { --topic:#6da34d; overflow:hidden; padding:31px; border:1px solid var(--line); border-top:6px solid var(--topic); background:#fff; box-shadow:0 10px 28px rgba(35,49,40,.055); }
.house-topic--daily { --topic:#648c70; background:linear-gradient(145deg,#f1f7f3,#fff 58%); }
.house-topic--kitchen { --topic:#b27a28; background:linear-gradient(145deg,#fff7e9,#fff 58%); }
.house-topic--waste { --topic:#e47c2d; order:-1; grid-column:1 / -1; background:linear-gradient(145deg,#fff5ec,#fff 58%); }
.house-topic--garden { --topic:#559b58; background:linear-gradient(145deg,#eff8ef,#fff 58%); }
.house-topic--fire { --topic:#c94b43; background:linear-gradient(145deg,#fff1ef,#fff 58%); }
.house-topic-header { display:grid; grid-template-columns:52px minmax(0,1fr); gap:16px; align-items:center; margin-bottom:25px; color:var(--topic); }
.house-topic-icon { display:grid; width:52px; height:52px; place-items:center; border-radius:50%; background:var(--topic); color:#fff; }
.house-topic-icon svg { width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.house-kicker { margin:0 0 5px!important; color:inherit!important; text-transform:uppercase; letter-spacing:.1em; font-size:.7rem; font-weight:900; }
.house-topic h2 { margin:0; font-size:clamp(1.75rem,2.6vw,2.7rem); }
.house-point-list { display:grid; gap:10px; }
.house-point-list > div,.house-waste-notes > div:not(.house-action-row) { padding:16px 17px; border:1px solid #e1e6df; background:rgba(255,255,255,.82); }
.house-point-list strong,.house-waste-notes strong { display:block; margin-bottom:4px; color:#292929; font-size:1rem; }
.house-point-list p,.house-waste-layout p,.house-waste-notes p { margin:0; color:var(--muted); line-height:1.55; }
.house-waste-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:28px; align-items:start; }
.house-bin-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:20px; }
.house-bin { display:grid; grid-template-columns:53% 47%; grid-template-rows:48px 1fr 62.667px; height:190.667px; overflow:hidden; padding:20px 18px 6px; border:1px solid #dce1da; border-top:12px solid #333; background:#fff; }
.house-bin-heading { display:flex; grid-column:1 / -1; align-items:center; gap:13.333px; }
.house-bin-heading > span:last-child { display:flex; min-width:0; flex-direction:column; }
.house-bin b { font-size:21.333px; line-height:1.05; }
.house-bin small { margin-top:5.333px; color:var(--muted); font-size:13.333px; line-height:1.15; }
.house-bin-icon { display:grid; width:48px; height:48px; flex:0 0 48px; place-items:center; border-radius:50%; background:currentColor; }
.house-bin-icon svg { width:23.333px; height:23.333px; fill:none; stroke:#fff; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.house-bin--rest .house-bin-icon { color:#333; }
.house-bin--bio .house-bin-icon { color:#934d37; }
.house-bin--paper .house-bin-icon { color:#4078c7; }
.house-bin--recycling .house-bin-icon { color:#dca900; }
.house-bin-date-label { display:block; grid-column:1; grid-row:3; align-self:stretch; min-width:0; padding:6.667px 10px 0 0; color:var(--muted); font-size:10.667px; font-weight:900; letter-spacing:.045em; line-height:1.1; text-transform:uppercase; white-space:nowrap; }
.house-bin time { display:block; grid-column:2; grid-row:3; min-width:0; align-self:stretch; padding:6.667px 0 0 16.667px; border-left:1px solid #aaa; color:#2d2d2d; white-space:nowrap; }
.house-bin time span { display:block; margin-bottom:4.667px; font-size:10.667px; font-weight:900; letter-spacing:.04em; line-height:1; text-transform:uppercase; }
.house-bin time strong { display:block; max-width:100%; font-size:37.333px; font-weight:900; letter-spacing:-.055em; line-height:.82; }
.house-bin--bio { border-top-color:#934d37; }
.house-bin--paper { border-top-color:#4078c7; }
.house-bin--recycling { border-top-color:#f0bd1b; }
.house-waste-notes { display:grid; gap:10px; }
.house-waste-notes > .house-waste-note { display:grid; grid-template-columns:54px minmax(0,1fr); gap:17px; align-items:start; padding:22px; border-top:5px solid var(--note-color); background:linear-gradient(145deg,var(--note-bg),#fff 68%); }
.house-waste-note--bins { --note-color:#e47c2d; --note-bg:#fff2e8; }
.house-waste-note--glass { --note-color:#278a96; --note-bg:#eaf7f8; }
.house-waste-note-icon { display:grid; width:54px; height:54px; place-items:center; border-radius:50%; background:var(--note-color); color:#fff; }
.house-waste-note-icon svg { width:29px; height:29px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.house-waste-notes .house-waste-note strong { margin:2px 0 7px; font-size:1.22rem; }
.house-waste-note .house-action-row { margin-top:17px; }
.house-app-promo { margin-top:28px; padding:26px; border:1px solid #e2dfd9; border-top:6px solid #e47c2d; background:linear-gradient(145deg,#fff8f1,#fff 62%); }
.house-app-promo-heading { display:grid; grid-template-columns:68px minmax(0,1fr); gap:18px; align-items:center; margin-bottom:24px; }
.house-app-promo-heading > img { display:block; width:68px; height:68px; border-radius:18px; box-shadow:0 7px 18px rgba(101,62,31,.13); }
.house-app-promo-heading .house-kicker { color:#d66e25!important; }
.house-app-promo-heading h3 { margin:0; color:#2c302e; font-size:clamp(1.8rem,2.8vw,2.7rem); }
.house-app-promo-heading p:last-child { margin:7px 0 0; color:var(--muted); }
.house-app-promo-body { display:grid; grid-template-columns:190px minmax(0,1fr); gap:25px; align-items:stretch; }
.house-app-qr { display:grid; align-content:center; justify-items:center; padding:14px; border:1px solid #dce1da; background:#fff; color:#6a706c; text-decoration:none; }
.house-app-qr img { display:block; width:160px; height:160px; }
.house-app-qr span { margin-top:8px; font-size:.72rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.house-app-platforms { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.house-app-platforms > div { padding:18px; border:1px solid #e1e6df; background:rgba(255,255,255,.9); }
.house-app-platforms strong { display:block; margin-bottom:6px; color:#292929; }
.house-app-platforms p { margin:0; color:var(--muted); font-size:.9rem; line-height:1.52; }
.house-app-platforms p b { color:#3d4441; }
.house-app-open { grid-column:1 / -1; align-self:end; justify-self:start; background:#e47c2d; }
.house-app-open:hover { background:#c96720; }
.house-action-row { display:flex; flex-wrap:wrap; gap:9px; margin-top:5px; }
.house-button { display:inline-flex; min-width:245px; align-items:center; justify-content:center; padding:11px 17px; text-align:center; }
.house-button--orange { background:#e47c2d; }
.house-button--orange:hover { background:#c96720; }
.house-button--blue { background:#3b78b5; }
.house-button--blue:hover { background:#2e6396; }
.device-placeholder { display:grid; grid-template-columns:52px minmax(0,1fr); gap:20px; align-items:start; min-height:220px; padding:36px; border-top:6px solid #6d86a6; background:linear-gradient(145deg,#f1f5fa,#fff 62%); }
.portal-guide-grid + .device-placeholder { margin-top:20px; }
.device-placeholder .portal-rule-icon { margin:0; background:#6d86a6; }
.device-placeholder h2 { margin:0 0 10px; font-size:clamp(1.8rem,3vw,3rem); }
.device-placeholder p:last-child { margin:0; }
.device-accordion { display:grid; gap:20px; overflow-anchor:none; }
.device-accordion-item { --device-accent:#199da1; overflow:hidden; scroll-margin-top:110px; border:1px solid #d3dfdc; background:#fff; box-shadow:0 9px 26px rgba(30,50,43,.055); }
.device-accordion-item--tv { --device-accent:#2c2c2c; }
.device-accordion-item--alexa { --device-accent:#1597cf; }
.device-accordion-item--laundry { --device-accent:#557aa4; }
.device-accordion-item--coffee { --device-accent:#87583d; }
.device-accordion-item--microwave { --device-accent:#c8762d; }
.device-accordion-item--oven { --device-accent:#a64d45; }
.device-accordion-item--whirlpool { --device-accent:#268f9c; }
.device-accordion-item--doorlock { --device-accent:#c23b35; }
.device-accordion-item--roomba { --device-accent:#57a631; }
.device-accordion-item--soap { --device-accent:#496f9c; }
.device-accordion-summary { display:grid; grid-template-columns:64px minmax(0,1fr) auto; gap:21px; align-items:center; min-height:132px; padding:28px 32px; border-top:6px solid var(--device-accent); background:linear-gradient(135deg,#f5faf9,#fff 65%); cursor:pointer; list-style:none; }
.device-accordion-summary::-webkit-details-marker { display:none; }
.device-accordion-summary:hover { background:linear-gradient(135deg,#edf7f5,#fff 65%); }
.device-accordion-item--alexa .device-accordion-summary { background:linear-gradient(135deg,#eefaff,#fff 65%); }
.device-accordion-item--alexa .device-accordion-summary:hover { background:linear-gradient(135deg,#e5f7fe,#fff 65%); }
.device-accordion-icon { display:grid; width:64px; height:64px; place-items:center; border-radius:50%; background:var(--device-accent); color:#fff; }
.device-accordion-icon svg { width:34px; height:34px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.device-accordion-copy { display:grid; gap:4px; min-width:0; }
.device-accordion-copy > small { color:var(--device-accent); text-transform:uppercase; letter-spacing:.11em; font-size:.7rem; font-weight:900; }
.device-accordion-copy > strong { color:#263331; font-size:clamp(1.8rem,3vw,3rem); line-height:1.05; letter-spacing:-.03em; }
.device-accordion-copy > span { color:#68716e; font-size:.94rem; }
.device-accordion-action { display:flex; align-items:center; gap:12px; color:var(--device-accent); font-size:.75rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.device-accordion-action > b { display:grid; width:42px; height:42px; place-items:center; border:1px solid var(--device-accent); border-radius:50%; font-size:1.55rem; font-weight:400; line-height:1; transition:transform .18s ease,background .18s ease,color .18s ease; }
.device-accordion-item[open] > .device-accordion-summary { border-bottom:1px solid #d5e4e1; }
.device-accordion-item[open] .device-accordion-action > span { font-size:0; }
.device-accordion-item[open] .device-accordion-action > span::after { content:'Schließen'; font-size:.75rem; }
.device-accordion-item[open] .device-accordion-action > b { transform:rotate(45deg); background:var(--device-accent); color:#fff; }
.device-accordion-panel { background:#fff; }
.device-accordion-panel .portal-guide-grid .alexa-feature,.device-accordion-panel .appliance-feature { border:0; box-shadow:none; }
.device-accordion-panel .appliance-section { margin:0; padding:0; }
.resident-accordion { display:grid!important; grid-template-columns:minmax(0,1fr)!important; gap:20px!important; overflow-anchor:none; }
.resident-accordion-item { --resident-accent:#568c38; overflow:hidden; scroll-margin-top:110px; border:1px solid #d3dfdc; background:#fff; box-shadow:0 9px 26px rgba(30,50,43,.055); }
.resident-accordion-item--waste { order:-1; }
.resident-accordion-summary { display:grid; grid-template-columns:64px minmax(0,1fr) auto; gap:21px; align-items:center; min-height:132px; padding:28px 32px; border-top:6px solid var(--resident-accent); background:linear-gradient(135deg,#f5faf9,#fff 65%); cursor:pointer; list-style:none; }
.resident-accordion-summary::-webkit-details-marker { display:none; }
.resident-accordion-summary:hover { background:linear-gradient(135deg,#edf7f5,#fff 65%); }
.resident-accordion-icon { display:grid; width:64px; height:64px; place-items:center; border-radius:50%; background:var(--resident-accent); color:#fff; }
.resident-accordion-icon svg { width:34px; height:34px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.resident-accordion-icon--text { font-size:.84rem; font-weight:900; letter-spacing:-.03em; }
.resident-accordion-copy { display:grid; gap:4px; min-width:0; }
.resident-accordion-copy > small { color:var(--resident-accent); text-transform:uppercase; letter-spacing:.11em; font-size:.7rem; font-weight:900; }
.resident-accordion-copy > strong { color:#263331; font-size:clamp(1.8rem,3vw,3rem); line-height:1.05; letter-spacing:-.03em; }
.resident-accordion-copy > span { color:#68716e; font-size:.94rem; }
.resident-accordion-action { display:flex; align-items:center; gap:12px; color:var(--resident-accent); font-size:.75rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.resident-accordion-action > b { display:grid; width:42px; height:42px; place-items:center; border:1px solid var(--resident-accent); border-radius:50%; font-size:1.55rem; font-weight:400; line-height:1; transition:transform .18s ease,background .18s ease,color .18s ease; }
.resident-accordion-item[open] > .resident-accordion-summary { border-bottom:1px solid #d5e4e1; }
.resident-accordion-item[open] .resident-accordion-action > span { font-size:0; }
.resident-accordion-item[open] .resident-accordion-action > span::after { content:'Schließen'; font-size:.75rem; }
.resident-accordion-item[open] .resident-accordion-action > b { transform:rotate(45deg); background:var(--resident-accent); color:#fff; }
.resident-accordion-panel { background:#fff; }
.resident-accordion-panel-content { margin:0!important; border:0!important; border-top:0!important; box-shadow:none!important; grid-column:auto!important; order:initial!important; }
.resident-accordion-panel > .important-card { display:block; min-height:0; padding:30px 32px; }
.resident-accordion-panel > .important-card > .important-icon,
.resident-accordion-panel > .important-card .important-kicker,
.resident-accordion-panel > .important-card h2 { display:none; }
.resident-accordion-panel > .wifi-feature,
.resident-accordion-panel > .broadcast-card { margin-top:0; }
.resident-accordion-panel .wifi-feature-copy,
.resident-accordion-panel .broadcast-copy { grid-template-columns:minmax(0,1fr); }
.resident-accordion-panel .wifi-feature-copy > .important-icon,
.resident-accordion-panel .broadcast-copy > .important-icon,
.resident-accordion-panel .wifi-feature-copy .important-kicker,
.resident-accordion-panel .broadcast-copy .important-kicker,
.resident-accordion-panel .wifi-feature-copy h2,
.resident-accordion-panel .broadcast-copy h2 { display:none; }
.resident-accordion-panel .streaming-header { grid-template-columns:minmax(0,1fr); }
.resident-accordion-panel .streaming-header-icon,
.resident-accordion-panel .streaming-header .important-kicker,
.resident-accordion-panel .streaming-header h2 { display:none; }
.resident-accordion-panel > .transit-guide { padding:34px; }
.resident-accordion-panel > .transit-guide .transit-header { display:none; }
.resident-accordion-panel > .nearby-guide { padding:34px; }
.resident-accordion-panel > .nearby-guide .nearby-heading .important-kicker,
.resident-accordion-panel > .nearby-guide .nearby-heading h2 { display:none; }
.resident-accordion-panel > .together-card { min-height:0; }
.resident-accordion-panel > .together-card .together-card-topline,
.resident-accordion-panel > .together-card h2 { display:none; }
.resident-accordion-panel > .house-topic { padding:32px; }
.resident-accordion-panel > .house-topic .house-topic-header { display:none; }
.device-guide { overflow:hidden; background:#fff; }
.device-guide-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(315px,.64fr); gap:34px; padding:36px 40px; border-top:1px solid #e0e7e4; }
.device-guide-steps { display:grid; align-content:start; gap:0; margin:0; padding:0; list-style:none; }
.device-guide-steps li { display:grid; grid-template-columns:44px minmax(0,1fr); gap:15px; align-items:start; padding:17px 0; border-bottom:1px solid #e2e7e5; }
.device-guide-steps li:first-child { padding-top:0; }
.device-guide-steps li:last-child { padding-bottom:0; border-bottom:0; }
.device-guide-steps li > span { display:grid; width:40px; height:40px; place-items:center; border-radius:50%; background:var(--device-accent); color:#fff; font-weight:900; }
.device-guide-steps strong { display:block; margin-bottom:3px; color:#263331; font-size:1.08rem; }
.device-guide-steps p { margin:0; color:#68716e; line-height:1.53; }
.device-guide-steps p b { color:#2f3b38; }
.device-guide-image,.device-guide-wide-image,.device-guide-tip-image { margin:0; border:1px solid #d8e1de; background:#f6f8f7; }
.device-guide-image { display:grid; align-content:center; padding:22px; }
.device-guide-image img { display:block; width:100%; max-height:410px; object-fit:contain; mix-blend-mode:multiply; }
.device-guide-image--portrait img { max-height:455px; }
.device-guide-image figcaption,.device-guide-wide-image figcaption,.device-guide-tip-image figcaption { margin-top:15px; color:#69726f; font-size:.8rem; line-height:1.45; text-align:center; }
.device-guide-wide-image { margin:0 40px 30px; padding:21px; }
.device-guide-wide-image img { display:block; width:100%; max-height:300px; object-fit:contain; mix-blend-mode:multiply; }
.device-guide-wide-image--compact { max-width:620px; margin-right:auto; margin-left:auto; }
.device-guide-tip-grid { display:grid; grid-template-columns:1.25fr 1fr 1fr; gap:14px; padding:0 40px 30px; }
.device-guide-tip-grid--two { grid-template-columns:1fr 1fr; }
.device-guide-tip-image { padding:16px; }
.device-guide-tip-image img { display:block; width:100%; height:160px; object-fit:contain; mix-blend-mode:multiply; }
.device-guide-tip { padding:23px; border-top:5px solid var(--device-accent); background:#f5f8f7; }
.device-guide-tip strong { display:block; margin-bottom:8px; color:var(--device-accent); font-size:1.05rem; }
.device-guide-tip p { margin:0; color:#68716e; line-height:1.52; }
.coffee-essential-guides { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; padding:0 40px 30px; }
.coffee-essential-card { overflow:hidden; border:1px solid #d8e1de; border-top:6px solid var(--device-accent); background:#fff; }
.coffee-essential-figure { display:grid; min-height:350px; align-content:center; margin:0; padding:18px; border-bottom:1px solid #d8e1de; background:#f6f8f7; }
.coffee-essential-figure img { display:block; width:100%; height:300px; object-fit:contain; mix-blend-mode:multiply; }
.coffee-essential-figure--portrait img { height:320px; }
.coffee-essential-figure figcaption { margin-top:12px; color:#69726f; font-size:.8rem; line-height:1.45; text-align:center; }
.coffee-essential-copy { padding:24px 25px 25px; }
.coffee-essential-kicker { margin:0 0 7px!important; color:var(--device-accent)!important; font-size:.7rem!important; font-weight:900; letter-spacing:.11em; text-transform:uppercase; }
.coffee-essential-copy h3 { margin:0 0 15px; color:#263331; font-size:1.42rem; }
.coffee-essential-copy ol { display:grid; gap:9px; margin:0; padding-inline-start:1.35rem; color:#56605d; line-height:1.48; }
.coffee-essential-copy li::marker { color:var(--device-accent); font-weight:900; }
.coffee-essential-note { margin:18px 0 0; padding:12px 14px; border-inline-start:4px solid var(--device-accent); background:color-mix(in srgb,var(--device-accent) 7%,#fff); color:#4e5855; font-size:.88rem; font-weight:700; line-height:1.45; }
.device-guide-notice { margin:0 40px 30px; padding:22px 24px; border-left:5px solid var(--device-accent); background:color-mix(in srgb,var(--device-accent) 8%,#fff); }
.device-guide-notice strong { display:block; margin-bottom:5px; color:var(--device-accent); font-size:1.08rem; }
.device-guide-notice p { margin:0; color:#626c69; line-height:1.55; }
.whirlpool-safety { margin-top:30px; }
.whirlpool-control-key { align-self:start; padding:23px 24px; border:1px solid #d8e1de; background:#f6f8f7; }
.whirlpool-control-key > strong { display:block; margin-bottom:15px; font-size:1.08rem; }
.whirlpool-control-key dl { display:grid; gap:0; margin:0; }
.whirlpool-control-key dl > div { display:grid; grid-template-columns:38px minmax(0,1fr); gap:10px; padding:10px 0; border-top:1px solid #d8e1de; }
.whirlpool-control-key dt { color:var(--device-accent); font-weight:900; }
.whirlpool-control-key dd { margin:0; color:#626c69; }
.whirlpool-control-sheet { background:#fff; }
.whirlpool-control-sheet > a { display:block; }
.whirlpool-control-sheet img { max-height:none; mix-blend-mode:normal; }
.whirlpool-control-sheet-image--en { display:none!important; }
body[data-resident-language="en"] .whirlpool-control-sheet-image--de { display:none!important; }
body[data-resident-language="en"] .whirlpool-control-sheet-image--en { display:block!important; }
.device-guide-footer { display:flex; justify-content:flex-end; gap:12px; padding:24px 40px; border-top:1px solid #dce5e2; background:#f5f8f7; }
.device-guide-footer .button { min-width:245px; background:var(--device-accent); text-align:center; }
.device-guide-footer .button:hover { filter:brightness(.9); }
.device-guide-footer .button--outline { border:1px solid var(--device-accent); background:#fff; color:var(--device-accent); }
.device-guide-footer .button--outline:hover { background:color-mix(in srgb,var(--device-accent) 8%,#fff); }
.device-guide--tv { background:#fff; }
.tv-step-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; padding:36px 40px 24px; border-top:1px solid #e0e5e3; }
.tv-step-card { display:grid; grid-template-columns:minmax(0,1fr) 116px; grid-template-rows:auto 1fr; gap:16px; min-height:390px; padding:22px; border-top:7px solid var(--device-accent); background:#f5f6f6; }
.tv-step-card--apple { --tv-step:#78aa62; }
.tv-step-card--soundbar { --tv-step:#ef7e36; }
.tv-step-card--off { --tv-step:#df4431; }
.tv-step-copy { display:grid; grid-template-columns:48px minmax(0,1fr); gap:12px; align-items:start; }
.tv-step-copy--secondary { align-self:end; }
.tv-step-number { display:grid; width:48px; height:48px; place-items:center; background:var(--tv-step); color:#fff; font-size:1.65rem; font-weight:900; line-height:1; }
.tv-step-copy strong { display:block; color:#242827; font-size:1.1rem; line-height:1.2; }
.tv-step-copy p { margin:6px 0 0; color:#67706e; font-size:.87rem; line-height:1.45; }
.tv-step-card img { grid-column:2; grid-row:1 / -1; display:block; width:100%; height:340px; align-self:center; object-fit:contain; mix-blend-mode:multiply; }
.tv-step-card--soundbar .tv-step-copy--secondary { --tv-step:#10a6de; }
.tv-explanation-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:0 40px 36px; border:1px solid #d7dddb; background:#fff; }
.tv-explanation-list p { display:grid; min-height:145px; align-items:center; margin:0; padding:24px 28px; color:#333b39; font-size:1.03rem; line-height:1.58; text-align:center; }
.tv-explanation-list p + p { border-left:1px solid #d7dddb; }
.device-accordion-panel > .device-guide > .device-guide-layout:first-child,.device-accordion-panel > .device-guide > .tv-step-grid:first-child,.device-accordion-panel .appliance-feature > .appliance-quickstart:first-child { border-top:0; }
.appliance-section { margin-top:20px; padding:0; }
.appliance-feature { overflow:hidden; border:1px solid #b7dcde; border-top:7px solid #199da1; background:#fff; box-shadow:0 12px 34px rgba(30,58,58,.07); }
.appliance-kicker { margin:0 0 7px!important; color:#16878b!important; text-transform:uppercase; letter-spacing:.11em; font-size:.71rem; font-weight:900; }
.appliance-quickstart { display:grid; grid-template-columns:minmax(0,.88fr) minmax(440px,1.12fr); gap:34px; padding:36px; border-top:1px solid #cde6e7; }
.appliance-step-list { display:grid; gap:0; padding:0; margin:0; list-style:none; counter-reset:none; }
.appliance-step-list li { display:grid; grid-template-columns:44px minmax(0,1fr); gap:15px; align-items:start; padding:17px 0; border-bottom:1px solid #e1e8e6; }
.appliance-step-list li:first-child { padding-top:0; }
.appliance-step-list li:last-child { padding-bottom:0; border-bottom:0; }
.appliance-step-list li > span { display:grid; width:39px; height:39px; place-items:center; border-radius:50%; background:#199da1; color:#fff; font-weight:900; }
.appliance-step-list strong { display:block; margin-bottom:3px; color:#263332; font-size:1.08rem; }
.appliance-step-list p { margin:0; color:#68716e; line-height:1.5; }
.appliance-step-list p b { color:#253f40; }
.appliance-visuals { display:grid; gap:15px; align-content:start; padding:23px; background:#f0f8f8; }
.appliance-control-panel { margin:0; padding:17px; border:1px solid #c8dfe0; background:#fff; }
.appliance-control-panel img { display:block; width:100%; height:auto; }
.appliance-control-panel figcaption { margin-top:12px; color:#66716f; font-size:.79rem; text-align:center; }
.appliance-detergent-card { display:grid; grid-template-columns:145px minmax(0,1fr); gap:18px; align-items:center; padding:14px; border:1px solid #c8dfe0; background:#fff; }
.appliance-detergent-card img { display:block; width:145px; height:104px; object-fit:cover; object-position:center top; }
.appliance-detergent-card div { display:grid; gap:4px; }
.appliance-detergent-card strong { color:#203536; }
.appliance-detergent-card span { color:#68716e; font-size:.86rem; line-height:1.45; }
.appliance-caution { display:grid; grid-template-columns:54px minmax(0,1fr); gap:18px; align-items:center; margin:0 36px; padding:23px 25px; border-left:5px solid #d8902f; background:#fff7e9; }
.appliance-caution > span { display:grid; width:54px; height:54px; place-items:center; border-radius:50%; background:#d8902f; color:#fff; }
.appliance-caution svg { width:29px; height:29px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.appliance-caution .appliance-kicker { color:#a76512!important; }
.appliance-caution h3 { margin:0 0 6px; font-size:1.3rem; }
.appliance-caution p:last-child { margin:0; color:#6c675e; line-height:1.52; }
.appliance-care-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; padding:42px 36px 18px; }
.appliance-care-heading h3 { margin:0; font-size:clamp(1.7rem,2.7vw,2.7rem); }
.appliance-care-heading > p { max-width:340px; margin:0; color:#707873; text-align:right; }
.appliance-care-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; padding:0 36px 36px; }
.appliance-care-card { overflow:hidden; border:1px solid #d8e3e0; background:#fff; }
.appliance-care-card summary { display:grid; grid-template-columns:44px minmax(0,1fr) 24px; gap:13px; align-items:center; min-height:86px; padding:16px; cursor:pointer; list-style:none; }
.appliance-care-card summary::-webkit-details-marker { display:none; }
.appliance-care-card summary:hover { background:#f5faf8; }
.appliance-care-symbol { display:grid; width:44px; height:44px; place-items:center; border-radius:50%; background:#199da1; color:#fff; font-size:1rem; font-weight:900; }
.appliance-care-card--salt .appliance-care-symbol { background:#4c83bd; }
.appliance-care-card--rinse .appliance-care-symbol { background:#1f9aa6; }
.appliance-care-card--filter .appliance-care-symbol { background:#65746d; font-size:1.3rem; }
.appliance-care-card summary span:nth-child(2) { display:grid; gap:2px; }
.appliance-care-card summary small { color:#78807c; text-transform:uppercase; letter-spacing:.08em; font-size:.61rem; font-weight:900; }
.appliance-care-card summary strong { color:#27312e; line-height:1.25; }
.appliance-care-card summary > b { color:#199da1; font-size:1.45rem; font-weight:400; transition:transform .18s ease; }
.appliance-care-card[open] summary > b { transform:rotate(45deg); }
.appliance-care-body { display:grid; gap:14px; padding:0 16px 19px; border-top:1px solid #e3e9e7; }
.appliance-care-body img { display:block; width:100%; height:170px; margin-top:16px; object-fit:contain; background:#eef1f2; }
.appliance-care-body p { margin:0; color:#68716e; font-size:.88rem; line-height:1.5; }
.appliance-feature-footer { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:25px 36px; border-top:1px solid #cae1e2; background:#f1f8f8; }
.appliance-feature-footer > div { display:grid; gap:3px; }
.appliance-feature-footer > div strong { color:#126f73; font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; }
.appliance-feature-footer > div span { color:#5f6c69; }
.appliance-manual-button { flex:0 0 auto; min-width:245px; background:#199da1; text-align:center; }
.appliance-manual-button:hover { background:#127b7f; }
.text-link { color:#4d8632; font-size:.9rem; font-weight:700; }
.portal-empty { padding:25px; border:1px dashed #b8c3b2; color:#697064; background:#fff; }
.portal-document-list { border-top:1px solid var(--line); }
.portal-document-row { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:17px 0; border-bottom:1px solid var(--line); }
.portal-document-name { display:flex; align-items:center; gap:15px; min-width:0; }
.portal-document-name > span:last-child { display:grid; gap:4px; }
.portal-document-name strong { overflow-wrap:anywhere; }
.portal-document-name small { color:var(--muted); }
.document-type-icon { display:grid; flex:0 0 auto; width:40px; height:46px; place-items:center; border:1px solid #bad3ac; border-radius:6px; background:#f2f8ee; color:#477d2d; font-size:.64rem; font-weight:800; letter-spacing:.03em; }
.document-type-icon--pdf { border-color:#d7b1ac; background:#fff1ef; color:#a44036; }
.document-type-icon--png,.document-type-icon--jpg { border-color:#b7ccdd; background:#eff7fb; color:#397190; }
.portal-document-actions { display:flex; flex:0 0 auto; flex-wrap:wrap; gap:10px; align-items:center; }
.portal-document-actions form { flex:0 0 auto; margin:0; }
.document-action { display:inline-flex; width:46px; height:46px; min-width:46px; min-height:46px; flex:0 0 46px; align-items:center; justify-content:center; box-sizing:border-box; padding:0; border:1.5px solid #7cb653; border-radius:50%; background:#fff; color:#568c38; text-decoration:none; font:inherit; font-size:0; cursor:pointer; transition:background-color .18s ease,color .18s ease,transform .18s ease; }
.document-action::before { content:""; display:block; width:21px; height:21px; background:currentColor; -webkit-mask-position:center; mask-position:center; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-size:contain; mask-size:contain; }
.document-action:hover { background:#eff7e9; transform:translateY(-1px); }
.document-action:focus-visible { outline:3px solid rgba(86,140,56,.28); outline-offset:3px; }
.document-action--open { border-color:#7cb653; background:#7cb653; color:#fff; }
.document-action--open::before { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5C5 5 1 12 1 12s4 7 11 7 11-7 11-7-4-7-11-7Zm0 11a4 4 0 1 1 0-8 4 4 0 0 1 0 8Zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5C5 5 1 12 1 12s4 7 11 7 11-7 11-7-4-7-11-7Zm0 11a4 4 0 1 1 0-8 4 4 0 0 1 0 8Zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z'/%3E%3C/svg%3E"); }
.document-action--open:hover { background:#669f42; }
.document-action--save::before { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 3h2v10l3.5-3.5 1.4 1.4L12 16.8l-5.9-5.9 1.4-1.4L11 13V3ZM4 18h16v3H4v-3Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 3h2v10l3.5-3.5 1.4 1.4L12 16.8l-5.9-5.9 1.4-1.4L11 13V3ZM4 18h16v3H4v-3Z'/%3E%3C/svg%3E"); }
.document-action--edit { border-color:#4e91bd; color:#347fae; }
.document-action--edit::before { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m4 16.5 10.9-10.9 3.5 3.5L7.5 20H4v-3.5ZM16.3 4.2l1.4-1.4a2 2 0 0 1 2.8 0l.7.7a2 2 0 0 1 0 2.8l-1.4 1.4-3.5-3.5Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m4 16.5 10.9-10.9 3.5 3.5L7.5 20H4v-3.5ZM16.3 4.2l1.4-1.4a2 2 0 0 1 2.8 0l.7.7a2 2 0 0 1 0 2.8l-1.4 1.4-3.5-3.5Z'/%3E%3C/svg%3E"); }
.document-action--edit:hover { background:#edf7fc; }
.document-action--edit:focus-visible { outline-color:rgba(52,127,174,.28); }
.document-action--delete { border-color:#d98c84; color:#b44439; }
.document-action--delete::before { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 3h6l1 2h4v2H4V5h4l1-2Zm-2 6h10l-1 12H8L7 9Zm3 2v7h2v-7h-2Zm4 0v7h2v-7h-2Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 3h6l1 2h4v2H4V5h4l1-2Zm-2 6h10l-1 12H8L7 9Zm3 2v7h2v-7h-2Zm4 0v7h2v-7h-2Z'/%3E%3C/svg%3E"); }
.document-action--delete:hover { background:#fff1ef; }
.document-action--delete:focus-visible { outline-color:rgba(180,68,57,.25); }
.portal-two-column { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; }
.portal-stack { display:grid; gap:24px; }
.portal-status-list { padding:0; margin:0; list-style:none; }
.portal-status-list li { display:flex; justify-content:space-between; gap:16px; padding:13px 0; border-bottom:1px solid var(--line); }
.portal-status-list span { color:var(--muted); font-size:.9rem; }
.portal-card-grid--admin { grid-template-columns:repeat(5,1fr); }
.portal-card-grid--admin-hub { grid-template-columns:repeat(4,minmax(0,1fr)); align-items:stretch; }
@media (min-width:761px) { .portal-card-grid--admin-hub .portal-card { min-height:180px; aspect-ratio:auto; } }

/* Vermieter-Dashboard: Status statt einer Wiederholung der Hauptnavigation. */
.landlord-dashboard{padding-top:52px;background:#f7f8f5}.landlord-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.landlord-kpis article{display:grid;min-height:152px;padding:24px;border:1px solid var(--line);background:#fff}.landlord-kpis article>span{color:#599438;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.landlord-kpis article>strong{align-self:end;margin-top:20px;font-size:2rem;line-height:1.05}.landlord-kpis article>small{margin-top:7px;color:var(--muted);line-height:1.35}.landlord-kpis article.has-alert{border-color:#e6b9b3;background:#fff9f8}.landlord-kpis article.has-alert>strong{color:#b73e35}.landlord-kpis article.is-clear>strong{color:#477d2d}.landlord-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.8fr);gap:18px;margin-top:18px}.landlord-dashboard-grid--lower{grid-template-columns:repeat(2,minmax(0,1fr))}.landlord-panel{min-width:0;padding:26px;border:1px solid var(--line);background:#fff}.landlord-panel>header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--line)}.landlord-panel>header .section-label{margin:0 0 8px}.landlord-panel>header h2{margin:0;font-size:1.45rem}.landlord-panel>header>a{color:#477d2d;font-size:.78rem;font-weight:800;text-decoration:none;white-space:nowrap}.landlord-panel>header>a:hover{text-decoration:underline}.landlord-room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.landlord-room{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:15px;min-height:104px;padding:17px;border:1px solid #dbe1d7;background:#fbfcfa}.landlord-room .room-badge{width:46px;height:46px;margin:0;font-size:.9rem}.landlord-room>div:nth-child(2){display:grid;min-width:0;gap:3px}.landlord-room>div:nth-child(2)>small,.landlord-room>div:nth-child(2)>span,.landlord-room-meta small,.landlord-room-meta span{color:var(--muted);font-size:.75rem}.landlord-room>div:nth-child(2)>strong{overflow:hidden;font-size:1.05rem;text-overflow:ellipsis;white-space:nowrap}.landlord-room>div:nth-child(2)>em{color:#477d2d;font-size:.7rem;font-style:normal;font-weight:700}.landlord-room-meta{display:grid;justify-items:end;gap:3px;text-align:right}.landlord-room-meta>strong{font-size:.9rem}.landlord-room.is-vacant{border-style:dashed;background:#fafafa}.landlord-room.is-vacant .room-badge{border-color:#cfd4cc;color:#777f73}.landlord-attention-list{display:grid;gap:9px}.landlord-attention-list>a{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);color:inherit;text-decoration:none;transition:border-color .18s ease,background .18s ease}.landlord-attention-list>a>span{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:#fff3d7;color:#9c6b08;font-weight:900}.landlord-attention-list>a>div{display:grid;gap:4px}.landlord-attention-list>a strong{font-size:.88rem;line-height:1.3}.landlord-attention-list>a small{color:var(--muted);font-size:.75rem;line-height:1.35}.landlord-attention-list>a>b{color:#6fae4b;font-size:1.1rem}.landlord-attention-list>a:hover{border-color:#a7ca93;background:#f7faf5}.landlord-attention-list>a.is-urgent>span{background:#f9e3df;color:#b73e35}.landlord-all-clear{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:15px;padding:20px;background:#f0f7eb}.landlord-all-clear>span{display:grid;width:44px;height:44px;place-items:center;border-radius:50%;background:#7cb653;color:#fff;font-weight:900}.landlord-all-clear p{margin:5px 0 0;color:var(--muted);font-size:.82rem;line-height:1.45}.landlord-event-list,.landlord-activity-list{display:grid}.landlord-event-list article{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--line)}.landlord-event-list article:first-child,.landlord-activity-list article:first-child{border-top:0}.landlord-event-list time{display:grid;width:50px;height:50px;place-content:center;border-radius:8px;background:#eef5e9;text-align:center}.landlord-event-list time strong{font-size:1.05rem;line-height:1}.landlord-event-list time span{margin-top:3px;color:var(--muted);font-size:.62rem}.landlord-event-list article>div{display:grid;gap:4px}.landlord-event-list article>div>strong{font-size:.9rem}.landlord-event-list article>div>span{color:var(--muted);font-size:.78rem}.landlord-event-type{padding:5px 8px;border-radius:999px;background:#edf4e8;color:#477d2d;font-size:.65rem;font-weight:800}.landlord-event-type.is-end{background:#fff1df;color:#96610b}.landlord-activity-list article{display:grid;grid-template-columns:12px minmax(0,1fr);gap:13px;padding:14px 0;border-top:1px solid var(--line)}.landlord-activity-list article>span{width:10px;height:10px;margin-top:4px;border:2px solid #7cb653;border-radius:50%;background:#fff}.landlord-activity-list article>div{display:grid;gap:4px}.landlord-activity-list strong{font-size:.88rem}.landlord-activity-list small{color:var(--muted);font-size:.75rem}.landlord-empty{margin:0;padding:18px;background:#f7f8f5;color:var(--muted);font-size:.85rem}.portal-page--verwaltung-php .portal-content{padding-bottom:90px}
.portal-page--verwaltung-php .landlord-room .room-badge{transform:none}
@media(max-width:1100px){.landlord-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.landlord-dashboard-grid,.landlord-dashboard-grid--lower{grid-template-columns:1fr}}
@media(max-width:760px){.landlord-dashboard{padding-top:28px}.landlord-kpis{grid-template-columns:1fr}.landlord-kpis article{min-height:132px;padding:20px}.landlord-panel{padding:20px 18px}.landlord-panel>header{align-items:flex-start;flex-direction:column;gap:8px}.landlord-room-grid{grid-template-columns:1fr}.landlord-room{grid-template-columns:46px minmax(0,1fr);gap:13px;padding:16px 14px}.landlord-room-meta{grid-column:2;justify-items:start;text-align:left}.landlord-event-list article{grid-template-columns:54px minmax(0,1fr)}.landlord-event-type{grid-column:2;justify-self:start}.landlord-attention-list>a{grid-template-columns:36px minmax(0,1fr)}.landlord-attention-list>a>b{display:none}}
/* Bewohnerliste: Abstand zwischen den einzelnen Bewohner-Zeilen. */
.portal-resident-list,.portal-report-list,.portal-history { display:grid; gap:12px; margin-top:24px; }
/* Einzelne Bewohner-Zeile in der Admin-Liste. */
.portal-resident { border:1px solid var(--line); background:#fff; }
/* Klickfläche der Zeile öffnet die Bearbeitungs-Lightbox. */
.portal-resident { display:flex; align-items:center; min-height:92px; }
.portal-resident.is-filtered-out { display:none!important; }
.resident-summary-trigger { display:flex; flex:1 1 auto; align-items:center; min-width:0; padding:20px 24px; border:0; background:transparent; color:inherit; text-align:left; font:inherit; cursor:pointer; }
.resident-summary-trigger:hover { background:#f7faf5; }
/* Zeileninhalt: linker Bereich (Zimmer/Name) und rechter Bereich (Status/Löschen). */
.portal-resident summary { display:flex; justify-content:space-between; gap:20px; padding:20px 24px; cursor:pointer; list-style:none; }
.portal-resident summary::-webkit-details-marker { display:none; }
.portal-resident summary span { display:grid; gap:4px; }
.portal-resident summary small,.portal-resident summary > span:last-child { color:var(--muted); font-size:.85rem; }
/* Rechte Aktionsbuttons: grüner Statuskreis und roter Papierkorb. */
.resident-summary-actions { display:flex!important; align-items:center; gap:0; padding-right:24px; }
.resident-summary-actions .resident-delete-list { margin-left:40px!important; }
/* Linker Bereich: Zimmernummer, Name und E-Mail-Adresse. */
.resident-summary-primary { display:flex!important; align-items:center; gap:48px; min-width:0; }
.resident-summary-name { display:grid!important; gap:0; min-width:0; }
.resident-summary-name strong { font-size:1.35rem; line-height:1.05; }
.resident-summary-name small { overflow-wrap:anywhere; font-size:.75rem!important; line-height:1.12; }
/* Zimmernummer im Kreis. Die tatsächliche Desktop-Position steht weiter unten. */
.room-badge { display:grid!important; width:52px; height:52px; margin-right:12px; place-items:center; transform:translateX(-14px); border:1px solid #9fcf82; border-radius:50%; color:#477d2d!important; font-size:1rem!important; font-weight:800; line-height:1; }
.resident-status-form,.resident-delete-form { display:none; }
/* Beide Kreisbuttons sind gleich groß; Farbe und Symbol unterscheiden sie. */
.resident-status-button,.resident-delete-list { display:grid; width:52px; height:52px; padding:0; place-items:center; border-radius:50%; background:#fff; cursor:pointer; }
.resident-status-button { border:1px solid #9fcf82; color:#74ae50; }
.resident-status-button.is-inactive { border-color:#9aa197; color:#9aa197; }
.resident-status-button svg { width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.resident-status-button:focus-visible,.resident-delete-list:focus-visible { outline:3px solid #cfe4c0; outline-offset:2px; }
.resident-delete-list { border:1px solid #e5b7b2; color:#cf4a3f; }
.resident-delete-list svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.resident-delete-list:hover { background:#fff1ef; }
/* Deaktivierte Bewohner: dezenter Hintergrund und hellere Beschriftung. */
.portal-resident.is-inactive { background:#fefefe; }
.portal-resident.is-inactive .resident-summary-name strong,.portal-resident.is-inactive .resident-summary-name small { color:#9aa197; }
.portal-resident.is-inactive .room-badge { border-color:#9aa197; color:#9aa197!important; }
.resident-delete-list:hover { background:#fff1ef; }
.portal-resident[open] summary { background:#f7faf5; }
.portal-resident-body { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(320px,.9fr); gap:20px 24px; padding:24px; border-top:1px solid var(--line); background:#fcfdfb; }
@media (min-width:761px) {
  /* Nur Desktop: Innenabstände der Bewohner-Zeile. */
  .resident-summary-trigger { padding:20px 29px 20px 51px; }
  /* Nur Desktop: Abstand Zimmerkreis -> Name/E-Mail. */
  .resident-summary-primary { gap:16px; }
  /* Nur Desktop: Zimmerkreis optisch zwischen Kartenrand und Name zentrieren. */
  .room-badge { margin-right:0; transform:translateX(-17.5px); }
  /* Nur Desktop: grünen Statuskreis um eine halbe Kreisbreite nach rechts verschieben. */
  .resident-status-button { transform:translateX(0); }
  /* Nur Desktop: freier Abstand zwischen Statuskreis und Papierkorb. */
  .resident-summary-actions { gap:27px; padding-right:29px; }
  .resident-summary-actions .resident-delete-list { margin-left:0!important; }
}

/* Projektregel: Ein alleinstehender Formular-Aktionsbutton nutzt immer die volle Formularbreite. */
.portal-form > .button:only-of-type { display:flex!important; width:100%!important; max-width:none!important; min-width:0!important; grid-column:1 / -1!important; align-items:center!important; justify-content:center!important; justify-self:stretch!important; box-sizing:border-box; text-align:center; white-space:normal; }
.portal-resident-body:not(.portal-resident-body--documents):not(.portal-resident-body--reports) > .portal-form:first-child,.portal-resident-body > .portal-stack .portal-form { padding:22px; border:1px solid var(--line); background:#fff; }
.portal-resident-body:not(.portal-resident-body--documents):not(.portal-resident-body--reports) > .portal-form:first-child { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 16px; align-content:start; }
.portal-resident-body:not(.portal-resident-body--documents):not(.portal-resident-body--reports) > .portal-form:first-child::before { grid-column:1 / -1; content:'Profildaten'; color:#252525; font-size:1.16rem; font-weight:800; }
.portal-resident-body:not(.portal-resident-body--documents):not(.portal-resident-body--reports) > .portal-form:first-child .button { grid-column:1 / -1; width:max-content; }
.portal-resident-body > .portal-stack .portal-form { position:relative; align-content:start; padding-top:61px; }
.portal-resident-body > .portal-stack .portal-form::before { position:absolute; top:20px; left:22px; color:#252525; font-size:1.04rem; font-weight:800; }
.portal-resident-body > .portal-stack .portal-form:first-child::before { content:'Zugang zurücksetzen'; }
.portal-resident-body > .portal-stack .portal-form:last-child::before { content:'Dokument hinterlegen'; }
.portal-resident-body > .portal-stack .portal-form:only-child::before { content:'Zugang zurücksetzen'; }
.portal-resident-body > form:last-child { grid-column:1 / -1; padding-top:18px; border-top:1px solid var(--line); }
.portal-danger { position:relative; display:block; width:46px; min-width:46px; height:46px; min-height:46px; padding:0; border:1px solid #d8aaa5; border-radius:50%; background:#fff; color:#a52d25; cursor:pointer; font:inherit; font-size:0; }
.portal-danger::before { position:absolute; top:50%; left:50%; display:block; width:24px; height:24px; transform:translate(-50%,-50%); background:currentColor; content:''; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 7h16M9 7V4h6v3M7 7l1 13h8l1-13M10 11v5M14 11v5' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/24px 24px no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 7h16M9 7V4h6v3M7 7l1 13h8l1-13M10 11v5M14 11v5' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/24px 24px no-repeat; }
.portal-danger:hover { background:#fff1ef; }
.portal-admin-documents { display:grid; gap:10px; }
.portal-admin-document { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:18px 20px; border:1px solid var(--line); background:#fff; }
.admin-intro { margin-bottom:18px; }
.admin-list-section { padding-top:12px; }
.portal-section-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:26px; }
.portal-section-heading .section-label { margin-bottom:14px; }
.portal-section-heading h2 { margin:0; }
.portal-section-heading .button { border:0; cursor:pointer; font:inherit; }
.recipe-login-admin-list { display:grid; gap:16px; }
.recipe-login-admin-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) 50px 50px; align-items:end; gap:14px; padding:22px; border:1px solid var(--line); background:#fff; }
.recipe-login-admin-form,.recipe-login-delete-form { display:contents; }
.recipe-login-admin-card .portal-danger,.recipe-login-save { width:50px; min-width:50px; height:50px; min-height:50px; align-self:end; }
.recipe-login-save { position:relative; display:block; padding:0; border:1px solid var(--green); border-radius:50%; background:#fff; color:var(--green); cursor:pointer; font-size:0; }
.recipe-login-save::before { position:absolute; top:50%; left:50%; display:block; width:24px; height:24px; transform:translate(-50%,-50%); background:currentColor; content:''; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3h12l2 2v16H5zM8 3v6h8V3M8 21v-8h8v8M10 6h4' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/24px 24px no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3h12l2 2v16H5zM8 3v6h8V3M8 21v-8h8v8M10 6h4' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/24px 24px no-repeat; }
.recipe-login-save:hover { background:#eff7e9; }
@media (max-width:760px){.recipe-login-admin-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.recipe-login-admin-form label{grid-column:1 / -1}.recipe-login-admin-card .recipe-login-save,.recipe-login-admin-card .portal-danger{width:100%;min-width:0;height:54px;min-height:54px;border-radius:999px;justify-self:stretch}.recipe-login-save{justify-self:end}.recipe-login-delete-form .portal-danger{justify-self:start}}

/* Haushaltsbedarf: Umlage, Lieferintervalle und Verbrauchsmaterialien. */
.household-supply-content .portal-section{padding-top:46px}
.household-dashboard-menu{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:-8px 0 18px;border-bottom:1px solid var(--line)}
.household-dashboard-menu button{position:relative;display:flex;min-height:62px;align-items:center;justify-content:center;gap:9px;padding:12px 10px;border:0;background:transparent;color:#477d2d;font:inherit;font-size:.86rem;font-weight:850;cursor:pointer}
.household-dashboard-menu button::after{position:absolute;right:12px;bottom:-1px;left:12px;height:3px;transform:scaleX(0);background:var(--green);content:'';transition:transform .18s ease}
.household-dashboard-menu button:hover{background:#f6f9f4}.household-dashboard-menu button:hover::after{transform:scaleX(1)}
.household-dashboard-menu span{display:grid;width:25px;height:25px;place-items:center;border-radius:50%;background:#e9f3e3;color:#477d2d;font-size:.62rem;font-weight:900}
.household-dashboard-kpis{display:grid;grid-template-columns:1.25fr repeat(3,minmax(0,1fr));gap:14px;padding:0}
.household-kpi{display:grid;align-content:center;min-height:132px;padding:20px 22px;border:1px solid var(--line);background:#fff}
.household-kpi span{color:var(--muted);font-size:.74rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.household-kpi strong{margin-top:10px;font-size:clamp(1.65rem,2.5vw,2.6rem);line-height:1}
.household-kpi small{margin-top:9px;color:var(--muted)}
.household-kpi.is-primary{border-color:var(--green);background:#edf6e8}.household-kpi.is-primary strong{color:#477d2d;font-size:clamp(2.7rem,4.5vw,4.8rem);letter-spacing:-.05em}
.household-kpi.has-open{border-color:#e6b8b2;background:#fff8f7}.household-kpi.has-open strong{color:#a33931}
.household-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);gap:16px;margin-top:16px;padding:0}
.household-chart-card,.household-current-card{padding:24px}.household-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.household-card-eyebrow{margin:0 0 7px;color:var(--muted);font-size:.74rem;font-weight:800;letter-spacing:.07em;line-height:1.25;text-transform:uppercase}.household-card-heading h2{margin:0;line-height:1.12}.household-card-heading>strong{padding-top:3px;color:#477d2d;font-size:1.25rem;white-space:nowrap}
.household-bar-chart{display:grid;gap:15px}.household-bar-row{display:grid;gap:7px}.household-bar-row>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:.84rem}.household-bar-track{height:12px;overflow:hidden;border-radius:999px;background:#edf0ea}.household-bar-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6aa545,#82bd58)}.household-chart-note{margin:20px 0 0;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}
.household-resident-status{display:grid;margin-bottom:20px;border-top:1px solid var(--line)}.household-resident-status>div{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.household-resident-status>div>span:last-child{display:grid;gap:3px}.household-resident-status small{color:var(--muted)}.household-status-dot{display:grid;width:32px;height:32px;place-items:center;border-radius:50%;background:#f5e5e2;color:#aa392f;font-size:.8rem;font-weight:900}.household-status-dot.is-partial{background:#fff3d6;color:#9b6a00}.household-status-dot.is-paid{background:#e7f2e0;color:#477d2d}.household-current-card>.button{display:flex;width:100%;justify-content:center}
.household-dashboard-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px;padding:0}.household-overview-card{display:grid;grid-template-rows:auto 1fr auto;gap:18px;padding:22px}.household-overview-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.household-overview-heading>div{display:flex;align-items:center;gap:10px}.household-overview-heading>div>span{display:grid;width:28px;height:28px;flex:0 0 28px;place-items:center;border-radius:50%;background:#e9f3e3;color:#477d2d;font-size:.65rem;font-weight:900}.household-overview-heading h2{margin:0;font-size:1.2rem;line-height:1.2}.household-overview-heading>strong{display:grid;gap:3px;color:#477d2d;font-size:1.15rem;text-align:right;white-space:nowrap}.household-overview-heading>strong small{color:var(--muted);font-size:.7rem;font-weight:600}.household-overview-list{display:grid;align-content:start;border-top:1px solid var(--line)}.household-overview-list>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line)}.household-overview-list>div>span{display:grid;gap:2px;min-width:0}.household-overview-list strong{font-size:.86rem;overflow-wrap:anywhere}.household-overview-list small,.household-overview-list p{color:var(--muted);font-size:.76rem}.household-overview-list b{font-size:.82rem;white-space:nowrap}.household-overview-list p{margin:14px 0}.household-overview-card>.button{display:flex;width:100%;justify-content:center}
.household-overview-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:9px}.household-overview-group{min-width:0;padding:11px 12px;border:1px solid var(--line);background:#f8faf7}.household-overview-group h3{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 6px;color:#477d2d;font-size:.8rem}.household-overview-group h3 span{display:grid;min-width:21px;height:21px;padding:0 5px;place-items:center;border-radius:999px;background:#e5f0df;font-size:.65rem}.household-overview-group>div{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:5px 0;border-top:1px solid #e3e8df;font-size:.72rem;line-height:1.25}.household-overview-group>div span{min-width:0;overflow-wrap:anywhere}.household-overview-group>div b{flex:0 0 auto;font-size:.7rem;white-space:nowrap}.household-overview-group>div.is-excluded{color:#969c93;text-decoration:line-through}.household-overview-groups.is-buffer{grid-template-columns:repeat(2,minmax(0,1fr))}.household-overview-groups>p{margin:0;color:var(--muted);font-size:.8rem}.household-overview-card>.button{display:flex;width:100%;justify-content:center}
.portal-dialog.household-module-dialog{width:min(calc(100% - 40px),1500px);height:min(92dvh,1050px);max-height:none}.household-module-dialog .portal-dialog-card{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%;max-height:none;padding:0;overflow:hidden}.household-module-top{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 30px 20px;border-bottom:1px solid var(--line);background:#fff}.household-module-top .portal-dialog-close{position:static;flex:0 0 auto}.household-module-header .section-label{margin:0 0 5px}.household-module-header h2{margin:0;font-size:2rem}.household-module-header p:last-child{margin:7px 0 0;color:var(--muted)}.household-module-scroll{overflow:auto;padding:26px 30px 34px}.household-module-scroll>.button{display:flex;width:100%;justify-content:center;margin-bottom:20px}.household-module-scroll .household-supply-table{margin-top:0}
.household-supply-summary{display:grid;grid-template-columns:minmax(300px,1.35fr) repeat(3,minmax(170px,.75fr));gap:14px;padding:0}
.household-supply-summary>div{display:grid;align-content:center;min-height:150px;padding:24px;border:1px solid var(--line);background:#fff}
.household-supply-summary span{color:var(--muted);font-size:.76rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.household-supply-summary strong{margin-top:10px;font-size:1.65rem;line-height:1.05}
.household-supply-summary small{margin-top:8px;color:var(--muted)}
.household-supply-summary .household-supply-main{border-color:var(--green);background:#eff7e9}
.household-supply-summary .household-supply-main strong{color:#477d2d;font-size:clamp(3rem,5vw,5.5rem);letter-spacing:-.05em}
.household-supply-nav{display:flex;gap:8px;margin:18px 0 0;padding:10px;border:1px solid var(--line);background:#fff;overflow-x:auto;scrollbar-width:thin}
.household-supply-nav a{flex:1 0 auto;padding:12px 16px;border:1px solid #d7e6cf;border-radius:999px;color:#477d2d;font-size:.85rem;font-weight:800;text-align:center;text-decoration:none;white-space:nowrap}
.household-supply-nav a:hover{border-color:var(--green);background:#eff7e9}
.household-area-overview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:10px}
.household-area-overview>div{display:grid;gap:5px;padding:16px;border:1px solid var(--line);background:#fff}
.household-area-overview span{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase}
.household-area-overview strong{font-size:1.2rem}.household-area-overview small{color:var(--muted)}
.household-pool-note{margin:10px 0 0;padding:13px 16px;border-left:4px solid var(--green);background:#f3f7f0;color:var(--muted)}
.household-supply-settings-form{display:grid;grid-template-columns:minmax(220px,420px);gap:18px;padding:22px;border:1px solid var(--line);background:#fff}
.household-supply-table{border:1px solid var(--line);background:#fff}
.household-supply-groups{display:grid;gap:24px}.household-supply-group-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:3px 18px;margin-bottom:10px;padding:0 2px}.household-supply-group-heading span{grid-column:1/-1;color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.household-supply-group-heading h3{margin:0;color:#477d2d;font-size:1.35rem}.household-supply-group-heading small{color:var(--muted);font-size:.78rem}.household-supply-group+.household-supply-group{padding-top:8px;border-top:1px solid var(--line)}
.household-supply-head,.household-supply-row{display:grid;grid-template-columns:minmax(190px,1.25fr) minmax(150px,.8fr) minmax(260px,1.35fr) minmax(155px,.75fr) 112px;gap:18px;align-items:center}
.household-supply-head{padding:12px 20px;border-bottom:1px solid var(--line);background:#f1f5ee;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.household-supply-row{padding:19px 20px;border-top:1px solid var(--line)}
.household-supply-row.is-excluded{background:#fafafa;color:#6f746d}
.household-supply-head+.household-supply-row{border-top:0}
.household-supply-row>div:not(.household-supply-actions){display:grid;gap:4px;min-width:0}
.household-supply-row strong{font-size:1rem;overflow-wrap:anywhere}
.household-supply-row small{color:var(--muted);line-height:1.35}
.household-supply-monthly strong{color:#477d2d;font-size:1.25rem}
.household-supply-actions{display:flex;justify-content:flex-end;gap:10px}
.household-supply-actions form{margin:0}
.household-supply-edit{position:relative;width:46px;min-width:46px;height:46px;padding:0;border:1px solid var(--green);border-radius:50%;background:#fff;color:var(--green);cursor:pointer;font-size:0}
.household-supply-edit::before{position:absolute;top:50%;left:50%;display:block;width:22px;height:22px;transform:translate(-50%,-50%);background:currentColor;content:'';-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m4 20 4.5-1 10-10a2.1 2.1 0 0 0-3-3l-10 10L4 20Zm10-12 3 3M4 20h6' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/22px 22px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m4 20 4.5-1 10-10a2.1 2.1 0 0 0-3-3l-10 10L4 20Zm10-12 3 3M4 20h6' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/22px 22px no-repeat}
.household-supply-edit:hover{background:#eff7e9}
.household-supply-dialog{width:min(100% - 40px,900px)}
.household-supply-form{margin-top:24px}
.household-supply-form .portal-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.household-supply-form .portal-form-wide{grid-column:1/-1}
.household-supply-form .portal-checkbox{display:flex;min-height:52px;flex-direction:row;align-items:center;gap:10px;padding:14px;border:1px solid var(--line);font-weight:800}
.household-supply-form .portal-checkbox input{width:22px;height:22px;margin:0;accent-color:var(--green)}
.household-months{display:grid;gap:10px}
.household-month{border:1px solid var(--line);background:#fff}
.household-month summary{display:flex;min-height:82px;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;cursor:pointer;list-style:none}
.household-month summary::-webkit-details-marker{display:none}
.household-month summary>span:first-child{display:grid;gap:5px}
.household-month summary strong{font-size:1.2rem}
.household-month summary small{color:var(--muted)}
.household-month-status{padding:8px 12px;border-radius:999px;background:#f8e9e7;color:#a42921;font-size:.78rem;font-weight:900;white-space:nowrap}
.household-month-status.is-paid{background:#eaf5e4;color:#477d2d}
.household-payment-form{padding:20px 22px;border-top:1px solid var(--line);background:#fbfcfa}
.household-payment-form .portal-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.household-payment-form label small{display:block;margin-top:6px;color:var(--muted);font-weight:500}
.household-party-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.household-party{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px}
.household-party>div:first-child{display:grid;gap:5px}.household-party small{color:var(--muted)}
@media(max-width:1100px){.household-supply-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.household-supply-summary .household-supply-main{grid-column:1/-1}.household-area-overview{grid-template-columns:repeat(3,minmax(0,1fr))}.household-supply-head{display:none}.household-supply-table{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;border:0;background:transparent}.household-supply-row{grid-template-columns:1fr auto;padding:20px;border:1px solid var(--line);background:#fff}.household-supply-row>div:not(.household-supply-actions){grid-column:1}.household-supply-actions{grid-column:2;grid-row:1/5;align-self:center;flex-direction:column}}
@media(max-width:760px){.household-supply-summary{grid-template-columns:1fr}.household-supply-summary .household-supply-main{grid-column:auto}.household-supply-summary>div{min-height:125px}.household-supply-summary .household-supply-main strong{font-size:3.55rem}.household-supply-nav{margin-inline:-2px}.household-area-overview{grid-template-columns:1fr 1fr}.household-supply-settings-form{grid-template-columns:1fr}.household-supply-table{grid-template-columns:1fr}.household-supply-row{grid-template-columns:1fr;gap:18px}.household-supply-row>div:not(.household-supply-actions),.household-supply-actions{grid-column:1}.household-supply-actions{grid-row:auto;display:grid;grid-template-columns:1fr 1fr}.household-supply-actions .household-supply-edit,.household-supply-actions form,.household-supply-actions .portal-danger{width:100%;height:52px;border-radius:999px}.household-supply-form .portal-form-grid,.household-payment-form .portal-form-grid{grid-template-columns:1fr}.household-supply-form .portal-form-wide{grid-column:1}.household-supply-dialog{width:calc(100% - 20px)}.household-month summary{align-items:flex-start;padding:16px}.household-month summary small{line-height:1.4}.household-payment-form{padding:16px}.household-party-grid{grid-template-columns:1fr}.household-party{align-items:flex-start;flex-direction:column}.household-party .household-supply-actions{width:100%}}
@media(max-width:1100px){.household-dashboard-menu{grid-template-columns:repeat(3,minmax(0,1fr))}.household-dashboard-kpis{grid-template-columns:1fr 1fr}.household-dashboard-grid{grid-template-columns:1fr}.household-dashboard-details{grid-template-columns:1fr 1fr}.household-overview-card:last-child{grid-column:1/-1}}
@media(max-width:760px){.household-dashboard-menu{display:flex;overflow-x:auto;scrollbar-width:thin}.household-dashboard-menu button{min-width:155px}.household-dashboard-kpis{grid-template-columns:1fr}.household-kpi{min-height:120px}.household-kpi.is-primary strong{font-size:3.35rem}.household-dashboard-grid,.household-dashboard-details,.household-overview-groups,.household-overview-groups.is-buffer{grid-template-columns:1fr}.household-overview-card:last-child{grid-column:auto}.household-chart-card,.household-current-card,.household-overview-card{padding:18px}.household-card-heading{align-items:flex-start;flex-direction:column;gap:8px}.portal-dialog.household-module-dialog{width:calc(100% - 18px);height:calc(100dvh - 18px)}.household-module-top{padding:20px 18px 16px}.household-module-header h2{font-size:1.6rem}.household-module-scroll{padding:20px 16px 26px}}
.mobile-title-break { display:inline; }
.mobile-title-hyphen { display:none; }
/* Suche und Sortierung der Bewohnerliste. */
.resident-list-tools { display:flex; align-items:end; gap:0 18px; margin:0 0 26px; }
.resident-sort-label { display:grid; gap:5px; color:var(--muted); font-size:.78rem; font-weight:700; }
.resident-sort-label select { min-width:140px; height:42px; padding:0 34px 0 12px; border:1px solid var(--line); border-radius:4px; background:#fff; color:var(--ink); font:inherit; }
.resident-search { position:relative; display:block; width:230px; }
.resident-search input { width:100%; height:42px; padding:0 42px 0 13px; }
.resident-search button { position:absolute; top:50%; right:5px; display:grid; width:32px; height:32px; padding:0; place-items:center; transform:translateY(-50%); border:0; border-radius:50%; background:transparent; color:#747c70; font:inherit; font-size:1.5rem; line-height:1; cursor:pointer; }
.resident-search button:hover { background:#eff7e9; color:#477d2d; }
.resident-alphabet { display:flex; flex:1 1 auto; align-items:center; gap:0; }
.resident-alphabet button { min-width:28px; height:30px; padding:0 7px; border:0; border-right:1px solid var(--line); background:transparent; color:#4f584a; font:inherit; font-size:.8rem; font-weight:700; cursor:pointer; }
.resident-alphabet button:first-child { padding-left:0; padding-right:14px; }
.resident-alphabet button:last-child { border-right:0; }
.resident-alphabet button:hover,.resident-alphabet button.is-active { color:#477d2d; }
.resident-alphabet button.is-active { text-decoration:underline; text-underline-offset:4px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (min-width:761px) { .resident-list-tools{flex-wrap:wrap}.resident-search{width:460px}.resident-alphabet{flex:1 0 100%;width:100%;justify-content:space-between;margin-top:16px}.resident-alphabet button{flex:1 1 0}.resident-alphabet button:first-child{flex:1.35 1 0}.resident-alphabet button:last-child{border-right:1px solid var(--line)} }
.portal-dialog { width:min(100% - 40px, 680px); max-height:calc(100vh - 40px); padding:0; border:0; background:transparent; }
.portal-dialog::backdrop { background:rgba(25,29,23,.62); backdrop-filter:blur(3px); }
.portal-dialog-card { position:relative; overflow:auto; max-height:calc(100vh - 40px); padding:38px; border:1px solid var(--line); background:#fff; box-shadow:0 22px 65px rgba(0,0,0,.25); }
.portal-dialog-card h2 { margin:0 38px 10px 0; font-size:2rem; }
.portal-dialog-card > p { margin:0 0 25px; color:var(--muted); }
.portal-dialog-close { position:absolute; top:18px; right:18px; display:grid; width:34px; height:34px; place-items:center; border:1px solid var(--line); border-radius:50%; background:#fff; color:#4f584a; font:inherit; font-size:1.5rem; line-height:1; cursor:pointer; }
.portal-dialog-close:hover { background:#eff7e9; color:#477d2d; }
/* Einheitliche, zentrierte Bestätigungswarnungen im Portal. */
.portal-confirm-dialog { position:fixed; inset:0; width:min(calc(100% - 40px), 520px); max-height:calc(100dvh - 40px); margin:auto; padding:0; border:0; border-radius:8px; background:#fff; color:var(--ink); box-shadow:0 22px 65px rgba(0,0,0,.28); }
.portal-confirm-dialog::backdrop { background:rgba(25,29,23,.62); backdrop-filter:blur(3px); }
.portal-confirm-dialog > div { padding:34px; }
.portal-confirm-card { display:grid; grid-template-columns:48px minmax(0,1fr); gap:0 18px; align-items:start; }
.portal-confirm-icon { display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:#fff0ed; color:#b8463d; }
.portal-confirm-icon svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.portal-confirm-copy { min-width:0; }
.portal-confirm-dialog h2 { margin:0 0 12px; font-size:1.65rem; }
.portal-confirm-dialog p { margin:0; color:var(--muted); line-height:1.55; }
.portal-confirm-actions { grid-column:1 / -1; display:flex; justify-content:flex-end; gap:12px; margin-top:28px; }
.portal-confirm-actions button { padding:12px 19px; border:1px solid var(--line); border-radius:999px; background:#fff; color:#50584d; font:inherit; font-weight:700; cursor:pointer; }
.portal-confirm-actions [data-confirm-accept] { border-color:#b8463d; background:#b8463d; color:#fff; }
.portal-confirm-actions [data-confirm-accept]:hover { background:#9f3932; }
@media (max-width:560px) {
  .portal-confirm-dialog { width:calc(100% - 28px); max-height:calc(100dvh - 28px); }
  .portal-confirm-dialog > div { padding:25px 22px 22px; }
  .portal-confirm-card { grid-template-columns:42px minmax(0,1fr); gap:0 14px; }
  .portal-confirm-icon { width:42px; height:42px; }
  .portal-confirm-dialog h2 { font-size:1.35rem; }
  .portal-confirm-actions { display:grid; grid-template-columns:1fr 1fr; }
  .portal-confirm-actions button { width:100%; }
}
/* Bearbeitungs-Lightbox: Profildaten oben, Passwortbereich bewusst darunter. */
.portal-form--resident-edit { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.portal-form--resident-edit .button { width:max-content; }
.resident-management-access { grid-column:1/-1; display:flex!important; align-items:flex-start; gap:13px; padding:16px 18px; border:1px solid var(--line); background:#f7faf5; cursor:pointer; }
.resident-management-access input[type="checkbox"] { width:20px; height:20px; margin:2px 0 0; accent-color:#7cb653; }
.resident-management-access span { display:grid; gap:3px; }
.resident-management-access small { color:var(--muted); font-size:.8rem; font-weight:500; }
.resident-push-permission { margin-top:16px; }
.resident-push-permission > label { display:flex; align-items:center; gap:13px; padding:16px 18px; border:1px solid #cfe1c3; background:#f2f8ed; cursor:pointer; }
.resident-push-permission input[type="checkbox"],.waste-push-toggle input[type="checkbox"] { width:20px; height:20px; margin:0; accent-color:#7cb653; }
.resident-push-permission span { display:grid; gap:3px; }
.resident-push-permission small { color:var(--muted); font-size:.8rem; }
.waste-push-admin-section { scroll-margin-top:110px; }
.portal-page--admin-bewohner-php .resident-directory-content { padding-bottom:0; }
body.portal-page--admin-bewohner-php .portal-content.waste-push-content { padding-top:0; }
.waste-push-content .waste-push-admin-section { padding-top:48px; }
.portal-page--admin-web-push-php .waste-push-content .waste-push-admin-section { padding-top:0; }
.waste-push-admin-section .portal-section-heading p:not(.section-label) { max-width:720px; margin:8px 0 0; color:var(--muted); }
.waste-push-admin-list { display:grid; gap:12px; margin-top:26px; }
.waste-push-admin-message { margin:0 0 18px; padding:14px 16px; border-left:4px solid #7cb653; background:#f2f8ed; font-weight:700; }
.waste-push-admin-message[hidden] { display:none!important; }
.waste-push-admin-message.is-pending { border-color:#d4a62f; background:#fff9e8; }
.waste-push-admin-message.is-error { border-color:#c9483b; background:#fff2ef; color:#a33228; }
.waste-push-admin-row { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:20px 22px; border:1px solid var(--line); background:#fff; }
.waste-push-admin-row > div:first-child { display:grid; gap:5px; }
.waste-push-admin-row strong span { display:inline-block; margin-left:8px; color:#548b33; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; }
.waste-push-admin-row small,.waste-push-contact-meta { color:var(--muted); }
.waste-push-admin-actions { display:flex; align-items:center; gap:12px; }
.waste-push-admin-actions form { margin:0; }
.waste-push-toggle { display:flex!important; align-items:center; gap:8px; min-height:46px; font-weight:800; cursor:pointer; }
.waste-push-contact-form { display:grid; flex:1 1 auto; grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto; align-items:end; gap:12px; }
.waste-push-contact-form label:not(.waste-push-toggle) { display:grid; gap:6px; font-size:.82rem; font-weight:800; }
.waste-push-contact-form input:not([type="checkbox"]):not([type="hidden"]) { width:100%; min-height:46px; padding:0 13px; border:1px solid var(--line); border-radius:7px; font:inherit; }
.waste-push-admin-row--external { flex-wrap:wrap; }
.waste-push-contact-meta { font-size:.84rem; }
.waste-push-contact-footer { display:flex; flex:0 0 100%; align-items:center; justify-content:space-between; gap:18px; }
.waste-push-contact-footer .waste-push-admin-actions > .button { width:132px; min-height:46px; box-sizing:border-box; }
.waste-push-schedules-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin:72px 0 20px; }
.waste-push-schedules-heading h3 { margin:0 0 7px; font-size:2.32rem; line-height:1.08; }
.waste-push-schedules-heading p { margin:0; color:var(--muted); }
.waste-push-section-title { display:grid; min-width:0; grid-template-columns:58px minmax(0,1fr); gap:18px; align-items:center; }
.waste-push-section-icon { display:grid; width:58px; height:58px; place-items:center; border-radius:50%; background:var(--green); color:#fff; }
.waste-push-section-icon svg { display:block; width:29px; height:29px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.waste-push-schedule-list { display:grid; gap:12px; }
.waste-push-schedule-card { padding:20px 22px; border:1px solid var(--line); background:#fff; }
.waste-push-schedule-form { display:grid; grid-template-columns:minmax(180px,1.2fr) minmax(160px,.7fr) minmax(150px,.6fr) 130px auto; gap:14px; align-items:end; }
.waste-push-schedule-form label { display:grid; gap:6px; min-width:0; font-size:.82rem; font-weight:800; }
.waste-push-schedule-form input:not([type="checkbox"]):not([type="hidden"]),.waste-push-schedule-form select,.waste-push-schedule-form textarea { width:100%; min-height:46px; padding:0 13px; border:1px solid var(--line); border-radius:7px; background:#fff; box-sizing:border-box; font:inherit; }
.waste-push-schedule-form textarea { min-height:74px; padding-top:11px; resize:vertical; }
.waste-push-schedule-form [hidden] { display:none!important; }
.waste-push-schedule-form .waste-push-schedule-wide { grid-column:1 / -1; }
.waste-push-schedule-active { display:flex!important; align-items:center; grid-auto-flow:column; justify-content:start; gap:8px!important; min-height:46px; cursor:pointer; }
.waste-push-schedule-active input[type="checkbox"] { width:20px; height:20px; margin:0; accent-color:#7cb653; }
.waste-push-schedule-footer { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:14px; }
.waste-push-schedule-footer small,.waste-push-placeholder-help { color:var(--muted); }
.waste-push-schedule-footer code,.waste-push-placeholder-help code { color:#4d812f; font-family:inherit; font-weight:800; }
.waste-push-schedule-footer .waste-push-admin-actions > .button { width:132px; min-height:46px; box-sizing:border-box; }
.waste-push-contact-footer .waste-push-admin-actions > .button,
.waste-push-schedule-footer .waste-push-admin-actions > .button { display:inline-flex; height:46px; min-height:46px; align-items:center; justify-content:center; box-sizing:border-box; padding:0 14px; font-size:.9rem; font-weight:700; line-height:1.2; white-space:nowrap; }
.waste-push-schedule-dialog-form { grid-template-columns:1fr 1fr; }
.waste-push-schedule-dialog-form .waste-push-placeholder-help { grid-column:1 / -1; margin:0; font-size:.82rem; }
.waste-push-schedule-dialog-form > .button { grid-column:1 / -1; justify-self:start; }
.waste-push-devices-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin:42px 0 16px; }
.waste-push-devices-heading h3 { margin:0 0 7px; font-size:2.32rem; line-height:1.08; }
.waste-push-devices-heading p { margin:0; color:var(--muted); }
.waste-push-devices-heading > span { color:var(--muted); font-size:.86rem; }
.waste-push-device-list { display:grid; gap:10px; }
.waste-push-device-row { display:grid; grid-template-columns:46px minmax(0,1fr) auto auto; gap:16px; align-items:center; padding:17px 20px; border:1px solid var(--line); background:#fff; }
.waste-push-device-icon { display:grid; width:42px; height:42px; place-items:center; border-radius:50%; background:#eef5e9; color:#548b33; }
.waste-push-device-icon svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.waste-push-device-row > div { display:grid; gap:3px; }
.waste-push-device-row small { color:var(--muted); font-size:.82rem; }
.waste-push-device-state { padding:5px 9px; border-radius:999px; background:#eee; color:#777; font-size:.72rem; font-weight:800; text-transform:uppercase; }
.waste-push-device-state.is-active { display:grid; width:42px; height:42px; padding:0; place-items:center; border-radius:50%; background:#edf6e7; color:#4d812f; font-size:.56rem; font-weight:900; line-height:1; letter-spacing:-.01em; }
.waste-push-device-row .waste-push-test-form { margin:0; }
.resident-edit-dialog { position:relative; }
.resident-password-form { margin-top:30px; padding-top:26px; border-top:1px solid var(--line); }
.resident-password-form h3 { margin:0 0 16px; font-size:1.2rem; }
.resident-password-form .button,.resident-view-form .button { min-width:220px; }
.resident-view-form { position:absolute; right:38px; bottom:38px; margin:0; }
.resident-view-form .button { border-color:#292929; background:#292929; color:#fff; cursor:pointer; }
.resident-view-form .button:hover { background:#434343; }
.damage-dialog { width:min(100%,900px); }
.documents-dialog { width:100%; }
@media (min-width:761px) { .portal-dialog:has(.documents-dialog){width:min(calc(100% - 40px),1125px)}.portal-dialog:has(.damage-dialog){width:min(100% - 40px,900px)} }
.resident-dialog-heading { display:flex; align-items:center; gap:20px; margin:0 38px 26px 0; }
.resident-dialog-heading h2 { margin:0; }
.resident-dialog-heading .room-badge { flex:0 0 auto; margin:0; transform:none; }
.damage-report-actions { display:flex; align-items:end; gap:16px; }
.damage-report-actions > form:last-child { margin:0; }
.resident-list-group--former { margin-top:50px; padding:0; }
.resident-list-group--former .portal-section-heading { margin-bottom:26px; }

/* Bewohner-Lightbox: Profile und mehrere Mietzeiträume bleiben klar getrennt. */
.resident-profile-dialog { width:min(calc(100% - 40px),1125px); }
.resident-profile-dialog .resident-edit-dialog { position:relative; }
.resident-tenancy-editor { margin-top:34px; padding:30px 0 0; border-top:1px solid var(--line); }
.resident-editor-heading { display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:18px; }
.resident-editor-heading h3 { margin:0; font-size:1.45rem; }
.resident-editor-heading span { color:var(--muted); font-size:.84rem; }
.tenancy-editor-card { position:relative; margin-bottom:14px; padding:20px; border:1px solid var(--line); background:#f9faf7; }
.tenancy-editor-title { display:flex; align-items:baseline; justify-content:space-between; gap:18px; margin-bottom:17px; }
.tenancy-editor-title span { color:var(--muted); font-size:.84rem; }
.tenancy-form { grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.tenancy-form .tenancy-notes { grid-column:1 / -1; }
.tenancy-form .portal-check { align-self:end; min-height:46px; }
.tenancy-form .button { grid-column:1 / -1; }
.tenancy-rent-history { display:grid; gap:4px; margin-top:15px; padding-top:14px; border-top:1px solid var(--line); color:var(--muted); font-size:.82rem; }
.tenancy-rent-history b { color:var(--ink); }
.tenancy-delete-form { position:absolute; right:20px; bottom:20px; }
.tenancy-add { margin-top:16px; border:1px dashed #b8c3b2; background:#fff; }
.tenancy-add summary { padding:16px 18px; color:#477d2d; font-weight:700; cursor:pointer; }
.tenancy-add .tenancy-form { padding:0 18px 18px; }
.resident-account-actions { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:28px; margin-top:34px; padding-top:26px; border-top:1px solid var(--line); }
.resident-account-actions .resident-password-form { margin:0; padding:0; border:0; }
.resident-account-actions .resident-view-form { position:static; margin:0; }

/* Datenbank-Auswertung: Kennzahlen, aktuelle Belegung und Zimmerchronologien. */
.analytics-content { padding-top:64px; }
.analytics-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.analytics-kpis article { display:grid; min-height:145px; padding:24px; border:1px solid var(--line); background:#fff; }
.analytics-kpis span { color:#599438; text-transform:uppercase; letter-spacing:.08em; font-size:.7rem; font-weight:800; }
.analytics-kpis strong { align-self:end; font-size:2rem; line-height:1.1; }
.analytics-kpis small { margin-top:6px; color:var(--muted); }
.analytics-section { padding:76px 0 0; }
.analytics-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:26px; }
.analytics-heading .section-label { margin-bottom:14px; }
.analytics-heading p:last-child { max-width:420px; margin:0; color:var(--muted); text-align:right; }
/* Belegungskorridor: Zeitachse und Balken werden unmittelbar aus den Mietzeiträumen aufgebaut. */
.occupancy-scroll { overflow-x:auto; padding:8px 0 4px; }
.occupancy-chart { min-width:760px; }
.occupancy-axis,.occupancy-row { display:grid; grid-template-columns:130px minmax(0,1fr); gap:18px; }
.occupancy-axis { align-items:end; height:42px; }
.occupancy-axis > div { position:relative; height:100%; }
.occupancy-axis b { position:absolute; bottom:8px; color:var(--muted); font-size:.72rem; transform:translateX(6px); }
.occupancy-row { align-items:center; margin-bottom:12px; }
.occupancy-row > strong { font-size:.78rem; text-transform:uppercase; }
.occupancy-track { position:relative; height:42px; overflow:hidden; background:#eef0ed; }
.occupancy-gridline { position:absolute; z-index:1; top:0; bottom:0; width:2px; background:#cdd1ca; pointer-events:none; }
.occupancy-segment { position:absolute; z-index:2; top:5px; height:32px; min-width:3px; overflow:hidden; padding:0 8px; border:0; box-shadow:inset 2px 0 #fff; color:#fff; font-size:.68rem; font-weight:700; line-height:32px; text-align:left; white-space:nowrap; cursor:pointer; }
.occupancy-segment:hover,.occupancy-segment:focus-visible { z-index:3; filter:brightness(.9); outline:2px solid var(--ink); outline-offset:2px; }
.occupancy-segment span { display:block; overflow:hidden; text-overflow:ellipsis; }
.occupancy-segment--lease { background:#79b852; }
.occupancy-segment--sublease { background:#3f7e9f; }
.occupancy-track .occupancy-segment--sublease { z-index:4; }
.occupancy-track .occupancy-segment--end-divider { box-shadow:inset 2px 0 #fff,inset -2px 0 #fff; }
.occupancy-segment--private_use { background:#755092; }
.occupancy-segment--legacy { background:#b9674d; }
.occupancy-segment--no_move_in { background:#cf5653; }
.occupancy-legend { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px 24px; margin-top:24px; padding:20px 24px; border-radius:14px; background:#eef0ed; }
.occupancy-legend span { display:flex; align-items:center; gap:10px; font-size:.78rem; font-weight:800; text-transform:uppercase; }
.occupancy-legend i { width:24px; height:14px; flex:0 0 auto; border-radius:5px; }
/* Detaillierter Gesamtzeitstrahl am Ende der Auswertung. */
.total-timeline-reading { display:flex; align-items:center; gap:28px; padding:17px 22px; border-radius:14px; background:#e9f0ec; font-size:.82rem; }
.total-timeline-reading strong { color:#367d63; text-transform:uppercase; letter-spacing:.04em; }
.total-timeline-legend { margin:18px 0 26px; background:transparent; padding:0; }
.total-timeline-scroll { overflow-x:auto; padding-bottom:8px; }
.total-timeline-chart { min-width:1050px; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:#fff; }
.total-timeline-axis,.total-timeline-row { display:grid; grid-template-columns:250px minmax(0,1fr); }
.total-timeline-axis { height:48px; border-bottom:1px solid var(--line); }
.total-timeline-axis > div { position:relative; }
.total-timeline-axis b { position:absolute; bottom:10px; color:var(--muted); font-size:.72rem; transform:translateX(7px); }
.total-timeline-group { position:relative; padding:34px 0 8px; border-bottom:1px solid var(--line); }
.total-timeline-group:last-child { border-bottom:0; }
.total-timeline-group h3 { position:absolute; top:9px; left:14px; z-index:4; margin:0; color:#43835e; font-size:.76rem; text-transform:uppercase; }
.total-timeline-row { min-height:29px; }
.total-timeline-name { overflow:hidden; padding:5px 14px 5px 26px; border:0; background:#f3f4f2; color:var(--ink); font:inherit; font-size:.73rem; text-align:left; text-overflow:ellipsis; white-space:nowrap; cursor:pointer; }
.total-timeline-name:hover,.total-timeline-name:focus-visible { color:var(--green-dark); text-decoration:underline; }
.total-timeline-track { position:relative; min-height:29px; }
.total-timeline-bar { position:absolute; z-index:2; top:9px; height:11px; min-width:3px; padding:0; border:0; border-radius:6px; cursor:pointer; }
.total-timeline-point { position:absolute; z-index:3; top:9px; width:10px; height:10px; padding:0; border:0; border-radius:50%; transform:translateX(-5px); cursor:pointer; }
.total-timeline-point span { position:absolute; left:13px; top:-2px; color:inherit; font-size:.6rem; font-weight:700; white-space:nowrap; }
.total-timeline-bar:hover,.total-timeline-bar:focus-visible,.total-timeline-point:hover,.total-timeline-point:focus-visible { filter:brightness(.88); outline:2px solid var(--ink); outline-offset:2px; }
.analytics-current-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.current-room-card { display:grid; grid-template-columns:58px minmax(0,1fr); align-items:center; gap:18px; min-height:128px; padding:22px; border:1px solid #b7d5a5; background:#fff; }
.current-room-card.is-empty { border-color:var(--line); background:#f4f5f2; }
.current-room-card div { display:grid; gap:3px; }
.current-room-card small,.current-room-card span { color:var(--muted); font-size:.8rem; }
.current-room-card strong { font-size:1.05rem; }
.room-history-grid { display:grid; grid-template-columns:1fr; gap:18px; }
.room-history { padding:0; border:1px solid var(--line); background:#fff; }
.room-history > summary { display:flex; align-items:center; gap:18px; padding:22px; cursor:pointer; list-style:none; }
.room-history > summary::-webkit-details-marker { display:none; }
.room-history[open] > summary { border-bottom:1px solid var(--line); }
.room-history > summary::after { content:'+'; display:grid; width:28px; height:28px; flex:0 0 auto; place-items:center; border:1px solid #b7d5a5; border-radius:50%; color:#477d2d; font-size:1.15rem; font-weight:500; line-height:1; }
.room-history[open] > summary::after { content:'−'; }
.room-history h3 { margin:0; font-size:1.4rem; }
.room-history summary small { margin-left:auto; color:var(--muted); text-align:right; }
.room-history-list { display:grid; }
.tenancy-row { display:grid; grid-template-columns:minmax(190px,1.15fr) minmax(190px,1fr) minmax(210px,.9fr) minmax(280px,1.45fr); gap:13px 28px; align-items:start; padding:20px 22px; border-bottom:1px solid var(--line); }
.tenancy-row:last-child { border-bottom:0; }
.tenancy-row.is-current { border-left:4px solid var(--green); padding-left:18px; background:#f5faf2; }
.tenancy-row--private_use { border-left-color:#755092!important; }
.tenancy-row--sublease { border-left-color:#3f7e9f!important; }
.tenancy-row--no_move_in { border-left-color:#c65a50!important; }
.tenancy-person,.tenancy-period { display:grid; align-content:start; gap:3px; }
.tenancy-person span,.tenancy-period span { color:var(--muted); font-size:.78rem; }
.analytics-resident-link { display:block; width:max-content; max-width:100%; padding:0; border:0; background:none; color:var(--ink); font:inherit; font-weight:700; text-align:left; cursor:pointer; }
.analytics-current .analytics-resident-link,.room-history-list .analytics-resident-link { font-size:1.2rem; }
.analytics-resident-link:hover,.analytics-resident-link:focus-visible { color:var(--green-dark); text-decoration:underline; text-underline-offset:3px; }
.analytics-current .analytics-resident-link:hover,.analytics-current .analytics-resident-link:focus-visible,.room-history-list .analytics-resident-link:hover,.room-history-list .analytics-resident-link:focus-visible { color:var(--green); text-decoration:none; }
.tenancy-money { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.tenancy-money span { display:grid; align-content:start; }
.tenancy-money small { color:var(--muted); font-size:.7rem; }
.tenancy-row > p { grid-column:1 / -1; }
.analytics-rent-history { display:grid; gap:4px; min-height:100%; padding-left:24px; border-left:1px solid var(--line); color:var(--muted); font-size:.78rem; }
.analytics-rent-history b { color:var(--ink); }
.analytics-rent-history .rent-total { margin-top:7px; padding-top:7px; border-top:1px solid var(--line); color:var(--ink); font-size:.86rem; }
.analytics-rent-history .rent-person-total { color:#4f8731; font-size:.82rem; }
.tenancy-row--pre-2022 { background-color:#fff; background-image:repeating-linear-gradient(135deg,transparent 0,transparent 5px,#f5f5f5 5px,#f5f5f5 6px); color:#959595; }
.tenancy-row--pre-2022 .analytics-resident-link,.tenancy-row--pre-2022 .tenancy-person span,.tenancy-row--pre-2022 .tenancy-period b,.tenancy-row--pre-2022 .tenancy-period span,.tenancy-row--pre-2022 .tenancy-money small,.tenancy-row--pre-2022 .tenancy-money b,.tenancy-row--pre-2022 .analytics-rent-history,.tenancy-row--pre-2022 .analytics-rent-history b,.tenancy-row--pre-2022 .analytics-rent-history .rent-total,.tenancy-row--pre-2022 .analytics-rent-history .rent-person-total,.tenancy-row.tenancy-row--pre-2022 > p { color:#959595; }
.tenancy-row--sublease,.tenancy-row--sublease .analytics-resident-link,.tenancy-row--sublease .tenancy-person span,.tenancy-row--sublease .tenancy-period b,.tenancy-row--sublease .tenancy-period span,.tenancy-row--sublease .tenancy-money small,.tenancy-row--sublease .tenancy-money b,.tenancy-row--sublease .analytics-rent-history,.tenancy-row--sublease .analytics-rent-history b,.tenancy-row--sublease .analytics-rent-history .rent-total,.tenancy-row--sublease .analytics-rent-history .rent-person-total,.tenancy-row.tenancy-row--sublease > p { color:#3f7e9f; }
.analytics-rent-history .rent-gross { margin-top:7px; padding-top:7px; border-top:1px solid var(--line); }
.analytics-rent-history .rent-offset { font-weight:700; }
.tenancy-row > p { margin:0; color:var(--muted); font-size:.8rem; line-height:1.5; }
.open-tenancy-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.open-tenancy-list article { display:grid; grid-template-columns:58px minmax(0,1fr); gap:18px; padding:20px; border:1px solid var(--line); background:#fff; }
.open-tenancy-list article div { display:grid; gap:3px; }
.open-tenancy-list span,.open-tenancy-list p { color:var(--muted); font-size:.82rem; }
.open-tenancy-list p { margin:5px 0 0; }
.open-tenancy-list .open-tenancy--pre-2022 { background-color:#fff; background-image:repeating-linear-gradient(135deg,transparent 0,transparent 5px,#f5f5f5 5px,#f5f5f5 6px); color:#959595; }
.open-tenancy-list .open-tenancy--pre-2022 .analytics-resident-link,.open-tenancy-list .open-tenancy--pre-2022 span,.open-tenancy-list .open-tenancy--pre-2022 strong,.open-tenancy-list .open-tenancy--pre-2022 p { color:#959595; }
.legacy-price-note { display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; margin-top:16px; padding:18px 20px; background:#292929; color:#fff; }
.legacy-price-note span { color:#cfd3ca; }
.legacy-price-note b { font-size:.88rem; }
.analytics-source-note { margin-top:60px; padding:24px 28px; border-left:4px solid var(--green); background:#edf5e8; }
.analytics-source-note p { margin:5px 0 0; color:#596254; font-size:.86rem; line-height:1.55; }
.device-guide-notice p,.house-waste-note p,.important-card-note,.legacy-price-note span,.note { font-size:.86rem; }

/* Nur Desktop, nur Auswertung: von der letzten Position um ein Fünftel des Durchmessers (52px / 5 = 10,4px) nach links. Transform verschiebt keine anderen Elemente. */
@media (min-width:761px) {
  .portal-page--admin-auswertung-php .room-badge { transform:translateX(-1.9px); }
}

@media (max-width:1180px) {
  .portal-card-grid--admin { grid-template-columns:repeat(3,1fr); }
  .analytics-current-grid { grid-template-columns:repeat(2,1fr); }
  .room-history-grid { grid-template-columns:1fr; }
  .tenancy-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:760px) {
  .resident-profile-dialog { width:min(100% - 28px,680px); }
  .tenancy-editor-title,.resident-editor-heading,.analytics-heading { align-items:flex-start; flex-direction:column; }
  .tenancy-form { grid-template-columns:1fr; }
  .tenancy-form .tenancy-notes,.tenancy-form .button { grid-column:auto; }
  .tenancy-delete-form { position:static; margin-top:14px; }
  .resident-account-actions { grid-template-columns:1fr; }
  .analytics-kpis,.analytics-current-grid,.open-tenancy-list { grid-template-columns:1fr; }
  .analytics-section { padding-top:52px; }
  .analytics-heading p:last-child { text-align:left; }
  .tenancy-row { grid-template-columns:1fr; }
  .analytics-rent-history,.tenancy-row > p { grid-column:auto; }
  .analytics-rent-history { min-height:0; padding:12px 0 0; border-top:1px solid var(--line); border-left:0; }
  .occupancy-axis,.occupancy-row { grid-template-columns:95px minmax(0,1fr); gap:10px; }
  .occupancy-legend { grid-template-columns:repeat(2,minmax(0,1fr)); padding:16px; }
  .total-timeline-reading { align-items:flex-start; flex-direction:column; gap:5px; }
  .total-timeline-legend { padding:0; }
}
.portal-resident-body--documents,.portal-resident-body--reports { grid-template-columns:1fr; }
.portal-resident-body--documents { background:#fcfdfb; }
.portal-admin-upload { display:grid; grid-template-columns:1fr 1fr minmax(260px,1.25fr) auto; align-items:end; gap:14px; padding:22px; border:1px solid var(--line); background:#fff; }
.portal-admin-upload .portal-check { grid-column:1 / span 2; }
.portal-admin-upload .button { margin-bottom:0; white-space:nowrap; }
.admin-document-list { padding:4px 22px 22px; border:1px solid var(--line); border-top:0; background:#fff; }
.portal-document-main { display:flex; flex:1 1 auto; align-items:center; gap:18px; min-width:0; }
.document-visibility-form { flex:0 0 auto; margin:0; }
.document-visibility-form label { display:grid; width:22px; height:22px; place-items:center; cursor:pointer; }
.document-visibility-form input[type="checkbox"] { width:18px; height:18px; margin:0; accent-color:#1677e8; cursor:pointer; }
.portal-history-filter { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(260px,1fr); align-items:end; gap:16px; margin-bottom:26px; }
.portal-history-filter label { display:grid; gap:7px; font-size:.88rem; font-weight:700; }
.portal-history-filter select { box-sizing:border-box; width:100%; height:47px; padding:0 38px 0 13px; border:1px solid #cbd2c7; border-radius:4px; background:#fff; color:var(--ink); font:inherit; }
.portal-history-days { display:grid; gap:10px; }
.portal-history-day { border:1px solid var(--line); background:#fff; }
.portal-history-day summary { display:flex; justify-content:space-between; gap:18px; padding:17px 20px; cursor:pointer; list-style:none; }
.portal-history-day summary::-webkit-details-marker { display:none; }
.portal-history-day summary span { color:var(--muted); font-size:.87rem; }
.portal-history-day > div { padding:0 20px; border-top:1px solid var(--line); }
.portal-history-day article { display:flex; justify-content:space-between; gap:20px; padding:13px 0; border-bottom:1px solid var(--line); }
.portal-history-day article:last-child { border-bottom:0; }
.portal-history-day article span { color:var(--muted); font-size:.88rem; }
.portal-history-day article .portal-history-entry-copy { display:grid; gap:4px; color:var(--ink); }
.portal-history-entry-copy small { color:var(--muted); font-size:.84rem; font-weight:400; }
.portal-history-day article .portal-history-meta { flex:0 0 auto; }
.portal-report-list article { display:flex; justify-content:space-between; gap:28px; padding:24px; border:1px solid var(--line); background:#fff; }
.portal-report-list article > div { max-width:780px; }
.portal-report-list strong,.portal-report-list span { display:block; }
.portal-report-list span,.portal-report-list small { color:var(--muted); font-size:.88rem; }
.portal-report-list p { line-height:1.6; }
.portal-form.compact { min-width:180px; align-content:start; }
.portal-history > div { display:flex; justify-content:space-between; gap:22px; padding:16px 0; border-bottom:1px solid var(--line); }
.portal-history span { color:var(--muted); font-size:.9rem; }
@media (min-width:761px) and (max-width:1500px) { .portal-menu-toggle{display:flex}.portal-nav{position:absolute;top:calc(100% + 1px);right:0;left:0;display:none;flex-direction:column;align-items:stretch;gap:8px;padding:16px 80px 22px;border-bottom:1px solid var(--line);background:#fff;box-shadow:0 12px 20px rgba(31,39,28,.08)}.portal-nav.is-open{display:flex}.portal-nav-link{padding:14px 0;text-align:left}.portal-logout{margin:0;padding:14px 0;border-left:0;text-align:left} }
@media (max-width:1500px) { .portal-nav-dropdown{display:grid;width:100%;grid-template-columns:minmax(0,1fr) 44px;gap:0}.portal-nav-dropdown-toggle{width:44px;height:48px;justify-self:end}.portal-nav-submenu{position:static;grid-column:1 / -1;width:100%;min-width:0;margin:0 0 5px;padding:5px 0 5px 18px;border:0;border-left:2px solid #dbe7d4;box-shadow:none}.portal-nav-dropdown.is-open .portal-nav-submenu{display:grid}.portal-nav-submenu a{padding:10px 12px} }
@media (min-width:761px) and (max-width:1500px) { .portal-user-name{order:-1;margin:0;padding:10px 0 18px;border-left:0;border-bottom:1px solid var(--line)} }
@media (max-width:1500px) { .portal-area-switch{align-self:flex-start;margin:5px 0} }
@media (max-width:760px) { .portal-card-grid--admin-hub{grid-template-columns:1fr} }

/* Installierbare Admin-Web-App. */
.portal-page--admin-installationen-php .portal-content{padding-top:28px}.admin-pwa-layout{display:grid;min-width:0;gap:18px}.admin-pwa-intro{display:grid;min-width:0;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:22px;padding:26px}.admin-pwa-intro>div{min-width:0}.admin-pwa-logo{display:block;width:88px;height:88px}.admin-pwa-intro h2{margin:0 0 7px;font-size:1.75rem;overflow-wrap:anywhere}.admin-pwa-intro p{margin:0;color:var(--muted);line-height:1.55;overflow-wrap:anywhere}.admin-pwa-install{grid-column:1/-1;width:100%;margin-top:2px}.admin-pwa-status{grid-column:1/-1;min-width:0;margin:0;padding:13px 16px;border-left:4px solid var(--green);background:#f2f7ef;color:var(--muted)}.admin-pwa-guides{display:grid;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.admin-pwa-guides.is-single-platform{grid-template-columns:1fr}.admin-pwa-guide{min-width:0;max-width:100%;padding:24px;overflow:hidden}.admin-pwa-guide-heading{display:flex;min-width:0;align-items:center;gap:12px;margin-bottom:18px}.admin-pwa-guide-heading span{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-size:.78rem;font-weight:900}.admin-pwa-guide h2,.admin-pwa-guide h3{margin:0;overflow-wrap:anywhere}.admin-pwa-guide h2{font-size:1.5rem}.admin-pwa-guide h3{font-size:1.05rem}.admin-pwa-browser+.admin-pwa-browser{margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}.admin-pwa-steps{min-width:0;margin:12px 0 0;padding-left:22px}.admin-pwa-steps li{padding:4px 0 4px 5px;line-height:1.55;overflow-wrap:anywhere}.admin-pwa-note{min-width:0;margin:0;padding:18px 20px;border:1px solid #d6e4cf;background:#f7faf5;color:var(--muted);line-height:1.55;overflow-wrap:anywhere}.admin-pwa-note strong{color:var(--ink)}
@media(max-width:760px){.admin-pwa-intro{grid-template-columns:58px minmax(0,1fr);gap:16px;padding:20px}.admin-pwa-logo{width:58px;height:58px}.admin-pwa-intro h2{font-size:1.4rem}.admin-pwa-guides{grid-template-columns:1fr}.admin-pwa-guide{padding:20px 18px}.admin-pwa-guide-heading{align-items:flex-start}.admin-pwa-install{min-height:54px}}
.legal-page { min-height:100vh; display:flex; flex-direction:column; }
.legal-page footer { margin-top:auto; }
.legal-header { padding:17px 0; background:#fff; border-bottom:1px solid var(--line); }
.back-link { color:#477d2d; text-decoration:none; font-size:.9rem; font-weight:700; }
.legal-content { flex:1; max-width:1600px; padding:86px 0; }
.legal-content .eyebrow { color:#599438; }
.legal-content h1 { color:var(--ink); }
.legal-content h2 { margin:0 0 14px; font-size:1.35rem; }
.legal-content section { padding:28px 0; border-bottom:1px solid var(--line); }
.legal-content p { color:#535751; }
.legal-content a { color:#477d2d; }
.legal-intro { margin-top:22px; font-size:1.12rem; }
.privacy-page .legal-content { max-width:1600px; display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); column-gap:80px; align-content:start; }
.privacy-page .legal-content > .eyebrow,
.privacy-page .legal-content > h1,
.privacy-page .legal-content > .legal-intro { grid-column:1 / -1; }
@media (max-width:760px) { .wrap{width:min(100% - 56px,1120px)}.site-header{padding:12px 0}.brand img{width:190px;max-width:56vw}.nav-links{gap:7px}.nav-links a:not(.resident-link){display:none}.resident-link{padding:8px 11px;font-size:.76rem;white-space:nowrap}.hero{min-height:calc(100svh - 65px);min-height:530px}.hero::before{background-position:60% center}.hero-inner{width:min(100% - 56px,1120px);padding:78px 0 48px;transform:translateY(46px)}.hero p:not(.eyebrow){font-size:1.04rem}h1{font-size:clamp(2.75rem,12vw,4.75rem)}.intro,.living-grid,.contact{grid-template-columns:1fr;gap:35px}.facts{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}.gallery figure:first-child{grid-row:auto;min-height:390px}.gallery figure,.gallery .gallery-feature{min-height:240px}.spaces-header{display:block}.spaces-header p{margin-top:17px}.resident-card{padding:30px 24px}section{padding:68px 0}#zuhause{padding-top:38px}.privacy-page .legal-content{display:block}.footer-content{align-items:center;flex-direction:row;gap:10px;font-size:.68rem;white-space:nowrap}.footer-links{gap:9px}.footer-links a{padding-left:9px}.rainbow-heart{margin-right:3px;font-size:1.45rem}.portal-menu-toggle{display:flex}.portal-nav{position:absolute;top:calc(100% + 1px);right:0;left:0;display:none;flex-direction:column;align-items:stretch;gap:8px;padding:16px 28px 22px;border-bottom:1px solid var(--line);background:#fff;box-shadow:0 12px 20px rgba(31,39,28,.08)}.portal-nav.is-open{display:flex}.portal-nav-link{padding:14px 0;text-align:left}.portal-logout{margin:0;padding:14px 0;border-left:0;text-align:left}.portal-auth{min-height:calc(100vh - 135px);padding:42px 28px}.portal-auth-card{padding:30px 24px}.portal-hero,.portal-subhero{padding:58px 0}.portal-subhero .wrap{align-items:flex-start;gap:16px}.portal-heading-icon{width:48px;height:48px;font-size:1.7rem}.portal-content{padding:56px 0 84px}.portal-start-grid,.portal-card-grid,.portal-card-grid--admin,.portal-info-grid,.portal-rules,.portal-guide-grid,.portal-two-column,.portal-resident-body,.portal-upload-panel{grid-template-columns:1fr}.portal-start-card{grid-template-columns:47px minmax(0,1fr) 18px;gap:15px;min-height:0;padding:22px}.portal-start-card h2{font-size:1.3rem}.portal-icon{width:42px;height:42px;font-size:1.3rem}.portal-section{padding-top:68px}.portal-card{min-height:auto}.portal-document-row,.portal-status-list li,.portal-resident summary,.portal-report-list article,.portal-history > div{align-items:flex-start;flex-direction:column}.portal-document-actions{width:100%}.portal-document-actions .document-action,.portal-document-actions form{flex:0 0 auto}.portal-document-actions form .document-action{width:46px}.portal-resident-body{padding:20px}.portal-form.compact{min-width:0}.portal-report-list article{gap:18px}.wlan-card{min-height:0;padding-right:142px!important}.wlan-card img{right:20px;bottom:20px;width:100px;height:100px}.alexa-feature-header{align-items:flex-start;flex-direction:column;padding:25px 22px}.alexa-feature-header img{width:min(100%,310px)}.alexa-areas{grid-template-columns:1fr;padding:20px 16px 24px}.alexa-area-heading{align-items:flex-start;flex-direction:column;gap:4px}.alexa-area-heading span{white-space:normal}.alexa-living-layout{grid-template-columns:1fr}.alexa-group-command{min-height:150px;border-top:1px solid #b9def0;border-left:0}.alexa-command-list--described li{align-items:flex-start;flex-direction:column;gap:3px}.alexa-command-list span{text-align:left} }
@media (max-width:900px) {
  .together-card--smoking { grid-template-columns:1fr; }
  .together-card--smoking .together-photo { min-height:380px; }
  .together-card--kitchen { grid-template-columns:1fr; gap:28px; }
  .together-card--doors { grid-template-columns:180px minmax(0,1fr); }
  .together-card--doors .together-card-copy { padding:38px; }
  .important-overview { grid-template-columns:1fr; }
  .important-card { min-height:0; }
  .wifi-feature { grid-template-columns:minmax(0,1fr) 190px; }
  .wifi-qr img { width:140px; height:140px; }
  .broadcast-card { grid-template-columns:1fr; }
  .broadcast-number { margin-left:80px; }
  .streaming-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bvg-app-card { grid-template-columns:76px minmax(0,1fr); }
  .bvg-app-icon { width:76px; height:76px; border-radius:15px; }
  .app-store-buttons { grid-column:1 / -1; justify-content:flex-start; }
  .hospital-card { grid-template-columns:62px minmax(0,1fr) minmax(140px,210px); }
  .hospital-card > b { grid-column:2 / -1; justify-self:start; }
}
@media (max-width:760px) {
  .together-page { padding-top:42px; }
  .together-intro { margin-bottom:26px; }
  .together-intro > p:last-child { font-size:.96rem; }
  .together-grid { grid-template-columns:1fr; gap:16px; }
  .together-card--smoking,.together-card--doors { grid-column:auto; grid-template-columns:1fr; }
  .together-card--smoking .together-photo { min-height:290px; }
  .together-card--smoking .together-card-copy { order:1; }
  .together-card--smoking .together-photo { order:2; }
  .together-card--smoking .together-photo::after { background:linear-gradient(0deg,rgba(16,35,43,.22),transparent 45%); }
  .together-card--kitchen { grid-column:auto; gap:24px; padding:28px 22px; }
  .together-kitchen-point { grid-template-columns:40px minmax(0,1fr); gap:12px; padding:15px 14px; }
  .together-kitchen-point > span { width:38px; height:38px; }
  .together-kitchen-point svg { width:21px; height:21px; }
  .together-card-copy { padding:28px 22px; }
  .together-card h2 { font-size:2rem; }
  .together-card .together-lead { font-size:1rem; }
  .together-door-visual { min-height:150px; }
  .together-door-visual svg { width:90px; height:90px; }
  .together-card--doors .together-card-copy { padding:28px 22px; }
  .together-steps { display:grid; grid-template-columns:1fr; }
  .together-card--compact { min-height:0; padding:25px 22px 28px; }
  .together-card--compact h2 { font-size:1.7rem; }
  .together-card--compact .together-card-topline { margin-bottom:20px; }
  .together-icon { width:44px; height:44px; }
  .together-icon svg { width:23px; height:23px; }
  .together-heading-icon svg { width:27px; height:27px; }
  .important-page { padding-top:34px; }
  .important-card { grid-template-columns:44px minmax(0,1fr); gap:15px; padding:22px 20px; }
  .important-icon { width:42px; height:42px; }
  .important-icon svg { width:22px; height:22px; }
  .important-card h2 { font-size:1.45rem; }
  .important-action,.wifi-copy-button,.broadcast-button { display:flex; width:100%; align-items:center; justify-content:center; text-align:center; }
  .emergency-numbers { display:grid; }
  .emergency-numbers a { width:100%; justify-content:flex-start; }
  .wifi-feature { grid-template-columns:1fr; gap:25px; padding:24px 20px; }
  .wifi-feature-copy { grid-template-columns:44px minmax(0,1fr); gap:15px; }
  .wifi-qr { display:none; }
  .wifi-qr img { width:min(190px,100%); height:auto; }
  .broadcast-card { gap:24px; padding:24px 20px; }
  .broadcast-copy { grid-template-columns:44px minmax(0,1fr); gap:15px; }
  .broadcast-number { margin-left:0; padding:24px 16px; }
  .broadcast-button { width:100%; padding-right:16px; padding-left:16px; text-align:center; }
  .streaming-guide { margin-top:28px; padding:24px 20px; }
  .streaming-header { grid-template-columns:44px minmax(0,1fr); gap:15px; }
  .streaming-header-icon { width:42px; height:42px; }
  .streaming-header-icon svg { width:23px; height:23px; }
  .streaming-grid { gap:10px; margin-top:20px; }
  .streaming-card { min-height:96px; padding:14px; }
  .streaming-card > img { width:min(100%,150px); height:52px; }
  .transit-guide { margin-top:28px; }
  .transit-header { padding:20px; }
  .transit-header > strong { font-size:1.8rem; }
  .transit-row { grid-template-columns:74px minmax(0,1fr) 42px; gap:13px; min-height:96px; padding:16px 14px; }
  .line-badge { min-width:68px; min-height:43px; padding:4px 8px; font-size:1.45rem; }
  .transit-row h3 { font-size:1.05rem; }
  .transit-row p { font-size:.78rem; line-height:1.4; }
  .transit-disruption { gap:6px 8px; margin-top:8px!important; font-size:.72rem!important; }
  .transit-disruption strong { padding:5px 8px; font-size:.64rem; }
  .transit-mode-logo { width:40px; height:40px; }
  .bvg-app-card { grid-template-columns:60px minmax(0,1fr); gap:16px; padding:20px; }
  .bvg-app-icon { width:60px; height:60px; border-radius:12px; }
  .bvg-app-copy h3 { font-size:1.25rem; }
  .app-store-buttons { display:grid; width:100%; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .app-store-button { width:100%; min-width:0; gap:7px; padding:8px 10px; }
  .app-store-button > img { width:24px; height:24px; }
  .app-store-button small { font-size:.54rem; }
  .app-store-button strong { font-size:.9rem; }
  .nearby-guide { padding-top:52px; }
  .nearby-market-grid { grid-template-columns:1fr; }
  .nearby-card { grid-template-columns:72px minmax(0,1fr) 20px; gap:15px; min-height:112px; padding:18px; }
  .nearby-logo { width:72px; height:64px; padding:8px; }
  .nearby-logo--square img { width:46px!important; height:46px!important; max-width:46px!important; max-height:46px!important; }
  .pharmacy-card { grid-template-columns:72px minmax(0,1fr) 20px; }
  .pharmacy-card .nearby-logo { width:72px; height:64px; }
  .pharmacy-card .nearby-logo--square { width:72px; padding:8px; }
  .nearby-copy strong { font-size:1.25rem; }
  .hospital-card { grid-template-columns:48px minmax(0,1fr); gap:16px; padding:22px 18px; }
  .hospital-symbol { width:46px; height:46px; }
  .hospital-symbol::before,.hospital-symbol::after { width:24px; height:6px; }
  .hospital-card > img { grid-column:1 / -1; width:min(220px,70%); margin:8px auto 0; }
  .hospital-card > b { grid-column:1 / -1; width:100%; justify-self:stretch; text-align:center; }
}
@media (max-width:420px) {
  .streaming-grid { grid-template-columns:1fr; }
  .transit-row { grid-template-columns:68px minmax(0,1fr); }
  .transit-mode-logo { display:none; }
}
@media (max-width:760px) { .portal-user-name{order:-1;margin:0;padding:10px 0 18px;border-left:0;border-bottom:1px solid var(--line)} }
@media (max-width:760px) {
  body.portal-menu-open::after{position:fixed;z-index:8;inset:0;content:'';background:rgba(24,31,26,.46);backdrop-filter:blur(1px)}
  .portal-nav{font-size:1.14rem}
  .portal-nav.is-open{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px}
  .portal-nav-link,.portal-logout,.portal-return-admin{grid-column:1 / -1}
  .portal-user-name{z-index:1;grid-column:1;grid-row:1;font-size:1.04rem}
  .portal-user-name small{font-size:.84rem}
  .portal-area-switch{z-index:1;grid-column:2;grid-row:1;align-self:center;justify-self:end;margin:0}
  .portal-logout{margin-top:8px;padding-top:26px;border-top:1px solid #d7dcd4}
  .portal-nav:not(:has(.portal-area-switch)) .portal-user-name{grid-column:1 / -1}
}
@media (max-width:980px) { .portal-upload-form{grid-template-columns:1fr}.portal-upload-form .button{width:max-content} }
@media (min-width:761px) and (max-width:1180px) { .portal-card-grid--admin{grid-template-columns:repeat(2,1fr)}.portal-resident-body{grid-template-columns:1fr}.portal-resident-body > form:last-child{grid-column:auto} }
@media (max-width:760px) { .portal-resident-body > .portal-form:first-child{grid-template-columns:1fr}.portal-admin-document{align-items:flex-start;flex-direction:column}.portal-admin-document .portal-document-actions{width:100%}.portal-admin-document .portal-document-actions > *{flex:0 0 auto}.portal-admin-document .document-action{width:46px} }
@media (max-width:760px) { .portal-admin-upload,.portal-history-filter{grid-template-columns:1fr}.portal-admin-upload .portal-check{grid-column:auto}.portal-history-day article{align-items:flex-start;flex-direction:column;gap:3px;padding:10px 0}.portal-history-day article span{line-height:1.25}.portal-history-day > div{padding:0 16px}.portal-history-day summary{padding:15px 16px} }
@media (max-width:760px) { .portal-section-heading{align-items:stretch;flex-direction:column}.portal-section-heading>.button,.portal-section>.button:only-of-type,.portal-auth-card>.button:only-of-type{display:flex;width:100%;max-width:none;box-sizing:border-box;align-items:center;justify-content:center;text-align:center}.portal-dialog{width:min(100% - 28px,680px)}.portal-dialog-card{padding:30px 24px} }
@media (max-width:760px) { .portal-return-admin{margin:0;padding:14px 0 0;border:0}.portal-return-admin button{width:100%} }
@media (max-width:760px) { .mobile-title-hyphen{display:inline!important}.mobile-title-break{display:block} }
@media (max-width:760px) { body.portal-page--admin-bewohner-php .portal-content,body.portal-page--admin-unterlagen-php .portal-content{padding-top:21px}.admin-list-section{padding-top:0}.resident-list-tools{width:100%;margin:0 0 28px;align-items:end;justify-content:stretch;gap:0 27px;flex-wrap:wrap}.resident-sort-label{flex:0 0 177px;order:1}.resident-sort-label select{min-width:0;width:100%}.resident-search{flex:1;width:auto;order:1}.resident-alphabet{flex:1 0 100%;order:2;flex-wrap:wrap;overflow:visible;margin-top:25.5px;padding-bottom:0}.resident-alphabet button{flex:0 0 auto}.resident-section-heading{margin-bottom:40px} }
@media (max-width:760px) { .admin-list-section{padding-top:27px} }
/* Nur Mobil: eine kompakte Zeile mit kleineren Kreisen; Desktop-Positionen werden hier nicht übernommen. */
@media (max-width:760px) { .portal-resident summary{display:flex!important;align-items:center!important;flex-direction:row!important;justify-content:space-between!important;gap:0;padding:20px 27px}.room-badge,.resident-status-button,.resident-delete-list{width:42px;height:42px}.room-badge{margin:0;font-size:.9rem!important}.resident-summary-primary{display:flex!important;flex:1 1 auto;align-items:center!important;gap:16px;min-width:0}.resident-summary-name{min-width:0}.resident-summary-name strong{font-size:1.2rem;white-space:nowrap}.resident-summary-name small{white-space:nowrap}.resident-summary-actions{display:flex!important;flex:0 0 auto;flex-direction:row!important;align-items:center!important;gap:0}.resident-summary-actions .resident-delete-list{margin-left:12px!important}.resident-status-button svg{width:23px;height:23px}.resident-delete-list svg{width:21px;height:21px} }
@media (max-width:760px) { .portal-resident{align-items:center;min-height:0}.resident-summary-trigger{align-items:center;padding:20px 0 20px 27px}.resident-summary-actions{padding-right:27px}.portal-form--resident-edit{grid-template-columns:1fr}.portal-form--resident-edit .button{width:100%}.resident-password-form .button,.resident-view-form .button{min-width:0;width:100%}.resident-view-form{position:static;margin-top:14px} }
@media (max-width:1000px) { .waste-push-admin-section .portal-section-heading,.waste-push-admin-row{align-items:stretch;flex-direction:column}.waste-push-admin-section .portal-section-heading .button{width:100%}.waste-push-contact-form{width:100%;min-width:0;grid-template-columns:1fr}.waste-push-contact-footer{width:100%;flex:0 0 auto;align-items:stretch;flex-direction:column}.waste-push-admin-actions{width:100%;min-width:0;flex-wrap:nowrap}.waste-push-admin-actions>form,.waste-push-admin-actions>.button{min-width:0;flex:1 1 0}.waste-push-contact-footer .waste-push-admin-actions>.button{width:100%} }
@media (max-width:1000px) { .waste-push-schedules-heading{align-items:stretch;flex-direction:column}.waste-push-schedules-heading .button{width:100%}.waste-push-schedule-card{padding:18px}.waste-push-schedule-form,.waste-push-schedule-dialog-form{grid-template-columns:1fr}.waste-push-schedule-form .waste-push-schedule-wide,.waste-push-schedule-dialog-form .waste-push-placeholder-help{grid-column:auto}.waste-push-schedule-footer{align-items:stretch;flex-direction:column}.waste-push-schedule-footer .waste-push-admin-actions>.button{width:100%} }
@media (max-width:1000px) { .waste-push-section-title{align-items:start} }
@media (max-width:760px) { .waste-push-section-title{grid-template-columns:1fr;gap:16px;justify-items:start;text-align:left}.waste-push-section-title>div{width:100%;text-align:left} }
@media (max-width:1000px) { .waste-push-admin-actions>form{display:flex}.waste-push-admin-actions>form:has(>.portal-danger){flex:0 0 48px}.waste-push-admin-actions>.button{display:flex;width:100%;height:48px;min-height:48px;align-items:center;justify-content:center;box-sizing:border-box;padding:0 14px;font-size:.9rem;font-weight:700;line-height:1.2;white-space:nowrap}.waste-push-admin-actions>form>.portal-danger{width:48px;min-width:48px;height:48px;min-height:48px} }
@media (max-width:1000px) { .waste-push-devices-heading{align-items:flex-start;flex-direction:column}.waste-push-device-row{grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:start}.waste-push-device-state{grid-column:1}.waste-push-device-row .waste-push-test-form{grid-column:2;width:100%}.waste-push-device-row .waste-push-test-form .button{width:100%} }
@media (max-width:760px) { .resident-dialog-heading{gap:16px;margin-right:28px}.resident-dialog-heading .room-badge{width:42px;height:42px;font-size:.9rem!important} }
@media (max-width:1000px) { .house-topic-grid{grid-template-columns:1fr}.house-topic--waste{grid-column:auto}.house-waste-layout{grid-template-columns:1fr} }
@media (max-width:1050px) { .appliance-feature-header{grid-template-columns:1fr}.appliance-default-program{min-height:0}.appliance-quickstart{grid-template-columns:1fr}.appliance-care-grid{grid-template-columns:1fr 1fr}.appliance-care-card:last-child{grid-column:1 / -1} }
@media (max-width:760px) { .house-topic{padding:24px 21px}.house-topic-header{grid-template-columns:46px minmax(0,1fr);gap:13px}.house-topic-icon{width:46px;height:46px}.house-topic-icon svg{width:24px;height:24px}.house-bin-grid{grid-template-columns:1fr;gap:9px}.house-bin{display:grid;grid-template-columns:minmax(0,1fr) minmax(128px,.8fr);grid-template-rows:auto auto;width:auto;height:124px;min-height:124px;padding:15px 14px;border-top-width:12px}.house-bin-heading{grid-column:1;grid-row:1 / 3;gap:10px;align-self:stretch;padding-right:14px;border-right:1px solid #aaa}.house-bin-icon{width:42px;height:42px;flex-basis:42px}.house-bin-icon svg{width:23px;height:23px}.house-bin b{font-size:1.12rem}.house-bin small{margin-top:4px;font-size:.74rem}.house-bin-date-label{grid-column:2;grid-row:1;margin:0;padding:2px 0 0 14px;align-self:end;font-size:.6rem}.house-bin time{grid-column:2;grid-row:2;margin:6px 0 0;padding:0 0 0 14px;align-self:start;border-left:0}.house-bin time span{margin-bottom:5px;font-size:.6rem}.house-bin time strong{font-size:1.65rem;line-height:.85}.house-action-row{align-items:stretch;flex-direction:column}.house-button{width:100%;min-width:0}.device-placeholder{grid-template-columns:1fr;min-height:0;padding:28px 22px} }
@media (max-width:760px) { .appliance-feature-header{gap:22px;padding:25px 20px}.appliance-title{grid-template-columns:48px minmax(0,1fr);gap:13px}.appliance-title-icon{width:48px;height:48px}.appliance-title-icon svg{width:27px;height:27px}.appliance-title h2{font-size:2rem}.appliance-intro{font-size:.96rem}.appliance-default-program{padding:20px}.appliance-default-program strong{font-size:1.48rem}.appliance-quickstart{gap:26px;padding:26px 20px}.appliance-step-list li{grid-template-columns:39px minmax(0,1fr);gap:12px;padding:15px 0}.appliance-step-list li > span{width:36px;height:36px}.appliance-visuals{padding:14px}.appliance-control-panel{padding:10px}.appliance-control-panel img{min-height:92px;object-fit:cover;object-position:center}.appliance-detergent-card{grid-template-columns:100px minmax(0,1fr);gap:13px;padding:10px}.appliance-detergent-card img{width:100px;height:96px}.appliance-caution{grid-template-columns:44px minmax(0,1fr);gap:13px;margin:0 20px;padding:19px 18px}.appliance-caution > span{width:44px;height:44px}.appliance-caution svg{width:24px;height:24px}.appliance-caution h3{font-size:1.12rem}.appliance-care-heading{display:block;padding:34px 20px 15px}.appliance-care-heading > p{margin-top:8px;text-align:left}.appliance-care-grid{grid-template-columns:1fr;gap:10px;padding:0 20px 26px}.appliance-care-card:last-child{grid-column:auto}.appliance-feature-footer{align-items:stretch;flex-direction:column;padding:22px 20px}.appliance-manual-button{width:100%;min-width:0} }
@media (max-width:760px) { .device-accordion{gap:14px}.device-accordion-summary{grid-template-columns:49px minmax(0,1fr) 38px;gap:13px;min-height:108px;padding:19px 17px;border-top-width:5px}.device-accordion-icon{width:49px;height:49px}.device-accordion-icon svg{width:27px;height:27px}.device-accordion-copy > small{font-size:.59rem}.device-accordion-copy > strong{font-size:1.48rem}.device-accordion-copy > span{font-size:.78rem;line-height:1.35}.device-accordion-action > span{display:none}.device-accordion-action > b{width:38px;height:38px;font-size:1.35rem}.device-accordion-item[open] .device-accordion-action > span::after{content:none} }
@media (max-width:760px) { .resident-accordion{gap:14px!important}.resident-accordion-summary{grid-template-columns:49px minmax(0,1fr) 38px;gap:13px;min-height:108px;padding:19px 17px;border-top-width:5px}.resident-accordion-icon{width:49px;height:49px}.resident-accordion-icon svg{width:27px;height:27px}.resident-accordion-icon--text{font-size:.68rem}.resident-accordion-copy > small{font-size:.59rem}.resident-accordion-copy > strong{font-size:1.48rem}.resident-accordion-copy > span{font-size:.78rem;line-height:1.35}.resident-accordion-action > span{display:none}.resident-accordion-action > b{width:38px;height:38px;font-size:1.35rem}.resident-accordion-item[open] .resident-accordion-action > span::after{content:none}.resident-accordion-panel > .important-card,.resident-accordion-panel > .house-topic{padding:24px 20px}.resident-accordion-panel > .wifi-feature,.resident-accordion-panel > .broadcast-card,.resident-accordion-panel > .streaming-guide,.resident-accordion-panel > .transit-guide,.resident-accordion-panel > .nearby-guide{padding:24px 20px}.resident-accordion-panel .broadcast-number{margin-left:0}.resident-accordion-panel > .together-card--kitchen{padding:26px 20px}.resident-accordion-panel > .together-card--compact{padding:24px 20px}.resident-accordion-panel > .together-card--smoking .together-card-copy{padding:26px 20px} }
/* Mobil: primäre und sekundäre Formularaktionen nutzen immer die volle Formularbreite. */
@media (max-width:760px) { .portal-form .button{display:flex;width:100%;max-width:none;min-width:0;align-items:center;justify-content:center;justify-self:stretch;text-align:center;white-space:normal} }
@media (max-width:760px) { .portal-public-actions{gap:7px}.portal-language-switcher{font-size:.7rem}.portal-language-current{grid-template-columns:20px auto 11px;gap:6px;min-height:34px;padding:5px 9px}.portal-language-current img,.portal-language-options img{width:20px;height:14px}.portal-language-options{right:auto;left:0;width:145px}.portal-nav .portal-language-switcher{align-self:flex-start;margin:4px 0 8px} }
@media (max-width:1050px) { .device-guide-layout{grid-template-columns:1fr}.device-guide-image{min-height:0}.device-guide-tip-grid{grid-template-columns:1fr 1fr}.device-guide-tip-image{grid-column:1 / -1}.tv-step-grid{grid-template-columns:1fr 1fr}.tv-step-card--off{grid-column:1 / -1}.tv-step-card--off img{width:130px;justify-self:end}.tv-explanation-list{grid-template-columns:1fr}.tv-explanation-list p{min-height:0}.tv-explanation-list p + p{border-top:1px solid #d7dddb;border-left:0} }
@media (max-width:760px) { .device-guide-header{padding:27px 20px 23px}.device-guide-header h2{font-size:2rem}.device-guide-header p{font-size:.96rem}.device-guide-layout{gap:25px;padding:26px 20px}.device-guide-steps li{grid-template-columns:39px minmax(0,1fr);gap:12px;padding:15px 0}.device-guide-steps li > span{width:36px;height:36px}.device-guide-image{padding:15px}.device-guide-image img,.device-guide-image--portrait img{max-height:330px}.device-guide-wide-image{margin:0 20px 24px;padding:12px}.device-guide-wide-image img{max-height:220px}.device-guide-tip-grid,.device-guide-tip-grid--two{grid-template-columns:1fr;gap:10px;padding:0 20px 24px}.device-guide-tip-image{grid-column:auto}.device-guide-tip{padding:19px}.coffee-essential-guides{grid-template-columns:1fr;gap:14px;padding:0 20px 24px}.coffee-essential-figure{min-height:0;padding:13px}.coffee-essential-figure img,.coffee-essential-figure--portrait img{height:245px}.coffee-essential-copy{padding:21px 19px 22px}.coffee-essential-copy h3{font-size:1.3rem}.device-guide-notice{margin:0 20px 24px;padding:19px 18px}.device-guide-footer,.device-guide-footer--multiple{align-items:stretch;flex-direction:column;padding:20px}.device-guide-footer .button{width:100%;min-width:0}.tv-step-grid{grid-template-columns:1fr;gap:12px;padding:25px 20px 18px}.tv-step-card,.tv-step-card--off{grid-column:auto;grid-template-columns:minmax(0,1fr) 105px;min-height:325px;padding:18px}.tv-step-copy{grid-template-columns:42px minmax(0,1fr);gap:10px}.tv-step-number{width:42px;height:42px;font-size:1.4rem}.tv-step-copy strong{font-size:1rem}.tv-step-copy p{font-size:.82rem}.tv-step-card img,.tv-step-card--off img{width:100%;height:285px;justify-self:auto}.tv-explanation-list{margin:0 20px 25px}.tv-explanation-list p{padding:20px;font-size:.95rem} }
@media (max-width:760px) { .house-app-promo{margin-top:20px;padding:20px 17px}.house-app-promo-heading{grid-template-columns:54px minmax(0,1fr);gap:13px;margin-bottom:19px}.house-app-promo-heading > img{width:54px;height:54px;border-radius:14px}.house-app-promo-heading h3{font-size:1.62rem}.house-app-promo-heading p:last-child{font-size:.88rem;line-height:1.45}.house-app-promo-body{grid-template-columns:1fr;gap:10px}.house-app-qr{padding:13px}.house-app-qr img{width:150px;height:150px}.house-app-platforms{grid-template-columns:1fr}.house-app-platforms > div{padding:16px}.house-app-open{grid-column:auto;width:100%;justify-self:stretch} }
.admin-document-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px;padding:18px 20px;border:1px solid var(--line);background:#f8faf7}.admin-document-toolbar p{margin:0}.document-template-launcher{display:grid;grid-template-columns:minmax(210px,.7fr) minmax(0,1.3fr);gap:28px;margin:24px 0;padding:22px;border:1px solid var(--line);background:#f8faf7}.document-template-launcher h3{margin:0 0 6px}.document-template-launcher p{margin:0}.document-template-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.document-template-buttons .button{display:flex;min-width:0;min-height:46px;align-items:center;justify-content:center;padding:10px 24px;font-size:.82rem;line-height:1.25;text-align:center}.template-editor{max-width:1060px;margin:0 auto;padding:34px}.portal-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px}.template-editor .portal-form>label,.room-template-card>label{margin-top:18px}.template-editor textarea,.room-template-card textarea{width:100%;resize:vertical}.room-template-card textarea{overflow-y:hidden;resize:none}.template-form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:28px}.portal-form-warning{margin:18px 0 0;padding:15px 17px;border-left:4px solid #d4a62f;background:#fff9e8}.room-template-form{display:grid;gap:22px}.room-template-card{margin:0;padding:30px 26px 26px;border:1px solid var(--line)}.room-template-card h2{margin:0 0 26px;color:var(--green);font-size:2.23rem;line-height:1.1}.resident-document-tools{display:flex;justify-content:flex-end;margin:-12px 0 20px}
.portal-page--admin-zimmer-php .portal-content{padding-top:28px}.portal-page--admin-zimmer-php .portal-section{padding-top:0}
@media (min-width:761px){.portal-page--admin-zimmer-php .portal-lead{max-width:none;white-space:nowrap}}
.portal-page--admin-mietkalkulation-php .portal-content{padding-top:28px}.portal-page--admin-mietkalkulation-php .portal-section{padding-top:0}.rent-calculation-form{padding:32px;margin-top:24px}.rent-calculation-form>h2{margin:28px 0 16px}.rent-calculation-preview{padding:32px;margin-top:28px}.rent-preview-table{margin-top:18px;border:1px solid var(--line)}.rent-preview-table>div{display:grid;grid-template-columns:.7fr 1fr 1fr 1fr 1fr 1fr;gap:14px;align-items:center;padding:14px 16px;border-top:1px solid var(--line)}.rent-preview-table>div:first-child{border-top:0}.rent-preview-table .rent-preview-head{background:#eef5e9;color:#4d812f;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
@media(max-width:760px){.rent-calculation-form,.rent-calculation-preview{padding:20px}.rent-preview-table{overflow-x:auto}.rent-preview-table>div{min-width:720px}}
.portal-page--admin-steuern-php .portal-content{padding-top:28px}.tax-admin-section{padding-top:0}.tax-filter-bar{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:18px}.tax-filter-bar>form,.tax-toolbar-actions{display:flex;align-items:end;gap:12px}.tax-filter-bar label{display:grid;gap:6px;font-size:.78rem;font-weight:800}.tax-filter-bar input,.tax-filter-bar select{min-width:120px;height:46px;padding:0 13px}.tax-notice{margin:0 0 22px;padding:16px 18px;border-left:4px solid #d4a62f;background:#fff9e8}.tax-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:24px}.tax-kpi-grid article{display:grid;gap:8px;padding:20px;border:1px solid var(--line);background:#fff}.tax-kpi-grid small{color:var(--muted);font-weight:700}.tax-kpi-grid strong{font-size:1.55rem}.tax-kpi-grid .is-negative strong{color:#b8463d}.tax-export-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 38px;padding:22px 24px;background:#eef5e9;border:1px solid #cadabd}.tax-export-bar>div{display:grid;gap:5px}.tax-export-bar span{color:var(--muted);font-size:.86rem}.tax-entry-list,.tax-asset-list{border:1px solid var(--line);background:#fff}.tax-entry-row{display:grid;grid-template-columns:62px minmax(0,1fr) 135px auto;gap:18px;align-items:center;padding:18px 20px;border-top:1px solid var(--line)}.tax-entry-row:first-child{border-top:0}.tax-entry-date,.tax-entry-main{display:grid;gap:3px}.tax-entry-date small,.tax-entry-main small,.tax-asset-list small{color:var(--muted);font-size:.8rem}.tax-entry-amount{text-align:right}.tax-entry-amount.is-income{color:#4d812f}.tax-entry-amount.is-expense{color:#a63d35}.tax-entry-actions{display:flex;align-items:center;gap:9px}.tax-entry-actions form{margin:0}.tax-entry-actions button{font-size:0}.tax-assets-heading{margin-top:46px}.tax-asset-list>article{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;gap:18px;align-items:center;padding:18px 20px;border-top:1px solid var(--line)}.tax-asset-list>article:first-child{border-top:0}.tax-asset-list>article>div:first-child{display:grid;gap:4px}.tax-dialog{width:min(calc(100% - 40px),980px);max-height:calc(100dvh - 40px)}.tax-dialog-card{display:grid;grid-template-rows:auto minmax(0,1fr);height:min(900px,calc(100dvh - 40px));padding:0;overflow:hidden}.tax-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 30px 20px;border-bottom:1px solid var(--line)}.tax-dialog-header h2{margin:3px 0 0}.tax-dialog-header .eyebrow{margin:0}.tax-dialog-header .portal-dialog-close{position:static;flex:0 0 auto}.tax-dialog-scroll{overflow:auto;padding:28px 30px 32px}.tax-entry-form .tax-wide{grid-column:1/-1}.tax-entry-form label small{display:block;margin-top:6px;color:var(--muted)}
@media(max-width:900px){.tax-filter-bar,.tax-export-bar{align-items:stretch;flex-direction:column}.tax-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tax-entry-row{grid-template-columns:52px minmax(0,1fr) 115px}.tax-entry-actions{grid-column:2/-1}.tax-asset-list>article{grid-template-columns:minmax(0,1fr) auto}.tax-asset-list .tax-entry-actions{grid-column:1/-1}}
@media(max-width:600px){.tax-filter-bar>form,.tax-toolbar-actions{align-items:stretch;flex-direction:column}.tax-filter-bar input,.tax-filter-bar select,.tax-filter-bar .button,.tax-toolbar-actions .button{width:100%}.tax-kpi-grid{grid-template-columns:1fr}.tax-entry-row{grid-template-columns:46px minmax(0,1fr)}.tax-entry-amount{grid-column:2;text-align:left}.tax-entry-actions{grid-column:1/-1;justify-content:flex-end}.tax-asset-list>article{grid-template-columns:1fr}.tax-asset-list .tax-entry-actions{grid-column:1}.tax-dialog{width:calc(100% - 20px)}.tax-dialog-header{padding:20px}.tax-dialog-scroll{padding:22px 18px}.tax-dialog-card{height:calc(100dvh - 20px)}}

.tax-toolbar-actions{flex-wrap:wrap;justify-content:flex-end}.tax-toolbar-actions .button{box-shadow:none;line-height:1.2;text-align:center}.tax-recurring-list{border:1px solid var(--line);background:#fff;margin-bottom:42px}.tax-recurring-row{display:grid;grid-template-columns:minmax(0,1fr) 130px auto;gap:18px;align-items:center;padding:17px 20px;border-top:1px solid var(--line)}.tax-recurring-row:first-child{border-top:0}.tax-recurring-row>div{display:grid;gap:4px}.tax-recurring-row small{color:var(--muted);font-size:.8rem}.tax-recurring-row>strong{text-align:right}.tax-recurring-row.is-inactive{opacity:.58}.tax-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;justify-content:flex-start}.tax-check input{width:auto!important}
@media(max-width:700px){.tax-recurring-row{grid-template-columns:minmax(0,1fr) auto}.tax-recurring-row .document-action{grid-column:2}.tax-toolbar-actions{justify-content:stretch}}
.tax-dialog .tax-wide{grid-column:1/-1}
.tax-assets-heading .section-label{font-size:0}.tax-assets-heading .section-label::after{content:"03";font-size:.72rem}
.room-template-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start}.room-template-fields{display:grid;gap:18px}.room-template-inventory{align-self:start}
.numbered-textarea{display:grid;grid-template-columns:46px minmax(0,1fr);overflow:hidden;border:1px solid #cbd2c7;border-radius:8px;background:#fff}.portal-form .numbered-textarea textarea{min-width:0;padding-left:12px;border:0;border-left:1px solid #e1e5df;border-radius:0;outline:0}.template-editor .numbered-textarea textarea{overflow-y:hidden;resize:none;line-height:1.5}.numbered-textarea-lines{padding:13px 8px;color:#8b9287;text-align:right;font:inherit;font-weight:700;line-height:1.5}.numbered-textarea-lines span{display:block}
.template-field-group{margin-top:18px}.template-lightbox-heading{padding:0 64px 22px 0}.template-lightbox-heading h1{margin:3px 0 8px;color:var(--green);font-size:clamp(2rem,4vw,3.4rem)}.template-lightbox-heading p{margin:0}.document-template-dialog{width:min(1500px,calc(100% - 40px));height:min(92vh,1100px);max-width:none;max-height:none}.document-template-dialog .portal-dialog-card{display:grid;grid-template-rows:58px minmax(0,1fr);height:100%;padding:0;overflow:hidden}.document-template-dialog iframe{display:block;grid-row:2;width:100%;height:100%;min-height:0;border:0;background:var(--paper)}.document-template-dialog .portal-dialog-close{position:static;z-index:2;grid-row:1;justify-self:end;align-self:center;margin:0 16px 0 0}
@media (max-width:760px){.admin-document-toolbar,.document-template-launcher{display:flex;align-items:stretch;flex-direction:column}.document-template-buttons,.portal-form-grid,.room-template-layout{grid-template-columns:1fr}.template-editor{padding:24px 20px}.template-form-actions{align-items:stretch;flex-direction:column}.resident-document-tools,.resident-document-tools .button{width:100%}.room-template-card{padding:20px 16px}.document-template-buttons .button{width:100%}}
.tax-quarter-group{padding:0;border-top:1px solid var(--line)}.tax-quarter-group:first-child{border-top:0}.tax-quarter-group>header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 20px;background:#e8f2e1}.tax-quarter-group>header>div{display:grid;gap:2px}.tax-quarter-group>header span{color:var(--green-dark);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.tax-quarter-group>header strong{font-size:1.15rem}.tax-quarter-group>header small,.tax-month-heading small{color:var(--muted);font-size:.78rem}.tax-month-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:11px 20px;background:#f5f8f3;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.tax-month-heading strong{font-size:.95rem}.tax-month-group .tax-entry-row:first-of-type{border-top:0}
@media(max-width:700px){.tax-quarter-group>header,.tax-month-heading{align-items:flex-start;flex-direction:column;gap:5px}.tax-quarter-group>header small,.tax-month-heading small{line-height:1.45}}
.tax-fold{margin:0 0 42px}.tax-fold>summary,.tax-month-group>summary{cursor:pointer;list-style:none}.tax-fold>summary::-webkit-details-marker,.tax-month-group>summary::-webkit-details-marker{display:none}.tax-fold-summary{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:18px;margin:0!important;padding:16px 20px;border:1px solid var(--line);background:#fff}.tax-fold-summary::after,.tax-month-heading::after{content:"";width:10px;height:10px;border-right:2px solid var(--green-dark);border-bottom:2px solid var(--green-dark);transform:rotate(45deg);transition:transform .18s ease}.tax-fold[open]>.tax-fold-summary::after,.tax-month-group[open]>.tax-month-heading::after{transform:rotate(225deg)}.tax-fold>summary:focus-visible,.tax-month-group>summary:focus-visible{outline:3px solid rgba(121,183,78,.35);outline-offset:2px}.tax-fold>.tax-recurring-list,.tax-fold>.tax-entry-list{margin-top:0;border-top:0}.tax-fold>.tax-recurring-list{margin-bottom:0}.tax-quarter-group>.tax-quarter-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:18px 20px;background:#e8f2e1}.tax-quarter-heading>div{display:grid;gap:2px}.tax-quarter-heading span{color:var(--green-dark);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.tax-quarter-heading strong{font-size:1.15rem}.tax-quarter-heading small,.tax-month-heading small{color:var(--muted);font-size:.78rem;text-align:right}.tax-month-group{border-top:1px solid var(--line)}.tax-month-heading{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:20px;border-top:0}.tax-month-entries .tax-entry-row:first-child{border-top:0}.tax-quarter-heading small,.tax-month-heading small{padding-right:0}
@media(max-width:700px){.tax-fold-summary,.tax-month-heading{grid-template-columns:minmax(0,1fr) auto;gap:6px 14px}.tax-quarter-group>.tax-quarter-heading{grid-template-columns:1fr;gap:6px}.tax-fold-summary>.portal-small,.tax-quarter-heading>small,.tax-month-heading>small{grid-column:1}.tax-fold-summary::after,.tax-month-heading::after{grid-column:2;grid-row:1 / span 2}.tax-quarter-heading small,.tax-month-heading small{text-align:left}}
.application-success{margin:0 0 20px!important;padding:13px 15px;border-left:4px solid var(--green);background:#eef6e8;color:#3f7130!important}.application-success strong{display:inline}.application-dialog{width:min(1040px,calc(100% - 40px));height:min(92dvh,980px);max-height:none}.application-dialog-card{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%;max-height:none;padding:0;overflow:hidden}.application-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 30px 21px;border-bottom:1px solid var(--line);background:#fff}.application-dialog-header .eyebrow{margin:0 0 5px;color:#599438}.application-dialog-header h2{margin:0;font-size:2rem}.application-dialog-header .portal-dialog-close{position:static;flex:0 0 auto}.application-dialog-scroll{overflow:auto;padding:27px 30px 34px}.application-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px;padding:16px 18px;border-left:4px solid var(--green);background:#f1f6ed}.application-intro p{margin:0}.application-intro strong{color:#477d2d;font-size:.84rem;text-align:right}.application-errors{margin-bottom:22px;padding:16px 18px;border-left:4px solid #c84b42;background:#fff0ee;color:#87332d}.application-errors ul{margin:8px 0 0;padding-left:20px}.application-form{display:grid;gap:22px}.application-form fieldset{min-width:0;margin:0;padding:22px;border:1px solid var(--line)}.application-form legend{padding:0 9px;color:#477d2d;font-size:1.05rem;font-weight:800}.application-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 20px}.application-form label{display:grid;align-content:start;gap:7px;font-size:.86rem;font-weight:700}.application-form label>span{color:var(--muted);font-size:.75rem;font-weight:400}.application-form input,.application-form select,.application-form textarea{width:100%;min-width:0;padding:13px;border:1px solid #cbd2c7;border-radius:8px;background:#fff;font:inherit}.application-form textarea{resize:vertical}.application-wide{grid-column:1/-1}.application-confirmations{display:grid;gap:12px;padding:18px 20px;background:#f7f9f5}.application-confirmations label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;font-weight:400}.application-confirmations input{width:auto;margin-top:4px}.application-confirmations a{color:#477d2d}.application-form-actions{display:flex;justify-content:flex-end;gap:12px}.application-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.contact-box button{font-family:inherit}.application-form input:focus,.application-form select:focus,.application-form textarea:focus{border-color:var(--green);outline:3px solid rgba(124,182,83,.2)}
@media(max-width:760px){.application-dialog{width:calc(100% - 20px);height:calc(100dvh - 20px)}.application-dialog-header{padding:20px}.application-dialog-scroll{padding:22px 18px 26px}.application-form-grid{grid-template-columns:1fr}.application-wide{grid-column:auto}.application-intro{align-items:flex-start;flex-direction:column;gap:7px}.application-intro strong{text-align:left}.application-form fieldset{padding:18px 15px}.application-form-actions{align-items:stretch;flex-direction:column}.application-form-actions .button{width:100%;text-align:center}}
.application-form-grid{align-items:start}.application-form input:not([type="checkbox"]):not([type="file"]),.application-form select{display:block;width:100%;height:54px;min-height:54px;margin:0;padding:0 13px;border:1px solid #cbd2c7;border-radius:8px;line-height:1.2}.application-form input[type="date"]{min-width:0}.application-form input[type="file"]{display:block;width:100%;height:54px;min-height:54px;margin:0;padding:7px 9px;line-height:38px}.application-form input[type="file"]::file-selector-button{height:38px;margin:-1px 12px -1px -1px;padding:0 14px;border:1px solid #bfc8bb;border-radius:6px;background:#f4f7f2;color:var(--ink);font:inherit;font-weight:700;cursor:pointer}.application-form textarea{display:block;width:100%;margin:0}.application-form-grid>label{width:100%;min-width:0}
.tax-fold-summary::after{content:"+";display:grid;width:38px;height:38px;place-items:center;border:1px solid #a8d28f;border-radius:50%;color:var(--green-dark);font-size:1.35rem;font-weight:500;line-height:1;transform:none}.tax-fold[open]>.tax-fold-summary::after{content:"−";transform:none}
.application-form fieldset>label+label{margin-top:18px}
.application-confirmations label{align-items:center}.application-confirmations input{margin:0}
@media (max-width:760px){.whirlpool-control-sheet img{max-height:none}}

/* Mobiles Portalmenü: kompakte Linkzeilen und klar zugeordnete Dropdown-Pfeile. */
@media (max-width:760px){
  .portal-nav.is-open{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    column-gap:14px;
    row-gap:0;
    max-height:calc(100dvh - 82px);
    padding:18px 28px 24px;
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .portal-nav>.portal-nav-link,
  .portal-nav>.portal-nav-dropdown,
  .portal-nav>.portal-logout,
  .portal-nav>.portal-return-admin,
  .portal-nav>.portal-language-switcher{
    grid-column:1 / -1;
  }
  .portal-nav>.portal-nav-link{
    display:flex;
    min-height:54px;
    align-items:center;
    padding:8px 12px;
    border-radius:8px;
  }
  .portal-nav-link::after{
    display:none;
  }
  .portal-nav>.portal-nav-link.is-active{
    background:#eff6ea;
    color:#477d2d;
  }
  .portal-nav-dropdown{
    display:grid;
    width:100%;
    grid-template-columns:minmax(0,1fr) 48px;
    grid-template-rows:auto auto;
    align-items:center;
    gap:0;
  }
  .portal-nav-dropdown>.portal-nav-link{
    display:flex;
    grid-column:1;
    grid-row:1;
    min-width:0;
    min-height:54px;
    align-items:center;
    padding:8px 12px;
  }
  .portal-nav-dropdown.is-active>.portal-nav-link{
    color:#477d2d;
  }
  .portal-nav-dropdown-toggle{
    grid-column:2;
    grid-row:1;
    width:42px;
    height:42px;
    align-self:center;
    justify-self:end;
    border-radius:50%;
    background:#eff6ea;
    color:#477d2d;
  }
  .portal-nav-dropdown-toggle svg{
    width:15px;
    height:10px;
    stroke-width:2.4;
  }
  .portal-nav-submenu{
    position:static;
    grid-column:1 / -1;
    grid-row:2;
    width:100%;
    min-width:0;
    margin:0 0 6px;
    padding:7px;
    border:0;
    border-radius:8px;
    background:#f5f8f3;
    box-shadow:none;
  }
  .portal-nav-submenu a{
    padding:12px 14px;
    border-radius:6px;
    white-space:normal;
  }
  .portal-nav-submenu a.is-active{
    background:#568c38;
    color:#fff;
  }
  .portal-user-name{
    margin:0 0 10px;
    padding:7px 0 14px;
  }
  .portal-area-switch{
    margin:0 0 10px;
  }
  .portal-logout{
    min-height:54px;
    margin:10px 0 0;
    padding:8px 12px;
    border:0;
    border-radius:8px;
    background:#f3f5f1;
  }
}

@media(max-width:760px){
  .utility-chart-stats{display:grid;width:100%;grid-template-columns:minmax(0,1fr);gap:5px;white-space:normal}
  .utility-chart-stats span{display:flex;min-width:0;align-items:center;justify-content:center;padding:6px 4px;font-size:.6rem;text-align:center;white-space:nowrap}
}
