:root {
    --app-page-green: #287a4b;
    --app-page-green-dark: #185c36;
    --app-page-green-soft: #eaf5ee;
    --app-page-map-active: #d97706;
    --app-page-map-active-dark: #92400e;
    --app-page-ink: #17211b;
    --app-page-muted: #637069;
    --app-page-line: #dfe7e1;
    --app-page-surface: #ffffff;
    --app-page-canvas: #f7f9f7;
    --app-page-radius: 16px;
    --app-page-shadow: 0 18px 50px rgba(27, 65, 43, 0.08);
    --topbar-height: 64px;
}

[data-bs-theme="dark"] {
    --app-page-green: #70d69a;
    --app-page-green-dark: #a0e8bd;
    --app-page-green-soft: #263a2e;
    --app-page-map-active: #fbbf24;
    --app-page-map-active-dark: #f59e0b;
    --app-page-ink: #edf6f0;
    --app-page-muted: #a8b8ae;
    --app-page-line: #385442;
    --app-page-surface: #19271f;
    --app-page-canvas: #111a15;
    --app-page-shadow: 0 18px 50px rgba(0, 0, 0, 0.28);
}

/* Site-wide application shell */
html { background: var(--app-page-canvas); }
body {
    background: var(--app-page-canvas);
    color: var(--app-page-ink);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
}

.app-navbar.navbar {
    height: var(--topbar-height);
    padding: 0 16px;
    border-bottom: 1px solid var(--app-page-line);
    background: color-mix(in srgb, var(--app-page-surface) 94%, transparent) !important;
    box-shadow: 0 4px 20px rgba(24, 64, 40, .055);
    backdrop-filter: blur(14px);
}
.app-navbar .container-fluid { min-width: 0; flex-wrap: nowrap; gap: 8px; }
.app-navbar .navbar-brand { min-width: 0; flex: 0 1 190px; margin-right: 12px; overflow: hidden; padding: 0; color: var(--app-page-ink) !important; }
.app-navbar .logo-img { display: block; width: 100%; height: 38px; max-width: 190px; object-fit: contain; object-position: left center; }
.app-navbar .logo-img {
    filter: brightness(0) saturate(100%) invert(38%) sepia(20%) saturate(1355%) hue-rotate(97deg) brightness(94%) contrast(91%);
}
[data-bs-theme="dark"] .app-navbar .logo-img {
    filter: brightness(0) saturate(100%) invert(85%) sepia(18%) saturate(1050%) hue-rotate(85deg) brightness(94%) contrast(88%);
}
.app-navbar .nav-link,
.app-navbar .btn-link,
.app-navbar .text-white { color: var(--app-page-muted) !important; }
.app-navbar .nav-link { border-radius: 9px; font-size: .84rem; }
.app-navbar .nav-link:hover { background: var(--app-page-green-soft); color: var(--app-page-green-dark) !important; }
.app-navbar-actions { min-width: 0; flex: 0 0 auto; flex-direction: row; align-items: center; }
.app-navbar #darkModeToggle {
    display: grid;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    place-items: center;
}
.app-navbar-user-copy { min-width: 0; max-width: min(260px, 30vw); }
.app-navbar-user-name { display: block; min-width: 0; flex: 1 1 auto; max-width: 18ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-navbar-user-copy .subscription-badge-dropdown { flex: 0 0 auto; }
.app-navbar .app-sidebar-toggle {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    padding: 0;
    border-radius: 10px;
    text-decoration: none;
}
.app-navbar .app-sidebar-toggle:hover { background: var(--app-page-green-soft); }
.app-navbar .subscription-badge-dropdown { padding: 4px 8px; background: var(--app-page-green-soft) !important; color: var(--app-page-green-dark) !important; }

#sidebar.app-sidebar {
    top: var(--topbar-height);
    height: calc(100vh - var(--topbar-height));
    padding: 18px 12px 12px;
    border-right: 1px solid var(--app-page-line);
    background: var(--app-page-surface);
    box-shadow: 8px 0 28px rgba(24, 64, 40, .045);
}
#sidebar.app-sidebar > .nav { gap: 2px; }
#sidebar.app-sidebar .nav-link {
    min-height: 42px;
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
    padding: 9px 11px;
    border: 0;
    border-radius: 10px;
    color: var(--app-page-muted);
    font-size: .84rem;
    font-weight: 560;
    line-height: 1.25;
}
#sidebar.app-sidebar .nav-link:hover,
#sidebar.app-sidebar .nav-link.active {
    transform: none;
    background: var(--app-page-green-soft);
    color: var(--app-page-green-dark);
}
#sidebar.app-sidebar .nav-link.active { font-weight: 700; }
#sidebar.app-sidebar .nav-link i { margin: 0; color: currentColor; }
#sidebar.app-sidebar .sidebar-group-toggle .bi-chevron-down { margin-left: auto; }
#sidebar.app-sidebar .sidebar-subnav { margin: 2px 0 7px 13px; padding-left: 10px; border-left: 1px solid var(--app-page-line); }
#sidebar.app-sidebar .sidebar-subnav .nav-link { min-height: 35px; padding: 7px 9px; font-size: .79rem; }
#sidebar.app-sidebar .sidebar-section-label {
    padding: 18px 11px 6px;
    color: var(--app-page-muted);
    font-size: .65rem;
    font-weight: 760;
    letter-spacing: .085em;
}
#sidebar.app-sidebar .new-project-cta {
    width: auto;
    margin: 8px 2px 10px;
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 10px;
    background: var(--app-page-green);
    color: white;
    font-size: .82rem;
    font-weight: 700;
    box-shadow: 0 8px 20px color-mix(in srgb, var(--app-page-green) 18%, transparent);
}
#sidebar.app-sidebar .new-project-cta:hover { background: var(--app-page-green-dark); color: white; }
#sidebar.app-sidebar .language-select {
    width: calc(100% - 8px);
    min-width: 0 !important;
    margin: 0 4px 12px;
    border: 1px solid var(--app-page-line);
    border-radius: 9px;
    background-color: var(--app-page-canvas);
    color: var(--app-page-muted);
    font-size: .76rem;
}
#sidebar.app-sidebar .subscription-badge-sidebar { margin-left: auto !important; background: var(--app-page-green-soft) !important; color: var(--app-page-green-dark) !important; }

#content.app-content {
    min-height: calc(100vh - var(--topbar-height));
    padding: 24px;
    background: var(--app-page-canvas);
    color: var(--app-page-ink);
}
#content.app-content:has(.app-page),
#content.app-content:has(.docs-shell),
#content.app-content:has(.homepage-redesign) { padding: 0; }

.site-footer {
    margin: 52px -24px -24px;
    padding: 24px;
    border-top: 1px solid var(--app-page-line);
    background: var(--app-page-surface);
    color: var(--app-page-muted);
    font-size: .8rem;
}
.site-footer-inner { width: min(1120px, 100%); margin: 0 auto; }
.site-footer a { color: var(--app-page-muted); }
.site-footer a:hover { color: var(--app-page-green); }
#content.app-content:has(.app-page) > .site-footer,
#content.app-content:has(.docs-shell) > .site-footer,
#content.app-content:has(.homepage-redesign) > .site-footer { margin: 0; }

/* Site-wide component language */
.btn { border-radius: 9px; font-weight: 630; }
.btn-primary, .btn-success {
    border-color: var(--app-page-green);
    background: var(--app-page-green);
    color: white;
}
.btn-primary:hover, .btn-success:hover,
.btn-primary:focus, .btn-success:focus {
    border-color: var(--app-page-green-dark);
    background: var(--app-page-green-dark);
    color: white;
}
.btn-outline-primary, .btn-outline-success {
    border-color: var(--app-page-line);
    color: var(--app-page-green-dark);
}
.btn-outline-primary:hover, .btn-outline-success:hover {
    border-color: var(--app-page-green);
    background: var(--app-page-green-soft);
    color: var(--app-page-green-dark);
}
.card {
    border: 1px solid var(--app-page-line);
    border-radius: var(--app-page-radius);
    background: var(--app-page-surface);
    color: var(--app-page-ink);
    box-shadow: none;
}
.card-header {
    border-bottom: 1px solid var(--app-page-line);
    border-radius: var(--app-page-radius) var(--app-page-radius) 0 0 !important;
    background: transparent;
    color: var(--app-page-ink);
}
.card-title { color: var(--app-page-ink); }
.form-control, .form-select {
    border-color: var(--app-page-line);
    border-radius: 9px;
    background-color: var(--app-page-surface);
    color: var(--app-page-ink);
}
.form-control:focus, .form-select:focus {
    border-color: var(--app-page-green);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--app-page-green) 16%, transparent);
}
.dropdown-menu {
    padding: 7px;
    border: 1px solid var(--app-page-line);
    border-radius: 12px;
    background: var(--app-page-surface);
    box-shadow: var(--app-page-shadow);
}
.dropdown-item { padding: 8px 10px; border-radius: 8px; color: var(--app-page-ink); font-size: .83rem; }
.dropdown-item:hover, .dropdown-item:focus { background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.dropdown-divider { border-color: var(--app-page-line); }
.alert { border-width: 1px; border-radius: 12px; }
.alert-info, .alert-success { border-color: color-mix(in srgb, var(--app-page-green) 25%, var(--app-page-line)); background: var(--app-page-green-soft); color: var(--app-page-ink); }
.table { --bs-table-bg: transparent; --bs-table-color: var(--app-page-ink); --bs-table-border-color: var(--app-page-line); }
.table > thead { --bs-table-bg: var(--app-page-green-soft); }
.page-link { border-color: var(--app-page-line); background: var(--app-page-surface); color: var(--app-page-green); }
.page-link:hover { border-color: var(--app-page-green); background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.active > .page-link, .page-link.active { border-color: var(--app-page-green); background: var(--app-page-green); }
.modal-content { border: 1px solid var(--app-page-line); border-radius: var(--app-page-radius); background: var(--app-page-surface); color: var(--app-page-ink); }
.modal-header, .modal-footer { border-color: var(--app-page-line); }
.text-muted { color: var(--app-page-muted) !important; }

/* Complex editors own their canvas and control system. */
#content.app-content:has(.visualization-page),
#content.app-content:has(.planner-page),
#content.app-content:has(.planner-container),
#content.app-content:has(.digital-planting-plan) { background: initial; }
#content.app-content:has(.planner-page) { padding: 0; overflow: hidden; }

.app-page {
    min-height: calc(100vh - var(--topbar-height));
    margin: 0;
    padding: 32px 32px 80px;
    background: var(--app-page-canvas);
    color: var(--app-page-ink);
}

.app-page.container,
.app-page.container-fluid {
    width: auto;
    max-width: none;
}

.app-page-inner {
    width: min(1120px, 100%);
    margin: 0 auto;
}

.app-page-hero {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 30px;
    padding: clamp(30px, 5vw, 56px);
    border: 1px solid var(--app-page-line);
    border-radius: 22px;
    background:
        radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--app-page-green) 22%, transparent), transparent 30%),
        linear-gradient(140deg, var(--app-page-surface), var(--app-page-green-soft));
    box-shadow: var(--app-page-shadow);
}

.app-page-hero::after {
    content: '';
    position: absolute;
    right: -65px;
    bottom: -145px;
    width: 300px;
    height: 300px;
    border: 1px solid color-mix(in srgb, var(--app-page-green) 22%, transparent);
    border-radius: 50%;
    box-shadow: 0 0 0 36px color-mix(in srgb, var(--app-page-green) 5%, transparent), 0 0 0 72px color-mix(in srgb, var(--app-page-green) 4%, transparent);
    pointer-events: none;
}

.app-page-hero-copy, .app-page-hero-actions { position: relative; z-index: 1; }
.app-page-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 12px;
    color: var(--app-page-green);
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.app-page-hero h1 {
    margin: 0;
    color: var(--app-page-ink);
    font-size: clamp(2.15rem, 4vw, 3.7rem);
    font-weight: 760;
    letter-spacing: -.045em;
    line-height: 1.02;
}
.app-page-hero p {
    max-width: 680px;
    margin: 15px 0 0;
    color: var(--app-page-muted);
    font-size: 1rem;
    line-height: 1.65;
}
.app-page-hero-actions { display: flex; flex-wrap: wrap; gap: 10px; }

.app-page .btn-primary,
.app-page .btn-success,
.app-page .app-primary-action {
    border-color: var(--app-page-green);
    border-radius: 10px;
    background: var(--app-page-green);
    color: #fff;
    font-weight: 650;
}
.app-page .btn-primary:hover,
.app-page .btn-success:hover,
.app-page .app-primary-action:hover {
    border-color: var(--app-page-green-dark);
    background: var(--app-page-green-dark);
    color: #fff;
}
.app-page .btn-outline-primary,
.app-page .btn-outline-success,
.app-page .btn-outline-light,
.app-page .app-secondary-action {
    border-color: var(--app-page-line);
    border-radius: 10px;
    background: var(--app-page-surface);
    color: var(--app-page-ink);
    font-weight: 650;
}
.app-page .btn-outline-primary:hover,
.app-page .btn-outline-success:hover,
.app-page .btn-outline-light:hover,
.app-page .app-secondary-action:hover {
    border-color: var(--app-page-green);
    background: var(--app-page-green-soft);
    color: var(--app-page-green-dark);
}

.app-panel,
.app-page .card,
.app-page .content-card,
.app-page .sidebar-card,
.app-page .announcement-card,
.app-page .subscription-card,
.app-page .plan-card,
.app-page > .app-page-inner > .card,
.app-page .subscription-content > .card {
    border: 1px solid var(--app-page-line) !important;
    border-radius: var(--app-page-radius) !important;
    background: var(--app-page-surface) !important;
    box-shadow: none !important;
    color: var(--app-page-ink);
}
.app-page .content-card:hover,
.app-page .announcement-card:hover,
.app-page .plan-card:hover {
    border-color: color-mix(in srgb, var(--app-page-green) 58%, var(--app-page-line)) !important;
    box-shadow: var(--app-page-shadow) !important;
    transform: translateY(-2px);
}
.app-panel-header,
.app-page .content-card .card-header,
.app-page .sidebar-card .card-header,
.app-page .subscription-content .card-header {
    padding: 17px 20px;
    border: 0;
    border-bottom: 1px solid var(--app-page-line);
    background: transparent !important;
    color: var(--app-page-ink) !important;
}
.app-page .card-body { color: var(--app-page-ink); }
.app-page .card-header:not(.bg-danger) {
    border-bottom-color: var(--app-page-line);
    background: transparent !important;
    color: var(--app-page-ink) !important;
}
.app-page .card-title { color: var(--app-page-ink); }
.app-page a:not(.btn):not(.page-link) { color: var(--app-page-green); }
.app-page .breadcrumb {
    margin-bottom: 15px;
    font-size: .8rem;
}
.app-page .breadcrumb a { color: var(--app-page-muted) !important; text-decoration: none; }
.app-page .breadcrumb-item.active { color: var(--app-page-ink); }
.app-page .text-muted, .app-page .form-text { color: var(--app-page-muted) !important; }
.app-page .form-control, .app-page .form-select {
    min-height: 44px;
    border-color: var(--app-page-line);
    border-radius: 10px;
    background: var(--app-page-surface);
    color: var(--app-page-ink);
}
.app-page textarea.form-control { min-height: 180px; }
.app-page .form-control:focus, .app-page .form-select:focus {
    border-color: var(--app-page-green);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--app-page-green) 16%, transparent);
}
.app-page .form-label { color: var(--app-page-ink); font-size: .82rem; font-weight: 700; }
.app-page .badge { border-radius: 999px; font-weight: 650; }
.app-page .badge.bg-primary, .app-page .badge.bg-success { background: var(--app-page-green) !important; color: white !important; }

/* Dashboard */
.dashboard-page .app-page-inner { width: min(1240px, 100%); }
.dashboard-page .dashboard-hero { align-items: stretch; }
.dashboard-page .dashboard-hero-copy { align-self: center; }
.dashboard-page .dashboard-hero-actions {
    width: min(390px, 100%);
    align-items: stretch;
    justify-content: center;
    flex-direction: column;
}
.dashboard-page .dashboard-hero-actions > .btn {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.dashboard-page .dashboard-latest-plan {
    display: grid;
    grid-template-columns: 108px minmax(0, 1fr);
    gap: 12px;
    padding: 8px;
    border: 1px solid var(--app-page-line);
    border-radius: 12px;
    background: color-mix(in srgb, var(--app-page-surface) 88%, var(--app-page-green-soft));
    color: var(--app-page-ink) !important;
    text-align: left;
    text-decoration: none;
    transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.dashboard-page .dashboard-latest-plan:hover {
    border-color: var(--app-page-green);
    box-shadow: 0 10px 24px color-mix(in srgb, var(--app-page-green) 12%, transparent);
    transform: translateY(-2px);
}
.dashboard-page .dashboard-latest-plan:focus-visible,
.dashboard-page .dashboard-stat:focus-visible,
.dashboard-page .dashboard-list-item:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--app-page-green) 30%, transparent);
    outline-offset: 3px;
}
.dashboard-page .dashboard-plan-preview {
    min-height: 82px;
    overflow: hidden;
    border: 1px solid var(--app-page-line);
    border-radius: 9px;
    background-color: var(--app-page-canvas);
    background-image: radial-gradient(var(--app-page-line) 1px, transparent 1px);
    background-size: 10px 10px;
}
.dashboard-page .dashboard-plan-preview svg { display: block; width: 100%; height: 100%; }
.dashboard-page .dashboard-plan-preview polygon {
    fill: color-mix(in srgb, var(--app-page-green) 20%, transparent);
    stroke: var(--app-page-green);
    stroke-width: 2.2;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}
.dashboard-page .dashboard-plan-preview path {
    fill: none;
    stroke: var(--app-page-green);
    stroke-width: 2;
    stroke-dasharray: 5 4;
    opacity: .65;
}
.dashboard-page .dashboard-latest-plan-copy {
    display: flex;
    min-width: 0;
    justify-content: center;
    flex-direction: column;
}
.dashboard-page .dashboard-latest-plan-copy small,
.dashboard-page .dashboard-section-kicker {
    color: var(--app-page-muted);
    font-size: .68rem;
    font-weight: 750;
    letter-spacing: .07em;
    text-transform: uppercase;
}
.dashboard-page .dashboard-latest-plan-copy strong {
    overflow: hidden;
    margin-top: 2px;
    color: var(--app-page-ink);
    font-size: .9rem;
    font-weight: 730;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dashboard-page .dashboard-plan-meta {
    overflow: hidden;
    color: var(--app-page-muted);
    font-size: .7rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dashboard-page .dashboard-plan-action {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 7px;
    color: var(--app-page-green-dark);
    font-size: .72rem;
    font-weight: 720;
}
.dashboard-page .dashboard-plan-action i,
.dashboard-page .dashboard-list-item > i,
.dashboard-page .dashboard-stat-arrow { transition: transform .18s ease; }
.dashboard-page .dashboard-latest-plan:hover .dashboard-plan-action i,
.dashboard-page .dashboard-list-item:hover > i,
.dashboard-page .dashboard-stat:hover .dashboard-stat-arrow { transform: translateX(3px); }
.dashboard-page .dashboard-section { margin-bottom: 28px; }
.dashboard-page .dashboard-section-header,
.dashboard-page .dashboard-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}
.dashboard-page .dashboard-section-header { margin-bottom: 14px; }
.dashboard-page .dashboard-section-header h2,
.dashboard-page .dashboard-panel-header h2 {
    margin: 2px 0 0;
    color: var(--app-page-ink);
    font-size: 1.3rem;
    font-weight: 740;
    letter-spacing: -.02em;
}
.dashboard-page .dashboard-announcement-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.dashboard-page .dashboard-announcement {
    position: relative;
    overflow: hidden;
    border-left: 3px solid var(--app-page-green) !important;
}
.dashboard-page .dashboard-announcement.priority-high { border-left-color: var(--bs-warning) !important; }
.dashboard-page .dashboard-announcement.priority-urgent { border-left-color: var(--bs-danger) !important; }
.dashboard-page .dashboard-announcement-image { width: 100%; height: 120px; object-fit: cover; }
.dashboard-page .dashboard-announcement .card-body { padding: 18px; }
.dashboard-page .dashboard-announcement-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 9px;
    color: var(--app-page-muted);
    font-size: .68rem;
    font-weight: 650;
}
.dashboard-page .dashboard-announcement-meta span {
    padding: 3px 7px;
    border-radius: 999px;
    background: var(--app-page-canvas);
}
.dashboard-page .dashboard-announcement-meta .dashboard-urgent { color: var(--bs-danger-text-emphasis); }
.dashboard-page .dashboard-announcement h3 { margin: 0; font-size: 1rem; font-weight: 730; line-height: 1.35; }
.dashboard-page .dashboard-announcement h3 a { color: var(--app-page-ink) !important; text-decoration: none; }
.dashboard-page .dashboard-announcement p { margin: 8px 0; color: var(--app-page-muted); font-size: .82rem; line-height: 1.55; }
.dashboard-page .dashboard-announcement time { color: var(--app-page-muted); font-size: .7rem; }
.dashboard-page .dashboard-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 28px;
}
.dashboard-page .dashboard-stat {
    display: flex;
    align-items: center;
    gap: 13px;
    min-width: 0;
    padding: 18px;
    color: var(--app-page-ink) !important;
    text-decoration: none;
}
.dashboard-page a.dashboard-stat { transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.dashboard-page a.dashboard-stat:hover {
    border-color: var(--app-page-green) !important;
    box-shadow: var(--app-page-shadow) !important;
    transform: translateY(-2px);
}
.dashboard-page .dashboard-stat-icon,
.dashboard-page .dashboard-list-icon {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 11px;
    background: var(--app-page-green-soft);
    color: var(--app-page-green-dark);
}
.dashboard-page .dashboard-stat-icon { width: 45px; height: 45px; font-size: 1.15rem; }
.dashboard-page .dashboard-stat > span:nth-child(2) { display: grid; min-width: 0; }
.dashboard-page .dashboard-stat strong { color: var(--app-page-ink); font-size: 1.45rem; line-height: 1; }
.dashboard-page .dashboard-stat small { margin-top: 4px; color: var(--app-page-muted); font-size: .78rem; }
.dashboard-page .dashboard-stat-arrow { margin-left: auto; color: var(--app-page-green); }
.dashboard-page .dashboard-content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(320px, .85fr);
    align-items: start;
    gap: 20px;
}
.dashboard-page .dashboard-work-panel { min-height: 100%; }
.dashboard-page .dashboard-panel-header { padding: 18px 20px; }
.dashboard-page .dashboard-panel-header .btn { flex: 0 0 auto; }
.dashboard-page .dashboard-list { padding: 0 20px; }
.dashboard-page .dashboard-list-item {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 74px;
    padding: 13px 0;
    border-bottom: 1px solid var(--app-page-line);
    color: var(--app-page-ink) !important;
    text-decoration: none;
}
.dashboard-page .dashboard-list-item:last-child { border-bottom: 0; }
.dashboard-page .dashboard-list-item:hover .dashboard-list-copy strong { color: var(--app-page-green-dark); }
.dashboard-page .dashboard-list-icon { width: 38px; height: 38px; }
.dashboard-page .dashboard-list-copy { display: grid; min-width: 0; flex: 1; gap: 3px; }
.dashboard-page .dashboard-list-copy strong {
    overflow: hidden;
    color: var(--app-page-ink);
    font-size: .9rem;
    font-weight: 710;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dashboard-page .dashboard-list-copy small { color: var(--app-page-muted); font-size: .72rem; line-height: 1.45; }
.dashboard-page .dashboard-list-item > i { color: var(--app-page-green); }
.dashboard-page .dashboard-side-column { display: grid; gap: 20px; }
.dashboard-page .dashboard-recipe-list .dashboard-list-item { min-height: 65px; }
.dashboard-page .dashboard-empty { padding: 38px 20px; text-align: center; }
.dashboard-page .dashboard-empty > i { color: var(--app-page-green); font-size: 1.8rem; }
.dashboard-page .dashboard-empty h3 { margin: 10px 0 5px; color: var(--app-page-ink); font-size: 1rem; font-weight: 730; }
.dashboard-page .dashboard-empty p { max-width: 420px; margin: 0 auto 16px; color: var(--app-page-muted); font-size: .82rem; line-height: 1.55; }
.dashboard-page .dashboard-empty-compact { padding: 28px 12px; }
.dashboard-page .dashboard-usage-body { display: grid; gap: 18px; padding: 20px; }
.dashboard-page .dashboard-usage-label {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 7px;
    color: var(--app-page-muted);
    font-size: .76rem;
}
.dashboard-page .dashboard-usage-label span:last-child { color: var(--app-page-ink); font-weight: 680; }
.dashboard-page .dashboard-usage-track {
    height: 7px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--app-page-canvas);
}
.dashboard-page .dashboard-usage-track > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--app-page-green);
}

