@import url("https://fonts.googleapis.com/css2?family=Albert+Sans:wght@300..900&display=swap");   /* variabel vægt 300-900 */
/* Delfilerne (dist/assets/css/hoodi-theme/*.css) indlæses af hoodi-theme-links.php FØR denne fil med versionsnummer; de lå her som @import indtil 02-11-2026 (cache-problem). */
/* Delfiler pr. område (parallelt arbejde): én fil pr. agent, så ingen skriver i samme fil. Samles til én fil, når designet er godkendt. */

/* ==========================================================================
   HOODI-tema til app.hoodi.dk
   Indlæses EFTER style.bundle.css i alle miljøer (i drift fra 06-11-2026).

   Del A er genereret ud fra style.bundle.css: præcis de regler fra temaet,
   der er ændret til HOODIs farver, skrift, rundinger og hele streger. Samme
   selektorer som i temaet, så de vinder, fordi filen indlæses bagefter.
   Ret ikke i del A i hånden; den bygges igen, hvis style.bundle.css ændres.

   Del B er håndskrevet og dækker HOODIs egen HTML: logo, sidemenu,
   lister i table.tablebank, modalknapper og AI-assistenten.
   ========================================================================== */


/* ==========================================================================
   DEL A. Temaet med HOODIs værdier (182 regler)
   ========================================================================== */

:root,
[data-bs-theme="light"] {
	--bs-gray: #56656B;
	--bs-gray-dark: #2F4A55;
	--bs-gray-100: #F6F8F7;
	--bs-gray-200: #EDF0EE;
	--bs-gray-300: #DCE2DF;
	--bs-gray-400: #B4BEC0;
	--bs-gray-500: #8A969B;
	--bs-gray-600: #56656B;
	--bs-gray-700: #56656B;
	--bs-gray-800: #2F4A55;
	--bs-gray-900: #264551;
	--bs-light: #F6F8F7;
	--bs-primarydark: #1D3640;
	--bs-primary: #264551;
	--bs-secondary: #D8E6D9;
	--bs-success: #2F7D52;
	--bs-info: #46397A;
	--bs-warning: #B7791F;
	--bs-danger: #8E2A21;
	--bs-dark: #264551;
	--bs-primarydark-rgb: 29, 54, 64;
	--bs-primary-rgb: 38, 69, 81;
	--bs-success-rgb: 47, 125, 82;
	--bs-dark-rgb: 38, 69, 81;
	--bs-secondary-text: #56656B;
	--bs-light-text: #56656B;
	--bs-dark-text: #56656B;
	--bs-secondary-bg-subtle: #F6F8F7;
	--bs-dark-bg-subtle: #B4BEC0;
	--bs-secondary-border-subtle: #EDF0EE;
	--bs-light-border-subtle: #EDF0EE;
	--bs-dark-border-subtle: #8A969B;
	--bs-body-color-rgb: 38, 69, 81;
	--bs-font-sans-serif: "Albert Sans", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
	--bs-body-color: #264551;
	--bs-secondary-color: rgba(38, 69, 81, 0.75);
	--bs-secondary-color-rgb: 38, 69, 81;
	--bs-secondary-bg: #EDF0EE;
	--bs-tertiary-color: rgba(38, 69, 81, 0.5);
	--bs-tertiary-color-rgb: 38, 69, 81;
	--bs-tertiary-bg: #F6F8F7;
	--bs-heading-color: #264551;
	--bs-link-color: #264551;
	--bs-link-color-rgb: 38, 69, 81;
	--bs-link-hover-color: #1D3640;
	--bs-link-hover-color-rgb: 29, 54, 64;
	--bs-border-color: #EDF0EE;
	--bs-border-radius: 20px;
	--bs-border-radius-sm: 10px;
	--bs-border-radius-lg: 20px;
	--bs-border-radius-xl: 28px;
	--bs-border-radius-2xl: 28px;
	--bs-border-radius-pill: 999px;
}
kbd {
	border-radius: 10px;
}
caption {
	color: #8A969B;
}
.blockquote-footer {
	color: #56656B;
}
.table-primary {
	--bs-table-border-color: #EDF0EE;
	--bs-table-active-bg: #EDF0EE;
}
.table-success {
	--bs-table-border-color: #EDF0EE;
	--bs-table-active-bg: #EDF0EE;
}
.table-info {
	--bs-table-border-color: #EDF0EE;
	--bs-table-active-bg: #EDF0EE;
}
.table-light {
	--bs-table-bg: #F6F8F7;
}
.table-dark {
	--bs-table-bg: #264551;
}
.form-control {
	border-radius: 14px;
}
.form-control-sm {
	border-radius: 10px;
}
.form-control-color::-moz-color-swatch {
	border-radius: 14px;
}
.form-control-color::-webkit-color-swatch {
	border-radius: 14px;
}
.form-select {
	border-radius: 14px;
}
.form-select-sm {
	border-radius: 10px;
}
.form-select-lg {
	border-radius: 20px;
}
.form-check-input:checked {
	background-color: #264551;
	border-color: #264551;
}
.form-check-input[type="checkbox"]:indeterminate {
	background-color: #264551;
	border-color: #264551;
}
.form-range::-webkit-slider-thumb {
	background-color: #264551;
}
.form-range::-webkit-slider-runnable-track {
	border-radius: 14px;
}
.form-range::-moz-range-thumb {
	background-color: #264551;
}
.form-range::-moz-range-track {
	border-radius: 14px;
}
.form-floating::before:not(.form-control:disabled) {
	border-radius: 14px;
}
.form-floating > .form-control:disabled ~ label {
	color: #56656B;
}
.input-group-text {
	border-radius: 14px;
}
.input-group-lg > .btn,
.input-group-lg > .form-control,
.input-group-lg > .form-select,
.input-group-lg > .input-group-text {
	border-radius: 20px;
}
.input-group-sm > .btn,
.input-group-sm > .form-control,
.input-group-sm > .form-select,
.input-group-sm > .input-group-text {
	border-radius: 10px;
}
.valid-tooltip {
	border-radius: 14px;
}
.invalid-tooltip {
	border-radius: 14px;
}
.btn {
	--bs-btn-font-weight: 700;
	--bs-btn-color: #264551;
	--bs-btn-border-radius: 999px;
	--bs-btn-box-shadow: none;
}
.btn-light {
	--bs-btn-bg: #F6F8F7;
	--bs-btn-border-color: #F6F8F7;
	--bs-btn-disabled-bg: #F6F8F7;
	--bs-btn-disabled-border-color: #F6F8F7;
}
.btn-primarydark {
	--bs-btn-bg: #1D3640;
	--bs-btn-border-color: #1D3640;
	--bs-btn-hover-bg: #1D3640;
	--bs-btn-hover-border-color: #1D3640;
	--bs-btn-focus-shadow-rgb: 38, 69, 81;
	--bs-btn-active-bg: #1D3640;
	--bs-btn-active-border-color: #1D3640;
	--bs-btn-disabled-bg: #264551;
	--bs-btn-disabled-border-color: #264551;
}
.btn-primary {
	--bs-btn-color: #6BC586;
	--bs-btn-bg: #264551;
	--bs-btn-border-color: #264551;
	--bs-btn-hover-color: #6BC586;
	--bs-btn-hover-bg: #1D3640;
	--bs-btn-hover-border-color: #1D3640;
	--bs-btn-focus-shadow-rgb: 38, 69, 81;
	--bs-btn-active-color: #6BC586;
	--bs-btn-active-bg: #1D3640;
	--bs-btn-active-border-color: #1D3640;
	--bs-btn-disabled-color: #7A878C;
	--bs-btn-disabled-bg: #DCE2DF;
	--bs-btn-disabled-border-color: #DCE2DF;
}
.btn-secondary {
	--bs-btn-bg: #D8E6D9;
	--bs-btn-border-color: #D8E6D9;
	--bs-btn-disabled-bg: #D8E6D9;
	--bs-btn-disabled-border-color: #D8E6D9;
}
.btn-success {
	--bs-btn-bg: #2F7D52;
	--bs-btn-border-color: #2F7D52;
	--bs-btn-disabled-bg: #2F7D52;
	--bs-btn-disabled-border-color: #2F7D52;
}
.btn-info {
	--bs-btn-bg: #46397A;
	--bs-btn-border-color: #46397A;
	--bs-btn-disabled-bg: #46397A;
	--bs-btn-disabled-border-color: #46397A;
}
.btn-warning {
	--bs-btn-bg: #B7791F;
	--bs-btn-border-color: #B7791F;
	--bs-btn-disabled-bg: #B7791F;
	--bs-btn-disabled-border-color: #B7791F;
}
.btn-danger {
	--bs-btn-bg: #8E2A21;
	--bs-btn-border-color: #8E2A21;
	--bs-btn-disabled-bg: #8E2A21;
	--bs-btn-disabled-border-color: #8E2A21;
}
.btn-dark {
	--bs-btn-color: #6BC586;
	--bs-btn-bg: #264551;
	--bs-btn-border-color: #264551;
	--bs-btn-hover-color: #6BC586;
	--bs-btn-active-color: #6BC586;
	--bs-btn-disabled-bg: #264551;
	--bs-btn-disabled-border-color: #264551;
}
.btn-outline-light {
	--bs-btn-color: #F6F8F7;
	--bs-btn-border-color: #F6F8F7;
	--bs-btn-hover-bg: #F6F8F7;
	--bs-btn-hover-border-color: #F6F8F7;
	--bs-btn-active-bg: #F6F8F7;
	--bs-btn-active-border-color: #F6F8F7;
	--bs-btn-disabled-color: #F6F8F7;
	--bs-btn-disabled-border-color: #F6F8F7;
}
.btn-outline-primary {
	--bs-btn-color: #264551;
	--bs-btn-border-color: #264551;
	--bs-btn-hover-bg: #264551;
	--bs-btn-hover-border-color: #264551;
	--bs-btn-focus-shadow-rgb: 38, 69, 81;
	--bs-btn-active-bg: #264551;
	--bs-btn-active-border-color: #264551;
	--bs-btn-disabled-color: #264551;
	--bs-btn-disabled-border-color: #264551;
}
.btn-outline-secondary {
	--bs-btn-color: #D8E6D9;
	--bs-btn-border-color: #D8E6D9;
	--bs-btn-hover-bg: #D8E6D9;
	--bs-btn-hover-border-color: #D8E6D9;
	--bs-btn-active-bg: #D8E6D9;
	--bs-btn-active-border-color: #D8E6D9;
	--bs-btn-disabled-color: #D8E6D9;
	--bs-btn-disabled-border-color: #D8E6D9;
}
.btn-outline-success {
	--bs-btn-color: #2F7D52;
	--bs-btn-border-color: #2F7D52;
	--bs-btn-hover-bg: #2F7D52;
	--bs-btn-hover-border-color: #2F7D52;
	--bs-btn-focus-shadow-rgb: 47, 125, 82;
	--bs-btn-active-bg: #2F7D52;
	--bs-btn-active-border-color: #2F7D52;
	--bs-btn-disabled-color: #2F7D52;
	--bs-btn-disabled-border-color: #2F7D52;
}
.btn-outline-info {
	--bs-btn-color: #46397A;
	--bs-btn-border-color: #46397A;
	--bs-btn-hover-bg: #46397A;
	--bs-btn-hover-border-color: #46397A;
	--bs-btn-active-bg: #46397A;
	--bs-btn-active-border-color: #46397A;
	--bs-btn-disabled-color: #46397A;
	--bs-btn-disabled-border-color: #46397A;
}
.btn-outline-warning {
	--bs-btn-color: #B7791F;
	--bs-btn-border-color: #B7791F;
	--bs-btn-hover-bg: #B7791F;
	--bs-btn-hover-border-color: #B7791F;
	--bs-btn-active-bg: #B7791F;
	--bs-btn-active-border-color: #B7791F;
	--bs-btn-disabled-color: #B7791F;
	--bs-btn-disabled-border-color: #B7791F;
}
.btn-outline-danger {
	--bs-btn-color: #8E2A21;
	--bs-btn-border-color: #8E2A21;
	--bs-btn-hover-bg: #8E2A21;
	--bs-btn-hover-border-color: #8E2A21;
	--bs-btn-active-bg: #8E2A21;
	--bs-btn-active-border-color: #8E2A21;
	--bs-btn-disabled-color: #8E2A21;
	--bs-btn-disabled-border-color: #8E2A21;
}
.btn-outline-dark {
	--bs-btn-color: #264551;
	--bs-btn-border-color: #264551;
	--bs-btn-hover-bg: #264551;
	--bs-btn-hover-border-color: #264551;
	--bs-btn-focus-shadow-rgb: 38, 69, 81;
	--bs-btn-active-bg: #264551;
	--bs-btn-active-border-color: #264551;
	--bs-btn-disabled-color: #264551;
	--bs-btn-disabled-border-color: #264551;
}
.btn-link {
	--bs-btn-focus-shadow-rgb: 38, 69, 81;
}
.btn-group-lg > .btn,
.btn-lg {
	--bs-btn-border-radius: 20px;
}
.btn-group-sm > .btn,
.btn-sm {
	--bs-btn-border-radius: 10px;
}
.dropdown-menu {
	--bs-dropdown-border-radius: 20px;
	--bs-dropdown-inner-border-radius: 14px;
	--bs-dropdown-box-shadow: 0 18px 44px rgba(38, 69, 81, 0.18);
}
.dropdown-menu-dark {
	--bs-dropdown-color: #D8E6D9;
	--bs-dropdown-bg: #2F4A55;
	--bs-dropdown-link-color: #D8E6D9;
	--bs-dropdown-link-disabled-color: #8A969B;
	--bs-dropdown-header-color: #8A969B;
}
.btn-group {
	border-radius: 14px;
}
.nav-pills {
	--bs-nav-pills-border-radius: 14px;
	--bs-nav-pills-link-active-bg: #264551;
}
.navbar {
	--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2838, 69, 81, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
	--bs-navbar-toggler-border-radius: 14px;
}
.card {
	--bs-card-border-width: 0;
	--bs-card-border-radius: 20px;
	--bs-card-box-shadow: none;
	--bs-card-inner-border-radius: 20px;
}
.pagination {
	--bs-pagination-border-radius: 14px;
}
.pagination-lg {
	--bs-pagination-border-radius: 20px;
}
.pagination-sm {
	--bs-pagination-border-radius: 10px;
}
.badge {
	--bs-badge-border-radius: 10px;
}
.progress,
.progress-stacked {
	--bs-progress-bar-bg: #264551;
}
.btn-close {
	border-radius: 14px;
}
@media (min-width: 600px) {
.modal {
	--bs-modal-bg: #EFEFEF;
	--bs-modal-border-radius: 28px;
	--bs-modal-inner-border-radius: 28px;
}
}
@media (max-width: 599.98px) {
.modal {
	--bs-modal-border-radius: 28px;
	--bs-modal-inner-border-radius: 28px;
}
}
.tooltip {
	--bs-tooltip-border-radius: 14px;
	text-align: left;
}
.popover {
	--bs-popover-border-radius: 14px;
	--bs-popover-inner-border-radius: 14px;
	text-align: left;
}
.text-bg-primary {
	background-color: RGBA(38, 69, 81, var(--bs-bg-opacity, 1)) !important;
}
.text-bg-success {
	background-color: RGBA(47, 125, 82, var(--bs-bg-opacity, 1)) !important;
}
.text-bg-dark {
	background-color: RGBA(38, 69, 81, var(--bs-bg-opacity, 1)) !important;
}
.link-light {
	color: #F6F8F7 !important;
}
.link-primary {
	color: #264551 !important;
}
.link-primary:focus,
.link-primary:hover {
	color: #1D3640 !important;
}
.link-secondary {
	color: #D8E6D9 !important;
}
.link-success {
	color: #2F7D52 !important;
}
.link-info {
	color: #46397A !important;
}
.link-warning {
	color: #B7791F !important;
}
.link-danger {
	color: #8E2A21 !important;
}
.link-dark {
	color: #264551 !important;
}
.text-muted {
	color: #8A969B !important;
}
.rounded-1 {
	border-radius: 10px !important;
}
.rounded-2 {
	border-radius: 14px !important;
}
.rounded-3 {
	border-radius: 20px !important;
}
[data-bs-theme="light"] {
	--bs-text-muted: #8A969B;
	--bs-gray-100: #F6F8F7;
	--bs-gray-200: #EDF0EE;
	--bs-gray-300: #DCE2DF;
	--bs-gray-400: #B4BEC0;
	--bs-gray-500: #8A969B;
	--bs-gray-600: #56656B;
	--bs-gray-700: #56656B;
	--bs-gray-800: #2F4A55;
	--bs-gray-900: #264551;
	--bs-gray-900-rgb: 38, 69, 81;
	--bs-light: #F6F8F7;
	--bs-primary: #264551;
	--bs-secondary: #D8E6D9;
	--bs-success: #2F7D52;
	--bs-info: #46397A;
	--bs-warning: #B7791F;
	--bs-danger: #8E2A21;
	--bs-dark: #264551;
	--bs-primary-active: #1D3640;
	--bs-secondary-active: #B4BEC0;
	--bs-light-active: #EDF0EE;
	--bs-success-active: #1E5B38;
	--bs-primary-light: #D8E6D9;
	--bs-secondary-light: #F6F8F7;
	--bs-success-light: #DCEFE2;
	--bs-info-light: #E7E3F3;
	--bs-warning-light: #FCEFD6;
	--bs-danger-light: #FBE4E1;
	--bs-dark-light: #EDF0EE;
	--bs-primary-inverse: #6BC586;
	--bs-secondary-inverse: #2F4A55;
	--bs-light-inverse: #56656B;
	--bs-primary-rgb: 38, 69, 81;
	--bs-success-rgb: 47, 125, 82;
	--bs-dark-rgb: 38, 69, 81;
	--bs-text-primary: #264551;
	--bs-text-secondary: #D8E6D9;
	--bs-text-light: #F6F8F7;
	--bs-text-success: #1E5B38;
	--bs-text-info: #46397A;
	--bs-text-warning: #6E4300;
	--bs-text-danger: #8E2A21;
	--bs-text-dark: #264551;
	--bs-text-muted: #8A969B;
	--bs-text-gray-100: #F6F8F7;
	--bs-text-gray-200: #EDF0EE;
	--bs-text-gray-300: #D8E6D9;
	--bs-text-gray-400: #B4BEC0;
	--bs-text-gray-500: #8A969B;
	--bs-text-gray-600: #56656B;
	--bs-text-gray-700: #56656B;
	--bs-text-gray-800: #2F4A55;
	--bs-text-gray-900: #264551;
	--bs-border-color: #EDF0EE;
	--bs-border-dashed-color: #D8E6D9;
	--bs-component-active-bg: #264551;
	--bs-component-hover-color: #264551;
	--bs-component-hover-bg: #F6F8F7;
	--bs-component-checked-bg: #264551;
	--bs-menu-heading-color: #8A969B;
	--bs-menu-link-color-hover: #264551;
	--bs-menu-link-color-show: #264551;
	--bs-menu-link-color-here: #264551;
	--bs-menu-link-color-active: #264551;
	--bs-menu-link-bg-color-hover: #F6F8F7;
	--bs-menu-link-bg-color-show: #F6F8F7;
	--bs-menu-link-bg-color-here: #F6F8F7;
	--bs-menu-link-bg-color-active: #F6F8F7;
	--bs-scrollbar-color: #EDF0EE;
	--bs-rating-color-default: #B4BEC0;
	--bs-ribbon-label-box-shadow: 0px -1px 5px 0px rgba(38, 69, 81, 0.1);
	--bs-ribbon-label-bg: #264551;
	--bs-ribbon-clip-bg: #264551;
	--bs-engage-btn-color: #2F4A55;
	--bs-engage-btn-icon-color: #56656B;
	--bs-engage-btn-color-active: #2F4A55;
}
.nav-group {
	border-radius: 14px;
}
.nav.nav-pills.nav-pills-custom .nav-link,
.nav.nav-pills.nav-pills-custom .show > .nav-link {
	border: 1px solid var(--bs-border-dashed-color);
	border-radius: 20px;
}
.nav.nav-pills.nav-pills-custom .nav-link.nav-link-border-solid,
.nav.nav-pills.nav-pills-custom .show > .nav-link.nav-link-border-solid {
	border: 3px solid var(--bs-border-solid-color);
}
.nav.nav-pills.nav-pills-custom .nav-link.active,
.nav.nav-pills.nav-pills-custom .show > .nav-link.active {
	border: 1px solid var(--bs-border-solid-color);
}
.nav.nav-pills.nav-pills-custom.nav-pills-active-custom .nav-item .nav-link:not(:active) span:nth-child(1) {
	color: #B4BEC0;
}
.nav.nav-pills.nav-pills-custom.nav-pills-active-custom .nav-item .nav-link:not(:active) span:nth-child(2) {
	color: #2F4A55;
}
.page-item .page-link {
	border-radius: 14px;
}
.separator.separator-dashed {
	border-bottom-style: solid;
}
.separator.separator-content.separator-dashed::after,
.separator.separator-content.separator-dashed::before {
	border-bottom-style: solid;
}
.separator.separator-content.border-light::after,
.separator.separator-content.border-light::before {
	border-color: #F6F8F7 !important;
}
.separator.separator-content.border-primary::after,
.separator.separator-content.border-primary::before {
	border-color: #264551 !important;
}
.separator.separator-content.border-secondary::after,
.separator.separator-content.border-secondary::before {
	border-color: #D8E6D9 !important;
}
.separator.separator-content.border-success::after,
.separator.separator-content.border-success::before {
	border-color: #2F7D52 !important;
}
.separator.separator-content.border-info::after,
.separator.separator-content.border-info::before {
	border-color: #46397A !important;
}
.separator.separator-content.border-warning::after,
.separator.separator-content.border-warning::before {
	border-color: #B7791F !important;
}
.separator.separator-content.border-danger::after,
.separator.separator-content.border-danger::before {
	border-color: #8E2A21 !important;
}
.separator.separator-content.border-dark::after,
.separator.separator-content.border-dark::before {
	border-color: #264551 !important;
}
.menu-sub-dropdown {
	border-radius: 20px;
}
.menu-rounded .menu-link {
	border-radius: 14px;
}
.menu-pill .menu-link {
	border-radius: 999px;
}
@media (min-width: 576px) {
.menu-sub-sm-dropdown {
	border-radius: 14px;
}
.menu-sm-rounded .menu-link {
	border-radius: 14px;
}
.menu-sm-pill .menu-link {
	border-radius: 999px;
}
}
@media (min-width: 768px) {
.menu-sub-md-dropdown {
	border-radius: 14px;
}
.menu-md-rounded .menu-link {
	border-radius: 14px;
}
.menu-md-pill .menu-link {
	border-radius: 999px;
}
}
@media (min-width: 992px) {
.menu-sub-lg-dropdown {
	border-radius: 14px;
}
.menu-lg-rounded .menu-link {
	border-radius: 14px;
}
.menu-lg-pill .menu-link {
	border-radius: 999px;
}
}
@media (min-width: 1200px) {
.menu-sub-xl-dropdown {
	border-radius: 14px;
}
.menu-xl-rounded .menu-link {
	border-radius: 14px;
}
.menu-xl-pill .menu-link {
	border-radius: 999px;
}
}
@media (min-width: 1400px) {
.menu-sub-xxl-dropdown {
	border-radius: 14px;
}
.menu-xxl-rounded .menu-link {
	border-radius: 14px;
}
.menu-xxl-pill .menu-link {
	border-radius: 999px;
}
}
@media (max-width: 575.98px) {
.menu-sub-sm-down-dropdown {
	border-radius: 14px;
}
.menu-sm-down-rounded .menu-link {
	border-radius: 14px;
}
.menu-sm-down-pill .menu-link {
	border-radius: 999px;
}
}
@media (max-width: 767.98px) {
.menu-sub-md-down-dropdown {
	border-radius: 14px;
}
.menu-md-down-rounded .menu-link {
	border-radius: 14px;
}
.menu-md-down-pill .menu-link {
	border-radius: 999px;
}
}
@media (max-width: 991.98px) {
.menu-sub-lg-down-dropdown {
	border-radius: 14px;
}
.menu-lg-down-rounded .menu-link {
	border-radius: 14px;
}
.menu-lg-down-pill .menu-link {
	border-radius: 999px;
}
}
@media (max-width: 1199.98px) {
.menu-sub-xl-down-dropdown {
	border-radius: 14px;
}
.menu-xl-down-rounded .menu-link {
	border-radius: 14px;
}
.menu-xl-down-pill .menu-link {
	border-radius: 999px;
}
}
@media (max-width: 1399.98px) {
.menu-sub-xxl-down-dropdown {
	border-radius: 14px;
}
.menu-xxl-down-rounded .menu-link {
	border-radius: 14px;
}
.menu-xxl-down-pill .menu-link {
	border-radius: 999px;
}
}
.card.card-dashed {
	border: 1px solid var(--bs-border-dashed-color);
}
.card.card-dashed > .card-header {
	border-bottom: 1px solid var(--bs-border-dashed-color);
}
.card.card-dashed > .card-footer {
	border-top: 1px solid var(--bs-border-dashed-color);
}
.btn.btn-outline-dashed {
	border: 1px solid var(--bs-gray-300);
}
.btn.btn-outline.btn-outline-dashed {
	border-style: solid;
}
.modal-rounded {
	border-radius: 14px !important;
}
.form-check.form-check-solid .form-check-input[type="checkbox"]:indeterminate {
	background-color: #264551;
}
.form-check-image .form-check-wrapper {
	border-radius: 20px;
}
.form-check-image .form-check-rounded {
	border-radius: 20px;
}
.input-group.input-group-solid {
	border-radius: 14px;
}
.input-group.input-group-solid.input-group-sm {
	border-radius: 10px;
}
.input-group.input-group-solid.input-group-lg {
	border-radius: 20px;
}
.progress-vertical .progress {
	border-radius: 14px;
}
.progress-vertical .progress .progress-bar {
	border-radius: 14px;
}
.table:not(.table-bordered).table-rounded {
	border-radius: 14px;
}
.table:not(.table-bordered).table-row-dashed tr {
	border-bottom-style: solid;
}
.tablebank tr:not(:last-child) {
	border-bottom-style: solid;
}
.tablebankgray tr:not(:last-child) {
	border-bottom-style: solid;
}
.table-loading-message {
	border-radius: 14px;
}
.popover {
	--bs-popover-header-border-color: #EDF0EE;
}
.image-input {
	border-radius: 14px;
}
.image-input .image-input-wrapper {
	border-radius: 14px;
}
.symbol {
	border-radius: 14px;
}
.symbol .symbol-label {
	border-radius: 14px;
}
.symbol .symbol-label:after {
	border-radius: 14px;
}
.symbol > img {
	border-radius: 14px;
}
.scrolltop {
	border-radius: 14px;
}
.timeline.timeline-border-dashed .timeline-line {
	border-left-style: solid !important;
}
.timeline.timeline-border-dashed .timeline-icon {
	border-style: solid !important;
}
.stepper.stepper-pills {
	--bs-stepper-line-border: 1px solid var(--bs-gray-300);
}
.blockui .blockui-message {
	border-radius: 14px;
}
.explore-btn-toggle:active,
.explore-btn-toggle:focus,
.explore-btn-toggle:hover {
	background-color: #46397A;
}
.explore-btn-dismiss:hover .svg-icon,
.explore-btn-dismiss:hover i {
	color: #46397A;
}
.explore-btn-primary {
	background-color: #46397A;
}
.explore-btn-outline {
	border: 1px solid var(--bs-gray-300) !important;
}
.explore-btn-outline.active,
.explore-btn-outline:hover {
	border: 1px solid #264551 !important;
	background-color: #D8E6D9;
}
.explore-link {
	color: #46397A;
}
.explore-link-hover:hover {
	color: #46397A !important;
}
.explore-icon-success {
	color: #2F7D52;
}
.explore-icon-danger {
	color: #8E2A21;
}
.explore-label-free {
	background-color: #B7791F;
}
.explore-label-pro {
	background-color: #264551;
}
.border-dashed {
	border-style: solid !important;
	border-color: var(--bs-border-solid-color);
}
.border-top-dashed {
	border-top-style: solid !important;
}
.border-bottom-dashed {
	border-bottom-style: solid !important;
}
.border-start-dashed {
	border-left-style: solid !important;
}
.border-end-dashed {
	border-right-style: solid !important;
}
.stepper.stepper-pills.stepper-multistep {
	--bs-stepper-icon-border: 1px solid rgba(255, 255, 255, 0.3);
	--bs-stepper-icon-border-completed: 1px solid rgba(255, 255, 255, 0.3);
	--bs-stepper-line-border: 1px solid rgba(255, 255, 255, 0.3);
}
[data-bs-theme="light"] {
	--bs-app-bg-color: #EFEFEF;
}


