:root { --bs-primary: #246653; --bs-link-color: #205b4a; --bs-link-hover-color: #163f34; }
body { background: var(--page-bg); color: var(--page-text); }
.brand { color: var(--page-text); font-size: 1.35rem; font-weight: 750; letter-spacing: -.03em; }
.brand span { font-weight: 400; }
h1 { max-width: 720px; font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 650; letter-spacing: -.045em; }
.eyebrow { color: var(--muted-text); text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; font-weight: 700; }
.btn-primary { --bs-btn-bg: #246653; --bs-btn-border-color: #246653; --bs-btn-hover-bg: #194b3c; --bs-btn-hover-border-color: #194b3c; --bs-btn-active-bg: #194b3c; --bs-btn-active-border-color: #194b3c; }
.card { border-radius: 1rem; }
.form-page { max-width: 600px; margin-inline: auto; }
.form-page input { display: block; width: 100%; padding: .5rem; border: 1px solid #adb5bd; border-radius: .375rem; }
.form-page .helptext { display: block; color: var(--muted-text); font-size: .875rem; margin-top: .5rem; }
.errorlist { color: #a32130; }
.section-tabs { display: flex; flex-wrap: wrap; gap: .25rem; padding: 0; margin: 0; list-style: none; }
.section-tabs a { display: block; padding: 1rem 1.1rem; border-bottom: 3px solid transparent; color: var(--muted-text); text-decoration: none; font-weight: 600; }
.section-tabs a:hover { background: var(--soft-bg); color: var(--accent-text); }
.section-tabs a.active { border-bottom-color: var(--focus); color: var(--accent-text); background: var(--soft-bg); }
a:focus-visible, button:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.page-intro { max-width: 46rem; font-size: 1.1rem; line-height: 1.7; }
.apartment-details > div { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; border-top: 1px solid var(--line); padding-block: .85rem; }
.apartment-details dt { font-weight: 400; color: var(--muted-text); }
.apartment-details dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.empty-state { background: var(--soft-bg); max-width: 54rem; }
.empty-state p { max-width: 40rem; line-height: 1.7; }
.document-category { background: var(--soft-bg); color: var(--accent-text); border-radius: .4rem; padding: .25rem .65rem; font-size: .8rem; font-weight: 600; }
.document-symbol { color: var(--muted-text); font-size: 1.35rem; }
.document-card { overflow-wrap: anywhere; }
.document-description { line-height: 1.65; }
.apartment-documents { overflow-wrap: anywhere; }
.apartment-documents li:last-child { border-bottom: 0 !important; }
.nav-pills .nav-link.active { background: #246653; color: #fff; }
.header-subnavigation { background: var(--soft-bg); }
.governance-contact { overflow-wrap: anywhere; }
.header-subnavigation .nav-link { padding: .4rem .8rem; font-size: .9rem; }
.header-subnavigation .nav-link:not(.active) { color: var(--accent-text); }
.maintenance-item { background: var(--surface); }
.maintenance-item summary { cursor: pointer; }
@media print {
  .site-header, footer, .print-report, .visually-hidden-focusable { display: none !important; }
  body, main, .maintenance-item { background: white !important; color: black !important; }
  .text-secondary { color: #333 !important; }
  .maintenance-item { break-inside: avoid; }
  main.container { max-width: none; padding: 0 !important; }
}
.document-status-list { background: var(--surface); }
.document-status-list .table { --bs-table-bg: var(--surface); --bs-table-color: var(--page-text); --bs-table-border-color: var(--line); }
.document-status-list thead { --bs-table-bg: var(--soft-bg); }
.document-status-list th, .document-status-list td { padding: .85rem 1rem; }
.document-status-list th[scope="row"] { min-width: 12rem; overflow-wrap: anywhere; }
.document-status-list:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.contact-card { max-width: 42rem; }
.contact-email { font-size: clamp(1rem, 3vw, 1.3rem); overflow-wrap: anywhere; }
.btn-outline-primary { --bs-btn-color: #246653; --bs-btn-border-color: #246653; --bs-btn-hover-bg: #246653; --bs-btn-hover-border-color: #246653; --bs-btn-active-bg: #194b3c; --bs-btn-active-border-color: #194b3c; }
@media (max-width: 575.98px) {
  .brand { font-size: 1.15rem; }
  .section-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .section-tabs a { padding: .85rem .45rem; font-size: .9rem; text-align: center; }
  .apartment-details > div { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .6rem; font-size: .95rem; }
}

:root, [data-bs-theme="light"] { --bs-link-color-rgb: 32,91,74; --bs-link-hover-color-rgb: 22,63,52; --page-bg: #f4f5f1; --page-text: #203c34; --surface: #fff; --muted-text: #59665f; --accent-text: #205b4a; --soft-bg: #eaf0e8; --line: #e0e7df; --focus: #246653; }
[data-bs-theme="dark"] { --bs-body-bg: #202a27; --bs-body-color: #e3ece6; --bs-secondary-color: #b5c5bc; --bs-border-color: #41574a; --bs-link-color-rgb: 153,220,184; --bs-link-hover-color-rgb: 197,240,214; --page-bg: #141d19; --page-text: #e3ece6; --surface: #202a27; --muted-text: #b5c5bc; --accent-text: #99dcb8; --soft-bg: #293e32; --line: #41574a; --focus: #99dcb8; }
.site-header { background: var(--surface); }
.site-settings { position: relative; }
.site-settings summary { list-style: none; white-space: nowrap; }
.site-settings summary::-webkit-details-marker { display: none; }
.site-settings summary:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.settings-panel { position: absolute; z-index: 20; right: 0; top: calc(100% + .6rem); width: min(18rem, 90vw); background: var(--surface); }
.settings-panel label, .settings-panel input { cursor: pointer; }
.settings-panel input { accent-color: var(--focus); margin-right: .4rem; }
.document-reading-status { background: var(--soft-bg); font-size: .9rem; }
.document-reading-status a { color: var(--accent-text); }
.reading-count { display: inline-block; min-width: 1.5rem; text-align: center; margin-left: .35rem; padding: .05rem .4rem; border-radius: 1rem; background: var(--surface); font-weight: 700; }
.reading-complete { color: var(--accent-text); font-weight: 600; }
.text-secondary { color: var(--muted-text) !important; }
[data-bs-theme="dark"] .btn-outline-secondary { --bs-btn-color: #b5c5bc; --bs-btn-border-color: #899e91; --bs-btn-hover-color: #14251b; --bs-btn-hover-bg: #b5c5bc; }
.form-page input { background: var(--surface); color: var(--page-text); }
[data-bs-theme="dark"] .btn-outline-primary { --bs-btn-color: #99dcb8; --bs-btn-border-color: #82cba4; --bs-btn-hover-bg: #99dcb8; --bs-btn-hover-color: #14251b; --bs-btn-hover-border-color: #99dcb8; }
[data-bs-theme="dark"] .btn-primary { --bs-btn-bg: #307a5c; --bs-btn-border-color: #459573; --bs-btn-hover-bg: #388b69; --bs-btn-hover-border-color: #5fac86; }
[data-bs-theme="dark"] .errorlist { color: #ffabab; }
@media (max-width: 575.98px) { .settings-panel { position: fixed; top: auto; left: .75rem; right: .75rem; width: auto; margin-top: .6rem; } }

.calendar-grid { table-layout: fixed; min-width: 560px; }
.calendar-grid td { height: 100px; vertical-align: top; overflow-wrap: anywhere; }

body { padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); }
.site-header { padding-top: env(safe-area-inset-top); }
footer { padding-bottom: max(1.5rem, env(safe-area-inset-bottom)) !important; }
.mobile-menu-toggle { display: none; }
.pwa-page { max-width: 56rem; }
.pwa-icon { border-radius: 1.3rem; flex: 0 0 auto; }
.pwa-steps { padding-left: 1.3rem; }
.pwa-steps li + li { margin-top: .8rem; }
@media (max-width: 575.98px) {
  .mobile-menu-toggle:not([hidden]) { display: inline-block; }
  .site-navigation[data-mobile-collapsed="true"] { display: none; }
  .site-header .btn, .site-settings summary, .header-subnavigation .nav-link { min-height: 44px; display: inline-flex; align-items: center; }
  .site-header .mobile-menu-toggle[hidden] { display: none; }
  input:not([type="checkbox"]):not([type="radio"]), select, textarea { font-size: max(1rem, 16px); }
  main.container { padding-top: 1.75rem !important; padding-bottom: 2rem !important; }
  .pwa-intro { gap: 1rem !important; align-items: flex-start !important; }
  .pwa-intro h1 { font-size: 2rem; }
  .pwa-icon { width: 64px; height: 64px; border-radius: 1rem; }
}