@media (max-width: 900px) {
    .dashboard-page .dashboard-hero-actions { width: 100%; }
    .dashboard-page .dashboard-announcement-grid { grid-template-columns: 1fr; }
    .dashboard-page .dashboard-content-grid { grid-template-columns: 1fr; }
}

@media (max-width: 650px) {
    .dashboard-page .dashboard-section-header,
    .dashboard-page .dashboard-panel-header { align-items: flex-start; flex-direction: column; }
    .dashboard-page .dashboard-section-header .btn,
    .dashboard-page .dashboard-panel-header .btn { width: 100%; }
    .dashboard-page .dashboard-stats { grid-template-columns: 1fr; }
    .dashboard-page .dashboard-latest-plan { grid-template-columns: 90px minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
    .dashboard-page .dashboard-latest-plan,
    .dashboard-page a.dashboard-stat,
    .dashboard-page .dashboard-plan-action i,
    .dashboard-page .dashboard-list-item > i,
    .dashboard-page .dashboard-stat-arrow { transition: none; }
    .dashboard-page .dashboard-latest-plan:hover,
    .dashboard-page a.dashboard-stat:hover { transform: none; }
}

/* Community */
.community-detail-page .category-header,
.community-profile-page .profile-header,
.community-thread-page .thread-header,
.community-form-page .thread-form-header,
.community-form-page .post-update-header,
.announcement-detail-page .announcement-header {
    position: relative;
    overflow: hidden;
    margin: 0 0 28px !important;
    padding: 30px 10px !important;
    border: 1px solid var(--app-page-line) !important;
    border-radius: 20px !important;
    background:
        radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--app-page-green) 20%, transparent), transparent 30%),
        linear-gradient(140deg, var(--app-page-surface), var(--app-page-green-soft)) !important;
    color: var(--app-page-ink) !important;
    box-shadow: var(--app-page-shadow);
}
.community-detail-page .category-header h1,
.community-profile-page .profile-header h1,
.community-thread-page .thread-header h1,
.community-form-page .thread-form-header h1,
.community-form-page .post-update-header h1,
.announcement-detail-page .announcement-header h1 {
    color: var(--app-page-ink) !important;
    font-weight: 750;
    letter-spacing: -.035em;
}
.community-detail-page .category-header p,
.community-profile-page .profile-header p,
.community-thread-page .thread-header p,
.community-form-page .thread-form-header p,
.community-form-page .post-update-header p,
.announcement-detail-page .announcement-header p { color: var(--app-page-muted) !important; }
.community-inbox-page > .container,
.community-form-page > .container,
.community-confirm-page > .container,
.announcement-confirm-page > .row,
.announcement-form-page > .row,
.announcement-category-page > .row { margin-top: 28px; }
.community-page .table { --bs-table-bg: transparent; --bs-table-color: var(--app-page-ink); --bs-table-border-color: var(--app-page-line); }
.community-page .table th { background: var(--app-page-green-soft); color: var(--app-page-ink); }
.community-page .list-group-item { border-color: var(--app-page-line); background: var(--app-page-surface); color: var(--app-page-ink); }
.community-page .list-group-item:hover { background: var(--app-page-green-soft); }
.community-page .modal-content { border: 1px solid var(--app-page-line); border-radius: var(--app-page-radius); background: var(--app-page-surface); color: var(--app-page-ink); }
.community-page .post-card,
.community-page .thread-card,
.community-page .message-card { border-color: var(--app-page-line) !important; border-radius: var(--app-page-radius) !important; background: var(--app-page-surface) !important; }
.community-page .community-grid { display: grid; gap: 13px; }
.community-page .community-category {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    padding: 21px 22px;
    border: 1px solid var(--app-page-line);
    border-radius: var(--app-page-radius);
    background: var(--app-page-surface);
    color: var(--app-page-ink);
}
.community-page .community-category:hover { border-color: var(--app-page-green); }
.community-category-icon {
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: var(--app-page-green-soft);
    color: var(--app-page-green);
    font-size: 1.15rem;
}
.community-category-main > a { color: var(--app-page-ink); font-size: 1rem; font-weight: 720; text-decoration: none; }
.community-category-main > p { margin: 4px 0 0; color: var(--app-page-muted); font-size: .84rem; }
.community-recent { margin-top: 10px; color: var(--app-page-muted); font-size: .76rem; }
.community-recent a { color: var(--app-page-green); text-decoration: none; }
.community-category-stats { display: flex; gap: 25px; text-align: center; }
.community-category-stats strong, .community-category-stats small { display: block; }
.community-category-stats strong { color: var(--app-page-ink); font-size: 1rem; }
.community-category-stats small { color: var(--app-page-muted); font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; }
.community-last-activity { min-width: 140px; padding-left: 22px; border-left: 1px solid var(--app-page-line); color: var(--app-page-muted); font-size: .75rem; }

/* Announcements */
.announcement-detail-page .content-card,
.announcement-form-page .card,
.announcement-category-page .card,
.announcement-confirm-page .card { overflow: hidden; }
.announcement-category-page .card { margin-bottom: 14px; }
.announcement-category-page .card-title a { color: var(--app-page-ink) !important; text-decoration: none; }
.announcement-category-page .card-title a:hover { color: var(--app-page-green) !important; }
.announcement-confirm-page .card-header.bg-danger { border-bottom: 0; }
.announcement-form-page .bg-light-green { background: var(--app-page-green-soft) !important; color: var(--app-page-ink) !important; }
.announcements-page .announcements-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 24px; }
.announcements-page .announcements-filters { position: sticky; top: calc(var(--topbar-height) + 20px); align-self: start; }
.announcements-page .sidebar-card { margin-bottom: 14px; overflow: hidden; }
.announcements-page .sidebar-card .card-header h5 { font-size: .8rem; font-weight: 750; text-transform: uppercase; letter-spacing: .055em; }
.announcements-page .list-group-item {
    padding: 11px 15px;
    border: 0;
    border-top: 1px solid var(--app-page-line);
    background: var(--app-page-surface);
    color: var(--app-page-muted);
    font-size: .82rem;
}
.announcements-page .list-group-item:hover, .announcements-page .list-group-item.active {
    border-left: 0;
    background: var(--app-page-green-soft) !important;
    color: var(--app-page-green-dark) !important;
}
.announcements-page .announcement-card { margin-bottom: 15px; overflow: hidden; }
.announcements-page .announcement-card .card-body { padding: 22px; }
.announcements-page .announcement-card .card-title a { color: var(--app-page-ink) !important; font-weight: 720; text-decoration: none; }
.announcements-page .announcement-card .card-title a:hover { color: var(--app-page-green) !important; }
.announcements-page .announcement-card .card-text { line-height: 1.65; }

/* Contact */
.contact-page .contact-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(260px, .75fr); gap: 20px; }
.contact-page .contact-form-panel { padding: clamp(24px, 4vw, 40px); }
.contact-page .contact-info-panel { padding: 28px; }
.contact-page .contact-info-panel h2, .contact-page .contact-form-panel h2 { margin: 0 0 8px; font-size: 1.1rem; }
.contact-page .contact-info-panel > p, .contact-page .contact-form-panel > p { margin: 0 0 26px; color: var(--app-page-muted); font-size: .85rem; }
.contact-detail { display: flex; gap: 13px; padding: 17px 0; border-top: 1px solid var(--app-page-line); }
.contact-detail i { color: var(--app-page-green); }
.contact-detail strong, .contact-detail span, .contact-detail a { display: block; }
.contact-detail strong { margin-bottom: 3px; font-size: .78rem; }
.contact-detail span, .contact-detail a { color: var(--app-page-muted); font-size: .82rem; line-height: 1.55; text-decoration: none; }
.contact-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Subscription */
.subscription-page .subscription-content { width: min(1000px, 100%); margin: 0 auto; }
.subscription-page .subscription-card { overflow: hidden; }
.subscription-page .status-badge { display: inline-block; padding: 6px 11px; border-radius: 999px; font-size: .76rem; }
.subscription-page .plan-card { overflow: hidden; }
.subscription-page .price-tag { color: var(--app-page-green); font-size: 2.2rem; font-weight: 760; letter-spacing: -.04em; }
.subscription-page .plan-card ul { text-align: left; color: var(--app-page-muted); font-size: .85rem; }
.subscription-page .plan-card li i { margin-right: 6px; color: var(--app-page-green) !important; }
.subscription-page .btn-action { border-radius: 10px; }

/* Plans and pricing */
.pricing-page .app-page-inner { width: min(1280px, 100%); }
.pricing-page .btn {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
}
.pricing-page .pricing-hero { margin-bottom: 24px; }
.pricing-trust {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 20px;
    margin-top: 20px;
    color: var(--app-page-muted);
    font-size: .78rem;
    font-weight: 650;
}
.pricing-trust span { display: inline-flex; align-items: center; gap: 7px; }
.pricing-trust i { color: var(--app-page-green); }
.pricing-section { margin-top: 48px; }
.pricing-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
}
.pricing-section-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 7px;
    color: var(--app-page-green-dark);
    font-size: .68rem;
    font-weight: 750;
    letter-spacing: .075em;
    text-transform: uppercase;
}
.pricing-section-heading h2,
.pricing-current-plan h2,
.pricing-cta h2 {
    margin: 0;
    color: var(--app-page-ink);
    font-size: clamp(1.3rem, 2.3vw, 1.65rem);
    font-weight: 740;
    letter-spacing: -.025em;
}
.pricing-section-heading p,
.pricing-current-plan p,
.pricing-cta p {
    max-width: 700px;
    margin: 7px 0 0;
    color: var(--app-page-muted);
    font-size: .84rem;
    line-height: 1.6;
}
.pricing-current-plan {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 15px;
    padding: 17px 19px;
}
.pricing-current-icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 12px;
    background: var(--app-page-green-soft);
    color: var(--app-page-green-dark);
    font-size: 1.1rem;
}
.pricing-current-plan h2 { font-size: 1.05rem; }
.pricing-current-plan p { margin-top: 3px; font-size: .75rem; }
.pricing-current-plan .pricing-section-label { margin-bottom: 2px; }
.pricing-plan-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
    gap: 14px;
}
.pricing-plan {
    position: relative;
    overflow: hidden;
    display: flex;
    min-width: 0;
    flex-direction: column;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.pricing-plan:hover {
    border-color: color-mix(in srgb, var(--app-page-green) 58%, var(--app-page-line)) !important;
    box-shadow: var(--app-page-shadow) !important;
    transform: translateY(-2px);
}
.pricing-plan-featured { border-color: var(--app-page-green) !important; }
.pricing-plan-header {
    min-height: 170px;
    padding: 21px 20px 18px;
    border-bottom: 1px solid var(--app-page-line);
    background: transparent;
}
.pricing-plan-featured .pricing-plan-header { background: var(--app-page-green-soft); }
.pricing-plan-title-row {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.pricing-plan-title-row h3 {
    margin: 0;
    color: var(--app-page-ink);
    font-size: 1.08rem;
    font-weight: 740;
}
.pricing-recommended,
.pricing-unlimited {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--app-page-green-soft);
    color: var(--app-page-green-dark);
    font-size: .61rem;
    font-weight: 740;
    white-space: nowrap;
}
.pricing-plan-featured .pricing-recommended { background: var(--app-page-surface); }
.pricing-price { display: flex; align-items: baseline; gap: 5px; margin-top: 17px; }
.pricing-price strong {
    color: var(--app-page-ink);
    font-size: clamp(2rem, 3.3vw, 2.55rem);
    font-weight: 760;
    letter-spacing: -.05em;
    line-height: 1;
}
.pricing-price span { color: var(--app-page-muted); font-size: .74rem; }
.pricing-plan-header > p {
    margin: 10px 0 0;
    color: var(--app-page-muted);
    font-size: .76rem;
    line-height: 1.5;
}
.pricing-plan-body { display: flex; flex: 1; flex-direction: column; padding: 18px 20px 20px; }
.pricing-feature-list { margin: 0; padding: 0; list-style: none; }
.pricing-feature-list li {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 8px;
    padding: 9px 0;
    border-bottom: 1px solid var(--app-page-line);
    color: var(--app-page-ink);
    font-size: .72rem;
    line-height: 1.42;
}
.pricing-feature-list li:last-child { border-bottom: 0; }
.pricing-feature-list i { margin-top: 2px; color: var(--app-page-green); }
.pricing-feature-list small {
    display: block;
    margin-top: 2px;
    color: var(--app-page-muted);
    font-size: .62rem;
}
.pricing-feature-list .pricing-feature-disabled { color: var(--app-page-muted); }
.pricing-feature-list .pricing-feature-disabled i { color: var(--app-page-muted); }
.pricing-plan-action { margin-top: auto; padding-top: 17px; }
.pricing-plan-action .btn { width: 100%; padding-inline: 11px; font-size: .75rem; }
.pricing-plan-action .btn:disabled { opacity: .68; }
.pricing-empty {
    grid-column: 1 / -1;
    padding: 50px 24px;
    text-align: center;
}
.pricing-empty > i { color: var(--app-page-green); font-size: 1.7rem; }
.pricing-empty h3 { margin: 11px 0 6px; color: var(--app-page-ink); font-size: 1rem; }
.pricing-empty p { margin: 0 auto 17px; color: var(--app-page-muted); font-size: .8rem; }
.pricing-professional { margin-top: 48px; padding: clamp(24px, 4vw, 34px); }
.pricing-professional-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 28px;
}
.pricing-professional-grid article {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 11px;
    padding: 19px 0;
    border-top: 1px solid var(--app-page-line);
}
.pricing-professional-grid article > i,
.pricing-professional-grid article > .pricing-product-icon {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 10px;
    background: var(--app-page-green-soft);
    color: var(--app-page-green-dark);
}

.pricing-product-icon {
    color: var(--app-page-green);
    fill: none;
    flex: 0 0 auto;
    height: 20px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.65;
    width: 20px;
}

.pricing-professional-grid article > .pricing-product-icon {
    box-sizing: border-box;
    height: 34px;
    padding: 5px;
    width: 34px;
}
.pricing-professional-grid h3,
.pricing-faq-grid h3 { margin: 0 0 5px; color: var(--app-page-ink); font-size: .84rem; font-weight: 720; }
.pricing-professional-grid p,
.pricing-faq-grid p { margin: 0; color: var(--app-page-muted); font-size: .72rem; line-height: 1.55; }
.pricing-comparison { overflow: hidden; margin-top: 48px; }
.pricing-comparison .pricing-section-heading { margin: 0; padding: 24px 26px 19px; }
.pricing-comparison .table-responsive { border-top: 1px solid var(--app-page-line); }
.pricing-comparison .table { min-width: 720px; margin: 0; }
.pricing-comparison .table > thead { --bs-table-bg: var(--app-page-green-soft); }
.pricing-comparison th,
.pricing-comparison td { padding: 12px 15px; border-color: var(--app-page-line); font-size: .72rem; text-align: center; }
.pricing-comparison thead th {
    color: var(--app-page-ink);
    font-size: .65rem;
    font-weight: 750;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.pricing-comparison th:first-child { min-width: 220px; text-align: left; }
.pricing-comparison tbody th { color: var(--app-page-ink); font-weight: 650; }
.pricing-comparison tbody td { color: var(--app-page-muted); }
.pricing-check { color: var(--app-page-green); font-size: 1rem; }
.pricing-not-included { color: var(--app-page-muted); font-size: 1rem; }
.pricing-comparison .pricing-table-group > * { background: var(--app-page-canvas); }
.pricing-comparison .pricing-table-group th { color: var(--app-page-green-dark); font-size: .66rem; letter-spacing: .05em; text-transform: uppercase; }
.pricing-faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.pricing-faq-grid article { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; padding: 19px; }
.pricing-faq-grid article > i { color: var(--app-page-green); font-size: 1rem; }
.pricing-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    margin-top: 48px;
    padding: clamp(25px, 4vw, 38px);
    background: var(--app-page-green-soft) !important;
}
.pricing-cta .btn { flex: 0 0 auto; }

@media (max-width: 1100px) {
    .pricing-plan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pricing-plan-header { min-height: 155px; }
}
@media (max-width: 900px) {
    .pricing-professional-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
    .pricing-section,
    .pricing-professional,
    .pricing-comparison,
    .pricing-cta { margin-top: 34px; }
    .pricing-current-plan { grid-template-columns: auto minmax(0, 1fr); }
    .pricing-current-plan .btn { grid-column: 1 / -1; width: 100%; }
    .pricing-plan-grid,
    .pricing-professional-grid,
    .pricing-faq-grid { grid-template-columns: 1fr; }
    .pricing-plan-header { min-height: 0; }
    .pricing-professional { padding: 21px 18px; }
    .pricing-professional-grid article:nth-child(2) { border-top: 1px solid var(--app-page-line); }
    .pricing-comparison .pricing-section-heading { padding: 21px 18px 17px; }
    .pricing-cta { align-items: stretch; flex-direction: column; }
    .pricing-cta .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .pricing-plan { transition: none; }
    .pricing-plan:hover { transform: none; }
}