/* ==========================================================================
   DEL B. HOODIs egen opmærkning
   ========================================================================== */

/* 1. Designvariabler ------------------------------------------------------- */
:root {
  /* Farver */
  --hoodi-petrol: #264551;          /* tekst, knapper, mørke flader */
  --hoodi-groen: #6BC586;           /* frisk grøn: logo, tekst på petrol-knapper */
  --hoodi-lysgroen: #D8E6D9;        /* valgt: menupunkt, fane, hurtigfilter */
  --hoodi-graa: #EFEFEF;            /* baggrund, sekundære knapper, felter */
  --hoodi-hvid: #FFFFFF;
  --hoodi-tekst2: #56656B;          /* sekundær tekst */
  --hoodi-linje: #DCE2DF;           /* kanter, hvor de er nødvendige */
  --hoodi-lavendel: #BBB0D4;        /* grafik og lyse markeringer (designguide) */
  --hoodi-skillelinje: #EDF0EE;     /* streger mellem rækker */
  --hoodi-hover: #F6F8F7;           /* række, når musen holdes over */
  --hoodi-inaktiv-bg: #DCE2DF;
  --hoodi-inaktiv-tekst: #7A878C;

  /* Status */
  --hoodi-succes-bg: #DCEFE2;   --hoodi-succes: #1E5B38;
  --hoodi-advarsel-bg: #FCEFD6; --hoodi-advarsel: #6E4300;
  --hoodi-fejl-bg: #FBE4E1;     --hoodi-fejl: #8E2A21;
  --hoodi-ai-bg: #E7E3F3;       --hoodi-ai: #46397A;   /* lilla: HOODIs egen stemme - det, systemet har gjort, fundet eller peger på som vigtigt (Patrick 05-11-2026; før "kun det, HOODI har gjort") */

  /* Metronics hover/aktiv-farve på .btn-dark og .btn-outline-dark: mørkere petrol som .btn-primary ved hover.
     Var ikke sat i temaet, så knapperne blev Metronics næsten sorte #131628 ved hover (Patrick 04-11-2026) */
  --bs-dark-active: #1D3640;

  /* Rundinger: bliver mindre for hvert lag */
  --hoodi-r-overlay: 28px;      /* modaler, ark, chatvindue */
  --hoodi-r-kort: 24px;         /* kort, lister og bokse på samme lag: som søgefeltet og vælgeren (48 px høje og helt runde), Patrick 04-11-2026 */
  --hoodi-r-minimenu: 20px;     /* minimenuer og notifikationslisten */
  --hoodi-r-indre: 14px;        /* grupper og elementer inde i kort */
  --hoodi-r-lille: 10px;        /* filmærker, små flader */
  --hoodi-r-menu: 12px;         /* menupunkter, miniaturer (designguide 02.11.2026) */
  --hoodi-r-pille: 999px;       /* alt man trykker på som knap */

  /* Mål */
  --hoodi-sidebar-w: 300px;
  --hoodi-topbanner-h: 47px;    /* topbanneret med foreningsnavnet, også på telefon (mobile.css' 56 px vinder ikke over hovedfilen) */
  --hoodi-tabbar-h: 49px;       /* fanelinjen på telefon over den sikre zone, som iOS' egen (Danske Banks app målt 06-11-2026); 72 før */
  --hoodi-indhold-w: 720px;
  --hoodi-ikonflade: 44px;
  --hoodi-ikonknap: 40px;

  --hoodi-font: "Albert Sans", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}



/* 2. Logo i sidemenuen */
/* Logo: skiftes med CSS, så HTML ikke skal ændres.
   content: url() på <img> virker i Chrome, Edge, Safari og Firefox.
   Stien skal passe til, hvor filerne lægges. */
.app-sidebar-logo img, .aside-logo img, #kt_app_sidebar_logo img, .app-sidebar-logo .app-sidebar-logo-default {
  content: url("/dist/assets/media/logos/hoodi-logo.svg");
  height: 30px !important;
  width: auto !important;
}

/* 3. HOODIs egen opmærkning i app.hoodi.dk -------------------------------- */
/* Skrevet ud fra opmærkningen på dev.hoodi.dk/administration/. */

/* Sidemenuen (#kt_aside) har inline baggrund var(--bs-dark), og menupunkterne er
   .btn-primary med inline baggrund var(--bs-dark) eller, for det aktive punkt,
   var(--bs-primary). Ved at give variablerne andre værdier inde i menuen bliver
   menuen hvid og det aktive punkt lysegrønt, uden at HTML'en skal ændres. */
#kt_aside {
  --bs-dark: var(--hoodi-hvid);
  --bs-primary: var(--hoodi-lysgroen);
  border: 0 !important; /* ingen streg mod indholdet: hvid flade mod grå er nok (mockup) */
}
#kt_aside .text-white { color: var(--hoodi-petrol) !important; }
#kt_aside_logo { margin-top: 11px; margin-bottom: 66px !important; }   /* mockup (2x målt): logoblæk 80x25 px med top 67 px, 81,5 px fra logoets underkant til første ikon (66 px fra logoets boks til pillen); dev-logoet var 92 px bredt og 9 px lavere (Patrick 02-11-2026: afstanden så for stor ud) */
#kt_aside_logo img { width: 86px !important; height: auto !important; }   /* mockup 80 px; Patrick 02-11-2026: en anelse større */

#kt_aside_menu .btn {
  color: var(--hoodi-petrol) !important;
  border-radius: var(--hoodi-r-menu) !important;   /* guiden: 12 px på menupunkter (22 px var for rundt, Patrick 02-11-2026) */
  font-weight: 500;
  padding-left: 18px !important;
  padding-right: 12px !important;         /* tælleren (22 px) får 12 px til højre som over og under i den 46 px pille (Patrick 02-11-2026; 16 før) */
  min-height: 46px;                         /* mockup (2x målt i 20 skærmprint): 92 px = 46 px høj pille, 104 px = 52 px fra række til række */
  margin-bottom: 0 !important;             /* mockup har 6 px mellem pillerne (52 px rytme); fjernet, Patrick 02-11-2026: ingen mellemrum */
  display: flex !important;
  align-items: center;
  gap: 2px;
}
#kt_aside_menu .mb-5 { margin-bottom: 12px !important; }   /* luft mellem menugrupperne (tomme div.mb-5 i header.php); mockup 24 px, men uden mellemrum mellem pillerne var det for meget (Patrick 04-11-2026) -> 12 som pillens øvrige mål */
/* Bunden af sidemenuen: Metronic giver menuen mb-9 (29 px), skuffen pb-4/pb-lg-7 og footeren egen polstring, så der
   opstår et tomt felt under "Log ud". Mockup: 16 px fra sidste punkt til footeren og 20 px under den. */
#kt_aside_menu.mb-9 { margin-bottom: 16px !important; }
#kt_aside.pb-4, #kt_aside.pb-lg-7 { padding-bottom: 28px !important; }   /* mockup: bundlinjens midte 50 px fra bunden (44 px knap + 28) */
#kt_aside_footer { padding-bottom: calc(0px + var(--hoodi-safe-bottom, 0px)) !important; }
#kt_aside_menu .btn.fs-7 { font-size: 15px !important; }  /* mockup (2x målt): "Administration" 218 px bred = 16 px; Patrick 02-11-2026: en anelse mindre -> 15 som rækketitlerne */
/* Ikoner: fast 20 px kolonne, centreret glyf på 18 px (mockup-blæk 36x38 ved 2x), 12 px til teksten (mockup: ikon 17,5 px og tekst 51,5 px inde i punktet) */
#kt_aside_menu .btn i {
  color: var(--hoodi-petrol) !important;
  font-size: 16px !important;   /* fs-5-klassen på ikonet sætter selv størrelse; mockup-glyf 18 px; Patrick 02-11-2026: en anelse mindre -> 16 som listernes ikoner */
  line-height: 1;
  width: 20px;
  flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  margin-right: 12px !important;   /* tekst 50 px inde (mockup 51,5), ikonblæk ca. 19 px inde (mockup 17,5) */
}
#kt_aside_menu .btn:hover { background-color: var(--hoodi-hover) !important; }
/* Aktivt punkt: det har inline var(--bs-primary). Kun baggrunden skifter; teksten beholder vægten 500 som de øvrige punkter
   (Patrick 04-11-2026, afløser 725 fra 02-11-2026) */
#kt_aside_menu .btn[style*="--bs-primary"]:hover { background-color: var(--hoodi-lysgroen) !important; }
/* Tællere: petrol med hvid tekst, skubbet ud til højre */
#kt_aside_menu .badge {
  margin-left: auto;
  float: none !important;
  background: var(--hoodi-petrol) !important;
  color: var(--hoodi-hvid) !important;
  min-width: 22px; height: 22px;
  padding: 0 7px !important;
  display: inline-flex; align-items: center; justify-content: center;
  transform: translateY(.5px);            /* målt 2x: 22 px over og 26 under i pillen -> en halv pixel ned, så luften er ens (1 px gav 26/22) (02-11-2026) */
}
/* Log ud og tandhjul */
#kt_aside_footer .btn { background: transparent !important; }
#kt_aside_footer .btn i, #kt_aside_footer .btn span { color: var(--hoodi-petrol) !important; }
/* Bundlinjen ("Log ud" + tandhjul) efter mockup (2x målt): ikonblæk 34x36 = 18 px glyf i samme kolonne som menuens ikoner
   (ca. 38 px inde), tekst 15/500 med 12 px til ikonet.
   Metronic gav btn-sm (12 px/700) og fs-3-ikoner (22 px) - for småt og for store (Patrick 02-11-2026).
   Tandhjulet står lodret under menuens tællere (Patrick 04-11-2026; før 31 px, 7-9 px for langt til venstre): tællerens midte
   ligger menuens højre luft (pe-1 + pe-2 + me-4 = 1,75 rem, 22,75 px på skrivebord og 21 i mobilskuffen) + 12 px polstring +
   11 px (halv tæller) inde; tandhjulsknappen er 44 px, så luften til højre er 1,75 rem + 23 - 22 = 1,75 rem + 1 px. */
#kt_aside_footer { padding-left: 34px !important; padding-right: calc(1.75rem + 1px) !important; }
#kt_aside_footer > .d-flex.flex-stack { margin-left: 0 !important; }
#kt_aside_footer .btn.btn-sm { height: 44px; min-height: 44px; width: auto; padding: 0 !important; display: inline-flex; align-items: center; font-size: 15px !important; font-weight: 500; }
#kt_aside_footer .btn.btn-sm.me-n1 { margin-right: 0 !important; width: 44px; justify-content: center; }
#kt_aside_footer .btn span { font-size: 15px !important; font-weight: 500 !important; line-height: 1; }
#kt_aside_footer .btn i { font-size: 16px !important; line-height: 1; width: 20px; display: inline-flex; align-items: center; justify-content: center; margin-right: 12px !important; }
#kt_aside_footer .btn.me-n1 i { margin-right: 0 !important; }
/* Opstartens trin i sidemenuen (signup/steps.php, 05-11-2026): Metronics tidslinje, så forløbet kan ses (Patrick), men med
   nummererede 28 px cirkler og fast streg i stedet for tomme cirkler, pil og stiplede streger. 52 px fra trin til trin som
   menuens punkter, teksten 50 px inde og 15/500 som menuens tekst. Aktivt trin petrol med hvidt tal, gennemført lysegrøn med
   flueben, kommende grå med nedtonet tal og tekst. Stregen er Metronics: den starter under cirklen og går til næste trin. */
#kt_aside .hoodi-steps { --bs-timeline-icon-size: 28px; --bs-timeline-icon-space: 4px; padding: 12px 0 0 10px; }
#kt_aside .hoodi-steps .timeline-item { align-items: center; padding-bottom: 24px; text-decoration: none; }
#kt_aside .hoodi-steps .timeline-item:last-child { padding-bottom: 0; }
#kt_aside .hoodi-steps .timeline-line { border-left: 2px solid var(--hoodi-linje); margin-left: -1px; }
#kt_aside .hoodi-steps .timeline-icon { border: 0; margin-right: 12px; font-size: 13px; font-weight: 700; line-height: 1; background: var(--hoodi-graa); color: var(--hoodi-inaktiv-tekst); }
#kt_aside .hoodi-steps .hoodi-step-active .timeline-icon { background: var(--hoodi-petrol); color: var(--hoodi-hvid); }
#kt_aside .hoodi-steps .hoodi-step-done .timeline-icon { background: var(--hoodi-lysgroen); color: var(--hoodi-petrol); }
#kt_aside .hoodi-steps .timeline-icon .fi { font-size: 12px; line-height: 1; display: inline-flex; }
#kt_aside .hoodi-steps .timeline-content { margin: 0; overflow: visible; font-size: 15px; font-weight: 500; line-height: 28px; color: var(--hoodi-inaktiv-tekst); }
#kt_aside .hoodi-steps .hoodi-step-active .timeline-content, #kt_aside .hoodi-steps .hoodi-step-done .timeline-content { color: var(--hoodi-petrol); }

/* Topbanner (topbanner.php): striben over indholdet. Mockup: lysegrøn med petrol tekst,
   både foreningsnavnet og hoodi.dev-striben. Advarsler (prøveperiode, betaling) i
   advarselsfarverne. Selektoren er klassekombinationen fra topbanner.php. */
div.text-center.fw-bold.p-3.fs-7.bg-primary,
div.text-center.fw-bold.p-3.fs-7.bg-success {
  background-color: var(--hoodi-lysgroen) !important;
  color: var(--hoodi-petrol) !important;
}
div.text-center.fw-bold.p-3.fs-7.bg-warning {
  background-color: var(--hoodi-advarsel-bg) !important;
  color: var(--hoodi-advarsel) !important;
}
div.text-center.fw-bold.p-3.fs-7[class*="bg-"] {
  min-height: 47px;
  display: flex; align-items: center; justify-content: center;
  font-size: 15px !important;
  font-weight: 600 !important;
}

/* Topbjælken på mobil: hvid med petrol ikoner og nyt logo */
nav.navbar.d-lg-none { --bs-dark: var(--hoodi-hvid); border-bottom: 1px solid var(--hoodi-linje); }
nav.navbar.d-lg-none .text-light { color: var(--hoodi-petrol) !important; }
nav.navbar.d-lg-none img { content: url("/dist/assets/media/logos/hoodi-logo.svg"); height: 22px !important; width: auto !important; }

/* Lister bygget som table.tablebank inde i .card */
table.tablebank > tbody > tr > td { border: 0 !important; padding-top: 14px !important; padding-bottom: 14px !important; }   /* 72 px rækker (mockup 72,5): 44 px cirkel + 14 over og under, som Økonomi */
table.tablebank > tbody > tr + tr > td { border-top: 1px solid var(--hoodi-skillelinje) !important; }
/* Hover på alle klikbare rækker, ikke kun dem med onclick på selve rækken (Patrick 04-11-2026: hoveren fra Beskeder skal gælde
   alle rækker, f.eks. Opgaver). Klikbar = onclick på rækken, åbner en modal (data-bs-toggle) eller har cursor: pointer, fordi
   klikket sidder på cellerne eller i JS (Opgaver, Udlæg, Bilag, Abonnementer m.fl.). Rækker uden klik (felter, oplysninger)
   får ingen hover, så de ikke ligner noget, man kan trykke på. Grå bokse (tablebankgray) får den mørkere grå som Begivenheder. */