/* Planting recipe library */
.recipe-library-page .recipe-library-hero { margin-bottom: 18px; }
.recipe-library-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 20px;
    padding: 12px 4px;
}
.recipe-library-summary { display: flex; align-items: center; gap: 9px; color: var(--app-page-muted); font-size: .82rem; }
.recipe-library-count { min-width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; background: var(--app-page-green-soft); color: var(--app-page-green-dark); font-weight: 750; }
.recipe-library-frozen { margin-left: 6px; padding-left: 14px; border-left: 1px solid var(--app-page-line); }
.recipe-view-toggle { display: flex; padding: 3px; border: 1px solid var(--app-page-line); border-radius: 10px; background: var(--app-page-surface); }
.recipe-view-toggle button { width: 34px; height: 32px; display: grid; place-items: center; border: 0; border-radius: 7px; background: transparent; color: var(--app-page-muted); }
.recipe-view-toggle button:hover, .recipe-view-toggle button.active { background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.recipe-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.recipe-library-card {
    min-width: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--app-page-line);
    border-radius: var(--app-page-radius);
    background: var(--app-page-surface);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.recipe-library-card:hover { border-color: var(--app-page-green); box-shadow: var(--app-page-shadow); transform: translateY(-3px); }
.recipe-card-main { flex: 1; display: flex; flex-direction: column; padding: 23px; color: var(--app-page-ink) !important; text-decoration: none; }
.recipe-card-icon, .recipe-list-icon { width: 43px; height: 43px; display: grid; place-items: center; margin-bottom: 22px; border-radius: 12px; background: var(--app-page-green-soft); color: var(--app-page-green); }
.recipe-card-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.recipe-card-label { display: block; margin-bottom: 5px; color: var(--app-page-green); font-size: .65rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.recipe-card-title-row h2 { margin: 0; color: var(--app-page-ink); font-size: 1.08rem; font-weight: 740; letter-spacing: -.02em; }
.recipe-card-open { color: var(--app-page-muted); font-size: .85rem; }
.recipe-card-main > p { min-height: 4.5em; margin: 14px 0 21px; color: var(--app-page-muted); font-size: .82rem; line-height: 1.55; }
.recipe-card-metrics { display: grid; grid-template-columns: 1fr 1fr; margin-top: auto; padding-top: 17px; border-top: 1px solid var(--app-page-line); }
.recipe-card-metrics > span + span { padding-left: 18px; border-left: 1px solid var(--app-page-line); }
.recipe-card-metrics strong, .recipe-card-metrics small { display: block; }
.recipe-card-metrics strong { color: var(--app-page-ink); font-size: 1.02rem; }
.recipe-card-metrics small { color: var(--app-page-muted); font-size: .68rem; }
.recipe-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 15px 12px 22px; border-top: 1px solid var(--app-page-line); background: color-mix(in srgb, var(--app-page-canvas) 65%, transparent); }
.recipe-card-footer > span { color: var(--app-page-muted); font-size: .69rem; }
.recipe-card-actions { display: flex; gap: 4px; }
.recipe-card-actions a { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 8px; color: var(--app-page-muted) !important; text-decoration: none; }
.recipe-share-action { display: inline-flex; min-width: 32px; height: 32px; align-items: center; justify-content: center; gap: 5px; padding: 0 8px; border: 0; border-radius: 8px; background: transparent; color: var(--app-page-muted); font-size: .66rem; font-weight: 720; }
.recipe-share-action svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.recipe-share-action:hover, .recipe-share-action:focus-visible { background: var(--app-page-green-soft); color: var(--app-page-green-dark); outline: none; }
.recipe-share-action.is-shared { background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.recipe-card-actions a:hover { background: var(--app-page-green-soft); color: var(--app-page-green-dark) !important; }
.recipe-card-actions a.danger:hover { background: #fbeaea; color: #a83434 !important; }
.recipe-list-view { overflow: hidden; border: 1px solid var(--app-page-line); border-radius: var(--app-page-radius); background: var(--app-page-surface); }
.recipe-list-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto auto auto; align-items: center; gap: 16px; padding: 16px 18px; border-bottom: 1px solid var(--app-page-line); }
.recipe-list-row:last-child { border-bottom: 0; }
.recipe-list-row:hover { background: color-mix(in srgb, var(--app-page-green-soft) 50%, transparent); }
.recipe-list-icon { width: 40px; height: 40px; margin: 0; }
.recipe-list-copy { color: var(--app-page-ink) !important; text-decoration: none; }
.recipe-list-copy strong, .recipe-list-copy small { display: block; }
.recipe-list-copy strong { margin-bottom: 3px; }
.recipe-list-copy small { color: var(--app-page-muted); font-size: .76rem; }
.recipe-list-metrics { display: flex; gap: 13px; color: var(--app-page-muted); font-size: .74rem; white-space: nowrap; }
.recipe-list-metrics strong { color: var(--app-page-ink); }
.recipe-list-date { color: var(--app-page-muted); font-size: .72rem; }
.recipe-empty-state { padding: 72px 24px; border: 1px dashed var(--app-page-line); border-radius: 20px; background: var(--app-page-surface); text-align: center; }
.recipe-empty-state > span { width: 58px; height: 58px; display: grid; place-items: center; margin: 0 auto 18px; border-radius: 17px; background: var(--app-page-green-soft); color: var(--app-page-green); font-size: 1.4rem; }
.recipe-empty-state h2 { margin: 0 0 9px; font-size: 1.3rem; }
.recipe-empty-state p { max-width: 520px; margin: 0 auto 22px; color: var(--app-page-muted); }
.recipe-frozen-section { margin-top: 34px; padding: 25px; border: 1px solid #e7d9ad; border-radius: var(--app-page-radius); background: color-mix(in srgb, #fff5cf 42%, var(--app-page-surface)); }
[data-bs-theme="dark"] .recipe-frozen-section { border-color: #5c5131; background: #2d2a20; }
.recipe-frozen-section > header { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.recipe-frozen-section h2 { margin: -5px 0 0; font-size: 1.18rem; }
.recipe-frozen-section > p { color: var(--app-page-muted); font-size: .82rem; }
.recipe-frozen-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.recipe-frozen-grid article { display: flex; align-items: center; gap: 10px; padding: 13px; border: 1px solid color-mix(in srgb, #b99b34 25%, var(--app-page-line)); border-radius: 10px; background: var(--app-page-surface); }
.recipe-frozen-grid article > i { color: #a78416; }
.recipe-frozen-grid strong, .recipe-frozen-grid small { display: block; }
.recipe-frozen-grid strong { font-size: .82rem; }
.recipe-frozen-grid small { color: var(--app-page-muted); font-size: .68rem; }
.recipe-upgrade-note { display: flex; align-items: center; gap: 15px; margin-top: 18px; padding: 17px 19px; border: 1px solid var(--app-page-line); border-radius: 12px; background: var(--app-page-green-soft); }
.recipe-upgrade-note > i { color: var(--app-page-green); font-size: 1.15rem; }
.recipe-upgrade-note div { flex: 1; }
.recipe-upgrade-note strong { font-size: .82rem; }
.recipe-upgrade-note p { margin: 2px 0 0; color: var(--app-page-muted); font-size: .76rem; }

/* Recipe detail and connected workspaces */
.recipe-detail-page,
.recipe-workspace-page { color: var(--app-page-ink); }
.recipe-detail-page .app-page-inner,
.recipe-workspace-page:not(.recipe-diagram-page) > * { width: min(1120px, 100%); margin-left: auto; margin-right: auto; }
.recipe-detail-page .recipe-header {
    position: relative;
    overflow: hidden;
    margin-bottom: 26px;
    padding: clamp(28px, 5vw, 50px);
    border: 1px solid var(--app-page-line);
    border-radius: 22px;
    background:
        radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--app-page-green) 22%, transparent), transparent 30%),
        linear-gradient(140deg, var(--app-page-surface), var(--app-page-green-soft));
    box-shadow: var(--app-page-shadow);
}
.recipe-detail-page .recipe-header > .container { width: 100%; max-width: none; padding: 0; }
.recipe-detail-page .recipe-header-content { display: flex; flex-direction: column; gap: 26px; }
.recipe-detail-page .recipe-info { max-width: 760px; }
.recipe-detail-page .recipe-title { color: var(--app-page-ink); font-size: clamp(2rem, 4vw, 3.3rem); font-weight: 760; letter-spacing: -.04em; }
.recipe-detail-page .recipe-title i { color: var(--app-page-green); font-size: .78em; }
.recipe-detail-page .recipe-description { margin-bottom: 0; color: var(--app-page-muted); font-size: .95rem; line-height: 1.65; }
.recipe-detail-page .recipe-description i { display: none; }
.recipe-detail-page .recipe-menu {
    overflow-x: auto;
    padding: 0.6rem;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(113, 128, 95, 0.18);
    border-radius: 18px;
    box-shadow: 0 18px 45px rgba(22, 45, 25, 0.08);
}
.recipe-detail-page .recipe-menu .nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    min-width: max-content;
}
.recipe-detail-page .recipe-menu .nav-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.7rem 1rem;
    border: 1px solid transparent;
    border-radius: 14px;
    color: var(--app-page-muted);
    font-size: 0.92rem;
    font-weight: 700;
    background: transparent;
    transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.2s ease;
    white-space: nowrap;
}
.recipe-detail-page .recipe-menu .nav-link:hover {
    background: var(--app-page-surface);
    color: var(--app-page-green-dark);
    transform: translateY(-1px);
}
.recipe-detail-page .recipe-menu .nav-link.active {
    background: var(--app-page-green-soft);
    color: var(--app-page-green-dark);
    border-color: var(--app-page-green-soft);
    box-shadow: 0 10px 24px rgba(24, 64, 40, 0.12);
}
.recipe-detail-page .recipe-menu .nav-link.upgrade-trigger {
    position: relative;
}
.recipe-detail-page .recipe-menu .bi-lock-fill {
    margin-left: 0.35rem;
    font-size: 0.75rem;
    color: var(--app-page-warning);
    opacity: 0.95;
}
.recipe-detail-page .recipe-menu .nav-link.upgrade-trigger:hover .bi-lock-fill {
    color: var(--app-page-warning);
}
.recipe-detail-content { width: min(1120px, 100%); margin: 0 auto; }
.recipe-detail-content .section-title { margin: 0; padding: 0; border: 0; color: var(--app-page-ink); font-size: 1.35rem; font-weight: 740; letter-spacing: -.025em; }
.recipe-detail-content .section-title i { color: var(--app-page-green); }
.recipe-detail-content .plant-count { margin: 6px 0 19px; color: var(--app-page-muted); font-size: .78rem; }
.recipe-detail-content > .alert-light { padding: 18px 20px; border-color: var(--app-page-line) !important; border-radius: 13px; background: var(--app-page-surface); }
.recipe-detail-content .plant-card {
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--app-page-line) !important;
    border-radius: var(--app-page-radius) !important;
    background: var(--app-page-surface);
    box-shadow: none !important;
}
.recipe-detail-content .plant-card:hover { border-color: var(--app-page-green) !important; box-shadow: var(--app-page-shadow) !important; transform: translateY(-2px); }
.recipe-detail-content .plant-card .card-layer-bar { border-radius: 0; }
.recipe-detail-content .plant-card .card-body { padding: 20px; }
.recipe-detail-content .plant-card .card-title { font-size: 1rem; }
.recipe-detail-content .plant-details { color: var(--app-page-muted); font-size: .76rem; line-height: 1.45; }
.recipe-detail-content .plant-details strong { color: var(--app-page-ink); font-size: .7rem; text-transform: uppercase; letter-spacing: .035em; }
.recipe-detail-content .plant-card .card-footer { border-top: 1px solid var(--app-page-line); background: transparent; }
.recipe-detail-content .action-buttons { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; padding: 22px 0; border-top: 1px solid var(--app-page-line); }

.recipe-workspace-page { padding-top: 28px; }
.recipe-workspace-page > nav { margin-bottom: 17px !important; }
.recipe-workspace-page > nav .breadcrumb { margin: 0; }
.recipe-workspace-page > .row.mb-4 {
    margin-bottom: 24px !important;
    padding: 27px 29px;
    border: 1px solid var(--app-page-line);
    border-radius: 18px;
    background: linear-gradient(140deg, var(--app-page-surface), var(--app-page-green-soft));
    box-shadow: var(--app-page-shadow);
}
.recipe-workspace-page > .row.mb-4 h1 { color: var(--app-page-ink); font-size: clamp(1.55rem, 3vw, 2.35rem); font-weight: 750; letter-spacing: -.035em; }
.recipe-workspace-page > .row.mb-4 h1 > i { color: var(--app-page-green) !important; }
.recipe-workspace-page .sidebar-card,
.recipe-workspace-page .plant-index-card,
.recipe-workspace-page .plant-guild-card,
.recipe-workspace-page .risk-card,
.recipe-workspace-page .table-container,
.recipe-workspace-page .calendar-container,
.recipe-workspace-page .form-container {
    overflow: hidden;
    border: 1px solid var(--app-page-line) !important;
    border-radius: var(--app-page-radius) !important;
    background: var(--app-page-surface) !important;
    box-shadow: none !important;
}
.recipe-workspace-page .sidebar-card,
.recipe-workspace-page .plant-index-card { position: sticky; top: calc(var(--topbar-height) + 20px); }
.recipe-workspace-page .sidebar-header,
.recipe-workspace-page .index-header,
.recipe-workspace-page .plant-guild-card > .card-header,
.recipe-workspace-page .risk-card > .card-header {
    padding: 16px 18px;
    border-bottom: 1px solid var(--app-page-line);
    background: var(--app-page-green-soft) !important;
    color: var(--app-page-ink) !important;
}
.recipe-workspace-page .sidebar-title,
.recipe-workspace-page .index-title { margin: 0; color: var(--app-page-ink); font-size: .82rem; font-weight: 750; }
.recipe-workspace-page .plant-nav-link,
.recipe-workspace-page .plant-index-item { border-color: var(--app-page-line) !important; color: var(--app-page-ink) !important; }
.recipe-workspace-page .plant-nav-link:hover,
.recipe-workspace-page .plant-index-item:hover,
.recipe-workspace-page .plant-index-item.active { background: var(--app-page-green-soft) !important; }
.recipe-workspace-page .plant-guild-card,
.recipe-workspace-page .risk-card { margin-bottom: 15px; }
.recipe-workspace-page .plant-guild-card h2,
.recipe-workspace-page .risk-card h2 { color: var(--app-page-ink) !important; font-size: 1.05rem; }
.recipe-workspace-page .section-title { color: var(--app-page-ink); letter-spacing: -.025em; }
.recipe-workspace-page .section-description { color: var(--app-page-muted); }
.recipe-workspace-page .table-container { margin-bottom: 24px; }
.recipe-workspace-page .table { margin-bottom: 0; }
.recipe-workspace-page .table thead th { border-color: var(--app-page-line); background: var(--app-page-green-soft) !important; color: var(--app-page-ink) !important; font-size: .72rem; text-transform: uppercase; letter-spacing: .035em; }
.recipe-workspace-page .table td { border-color: var(--app-page-line); color: var(--app-page-ink); }
.recipe-purchase-page .purchase-table input,
.recipe-purchase-page .purchase-table select { min-width: 105px; }
.recipe-purchase-page .action-buttons { display: flex; justify-content: flex-end; padding: 17px 0; }
.recipe-harvest-page .harvest-calendar { min-width: 940px; }
.recipe-harvest-page .harvest-cell { min-width: 34px; }
.recipe-form-page .form-container,
.recipe-personalize-page form { padding: clamp(22px, 4vw, 36px); }
.recipe-personalize-page { width: auto; max-width: none; }
.recipe-personalize-page > h1,
.recipe-personalize-page > h2,
.recipe-personalize-page > form { width: min(900px, 100%); margin-left: auto; margin-right: auto; }
.recipe-personalize-page > h1 { margin-top: 22px; color: var(--app-page-ink); font-size: clamp(1.7rem, 3vw, 2.5rem); font-weight: 750; letter-spacing: -.035em; }
.recipe-personalize-page > h2 { margin-bottom: 20px; color: var(--app-page-muted); font-size: 1rem; font-style: italic; }
.recipe-personalize-page > form { border: 1px solid var(--app-page-line); border-radius: var(--app-page-radius); background: var(--app-page-surface); }
.recipe-personalize-page .accordion-item { border-color: var(--app-page-line); background: var(--app-page-surface); }
.recipe-personalize-page .accordion-button { background: var(--app-page-surface); color: var(--app-page-ink); }
.recipe-personalize-page .accordion-button:not(.collapsed) { background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.recipe-delete-page { min-height: calc(100vh - var(--topbar-height)); padding-top: 60px; }
.recipe-delete-page .delete-card { width: min(600px, 100%); margin: 0 auto; border: 1px solid var(--app-page-line); box-shadow: var(--app-page-shadow); }
.recipe-delete-page .delete-card-header { background: #a83b3b; }
.recipe-diagram-page { min-height: calc(100vh - var(--topbar-height)); padding: 16px; }
.recipe-diagram-page .card,
.recipe-diagram-page .diagram-container { border-color: var(--app-page-line) !important; background: var(--app-page-surface) !important; }

/* Authentication and onboarding */
.auth-page.login-container,
.auth-page.signup-container,
.auth-page.success-container,
.auth-page.logout-container {
    min-height: calc(100vh - var(--topbar-height));
    display: flex;
    align-items: center;
    padding: clamp(24px, 5vw, 64px) 20px;
    background:
        radial-gradient(circle at 14% 18%, color-mix(in srgb, var(--app-page-green) 10%, transparent), transparent 25%),
        radial-gradient(circle at 88% 80%, color-mix(in srgb, var(--app-page-green) 8%, transparent), transparent 28%),
        var(--app-page-canvas);
}
.auth-page.signup-container { align-items: flex-start; }
.auth-page > .container { width: 100%; max-width: 1160px; padding: 0; }
.login-page .login-card,
.signup-page .signup-card,
.signup-success-page .success-card,
.logout-page .logout-card {
    overflow: hidden;
    width: 100%;
    border: 1px solid var(--app-page-line);
    border-radius: 22px;
    background: var(--app-page-surface);
    box-shadow: var(--app-page-shadow);
}
.login-page .login-card { max-width: 480px; margin: 0 auto; }
.signup-page .signup-card { max-width: 900px; margin: 0 auto; }
.signup-success-page .success-card { max-width: 620px; margin: 0 auto; }
.logout-page .logout-card { max-width: 560px; margin: 0 auto; }
.auth-page .login-header,
.auth-page .signup-header,
.auth-page .success-header,
.auth-page .logout-header {
    position: relative;
    overflow: hidden;
    padding: 34px clamp(24px, 5vw, 48px) 29px;
    border-bottom: 1px solid var(--app-page-line);
    background:
        radial-gradient(circle at 95% 0%, color-mix(in srgb, var(--app-page-green) 20%, transparent), transparent 35%),
        linear-gradient(140deg, var(--app-page-surface), var(--app-page-green-soft));
    color: var(--app-page-ink);
    text-align: left;
}
.auth-page .login-header::after,
.auth-page .signup-header::after,
.auth-page .success-header::after,
.auth-page .logout-header::after {
    content: '';
    position: absolute;
    right: -55px;
    bottom: -105px;
    width: 210px;
    height: 210px;
    border: 1px solid color-mix(in srgb, var(--app-page-green) 20%, transparent);
    border-radius: 50%;
    box-shadow: 0 0 0 28px color-mix(in srgb, var(--app-page-green) 4%, transparent);
}
.auth-kicker {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    margin-bottom: 9px;
    color: var(--app-page-green);
    font-size: .68rem;
    font-weight: 760;
    letter-spacing: .075em;
    text-transform: uppercase;
}
.auth-page .login-header h2,
.auth-page .signup-header h2,
.auth-page .success-header h2,
.auth-page .logout-header h1 {
    position: relative;
    z-index: 1;
    color: var(--app-page-ink);
    font-size: clamp(1.65rem, 3vw, 2.25rem);
    font-weight: 760;
    letter-spacing: -.035em;
}
.auth-page .login-header h2 i,
.auth-page .signup-header h2 i,
.auth-page .success-header h2 i { display: none; }
.auth-page .logout-header h1 { margin: 0; }
.auth-page .login-header p,
.auth-page .signup-header p,
.auth-page .success-header p,
.auth-page .logout-header p { position: relative; z-index: 1; margin: 8px 0 0; color: var(--app-page-muted); font-size: .88rem; opacity: 1 !important; }
.auth-page .login-body,
.auth-page .signup-body,
.auth-page .success-body,
.auth-page .logout-body { padding: clamp(26px, 5vw, 46px); background: var(--app-page-surface); color: var(--app-page-ink); }
.auth-page .form-floating { margin-bottom: 13px; }
.auth-page .form-control,
.auth-page .form-select {
    min-height: 48px;
    padding-left: 14px;
    border: 1px solid var(--app-page-line);
    border-radius: 10px;
    background-color: var(--app-page-surface);
    color: var(--app-page-ink);
}
.auth-page .form-floating > .form-control { min-height: 56px; }
.auth-page .form-floating > label { color: var(--app-page-muted); }
.auth-page .form-control:focus,
.auth-page .form-select:focus {
    border-color: var(--app-page-green);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--app-page-green) 16%, transparent);
}
.auth-page .form-check-input:checked { border-color: var(--app-page-green); background-color: var(--app-page-green); }
.auth-page .btn-login,
.auth-page .btn-signup,
.auth-page .btn-success-custom {
    min-height: 46px;
    padding: 11px 20px;
    border: 1px solid var(--app-page-green);
    border-radius: 10px;
    background: var(--app-page-green);
    color: white;
    font-weight: 700;
    box-shadow: none;
}
.auth-page .btn-login:hover,
.auth-page .btn-signup:hover,
.auth-page .btn-success-custom:hover {
    transform: none;
    border-color: var(--app-page-green-dark);
    background: var(--app-page-green-dark);
    color: white;
    box-shadow: none;
}
.auth-page .btn-outline-success-custom {
    min-height: 46px;
    padding: 11px 20px;
    border: 1px solid var(--app-page-line);
    border-radius: 10px;
    background: var(--app-page-surface);
    color: var(--app-page-green-dark);
    font-weight: 700;
}
.auth-page .btn-outline-success-custom:hover { transform: none; border-color: var(--app-page-green); background: var(--app-page-green-soft); color: var(--app-page-green-dark); box-shadow: none; }
.auth-page .divider { display: flex; align-items: center; gap: 12px; margin: 22px 0; color: var(--app-page-muted); font-size: .72rem; }
.auth-page .divider::before,
.auth-page .divider::after { content: ''; position: static; flex: 1; height: 1px; background: var(--app-page-line); }
.auth-page .divider span { padding: 0; background: transparent; }
.auth-page .links-section { margin-top: 23px; padding-top: 20px; border-top: 1px solid var(--app-page-line); color: var(--app-page-muted); font-size: .82rem; text-align: center; }
.auth-page .links-section a { color: var(--app-page-green); font-weight: 650; text-decoration: none; }
.auth-page .links-section a:hover { color: var(--app-page-green-dark); text-decoration: underline; text-underline-offset: 3px; }
.auth-page .section-title {
    margin: 30px 0 17px;
    padding: 0 0 9px;
    border-bottom: 1px solid var(--app-page-line);
    color: var(--app-page-ink);
    font-size: .78rem;
    font-weight: 760;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.auth-page .section-title:first-of-type { margin-top: 0; }
.auth-page .section-title i { color: var(--app-page-green); }
.auth-page .zakelijk-fields {
    margin-top: 12px;
    padding: 20px;
    border: 1px dashed var(--app-page-line);
    border-radius: 12px;
    background: var(--app-page-canvas);
}
.auth-page .privacy-notice,
.auth-page .language-info,
.auth-page .welcome-steps {
    padding: 16px;
    border: 1px solid var(--app-page-line);
    border-left: 3px solid var(--app-page-green);
    border-radius: 10px;
    background: var(--app-page-green-soft);
    color: var(--app-page-muted);
}
.auth-page .privacy-notice { margin: 24px 0 18px; }
.auth-page .password-strength,
.auth-page .password-match { margin-top: 6px; color: var(--app-page-muted); font-size: .72rem; }
.auth-page .alert-custom { border-radius: 10px; }
.signup-success-page .success-body { text-align: left; }
.signup-success-page .success-icon { width: 60px; height: 60px; display: grid; place-items: center; margin: 0 auto 20px; border-radius: 18px; background: var(--app-page-green-soft); color: var(--app-page-green); font-size: 1.8rem; animation: none; }
.signup-success-page .success-message { color: var(--app-page-muted); font-size: .95rem; line-height: 1.7; text-align: center; }
.signup-success-page .welcome-steps { margin-bottom: 24px; }
.signup-success-page .welcome-steps h5 { color: var(--app-page-ink); font-size: .9rem; }
.signup-success-page .welcome-steps li { padding: 9px 0; border-bottom-color: color-mix(in srgb, var(--app-page-line) 70%, transparent); color: var(--app-page-muted); font-size: .82rem; }
.signup-success-page .welcome-steps i { color: var(--app-page-green); }
.signup-success-page .success-body > .d-flex { gap: 8px; }
.signup-success-page .success-body > .d-flex a { flex: 1; margin: 0; text-align: center; }
.logout-page .logout-body { text-align: center; }
.logout-page .logout-icon { width: 58px; height: 58px; display: grid; place-items: center; margin: 0 auto 18px; border-radius: 17px; background: var(--app-page-green-soft); color: var(--app-page-green); font-size: 1.7rem; }
.logout-page .logout-message { max-width: 430px; margin: 0 auto 24px; color: var(--app-page-muted); font-size: .93rem; line-height: 1.7; }
.logout-page .logout-actions { display: flex; justify-content: center; gap: 8px; }
.logout-page .logout-actions .btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.logout-page .logout-security-note { margin: 22px 0 0; padding-top: 18px; border-top: 1px solid var(--app-page-line); color: var(--app-page-muted); font-size: .74rem; }

/* Project library and workspace */
.project-library-page,
.project-dashboard-page { background: var(--app-page-canvas); }
.project-library-page .app-page-inner,
.project-dashboard-page .app-page-inner { max-width: 1380px; }
.project-library-page .breadcrumb,
.project-dashboard-page .breadcrumb { color: var(--app-page-muted); font-size: .72rem; }
.project-library-page .breadcrumb a,
.project-dashboard-page .breadcrumb a { color: var(--app-page-green); }
.project-library-page .project-library-hero,
.project-dashboard-page .project-dashboard-hero { margin-bottom: 25px !important; padding: clamp(24px, 4vw, 39px); border: 1px solid var(--app-page-line); border-radius: 16px; background: linear-gradient(135deg, var(--app-page-surface), var(--app-page-green-soft)); }
.project-library-page .project-library-hero h1,
.project-dashboard-page .project-dashboard-hero h1 { color: var(--app-page-ink); font-size: clamp(1.7rem, 3.5vw, 2.55rem); font-weight: 760; letter-spacing: -.04em; }
.project-library-page .project-library-hero p,
.project-dashboard-page .project-dashboard-hero p { max-width: 680px; color: var(--app-page-muted); font-size: .84rem; line-height: 1.6; }
.project-library-page .btn,
.project-dashboard-page .btn { border-radius: 9px; font-size: .73rem; font-weight: 680; }
.project-library-page .btn-success,
.project-dashboard-page .btn-success { border-color: var(--app-page-green); background: var(--app-page-green); color: white; }
.project-library-page .btn-success:hover,
.project-dashboard-page .btn-success:hover { border-color: var(--app-page-green-dark); background: var(--app-page-green-dark); color: white; }
.project-library-page .btn-outline-primary,
.project-library-page .btn-outline-success,
.project-dashboard-page .btn-outline-primary,
.project-dashboard-page .btn-outline-success { border-color: var(--app-page-line); background: var(--app-page-surface); color: var(--app-page-green-dark); }
.project-library-page .btn-outline-primary:hover,
.project-library-page .btn-outline-success:hover,
.project-dashboard-page .btn-outline-primary:hover,
.project-dashboard-page .btn-outline-success:hover { border-color: var(--app-page-green); background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.project-library-page .view-toggle { padding: 3px; border: 1px solid var(--app-page-line); border-radius: 10px; background: var(--app-page-surface); box-shadow: none; }
.project-library-page .view-toggle .btn { min-width: 36px; min-height: 34px; padding: 5px; border: 0; border-radius: 7px !important; color: var(--app-page-muted); }
.project-library-page .view-toggle .btn.active { border: 0; background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.project-library-page .project-card { overflow: hidden; border: 1px solid var(--app-page-line) !important; border-radius: 14px; background: var(--app-page-surface); box-shadow: none !important; transition: border-color .16s ease, box-shadow .16s ease; }
.project-library-page .project-card:hover { border-color: var(--app-page-green) !important; transform: none; box-shadow: 0 14px 32px rgba(27, 65, 43, .07) !important; }
.project-library-page .project-card > .card-header { padding: 17px 18px; border-bottom: 1px solid var(--app-page-line); background: var(--app-page-surface); color: var(--app-page-ink); }
.project-library-page .project-card > .card-header .card-title { color: var(--app-page-ink); font-size: .93rem; font-weight: 720; }
.project-library-page .project-card > .card-header .card-title i { color: var(--app-page-green); }
.project-library-page .project-card > .card-header .btn { border-color: var(--app-page-line); background: var(--app-page-canvas); color: var(--app-page-muted); }
.project-library-page .project-card > .card-body { padding: 18px; }
.project-library-page .project-card .text-uppercase.small { color: var(--app-page-muted) !important; font-size: .63rem; letter-spacing: .05em; }
.project-library-page .project-card .card-text { color: var(--app-page-muted); font-size: .78rem; line-height: 1.6; }
.project-library-page .project-card .stat-item { padding: 10px !important; border: 1px solid var(--app-page-line); border-radius: 9px !important; background: var(--app-page-canvas); }
.project-library-page .project-card .stat-item:hover { transform: none; }
.project-library-page .project-card .stat-number { color: var(--app-page-ink) !important; font-size: 1rem; }
.project-library-page .project-card .location-info,
.project-library-page .project-card .timeline-info { padding: 10px; border: 1px solid var(--app-page-line); border-radius: 9px; background: var(--app-page-canvas); color: var(--app-page-muted); font-size: .7rem !important; }
.project-library-page .project-card > .card-footer { padding: 13px 18px; border-top: 1px solid var(--app-page-line); background: transparent; }
.project-library-page #list-view > .card { overflow: hidden; border: 1px solid var(--app-page-line) !important; border-radius: 14px; background: var(--app-page-surface); box-shadow: none !important; }
.project-library-page #list-view > .card > .card-header { padding: 16px 19px; border-bottom: 1px solid var(--app-page-line); background: transparent !important; color: var(--app-page-ink) !important; }
.project-library-page #list-view .list-group-item { padding: 15px 18px; border-bottom: 1px solid var(--app-page-line) !important; background: transparent; color: var(--app-page-ink); }
.project-library-page #list-view .list-group-item:hover { background: var(--app-page-green-soft); transform: none; }
.project-library-page .empty-state { padding: 60px 20px; text-align: center; }
.project-library-page .empty-state > i { color: var(--app-page-line); font-size: 3rem; }
.project-dashboard-page .project-header-actions { display: flex; gap: 8px; }
.project-dashboard-page .project-header-actions .btn { min-height: 41px; display: inline-flex; align-items: center; gap: 6px; padding: 9px 13px; }
.project-dashboard-page .project-header-actions .latest-plan-link { display: grid; grid-template-columns: 92px minmax(125px, 1fr); align-items: stretch; gap: 11px; min-height: 76px; padding: 7px; border: 1px solid var(--app-page-line); border-radius: 11px; background: color-mix(in srgb, var(--app-page-surface) 82%, var(--app-page-green-soft)); color: var(--app-page-ink); text-align: left; text-decoration: none; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.project-dashboard-page .project-header-actions .latest-plan-link:hover { border-color: var(--app-page-green); color: var(--app-page-ink); box-shadow: 0 10px 24px rgba(27, 65, 43, .08); transform: translateY(-1px); }
.project-dashboard-page .latest-plan-canvas { display: block; min-height: 62px; overflow: hidden; border: 1px solid var(--app-page-line); border-radius: 8px; background-color: var(--app-page-canvas); background-image: radial-gradient(var(--app-page-line) 1px, transparent 1px); background-size: 9px 9px; }
.project-dashboard-page .latest-plan-canvas svg { display: block; width: 100%; height: 100%; }
.project-dashboard-page .latest-plan-canvas polygon { fill: color-mix(in srgb, var(--app-page-green) 20%, transparent); stroke: var(--app-page-green); stroke-width: 2.2; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.project-dashboard-page .latest-plan-canvas path { fill: none; stroke: var(--app-page-green); stroke-width: 2; stroke-dasharray: 5 4; opacity: .65; }
.project-dashboard-page .latest-plan-link-copy { display: flex; min-width: 0; justify-content: center; flex-direction: column; gap: 2px; padding-right: 6px; line-height: 1.2; }
.project-dashboard-page .latest-plan-link-copy small { color: var(--app-page-muted); font-size: .57rem; font-weight: 650; letter-spacing: .045em; text-transform: uppercase; }
.project-dashboard-page .latest-plan-link-copy strong { overflow: hidden; color: var(--app-page-ink); font-size: .76rem; font-weight: 720; text-overflow: ellipsis; white-space: nowrap; }
.project-dashboard-page .latest-plan-link-copy > span { display: inline-flex; align-items: center; gap: 5px; margin-top: 4px; color: var(--app-page-green-dark); font-size: .66rem; font-weight: 720; }
.project-dashboard-page .latest-plan-link-copy > span i { transition: transform .18s ease; }
.project-dashboard-page .latest-plan-link:hover .latest-plan-link-copy > span i { transform: translateX(2px); }
.project-dashboard-page .card { border: 1px solid var(--app-page-line); border-radius: 14px; background: var(--app-page-surface); box-shadow: none !important; transition: none; }
.project-dashboard-page .card:hover { transform: none; }
.project-dashboard-page .card > .card-header { padding: 16px 19px; border-bottom: 1px solid var(--app-page-line); background: transparent !important; color: var(--app-page-ink) !important; }
.project-dashboard-page .card > .card-header .card-title { color: var(--app-page-ink); font-size: .78rem; font-weight: 740; letter-spacing: .04em; text-transform: uppercase; }
.project-dashboard-page .card > .card-header .card-title i { color: var(--app-page-green); }
.project-dashboard-page .card > .card-body { padding: 19px; }
.project-dashboard-page .card-text { color: var(--app-page-muted); font-size: .79rem; line-height: 1.55; }
.project-dashboard-page .card-text strong { color: var(--app-page-ink); font-size: .68rem; letter-spacing: .025em; }
.project-dashboard-page .quick-actions .d-grid { gap: 7px !important; }
.project-dashboard-page .quick-actions .btn { min-height: 40px; display: flex; align-items: center; justify-content: flex-start; gap: 8px; padding: 9px 11px; }
.project-dashboard-page .statistics-card h4 { color: var(--app-page-green-dark) !important; font-size: 1.25rem; }
.project-dashboard-page #map { overflow: hidden; height: 420px; border: 1px solid var(--app-page-line); border-radius: 11px; }
.project-dashboard-page .recipe-card,
.project-dashboard-page .plan-card { border-radius: 11px; background: var(--app-page-canvas); }
.project-dashboard-page .recipe-card:hover,
.project-dashboard-page .plan-card:hover { border-color: var(--app-page-green); }
.project-dashboard-page .recipe-card > .card-footer,
.project-dashboard-page .plan-card > .card-footer { padding: 12px 15px; border-top: 1px solid var(--app-page-line) !important; }
.project-dashboard-page .project-section-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.project-dashboard-page .project-section-header p { color: var(--app-page-muted); font-size: .7rem; }
.project-dashboard-page .planting-plan-card { overflow: hidden; background: var(--app-page-surface); }
.project-dashboard-page .planting-plan-primary { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 13px; padding: 18px; color: var(--app-page-ink); text-decoration: none; }
.project-dashboard-page .planting-plan-primary:hover { background: var(--app-page-green-soft); color: var(--app-page-ink); }
.project-dashboard-page .planting-plan-icon { display: grid; place-items: center; width: 42px; height: 42px; grid-row: 1 / 3; border-radius: 11px; background: var(--app-page-green-soft); color: var(--app-page-green); font-size: 1.05rem; }
.project-dashboard-page .planting-plan-copy { display: grid; min-width: 0; gap: 3px; }
.project-dashboard-page .planting-plan-copy strong { overflow: hidden; color: var(--app-page-ink); font-size: .88rem; font-weight: 720; text-overflow: ellipsis; white-space: nowrap; }
.project-dashboard-page .planting-plan-copy small { color: var(--app-page-muted); font-size: .65rem; }
.project-dashboard-page .planting-plan-open { grid-column: 2; display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; color: var(--app-page-green-dark); font-size: .7rem; font-weight: 700; }
.project-dashboard-page .planting-plan-open i { transition: transform .15s ease; }
.project-dashboard-page .planting-plan-primary:hover .planting-plan-open i { transform: translateX(3px); }
.project-dashboard-page .planting-plan-card > .card-footer { padding: 9px 12px; background: var(--app-page-canvas); }
.project-dashboard-page .planting-plan-card .plan-actions { display: flex; align-items: center; gap: 6px; }
.project-dashboard-page .planting-plan-card .plan-actions .btn { min-height: 35px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; padding: 7px 9px; }
.project-dashboard-page .planting-plan-card .delete-plan-btn { margin-left: auto; width: 35px; padding: 7px; }
.project-dashboard-page .empty-state { padding: 42px 18px !important; }
.project-dashboard-page .empty-state i { color: var(--app-page-line) !important; font-size: 2.6rem !important; }
.project-dashboard-page .empty-state p { color: var(--app-page-muted) !important; font-size: .85rem !important; }

/* Cultivar flow */
.cultivar-page { background: var(--app-page-canvas); }
.cultivar-page .app-page-inner { max-width: 1280px; }
.cultivar-page .breadcrumb { color: var(--app-page-muted); font-size: .72rem; }
.cultivar-page .breadcrumb a { color: var(--app-page-green); }
.cultivar-page .cultivar-page-hero { margin-bottom: 24px !important; padding: clamp(24px, 4vw, 38px); border: 1px solid var(--app-page-line); border-radius: 16px; background: linear-gradient(135deg, var(--app-page-surface), var(--app-page-green-soft)); }
.cultivar-page .cultivar-page-hero h1 { color: var(--app-page-ink); font-size: clamp(1.55rem, 3vw, 2.2rem); font-weight: 750; letter-spacing: -.035em; }
.cultivar-page .cultivar-page-hero p { color: var(--app-page-muted); font-size: .82rem; }
.cultivar-page .btn { min-height: 40px; border-radius: 9px; font-size: .73rem; font-weight: 680; }
.cultivar-page .btn-success { border-color: var(--app-page-green); background: var(--app-page-green); color: white; }
.cultivar-page .btn-success:hover { border-color: var(--app-page-green-dark); background: var(--app-page-green-dark); color: white; }
.cultivar-page .btn-outline-success,
.cultivar-page .btn-outline-primary { border-color: var(--app-page-line); color: var(--app-page-green-dark); }
.cultivar-page .btn-outline-success:hover,
.cultivar-page .btn-outline-primary:hover { border-color: var(--app-page-green); background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.cultivar-page .cultivar-panel { overflow: hidden; border: 1px solid var(--app-page-line) !important; border-radius: 14px; background: var(--app-page-surface); box-shadow: none !important; }
.cultivar-page .cultivar-panel > .card-header { padding: 16px 19px; border-bottom: 1px solid var(--app-page-line); background: transparent; color: var(--app-page-ink); }
.cultivar-page .cultivar-panel > .card-header h5 { font-size: .78rem; font-weight: 740; letter-spacing: .04em; text-transform: uppercase; }
.cultivar-page .cultivar-panel > .card-header i { color: var(--app-page-green); }
.cultivar-page .list-group-item { padding: 16px 19px; border-bottom: 1px solid var(--app-page-line) !important; background: transparent; color: var(--app-page-ink); transition: background-color .15s ease; }
.cultivar-page .list-group-item:last-child { border-bottom: 0 !important; }
.cultivar-page .list-group-item:hover { background: var(--app-page-green-soft); transform: none; }
.cultivar-page .list-group-item h6 { color: var(--app-page-ink); font-size: .87rem; }
.cultivar-page .list-group-item h6 i { color: var(--app-page-green) !important; }
.cultivar-page .list-group-item small,
.cultivar-page .public-cultivars-panel > .card-body > p { color: var(--app-page-muted) !important; font-size: .71rem; }
.cultivar-page .public-cultivars-panel > .card-body { padding: 19px; }
.cultivar-page #publicCultivarsSearchContainer .input-group-text,
.cultivar-page #publicCultivarsSearch { min-height: 43px; border-color: var(--app-page-line); background: var(--app-page-surface); color: var(--app-page-ink); }
.cultivar-page #publicCultivarsSearch:focus { border-color: var(--app-page-green); box-shadow: none; }
.cultivar-page .empty-state { padding: 60px 20px; text-align: center; }
.cultivar-page .empty-state > i { color: var(--app-page-line); font-size: 3rem; }
.cultivar-page .empty-state h4 { color: var(--app-page-ink) !important; }
.cultivar-page .empty-state p { color: var(--app-page-muted) !important; font-size: .85rem; }
.cultivar-overview-page .table { --bs-table-bg: transparent; --bs-table-color: var(--app-page-ink); margin: 0; }
.cultivar-overview-page .table th { padding: 12px 16px; border-bottom: 1px solid var(--app-page-line); background: var(--app-page-canvas); color: var(--app-page-muted); font-size: .66rem; letter-spacing: .04em; text-transform: uppercase; }
.cultivar-overview-page .table td { padding: 15px 16px; border-color: var(--app-page-line); vertical-align: middle; }
.cultivar-overview-page .plant-row:hover { background: var(--app-page-green-soft); transform: none; }
.cultivar-overview-page .plant-link { color: var(--app-page-ink); font-weight: 680; }
.cultivar-overview-page .plant-link:hover { color: var(--app-page-green-dark); }
.cultivar-overview-page .badge.bg-primary { background: var(--app-page-green-soft) !important; color: var(--app-page-green-dark); }
.cultivar-form-page .form-container { margin: 0; padding: clamp(18px, 3vw, 28px); border: 1px solid var(--app-page-line); border-radius: 16px; background: var(--app-page-surface); box-shadow: none; }
.cultivar-form-page .cultivar-header-actions { display: flex; align-items: center; flex: 0 0 auto; }
.cultivar-form-page .cultivar-back-link { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 42px; padding: 9px 14px; border: 1px solid var(--app-page-line); border-radius: 9px !important; background: var(--app-page-surface); color: var(--app-page-green-dark); font-size: .73rem; font-weight: 690; box-shadow: none; }
.cultivar-form-page .cultivar-back-link:hover { border-color: var(--app-page-green); background: var(--app-page-green-soft); color: var(--app-page-green-dark); transform: none; }
.cultivar-form-page :is(.form-section, .description-section, .dimensions-section) { padding: 19px; border: 1px solid var(--app-page-line); border-radius: 12px; background: var(--app-page-surface); box-shadow: none; }
.cultivar-form-page :is(.harvest-section, .ratings-section, .visibility-section) { padding: 15px; border: 1px solid var(--app-page-line); border-radius: 10px; background: var(--app-page-green-soft); }
.cultivar-form-page .section-title { margin-bottom: 17px; padding-bottom: 10px; border-bottom: 1px solid var(--app-page-line); color: var(--app-page-ink); font-size: .78rem; font-weight: 740; letter-spacing: .04em; text-transform: uppercase; }
.cultivar-form-page .section-title i,
.cultivar-form-page .form-icon { color: var(--app-page-green) !important; }
.cultivar-form-page .form-label { margin-bottom: 6px; color: var(--app-page-ink); font-size: .72rem; font-weight: 670; }
.cultivar-form-page :is(.form-control, .form-select, textarea, .ts-control) { border: 1px solid var(--app-page-line); border-radius: 9px; background: var(--app-page-surface); color: var(--app-page-ink); font-size: .8rem; }
.cultivar-form-page :is(.form-control, .form-select, textarea):focus,
.cultivar-form-page .ts-wrapper.focus .ts-control { border-color: var(--app-page-green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--app-page-green) 14%, transparent); }
.cultivar-form-page .form-range::-webkit-slider-thumb { background: var(--app-page-green); }
.cultivar-form-page .form-range::-moz-range-thumb { background: var(--app-page-green); }
.cultivar-form-page .range-value { color: var(--app-page-green-dark); }
.cultivar-form-page .action-buttons { display: flex; justify-content: flex-end; padding-top: 6px; }
.cultivar-form-page .cultivar-form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; width: 100%; border-radius: 0; box-shadow: none; }
.cultivar-form-page .cultivar-form-actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 43px; padding: 10px 17px; border-radius: 9px !important; font-size: .74rem; font-weight: 700; box-shadow: none; }
.cultivar-form-page .cultivar-cancel-button { border: 1px solid var(--app-page-line); background: var(--app-page-surface); color: var(--app-page-muted); }
.cultivar-form-page .cultivar-cancel-button:hover { border-color: var(--app-page-green); background: var(--app-page-green-soft); color: var(--app-page-green-dark); transform: none; }
.cultivar-form-page .cultivar-save-button { border: 1px solid var(--app-page-green); background: var(--app-page-green); color: #fff; }
.cultivar-form-page .cultivar-save-button:hover { border-color: var(--app-page-green-dark); background: var(--app-page-green-dark); color: #fff; transform: none; }
.cultivar-form-page .comparison-section .accordion-item { border-color: var(--app-page-line); background: var(--app-page-surface); }
.cultivar-detail-page .cultivar-card { overflow: hidden; border: 1px solid var(--app-page-line); border-radius: 16px; background: var(--app-page-surface); box-shadow: none; }
.cultivar-detail-page .cultivar-card > .card-header { padding: clamp(24px, 4vw, 38px); border-bottom: 1px solid var(--app-page-line); background: linear-gradient(135deg, var(--app-page-surface), var(--app-page-green-soft)); }
.cultivar-detail-page .cultivar-title { color: var(--app-page-ink); font-size: clamp(1.7rem, 3vw, 2.4rem); }
.cultivar-detail-page .cultivar-card > .card-header h6 { color: var(--app-page-muted); }
.cultivar-detail-page .cultivar-card > .card-body { padding: clamp(20px, 4vw, 34px); }
.cultivar-detail-page h3 { margin-bottom: 13px; color: var(--app-page-ink); font-size: .82rem; font-weight: 740; letter-spacing: .04em; text-transform: uppercase; }
.cultivar-detail-page .plant-details p { display: grid; grid-template-columns: minmax(125px, 38%) 1fr; gap: 12px; margin: 0; padding: 10px 0; border-bottom: 1px solid var(--app-page-line); color: var(--app-page-ink); font-size: .78rem; }
.cultivar-detail-page .plant-details strong { color: var(--app-page-muted); font-size: .68rem; }
.cultivar-detail-page .details-section { margin-top: 0; padding: 17px; border: 1px solid var(--app-page-line); border-radius: 11px; background: var(--app-page-canvas); color: var(--app-page-muted); font-size: .82rem; line-height: 1.65; }
.cultivar-delete-page .delete-container { max-width: 620px; }
.cultivar-delete-page .delete-card { overflow: hidden; border: 1px solid var(--app-page-line); border-radius: 16px; background: var(--app-page-surface); box-shadow: var(--app-page-shadow); }
.cultivar-delete-page .delete-card-header { padding: 18px 21px; border-bottom: 1px solid #e7c7c7; background: #fff5f5; color: #9f3030; font-size: .88rem; font-weight: 730; }
.cultivar-delete-page .delete-card-body { padding: clamp(24px, 5vw, 38px); }
.cultivar-delete-page .delete-warning { color: var(--app-page-ink); font-size: 1rem; line-height: 1.6; }
.cultivar-wizard-modal .modal-content { overflow: hidden; border: 1px solid var(--app-page-line); border-radius: 17px; background: var(--app-page-surface); color: var(--app-page-ink); box-shadow: var(--app-page-shadow); }
.cultivar-wizard-modal .modal-header { padding: 20px 23px; border-bottom: 1px solid var(--app-page-line); background: linear-gradient(135deg, var(--app-page-surface), var(--app-page-green-soft)); }
.cultivar-wizard-modal .modal-title { color: var(--app-page-ink); font-size: 1.25rem; font-weight: 750; }
.cultivar-wizard-eyebrow { display: block; margin-bottom: 3px; color: var(--app-page-green); font-size: .64rem; font-weight: 760; letter-spacing: .07em; text-transform: uppercase; }
.cultivar-wizard-modal .modal-body { padding: 22px 23px; background: var(--app-page-canvas); }
.cultivar-wizard-progress { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 25px; }
.cultivar-wizard-progress span { position: relative; display: flex; align-items: center; gap: 7px; color: var(--app-page-muted); font-size: .68rem; font-weight: 660; }
.cultivar-wizard-progress span:not(:last-child)::after { content: ''; position: absolute; right: 10px; left: 35px; bottom: -8px; height: 2px; background: var(--app-page-line); }
.cultivar-wizard-progress b { display: grid; place-items: center; width: 25px; height: 25px; border: 1px solid var(--app-page-line); border-radius: 50%; background: var(--app-page-surface); font-size: .65rem; }
.cultivar-wizard-progress span.active { color: var(--app-page-green-dark); }
.cultivar-wizard-progress span.active b { border-color: var(--app-page-green); background: var(--app-page-green); color: white; }
.cultivar-wizard-progress span.active::after { background: var(--app-page-green); }
.cultivar-wizard-step { display: none; }
.cultivar-wizard-step.active { display: block; }
.cultivar-wizard-step h3 { margin: 0 0 5px; color: var(--app-page-ink); font-size: 1.05rem; font-weight: 730; }
.cultivar-wizard-step > p { margin: 0 0 20px; color: var(--app-page-muted); font-size: .79rem; line-height: 1.6; }
.cultivar-wizard-search .input-group-text,
.cultivar-wizard-search .form-control,
.cultivar-wizard-search .btn { min-height: 44px; border-color: var(--app-page-line); background: var(--app-page-surface); color: var(--app-page-ink); }
.cultivar-wizard-search .form-control:focus { border-color: var(--app-page-green); box-shadow: none; }
.cultivar-wizard-results { max-height: 360px; overflow-y: auto; margin-top: 12px; border: 1px solid var(--app-page-line); border-radius: 11px; background: var(--app-page-surface); }
.cultivar-wizard-plant { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 13px; width: 100%; padding: 13px 15px; border: 0; border-bottom: 1px solid var(--app-page-line); background: transparent; color: var(--app-page-ink); text-align: left; }
.cultivar-wizard-plant:last-child { border-bottom: 0; }
.cultivar-wizard-plant:hover,
.cultivar-wizard-plant:focus-visible { background: var(--app-page-green-soft); outline: none; }
.cultivar-wizard-plant span { min-width: 0; }
.cultivar-wizard-plant span > i { display: block; overflow: hidden; font-size: .82rem; font-weight: 680; text-overflow: ellipsis; white-space: nowrap; }
.cultivar-wizard-plant small { display: block; margin-top: 2px; color: var(--app-page-muted); font-size: .67rem; }
.cultivar-wizard-plant em { padding: 5px 7px; border-radius: 999px; background: var(--app-page-canvas); color: var(--app-page-muted); font-size: .62rem; font-style: normal; }
.cultivar-wizard-plant > i { color: var(--app-page-muted); }
.cultivar-wizard-empty { display: grid; justify-items: center; gap: 5px; padding: 45px 20px; color: var(--app-page-muted); text-align: center; }
.cultivar-wizard-selection { display: flex; align-items: center; gap: 16px; padding: 20px; border: 1px solid var(--app-page-green); border-radius: 12px; background: var(--app-page-green-soft); }
.cultivar-wizard-selection .selection-icon { display: grid; place-items: center; width: 48px; height: 48px; flex: 0 0 48px; border-radius: 12px; background: var(--app-page-surface); color: var(--app-page-green); font-size: 1.25rem; }
.cultivar-wizard-selection div { display: grid; gap: 2px; }
.cultivar-wizard-selection small { color: var(--app-page-muted); font-size: .62rem; letter-spacing: .04em; text-transform: uppercase; }
.cultivar-wizard-selection strong { color: var(--app-page-ink); font-size: .95rem; font-style: italic; }
.cultivar-wizard-selection span,
.cultivar-wizard-selection em { color: var(--app-page-muted); font-size: .72rem; font-style: normal; }
.cultivar-wizard-modal .modal-footer { padding: 15px 23px; border-top: 1px solid var(--app-page-line); background: var(--app-page-surface); }
.cultivar-wizard-modal .modal-footer .btn { min-height: 42px; border-radius: 9px; font-size: .73rem; font-weight: 690; }

/* Plant search */
.plant-search-page { background: var(--app-page-canvas); }
.plant-search-page .app-page-inner { max-width: 1380px; }
.plant-search-page .plant-search-hero { margin-bottom: 24px; }
.plant-search-page .plant-search-hero .btn { display: inline-flex; align-items: center; gap: 7px; min-height: 42px; border-color: var(--app-page-line); border-radius: 9px; background: var(--app-page-surface); color: var(--app-page-green-dark); font-size: .76rem; font-weight: 700; }
.plant-search-page .plant-search-hero .btn:hover { border-color: var(--app-page-green); background: var(--app-page-green-soft); }
.plant-search-page .plant-search-hero .btn-success { border-color: var(--app-page-green); background: var(--app-page-green); color: #fff; }
.plant-search-page .plant-search-hero .btn-success:hover { border-color: var(--app-page-green-dark); background: var(--app-page-green-dark); color: #fff; }
.plant-search-page .plant-filter-panel,
.plant-search-page .recipe-workbench { border: 1px solid var(--app-page-line); border-radius: 15px; background: var(--app-page-surface); box-shadow: none; }
.plant-search-page .plant-filter-panel:hover { box-shadow: none; }
.plant-search-page .plant-filter-panel > .card-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; border-bottom: 1px solid var(--app-page-line); background: transparent; }
.plant-search-page .panel-kicker { display: block; margin-bottom: 3px; color: var(--app-page-green); font-size: .64rem; font-weight: 760; letter-spacing: .07em; text-transform: uppercase; }
.plant-search-page .plant-filter-panel h2,
.plant-search-page .plant-search-results-header h2 { margin: 0; color: var(--app-page-ink); font-size: 1.12rem; font-weight: 740; }
.plant-search-page .filter-reset { display: inline-flex; align-items: center; gap: 6px; color: var(--app-page-muted); font-size: .72rem; font-weight: 650; text-decoration: none; }
.plant-search-page .filter-reset:hover { color: var(--app-page-green-dark); }
.plant-search-page .plant-filter-panel > .card-body { padding: 22px; }
.plant-search-page .search-form { margin: 0 !important; padding: 0; border-radius: 0; box-shadow: none; }
.plant-search-page .search-form .row { --bs-gutter-x: 14px; }
.plant-search-page .form-label,
.plant-search-page .recipe-workbench .card-title { margin-bottom: 6px; color: var(--app-page-ink); font-size: .7rem; font-weight: 680; }
.plant-search-page .form-control,
.plant-search-page .form-select,
.plant-search-page .ts-control { min-height: 43px; border: 1px solid var(--app-page-line); border-radius: 9px; background: var(--app-page-surface); color: var(--app-page-ink); box-shadow: none; font-size: .78rem; }
.plant-search-page .search-form .form-control,
.plant-search-page .search-form .form-select { margin-bottom: 0; }
.plant-search-page .form-control:focus,
.plant-search-page .form-select:focus,
.plant-search-page .ts-wrapper.focus .ts-control { border-color: var(--app-page-green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--app-page-green) 14%, transparent); }
.plant-search-page .form-range::-webkit-slider-thumb { background: var(--app-page-green); }
.plant-search-page .form-range::-moz-range-thumb { background: var(--app-page-green); }
.plant-search-page .btn { border-radius: 9px; font-size: .75rem; font-weight: 680; }
.plant-search-page .btn-success { border-color: var(--app-page-green); background: var(--app-page-green); color: white; }
.plant-search-page .btn-success:hover { border-color: var(--app-page-green-dark); background: var(--app-page-green-dark); color: white; }
.plant-search-page .btn-outline-success { border-color: var(--app-page-line); color: var(--app-page-green-dark); }
.plant-search-page .btn-outline-success:hover { border-color: var(--app-page-green); background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.plant-search-page .recipe-workbench { position: sticky; top: calc(var(--topbar-height) + 8px); z-index: 1000; }
.plant-search-page .recipe-workbench.sticky { top: calc(var(--topbar-height) + 8px); }
.plant-search-page .recipe-workbench > .card-body { padding: 18px 20px; }
.plant-search-page .recipe-workbench #recipe-title { margin-bottom: 4px; color: var(--app-page-ink); font-size: .93rem; font-weight: 720; }
.plant-search-page .recipe-workbench p { color: var(--app-page-muted) !important; font-size: .76rem; }
.plant-search-page #activeRecipeContext { border: 1px solid var(--app-page-green); border-radius: 11px; background: var(--app-page-green-soft); color: var(--app-page-ink); font-size: .78rem; }
.plant-search-page .plant-search-results-header { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin: 46px 0 18px; padding-bottom: 13px; border-bottom: 1px solid var(--app-page-line); }
.plant-search-page .result-count { padding: 6px 9px; border-radius: 999px; background: var(--app-page-green-soft); color: var(--app-page-green-dark); font-size: .68rem; font-weight: 700; }
.plant-search-page .plant-search-results > div { margin-bottom: 0 !important; }
.plant-search-page .plant-card { height: 100%; overflow: hidden; border: 1px solid var(--app-page-line); border-radius: 13px; background: var(--app-page-surface); box-shadow: none; transition: border-color .16s ease, box-shadow .16s ease; }
.plant-search-page .plant-card:hover { border-color: var(--app-page-green); box-shadow: 0 12px 28px rgba(27, 65, 43, .07); }
.plant-search-page .plant-card.in-recipe { border-color: var(--app-page-green); box-shadow: inset 0 3px 0 var(--app-page-green); }
.plant-search-page .card-layer-bar { border-bottom: 1px solid var(--app-page-line); color: #fff; font-size: .67rem; font-weight: 720; letter-spacing: .035em; text-shadow: none; }
.plant-search-page .card-layer-bar.groente-layer { color: #17211b; }
.plant-search-page .layer-info { text-shadow: none; }
.plant-search-page .recipe-toggle-label { border: 1px solid var(--app-page-line); background: var(--app-page-surface); color: var(--app-page-green-dark); text-shadow: none; }
.plant-search-page .recipe-checkbox:checked + .recipe-toggle-label { border-color: var(--app-page-green); background: var(--app-page-green); color: white; }
.plant-search-page .plant-card > .card-body { padding: 18px; }
.plant-search-page .plant-card .card-title { margin-bottom: 4px; font-size: 1rem; }
.plant-search-page .plant-card .card-title a { color: var(--app-page-ink); text-decoration: none; }
.plant-search-page .plant-card .card-title a:hover { color: var(--app-page-green-dark); }
.plant-search-page .plant-card .card-subtitle { color: var(--app-page-muted) !important; font-size: .76rem; }
.plant-search-page .cultivar-badge,
.plant-search-page .plant-card .badge { border: 1px solid var(--app-page-line); border-radius: 6px; background: var(--app-page-canvas) !important; color: var(--app-page-ink); font-size: .65rem; }
.plant-search-page .plant-details { color: var(--app-page-muted); font-size: .72rem; line-height: 1.45; }
.plant-search-page .plant-details p { margin-bottom: 10px; font-size: .72rem; }
.plant-search-page .plant-details strong { color: var(--app-page-ink); font-size: .64rem; letter-spacing: .035em; text-transform: uppercase; }
.plant-search-page .plant-card .card-footer { border-top: 1px solid var(--app-page-line); background: transparent; }
.plant-search-page .plant-card .card-footer .btn { min-height: 42px; border-top: 0; border-right-color: var(--app-page-line); background: var(--app-page-surface); color: var(--app-page-muted); }
.plant-search-page .plant-card .card-footer .btn:hover { background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
#plantGuildModal .guild-modal-content { border: 1px solid var(--app-page-line); border-radius: 16px; background: var(--app-page-surface); box-shadow: var(--app-page-shadow); }
#plantGuildModal .modal-header { padding: 18px 21px; border-bottom: 1px solid var(--app-page-line); background: var(--app-page-surface); color: var(--app-page-ink); }
#plantGuildModal .modal-title { color: var(--app-page-ink); font-size: 1.05rem; }
#plantGuildModal .btn-close { filter: none; }
#plantGuildModal .modal-body { background: var(--app-page-canvas); }
#plantGuildModal .plant-guild-canvas { border-color: var(--app-page-line); border-radius: 12px; background-color: var(--app-page-surface); background-image: radial-gradient(var(--app-page-line) 1px, transparent 1px); box-shadow: none; }
#plantGuildModal .plant-guild-info { border-color: var(--app-page-line); border-radius: 12px; background: var(--app-page-surface); box-shadow: none; }
#plantGuildModal .guild-modal-eyebrow,
#plantGuildModal .guild-info-common,
#plantGuildModal .guild-modal-hint { color: var(--app-page-muted); }
#plantGuildModal .guild-info-name { color: var(--app-page-ink); }
#plantGuildModal .guild-info-benefit,
#plantGuildModal .guild-info-main { border-color: var(--app-page-green); background: var(--app-page-green-soft); color: var(--app-page-ink); }

/* Plant library and records */
.plant-library-page,
.plant-record-page { background: var(--app-page-canvas); }
.plant-library-page .app-page-inner,
.plant-record-page .app-page-inner { max-width: 1380px; }
.plant-library-page .breadcrumb,
.plant-record-page .breadcrumb { margin: 0; color: var(--app-page-muted); font-size: .73rem; }
.plant-library-page .breadcrumb i,
.plant-record-page .breadcrumb a { color: var(--app-page-green); }
.plant-library-page .plant-library-heading {
    margin-bottom: 26px !important;
    padding: clamp(24px, 4vw, 38px);
    border: 1px solid var(--app-page-line);
    border-radius: 16px;
    background: linear-gradient(135deg, var(--app-page-surface), var(--app-page-green-soft));
}
.plant-library-page .plant-library-heading h1 { color: var(--app-page-ink); font-size: clamp(1.65rem, 3vw, 2.35rem); font-weight: 760; letter-spacing: -.035em; }
.plant-library-page .plant-library-heading p { max-width: 720px; color: var(--app-page-muted); font-size: .85rem; line-height: 1.6; }
.plant-library-page .plant-library-heading .btn,
.plant-record-page .btn { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 9px 14px; border-radius: 9px; font-size: .76rem; font-weight: 700; }
.plant-library-page .btn-success,
.plant-record-page .btn-success { border-color: var(--app-page-green); background: var(--app-page-green); color: white; }
.plant-library-page .btn-success:hover,
.plant-record-page .btn-success:hover { border-color: var(--app-page-green-dark); background: var(--app-page-green-dark); color: white; }
.plant-library-page .btn-outline-success,
.plant-record-page .btn-outline-success { border-color: var(--app-page-line); background: var(--app-page-surface); color: var(--app-page-green-dark); }
.plant-library-page .btn-outline-success:hover,
.plant-record-page .btn-outline-success:hover { border-color: var(--app-page-green); background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.plant-library-page .search-panel {
    border: 1px solid var(--app-page-line) !important;
    border-radius: 13px;
    background: var(--app-page-surface);
    box-shadow: none !important;
}
.plant-library-page .search-panel .card-body { padding: 15px !important; }
.plant-library-page .search-icon { min-width: 46px; border: 1px solid var(--app-page-line) !important; border-right: 0 !important; border-radius: 10px 0 0 10px; background: var(--app-page-surface) !important; color: var(--app-page-green) !important; }
.plant-library-page .search-input { min-height: 46px; border: 1px solid var(--app-page-line); border-right: 0; background: var(--app-page-surface); color: var(--app-page-ink); font-size: .84rem; }
.plant-library-page .search-input:focus { border-color: var(--app-page-green); box-shadow: none; }
.plant-library-page .clear-btn { min-width: 46px; border-color: var(--app-page-line); border-left: 0; border-radius: 0 10px 10px 0; background: var(--app-page-surface); color: var(--app-page-muted); }
.plant-library-page .search-info { color: var(--app-page-muted); font-size: .7rem; }
.plant-library-page .layer-nav-sticky {
    top: calc(var(--topbar-height) + 8px);
    margin: 0 0 22px;
    padding: 7px;
    border: 1px solid var(--app-page-line);
    border-radius: 12px;
    background: color-mix(in srgb, var(--app-page-surface) 92%, transparent);
    box-shadow: 0 8px 24px rgba(27, 65, 43, .06);
    backdrop-filter: blur(12px);
}
.plant-library-page .layer-nav-sticky .container-fluid { padding: 0; }
.plant-library-page .layer-nav-container {
    width: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.plant-library-page .layer-nav-scroll { gap: 5px; padding: 0; background: transparent; scrollbar-color: var(--app-page-line) transparent; }
.plant-library-page .layer-nav-scroll::-webkit-scrollbar { height: 4px; }
.plant-library-page .layer-nav-scroll::-webkit-scrollbar-track { background: transparent; }
.plant-library-page .layer-nav-scroll::-webkit-scrollbar-thumb { border-radius: 999px; background: var(--app-page-line); }
.plant-library-page .layer-nav-scroll::-webkit-scrollbar-thumb:hover { background: var(--app-page-muted); }
.plant-library-page .layer-nav-link { padding: 8px 11px; border: 0; border-radius: 8px; background: transparent; color: var(--app-page-muted); font-size: .72rem; font-weight: 670; }
.plant-library-page .layer-nav-link:hover,
.plant-library-page .layer-nav-link.active { background: var(--app-page-green-soft); color: var(--app-page-green-dark); transform: none; box-shadow: none; }
.plant-library-page .plant-catalogue-panel,
.plant-record-page .plant-record-shell { overflow: hidden; border: 1px solid var(--app-page-line) !important; border-radius: 16px; background: var(--app-page-surface); box-shadow: none !important; }
.plant-library-page .plant-catalogue-panel > .card-header { padding: 17px 20px; border-bottom: 1px solid var(--app-page-line); background: var(--app-page-surface); color: var(--app-page-ink); }
.plant-library-page .plant-catalogue-panel > .card-header h5 { font-size: .79rem !important; font-weight: 740; letter-spacing: .045em; text-transform: uppercase; }
.plant-library-page .plant-catalogue-panel > .card-header i { color: var(--app-page-green); }
.plant-library-page .plant-layer { scroll-margin-top: calc(var(--topbar-height) + 80px); }
.plant-library-page .layer-title { display: flex; align-items: center; gap: 9px; margin: 4px 0 16px; padding: 0 0 10px; border-bottom: 1px solid var(--app-page-line); color: var(--app-page-ink); font-size: 1.05rem; font-weight: 720; }
.plant-library-page .layer-title i { color: var(--app-page-green) !important; font-size: .9rem; }
.plant-library-page .plant-card { margin-bottom: 0 !important; }
.plant-library-page .plant-item { height: 100%; transition: none; }
.plant-library-page .plant-item:hover { transform: none; }
.plant-library-page .plant-link { position: relative; display: flex; align-items: center; min-height: 98px; height: 100%; padding: 16px 42px 16px 16px; border: 1px solid var(--app-page-line); border-radius: 11px; background: var(--app-page-canvas); color: var(--app-page-ink); }
.plant-library-page .plant-link::after { content: '\F135'; position: absolute; right: 16px; color: var(--app-page-muted); font-family: 'bootstrap-icons'; font-size: .82rem; }
.plant-library-page .plant-link:hover { border-color: var(--app-page-green); background: var(--app-page-green-soft); color: var(--app-page-ink); box-shadow: none; }
.plant-library-page .plant-link.highlight { border-color: var(--app-page-green); background: var(--app-page-green-soft); box-shadow: 0 0 0 3px color-mix(in srgb, var(--app-page-green) 14%, transparent); }
.plant-library-page .plant-scientific-name { margin: 0 0 5px; color: var(--app-page-ink); font-size: .88rem; font-weight: 680; line-height: 1.35; }
.plant-library-page .plant-common-name { margin: 0; color: var(--app-page-muted); font-size: .73rem; font-style: normal; }
.plant-library-page .empty-state { padding: 60px 20px; }
.plant-library-page .empty-state i { color: var(--app-page-line); font-size: 2.8rem; }

.plant-record-page .plant-record-header { padding: clamp(25px, 4vw, 40px); border-bottom: 1px solid var(--app-page-line); background: linear-gradient(135deg, var(--app-page-surface), var(--app-page-green-soft)); color: var(--app-page-ink); }
.plant-record-page .plant-record-header h1 { color: var(--app-page-ink); font-size: clamp(1.75rem, 3.5vw, 2.7rem); font-weight: 750; letter-spacing: -.035em; }
.plant-record-page .plant-record-header p { color: var(--app-page-muted); font-size: .85rem; }
.plant-record-page .plant-back-button { border-color: var(--app-page-line); background: var(--app-page-surface); color: var(--app-page-green-dark); }
.plant-record-page .plant-back-button:hover { border-color: var(--app-page-green); background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.plant-record-page .plant-record-shell > .card-body { padding: clamp(20px, 4vw, 38px); }
.plant-record-page .plant-recipe-panel { border: 1px solid var(--app-page-line) !important; border-left: 3px solid var(--app-page-green) !important; border-radius: 12px; background: var(--app-page-green-soft) !important; }
.plant-record-page .plant-recipe-panel h3 { color: var(--app-page-ink); font-weight: 720; }
.plant-record-page .plant-recipe-panel .form-control,
.plant-record-page .plant-recipe-panel .form-select { min-height: 44px; border-color: var(--app-page-line); border-radius: 9px; background: var(--app-page-surface); color: var(--app-page-ink); }
.plant-record-page .info-section { height: 100%; padding: 20px; border: 1px solid var(--app-page-line); border-left: 1px solid var(--app-page-line); border-radius: 13px; background: var(--app-page-surface); }
.plant-record-page .section-title { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; padding: 0 0 11px; border-bottom: 1px solid var(--app-page-line); color: var(--app-page-ink); font-size: .82rem; font-weight: 740; letter-spacing: .035em; text-transform: uppercase; }
.plant-record-page .section-title i { color: var(--app-page-green) !important; }
.plant-record-page .detail-item { display: grid; grid-template-columns: minmax(130px, 38%) 1fr; gap: 14px; margin: 0; padding: 11px 0; border-bottom: 1px solid var(--app-page-line); color: var(--app-page-ink); font-size: .8rem; }
.plant-record-page .detail-label { margin: 0; color: var(--app-page-muted); font-size: .69rem; font-weight: 680; letter-spacing: .025em; }
.plant-record-page .description-text { margin: 0; color: var(--app-page-muted); font-size: .87rem; line-height: 1.75; }
.plant-record-page .rating-text { color: var(--app-page-muted); }
.plant-record-page .badge { border: 1px solid var(--app-page-line); border-radius: 7px; background: var(--app-page-canvas); color: var(--app-page-ink); }
/* Account profile */
.profile-page.profile-container {
    min-height: calc(100vh - var(--topbar-height));
    padding-top: clamp(28px, 5vw, 62px);
    background: var(--app-page-canvas);
}
.profile-page .profile-card {
    overflow: hidden;
    margin: 0;
    border: 1px solid var(--app-page-line);
    border-radius: 18px;
    background: var(--app-page-surface);
    box-shadow: var(--app-page-shadow);
}
.profile-page .profile-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: clamp(26px, 4vw, 42px);
    border-bottom: 1px solid var(--app-page-line);
    background: linear-gradient(135deg, var(--app-page-green-soft), var(--app-page-surface) 72%);
    color: var(--app-page-ink);
    text-align: left;
}
.profile-page .profile-identity { display: flex; align-items: center; gap: 20px; min-width: 0; }
.profile-page .user-avatar {
    width: 76px;
    height: 76px;
    flex: 0 0 76px;
    margin: 0;
    border: 3px solid var(--app-page-surface);
    background: var(--app-page-green);
    box-shadow: 0 0 0 1px var(--app-page-line);
    font-size: 1.7rem;
}
.profile-page .profile-kicker {
    display: block;
    margin-bottom: 6px;
    color: var(--app-page-green);
    font-size: .68rem;
    font-weight: 760;
    letter-spacing: .075em;
    text-transform: uppercase;
}
.profile-page .profile-heading-copy h1 { margin: 0; color: var(--app-page-ink); font-size: clamp(1.65rem, 3vw, 2.25rem); font-weight: 760; letter-spacing: -.035em; }
.profile-page .profile-heading-copy p { margin: 7px 0 0; color: var(--app-page-muted); font-size: .88rem; }
.profile-page .profile-public-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 9px 14px;
    border: 1px solid var(--app-page-line);
    border-radius: 10px;
    background: var(--app-page-surface);
    color: var(--app-page-green-dark);
    font-size: .78rem;
    font-weight: 700;
    white-space: nowrap;
}
.profile-page .profile-public-link:hover { border-color: var(--app-page-green); background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.profile-page .profile-body { padding: clamp(22px, 4vw, 40px); color: var(--app-page-ink); }
.profile-page .profile-info {
    overflow: hidden;
    margin: 0 0 28px;
    padding: 0;
    border: 1px solid var(--app-page-line);
    border-radius: 12px;
    background: var(--app-page-canvas);
}
.profile-page .profile-stat { min-width: 0; padding: 17px 18px; border-right: 1px solid var(--app-page-line); }
.profile-page .profile-stat:last-child { border-right: 0; }
.profile-page .profile-info h6 { margin: 0 0 6px; color: var(--app-page-muted); font-size: .65rem; font-weight: 720; letter-spacing: .05em; text-transform: uppercase; }
.profile-page .profile-info p { overflow: hidden; margin: 0; color: var(--app-page-ink); font-size: .82rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.profile-page .profile-tabs { gap: 4px; margin: 0; padding: 4px; border: 1px solid var(--app-page-line); border-radius: 12px; background: var(--app-page-canvas); }
.profile-page .profile-tabs .nav-link { padding: 10px 15px; border: 0; border-radius: 8px; color: var(--app-page-muted); font-size: .78rem; font-weight: 680; }
.profile-page .profile-tabs .nav-link:hover { background: var(--app-page-surface); color: var(--app-page-ink); }
.profile-page .profile-tabs .nav-link.active { border: 0; background: var(--app-page-surface); color: var(--app-page-green-dark); box-shadow: 0 1px 5px rgba(15, 38, 23, .08); }
.profile-page .profile-tab-content { padding-top: 30px; }
.profile-page .section-title { margin: 28px 0 16px; padding: 0 0 9px; border-bottom: 1px solid var(--app-page-line); color: var(--app-page-ink); font-size: .76rem; font-weight: 760; letter-spacing: .055em; text-transform: uppercase; }
.profile-page .section-title:first-child { margin-top: 0; }
.profile-page .section-title i { color: var(--app-page-green); }
.profile-page .form-label { color: var(--app-page-ink); font-size: .78rem; font-weight: 680; }
.profile-page .form-control,
.profile-page .form-select { min-height: 46px; padding: 10px 13px; border: 1px solid var(--app-page-line); border-radius: 10px; background: var(--app-page-surface); color: var(--app-page-ink); }
.profile-page textarea.form-control { min-height: 116px; }
.profile-page .form-control:focus,
.profile-page .form-select:focus { border-color: var(--app-page-green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--app-page-green) 16%, transparent); }
.profile-page .form-check-input:checked { border-color: var(--app-page-green); background-color: var(--app-page-green); }
.profile-page .form-text { color: var(--app-page-muted); font-size: .72rem; }
.profile-page .zakelijk-fields,
.profile-page .preview-section { padding: 18px; border: 1px solid var(--app-page-line); border-radius: 12px; background: var(--app-page-canvas); }
.profile-page .preview-section h6 { color: var(--app-page-ink); font-size: .75rem; }
.profile-page .preview-name { color: var(--app-page-green-dark); font-weight: 720; }
.profile-page .profile-photo-preview { width: 80px; height: 80px; border: 2px solid var(--app-page-line); background: var(--app-page-canvas); }
.profile-page .btn-profile,
.profile-page .btn-secondary-profile { min-height: 44px; padding: 10px 18px; border-radius: 10px; font-size: .78rem; font-weight: 700; transform: none; box-shadow: none; }
.profile-page .btn-profile { border: 1px solid var(--app-page-green); background: var(--app-page-green); color: #fff; }
.profile-page .btn-profile:hover { border-color: var(--app-page-green-dark); background: var(--app-page-green-dark); color: #fff; transform: none; box-shadow: none; }
.profile-page .btn-secondary-profile { border: 1px solid var(--app-page-line); background: var(--app-page-surface); color: var(--app-page-green-dark); }
.profile-page .btn-secondary-profile:hover { border-color: var(--app-page-green); background: var(--app-page-green-soft); color: var(--app-page-green-dark); transform: none; box-shadow: none; }
.profile-page .alert-custom { border: 1px solid var(--app-page-line); border-radius: 10px; }

@media (max-width: 900px) {
    .announcements-page .announcements-layout { grid-template-columns: 1fr; }
    .announcements-page .announcements-filters { position: static; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .contact-page .contact-layout { grid-template-columns: 1fr; }
    .community-category { grid-template-columns: 48px minmax(0, 1fr) !important; }
    .community-category-stats { grid-column: 2; justify-content: flex-start; }
    .community-last-activity { grid-column: 2; padding: 0; border: 0; }
    .recipe-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .recipe-frozen-grid { grid-template-columns: repeat(2, 1fr); }
    .recipe-workspace-page .sidebar-card,
    .recipe-workspace-page .plant-index-card { position: static; margin-bottom: 16px; }
}

@media (max-width: 768px) {
    .app-navbar.navbar { padding: 0 8px; }
    .app-navbar .navbar-brand { flex-basis: 145px; margin-right: 2px; }
    .app-navbar .logo-img { max-width: min(145px, 100%); }
    .app-navbar-user-copy .subscription-badge-dropdown { display: none !important; }
    #sidebar.app-sidebar {
        margin-left: -250px;
        z-index: 1035;
        box-shadow: 18px 0 45px rgba(9, 24, 15, .22);
    }
    #sidebar.app-sidebar.mobile-open { margin-left: 0; }
    #content.app-content,
    #content.app-content.initial-load,
    #content.app-content.expanded { margin-left: 0; padding: 16px; }
    #content.app-content:has(.app-page),
    #content.app-content:has(.docs-shell),
    #content.app-content:has(.planner-page),
    #content.app-content:has(.visualization-page),
    #content.app-content:has(.homepage-redesign) { padding: 0; }
    .site-footer { margin: 42px -16px -16px; }
}

@media (max-width: 575.98px) {
    .app-navbar-user-copy { display: none !important; }
    .app-navbar-user-toggle {
        width: 44px;
        height: 44px;
        justify-content: center;
        padding: 0;
    }
    .app-navbar-user-toggle .main-menu-icon { margin-right: 0; }
}

@media (max-width: 650px) {
    .app-page { margin: 0; padding: 20px 14px 60px; }
    .app-page-hero { align-items: flex-start; flex-direction: column; padding: 28px 22px; }
    .app-page-hero::after { opacity: .45; }
    .announcements-page .announcements-filters { grid-template-columns: 1fr; }
    .community-category { padding: 17px !important; }
    .community-category-stats { gap: 18px; }
    .community-last-activity { display: none; }
    .announcements-page .announcement-card .d-flex.justify-content-between { align-items: flex-start !important; flex-direction: column; gap: 12px; }
    .recipe-library-toolbar { align-items: flex-start; flex-direction: column; }
    .recipe-grid { grid-template-columns: 1fr; }
    .recipe-view-toggle { display: none; }
    .recipe-card-main > p { min-height: 0; }
    .recipe-frozen-section > header, .recipe-upgrade-note { align-items: flex-start; flex-direction: column; }
    .recipe-frozen-grid { grid-template-columns: 1fr; }
    .recipe-detail-page .recipe-header { padding: 25px 20px; }
    .recipe-detail-content .action-buttons { align-items: stretch; flex-direction: column; }
    .recipe-workspace-page > .row.mb-4 { padding: 22px 18px; }
    .recipe-workspace-page > .row.mb-4 .d-flex { align-items: flex-start !important; flex-direction: column; gap: 14px; }
    .recipe-workspace-page > .row.mb-4 .btn-group { width: 100%; }
    .recipe-workspace-page > .row.mb-4 .btn { flex: 1; }
    .recipe-purchase-page .action-buttons { justify-content: stretch; }
    .recipe-purchase-page .action-buttons .btn-group { width: 100%; }
    .recipe-personalize-page > form { padding: 20px 15px; }
    .auth-page.login-container,
    .auth-page.signup-container,
    .auth-page.success-container,
    .auth-page.logout-container { align-items: flex-start; padding: 18px 12px 40px; }
    .auth-page .login-header,
    .auth-page .signup-header,
    .auth-page .success-header { padding: 27px 22px 23px; }
    .auth-page .logout-header { padding: 27px 22px 23px; }
    .auth-page .login-body,
    .auth-page .signup-body,
    .auth-page .success-body { padding: 24px 19px; }
    .auth-page .logout-body { padding: 24px 19px; }
    .signup-page .signup-body .row { row-gap: 14px; }
    .signup-success-page .success-body > .d-flex { align-items: stretch; }
    .logout-page .logout-actions { flex-direction: column; }
    .profile-page.profile-container { padding: 18px 12px 42px; }
    .profile-page .profile-header { align-items: flex-start; flex-direction: column; padding: 24px 20px; }
    .profile-page .profile-identity { align-items: flex-start; }
    .profile-page .user-avatar { width: 58px; height: 58px; flex-basis: 58px; font-size: 1.35rem; }
    .profile-page .profile-public-link { width: 100%; justify-content: center; }
    .profile-page .profile-body { padding: 20px 16px; }
    .profile-page .profile-stat { border-bottom: 1px solid var(--app-page-line); }
    .profile-page .profile-stat:nth-child(2) { border-right: 0; }
    .profile-page .profile-stat:nth-last-child(-n+2) { border-bottom: 0; }
    .profile-page .profile-tabs { overflow-x: auto; flex-wrap: nowrap; }
    .profile-page .profile-tabs .nav-link { padding: 9px 11px; }
    .profile-page .tab-pane form > .d-flex.justify-content-between { align-items: stretch; flex-direction: column; gap: 8px; }
    .profile-page .tab-pane form > .d-flex.justify-content-between .btn { width: 100%; justify-content: center; }
    .plant-library-page .plant-library-heading { padding: 23px 19px; }
    .plant-library-page .plant-library-heading > .col-12 > .d-flex { align-items: stretch !important; }
    .plant-library-page .plant-library-heading .d-flex.gap-2 { width: 100%; }
    .plant-library-page .plant-library-heading .d-flex.gap-2 .btn { flex: 1; }
    .plant-library-page .layer-nav-sticky { top: calc(var(--topbar-height) + 4px); border-radius: 10px; }
    .plant-library-page .plant-catalogue-panel > .card-body { padding: 16px !important; }
    .plant-library-page .plant-link { min-height: 82px; }
    .plant-record-page .plant-record-header > .d-flex { align-items: flex-start !important; flex-direction: column; gap: 18px; }
    .plant-record-page .plant-back-button { width: 100%; }
    .plant-record-page .plant-record-shell > .card-body { padding: 16px; }
    .plant-record-page .detail-item { grid-template-columns: 1fr; gap: 4px; }
    .plant-record-page .plant-recipe-panel .input-group { align-items: stretch; flex-direction: column; gap: 8px; }
    .plant-record-page .plant-recipe-panel .input-group > * { width: 100%; border-radius: 9px !important; }
    .plant-search-page .plant-filter-panel > .card-header { align-items: flex-start; flex-direction: column; }
    .plant-search-page .plant-filter-panel > .card-body { padding: 17px; }
    .plant-search-page .recipe-workbench { position: static; }
    .plant-search-page .recipe-workbench .input-group { align-items: stretch; flex-direction: column; gap: 7px; }
    .plant-search-page .recipe-workbench .input-group > * { width: 100%; border-radius: 9px !important; }
    .plant-search-page .recipe-workbench .btn-group { display: grid; grid-template-columns: repeat(3, 1fr); }
    .plant-search-page .plant-details { --bs-gutter-x: 18px; }
    .plant-search-page .plant-search-results-header { align-items: flex-start; }
    .cultivar-page .cultivar-page-hero { padding: 22px 18px; }
    .cultivar-page .cultivar-page-hero > .col-12 > .d-flex { align-items: stretch !important; flex-direction: column; }
    .cultivar-page .cultivar-page-hero .d-flex.align-items-center { align-items: stretch !important; flex-direction: column; gap: 8px; }
    .cultivar-page .cultivar-page-hero .btn { width: 100%; }
    .cultivar-page .list-group-item .row { gap: 14px; }
    .cultivar-page .list-group-item .text-end { text-align: left !important; }
    .cultivar-page .list-group-item .btn-group { display: grid; grid-template-columns: repeat(3, 1fr); width: 100%; }
    .cultivar-form-page .form-container { padding: 15px; }
    .cultivar-form-page .cultivar-header-actions,
    .cultivar-form-page .cultivar-back-link { width: 100%; }
    .cultivar-form-page :is(.form-section, .description-section, .dimensions-section) { padding: 16px; }
    .cultivar-form-page .cultivar-form-actions { display: grid; grid-template-columns: 1fr; width: 100%; gap: 7px; }
    .cultivar-form-page .cultivar-form-actions .btn { width: 100%; }
    .cultivar-detail-page .cultivar-card > .card-header > .d-flex { flex-direction: column; }
    .cultivar-detail-page .cultivar-card > .card-header > .d-flex > .d-flex { width: 100%; }
    .cultivar-detail-page .cultivar-card > .card-header .btn { flex: 1; }
    .cultivar-detail-page .plant-details p { grid-template-columns: 1fr; gap: 3px; }
    .cultivar-delete-page .delete-card-body .btn-group { display: grid; grid-template-columns: 1fr; gap: 7px; }
    .cultivar-wizard-modal .modal-dialog { margin: 8px; }
    .cultivar-wizard-modal .modal-body { padding: 18px 16px; }
    .cultivar-wizard-progress span { font-size: 0; }
    .cultivar-wizard-progress span b { font-size: .65rem; }
    .cultivar-wizard-plant { grid-template-columns: minmax(0, 1fr) auto; }
    .cultivar-wizard-plant em { display: none; }
    .cultivar-wizard-modal .modal-footer { align-items: stretch; flex-direction: column-reverse; }
    .cultivar-wizard-modal .modal-footer .btn { width: 100%; }
    .project-library-page .project-library-hero,
    .project-dashboard-page .project-dashboard-hero { padding: 22px 18px; }
    .project-library-page .project-library-hero > .col-12 > .d-flex,
    .project-dashboard-page .project-dashboard-hero > .col-12 > .d-flex { align-items: stretch !important; flex-direction: column; }
    .project-library-page .project-library-hero > .col-12 > .d-flex > .d-flex { align-items: stretch !important; flex-direction: column; width: 100%; }
    .project-library-page .project-library-hero .view-toggle { align-self: flex-start; flex-direction: row !important; width: auto; max-width: none; }
    .project-library-page .project-library-hero .btn:not(.view-toggle .btn) { width: 100%; }
    .project-dashboard-page .project-header-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
    .project-dashboard-page .project-header-actions .btn { justify-content: center; }
    .project-dashboard-page .project-header-actions .latest-plan-link { grid-column: 1 / -1; }
    .project-dashboard-page #map { height: 320px; }
    .project-dashboard-page .project-section-header { align-items: flex-start; flex-direction: column; }
    .project-dashboard-page .project-section-header .btn { width: 100%; }
    .project-dashboard-page .planting-plan-card .plan-actions { display: grid; grid-template-columns: 1fr auto; }
}

@media (prefers-reduced-motion: reduce) {
    .app-page .content-card, .app-page .announcement-card, .app-page .plan-card { transition: none; }
}

/* Email preferences and token-based subscription states */
.email-settings-page .email-settings-inner { max-width: 900px; }
.email-settings-page .email-settings-inner-narrow { max-width: 660px; padding-top: clamp(28px, 7vw, 72px); }
.email-settings-page .app-page-hero { margin-bottom: 20px; }
.email-settings-page .app-panel { border: 1px solid var(--app-page-line); border-radius: var(--app-page-radius); background: var(--app-page-surface); }
.email-preferences-form { padding: clamp(18px, 3vw, 30px); }
.email-preference-list { overflow: hidden; border: 1px solid var(--app-page-line); border-radius: 13px; }
.email-preference-item { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 14px; min-height: 94px; padding: 18px 20px; border-bottom: 1px solid var(--app-page-line); }
.email-preference-item:last-child { border-bottom: 0; }
.email-preference-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 11px; background: var(--app-page-green-soft); color: var(--app-page-green-dark); font-size: 1.05rem; }
.email-preference-copy label { display: block; margin-bottom: 4px; color: var(--app-page-ink); font-size: .95rem; font-weight: 720; cursor: pointer; }
.email-preference-copy p { margin: 0; color: var(--app-page-muted); font-size: .8rem; line-height: 1.55; }
.email-preference-copy .errorlist { margin: 7px 0 0; padding: 0; color: var(--bs-danger); font-size: .78rem; list-style: none; }
.email-preference-item .form-check { min-height: 0; margin: 0; padding-left: 3rem; }
.email-preference-item .form-check-input { width: 2.45rem; height: 1.35rem; margin-top: 0; border-color: var(--app-page-line); cursor: pointer; }
.email-preference-item .form-check-input:focus { border-color: var(--app-page-green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--app-page-green) 16%, transparent); }
.email-preference-item .form-check-input:checked { border-color: var(--app-page-green); background-color: var(--app-page-green); }
.email-essential-note { display: flex; align-items: flex-start; gap: 12px; margin-top: 20px; padding: 15px 16px; border-radius: 11px; background: var(--app-page-green-soft); color: var(--app-page-ink); }
.email-essential-note i { margin-top: 2px; color: var(--app-page-green-dark); }
.email-essential-note p { margin: 0; font-size: .8rem; line-height: 1.55; }
.email-settings-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 24px; }
.email-settings-actions form { margin: 0; }
.email-settings-actions .btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding-inline: 18px; }
.email-settings-actions-centered { justify-content: center; }
.email-status-card { padding: clamp(28px, 6vw, 52px); text-align: center; }
.email-status-card h1 { margin: 8px 0 12px; color: var(--app-page-ink); font-size: clamp(1.8rem, 4vw, 2.5rem); font-weight: 760; letter-spacing: -.035em; }
.email-status-card > p:not(.app-page-eyebrow, .email-status-help) { max-width: 540px; margin: 0 auto; color: var(--app-page-muted); line-height: 1.65; }
.email-status-card .email-essential-note { max-width: 520px; margin: 24px auto 0; text-align: left; }
.email-status-icon { display: grid; width: 58px; height: 58px; margin: 0 auto 18px; place-items: center; border-radius: 15px; background: var(--app-page-green-soft); color: var(--app-page-green-dark); font-size: 1.55rem; }
.email-status-icon-warning { background: color-mix(in srgb, #d98b1d 13%, var(--app-page-surface)); color: #9a5b08; }
.email-status-icon-danger { background: color-mix(in srgb, #dc3545 12%, var(--app-page-surface)); color: var(--bs-danger); }
.email-status-help { margin: 22px 0 0 !important; color: var(--app-page-muted); font-size: .78rem; }
.email-status-help a { color: var(--app-page-green-dark); font-weight: 650; }

@media (max-width: 650px) {
    .email-preference-item { grid-template-columns: 38px minmax(0, 1fr) auto; gap: 11px; padding: 15px 14px; }
    .email-preference-icon { width: 38px; height: 38px; }
    .email-settings-actions { align-items: stretch; flex-direction: column-reverse; }
    .email-settings-actions .btn, .email-settings-actions form, .email-settings-actions form .btn { width: 100%; }
}

/* Nursery supplier flow */
.nursery-page { background: var(--app-page-canvas); }
.nursery-page .app-page-inner { max-width: 1280px; }
.nursery-page .breadcrumb { color: var(--app-page-muted); font-size: .72rem; }
.nursery-page .breadcrumb a { color: var(--app-page-green); text-decoration: none; }
.nursery-page .btn { min-height: 40px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; border-radius: 9px; font-size: .73rem; font-weight: 700; }
.nursery-page .btn-success { border-color: var(--app-page-green); background: var(--app-page-green); color: #fff; }
.nursery-page .btn-success:hover { border-color: var(--app-page-green-dark); background: var(--app-page-green-dark); }
.nursery-page .btn-outline-secondary { border-color: var(--app-page-line); background: var(--app-page-surface); color: var(--app-page-muted); }
.nursery-page .btn-outline-secondary:hover { border-color: var(--app-page-green); background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.nursery-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 20px; padding: clamp(25px, 4vw, 40px); border: 1px solid var(--app-page-line); border-radius: 16px; background: linear-gradient(135deg, var(--app-page-surface), var(--app-page-green-soft)); }
.nursery-hero h1, .nursery-form-intro h1, .nursery-delete-card h1 { margin: 8px 0 7px; color: var(--app-page-ink); font-size: clamp(1.65rem, 3vw, 2.35rem); font-weight: 760; letter-spacing: -.04em; }
.nursery-hero p, .nursery-form-intro > p { max-width: 630px; margin: 0; color: var(--app-page-muted); font-size: .82rem; line-height: 1.65; }
.nursery-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 17px; padding: 10px; border: 1px solid var(--app-page-line); border-radius: 12px; background: var(--app-page-surface); }
.nursery-search { position: relative; width: min(480px, 100%); }
.nursery-search i { position: absolute; top: 50%; left: 12px; color: var(--app-page-muted); transform: translateY(-50%); }
.nursery-search input { width: 100%; min-height: 39px; padding: 8px 12px 8px 36px; border: 1px solid var(--app-page-line); border-radius: 9px; background: var(--app-page-canvas); color: var(--app-page-ink); font-size: .73rem; outline: 0; }
.nursery-search input:focus { border-color: var(--app-page-green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--app-page-green) 11%, transparent); }
.nursery-count { padding-right: 7px; color: var(--app-page-muted); font-size: .7rem; white-space: nowrap; }
.nursery-count strong { color: var(--app-page-ink); }
.nursery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }
.nursery-card { display: flex; min-width: 0; overflow: hidden; flex-direction: column; border: 1px solid var(--app-page-line); border-radius: 14px; background: var(--app-page-surface); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.nursery-card:hover { border-color: var(--app-page-green); box-shadow: 0 14px 30px rgba(27, 65, 43, .07); transform: translateY(-2px); }
.nursery-card[hidden] { display: none; }
.nursery-card-header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 16px 16px 13px; border-bottom: 1px solid var(--app-page-line); }
.nursery-mark { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; background: var(--app-page-green-soft); color: var(--app-page-green); }
.nursery-card-header h2 { overflow: hidden; margin: 0; color: var(--app-page-ink); font-size: .88rem; font-weight: 740; text-overflow: ellipsis; white-space: nowrap; }
.nursery-card-header p { margin: 2px 0 0; color: var(--app-page-muted); font-size: .65rem; }
.nursery-menu { display: grid; width: 32px; height: 32px; place-items: center; border: 0; border-radius: 8px; background: transparent; color: var(--app-page-muted); }
.nursery-menu:hover { background: var(--app-page-canvas); color: var(--app-page-ink); }
.nursery-card .dropdown-menu { padding: 5px; border-color: var(--app-page-line); border-radius: 10px; background: var(--app-page-surface); box-shadow: 0 12px 30px rgba(27, 65, 43, .12); }
.nursery-card .dropdown-item { display: flex; align-items: center; gap: 8px; padding: 8px 9px; border-radius: 7px; color: var(--app-page-ink); font-size: .7rem; }
.nursery-card-body { display: grid; align-content: start; flex: 1; gap: 11px; padding: 16px; }
.nursery-detail { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 8px; color: var(--app-page-ink); font-size: .72rem; line-height: 1.45; }
.nursery-detail span { min-width: 0; overflow-wrap: anywhere; }
.nursery-detail > i { margin-top: 2px; color: var(--app-page-green); }
.nursery-detail small { display: block; margin-bottom: 1px; color: var(--app-page-muted); font-size: .59rem; font-weight: 680; letter-spacing: .035em; text-transform: uppercase; }
.nursery-note { margin: 3px 0 0; padding: 10px 11px; border-radius: 9px; background: var(--app-page-canvas); color: var(--app-page-muted); font-size: .68rem; line-height: 1.55; }
.nursery-card-footer { display: flex; min-height: 49px; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 12px; border-top: 1px solid var(--app-page-line); background: color-mix(in srgb, var(--app-page-canvas) 70%, transparent); }
.nursery-contact-actions { display: flex; gap: 4px; }
.nursery-contact-actions a { display: inline-flex; min-height: 31px; align-items: center; gap: 5px; padding: 6px 8px; border-radius: 7px; color: var(--app-page-muted); font-size: .63rem; font-weight: 660; text-decoration: none; }
.nursery-contact-actions a:hover { background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.nursery-edit-link { display: inline-flex; align-items: center; gap: 5px; color: var(--app-page-green-dark); font-size: .65rem; font-weight: 720; text-decoration: none; white-space: nowrap; }
.nursery-edit-link i { transition: transform .16s ease; }
.nursery-edit-link:hover i { transform: translateX(2px); }
.nursery-empty, .nursery-no-results { padding: 65px 20px; border: 1px dashed var(--app-page-line); border-radius: 15px; background: var(--app-page-surface); text-align: center; }
.nursery-empty > span { display: grid; width: 58px; height: 58px; margin: 0 auto 15px; place-items: center; border-radius: 15px; background: var(--app-page-green-soft); color: var(--app-page-green); font-size: 1.35rem; }
.nursery-empty h2, .nursery-no-results h2 { margin: 0 0 7px; color: var(--app-page-ink); font-size: 1.05rem; }
.nursery-empty p, .nursery-no-results p { max-width: 480px; margin: 0 auto 18px; color: var(--app-page-muted); font-size: .75rem; line-height: 1.6; }
.nursery-no-results > i { display: block; margin-bottom: 10px; color: var(--app-page-line); font-size: 2rem; }
.nursery-no-results p { margin-bottom: 0; }

.nursery-form-layout { display: grid; grid-template-columns: minmax(250px, .7fr) minmax(0, 1.3fr); align-items: start; gap: clamp(25px, 5vw, 65px); }
.nursery-form-intro { position: sticky; top: 90px; padding: 28px 0; }
.nursery-form-tip { display: flex; gap: 10px; margin-top: 25px; padding: 13px; border: 1px solid var(--app-page-line); border-radius: 11px; background: var(--app-page-green-soft); color: var(--app-page-muted); font-size: .68rem; line-height: 1.5; }
.nursery-form-tip > i { color: var(--app-page-green); }
.nursery-form-tip strong { display: block; color: var(--app-page-ink); }
.nursery-form-card { overflow: hidden; border: 1px solid var(--app-page-line); border-radius: 15px; background: var(--app-page-surface); }
.nursery-form-card fieldset { margin: 0; padding: 22px; border: 0; border-bottom: 1px solid var(--app-page-line); }
.nursery-form-card legend { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; color: var(--app-page-ink); font-size: .78rem; font-weight: 740; }
.nursery-form-card legend > span:first-child { display: grid; width: 33px; height: 33px; place-items: center; border-radius: 9px; background: var(--app-page-green-soft); color: var(--app-page-green); }
.nursery-form-card legend small { display: block; margin-top: 2px; color: var(--app-page-muted); font-size: .6rem; font-weight: 500; }
.nursery-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.nursery-field { margin-bottom: 15px; }
.nursery-field:last-child { margin-bottom: 0; }
.nursery-field label { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; color: var(--app-page-ink); font-size: .68rem; font-weight: 690; }
.nursery-field label i { color: var(--app-page-green); }
.nursery-field label span { color: #a94343; }
.nursery-field .form-control { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid var(--app-page-line); border-radius: 9px; background: var(--app-page-canvas); color: var(--app-page-ink); font-size: .75rem; box-shadow: none; }
.nursery-field textarea.form-control { min-height: 82px; resize: vertical; }
.nursery-field .form-control:focus { border-color: var(--app-page-green); background: var(--app-page-surface); box-shadow: 0 0 0 3px color-mix(in srgb, var(--app-page-green) 11%, transparent); }
.nursery-field.has-error .form-control { border-color: #b54a4a; }
.nursery-field-error, .nursery-field .form-text { display: block; margin-top: 5px; color: var(--app-page-muted); font-size: .62rem; }
.nursery-field-error { color: #a33e3e; }
.nursery-form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 15px 22px; background: var(--app-page-canvas); }

.nursery-delete-page .app-page-inner { max-width: 760px; }
.nursery-delete-card { padding: clamp(28px, 6vw, 52px); border: 1px solid var(--app-page-line); border-radius: 16px; background: var(--app-page-surface); text-align: center; }
.nursery-delete-icon { display: grid; width: 58px; height: 58px; margin: 0 auto 16px; place-items: center; border-radius: 15px; background: #fff0ef; color: #a43d3d; font-size: 1.3rem; }
.nursery-delete-card > p { max-width: 520px; margin: 0 auto; color: var(--app-page-muted); font-size: .8rem; line-height: 1.65; }
.nursery-delete-card > p strong { color: var(--app-page-ink); }
.nursery-delete-warning { display: flex; max-width: 530px; gap: 11px; margin: 24px auto; padding: 13px; border: 1px solid #efd1ce; border-radius: 11px; background: #fff8f7; color: #7c4b48; text-align: left; font-size: .69rem; line-height: 1.5; }
.nursery-delete-warning > i { color: #ae514a; }
.nursery-delete-warning strong { display: block; color: #7a3632; }
.nursery-delete-actions { display: flex; justify-content: center; gap: 8px; }
.nursery-delete-actions .btn-danger { border-color: #a43d3d; background: #a43d3d; }

@media (max-width: 991.98px) {
    .nursery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .nursery-form-layout { grid-template-columns: 1fr; gap: 15px; }
    .nursery-form-intro { position: static; padding: 0; }
}
@media (max-width: 650px) {
    .nursery-hero { align-items: stretch; flex-direction: column; }
    .nursery-toolbar { align-items: stretch; flex-direction: column; }
    .nursery-count { padding: 0 3px; }
    .nursery-grid { grid-template-columns: 1fr; }
    .nursery-contact-actions a span { display: none; }
    .nursery-form-grid { grid-template-columns: 1fr; gap: 0; }
    .nursery-form-card fieldset { padding: 19px 16px; }
    .nursery-form-actions, .nursery-delete-actions { align-items: stretch; flex-direction: column-reverse; }
    .nursery-form-actions .btn, .nursery-delete-actions .btn { width: 100%; }
}

/* Management dashboard */
.management-dashboard-page .app-page-inner { width: min(1240px, 100%); }
.management-dashboard-page [hidden] { display: none !important; }
.management-dashboard-page .management-dashboard-hero { align-items: center; }
.management-dashboard-page .management-dashboard-hero-actions {
    min-width: 190px;
    align-items: stretch;
    flex-direction: column;
}
.management-dashboard-page .management-dashboard-hero-actions .btn,
.management-dashboard-page .management-operation-actions .btn,
.management-dashboard-page .management-backup-actions .btn,
.management-dashboard-page .modal-footer .btn {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.management-dashboard-page .management-dashboard-section,
.management-dashboard-page .management-subscriptions-panel,
.management-dashboard-page .management-attention-panel { margin-bottom: 36px; }
.management-dashboard-page .management-section-kicker {
    display: block;
    margin-bottom: 5px;
    color: var(--app-page-muted);
    font-size: .66rem;
    font-weight: 760;
    letter-spacing: .075em;
    line-height: 1.3;
    text-transform: uppercase;
}
.management-dashboard-page .management-section-heading,
.management-dashboard-page .management-section-header,
.management-dashboard-page .management-operation-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}
.management-dashboard-page .management-section-heading { margin-bottom: 16px; }
.management-dashboard-page .management-section-heading h2,
.management-dashboard-page .management-section-header h2,
.management-dashboard-page .management-section-header h3,
.management-dashboard-page .management-operation-header h3 {
    margin: 0;
    color: var(--app-page-ink);
    font-size: clamp(1.25rem, 2.2vw, 1.55rem);
    font-weight: 740;
    letter-spacing: -.025em;
}
.management-dashboard-page .management-section-heading > p,
.management-dashboard-page .management-backup-header > div > p {
    max-width: 510px;
    margin: 0;
    color: var(--app-page-muted);
    font-size: .84rem;
    line-height: 1.55;
    text-align: right;
}
.management-dashboard-page .management-section-header { align-items: center; }
.management-dashboard-page .management-section-header > .btn { min-height: 44px; }

.management-dashboard-page .management-attention-panel {
    overflow: hidden;
    border-color: color-mix(in srgb, var(--bs-warning) 38%, var(--app-page-line)) !important;
}
.management-dashboard-page .management-count-badge {
    min-width: 30px;
    min-height: 30px;
    display: grid;
    place-items: center;
    padding: 4px 9px;
    border: 1px solid color-mix(in srgb, var(--bs-warning) 45%, var(--app-page-line));
    border-radius: 999px;
    background: color-mix(in srgb, var(--bs-warning) 12%, var(--app-page-surface));
    color: var(--bs-warning-text-emphasis);
    font-size: .76rem;
    font-weight: 760;
}
.management-dashboard-page .management-attention-list { padding: 8px 20px; }
.management-dashboard-page .management-attention-item {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 15px 0;
    border-bottom: 1px solid var(--app-page-line);
}
.management-dashboard-page .management-attention-item:last-child { border-bottom: 0; }
.management-dashboard-page .management-attention-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: 1px solid var(--app-page-line);
    border-radius: 10px;
    background: var(--app-page-canvas);
    color: var(--app-page-muted);
}
.management-dashboard-page .management-attention-item.is-danger .management-attention-icon {
    border-color: color-mix(in srgb, var(--bs-danger) 34%, var(--app-page-line));
    background: color-mix(in srgb, var(--bs-danger) 9%, var(--app-page-surface));
    color: var(--bs-danger-text-emphasis);
}
.management-dashboard-page .management-attention-item.is-warning .management-attention-icon {
    border-color: color-mix(in srgb, var(--bs-warning) 42%, var(--app-page-line));
    background: color-mix(in srgb, var(--bs-warning) 11%, var(--app-page-surface));
    color: var(--bs-warning-text-emphasis);
}
.management-dashboard-page .management-attention-item.is-info .management-attention-icon {
    border-color: color-mix(in srgb, var(--app-page-green) 30%, var(--app-page-line));
    background: var(--app-page-green-soft);
    color: var(--app-page-green-dark);
}
.management-dashboard-page .management-attention-item h3 {
    margin: 0 0 3px;
    color: var(--app-page-ink);
    font-size: .9rem;
    font-weight: 720;
}
.management-dashboard-page .management-attention-item p {
    margin: 0;
    color: var(--app-page-muted);
    font-size: .78rem;
    line-height: 1.5;
}
.management-dashboard-page .management-attention-level {
    color: var(--app-page-muted);
    font-size: .67rem;
    font-weight: 720;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.management-dashboard-page .management-metric-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}
.management-dashboard-page a.management-metric-card {
    position: relative;
    min-width: 0;
    min-height: 190px;
    display: flex;
    padding: 20px;
    color: var(--app-page-ink) !important;
    flex-direction: column;
    text-decoration: none;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.management-dashboard-page a.management-metric-card:hover {
    border-color: color-mix(in srgb, var(--app-page-green) 55%, var(--app-page-line)) !important;
    box-shadow: var(--app-page-shadow) !important;
    transform: translateY(-2px);
}
.management-dashboard-page a.management-metric-card:focus-visible,
.management-dashboard-page .management-tool-list a:focus-visible,
.management-dashboard-page .btn:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--app-page-green) 30%, transparent);
    outline-offset: 3px;
}
.management-dashboard-page .management-metric-icon,
.management-dashboard-page .management-tool-group-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: var(--app-page-green-soft);
    color: var(--app-page-green-dark);
    font-size: 1.05rem;
}
.management-dashboard-page .management-metric-label {
    margin-top: 16px;
    color: var(--app-page-muted);
    font-size: .72rem;
    font-weight: 710;
    letter-spacing: .035em;
}
.management-dashboard-page .management-metric-value {
    overflow: hidden;
    margin: 2px 0 16px;
    color: var(--app-page-ink);
    font-size: clamp(1.55rem, 2.3vw, 2rem);
    font-weight: 760;
    letter-spacing: -.04em;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.management-dashboard-page .management-metric-action {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: auto;
    color: var(--app-page-green-dark);
    font-size: .7rem;
    font-weight: 710;
}
.management-dashboard-page .management-metric-action i,
.management-dashboard-page .management-tool-list a > i { transition: transform .18s ease; }
.management-dashboard-page a.management-metric-card:hover .management-metric-action i,
.management-dashboard-page .management-tool-list a:hover > i { transform: translateX(3px); }

.management-dashboard-page .management-country-panel { overflow: hidden; }
.management-dashboard-page .management-country-header { align-items: center; }
.management-dashboard-page .management-country-header > div { min-width: 0; }
.management-dashboard-page .management-country-intro {
    max-width: 680px;
    margin: 6px 0 0;
    color: var(--app-page-muted);
    font-size: .78rem;
    line-height: 1.55;
}
.management-dashboard-page .management-country-total {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 11px;
    border: 1px solid color-mix(in srgb, var(--app-page-green) 32%, var(--app-page-line));
    border-radius: 999px;
    background: var(--app-page-green-soft);
    color: var(--app-page-green-dark);
    font-size: .7rem;
    font-weight: 680;
    line-height: 1.25;
    white-space: nowrap;
}
.management-dashboard-page .management-country-total i { font-size: .82rem; }
.management-dashboard-page .management-country-total strong { font-size: .78rem; font-weight: 780; }
.management-dashboard-page .management-country-body { padding: 20px; }
.management-dashboard-page .management-country-layout {
    display: grid;
    grid-template-columns: minmax(0, 2.2fr) minmax(260px, .8fr);
    gap: 16px;
    height: clamp(340px, 36vw, 455px);
}
.management-dashboard-page .management-country-map-shell,
.management-dashboard-page .management-country-list-panel {
    min-width: 0;
    min-height: 0;
    border: 1px solid var(--app-page-line);
    border-radius: 13px;
    background: var(--app-page-canvas);
}
.management-dashboard-page .management-country-map-shell {
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.management-dashboard-page .management-country-map-stage {
    position: relative;
    min-height: 0;
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    padding: 12px 14px 8px;
    background:
        radial-gradient(circle at 50% 44%, color-mix(in srgb, var(--app-page-green) 8%, transparent), transparent 58%),
        var(--app-page-surface);
}
.management-dashboard-page .management-country-map {
    width: 100%;
    height: 100%;
    display: block;
}
.management-dashboard-page .management-country-shape {
    fill: color-mix(in srgb, var(--app-page-muted) 21%, var(--app-page-surface));
    stroke: var(--app-page-surface);
    stroke-linejoin: round;
    stroke-width: .72px;
    vector-effect: non-scaling-stroke;
    transition: fill .16s ease, stroke .16s ease, stroke-width .16s ease;
}
.management-dashboard-page .management-country-shape.has-projects {
    fill: var(--app-page-green);
    cursor: help;
    stroke: color-mix(in srgb, var(--app-page-green-dark) 45%, var(--app-page-surface));
}
.management-dashboard-page .management-country-shape.is-map-active {
    fill: var(--app-page-map-active);
    stroke: var(--app-page-map-active-dark);
    stroke-width: 1.4px;
}
.management-dashboard-page .management-country-shape.has-projects.is-map-active {
    fill: var(--app-page-map-active);
    stroke: var(--app-page-map-active-dark);
}
.management-dashboard-page .management-country-marker {
    stroke-width: 1.2px;
    transform-box: fill-box;
    transform-origin: center;
}
.management-dashboard-page .management-country-marker.has-projects,
.management-dashboard-page .management-country-marker.is-map-active {
    transform: scale(1.65);
}
.management-dashboard-page .management-country-map-tooltip {
    position: absolute;
    z-index: 2;
    min-width: 126px;
    max-width: 210px;
    padding: 8px 10px;
    border: 1px solid color-mix(in srgb, var(--app-page-surface) 20%, transparent);
    border-radius: 9px;
    background: var(--app-page-ink);
    box-shadow: 0 10px 28px rgba(17, 33, 23, .22);
    color: var(--app-page-surface);
    line-height: 1.35;
    pointer-events: none;
    transform: translate(-50%, calc(-100% - 10px));
}
.management-dashboard-page .management-country-map-tooltip strong,
.management-dashboard-page .management-country-map-tooltip span { display: block; }
.management-dashboard-page .management-country-map-tooltip strong {
    overflow: hidden;
    font-size: .74rem;
    font-weight: 730;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.management-dashboard-page .management-country-map-tooltip span {
    margin-top: 2px;
    color: color-mix(in srgb, var(--app-page-surface) 78%, transparent);
    font-size: .66rem;
}
.management-dashboard-page .management-country-map-legend {
    min-height: 42px;
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 9px 13px;
    border-top: 1px solid var(--app-page-line);
    background: var(--app-page-canvas);
    color: var(--app-page-muted);
    font-size: .67rem;
    font-weight: 650;
}
.management-dashboard-page .management-country-map-swatch {
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    border: 1px solid color-mix(in srgb, var(--app-page-green-dark) 50%, var(--app-page-surface));
    border-radius: 3px;
    background: var(--app-page-green);
}
.management-dashboard-page .management-country-map-hint {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-left: auto;
    font-weight: 560;
    white-space: nowrap;
}
.management-dashboard-page .management-country-map-expand {
    min-height: 31px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 9px;
    border-radius: 8px;
    font-size: .66rem;
    font-weight: 690;
    white-space: nowrap;
}
.management-dashboard-page .management-country-list-panel {
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: var(--app-page-surface);
}
.management-dashboard-page .management-country-list-header {
    min-height: 68px;
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--app-page-line);
}
.management-dashboard-page .management-country-list-header h3 {
    margin: 2px 0 0;
    color: var(--app-page-ink);
    font-size: .88rem;
    font-weight: 720;
}
.management-dashboard-page .management-country-list-header > span {
    color: var(--app-page-muted);
    font-size: .65rem;
    font-weight: 670;
    white-space: nowrap;
}
.management-dashboard-page .management-country-list-scroll {
    min-height: 0;
    overflow-y: auto;
    flex: 1 1 auto;
    overscroll-behavior: contain;
    scrollbar-color: color-mix(in srgb, var(--app-page-green) 45%, var(--app-page-line)) transparent;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
}
.management-dashboard-page .management-country-list-scroll:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--app-page-green) 28%, transparent);
    outline-offset: -3px;
}
.management-dashboard-page .management-country-list {
    margin: 0;
    padding: 6px 7px;
    list-style: none;
}
.management-dashboard-page .management-country-item {
    min-width: 0;
    min-height: 62px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
    padding: 10px;
    border-radius: 9px;
    transition: background .16s ease;
}
.management-dashboard-page .management-country-item + .management-country-item { border-top: 1px solid var(--app-page-line); }
.management-dashboard-page .management-country-item:hover,
.management-dashboard-page .management-country-item:focus-visible,
.management-dashboard-page .management-country-item.is-map-active {
    outline: none;
    background: var(--app-page-green-soft);
}
.management-dashboard-page .management-country-copy { min-width: 0; }
.management-dashboard-page .management-country-copy strong,
.management-dashboard-page .management-country-copy small { display: block; }
.management-dashboard-page .management-country-copy strong {
    overflow: hidden;
    color: var(--app-page-ink);
    font-size: .82rem;
    font-weight: 710;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.management-dashboard-page .management-country-copy small {
    margin-top: 3px;
    color: var(--app-page-muted);
    font-size: .64rem;
    letter-spacing: .025em;
}
.management-dashboard-page .management-country-project-count {
    padding: 4px 8px;
    border: 1px solid var(--app-page-line);
    border-radius: 999px;
    background: var(--app-page-surface);
    color: var(--app-page-muted);
    font-size: .66rem;
    font-weight: 700;
    white-space: nowrap;
}
.management-dashboard-page .management-country-item.is-map-active .management-country-project-count {
    border-color: color-mix(in srgb, var(--app-page-green) 38%, var(--app-page-line));
    background: var(--app-page-surface);
    color: var(--app-page-green-dark);
}
.management-dashboard-page .management-country-data-note {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 16px 2px 0;
    color: var(--app-page-muted);
    font-size: .69rem;
    line-height: 1.5;
}
.management-dashboard-page .management-country-data-note i {
    margin-top: 2px;
    color: var(--app-page-green-dark);
}
.management-dashboard-page .management-country-data-note strong {
    color: var(--app-page-ink);
    font-weight: 690;
}
.management-dashboard-page .management-country-empty-state {
    min-height: 0;
    flex: 1 1 auto;
}
.management-dashboard-page .management-country-empty-state h3 {
    margin: 0 0 5px;
    color: var(--app-page-ink);
    font-size: .9rem;
    font-weight: 720;
}

.management-dashboard-page .management-tool-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: 16px;
}
.management-dashboard-page .management-tool-group { overflow: hidden; }
.management-dashboard-page .management-tool-group-header {
    min-height: 145px;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 20px;
    border-bottom: 1px solid var(--app-page-line);
}
.management-dashboard-page .management-tool-group-header h3 {
    margin: 1px 0 5px;
    color: var(--app-page-ink);
    font-size: 1rem;
    font-weight: 730;
}
.management-dashboard-page .management-tool-group-header p {
    margin: 0;
    color: var(--app-page-muted);
    font-size: .77rem;
    line-height: 1.5;
}
.management-dashboard-page .management-tool-group-icon { flex: 0 0 42px; }
.management-dashboard-page .management-tool-list {
    margin: 0;
    padding: 6px 10px 10px;
    list-style: none;
}
.management-dashboard-page .management-tool-list li { border-bottom: 1px solid var(--app-page-line); }
.management-dashboard-page .management-tool-list li:last-child { border-bottom: 0; }
.management-dashboard-page .management-tool-list a {
    min-height: 62px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px;
    border-radius: 9px;
    color: var(--app-page-ink) !important;
    text-decoration: none;
}
.management-dashboard-page .management-tool-list a:hover { background: var(--app-page-green-soft); }
.management-dashboard-page .management-tool-list a > span { min-width: 0; }
.management-dashboard-page .management-tool-list strong,
.management-dashboard-page .management-tool-list small { display: block; }
.management-dashboard-page .management-tool-list strong { font-size: .82rem; font-weight: 690; }
.management-dashboard-page .management-tool-list small {
    overflow: hidden;
    margin-top: 2px;
    color: var(--app-page-muted);
    font-size: .68rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.management-dashboard-page .management-tool-list a > i { color: var(--app-page-green-dark); font-size: .72rem; }

.management-dashboard-page .management-subscriptions-panel { overflow: hidden; }
.management-dashboard-page .management-subscription-grid {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
}
.management-dashboard-page .management-subscription-grid > section { min-width: 0; padding: 24px; }
.management-dashboard-page .management-subscription-grid > section + section { border-left: 1px solid var(--app-page-line); }
.management-dashboard-page .management-subscription-grid h3 {
    margin: 0 0 16px;
    color: var(--app-page-ink);
    font-size: .92rem;
    font-weight: 720;
}
.management-dashboard-page .management-plan-list,
.management-dashboard-page .management-subscription-list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.management-dashboard-page .management-plan-list li {
    min-height: 52px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 8px 0;
    border-bottom: 1px solid var(--app-page-line);
    color: var(--app-page-muted);
    font-size: .82rem;
}
.management-dashboard-page .management-plan-list li:last-child { border-bottom: 0; }
.management-dashboard-page .management-plan-list strong {
    min-width: 30px;
    padding: 4px 9px;
    border-radius: 999px;
    background: var(--app-page-green-soft);
    color: var(--app-page-green-dark);
    font-size: .74rem;
    text-align: center;
}
.management-dashboard-page .management-subscription-list li {
    min-height: 66px;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px solid var(--app-page-line);
}
.management-dashboard-page .management-subscription-list li:last-child { border-bottom: 0; }
.management-dashboard-page .management-subscription-avatar {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--app-page-green-soft);
    color: var(--app-page-green-dark);
    font-size: .78rem;
    font-weight: 750;
}
.management-dashboard-page .management-subscription-copy,
.management-dashboard-page .management-subscription-meta { min-width: 0; }
.management-dashboard-page .management-subscription-copy strong,
.management-dashboard-page .management-subscription-copy small,
.management-dashboard-page .management-subscription-meta time { display: block; }
.management-dashboard-page .management-subscription-copy strong {
    overflow: hidden;
    color: var(--app-page-ink);
    font-size: .8rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.management-dashboard-page .management-subscription-copy small,
.management-dashboard-page .management-subscription-meta time { color: var(--app-page-muted); font-size: .68rem; }
.management-dashboard-page .management-subscription-meta { text-align: right; }
.management-dashboard-page .management-subscription-meta time { margin-top: 4px; }
.management-dashboard-page .management-subscription-status,
.management-dashboard-page .management-status-pill,
.management-dashboard-page .management-backup-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 8px;
    border: 1px solid var(--app-page-line);
    border-radius: 999px;
    font-size: .66rem;
    font-weight: 720;
    line-height: 1.3;
    white-space: nowrap;
}
.management-dashboard-page .management-subscription-status.is-ok,
.management-dashboard-page .management-status-pill.is-ok,
.management-dashboard-page .management-backup-status.is-ok {
    border-color: color-mix(in srgb, var(--app-page-green) 30%, var(--app-page-line));
    background: var(--app-page-green-soft);
    color: var(--app-page-green-dark);
}
.management-dashboard-page .management-subscription-status.is-warning,
.management-dashboard-page .management-status-pill.is-warning,
.management-dashboard-page .management-backup-status.is-warning {
    border-color: color-mix(in srgb, var(--bs-warning) 42%, var(--app-page-line));
    background: color-mix(in srgb, var(--bs-warning) 12%, var(--app-page-surface));
    color: var(--bs-warning-text-emphasis);
}
.management-dashboard-page .management-subscription-status.is-neutral,
.management-dashboard-page .management-backup-status.is-neutral {
    background: var(--app-page-canvas);
    color: var(--app-page-muted);
}
.management-dashboard-page .management-backup-status.is-danger {
    border-color: color-mix(in srgb, var(--bs-danger) 34%, var(--app-page-line));
    background: color-mix(in srgb, var(--bs-danger) 9%, var(--app-page-surface));
    color: var(--bs-danger-text-emphasis);
}

.management-dashboard-page .management-empty-state {
    min-height: 190px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 26px 20px;
    border: 1px dashed var(--app-page-line);
    border-radius: 12px;
    background: var(--app-page-canvas);
    text-align: center;
    flex-direction: column;
}
.management-dashboard-page .management-empty-state > i {
    margin-bottom: 11px;
    color: var(--app-page-muted);
    font-size: 1.55rem;
}
.management-dashboard-page .management-empty-state h4 {
    margin: 0 0 5px;
    color: var(--app-page-ink);
    font-size: .9rem;
    font-weight: 720;
}
.management-dashboard-page .management-empty-state p {
    max-width: 430px;
    margin: 0;
    color: var(--app-page-muted);
    font-size: .76rem;
    line-height: 1.5;
}
.management-dashboard-page .management-empty-state .btn { min-height: 44px; margin-top: 16px; }
.management-dashboard-page .management-loading-state .spinner-border { margin-bottom: 13px; color: var(--app-page-green); }

.management-dashboard-page .management-operations-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 16px;
}
.management-dashboard-page .management-operation-panel { overflow: hidden; }
.management-dashboard-page .management-operation-header { align-items: center; }
.management-dashboard-page .management-operation-header .btn { min-height: 44px; }
.management-dashboard-page .management-operation-body { display: flex; min-height: 320px; padding: 22px; flex-direction: column; }
.management-dashboard-page .management-operation-intro {
    margin: 0 0 18px;
    color: var(--app-page-muted);
    font-size: .84rem;
    line-height: 1.55;
}
.management-dashboard-page .management-maintenance-details {
    padding: 16px;
    border: 1px solid var(--app-page-line);
    border-radius: 11px;
    background: var(--app-page-canvas);
}
.management-dashboard-page .management-detail-label {
    display: block;
    margin-bottom: 5px;
    color: var(--app-page-muted);
    font-size: .65rem;
    font-weight: 740;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.management-dashboard-page .management-maintenance-details > p {
    margin: 0;
    color: var(--app-page-ink);
    font-size: .78rem;
    line-height: 1.55;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}
.management-dashboard-page .management-maintenance-details .management-maintenance-time,
.management-dashboard-page .management-maintenance-details .management-maintenance-meta {
    margin-top: 9px;
    color: var(--app-page-muted);
    font-size: .7rem;
}
.management-dashboard-page .management-operation-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: auto;
    padding-top: 20px;
}
.management-dashboard-page .management-health-timestamp {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 15px;
    color: var(--app-page-muted);
    font-size: .72rem;
}
.management-dashboard-page .management-health-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.management-dashboard-page .management-health-item {
    min-width: 0;
    min-height: 76px;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 13px;
    border: 1px solid var(--app-page-line);
    border-radius: 11px;
    background: var(--app-page-canvas);
}
.management-dashboard-page .management-health-icon {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    flex: 0 0 34px;
    border-radius: 9px;
    background: var(--app-page-surface);
    color: var(--app-page-muted);
}
.management-dashboard-page .management-health-item.is-ok .management-health-icon { background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.management-dashboard-page .management-health-item.is-warning .management-health-icon {
    background: color-mix(in srgb, var(--bs-warning) 13%, var(--app-page-surface));
    color: var(--bs-warning-text-emphasis);
}
.management-dashboard-page .management-health-item.is-danger .management-health-icon {
    background: color-mix(in srgb, var(--bs-danger) 9%, var(--app-page-surface));
    color: var(--bs-danger-text-emphasis);
}
.management-dashboard-page .management-health-item strong,
.management-dashboard-page .management-health-item small { display: block; }
.management-dashboard-page .management-health-item strong { color: var(--app-page-ink); font-size: .76rem; font-weight: 710; }
.management-dashboard-page .management-health-item small { margin-top: 3px; color: var(--app-page-muted); font-size: .68rem; }

.management-dashboard-page .management-inline-feedback {
    margin-top: 16px;
    padding: 11px 13px;
    border: 1px solid var(--app-page-line);
    border-radius: 10px;
    background: var(--app-page-canvas);
    color: var(--app-page-ink);
    font-size: .76rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}
.management-dashboard-page .management-inline-feedback.is-success,
.management-dashboard-page .management-inline-feedback.is-info {
    border-color: color-mix(in srgb, var(--app-page-green) 30%, var(--app-page-line));
    background: var(--app-page-green-soft);
}
.management-dashboard-page .management-inline-feedback.is-error {
    border-color: color-mix(in srgb, var(--bs-danger) 34%, var(--app-page-line));
    background: color-mix(in srgb, var(--bs-danger) 9%, var(--app-page-surface));
    color: var(--bs-danger-text-emphasis);
}

.management-dashboard-page .management-backup-panel { overflow: hidden; margin-top: 16px; }
.management-dashboard-page .management-backup-header { align-items: center; }
.management-dashboard-page .management-backup-header > div > p { margin-top: 6px; text-align: left; }
.management-dashboard-page .management-backup-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.management-dashboard-page .management-backup-body { padding: 20px; }
.management-dashboard-page .management-backup-table-wrap { border: 1px solid var(--app-page-line); border-radius: 12px; }
.management-dashboard-page .management-backup-table { min-width: 820px; margin: 0; }
.management-dashboard-page .management-backup-table th {
    padding: 11px 13px;
    color: var(--app-page-muted);
    font-size: .65rem;
    font-weight: 760;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.management-dashboard-page .management-backup-table td { padding: 12px 13px; color: var(--app-page-ink); font-size: .76rem; vertical-align: middle; }
.management-dashboard-page .management-backup-type { display: block; font-weight: 710; }
.management-dashboard-page .management-backup-type + small { display: block; margin-top: 2px; color: var(--app-page-muted); font-size: .65rem; }
.management-dashboard-page .management-backup-row-actions {
    min-width: 200px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
}
.management-dashboard-page .management-backup-row-actions .btn {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.management-dashboard-page .management-backup-unavailable { color: var(--app-page-muted); font-size: .68rem; }

.management-dashboard-page .modal-content { overflow: hidden; }
.management-dashboard-page .modal-header { align-items: flex-start; padding: 20px 22px; }
.management-dashboard-page .modal-title {
    margin: 0;
    color: var(--app-page-ink);
    font-size: 1.2rem;
    font-weight: 740;
    letter-spacing: -.02em;
}
.management-dashboard-page .modal-body { padding: 22px; }
.management-dashboard-page .modal-body > p { margin: 0; color: var(--app-page-muted); font-size: .86rem; line-height: 1.6; }
.management-dashboard-page .modal-footer { gap: 7px; padding: 15px 22px; }
.management-dashboard-page .management-modal-intro {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 20px;
    padding: 13px;
    border: 1px solid color-mix(in srgb, var(--app-page-green) 26%, var(--app-page-line));
    border-radius: 10px;
    background: var(--app-page-green-soft);
    color: var(--app-page-green-dark);
}
.management-dashboard-page .management-modal-intro p { margin: 0; color: var(--app-page-ink); font-size: .78rem; line-height: 1.5; }
.management-dashboard-page .management-confirmation-icon {
    width: 52px;
    height: 52px;
    display: grid;
    margin: 0 auto 14px;
    place-items: center;
    border-radius: 14px;
    background: var(--app-page-green-soft);
    color: var(--app-page-green-dark);
    font-size: 1.3rem;
}
.management-dashboard-page .management-confirmation-icon.is-warning {
    background: color-mix(in srgb, var(--bs-warning) 13%, var(--app-page-surface));
    color: var(--bs-warning-text-emphasis);
}
.management-dashboard-page .management-confirmation-icon.is-danger {
    background: color-mix(in srgb, var(--bs-danger) 9%, var(--app-page-surface));
    color: var(--bs-danger-text-emphasis);
}
.management-dashboard-page .management-confirmation-icon + p { text-align: center; }

.management-dashboard-page .management-country-map-modal .modal-content {
    height: 100dvh;
    border: 0;
    border-radius: 0;
}
.management-dashboard-page .management-country-map-modal .modal-header {
    min-height: 78px;
    align-items: center;
    gap: 20px;
    padding: 14px 20px;
    flex: 0 0 auto;
}
.management-dashboard-page .management-country-map-modal .modal-header > div { min-width: 0; }
.management-dashboard-page .management-country-map-modal .modal-header p {
    margin: 3px 0 0;
    color: var(--app-page-muted);
    font-size: .72rem;
}
.management-dashboard-page .management-country-map-modal .modal-body {
    min-height: 0;
    overflow: hidden;
    padding: 16px;
}
.management-dashboard-page .management-country-modal-layout {
    min-width: 0;
    min-height: 0;
    height: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
    gap: 16px;
}
.management-dashboard-page .management-country-modal-map-panel {
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--app-page-line);
    border-radius: 13px;
    background: var(--app-page-surface);
}
.management-dashboard-page .management-country-map-toolbar {
    min-height: 54px;
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 8px 12px;
    border-bottom: 1px solid var(--app-page-line);
    background: var(--app-page-canvas);
}
.management-dashboard-page .management-country-map-toolbar > span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--app-page-muted);
    font-size: .69rem;
    font-weight: 620;
    white-space: nowrap;
}
.management-dashboard-page .management-country-zoom-controls {
    display: flex;
    align-items: center;
    gap: 6px;
}
.management-dashboard-page .management-country-zoom-controls .btn {
    min-width: 34px;
    min-height: 34px;
    display: inline-grid;
    padding: 5px 8px;
    place-items: center;
    border-radius: 8px;
}
.management-dashboard-page .management-country-zoom-controls output {
    min-width: 48px;
    color: var(--app-page-ink);
    font-size: .7rem;
    font-weight: 720;
    text-align: center;
}
.management-dashboard-page .management-country-zoom-controls .management-country-zoom-reset {
    width: auto;
    display: inline-flex;
    gap: 6px;
}
.management-dashboard-page .management-country-modal-map-viewport {
    min-height: 0;
    overflow: hidden;
    flex: 1 1 auto;
    padding: 0;
    cursor: grab;
    touch-action: none;
    user-select: none;
}
.management-dashboard-page .management-country-modal-map-viewport.is-dragging { cursor: grabbing; }
.management-dashboard-page .management-country-modal-map-canvas {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    padding: 18px;
    transform: translate3d(0, 0, 0) scale(1);
    transform-origin: center;
    transition: transform .16s ease-out;
    will-change: transform;
}
.management-dashboard-page .management-country-modal-map-viewport.is-dragging .management-country-modal-map-canvas { transition: none; }
.management-dashboard-page .management-country-map-modal .management-country-list-panel { height: 100%; }

@media (max-width: 1100px) {
    .management-dashboard-page .management-metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .management-dashboard-page .management-tool-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .management-dashboard-page .management-tool-group:first-child { grid-row: span 2; }
}

@media (max-width: 900px) {
    .management-dashboard-page .management-country-layout { grid-template-columns: minmax(0, 1.6fr) minmax(230px, .8fr); }
    .management-dashboard-page .management-tool-grid,
    .management-dashboard-page .management-operations-grid,
    .management-dashboard-page .management-subscription-grid { grid-template-columns: 1fr; }
    .management-dashboard-page .management-tool-group:first-child { grid-row: auto; }
    .management-dashboard-page .management-tool-group-header { min-height: 0; }
    .management-dashboard-page .management-subscription-grid > section + section { border-top: 1px solid var(--app-page-line); border-left: 0; }
    .management-dashboard-page .management-operation-body { min-height: 0; }
}

@media (max-width: 768px) {
    .management-dashboard-page .management-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .management-dashboard-page .management-country-layout { height: auto; grid-template-columns: 1fr; }
    .management-dashboard-page .management-country-map-shell { aspect-ratio: 1.7 / 1; }
    .management-dashboard-page .management-country-list-panel { height: 320px; }
    .management-dashboard-page .management-country-map-modal .modal-body { overflow-y: auto; }
    .management-dashboard-page .management-country-modal-layout {
        height: auto;
        grid-template-columns: 1fr;
        grid-template-rows: minmax(340px, 56vh) 320px;
    }
    .management-dashboard-page .management-country-map-modal .management-country-list-panel { height: 320px; }
    .management-dashboard-page .management-section-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
    .management-dashboard-page .management-section-heading > p { max-width: 100%; text-align: left; }
    .management-dashboard-page .management-attention-item { grid-template-columns: 38px minmax(0, 1fr); }
    .management-dashboard-page .management-attention-level { grid-column: 2; }
    .management-dashboard-page .management-backup-header { align-items: flex-start; flex-direction: column; }
    .management-dashboard-page .management-backup-actions { width: 100%; justify-content: flex-start; }
}

@media (max-width: 650px) {
    .management-dashboard-page .management-dashboard-hero-actions,
    .management-dashboard-page .management-dashboard-hero-actions .btn { width: 100%; }
    .management-dashboard-page .management-dashboard-section,
    .management-dashboard-page .management-subscriptions-panel,
    .management-dashboard-page .management-attention-panel { margin-bottom: 28px; }
    .management-dashboard-page .management-section-header,
    .management-dashboard-page .management-operation-header { align-items: flex-start; flex-direction: column; }
    .management-dashboard-page .management-country-total { align-self: flex-start; }
    .management-dashboard-page .management-country-body { padding: 18px; }
    .management-dashboard-page .management-country-map-modal .modal-header { min-height: 70px; padding: 11px 14px; }
    .management-dashboard-page .management-country-map-modal .modal-header p { display: none; }
    .management-dashboard-page .management-country-map-modal .modal-body { padding: 10px; }
    .management-dashboard-page .management-country-map-toolbar { align-items: stretch; flex-direction: column; gap: 7px; }
    .management-dashboard-page .management-country-map-toolbar > span { justify-content: center; }
    .management-dashboard-page .management-country-zoom-controls { justify-content: center; }
    .management-dashboard-page .management-section-header > .btn,
    .management-dashboard-page .management-operation-header > .btn { width: 100%; }
    .management-dashboard-page .management-attention-list { padding: 7px 16px; }
    .management-dashboard-page .management-subscription-grid > section,
    .management-dashboard-page .management-operation-body,
    .management-dashboard-page .management-backup-body { padding: 18px; }
    .management-dashboard-page .management-health-grid { grid-template-columns: 1fr; }
    .management-dashboard-page .management-operation-actions { align-items: stretch; flex-direction: column; }
    .management-dashboard-page .management-operation-actions .btn { width: 100%; }
    .management-dashboard-page .management-backup-actions { align-items: stretch; flex-direction: column; }
    .management-dashboard-page .management-backup-actions .btn { width: 100%; }
    .management-dashboard-page .management-subscription-list li { grid-template-columns: 38px minmax(0, 1fr); }
    .management-dashboard-page .management-subscription-meta { grid-column: 2; display: flex; align-items: center; justify-content: space-between; gap: 9px; text-align: left; }
    .management-dashboard-page .management-subscription-meta time { margin-top: 0; }
    .management-dashboard-page .modal-footer { align-items: stretch; flex-direction: column-reverse; }
    .management-dashboard-page .modal-footer .btn { width: 100%; }
}

@media (max-width: 420px) {
    .management-dashboard-page .management-metric-grid { grid-template-columns: 1fr; }
    .management-dashboard-page .management-country-body { padding: 14px; }
    .management-dashboard-page .management-country-map-shell { aspect-ratio: 1.4 / 1; }
    .management-dashboard-page .management-country-map-stage { padding: 7px 7px 3px; }
    .management-dashboard-page .management-country-map-hint { display: none; }
    .management-dashboard-page .management-country-list-panel { height: 300px; }
    .management-dashboard-page a.management-metric-card { min-height: 172px; }
    .management-dashboard-page .management-tool-group-header { align-items: flex-start; flex-direction: column; }
    .management-dashboard-page .management-tool-list small { white-space: normal; }
    .management-dashboard-page .management-attention-item { grid-template-columns: 34px minmax(0, 1fr); gap: 10px; }
    .management-dashboard-page .management-attention-icon { width: 34px; height: 34px; }
}

@media (prefers-reduced-motion: reduce) {
    .management-dashboard-page a.management-metric-card,
    .management-dashboard-page .management-country-item,
    .management-dashboard-page .management-country-shape,
    .management-dashboard-page .management-country-modal-map-canvas,
    .management-dashboard-page .management-metric-action i,
    .management-dashboard-page .management-tool-list a > i { transition: none; }
    .management-dashboard-page a.management-metric-card:hover { transform: none; }
}


/* Keep nested navigation comfortably tappable on phones and touch devices. */
@media (max-width: 768px), (hover: none) and (pointer: coarse) {
    #sidebar.app-sidebar .sidebar-subnav .nav-link {
        min-height: 44px;
    }
}