table.tablebank > tbody > tr:is([onclick], [data-bs-toggle], [style*="cursor:pointer"], [style*="cursor: pointer"]):hover > td { background: var(--hoodi-hover); }
table.tablebankgray > tbody > tr:is([onclick], [data-bs-toggle], [style*="cursor:pointer"], [style*="cursor: pointer"]):hover > td { background: #E6E6E6; }
table.tablebank > tbody > tr > td:first-child { padding-left: 18px !important; }
table.tablebank > tbody > tr > td:last-child { padding-right: 18px !important; }
table.tablebank .symbol-40px .symbol-label {
  width: var(--hoodi-ikonflade); height: var(--hoodi-ikonflade);
  background: var(--hoodi-graa);
  padding-top: 0 !important;
  display: flex; align-items: center; justify-content: center;
}
table.tablebank .symbol-label i, table.tablebank .symbol-label .fi { color: var(--hoodi-petrol) !important; line-height: 1; font-size: 16px !important; position: relative; top: 1px; }   /* mockup (profilmodal, 2x målt): 16 px blæk i cirklen; 18 var en anelse for stor (Patrick 02-11-2026) */
table.tablebank .fi-rr-angle-small-right, .modal table .fi-rr-angle-small-right { color: var(--hoodi-tekst2) !important; font-size: 16px !important; line-height: 1; vertical-align: middle; }   /* vertical-align: på grundlinjen sad blækket 3 px over rækkens midte (målt 2x på Dokumenter: 6 px over; med middle 0), Patrick 04-11-2026 */   /* samme chevron i alle lister og som tilbageknappens: mockups (Boliger, Administration, Bolig, Min bolig) måler 7x15 px blæk ved 2x = 14 px skrift (8x16); 20 px gav 11x21 (02-11-2026) */   /* også modalernes feltrækker uden tablebank, der ellers fik fs-3 = 22 px (04-11-2026) */
table.tablebank .fs-6 { font-size: 16px !important; }
/* Menurækker (Administration, Menu-siden, Økonomi-menuen m.fl.: span.fw-semibold.fs-6) samme som de øvrige rækketitler: 15/600
   (Patrick 02-11-2026: ét udtryk i alle lister - 700 var for kraftigt i menuerne, 500 for let i listerne; mockup Administration har 16 px almindelig vægt) */
table.tablebank td .fw-semibold.fs-6 { font-size: 15px !important; font-weight: 600 !important; line-height: 1.3; }
/* Rækketitel og undertekst i alle lister: titel 15/700 som navnet i opslag, undertekst 13/400 som på Økonomi ("Periode: ...")
   (Patrick 02-11-2026: "Søfryd 9" / "3200 Helsinge" på Min bolig skal have samme størrelse og vægt). Kun titelmønstret
   span.fw-bold direkte i cellen (evt. i en div) og undertekstmønstret .text-muted.d-block/.fs-8 - ikke beløb og mærker. */
/* Rækker med cirkel i første celle (Administration, Boliger, Medlemmer m.fl.): 14 px på alle sider af cirklen, altså
   14 px fra kortets kant, 14 px til teksten og 14 px over og under (Patrick 02-11-2026). Før: ps-4 + me-2 + pe-1 + næste
   celles polstring = 19 px til venstre og 15 px til teksten. Energimærkets firkant (home/details.php) står på samme plads som
   cirklerne; før stod den 4 px længere til højre end virksomhedernes cirkler lige over (Patrick 05-11-2026). Foreningens
   firkant (.hoodi-associationicon i søgelisten på opret-siden) står samme sted. */
table.tablebank > tbody > tr > td:first-child:has(.symbol-circle, .hoodi-energylabel, .hoodi-associationicon) { padding-left: 14px !important; padding-right: 0 !important; width: 58px; }
table.tablebank > tbody > tr > td:first-child:has(.symbol-circle, .hoodi-energylabel, .hoodi-associationicon) > .me-2, table.tablebank > tbody > tr > td:first-child:has(.symbol-circle, .hoodi-energylabel, .hoodi-associationicon) > .symbol { margin-right: 0 !important; }
table.tablebank > tbody > tr > td:first-child:has(.symbol-circle, .hoodi-energylabel, .hoodi-associationicon) + td { padding-left: 14px !important; }
/* Metronics .symbol-group giver gruppen 10 px margen og cirklen -10 px (til overlappende avatarer); med én cirkel bliver
   cellen 10 px for bred, så teksten kom 24 px fra cirklen (Dokumenter, 02-11-2026). Enkeltcirkler får ingen margener. */
table.tablebank > tbody > tr > td:first-child:has(.symbol-circle) .symbol-group:has(> .symbol:only-child) { margin: 0 !important; padding: 0 !important; display: flex; }
table.tablebank > tbody > tr > td:first-child:has(.symbol-circle) .symbol-group:has(> .symbol:only-child) > .symbol { margin: 0 !important; border: 0 !important; }
/* Chevron-cellen til højre: chevronens BLÆK 22 px fra kortets kant (Patrick 02-11-2026: 14 var for tæt på, mockup'ens 18 "skal
   lidt længere ind for at være naturligt"). Glyffen har ca. 5 px luft i sin egen boks ved 16 px, så cellen får 17 px. */
table.tablebank > tbody > tr > td:last-child:has(> .fi-rr-angle-small-right) { padding-right: 17px !important; }
/* Plusset i tilføj-listerne (underskrivere, e-Boks-modtagere, tildeling m.fl.) har chevronens størrelse og plads (Patrick
   04-11-2026: fs-1 var langt større end rækkernes chevron). Farven følger fortsat rækken (usynlig, petrol ved hover). */
table.tablebank > tbody > tr > td:last-child > .fi-rr-plus-small { font-size: 16px !important; line-height: 1; vertical-align: middle; }   /* midt i rækken som chevronen (sad også 3 px for højt) */
table.tablebank > tbody > tr > td:last-child:has(> .fi-rr-plus-small) { padding-right: 17px !important; }
/* Nabocellen før chevronen (mærker, beløb, chips) sidder helt op ad sin højre side: ingen polstring og ingen efterluft på det
   sidste mærke; chevron-cellens egen venstre polstring (ps-5) er så afstanden (Patrick 02-11-2026). */
table.tablebank > tbody > tr > td:has(+ td:last-child > .fi-rr-angle-small-right) { padding-right: 0 !important; }
/* Celler med mærker (fx ejere i boliglisten) fylder resten af rækken; mærkerne højrestilles, så de står op ad chevronen.
   Titelceller (tekst uden mærker) rører vi ikke. */
table.tablebank > tbody > tr > td:has(> span > .badge, > .badge):has(+ td:last-child > .fi-rr-angle-small-right) { text-align: right; white-space: nowrap; }
table.tablebank > tbody > tr > td:has(+ td:last-child > .fi-rr-angle-small-right) > span:last-child > .badge.me-3,
table.tablebank > tbody > tr > td:has(+ td:last-child > .fi-rr-angle-small-right) > .badge.me-3:last-child { margin-right: 0 !important; }
table.tablebank > tbody > tr > td > span.fw-bold, table.tablebank > tbody > tr > td > div > span.fw-bold,
table.tablebank td .fw-bold.fs-6, table.tablebank td .fw-bolder.fs-6 { font-size: 15px !important; font-weight: 600 !important; line-height: 1.3; }   /* 15/600: ét udtryk med menurækkerne (Patrick 02-11-2026; mockup Boliger måler 16/600) */
table.tablebank td .text-muted.d-block, table.tablebank td span.text-muted.fs-8, table.tablebank td span.text-muted.fs-7 { font-size: 13px !important; font-weight: 400 !important; line-height: 1.4; }
/* Rækker med div.fw-bold som titel og en inline span.text-muted.fs-8 under (modalen Tildel ansvarlig m.fl.): samme opbygning
   som medlemslisten, titel 15/600 og undertekst 13/400 som blok lige under (Patrick 03-11-2026: for stor afstand) */
table.tablebank > tbody > tr > td > div.fw-bold { font-size: 15px !important; font-weight: 600 !important; line-height: 1.3; color: var(--hoodi-petrol); }
table.tablebank > tbody > tr > td > div.fw-bold + span.text-muted.fs-8 { display: block; }
/* Samme for titel som span i en div og underteksten som inline-span bagefter (Opkrævninger på medlemssiden m.fl.): inline fik
   underteksten cellens 16 px-linje (24 px høj), så rækken blev 73 px og der var 13 px blæk mellem linjerne mod 10,5 i Boliger,
   der har d-block (Patrick 04-11-2026: feltrækkerne ved siden af så lavere ud). Kun sidste barn, så intet efter den rykker ned. */
table.tablebank > tbody > tr > td > div:has(> .fw-bold, > .fw-bolder, > .fw-semibold) + span.text-muted:last-child { display: block; }
/* Undertekst som egen div under titlen: titlen i en div (Opgaver, Dokumentskabeloner, Kollegaer, Ubesvarede spørgsmål) eller
   selv en div (valgrækkerne i Tilføj ressource og Tilføj deltager). Samme 13/400 med linjehøjde 1,4 og uden topmargen som
   span-underteksten i Boliger og Medlemmer (Patrick 04-11-2026: Opgaver havde for stor afstand og for stor skrift; målt 14 px
   og 6,3 px mod 13 px og 2,5-3 px). Dokumentskabeloner har underteksten som span i en div. */
table.tablebank > tbody > tr > td > div:has(> .fw-bold, > .fw-bolder, > .fw-semibold) + div.text-muted,
table.tablebank > tbody > tr > td > div:is(.fw-bold, .fw-bolder, .fw-semibold) + div.text-muted,
table.tablebank > tbody > tr > td > div:has(> .fw-bold, > .fw-bolder, > .fw-semibold) + div > span:is(.text-muted, .text-gray-600):only-child { font-size: 13px !important; font-weight: 400 !important; line-height: 1.4; margin-top: 0 !important; }
/* Tekst i listernes rækker afkortes med "..." i stedet for at ombryde (Patrick 05-11-2026 om Leverandører, hvor en lang branche
   løb over to linjer: "det gælder indholdet i alle række-tabeller"). Samme mønster som de lister, der allerede gør det i
   opmærkningen (GDPR, Opgaver, Opkrævninger): titelcellen får width: 100%; max-width: 0, så den fylder resten af rækken og må
   blive smallere end teksten, og hver linje i den klippes med ellipsis; cellerne efter den (telefon, dato, beløb, mærker) står
   på én linje i deres naturlige bredde, så det er titelcellen, der giver sig. Titelcellen = den første celle i rækken med
   titelmønstret fra reglerne ovenfor (span/div.fw-bold direkte i cellen eller i en div), dog ikke cirkelcellen. Celler med
   felter, vælgere eller menuer røres ikke, og heller ikke GDPR's afsnitsrækker eller rækker med tr.hoodi-fulltext (valgene i
   Tilføj medlem på gruppens indstillinger og Abonnementer, Patrick 05-11-2026), hvis undertekst er en forklaring, man skal
   kunne læse hele. min-width: 0 tilsidesætter inline min-width (Underskrifter: 200 px skubbede rækken ud over kortet på mobil).
   Indbakke-vælgeren er undtaget: dens rækker er flex-rækker (inbox.css), hvor max-width: 0 gjorde tekstcellen 0 px bred, så
   indbakkernes navne forsvandt (05-11-2026); den afkorter selv med flex: 1 og min-width: 0. */
table.tablebank:not(.hoodi-inboxmenu table) > tbody > tr:not(.gdpr-section, .hoodi-fulltext) > td:has(> :is(.fw-bold, .fw-bolder, .fw-semibold), > div > :is(.fw-bold, .fw-bolder, .fw-semibold)):not(:has(.symbol, .hoodi-energylabel)):not(td:has(> :is(.fw-bold, .fw-bolder, .fw-semibold), > div > :is(.fw-bold, .fw-bolder, .fw-semibold)):not(:has(.symbol, .hoodi-energylabel)) ~ td):not(:has(input:not([type="hidden"]), select, textarea, .menu-sub, .dropdown-menu)) { width: 100%; max-width: 0 !important; min-width: 0 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
table.tablebank > tbody > tr:not(.gdpr-section, .hoodi-fulltext) > td:has(> :is(.fw-bold, .fw-bolder, .fw-semibold), > div > :is(.fw-bold, .fw-bolder, .fw-semibold)):not(:has(.symbol, .hoodi-energylabel)):not(td:has(> :is(.fw-bold, .fw-bolder, .fw-semibold), > div > :is(.fw-bold, .fw-bolder, .fw-semibold)):not(:has(.symbol, .hoodi-energylabel)) ~ td):not(:has(input:not([type="hidden"]), select, textarea, .menu-sub, .dropdown-menu)) :is(div, span.d-block, a.d-block, p):not(.badge) { overflow: hidden; text-overflow: ellipsis; }
table.tablebank > tbody > tr:not(.gdpr-section, .hoodi-fulltext) > td:has(> :is(.fw-bold, .fw-bolder, .fw-semibold), > div > :is(.fw-bold, .fw-bolder, .fw-semibold)):not(:has(.symbol, .hoodi-energylabel)):not(td:has(> :is(.fw-bold, .fw-bolder, .fw-semibold), > div > :is(.fw-bold, .fw-bolder, .fw-semibold)):not(:has(.symbol, .hoodi-energylabel)) ~ td):not(:has(input:not([type="hidden"]), select, textarea, .menu-sub, .dropdown-menu)) ~ td { white-space: nowrap; }
/* Talfelter i rækkens højre celle (budgettet og fordelingstal: td.text-end > input.form-control-solid): titelcellens width: 100%
   ovenfor klemte cellen ned til polstringen, ca. 28 px, så man ikke kunne se, hvad man skrev (Patrick 05-11-2026: "felterne
   virker ikke"). Cellens inline width: 200px vinder ikke over de 100 %, så feltet får en mindstebredde, cellen ikke kan gå under.
   Feltet er temaets grå og 44 px højt som cirklen, så rækken er 14 + 44 + 14, og cellen har 14 px til højre, samme luft som
   over og under feltet (Patrick 05-11-2026; før Metronics lysere grå og 17,5 px mod 15) */
table.tablebank > tbody > tr > td.text-end > input.form-control-solid,
table.tablebank > tbody > tr > td.text-end > input.form-control-solid:focus { min-width: 160px; height: 44px; min-height: 44px; padding-left: 16px !important; padding-right: 16px !important; background-color: var(--hoodi-graa) !important; border-color: var(--hoodi-graa) !important; }
table.tablebank > tbody > tr > td.text-end:has(> input.form-control-solid, > .input-group-solid) { padding-right: 14px !important; }
/* Med en enhed (fordelingstal: "som noget man ikke kan slette", Patrick 05-11-2026) står feltet i en input-group-solid med enheden
   som label bagved, som "+45" foran mobilnummeret i modals.php. Gruppen er fladen (grå, 44 px, 14 px runding som feltet, samme
   mindstebredde); feltet og enheden er gennemsigtige uden kant. Tallet står 6 px fra enheden, og enheden har feltets 16 px til
   højre, så den flugter med tallene i felter uden enhed og med "I alt". Feltet beholder mindst 56 px, så tallet ikke forsvinder
   bag en lang enhed; så giver titlen sig i stedet. */
table.tablebank > tbody > tr > td.text-end > .input-group-solid { flex-wrap: nowrap; min-width: 160px; height: 44px; border: 1px solid var(--hoodi-graa); border-radius: 14px; background-color: var(--hoodi-graa); }
table.tablebank > tbody > tr > td.text-end > .input-group-solid > input.form-control-solid,
table.tablebank > tbody > tr > td.text-end > .input-group-solid > input.form-control-solid:focus { height: 42px; min-height: 42px; min-width: 56px; padding: 0 6px 0 16px !important; background-color: transparent !important; border: 0 !important; border-radius: 14px 0 0 14px; }
table.tablebank > tbody > tr > td.text-end > .input-group-solid > .input-group-text { margin-left: 0; padding: 0 16px 0 0; background-color: transparent !important; border: 0 !important; font-size: 15px; font-weight: 400; color: var(--hoodi-tekst2); cursor: text; }
/* "I alt" under en liste med cirkler og talfelter (fordelingstal 05-11-2026; opkrævningens tr.hoodi-total i finance.css er til
   linjer i et kortindhold): 16/700 petrol, 72 px høj som rækkerne ovenover (24 + 24 + 24). Første celle er tom under cirklerne,
   så "I alt" flugter med rækkernes titler (14 px efter cirkelcellen), og summen flugter med tallene i felterne: cellens 14 px +
   feltets kant 1 px + feltets 16 px (målt 05-11-2026: flugter på pixel ved 375 og 1280 px) */
table.tablebank > tbody > tr.hoodi-total > td { padding-top: 24px !important; padding-bottom: 24px !important; font-size: 16px !important; font-weight: 700 !important; line-height: 24px; color: var(--hoodi-petrol); }
table.tablebank > tbody > tr.hoodi-total > td:first-child:empty + td { padding-left: 14px !important; }
table.tablebank > tbody > tr.hoodi-total > td.text-end:last-child { padding-right: 31px !important; }
@media (max-width: 575.98px) {
  table.tablebank > tbody > tr > td.text-end > input.form-control-solid,
  table.tablebank > tbody > tr > td.text-end > .input-group-solid { min-width: 110px; }
}
/* Fejl i felter (designguiden, afsnit 04): rød kant om feltet og en rød linje under med kryds i cirkel, 13 px. Bruges, når et felt
   gemmes for sig og serveren afviser det (fordelingstal 05-11-2026); i stedet for et Swal-vindue. Under et højrestillet felt
   står linjen også til højre, og den må ombryde, selvom cellen ellers står på én linje. */
.hoodi-field-error { display: flex; align-items: center; gap: 6px; margin-top: 6px; font-size: 13px; font-weight: 400; line-height: 1.3; color: var(--hoodi-fejl); white-space: normal; text-align: left; }
.hoodi-field-error .fi { flex-shrink: 0; display: inline-flex; font-size: 13px; line-height: 1; color: var(--hoodi-fejl); }
td.text-end > .hoodi-field-error { justify-content: flex-end; text-align: right; }
input.form-control.hoodi-field-invalid, input.form-control.hoodi-field-invalid:focus,
table.tablebank > tbody > tr > td.text-end > input.form-control-solid.hoodi-field-invalid,
table.tablebank > tbody > tr > td.text-end > .input-group-solid.hoodi-field-invalid { border: 1px solid var(--hoodi-fejl) !important; }   /* stien slår talfelternes grå kant ovenfor */
/* Mærke i titellinjen (Opgaver: "Vigtigt") gør ikke linjen højere: mærket er ca. 26 px, titellinjen 24, så underteksten rykkede
   2,5 px længere ned på rækker med mærke. Negativ lodret margen lader mærket stå midt på linjen uden at skubbe. Titellinjen
   (text-truncate klipper) får 4 px polstring over og under, modsvaret af negativ margen, så mærket ikke klippes i bunden. */
/* Opkrævningskortene (Min bolig og Abonnement: table.table#kt_inbox_listing direkte i et kort, ikke tablebank) får listernes mål:
   44 px grå cirkel med 16 px ikon, mærkaten over værdien 13/400 og værdien 15/600 (Patrick 05-11-2026: mærkaten var lige så stor
   som værdien, og cirklen var mindre end i listerne) */
.card > table.table#kt_inbox_listing:not(.tablebank) .symbol-40px .symbol-label { width: var(--hoodi-ikonflade); height: var(--hoodi-ikonflade); background: var(--hoodi-graa); padding-top: 0 !important; display: flex; align-items: center; justify-content: center; }
.card > table.table#kt_inbox_listing:not(.tablebank) .symbol-label > .fi { font-size: 16px !important; line-height: 1; }
.card > table.table#kt_inbox_listing:not(.tablebank) td > span.text-muted.fs-8 { font-size: 13px !important; font-weight: 400 !important; line-height: 1.4; }
.card > table.table#kt_inbox_listing:not(.tablebank) td > div > span.fw-bold { font-size: 15px !important; font-weight: 600 !important; line-height: 1.3; }
/* Chevronen som i alle lister (Patrick 05-11-2026: for stor); uden tablebank fik den fs-3 = 22 px */
.card > table.table#kt_inbox_listing:not(.tablebank) .fi-rr-angle-small-right { color: var(--hoodi-tekst2) !important; font-size: 16px !important; line-height: 1; vertical-align: middle; }
/* Statusmærket ved titlen (Ikke betalt, Betales automatisk) gør ikke titellinjen højere: mærket er ca. 26 px, linjen ca. 20,
   så negativ lodret margen som mærket i Opgavers titellinje (05-11-2026) */
.card > table.table#kt_inbox_listing:not(.tablebank) td > div > .badge { margin-top: -4px; margin-bottom: -4px; }
table.tablebank > tbody > tr > td > div:has(> .fw-bold, > .fw-bolder, > .fw-semibold) > .badge { vertical-align: middle; margin-top: -4px; margin-bottom: -4px; }
table.tablebank > tbody > tr > td > div:has(> .fw-bold, > .fw-bolder, > .fw-semibold):has(> .badge) { padding-top: 4px; padding-bottom: 4px; margin-top: -4px; margin-bottom: -4px; }
/* Feltrækker (form-floating med input i en tablebank-række, f.eks. medlemssidens Overblik): omvendt af listernes rækker -
   etiket 13/400 grå øverst som underteksten, værdi 15/600 petrol nedenunder som rækketitlen - og samme højde som datarækkerne
   (Patrick 04-11-2026). Bootstraps felt er calc(3.75rem + 2px) = 50,75 px og gav 79 px rækker mod listernes 72; nu 44 px som
   cirklen, så rækken bliver 14 + 44 + 14. Teksten starter 14 px efter cirklen som rækketitlerne (inputtets ps-1 udgår).
   Et tomt felt uden fokus beholder etiketten midt i feltet som pladsholder; den rykker op, når der skrives. Tidspunktsvælgerne
   (select.form-control: Starter/Slutter i arrangementer og booking, klokkeslæt ved frister) står ved siden af datofeltet og
   følger samme regel, så klokkeslættet har datoens størrelse, vægt og linje (Patrick 04-11-2026: 19:00 var tyndere og lavere
   end datoen). Tekstfelter (textarea) og vælgere med pil (form-select) har egen højde. Indstillingsmodalen har sine egne
   regler i settings.css. */
table.tablebank .form-floating:has(> input.form-control),
table.tablebank .form-floating:has(> select.form-control) { height: 44px; }
table.tablebank .form-floating > input.form-control,
table.tablebank .form-floating > select.form-control { height: 44px !important; min-height: 44px !important; padding: 20px 0 0 0 !important; line-height: 1.3 !important; font-size: 15px !important; font-weight: 600 !important; color: var(--hoodi-petrol) !important; }
/* For lang værdi afkortes med "..." som listernes tekst (Patrick 05-11-2026: "indholdet i alle række-tabeller"); før blev f.eks.
   folkeregisteradressen på medlemssiden klippet midt i et ord. Gælder kun, mens feltet ikke redigeres. */
table.tablebank .form-floating > input.form-control { text-overflow: ellipsis; }
table.tablebank .form-floating > input.form-control:disabled,
table.tablebank .form-floating > select.form-control:disabled { color: var(--hoodi-petrol) !important; -webkit-text-fill-color: var(--hoodi-petrol); opacity: 1; }
table.tablebank .form-floating > input.form-control ~ label,
table.tablebank .form-floating > select.form-control ~ label {
  font-size: 13px !important; font-weight: 400 !important; color: var(--hoodi-tekst2) !important; opacity: 1 !important;
  top: 3px !important; left: 0 !important; padding: 0 !important; height: auto !important; line-height: 1.4 !important; transform: none !important;
}
table.tablebank .form-floating > input.form-control ~ label span,
table.tablebank .form-floating > select.form-control ~ label span { font-size: inherit !important; color: inherit !important; font-weight: inherit !important; }
table.tablebank .form-floating > input.form-control:placeholder-shown:not(:focus) ~ label { top: 12px !important; font-size: 15px !important; }
.card.mb-5 { overflow: hidden; }
/* Et feltkort med adressesøgning (Opret bolig, Personlige oplysninger) må ikke klippe forslagslisten, som dawa-autocomplete2
   indsætter lige efter feltet inde i kortet; listen lægges over hjælpetekst og knap nedenunder (Patrick 02-11-2026: listen var skjult). */
.card.mb-5:has(input[aria-autocomplete="list"]) { overflow: visible; position: relative; z-index: 5; }
.card.mb-5 .dawa-autocomplete-suggestions { z-index: 10; }
/* Princip: 17 px mellem stablede kort overalt, som fra listernes søgefelt til kortet under (Patrick 04-11-2026). Metronics mb-5
   gav 16,25 px på desktop og 15 på telefon (Administration, Indstillinger, Bogføring, Balance, Posteringer, GDPR-oversigten).
   Kortgitre: Supports kategorier (søjler med mb-5 og standard-gutter 19,5 px vandret) og Bookings ressourcer (g-6 = 19,5 px). */
.card.mb-5 { margin-bottom: 17px !important; }
/* Princip: kortenes runding er den samme som søgefeltets og vælgerens (24 px = halvdelen af deres 48 px), så de stablede flader
   har ens hjørner (Patrick 04-11-2026: kortene havde 20 px på siderne og 22 i modaler, opslag, boliger m.fl.). Del A sætter
   20 px og må ikke rettes i hånden, derfor overstyres variablerne her. Særlige kort bruger var(--hoodi-r-kort). */
.card { --bs-card-border-radius: var(--hoodi-r-kort); --bs-card-inner-border-radius: var(--hoodi-r-kort); }
.row.mb-5:has(> [class*="col"] > .card) { margin-bottom: 17px !important; }
.row:not([class*=" g-"]):has(> [class*="col"].mb-5 > .card.h-100) { --bs-gutter-x: 17px; }   /* gitre med g-* har egen lodret gutter */
.row:not([class*=" g-"]):has(> [class*="col"].mb-5 > .card.h-100) > [class*="col"].mb-5 { margin-bottom: 17px !important; }
.row.g-6:has(> [class*="col"] > .card) { --bs-gutter-x: 17px; --bs-gutter-y: 17px; }

/* Ikonfarver: ét sæt regler for hele appen (mockup)
   - ikoner på hvid eller grå flade er petrol, også når opmærkningen siger text-gray-*
   - ikoner i grå cirkler (symbol-label) er petrol og centrerede, både <i> og <span class="fi">
   - ikoner i petrol cirkler (plus-knappen, AI-assistenten) er hvide
   - avatarer med initialer er lysegrønne med petrol tekst
   - tællere er petrol med hvid tekst */
.fi[class*="text-gray-"], .fi.text-muted { color: var(--hoodi-petrol) !important; }
.symbol .symbol-label:not([class*="bg-"]) > i,
.symbol .symbol-label:not([class*="bg-"]) > .fi { color: var(--hoodi-petrol) !important; line-height: 1; }
.symbol-40px .symbol-label > i, .symbol-40px .symbol-label > .fi,
.symbol-45px .symbol-label > i, .symbol-45px .symbol-label > .fi { font-size: 16px; }
/* pt-1 på cirklen skubber ikonet ned; cirklen centrerer selv med flex */
.symbol .symbol-label.pt-1:has(> i), .symbol .symbol-label.pt-1:has(> .fi) { padding-top: 0 !important; }
.symbol .symbol-label.bg-dark > i, .symbol .symbol-label.bg-dark > .fi,
.symbol .symbol-label.bg-primary > i, .symbol .symbol-label.bg-primary > .fi { color: var(--hoodi-hvid) !important; }
.symbol .symbol-label.bg-primary.text-inverse-primary { background-color: var(--hoodi-lysgroen) !important; color: var(--hoodi-petrol) !important; }
/* Energimærket på boligsiden (home/details.php): altid grå flade med petrol bogstav som ikonerne; firkanten bevares.
   Mærkets farveskala står inline og gælder fortsat på app (Patrick 05-11-2026) */
.symbol .symbol-label.hoodi-energylabel { background: var(--hoodi-graa) !important; color: var(--hoodi-petrol) !important; }
.badge.badge-primary, .badge.badge-dark { background-color: var(--hoodi-petrol); color: var(--hoodi-hvid); }

/* Primære knapper i modaler er .btn-dark: samme udseende som primær knap */
.modal .btn.btn-dark {
  background: var(--hoodi-petrol) !important;
  color: var(--hoodi-groen) !important;
}
.modal .btn.btn-dark:disabled { background: var(--hoodi-inaktiv-bg) !important; color: var(--hoodi-inaktiv-tekst) !important; }
/* Mørke knapper på siderne (fx Gem ændringer på medlemssiden) får også den grønne tekst (guide: grøn tekst på petrol-knapper).
   Metronic farver tekst og ikoner med var(--bs-dark-inverse) = hvid, også ved hover og aktiv. Variablen ændres kun på knappen,
   så mærker, værktøjstips og .text-inverse-dark beholder den hvide (Patrick 04-11-2026). */
.btn.btn-dark { --bs-dark-inverse: var(--hoodi-groen); }
/* Luk- og tilbageknapper i modaler: hvid cirkel, 40 px */
.modal-header .symbol-30px .symbol-label { width: var(--hoodi-ikonknap); height: var(--hoodi-ikonknap); border-radius: 999px; }

/* HOODIs AI-assistent (#wg-) */
#wg-launcher { background: var(--hoodi-petrol) !important; }
#wg-launcher i { color: var(--hoodi-hvid) !important; } /* mockup: hvidt ikon på petrol cirkel */
#wg-panel { border-radius: var(--hoodi-r-overlay) !important; }
.wg-starter, .wg-suggestion, .wg-support-btn {
  border: 0 !important;
  background: var(--hoodi-graa) !important;
  color: var(--hoodi-petrol) !important;
  border-radius: var(--hoodi-r-indre) !important;
}
.wg-starter:hover, .wg-suggestion:hover, .wg-support-btn:hover { background: var(--hoodi-lysgroen) !important; }
.wg-msg-user > div { background: var(--hoodi-petrol) !important; color: var(--hoodi-hvid) !important; }
.wg-msg-ai .ai-text:not(:empty) { background: var(--hoodi-graa) !important; }
#wg-chat-send { background: var(--hoodi-petrol) !important; }
#wg-chat-send i { color: var(--hoodi-hvid) !important; }
.wg-chat-inputrow { background: var(--hoodi-graa) !important; }
.wg-disclaimer-ok { background: var(--hoodi-petrol) !important; color: var(--hoodi-groen) !important; }


/* Sidens indhold begynder 40 px under topbanneret (mockup Administration 2x: sidetitlens blæk 97 px fra toppen, første kort
   149 px; dev lå 52 px lavere med Metronics pt-xl-20 (65 px) + 30 px indholdspolstring). Kun på skærme med fast sidemenu;
   mobile.css styrer telefonen. */
@media (min-width: 992px) {
  .app-container.pt-xl-20 { padding-top: 78px !important; }   /* Patrick 02-11-2026: siderne skal begynde længere nede end mockup'ens 40 (titelblæk ca. 113 px fra toppen; 52 + 4 px fra 44 px linjehøjde); 04-11-2026: ca. 50 % mere luft over titlen, 52 -> 78 */
  #kt_app_content.app-content { padding-top: 0 !important; }
}

/* Topbanner i det nye design (topbanner.php): foreningsnavn i midten, klokke til højre.
   Klæber i toppen, når man ruller, på alle skærme (Patrick 04-11-2026). mobile.css' sticky virkede aldrig, fordi delfilerne
   indlæses før hovedfilen, og position: relative her vandt. */
.topbanner-name {
  position: sticky; top: 0; z-index: 1040;   /* over sidens indhold (plus-knap, vælger), under modalernes bagtæppe (1050) */
  display: flex; align-items: center; justify-content: center;
  min-height: var(--hoodi-topbanner-h);
  padding: 0 72px !important;        /* plads til klokken i højre side */
  font-size: 15px !important; font-weight: 700 !important;   /* mockup (2x målt): 15/700 - 600 var for spinkel (Patrick 02-11-2026) */
}
div.text-center.fw-bold.p-3.fs-7.topbanner-name[class*="bg-"] { font-weight: 700 !important; }   /* vinder over bånd-reglen ovenfor (samme specificitet + senere) */
.topbanner-assoc { color: var(--hoodi-petrol); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
a.topbanner-assoc { cursor: pointer; }
a.topbanner-assoc:hover { color: var(--hoodi-petrol); opacity: .8; }
.topbanner-assoc .fi { font-size: 16px; line-height: 1; display: inline-flex; }
.topbanner-bell { position: absolute; right: 24px; top: 50%; transform: translateY(-50%); }
.topbanner-bell-btn {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 999px; cursor: pointer; color: var(--hoodi-petrol);
}
.topbanner-bell-btn:hover { background: rgba(255, 255, 255, 0.45); color: var(--hoodi-petrol); }
.topbanner-bell-btn .fi { font-size: 16px; line-height: 1; display: inline-flex; }   /* som sidemenuens ikoner (Patrick 02-11-2026); 20 før */
.topbanner-bell-count {
  position: absolute; top: 2px; right: 2px;
  min-width: 18px; height: 18px; padding: 0 5px;
  border-radius: 999px; background: var(--hoodi-petrol); color: var(--hoodi-hvid);
  font-size: 11px; font-weight: 700; line-height: 18px; text-align: center;
}
/* Notifikationslisten bag klokken bruger indbakke-vælgerens opmærkning og .hoodi-inboxmenu (inbox.css), så bredde, rækker
   og cirkler er de samme (Patrick 04-11-2026). Teksten er som før: 15/400 petrol med antallet i fed foran, ingen tæller til
   højre. Derudover kun det, banneret ellers ville give den: centreret tekst, og vælgerens 14 px afstand ned fra sidetitlen,
   som klokken ikke skal have. Menuen flugter med klokkens højre kant (24 px inde), så på telefon er den 24 px fra begge
   sider; med vælgerens 16 px stod den 8 px fra venstre kant. To-linjers tekst ("1 ulæste eller ventende i Administration")
   får vælgerens 1,3 i linjehøjde; ellers satte rækkens 1,5 afstanden. */
.menu-sub-dropdown.hoodi-inboxmenu.topbanner-notifs { margin-top: 0 !important; max-width: calc(100vw - 48px); text-align: left; }
.menu-sub-dropdown.hoodi-inboxmenu.topbanner-notifs table.tablebank td > div { line-height: 1.3; }
.menu-sub-dropdown.hoodi-inboxmenu.topbanner-notifs .topbanner-notif-text { font-size: 15px; font-weight: 400; color: var(--hoodi-petrol); }
.menu-sub-dropdown.hoodi-inboxmenu.topbanner-notifs .topbanner-notif-text b { font-weight: 700; }
.topbanner-notif-empty { padding: 14px; color: var(--hoodi-tekst2); font-size: 15px; font-weight: 400; }
/* Editorernes værktøjslinjer (documents/page, events/edit, booking/resources/edit) klæber ved top: 0 og ville gemme sig
   bag det klæbende topbanner; de klæber i stedet lige under det. !important, fordi sidernes egen stil kommer efter temaet. */
.page-toolbar, .description-toolbar { top: var(--hoodi-topbanner-h) !important; }

/* Lister i minimenuer (indbakke-vælgeren m.fl., .menu-sub-dropdown > table.tablebank), mockup Beskeder (2x målt):
   menu 392 px bred med 6-8 px polstring, rækker 56 px, grå 36 px cirkel med 16 px glyf, 12 px til teksten (15/600 +
   13/400), ingen skillelinjer og pile. Den valgte række er en grå flade (#EFEFEF, 16 px runding) med HVID cirkel og
   flueben; de øvrige rækker er hvide og får kun hover-flade. */
.menu-sub-dropdown table.tablebank > tbody > tr + tr > td { border-top: 0 !important; }
.menu-sub-dropdown table.tablebank > tbody > tr > td { padding-top: 10px !important; padding-bottom: 10px !important; background: transparent !important; }
.menu-sub-dropdown table.tablebank .fi-rr-angle-small-right, .menu-sub-dropdown table.tablebank .ki-right { display: none; }
.menu-sub-dropdown table.tablebank > tbody > tr:hover > td { background: var(--hoodi-hover) !important; }
.menu-sub-dropdown table.tablebank > tbody > tr.hoodi-selected > td { background: var(--hoodi-graa) !important; }
.menu-sub-dropdown table.tablebank > tbody > tr:hover > td:first-child, .menu-sub-dropdown table.tablebank > tbody > tr.hoodi-selected > td:first-child { border-top-left-radius: 16px; border-bottom-left-radius: 16px; }
.menu-sub-dropdown table.tablebank > tbody > tr:hover > td:last-child, .menu-sub-dropdown table.tablebank > tbody > tr.hoodi-selected > td:last-child { border-top-right-radius: 16px; border-bottom-right-radius: 16px; }
.menu-sub-dropdown table.tablebank > tbody > tr.hoodi-selected .symbol-label { background: var(--hoodi-hvid) !important; }
.menu-sub-dropdown table.tablebank > tbody > tr.hoodi-selected .fi-rr-check { display: inline-flex; color: var(--hoodi-petrol) !important; font-size: 14px; }   /* 18 -> 14 som modalernes og indbakkemenuens flueben (Patrick 04-11-2026) */
.menu-sub-dropdown table.tablebank { border-collapse: separate; border-spacing: 0; }
.menu-sub-dropdown.p-0 > .m-0 { padding: 8px; }

/* Segmenteret vælger (Alle/Fokuseret, Mine/Alle opkald): hvid pille, valgt er lysegrøn. Teksten er 500 i alle tilstande:
   aktiv-markeringer er aldrig fede, kun fladen skifter (Patrick 04-11-2026, afløser 700) */
.btn-toggle-container {
  position: relative;
  display: inline-flex; align-items: center; gap: 2px;
  background: var(--hoodi-hvid); border-radius: 999px; padding: 4px;
}
/* Glideren (hoodi-theme.js): lysegrøn flade, der glider til den aktive knap. Uden scriptet farves knappen selv. */
.hoodi-toggle-thumb {
  position: absolute; top: 4px; bottom: 4px; left: 0; width: 0;
  border-radius: 999px; background: var(--hoodi-lysgroen);
  pointer-events: none; z-index: 0;
}
.hoodi-toggle-thumb-animeret { transition: transform .28s cubic-bezier(.4, 0, .2, 1), width .28s cubic-bezier(.4, 0, .2, 1), opacity .2s ease; }
.btn-toggle-container .btn-toggle { position: relative; z-index: 1; transition: color .2s ease; }
.hoodi-toggle-ready .btn-toggle.active { background: transparent !important; }
.btn-toggle-container .btn-toggle,
.btn-toggle-container .btn-toggle.btn {
  background: transparent !important; color: var(--hoodi-tekst2) !important;
  border: 0 !important; border-radius: 999px !important; box-shadow: none !important;
  font-size: 15px !important; font-weight: 500 !important;
  min-height: 40px; padding: 0 20px !important;   /* samme mål som fanepillerne (.menu-container): Patrick 02-11-2026, "ens opbygning"; mockup Opslagstavle viser et mindre greb (ca. 28 px pille, 13 px skrift) ved titlen */
}
.btn-toggle-container .btn-toggle:hover { color: var(--hoodi-petrol) !important; }
.btn-toggle-container .btn-toggle.active {
  background: var(--hoodi-lysgroen) !important; color: var(--hoodi-petrol) !important;
}

/* Afstemning på opslagstavlen (feed/poll.php, dev-grenen): afrundede rækker, lysegrøn fyld, antal til højre */
.hoodi-poll-row {
  position: relative; overflow: hidden;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-height: 44px; padding: 0 16px; margin-bottom: 8px;
  border-radius: var(--hoodi-r-menu);
  background: var(--hoodi-graa);
  font-size: 15px; font-weight: 500; color: var(--hoodi-petrol);
  cursor: pointer; user-select: none;
}
.hoodi-poll-row:hover { background: #E6E6E6; }
.hoodi-poll-row > * { position: relative; z-index: 1; }
.hoodi-poll-fill.progress-bar {
  position: absolute; left: 0; top: 0; bottom: 0; z-index: 0;
  background: var(--hoodi-lysgroen); border-radius: 0; transition: width .8s ease;
}
.hoodi-poll-selected .hoodi-poll-label { font-weight: 700; }
.hoodi-poll-label { display: inline-flex; align-items: center; gap: 8px; }
.hoodi-poll-label .fi { font-size: 16px; line-height: 1; display: inline-flex; }
.hoodi-poll-right { display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0; }
/* Antallet står i samme 28 px boks som krydset herunder, så tal og kryds er centreret på samme lodrette linje (Patrick 04-11-2026) */
.hoodi-poll-count { font-weight: 700; display: inline-flex; align-items: center; justify-content: center; min-width: 28px; margin-right: -8px; }
/* Krydset er 28px i en række på 44px = 8px over og under; margin-right: -8px giver også 8px til højre i stedet for rækkens 16px */
.hoodi-poll-delete { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin-right: -8px; border-radius: 999px; color: var(--hoodi-tekst2); cursor: pointer; }
.hoodi-poll-delete:hover { background: var(--hoodi-hvid); color: var(--hoodi-petrol); }
.hoodi-poll-delete .fi { font-size: 18px; line-height: 1; display: inline-flex; }
.hoodi-poll-add { color: var(--hoodi-tekst2); background: transparent; border: 1px dashed var(--hoodi-linje); }
.hoodi-poll-add:hover { background: var(--hoodi-hvid); color: var(--hoodi-petrol); }
.hoodi-poll-summary { font-size: 13px; color: var(--hoodi-tekst2); margin: 4px 2px 0; }
/* Feltet afløser "+ Tilføj valgmulighed" på samme plads og i rækkernes form; fladen forbliver grå med fokus, ellers forsvinder feltet på det hvide kort */
.hoodi-poll-input.form-control { min-height: 44px; padding: 0 16px; margin-bottom: 8px; border-radius: var(--hoodi-r-menu); background: var(--hoodi-graa); border: 0; font-size: 15px; font-weight: 500; color: var(--hoodi-petrol); }
.hoodi-poll-input.form-control:focus { background: var(--hoodi-graa); box-shadow: none; outline: 0; }
/* Nyt opslag (feed/index.php, .hoodi-pollbuild): valgmulighederne skrives i de samme rækker, som afstemningen får i opslaget.
   Det tomme felt nederst er stiplet og gennemsigtigt som "Tilføj valgmulighed" i opslaget, indtil man står i det (04-11-2026).
   Samme luft over "Opret opslag" som under den (Patrick 04-11-2026): under er 24 px polstring + 1 px fra den ydre celle = 25 px;
   over er 22 px + tre cellers 1 px polstring = 25 px. Før faldt feltets og kassens 8 px margin sammen til 8, så der kun var 11 px. */
.hoodi-pollbuild { margin-bottom: 22px; }
.hoodi-pollbuild-row { position: relative; margin-bottom: 8px; }
.hoodi-pollbuild-row:last-child { margin-bottom: 0; }
.hoodi-pollbuild .hoodi-poll-input.form-control { margin-bottom: 0; padding-right: 44px; }   /* teksten løber ikke ind under krydset */
/* Krydset fra afstemningen (.hoodi-poll-delete): 28 px, 8 px fra rækkens højre kant og midt i de 44 px; kun på udfyldte rækker */
.hoodi-pollbuild-row .hoodi-poll-delete { position: absolute; top: 50%; right: 8px; margin: -14px 0 0; }
.hoodi-pollbuild-row:has(> .hoodi-poll-input:placeholder-shown) .hoodi-poll-delete { display: none; }
.hoodi-pollbuild .hoodi-poll-input.form-control::placeholder { color: var(--hoodi-tekst2); opacity: 1; }
.hoodi-pollbuild .hoodi-poll-input.form-control:placeholder-shown:not(:focus) { background: transparent; border: 1px dashed var(--hoodi-linje); }

/* Modaler: mål fra mockup (Personlige oplysninger, Skift forening, Profil) */
.modal-content { padding: 0; }
.modal-content .modal-header { padding: 28px 32px 0 32px !important; border: 0 !important; min-height: 0; }
.modal-content .modal-header h2, .modal-content .modal-header .h2, .modal-content .modal-title { font-size: 26px; font-weight: 900; margin: 0; line-height: 1.2; }
.modal-content .modal-header .symbol-circle .symbol-label,
.modal-content .modal-header .symbol-30px .symbol-label { width: 40px; height: 40px; border-radius: 999px; background-color: var(--hoodi-hvid); padding: 0 !important; display: flex; align-items: center; justify-content: center; }   /* mockup: 40 px (48 var for stor, Patrick 02-11-2026) */
.modal-content .modal-header .symbol-circle .symbol-label .fi { font-size: 16px !important; color: var(--hoodi-petrol); line-height: 1; margin: 0 !important; position: relative; top: 1px; }   /* kryds: mockup-blæk 15x16 ved 2x; !important, da fs-4 på ikonet ellers vinder */
.modal-content .modal-header .symbol-circle .symbol-label .fi.fi-rr-angle-small-left { font-size: 14px !important; }   /* tilbagepil: mockup-blæk 8x17 ved 2x */
/* Indstillingsmodalen (#kt_modal_showNeighbors: profil, Personlige oplysninger, Skift forening m.fl.) har hovedet som
   tabel [tilbage][titel][kryds]. Mockup "Personlige oplysninger" (2x målt): titel 376 px bred = 18/700, lodret midt for
   de 40 px knapper. Metronics pt-3 på titelcellen og 26 px titel skubbede den ned og gjorde den for stor (Patrick 02-11-2026).
   18/700 -> 20/800: en anelse større og tungere (Patrick 04-11-2026). */
.modal-content .modal-header table td { vertical-align: middle; }
.modal-content .modal-header table td.text-center { padding-top: 0 !important; padding-bottom: 0 !important; }
.modal-content .modal-header table td.text-center h2, .modal-content .modal-header table td.text-center .h2 { font-size: 20px; font-weight: 800; line-height: 40px; margin: 0; }
.modal-content .modal-body { padding: 24px 32px 32px 32px !important; }
.modal-content .modal-footer { padding: 0 32px 32px 32px !important; border: 0 !important; }
/* Det sidste element i modalens krop har ingen bundmargen, så luften under indholdet er kroppens 32 px som i siderne. Kort med
   mb-5 (17 px) og felter/knapper med mb-5 (16 px) gav 48-49 px i bunden (Vælg bookingtype, Kontodetaljer, Opsætning; målt
   ved at åbne 23 modaler på dev, Patrick 04-11-2026). */
/* Kæden af sidste synlige elementer fra kroppen og fire niveauer ned (indpakninger og formularer om indholdet): de har intet
   synligt efter sig før kroppens bund, så deres bundmargen giver kun ekstra luft dér. Scripts, skjulte felter og elementer med
   d-none eller display: none tæller ikke (Opsætning har et skjult "Slet" under knappen; vises det, får knappen sin margen igen).
   ".modal" foran: skal vinde over ".modal .card.mb-5" længere nede. */
.modal .modal-content .modal-body > :not(:has(~ :not(script, style, template, input[type="hidden"], .d-none, [style*="display: none"], [style*="display:none"]))),
.modal .modal-content .modal-body > :not(:has(~ :not(script, style, template, input[type="hidden"], .d-none, [style*="display: none"], [style*="display:none"]))) > :not(:has(~ :not(script, style, template, input[type="hidden"], .d-none, [style*="display: none"], [style*="display:none"]))),
.modal .modal-content .modal-body > :not(:has(~ :not(script, style, template, input[type="hidden"], .d-none, [style*="display: none"], [style*="display:none"]))) > :not(:has(~ :not(script, style, template, input[type="hidden"], .d-none, [style*="display: none"], [style*="display:none"]))) > :not(:has(~ :not(script, style, template, input[type="hidden"], .d-none, [style*="display: none"], [style*="display:none"]))),
.modal .modal-content .modal-body > :not(:has(~ :not(script, style, template, input[type="hidden"], .d-none, [style*="display: none"], [style*="display:none"]))) > :not(:has(~ :not(script, style, template, input[type="hidden"], .d-none, [style*="display: none"], [style*="display:none"]))) > :not(:has(~ :not(script, style, template, input[type="hidden"], .d-none, [style*="display: none"], [style*="display:none"]))) > :not(:has(~ :not(script, style, template, input[type="hidden"], .d-none, [style*="display: none"], [style*="display:none"]))) { margin-bottom: 0 !important; }
/* Valglister i modaler (Vælg bookingtype, Tilføj underskriver/modtager/gruppemedlem: 60 px cirkel, titel og forklaring):
   ikonet i samme forhold til cirklen som listernes (16 i 44 -> 22 i 60) og listernes grå cirkel; titlen tæt på forklaringen
   som i listerne (før mb-1 og 1,3 linjehøjde, ca. 12 px fra tekst til tekst; Patrick 04-11-2026). */
.modal table.tablebank .symbol.symbol-60px > .symbol-label { background: var(--hoodi-graa); padding-top: 0 !important; }
.modal table.tablebank .symbol.symbol-60px > .symbol-label > .fi { font-size: 22px !important; line-height: 1; display: inline-flex; color: var(--hoodi-petrol) !important; }
.modal table.tablebank td > .fw-bold.fs-6.mb-1:has(+ .fw-light.text-muted) { margin-bottom: 0 !important; line-height: 1.2; }
.modal .card { border-radius: var(--hoodi-r-kort); }
.modal .card + .card, .modal .card.mb-5 { margin-bottom: 17px !important; }   /* 17 px mellem kort som overalt (Patrick 04-11-2026; før 24) */
/* Lister i modaler har samme rækker som siderne (14 px over/under, 72 px) - den tidligere 16 px-regel er fjernet (Patrick 02-11-2026) */
.modal .form-label, .modal .form-floating > label { font-size: 14px; font-weight: 600; color: var(--hoodi-tekst2); }
.modal .text-muted, .modal .text-gray-600 { font-size: 15px; }
/* Knapper i modaler og fulde knapper på siderne (.d-grid, fx Gem ændringer på medlemssiden) er ens: 44 px høje som medlemssidens,
   15/700 som pilleknapperne. Modalerne havde 52-56 px og 16 px tekst (Patrick 04-11-2026). Pilleknapperne i sidehovedet, på
   opslagstavlen og i indbakken forbliver 40 px, så de flugter med de runde 40 px knapper ved siden af. */
.modal .btn.btn-dark, .modal .btn.btn-primary,
.d-grid > .btn.btn-dark, .d-grid > .btn.btn-primary { min-height: 44px; font-size: 15px; font-weight: 700; line-height: 1.4; }
@media (min-width: 992px) { .modal-dialog.mw-600px { max-width: 600px !important; } }

/* Sidetitler: span.fw-bolder.fs-1 øverst på siderne (152 sider; 28 af dem uden text-dark, fx Digital Post, derfor uden den klasse i selektoren siden 02-11-2026). Guiden: overskrift 1 i appen 40 px/800 */
span.fw-bolder.fs-1, td.fw-bolder.fs-1 {
  font-size: 32px !important; font-weight: 900 !important; letter-spacing: -0.03em; line-height: 44px;   /* 36 -> 34 -> 32: Patrick 02-11-2026, en anelse mindre (to gange) */   /* målt 36 px i mockups (guiden siger 40); mockup'ens streg svarer til Albert Sans 900, ikke 800 (Patrick 02-11-2026). Linjehøjde = de runde knappers 44 px, så titlen står ens på sider med og uden knapper i titelrækken */
}

/* HOODI-opslag og velkomstopslag på opslagstavlen (feed/index.php, feedWithHeadline).
   Mockup: HOODIs egne kort er lysegrønne med petrol tekst og ikon; velkomstkortet (ny ejer) er petrol med hvid tekst. */
.hoodi-feedcard { border-radius: var(--hoodi-r-kort); }
.hoodi-feedcard h1 { font-size: 24px !important; font-weight: 700 !important; letter-spacing: -0.02em; line-height: 1.1; }   /* mockup (2x): "Afstemninger og en mere" 558 px = 24/700 */
.hoodi-feedcard .fs-6x { font-size: 83px !important; line-height: 1; position: relative; top: 6px; }   /* mockup-blæk 166 px ved 2x = 83 px; glyffen sidder 6 px over midten af sin linjeboks (målt 02-11-2026: -12 px ved 2x) */
.hoodi-feedcard-hoodi { padding: 26px 46px 26px 40px !important; min-height: 192px; display: flex; flex-direction: column; justify-content: center; }   /* mockup: titel 40 px inde, ikon 46 px fra højre, 192 px højt; indholdet midt i højden (Patrick 02-11-2026: teksten stod for højt) */
/* Opmærkningen skubber ikonet ned (pt-2/pt-sm-4/pt-md-8) og giver titlen mb-3 under lg; begge fjernes, så tekst og ikon deler midterlinje */
.hoodi-feedcard .d-flex > .ms-5[class*="pt-"] { padding-top: 0 !important; }
.hoodi-feedcard h1 { margin-bottom: 0 !important; }
.hoodi-feedcard-hoodi { background-color: var(--hoodi-lysgroen) !important; }
.hoodi-feedcard-hoodi .text-white, .hoodi-feedcard-hoodi h1 { color: var(--hoodi-petrol) !important; }
/* Det åbnede opslag (?uuid=): hovedet sidder øverst i det hvide kort med teksten, så kun de øverste hjørner er runde, med kortets radius (Patrick 06-11-2026) */
.hoodi-feedcard.rounded-top { border-radius: var(--hoodi-r-kort) var(--hoodi-r-kort) 0 0 !important; }

/* Økonomi (og GDPR, samme opbygning): kortet med farvet hoved og hvid boks lagt henover beholder app'ens udseende, så
   formuen skiller sig ud fra menukortene (Patrick 04-11-2026; mockup'ens hvide formue-kort er fravalgt). Hovedet er
   bg-primary, på dev petrol med hvid tekst. Her ændres kun tallenes størrelse efter guiden. Den hvide boks beholder
   Metronics shadow-sm som på app, så dens kant ses mod kortet (bevidst undtagelse fra "ingen skygger", Patrick 04-11-2026).
   Økonomisidens mål og afstande (overskrift, tandhjul, cirkler, rækker) står i hoodi-theme/finance.css */
.card > .card-body > .card-rounded.bg-primary .fs-7 { font-size: 15px !important; font-weight: 400 !important; }
.card > .card-body > .card-rounded.bg-primary .fs-2x { font-size: 40px !important; font-weight: 800 !important; letter-spacing: -0.03em; line-height: 1.1; }
/* Hovedet flugter med kortets kant og den hvide boks står som et kort over det: begge får kortenes runding (de fulgte før
   Bootstraps 20 px ligesom kortene; 04-11-2026 blev kortene 24) */
.card > .card-body > .card-rounded.bg-primary, .card > .card-body > .bg-body.card-rounded { border-radius: var(--hoodi-r-kort); }

/* Tekstskala. Metronic har rod 13 px, og appen bruger fs-klasserne overalt (fs-6 = 14 px, fs-7 = 12,4 px, fs-8 = 11 px).
   Målt mod mockups i samme pixelskala er deres tekst 10-25 % større: listetitel ca. 17 px, undertekst 15 px.
   Her sættes fs-trinnene i px efter guiden (brødtekst 15 px). Rem-afstande påvirkes ikke, kun teksten. */
body { font-size: 15px !important; }
.fs-1 { font-size: 32px !important; }
.fs-2 { font-size: 26px !important; }
.fs-3 { font-size: 22px !important; }
.fs-4 { font-size: 20px !important; }
.fs-5 { font-size: 18px !important; }
.fs-6 { font-size: 16px !important; }
.fs-7 { font-size: 15px !important; }
.fs-8 { font-size: 14px !important; }
.fs-9 { font-size: 13px !important; }
.fs-10 { font-size: 12px !important; }
/* Tællere og mærker beholder deres små tal */
/* Mærker (badges): helt runde piller som i det nye design, 13 px/600 med petrol tekst på grå; status-varianter beholder
   deres farver. Tællere (badge-circle) forbliver runde cirkler med små tal. */
.badge:not(.badge-circle) {
  border-radius: 999px !important;
  padding: 5px 10px !important;
  font-size: 12px !important; font-weight: 600 !important; line-height: 1.3;   /* mockup: mærker ca. 26 px høje, 12 px tekst */
}
.badge.badge-light-dark, .badge.badge-light, .badge.badge-light-light { background-color: var(--hoodi-graa) !important; color: var(--hoodi-petrol) !important; }
.badge.badge-light-success { background-color: var(--hoodi-succes-bg) !important; color: var(--hoodi-succes) !important; }
.badge.badge-light-warning { background-color: var(--hoodi-advarsel-bg) !important; color: var(--hoodi-advarsel) !important; }
.badge.badge-light-danger  { background-color: var(--hoodi-fejl-bg) !important; color: var(--hoodi-fejl) !important; }
.badge.badge-light-info    { background-color: var(--hoodi-ai-bg) !important; color: var(--hoodi-ai) !important; }
.badge.badge-light-primary { background-color: var(--hoodi-lysgroen) !important; color: var(--hoodi-petrol) !important; }
.badge.badge-circle.fs-9, .badge.badge-circle.fs-10 { font-size: 11px !important; }
/* Mærker i lister (py-2 px-3) har samme mål som de øvrige: 13 px/600, ca. 28 px høje (mockup "Ejer", "Flyttede ind") */
.badge.py-2.px-3:not(.badge-circle) { padding: 5px 10px !important; font-size: 12px !important; }
/* Mærkerækker under infokort (div med kun badge.py-2.px-3.mt-2 som børn: foreningssiden, leverandøren, boligen, opret-siden,
   Indstillinger, GDPR-siderne m.fl.): altid 8 px mellem mærkerne, vandret og lodret, som chips-rækken i samtalens hovedkort.
   Før lå afstanden i opmærkningen (me-1 plus et mellemrum eller linjeskift mellem nogle mærker, intet mellem dem PHP echo'er),
   så den varierede fra 3 til 10 px i samme række (Patrick 05-11-2026: "der skal altid være samme afstand mellem labels").
   Beholderen bliver en flex-række med gap, og mærkernes me-1/mt-2 nulstilles; 0,5 rem polstring over rækken erstatter den fjernede mt-2.
   Rækker med andet end mærker (fx kategorioverskrifter mellem dem) og .hoodi-chips, der har egne regler, er ikke omfattet. */
div:not(.hoodi-chips):has(> .badge.py-2.px-3.mt-2):not(:has(> :not(.badge))) { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 0.5rem; }   /* padding, ikke margin: en margin ville kollapse med tabellens mb-3 ovenover (målt: 9,8 px i stedet for 16,3) */
div:not(.hoodi-chips):has(> .badge.py-2.px-3.mt-2):not(:has(> :not(.badge))) > .badge { margin: 0 !important; }
table.tablebank .fs-6 { font-size: 16px !important; }

/* Faner (menu-container på bolig-, leverandør-, forenings-, økonomi-, gruppe-, GDPR- og hjem-siderne):
   én hvid pille med den valgte fane lysegrøn, som Alle/Fokuseret (teksten er 500 også på den valgte, Patrick 04-11-2026).
   Glideren kommer fra hoodi-theme.js. */
.menu-container .custom-scrollbar { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; padding-bottom: 2px; }
.menu-container .custom-scrollbar::-webkit-scrollbar { display: none; }
.menu-container .custom-scrollbar > .d-flex {
  display: inline-flex !important; position: relative; align-items: center; gap: 2px;
  width: max-content; max-width: none;
  background: var(--hoodi-hvid); border-radius: 999px; padding: 4px;
}
.menu-container .custom-scrollbar > .d-flex .btn {
  position: relative; z-index: 1;
  background: transparent !important; border: 0 !important; border-radius: 999px !important;
  margin: 0 !important; padding: 0 20px !important; min-height: 40px;
  color: var(--hoodi-tekst2) !important; font-size: 15px !important; font-weight: 500 !important;
  transition: color .2s ease;
}
.menu-container .custom-scrollbar > .d-flex .btn:hover { color: var(--hoodi-petrol) !important; }
.menu-container .custom-scrollbar > .d-flex .btn.text-primary { color: var(--hoodi-petrol) !important; background: var(--hoodi-lysgroen) !important; }
.menu-container .custom-scrollbar > .d-flex.hoodi-toggle-ready .btn.text-primary { background: transparent !important; }
/* Dokumenter-fanens upload-knap (a.symbol) står i samme beholder: petrol cirkel sidst i pillen; den tomme afstandsspan skjules */
.menu-container .custom-scrollbar > .d-flex a.symbol { position: relative; z-index: 1; margin: 0 2px 0 4px !important; float: none !important; }
.menu-container .custom-scrollbar > .d-flex a.symbol .symbol-label { width: 36px; height: 36px; }
.menu-container .custom-scrollbar > .d-flex span.btn-transparent { display: none; }
/* Boligsidens Dokumenter-fane ligger i sin egen btn-toggle-container sammen med upload-knappen: den opløses, så knappen står på linje med de andre faner */
.menu-container .custom-scrollbar > .d-flex .btn-toggle-container { display: inline-flex !important; align-items: center; gap: 0; background: none !important; padding: 0 !important; height: auto !important; float: none !important; border-radius: 999px; position: relative; z-index: 1; }
.menu-container .custom-scrollbar > .d-flex .btn-toggle-container > .hoodi-toggle-thumb { display: none; }
/* Mockup Web_Bolig_fanen_Dokumenter_med_upload (2x): plusset sidder INDE i den lysegrønne pille (302x80) som en 30 px cirkel
   (60 px) med 5 px luft foroven og forneden, 6 px til pillens højre kant og 11 px efter teksten. Glideren (hoodi-theme.js) måler
   derfor på den indlejrede beholder, ikke kun på knappen. Dev havde plusset uden for pillen i en 42 px cirkel (02-11-2026).
   Afvigelse (Patrick 05-11-2026): den lysegrønne luft om cirklen svarer til den hvide kant om fanerne (4 px), så cirklen er
   32 px i den 40 px høje pille med 4 px til pillens højre kant. Mockup'ens 30 px gav 5 px over/under og 6 px til højre. */
.menu-container .custom-scrollbar > .d-flex .btn-toggle-container > .btn:has(+ a.symbol:not(.d-none)) { padding-right: 11px !important; }
.menu-container .custom-scrollbar > .d-flex .btn-toggle-container > a.symbol { margin: 0 4px 0 0 !important; }
.menu-container .custom-scrollbar > .d-flex .btn-toggle-container > a.symbol > .symbol-label { width: 32px !important; height: 32px !important; }
/* Det tegnede plus (14 px, se "Plusset i petrol cirkler") er sat til de 40 px cirkler ved titlen; i fanepillens cirkel fyldte
   det næsten halvdelen og virkede voldsomt (Patrick 05-11-2026, leverandørsiden). Her er det 10 px, så højt som fanetekstens
   versaler; stregen er uændret 1,5 px. */
.menu-container .custom-scrollbar > .d-flex .btn-toggle-container > a.symbol > .symbol-label.bg-dark > .fi-rr-plus-small { width: 10px; height: 10px; background-size: 10px 1.5px, 1.5px 10px; }

/* Inaktive knapper: lys grå flade med grå tekst (guide), ikke petrol med nedsat dækning. Metronics .btn.btn-primary
   sætter baggrunden direkte og vandt ellers over Bootstraps disabled-variabler. */
.btn.btn-primary:disabled, .btn.btn-primary.disabled, .btn.btn-dark:disabled, .btn.btn-dark.disabled,
.btn.btn-success:disabled, .btn.btn-success.disabled {
  background-color: var(--hoodi-inaktiv-bg) !important; border-color: var(--hoodi-inaktiv-bg) !important;
  color: var(--hoodi-inaktiv-tekst) !important; opacity: 1 !important;
}
.btn.btn-primary:disabled i, .btn.btn-dark:disabled i { color: var(--hoodi-inaktiv-tekst) !important; }

/* Opslagskort på opslagstavlen (feed/index.php): bundlinjen er en lille grå linje med ikon og tal,
   uden skillelinjer over og under (mockup: "♡ 8   3 kommentarer") */
[id^="post_"] .separator.separator-solid { display: none; }
[id^="post_"] ul.nav.py-1 { padding: 0 !important; gap: 24px; }
/* Lige meget luft over og under bundlinjen (Patrick 02-11-2026): 24 px fra billede/tekst til linjen og 24 px fra linjen til
   kortets bund. Rækken før bundlinjen og dens billeder afgiver deres egen bundluft, så afstanden kun sættes ét sted. */
[id^="post_"] td:has(> ul.nav.py-1) { padding-top: 24px !important; padding-bottom: 24px !important; }
[id^="post_"] tr:has(+ tr > td > ul.nav.py-1) > td { padding-bottom: 0 !important; }
[id^="post_"] tr:has(+ tr > td > ul.nav.py-1) > td img, [id^="post_"] tr:has(+ tr > td > ul.nav.py-1) > td .mb-5, [id^="post_"] tr:has(+ tr > td > ul.nav.py-1) > td .mb-3 { margin-bottom: 0 !important; }
/* Ren tekst uden knapflade (Patrick 02-11-2026): hjertet står helt ude ved kortets venstre tekstkant, 24 px mellem punkterne,
   8 px mellem ikon og tekst; hover skifter kun farve */
[id^="post_"] ul.nav.py-1 .nav-link.btn, [id^="post_"] ul.nav.py-1 .btn.btn-color-gray-600 {
  color: var(--hoodi-tekst2) !important; font-size: 14px !important; font-weight: 500 !important;
  padding: 0 !important; margin: 0 !important; border-radius: 0 !important; background: transparent !important;
  display: inline-flex; align-items: center; gap: 8px; min-height: 24px;
}
[id^="post_"] ul.nav.py-1 .nav-link.btn:hover { background: transparent !important; color: var(--hoodi-petrol) !important; }
[id^="post_"] ul.nav.py-1 .fi.me-1, [id^="post_"] ul.nav.py-1 .fi { margin-right: 0 !important; }
/* Ingen flade bag linket, når kommentarerne er foldet ud (Metronics .active) */
[id^="post_"] ul.nav.py-1 .nav-link.btn.active, [id^="post_"] ul.nav.py-1 .nav-link.btn:not(:hover) { background: transparent !important; }
[id^="post_"] ul.nav.py-1 .nav-link.btn.active { color: var(--hoodi-petrol) !important; }
[id^="post_"] ul.nav.py-1 .fi { font-size: 18px !important; color: var(--hoodi-tekst2) !important; }
[id^="post_"] ul.nav.py-1 .fi.text-danger { color: var(--hoodi-fejl) !important; }
[id^="post_"] ul.nav.py-1 .fs-7 { font-size: 14px !important; }
/* Rækkefølge som mockup: hjertet først, kommentarerne bagefter (markup har dem omvendt) */
[id^="post_"] ul.nav.py-1 { display: flex; }
[id^="post_"] ul.nav.py-1 > li:has([href^="#kt_social_feeds_comments_"]) { order: 2; }
[id^="post_"] ul.nav.py-1 > li:has([id^="likeIcon_"]) { order: 1; }
/* Kommentarfeltet vises først, når kommentarerne er foldet ud (klik på "N kommentarer"), som i mockup. Det står nederst inde i
   kommentarblokken (dev-gren i feed/index.php), så det glider frem i samme bevægelse som kommentarerne (Patrick 04-11-2026);
   24 px over feltet som før, da det stod i sin egen række */
[id^="post_"] [id^="kt_social_feeds_comments_"] > [id^="commentField_"] { padding-top: 24px; }
/* Kommentarfeltet som chattens indtastningsfelt (Patrick 02-11-2026): grå pille 46 px, 15 px tekst 20 px inde, petrol sendeknap
   med hvid pil op; avataren 44 px som listerne. Luften om knappen følger Energi-fanens plus i boligens fanelinje (Patrick
   05-11-2026: "god balance"): dér 30 px knap i 40 px pille = 5 px over og under, 6 px til kanten. Samme forhold i den 46 px pille
   giver 34 px knap, 6 px over og under og 7 px til kanten (før: 38 px med 4 px hele vejen rundt). Pilen 16 px (18 ved 38).
   Chatpanelet (settings.css) har samme mål. Reglerne rammer alle felter med denne opbygning (avatar + position-relative med
   autosize-textarea og knappen i position-absolute): opslag, opgaver, begivenheder og ordrer - samme markup kopieret 1:1, så
   de følges ad (før kun opslagstavlen via [id^="post_"]). */
.position-relative.w-100.ms-5 > textarea.form-control-solid[data-kt-autosize] { border-radius: 23px !important; background: var(--hoodi-graa) !important; border: 0 !important; box-shadow: none !important; min-height: 46px; padding: 11px 50px 11px 20px !important; font-size: 15px !important; line-height: 1.5; color: var(--hoodi-petrol); }
.position-relative.w-100.ms-5 > textarea.form-control-solid[data-kt-autosize]::placeholder { color: var(--hoodi-tekst2); opacity: 1; }
.position-relative.w-100.ms-5:has(> textarea.form-control-solid[data-kt-autosize]) > .position-absolute { margin-right: 7px !important; }
.position-relative.w-100.ms-5:has(> textarea.form-control-solid[data-kt-autosize]) .btn.btn-icon { width: 34px !important; height: 34px !important; background: var(--hoodi-petrol) !important; color: var(--hoodi-hvid) !important; display: inline-flex; align-items: center; justify-content: center; }
.position-relative.w-100.ms-5:has(> textarea.form-control-solid[data-kt-autosize]) .btn.btn-icon:hover { background: #1D3640 !important; color: var(--hoodi-hvid) !important; }
.position-relative.w-100.ms-5:has(> textarea.form-control-solid[data-kt-autosize]) .btn.btn-icon .fi, .position-relative.w-100.ms-5:has(> textarea.form-control-solid[data-kt-autosize]) .btn.btn-icon .ki-outline { font-size: 16px !important; color: var(--hoodi-hvid) !important; line-height: 1; display: inline-flex; }
.d-flex.align-items-center:has(> .position-relative.w-100.ms-5 > textarea.form-control-solid[data-kt-autosize]) > .symbol .symbol-label { width: 44px; height: 44px; font-size: 15px !important; font-weight: 700 !important; }
.d-flex.align-items-center:has(> .position-relative.w-100.ms-5 > textarea.form-control-solid[data-kt-autosize]) > .position-relative.ms-5 { margin-left: 11px !important; }
/* Lang tekst over flere linjer (Patrick 05-11-2026: "det ser dumt ud"): runding 23 px = halvdelen af de 46 px, så feltet er en
   pille på én linje og en afrundet firkant med samme hjørner på flere (999 px gav en oval). Sendeknappen står ved nederste
   linje, 6 px fra bunden som før, og avataren ved øverste (1 px ned, så 44 px står midt for 46 px på én linje). */
.position-relative.w-100.ms-5:has(> textarea.form-control-solid[data-kt-autosize]) > .position-absolute { top: auto !important; bottom: 6px; transform: none !important; display: flex; }
.d-flex.align-items-center:has(> .position-relative.w-100.ms-5 > textarea.form-control-solid[data-kt-autosize]) { align-items: flex-start !important; }
.d-flex.align-items-center:has(> .position-relative.w-100.ms-5 > textarea.form-control-solid[data-kt-autosize]) > .symbol { margin-top: 1px; }

/* Opslagskort, målt i mockup (2x): 24 px indre afstand i siderne, 20 px top og bund,
   hoved-avatar 40 px (gruppeflise med 12 px runding, medlemsavatar rund), navn 17/700, dato 15 grå.
   Mellem kortene 17 px som fra listernes søgefelt til kortet under (Patrick 04-11-2026; før 24) */
[id^="post_"].card, #createPost_Card.card { margin-bottom: 17px !important; }
[id^="post_"] > table.align-middle > tbody > tr:first-child > td, #createPost_Card table.align-middle > tbody > tr:first-child > td { padding-top: 24px !important; padding-bottom: 20px !important; }   /* 24 px over som i siderne (Patrick 03-11-2026: ens polstring rundt); de 20 px under hovedet er luften til brødteksten */   /* samme luft over og under avataren (Patrick 02-11-2026) */
[id^="post_"] > table.align-middle > tbody > tr:first-child + tr > td, #createPost_Card table.align-middle > tbody > tr:first-child + tr > td { padding-top: 0 !important; }
[id^="post_"] td.ps-4, #createPost_Card td.ps-4 { padding-left: 24px !important; }
[id^="post_"] td.px-5, #createPost_Card td.px-5 { padding-left: 24px !important; padding-right: 24px !important; }
[id^="post_"] td.pe-5 { padding-right: 24px !important; }
[id^="post_"] td.pb-5, #createPost_Card td.pb-5 { padding-bottom: 24px !important; }   /* 24 px i bunden som i siderne */
[id^="post_"] .symbol-40px:not(.symbol-circle) .symbol-label { width: 44px; height: 44px; border-radius: 12px; padding-top: 0 !important; display: flex; align-items: center; justify-content: center; }
[id^="post_"] .symbol-40px:not(.symbol-circle) .symbol-label .fi { font-size: 20px !important; line-height: 1; }
[id^="post_"] .text-muted.fs-8 { font-size: 14px !important; }
/* Komponer-kortet (altid vist på dev): tekstfelt 17 px, ikonrække 24 px grå, knappen 48 px */
#createPost_Card textarea, #createPost_Card .hoodi-richtext { font-size: 15px !important; line-height: 1.5; min-height: 72px; }   /* samme skrift som det færdige opslag (15/1,5), Patrick 03-11-2026; mockup'ens pladsholder 16 */
#createPost_Card .btn.btn-icon .fi, #createPost_Card [id^="poll_btn"] .fi, #createPost_Card .btn.btn-icon i { font-size: 16px !important; color: var(--hoodi-tekst2) !important; line-height: 1; }   /* mockup (2x): ikonblæk 31x32 = 16 px glyf, 42 px rytme (20 var for stor, Patrick 02-11-2026) */   /* mockup: 16 px glyf = 20 px uicons */
#createPost_Card #submit { min-height: 40px; height: 40px; padding: 0 22px !important; font-size: 15px !important; line-height: 1; display: inline-flex; align-items: center; }   /* mockup: knap 125 x 38 px (48 var for stor) */
#createPost_Card .btn.btn-icon.w-25px { width: 36px !important; height: 36px; margin-right: -4px; padding: 0 !important; display: inline-flex; align-items: center; justify-content: center; }   /* 36 + 6 = mockup'ens 42 px rytme */
#createPost_Card .btn.btn-icon.w-25px:first-child, #createPost_Card td > .btn.btn-icon.w-25px:first-of-type { margin-left: -10px; }   /* glyffens blæk flugter kortets venstre tekstkant (24 px) som hjertet i bundlinjen */
/* Opslagets hoved: samme opbygning som listernes rækker (Medlemmer): 44 px cirkel, navn 16/700, undertekst 13/400, initialer 15/700,
   tekstblokken lodret midt for avataren (Patrick 02-11-2026; mockup Opslagstavle har 40 px og 15/700, fravalgt for ensartethed) */
[id^="post_"] td > div > .fw-bold, #createPost_Card td > div > .fw-bold,
[id^="post_"] td > div > .fw-bold .fw-bold, [id^="post_"] td > div > .fw-bold a { font-size: 15px !important; font-weight: 700 !important; line-height: 1.3 !important; }   /* mockup: "Anne Jensen"/"Bestyrelsen" 178 px ved 2x = 15/700 - fed, men en anelse mindre end listerne (Patrick 02-11-2026). Navnet ligger i et indre span.fw-bold i de fleste opslag */   /* som listernes rækker: 44 px cirkel, 16/500, 13/400 (Patrick 02-11-2026) */
[id^="post_"] .text-muted.fs-8, #createPost_Card .text-muted.fs-8 { font-size: 13px !important; color: var(--hoodi-tekst2) !important; margin: 0 !important; line-height: 1.4; }
[id^="post_"] .symbol-40px .symbol-label, #createPost_Card .symbol-40px .symbol-label { font-size: 15px !important; font-weight: 700 !important; }
[id^="post_"] .symbol-40px.symbol-circle .symbol-label, #createPost_Card .symbol-40px.symbol-circle .symbol-label { width: 44px; height: 44px; }   /* samme cirkel som listerne */
[id^="post_"] td:has(> div > .fw-bold), #createPost_Card td:has(> div > .fw-bold),
[id^="post_"] td:has(> .symbol-40px), #createPost_Card td:has(> .symbol-40px) { vertical-align: middle; padding-top: 20px !important; padding-bottom: 20px !important; }   /* begge celler 80 px med indholdet midt i, så navn/dato flugter avataren */

/* Vedhæftninger i opslag (table.tablebankgray i et .card), mockup Beskeder-samtale (2x målt): grå boks 68 px høj med 14 px runding,
   hvid 44 px flise med 12 px runding og "PDF" 12/700, titel 15/700 ("Årsrapport 2026.pdf" 283 px bred), chevron 20 px (Patrick 02-11-2026: rundinger og skrift) */
[id^="post_"] .card:has(> .tablebankgray) { background: transparent !important; border-radius: var(--hoodi-r-indre) !important; overflow: hidden; }
[id^="post_"] .tablebankgray.bg-gray-200, [id^="post_"] .tablebankgray { background: var(--hoodi-graa) !important; border-radius: var(--hoodi-r-indre) !important; }
[id^="post_"] .tablebankgray > tbody > tr > td { border: 0 !important; padding-top: 12px !important; padding-bottom: 12px !important; }
[id^="post_"] .tablebankgray > tbody > tr > td:first-child { padding-left: 12px !important; }   /* samme luft til venstre som over og under flisen (Patrick 02-11-2026) */
[id^="post_"] .tablebankgray > tbody > tr > td:last-child { padding-right: 12px !important; }   /* chevronens blæk ca. 40 px fra kortets højre kant, på linje med minimenu-prikken og afstemningens tal (mockup) */
[id^="post_"] .tablebankgray .fi-rr-angle-small-right { font-size: 16px !important; }   /* mockup-blæk 8x16 ved 2x = 14 px (samme som alle rækker) */
[id^="post_"] .tablebankgray > tbody > tr + tr > td { border-top: 1px solid var(--hoodi-hvid) !important; }
/* Hvid 44 px flise med 12 px runding, filtypen som tekst */
[id^="post_"] .tablebankgray .symbol-40px .symbol-label { width: 44px; height: 44px; border-radius: 12px !important; background-color: var(--hoodi-hvid) !important; padding-top: 0 !important; display: flex; align-items: center; justify-content: center; }
[id^="post_"] .tablebankgray .symbol-40px .symbol-label .fi { color: var(--hoodi-petrol) !important; font-size: 18px !important; }
[id^="post_"] .tablebankgray .fw-semibold.fs-7 { font-size: 15px !important; font-weight: 700 !important; }
.hoodi-filetype { font-size: 12px; font-weight: 700; letter-spacing: .02em; color: var(--hoodi-petrol); line-height: 1; }

/* Begivenhed som opslag (feed/index.php, dev-grenen): dato-flise, titel, tid og deltagerknap */
.hoodi-eventpost { padding: 16px; }
.hoodi-eventbox {
  display: flex; align-items: center; gap: 16px;
  background: var(--hoodi-graa); border-radius: 16px; padding: 14px 16px;
  color: var(--hoodi-petrol); text-decoration: none;
}
.hoodi-eventbox:hover { color: var(--hoodi-petrol); background: #E6E6E6; }
.hoodi-eventdate {
  flex-shrink: 0; width: 64px; height: 64px; border-radius: 14px; background: var(--hoodi-hvid);
  display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1;
}
.hoodi-eventdate b { font-size: 24px; font-weight: 800; }
.hoodi-eventdate small { font-size: 12px; font-weight: 700; letter-spacing: .04em; margin-top: 3px; }
.hoodi-eventtext { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.hoodi-eventtitle { font-size: 17px; font-weight: 700; }
.hoodi-eventsub { font-size: 14px; color: var(--hoodi-tekst2); }
.hoodi-eventbtn {
  display: flex; align-items: center; justify-content: center;
  margin-top: 12px; min-height: 48px; border-radius: 999px;
  background: var(--hoodi-graa); color: var(--hoodi-petrol); font-size: 15px; font-weight: 700; text-decoration: none;
}
.hoodi-eventbtn:hover { color: var(--hoodi-petrol); background: #E6E6E6; }
.hoodi-eventbtn-aktiv { background: var(--hoodi-lysgroen); }
.hoodi-eventbtn-aktiv:hover { background: #CBDDCD; }
/* Link til en begivenhed i et opslags tekst og forhåndsvisningen under feltet i nyt opslag (feed/index.php, feed/feeds.js,
   02-11-2026): samme kort (hoodi-eventbox) uden deltagerknap, 16 px luft over og under mod teksten. Står der ingen tekst før
   det første kort eller efter det sidste, sætter feed/index.php -foerst/-sidst (CSS ser ikke tekst mellem elementer), så
   kortet ikke får luft mod opslagets kant. I nyt opslag står kortene under feltet, som selv har luft under sig. */
.hoodi-eventlink { margin: 16px 0; }
.hoodi-eventlink-foerst { margin-top: 0; }
.hoodi-eventlink-sidst { margin-bottom: 0; }
#createPost_Card .hoodi-eventlink { margin: 0 0 16px; }

/* Boligsiden, fanen Overblik (administration/units/details.php, dev-grenen) */
.hoodi-unitcard { overflow: hidden; border-radius: var(--hoodi-r-kort); }
.hoodi-unitmap { height: 300px; border-radius: 0 !important; }
.hoodi-unitbody { padding: 20px 24px 24px; }
.hoodi-unitnick { display: inline-block; margin-bottom: 12px; padding: 4px 12px; border-radius: 999px; background: var(--hoodi-lysgroen); color: var(--hoodi-petrol); font-size: 13px; font-weight: 600; }
.hoodi-unitlabel { font-size: 13px; color: var(--hoodi-tekst2); margin-bottom: 10px; }
.hoodi-chips { display: flex; flex-wrap: wrap; gap: 8px; }
/* Målt i mockup (2x): chip ca. 32 px høj, tekst 14 px/600, 14 px sidepolstring */
.hoodi-chip { display: inline-flex; align-items: center; min-height: 32px; padding: 0 14px; border-radius: 999px; background: var(--hoodi-graa); color: var(--hoodi-petrol); font-size: 14px; font-weight: 600; white-space: nowrap; }
/* "+ Tilføj fordelingstal" sidst i boligens chiprække: hvid med stiplet grå kant (Patrick 05-11-2026; den eneste stiplede kant
   uden for slip-felterne). Kanten ligger inden i de 32 px, og plusset er det tegnede fra uicons. */
.hoodi-chip.hoodi-chip-add { background: var(--hoodi-hvid); border: 2px dashed #DADDDB; box-sizing: border-box; cursor: pointer; text-decoration: none; }
.hoodi-chip.hoodi-chip-add:hover { color: var(--hoodi-petrol); border-color: var(--hoodi-petrol); }
.hoodi-chip.hoodi-chip-add .fi { font-size: 18px; line-height: 1; display: inline-flex; margin-right: 4px; margin-left: -4px; }
/* Rød tekstknap til farlige handlinger (mockup: "Slet boligen" under listen) */
.hoodi-dangerlink { text-align: center; margin-top: 24px; color: var(--hoodi-fejl); font-size: 15px; font-weight: 700; cursor: pointer; }
.hoodi-dangerlink:hover { text-decoration: none; opacity: .8; }   /* ingen streg ved hover (Patrick 02-11-2026) */

/* Plus-knapper: petrol cirkel med hvidt plus. Princip (Patrick 02-11-2026): enkeltstående runde knapper i overskriftslinjen er
   mørke og 40 px, samme højde som den grønne pille i vælgerne (44 var tidligere målt i enkelte mockups; Boliger-mockup'en viser 40). */
a.symbol.symbol-35px.symbol-circle > .symbol-label.bg-dark {
  width: 40px; height: 40px; padding-top: 0 !important;
  display: flex; align-items: center; justify-content: center;
}
a.symbol.symbol-35px.symbol-circle:hover > .symbol-label.bg-dark { background-color: #1D3640 !important; }
/* "..."-knapper i overskriftslinjen (Beskeder-samtale, Dokumenter, e-Boks m.fl.) er mørke som de øvrige enkeltstående runde
   knapper i toppen (Patrick 03-11-2026): petrol cirkel 40 px med hvid 16 px kebab. Kebabber inde i kort, lister og modaler
   (opslag, rækker, profilmodalen) er ikke omfattet. */
a.symbol.symbol-35px.symbol-circle[data-kt-menu-trigger]:not(.card *):not(table.tablebank *):not(.modal *) > .symbol-label:has(> .fi-rr-menu-dots),
span.symbol.symbol-35px.symbol-circle[data-kt-menu-trigger]:not(.card *):not(table.tablebank *):not(.modal *) > .symbol-label:has(> .fi-rr-menu-dots) {
  background: var(--hoodi-petrol) !important; width: 40px; height: 40px; padding: 0 !important; display: flex; align-items: center; justify-content: center;
}
a.symbol.symbol-35px.symbol-circle[data-kt-menu-trigger]:not(.card *):not(table.tablebank *):not(.modal *) > .symbol-label:has(> .fi-rr-menu-dots) > i,
span.symbol.symbol-35px.symbol-circle[data-kt-menu-trigger]:not(.card *):not(table.tablebank *):not(.modal *) > .symbol-label:has(> .fi-rr-menu-dots) > i { color: var(--hoodi-hvid) !important; font-size: 16px !important; line-height: 1; margin: 0 !important; position: relative; top: 2px; }
a.symbol.symbol-35px.symbol-circle[data-kt-menu-trigger]:not(.card *):not(table.tablebank *):not(.modal *):hover > .symbol-label:has(> .fi-rr-menu-dots) { background: #1D3640 !important; }
/* Står en rund knap sammen med en segmentvælger i titelrækken (Begivenheder, Opgaver, e-Boks m.fl.), centreres den på vælgerens
   grønne pille: 4 px ned fra beholderens overkant (beholder 48, pille og knap 40). "..."-menuen ligger på e-Boks (#eboks_inbox_menu)
   og Beskeder (#documents_menu) i en indpakning, der skjules og vises med vælgeren; den stod 4 px for højt (05-11-2026). */
td.text-end:has(> .btn-toggle-container) > a.symbol.symbol-35px.symbol-circle,
td.text-end:has(> .btn-toggle-container) > div > .symbol.symbol-35px.symbol-circle[data-kt-menu-trigger] { margin-top: 4px; }
.menu-container .custom-scrollbar > .d-flex a.symbol .symbol-label .fi { font-size: 22px !important; color: var(--hoodi-hvid) !important; }

/* Undertekst i advarselsfarve (f.eks. "Ingen ejer registreret" i boliglisten) */
.hoodi-advarsel-tekst { color: var(--hoodi-advarsel); font-weight: 600; }
/* Mapperække i Dokumenter: navnet er et skrivebeskyttet felt (omdøbning på stedet); underteksten lægger sig lige under */
.hoodi-foldercount { margin-top: -2px; }
table.tablebank input.form-control-transparent.fw-bold.fs-7 { font-size: 17px !important; font-weight: 700 !important; min-height: 0 !important; height: auto !important; line-height: 1.3; }

/* Gruppekontekst i sidemenuen (header.php, dev-grenen): tilbage-link, flise med gruppens farve, navn og antal */
#kt_aside_user { padding: 0 20px; text-align: left; }
.hoodi-groupback { display: inline-flex; align-items: center; gap: 4px; color: var(--hoodi-petrol); font-size: 15px; font-weight: 500; text-decoration: none; margin: 4px 0 20px; }
.hoodi-groupback:hover { color: var(--hoodi-petrol); opacity: .8; }
.hoodi-groupback .fi { font-size: 18px; line-height: 1; display: inline-flex; }
.hoodi-grouphead { display: flex; align-items: center; gap: 14px; margin-bottom: 8px; }
.hoodi-grouptile { flex-shrink: 0; width: 64px; height: 64px; border-radius: 16px; display: flex; align-items: center; justify-content: center;
  --bs-dark: var(--hoodi-petrol); --bs-primary: var(--hoodi-petrol);   /* sidemenuen gør ellers bg-dark hvid */
  --bs-dark-inverse: var(--hoodi-hvid); --bs-primary-inverse: var(--hoodi-hvid); }
.hoodi-grouptile .fi { color: var(--hoodi-hvid); }
.hoodi-grouptile .fi { font-size: 28px; line-height: 1; display: inline-flex; }
.hoodi-grouptile.bg-dark .fi, .hoodi-grouptile.bg-primary .fi { color: var(--hoodi-hvid) !important; }
.hoodi-groupname { font-size: 18px; font-weight: 700; color: var(--hoodi-petrol); line-height: 1.25; }
.hoodi-groupcount { font-size: 14px; color: var(--hoodi-tekst2); margin-top: 2px; }
/* Sletteknappen i medlemslisterne (gruppens indstillinger og e-Boks-afsendelsen, begge #group_members): grå cirkel med petrol
   ikon som dokumentlistens knapper; gruppens opmærkning har Metronics lysegrønne bg-light-primary (Patrick 05-11-2026) */
#group_members .symbol-30px > .symbol-label { background: var(--hoodi-graa) !important; }
#group_members .symbol-30px:hover > .symbol-label { background: #E4E6E5 !important; }
#group_members .symbol-30px > .symbol-label > .fi { color: var(--hoodi-petrol) !important; }

/* Tom dokumentmappe på boligsiden (mockup): stiplet felt med ikon, overskrift og tekst, ingen knap (Patricks ønske) */
/* Mål fra mockup (2x): 24 px fra kortets kant, 56 px cirkel, overskrift 16/700 (guide: boks-overskrift), tekst 15/400.
   Feltet kan klikkes og modtage filer (hoodi-theme.js: data-hoodi-fileinput peger på sidens file-input). */
.hoodi-emptydocs { margin: 4px; padding: 40px 24px 44px; border: 2px dashed #DADDDB; border-radius: 16px; text-align: center; cursor: pointer; transition: background .15s ease, border-color .15s ease; }
/* Feltets højde som mockup Web_Bolig_fanen_Dokumenter_med_upload (2x: 588 px = 294 px, kortet 338 px). Mockup'en fylder højden
   med en "Vælg filer"-knap; den er fravalgt (Patrick 02-11-2026, boligsiden), så indholdet centreres i samme højde i stedet. */
.hoodi-emptydocs { min-height: 294px; display: flex; flex-direction: column; align-items: center; justify-content: center; box-sizing: border-box; }
/* Ingen hover-flade på de stiplede felter (Patrick 04-11-2026): kun rammen og "slip her"-farven, når en fil trækkes over */
.hoodi-emptydocs.hoodi-dragover { background: var(--hoodi-lysgroen); border-color: var(--hoodi-petrol); }
.hoodi-emptydocs-icon { width: 56px; height: 56px; border-radius: 999px; background: var(--hoodi-graa); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.hoodi-emptydocs-icon .fi { font-size: 24px; color: var(--hoodi-petrol); line-height: 1; display: inline-flex; }
.hoodi-emptydocs-title { font-size: 16px; font-weight: 700; color: var(--hoodi-petrol); margin-bottom: 8px; }
.hoodi-emptydocs-text { font-size: 15px; color: var(--hoodi-tekst2); max-width: 680px; margin: 0 auto; line-height: 1.5; }
/* Forklaringen fylder aldrig mere end to linjer (Patrick 02-11-2026): bredere felt (680) og klip med udeladelsesprikker som sidste værn */
.hoodi-emptydocs-text, .card.py-20.text-center:has(> .d-flex > .symbol-150px) > .fs-7.text-gray-600 > .mb-10 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }

/* Plus i stedet for pilleknap (hoodi-theme.js afsnit 7): den mørke 40 px cirkel med det tegnede plus, som de øvrige plus-knapper */
.btn.btn-sm.btn-flex.btn-primary.px-7.hoodi-plusknap { width: 40px; height: 40px; min-height: 40px; padding: 0 !important; border-radius: 999px !important; background: var(--hoodi-petrol) !important; border: 0 !important; display: inline-flex; align-items: center; justify-content: center; }
.btn.btn-sm.btn-flex.btn-primary.px-7.hoodi-plusknap:hover { background: #1D3640 !important; }
.hoodi-plusknap > .symbol-label { width: 40px; height: 40px; border-radius: 999px; background: transparent !important; display: flex; align-items: center; justify-content: center; padding: 0 !important; }
/* Hovedets pilleknap ("Opret bolig", "Tilføj" m.fl.: .btn.btn-sm.btn-flex.btn-primary.px-7): samme højde som de runde
   knapper (44 px), 15/700, 22 px vandret (mockup Boliger: 119 x 46 px med 15 px tekst; btn-sm gav 35 px og 12 px tekst) */
.btn.btn-sm.btn-flex.btn-primary.px-7 { height: 40px; min-height: 40px; padding: 0 22px !important; font-size: 15px !important; font-weight: 700; line-height: 1; border-radius: 999px !important; display: inline-flex; align-items: center; }

/* Søgefelter i lister (input.form-control-lg[name="search"]): fuldt runde, 48 px, 15 px tekst (mockup Boliger: 718 x 48 px).
   hoodi-theme.js lægger feltet i .hoodi-search med søgeikon som på Dokumenter (documents.css), så alle lister ser ens ud
   uden at røre 40+ siders opmærkning. Skjules feltet med d-none, skjules hele feltet. */
input.form-control.form-control-lg[name="search"] { min-height: 48px; height: 48px; border: 0 !important; border-radius: 999px !important; box-shadow: none !important; padding: 0 20px 0 46px !important; font-size: 15px !important; color: var(--hoodi-petrol); background: var(--hoodi-hvid) !important; }
input.form-control.form-control-lg[name="search"]::placeholder { color: var(--hoodi-tekst2); opacity: 1; }
input.form-control.form-control-lg[name="search"]:focus { box-shadow: none !important; outline: 0; }   /* ingen fokusring (Patrick 02-11-2026) */
.hoodi-search:has(> input.d-none) { display: none; }
/* Takster, Beskeder, boligen, leverandøren og medlemmet skjuler feltet med inline display:none i stedet for d-none; ellers stod
   søgeikonet alene tilbage over kortet (Patrick 05-11-2026, Fordelingstal) */
.hoodi-search:has(> input[style*="display:none"]), .hoodi-search:has(> input[style*="display: none"]) { display: none; }
/* Rydning (hoodi-theme.js): kryds til højre i feltet, kun når der står noget; feltet får plads til det. Escape tømmer også feltet. */
.hoodi-search > input { padding-right: 48px !important; }
.hoodi-search-clear {
  position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  width: 36px; height: 36px; border: 0; border-radius: 999px; background: transparent; padding: 0;
  display: none; align-items: center; justify-content: center; color: var(--hoodi-tekst2); cursor: pointer;
}
.hoodi-search.hoodi-search-has-value > .hoodi-search-clear { display: inline-flex; }
.hoodi-search-clear:hover { background: var(--hoodi-graa); color: var(--hoodi-petrol); }
.hoodi-search-clear .fi { font-size: 18px; line-height: 1; display: inline-flex; }
.hoodi-search.mb-3, .hoodi-search.mb-5, .hoodi-search.mb-7, .hoodi-search.mb-10 { margin-bottom: 17px !important; }   /* mockup Boliger: 20 px fra søgefelt til liste; Patrick 02-11-2026: samme som fra plus-knappen/vælgeren til feltet (målt 34 px ved 2x = 17 på Boliger og Beskeder); gælder alle listesøgefelter uanset mb-klasse (Beskeder havde mb-7 = 24 px) */

/* Initialer i avatarer: 800 (mockup profilmodal: "AJ" med ca. 5 px streg ved 32 px; 500 var for spinkel, Patrick 02-11-2026) */
.symbol.symbol-circle > .symbol-label.fw-semibold:not(:has(> i)):not(:has(> .fi)):not(:has(> img)),
.symbol.symbol-circle > .symbol-label.fw-bold:not(:has(> i)):not(:has(> .fi)):not(:has(> img)) { font-weight: 800 !important; }

/* Række-hover må ikke male over kortets runde hjørner (notifikationer m.fl.): første og sidste række i et kort får
   kortets runding i yderhjørnerne. Kræver separate cellekanter, da radius ignoreres ved border-collapse. */
.card table.tablebank { border-collapse: separate; border-spacing: 0; }
.card table.tablebank > tbody > tr:first-child:hover > td:first-child { border-top-left-radius: var(--hoodi-r-kort); }
.card table.tablebank > tbody > tr:first-child:hover > td:last-child { border-top-right-radius: var(--hoodi-r-kort); }
.card table.tablebank > tbody > tr:last-child:hover > td:first-child { border-bottom-left-radius: var(--hoodi-r-kort); }
.card table.tablebank > tbody > tr:last-child:hover > td:last-child { border-bottom-right-radius: var(--hoodi-r-kort); }

/* Tom mappe i en DataTables-celle (boligsidens Dokumenter): cellen uden polstring og feltet 20 px inde, præcis som på Dokumenter */
table.tablebank > tbody > tr > td.dataTables_empty:has(> .hoodi-emptydocs),
#table_documents > tbody > tr > td.dataTables_empty:has(> .hoodi-emptydocs) { padding: 0 !important; }   /* mere specifik end tablebank-cellernes egne polstringer (også documents.css' #table_documents-regel) */
td.dataTables_empty > .hoodi-emptydocs { margin: 20px; }
/* Upload-feltet inde i et kort (hoodi-theme.js punkt 6b: begivenhed, ressource, e-Boks-kladde, underskriftssag) flugter med kortets
   tekst som underskriftssagens filboks, uden de 20 px ekstra (Patrick 04-11-2026) */
td.dataTables_empty > .hoodi-emptydocs.hoodi-emptydocs-upload { margin: 0; }
/* Upload-feltet er lavere end Dokumenters 294 px og kun med tekst: indholdets egen højde med 24 px luft rundt og ingen cirkel
   med mappe-ikon. Ens på underskriftssagen, e-Boks-kladden, begivenheden og ressourcen (Patrick 04-11-2026). */
.hoodi-emptydocs.hoodi-emptydocs-upload { min-height: 0; padding: 24px; }
.hoodi-emptydocs.hoodi-emptydocs-upload .hoodi-emptydocs-icon { display: none; }
/* Rækken om feltet får heller ingen hover-flade (Dokumenters #table_documents-hover i documents.css og begivenhedens i events.css
   gav en grå flade uden om rammen, Patrick 04-11-2026) */
#table_documents > tbody > tr:hover > td.dataTables_empty:has(> .hoodi-emptydocs),
table > tbody > tr:hover > td.dataTables_empty:has(> .hoodi-emptydocs) { background: transparent !important; }
/* Feltet direkte i et kort (søgningens tomme felt i Opgaver, 04-11-2026): samme 20 px inde, så kortet er 334 px som i listerne */
.card > .hoodi-emptydocs { margin: 20px; }
/* Tom-tilstande af den gamle type (card.py-20.text-center med 150 px lysegrøn cirkel, h3 og forklaring: Digital Post, e-Boks,
   Opgaver, Begivenheder, Grupper, Booking, Takster, Abonnementer, Bankkonti, Opslagstavle m.fl., 12 sider + modals.php):
   samme udtryk som søgningens tomme felt (Patrick 02-11-2026): 56 px grå cirkel med 24 px glyf, 16/700 overskrift, 15 px
   forklaring, indholdet midt i 342 px (feltets 294 + 24 px kant). Opmærkningen er urørt; kun temaet styrer udseendet. */
.card.py-20.text-center:has(> .d-flex > .symbol-150px) { padding: 24px !important; min-height: 342px; display: flex; flex-direction: column; justify-content: center; align-items: center; }
.card.py-20.text-center:has(> .d-flex > .symbol-150px) > .d-flex { margin-bottom: 16px !important; }
.card.py-20.text-center:has(> .d-flex > .symbol-150px) .symbol-150px { width: 56px; height: 56px; }
.card.py-20.text-center:has(> .d-flex > .symbol-150px) .symbol-150px > .symbol-label { width: 56px; height: 56px; border-radius: 999px; background: var(--hoodi-graa) !important; padding: 0 !important; display: inline-flex; align-items: center; justify-content: center; }
.card.py-20.text-center:has(> .d-flex > .symbol-150px) .symbol-150px .symbol-label > i { font-size: 24px !important; color: var(--hoodi-petrol) !important; line-height: 1; display: inline-flex; }
.card.py-20.text-center:has(> .d-flex > .symbol-150px) > h3 { font-size: 16px !important; font-weight: 700 !important; color: var(--hoodi-petrol); line-height: 1.3; margin-bottom: 8px !important; }
.card.py-20.text-center:has(> .d-flex > .symbol-150px) > .fs-7.text-gray-600 { font-size: 15px !important; color: var(--hoodi-tekst2) !important; line-height: 1.5; max-width: 680px; margin: 0 auto; }
.card.py-20.text-center:has(> .d-flex > .symbol-150px) > .fs-7.text-gray-600 > .mb-10 { margin-bottom: 0 !important; }
.card.py-20.text-center:has(> .d-flex > .symbol-150px) > .fs-7.text-gray-600 > .mb-10:not(:last-child) { margin-bottom: 16px !important; }


/* Sidetitlens tabel og celle uden egen luft, så titlen står ens på alle sider: nogle titeltabeller er rene <table> med
   browserens border-spacing 2 px, nogle celler har pt-1, og en inline span justeres efter cellens grundlinje. Målt
   02-11-2026 på telefon: 68-127 px -> alle 83. */
table:has(> tbody > tr > td > span.fw-bolder.fs-1), table:has(> tbody > tr > td.fw-bolder.fs-1), table:has(> tbody > tr > td > button.hoodi-inboxtitle) { border-collapse: collapse; border-spacing: 0; }
td:has(> span.fw-bolder.fs-1), td.fw-bolder.fs-1, td:has(> button.hoodi-inboxtitle) { padding-top: 0 !important; vertical-align: top; }
span.fw-bolder.fs-1 { margin-top: 0 !important; display: inline-block; vertical-align: top; }
/* Titelrækken er altid så høj som en række med segmentvælger (vælgeren 48 px + højrecellens 1 + 1 px = 50), også uden vælger,
   så søgefelt og kort under titlen og plusset til højre står samme sted på alle sider. Før var rækken 45 px uden vælger og
   50 med, og indholdet hoppede ved skift mellem f.eks. Leverandører og Begivenheder (Patrick 04-11-2026). En tabelcelles
   højde er en mindstehøjde, så en titel over to linjer vokser stadig. */
td:has(> span.fw-bolder.fs-1), td.fw-bolder.fs-1, td:has(> button.hoodi-inboxtitle) { height: 50px; }
/* Redigerbar sidetitel (Dokumenter-siden: td.fw-bolder.fs-1 > input#pageTitle): samme skrift som titlerne, Metronics form-control
   gav 28/700 (Patrick 02-11-2026) */
td.fw-bolder.fs-1 > input.form-control.fw-bolder.fs-1 { font-size: 32px !important; font-weight: 900 !important; letter-spacing: -0.03em; line-height: 44px !important; height: 44px; min-height: 0; padding: 0 !important; color: var(--hoodi-petrol) !important; box-shadow: none !important; }
button.hoodi-inboxtitle { vertical-align: top; }

/* Infokort med ikon i firkant (foreningen på Indstillinger, adressen på leverandørsiden: .symbol-50px med bg-light-dark):
   samme grå 44 px cirkel med 16 px glyf som listernes rækker (Patrick 02-11-2026: så skørt ud) */
.card .symbol.symbol-50px:not(.symbol-circle) > .symbol-label.bg-light-dark { width: 44px; height: 44px; border-radius: 999px; background: var(--hoodi-graa) !important; padding: 0 !important; display: flex; align-items: center; justify-content: center; }
.card .symbol.symbol-50px:not(.symbol-circle) > .symbol-label.bg-light-dark .fi { font-size: 16px !important; color: var(--hoodi-petrol) !important; line-height: 1; position: relative; top: 1px; }
.card .symbol.symbol-50px.me-5:not(.symbol-circle) { margin-right: 14px !important; }
/* Gruppens infokort (gruppens indstillinger: samme .symbol-50px, men med gruppens farve, bg-<farve> text-inverse-<farve>):
   beholder farven og den firkantede flise, men får gruppeflisens mål fra opslagene, 44 px med 12 px runding og 20 px glyf
   (Patrick 05-11-2026: navn og ikon skal ligne adressekortet størrelsesmæssigt) */
.card .symbol.symbol-50px.me-5:not(.symbol-circle) > .symbol-label[class*="text-inverse-"] { width: 44px; height: 44px; border-radius: 12px; padding: 0 !important; display: flex; align-items: center; justify-content: center; }
.card .symbol.symbol-50px.me-5:not(.symbol-circle) > .symbol-label[class*="text-inverse-"] .fi { font-size: 20px !important; line-height: 1; }
/* Foreningens ikon (.hoodi-associationicon: søgelisten i signup/result.php og kortet i signup/general.php) er en firkant, ikke en
   cirkel: samme grå 44 px flade og 16 px glyf som cirklerne, men med gruppeflisens 12 px runding (Patrick 05-11-2026) */
.symbol.hoodi-associationicon > .symbol-label, .card .symbol.symbol-50px.hoodi-associationicon > .symbol-label.bg-light-dark { border-radius: 12px; }
/* Infokortets tekst ved siden af cirklen (navn i span.fs-3.fw-bold, adresse i span.text-muted.d-block.fs-7): samme to linjer
   som listernes rækker med samme 44 px cirkel, 15/600 og 13/400 (Patrick 05-11-2026: 22 px fed og 15 px undertekst var for
   store til ikonet). Opmærkningen er den samme på ca. 15 sider (Indstillinger, boligen, leverandøren, opret-siden m.fl.)
   og på gruppens indstillinger med gruppens farvede flise. */
td:has(> .symbol.symbol-50px.me-5:not(.symbol-circle) > .symbol-label:is(.bg-light-dark, [class*="text-inverse-"])) + td > .d-flex > span.fs-3.fw-bold { font-size: 15px !important; font-weight: 600 !important; line-height: 1.3; color: var(--hoodi-petrol); }
td:has(> .symbol.symbol-50px.me-5:not(.symbol-circle) > .symbol-label:is(.bg-light-dark, [class*="text-inverse-"])) + td > span.text-muted.d-block.fs-7 { font-size: 13px !important; font-weight: 400 !important; line-height: 1.4; }

/* Ingen streg under links som standard; menuer, rækker, knapper og vedhæftningsnavne heller ikke ved hover (Patrick 02-11-2026).
   Tekst-links i brødtekst (afsnit, hjælpetekster, advarsler, brødkrummer, grå metatekst) får streg ved hover (Patrick 05-11-2026,
   samme regel som på hjemmesiden). */
a:hover, a:focus, .text-hover-primary:hover, [onclick]:hover { text-decoration: none !important; }
/* Ikoner får ALDRIG streg (Patrick 05-11-2026): en understregning følger med ind i ikonets glyf, så links med et ikon (uicons,
   Keen, svg, billede) får slet ingen streg her. */
:is(p a:not(.btn), .form-text a, .alert a, .breadcrumb-item a, .text-muted a, .fs-7 a):not(:has(.fi, .ki-outline, .ki-duotone, .ki-solid, .svg-icon, svg, img)):hover { text-decoration: underline !important; }

/* Kategorikort (Support m.fl.: .card-body.text-center med i.fs-3x + h4.fs-1qx): hvidt kort med grå 44 px cirkel og 16 px glyf
   som listernes rækker, titel 16/600 under (Patrick 02-11-2026: stort ikon uden cirkel så forkert ud) */
.card > .card-body.text-center > i.fs-3x:first-child { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 999px; background: var(--hoodi-graa); font-size: 16px !important; color: var(--hoodi-petrol) !important; margin-bottom: 10px; }   /* præcis som listernes cirkler (Administration): 44 px grå cirkel, 16 px glyf (Patrick 02-11-2026) */
.card > .card-body.text-center > i.fs-3x:first-child::before { position: relative; top: 1px; }
.card > .card-body.text-center > i.fs-3x:first-child + h4 { font-size: 16px !important; font-weight: 600 !important; color: var(--hoodi-petrol) !important; margin: 0; line-height: 1.3; }
.card > .card-body.text-center:has(> i.fs-3x:first-child + h4) { padding: 20px 16px !important; min-height: 128px; display: flex; flex-direction: column; align-items: center; justify-content: center; }   /* 128 px høje som de grå fliser på hjemmesiden (Patrick 02-11-2026), indholdet midt i */
.card:has(> .card-body.text-center > i.fs-3x:first-child + h4) { border-radius: var(--hoodi-r-kort); }

/* Supportsidens skiftende spørgsmål over søgefeltet (td.text-center.fw-bolder.fs-1): mindre end sidetitlen og må ombrydes,
   så lange spørgsmål ikke klippes (Patrick 02-11-2026) */
td.fw-bolder.fs-1.text-center { font-size: 24px !important; font-weight: 800 !important; line-height: 1.25 !important; letter-spacing: -0.02em; white-space: normal; overflow-wrap: anywhere; padding-bottom: 8px !important; }

/* Hjælpetekst under et felt i modaler (mockup Opret bolig) */
.hoodi-hint { font-size: 14px; color: var(--hoodi-tekst2); margin: -8px 4px 20px; }

/* Runde handlingsknapper ved sidetitlen (a.symbol-35px.symbol-circle med hvid flade): tilbage 40 px med 14 px pil
   (mockup-blæk 8x17 ved 2x; 20 px gav 12x23), "..."-menuen 44 px med 16 px glyf (mockup POI-blæk 28x32 ved 2x; 18 px gav 30x36).
   Plusset (bg-dark) er sat ovenfor. */
a.symbol.symbol-35px.symbol-circle > .symbol-label:not(.bg-dark), span.symbol.symbol-35px.symbol-circle[data-kt-menu-trigger] > .symbol-label:not(.bg-dark) { width: 40px; height: 40px; padding: 0 !important; display: flex; align-items: center; justify-content: center; }   /* også span-udløsere (samtalesidens ansvarlig-knap), 03-11-2026 */   /* 40 som alle runde knapper i overskriftslinjen (Patrick 02-11-2026; 44 før) */
a.symbol.symbol-35px.symbol-circle > .symbol-label:not(.bg-dark) .fi, span.symbol.symbol-35px.symbol-circle[data-kt-menu-trigger] > .symbol-label:not(.bg-dark) .fi { font-size: 16px !important; color: var(--hoodi-petrol) !important; line-height: 1; margin: 0 !important; position: relative; top: 2px; }   /* uicons-glyffen sidder 2 px over midten af sin boks (målt 2x: -4 i POI og person) */
/* Plusset i petrol cirkler (sidens øverste +, fanelinjens + m.fl.): mockup Beskeder (2x målt) har et tyndt plus, 14 px med
   1 px streg; uicons' plus-glyf er ved alle størrelser tykkere (24 px gav 16 px med 2 px streg, "tykt og lille", Patrick
   02-11-2026). Derfor tegnes plusset som to hvide streger (14 x 1,5 px) i stedet for skriftglyffen. */
.symbol-label.bg-dark > .fi-rr-plus-small, .symbol-label.bg-dark > .fi-rr-plus {
  font-size: 0 !important; width: 14px; height: 14px; margin: 0 !important; display: block;
  background: linear-gradient(var(--hoodi-hvid), var(--hoodi-hvid)) center / 14px 1.5px no-repeat, linear-gradient(var(--hoodi-hvid), var(--hoodi-hvid)) center / 1.5px 14px no-repeat;
}
.symbol-label.bg-dark > .fi-rr-plus-small::before, .symbol-label.bg-dark > .fi-rr-plus::before { content: none; }
#backButtonClick > .symbol-label { width: 40px; height: 40px; }
#backButtonClick > .symbol-label .fi { font-size: 16px !important; position: relative; top: 1px; }   /* 14 -> 16 sammen med rækkernes chevron (Patrick 02-11-2026: en anelse større) */   /* glyffen sad 1 px over midten */
/* Tilbageknappen ud for titlen (desktop, kolonnen col-xl-1 ved siden af titlen): mockup Web_Bolig_fanen_Overblik (2x) har cirklens
   overkant i flugt med titlens versalhøjde (192 mod 194) og 52 px fra cirkel til titelblæk; dev havde cirklen 17 px højere og
   111 px fra titlen (02-11-2026). Knappen lægges derfor til højre i sin kolonne (kun rendestenene imellem) og 8 px ned. */
@media (min-width: 1200px) {
  .app-content .row > [class*="col-xl-1"]:has(> #backButtonClick) { text-align: left; }   /* højre i kolonnen (47 px til titlen) blev prøvet 02-11-2026; Patrick: længere til venstre -> kolonnens venstre kant */
  #backButtonClick { margin-top: 2px; }   /* chevronen på H'ets tværstreg (Patrick 02-11-2026): tværstregen midt i versalhøjden; ved titel 32 px målt 2x: streg 237-245 (midte 241), chevron 232-247 ved 1 px (239,5) -> 2 px */
}

/* Avatarer med foto: Metronic sætter background-image inline; størrelse og placering skal følge med, uanset hvilke
   baggrundsregler temaet ellers sætter på cirklen */
.symbol .symbol-label[style*="background-image"] { background-size: cover !important; background-position: center !important; background-repeat: no-repeat !important; }

/* Indlæsningsskærmen (.page-loader) dækker indholdet under topbanneret. Metronic-filen havde 40 px (den gamle stribe);
   det nye topbanner er 47 px højt, og sidemenuen 300 px bred. Baggrunden følger appens grå. På telefon (mobile.css)
   er topbanneret 56 px plus sikker zone. */
@media (min-width: 992px) {
  .page-loader { top: 47px !important; left: var(--hoodi-sidebar-w) !important; width: calc(100% - var(--hoodi-sidebar-w)) !important; background-color: var(--hoodi-graa) !important; }
}

/* Minimenuer, ét udseende for alle (mockup: Beskeder-vælgeren og Spørg HOODI-menuen): hvidt kort med 20 px runding,
   8 px indre luft, let petrol-skygge; punkter 44 px med 14 px runding, 20 px ikon i fast 24 px kolonne, 12 px til
   teksten, 15/500 petrol, grå ved hover, fejlfarve på "Slet ..." Opmærkningen varierer (a.btn.btn-white i 67 menuer,
   .menu-item > .menu-link i 93, Bootstrap .dropdown-item), så alle tre mønstre rammes her. */
.menu-sub-dropdown, .dropdown-menu {
  background-color: var(--hoodi-hvid) !important; border: 0 !important;
  border-radius: var(--hoodi-r-minimenu) !important; padding: 8px !important;
  box-shadow: 0 12px 32px rgba(38, 69, 81, 0.14) !important;
}
.menu-sub-dropdown.p-0 > .m-0 { padding: 0; }
.menu-sub-dropdown .btn.btn-white.btn-block,
.menu-sub-dropdown .menu-item > .menu-link,
.dropdown-menu .dropdown-item {
  display: flex !important; align-items: center; gap: 12px;
  min-height: 44px; padding: 0 14px !important; margin: 0 !important;
  border-radius: 14px !important; background-color: transparent !important; border: 0 !important;
  color: var(--hoodi-petrol) !important; font-size: 15px !important; font-weight: 500 !important; text-align: left; white-space: nowrap;
}
.menu-sub-dropdown .btn.btn-white.btn-block:hover,
.menu-sub-dropdown .menu-item > .menu-link:hover,
.dropdown-menu .dropdown-item:hover { background-color: var(--hoodi-hover) !important; }
.menu-sub-dropdown .btn.btn-white.btn-block .fi, .menu-sub-dropdown .btn.btn-white.btn-block i,
.menu-sub-dropdown .menu-item > .menu-link .fi, .menu-sub-dropdown .menu-item > .menu-link .menu-icon,
.dropdown-menu .dropdown-item .fi {
  font-size: 16px !important; width: 20px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center;   /* mockup Beskeder-minimenu (2x): ikonblæk 30x30 = 16 px glyf (20 var for stor, Patrick 02-11-2026) */
  color: var(--hoodi-petrol) !important; margin: 0 !important; line-height: 1;
}
.menu-sub-dropdown .menu-item > .menu-link .menu-title { color: inherit; font-size: inherit; font-weight: inherit; }
/* Metronics div.menu-item.px-3 om punkterne (66 punkter i 24 filer, f.eks. begivenhedens menu) lagde 9,75 px ekstra ind ud over
   menuens 8 px, så punkterne stod længere inde end i de andre minimenuer (Patrick 04-11-2026: "forkerte margins") */
.menu-sub-dropdown .menu-item.px-3 { padding-left: 0 !important; padding-right: 0 !important; }
.menu-sub-dropdown .btn.btn-white.btn-block.text-danger, .menu-sub-dropdown .btn.btn-white.btn-block .text-danger,
.menu-sub-dropdown .menu-item > .menu-link.text-danger, .dropdown-menu .dropdown-item.text-danger, .hoodi-menu-danger,
.menu-sub-dropdown .btn.btn-white.btn-block.text-danger .fi, .menu-sub-dropdown .btn.btn-white.btn-block .text-danger .fi { color: var(--hoodi-fejl) !important; }
.menu-sub-dropdown .separator { margin: 6px 8px !important; border-color: var(--hoodi-skillelinje) !important; }
/* Trekanten ("pilen") på nogle menuer passer ikke til kortformen */
.menu-sub-dropdown::before, .menu-sub-dropdown::after, .dropdown-menu::before, .dropdown-menu::after { display: none !important; }

/* Opslagshovedet: navn og undertekst som én tæt blok, midtstillet mod avataren (mockup: 17/700 over 15 grå med 2 px luft) */
[id^="post_"] > table.align-middle > tbody > tr:first-child > td, #createPost_Card table.align-middle > tbody > tr:first-child > td { vertical-align: middle; }
[id^="post_"] td > div > .fw-bold, #createPost_Card td > div > .fw-bold { line-height: 1.2; display: inline-block; }
[id^="post_"] td > div:has(> .fw-bold), #createPost_Card td > div:has(> .fw-bold) { line-height: 1.2; }
[id^="post_"] .text-muted.fs-8, #createPost_Card .text-muted.fs-8 { line-height: 1.3; margin-top: 2px; }

/* Afsnitsoverskrifter over kort ("Medlemmer", "Boliger", "Ejere", "Kategori": td.text-dark.fw-bold.fs-3): mockup 20/800; 18/700 siden 05-11-2026 */
table.mb-3 td.text-dark.fw-bold.fs-3, .text-dark.fw-bold.fs-3 { font-size: 18px !important; font-weight: 700 !important; letter-spacing: -0.01em; }   /* mockup 800; Patrick 02-11-2026: lidt lettere; Patrick 05-11-2026: lidt mindre (20 til 18), samme i satellitterne finance.css (.hoodi-unitinvoices, månedens h2) og documents.css (.hoodi-sectionhead) */

/* Spørg HOODI: hovedets knapper (luk-kryds og menu) som 40 px grå cirkler side om side */
.wg-topbar-menu { display: flex; align-items: center; gap: 8px; }
.wg-topbar-menu > a.symbol > .symbol-label { width: 40px; height: 40px; background-color: var(--hoodi-graa) !important; padding-top: 0 !important; display: flex; align-items: center; justify-content: center; }
.wg-topbar-menu > a.symbol > .symbol-label .fi { font-size: 20px !important; color: var(--hoodi-petrol) !important; line-height: 1; }

/* Dæmpet tekst: guidens grå tekst #56656B (Del A satte den lysere #8A969B, som kun passer til pladsholdere) */
:root, [data-bs-theme="light"] { --bs-text-muted: var(--hoodi-tekst2); --bs-text-gray-500: var(--hoodi-tekst2); }
.text-muted, .text-gray-500 { color: var(--hoodi-tekst2) !important; }
.form-control::placeholder { color: #8A969B; }

/* 4. Fokus og tilgængelighed --------------------------------------------- */
/* Synlig fokus for tastatur, ikke for mus */
:focus-visible { outline: 2px solid var(--hoodi-petrol); outline-offset: 2px; }
.btn:focus-visible { outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}


