/* Application design system. Load after vendor, page and shell styles.
   Keep colours here; page styles own layout and specialised map/editor behaviour. */
:root {
    color-scheme: light;
    --app-navy: #142d41;
    --app-navy-deep: #102332;
    --app-primary: #126872;
    --app-primary-hover: #0c505a;
    --app-primary-soft: #e8f3f4;
    --app-brass: #bf9154;
    --app-brass-light: #e6c58b;
    --app-ink: #203449;
    --app-muted: #5c6c7e;
    --app-canvas: #f1f4f7;
    --app-surface: #fff;
    --app-surface-alt: #f7f9fb;
    --app-line: #dce4eb;
    --app-input-line: #a8b8c7;
    --app-success: #23704e;
    --app-success-soft: #eaf5ee;
    --app-warning: #7a4b13;
    --app-warning-soft: #fff5dd;
    --app-danger: #9d3446;
    --app-danger-soft: #fff1f3;
    --app-info: #255c8f;
    --app-info-soft: #eaf4fc;
    --app-radius: 14px;
    --app-shadow: 0 3px 14px rgb(20 45 65 / 5%);
    --app-shadow-raised: 0 16px 40px rgb(20 45 65 / 12%);
    --app-focus: #126872;
    --primary-green: var(--app-primary);
    --secondary-green: #287e87;
    --light-green: var(--app-brass-light);
    --dark-green: var(--app-primary-hover);
    --earth-brown: var(--app-warning);
    --sky-blue: var(--app-info);
    --text-dark: var(--app-ink);
    --text-light: var(--app-muted);
    --background-light: var(--app-canvas);
}
body:is(.admin-app, .field-app, .public-site, .public-error-body) {
    --bs-primary: var(--app-primary);
    --bs-primary-rgb: 18, 104, 114;
    --bs-success: var(--app-success);
    --bs-success-rgb: 35, 112, 78;
    --bs-danger: var(--app-danger);
    --bs-danger-rgb: 157, 52, 70;
    --bs-info-rgb: 37, 92, 143;
    --bs-warning-rgb: 230, 197, 139;
    --bs-secondary-rgb: 92, 108, 126;
    --bs-dark-rgb: 20, 45, 65;
    --bs-light-rgb: 247, 249, 251;
    --bs-body-color: var(--app-ink);
    --bs-secondary-color: var(--app-muted);
    --bs-border-color: var(--app-line);
    --bs-link-color: var(--app-primary);
    --bs-link-color-rgb: 18, 104, 114;
    --bs-link-hover-color: var(--app-primary-hover);
    --bs-link-hover-color-rgb: 12, 80, 90;
    --admin-ink: var(--app-ink);
    --admin-muted: var(--app-muted);
    --admin-line: var(--app-line);
    --admin-green: var(--app-primary);
    --field-ink: var(--app-ink);
    --field-muted: var(--app-muted);
    --field-line: var(--app-line);
    --field-green: var(--app-primary);
    --public-ink: var(--app-navy);
    --public-green: var(--app-primary);
    --public-border: var(--app-line);
    color: var(--app-ink);
    background: var(--app-canvas);
    font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
    line-height: 1.6;
    accent-color: var(--app-primary);
}
body.theme-admin, .admin-content :is(.ui-wrap, .um-wrap, .ue-wrap, .ud-wrap) {
    --adm-primary: var(--app-primary);
    --adm-primary-2: #287e87;
    --adm-primary-dark: var(--app-primary-hover);
    --adm-bg: var(--app-canvas);
    --adm-surface: var(--app-surface);
    --adm-text: var(--app-ink);
    --adm-muted: var(--app-muted);
    --adm-border: var(--app-line);
    --adm-radius: var(--app-radius);
    --adm-shadow-sm: var(--app-shadow);
}
body.public-site { background: #fff; }
:is(.admin-app, .field-app, .public-site, .public-error-body) :focus-visible {
    outline: 3px solid var(--app-focus);
    outline-offset: 3px;
}
::selection { background: #cce6e8; color: var(--app-navy-deep); }

/* Shared interactive components. Explicit scope wins over legacy page rules. */
body :is(.admin-content, .field-content, .public-main, .public-auth-card, .modal) :is(.btn, .ui-btn, .um-btn, .ue-btn, .ud-btn) {
    border-radius: 9px;
    min-height: 44px;
    font-weight: 650;
    line-height: 1.4;
    white-space: normal;
    transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}
body :is(.admin-content, .field-content, .public-main, .public-auth-card, .modal) :is(.btn-primary, .ui-btn-primary, .um-btn-primary, .ue-btn-primary) {
    --bs-btn-color: #fff; --bs-btn-bg: var(--app-primary); --bs-btn-border-color: var(--app-primary);
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--app-primary-hover); --bs-btn-hover-border-color: var(--app-primary-hover);
    --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--app-primary-hover); --bs-btn-active-border-color: var(--app-primary-hover);
    --bs-btn-disabled-bg: var(--app-primary); --bs-btn-disabled-border-color: var(--app-primary);
    background: var(--app-primary); border-color: var(--app-primary); color: #fff; box-shadow: 0 2px 3px #142d410c;
}
body :is(.admin-content, .field-content, .public-main, .public-auth-card, .modal) :is(.btn-primary, .ui-btn-primary, .um-btn-primary, .ue-btn-primary):is(:hover, :active, :focus-visible) {
    background: var(--app-primary-hover); border-color: var(--app-primary-hover); color: #fff;
}
body :is(.admin-content, .field-content, .public-main, .public-auth-card, .modal) :is(.btn-outline-primary, .btn-outline-success) {
    --bs-btn-color: var(--app-primary); --bs-btn-border-color: var(--app-primary);
    --bs-btn-hover-bg: var(--app-primary); --bs-btn-hover-color: #fff; --bs-btn-hover-border-color: var(--app-primary);
    --bs-btn-active-bg: var(--app-primary); --bs-btn-active-color: #fff; --bs-btn-active-border-color: var(--app-primary);
    background: transparent; color: var(--app-primary); border-color: var(--app-primary);
}
body :is(.admin-content, .field-content, .public-main, .public-auth-card, .modal) :is(.btn-outline-primary, .btn-outline-success):is(:hover, :active) {
    background: var(--app-primary); color: #fff; border-color: var(--app-primary);
}
body .btn-success { --bs-btn-bg: var(--app-success); --bs-btn-border-color: var(--app-success); --bs-btn-hover-bg: #18583b; --bs-btn-hover-border-color: #18583b; --bs-btn-active-bg: #18583b; --bs-btn-active-border-color: #18583b; --bs-btn-disabled-bg: var(--app-success); --bs-btn-disabled-border-color: var(--app-success); }
body .btn-danger { --bs-btn-bg: var(--app-danger); --bs-btn-border-color: var(--app-danger); --bs-btn-hover-bg: #7f2837; --bs-btn-hover-border-color: #7f2837; --bs-btn-active-bg: #7f2837; --bs-btn-active-border-color: #7f2837; --bs-btn-disabled-bg: var(--app-danger); --bs-btn-disabled-border-color: var(--app-danger); }
body .btn-outline-danger { --bs-btn-color: var(--app-danger); --bs-btn-border-color: var(--app-danger); --bs-btn-hover-bg: var(--app-danger); --bs-btn-hover-border-color: var(--app-danger); --bs-btn-active-bg: var(--app-danger); --bs-btn-active-border-color: var(--app-danger); }
body .btn-outline-info { --bs-btn-color: var(--app-info); --bs-btn-border-color: var(--app-info); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--app-info); --bs-btn-hover-border-color: var(--app-info); --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--app-info); --bs-btn-active-border-color: var(--app-info); }
body .btn-outline-secondary { --bs-btn-color: var(--app-muted); --bs-btn-border-color: var(--app-input-line); --bs-btn-hover-color: var(--app-navy); --bs-btn-hover-bg: #e9eef3; --bs-btn-hover-border-color: #7d91a5; --bs-btn-active-color: var(--app-navy); --bs-btn-active-bg: #e9eef3; --bs-btn-active-border-color: #7d91a5; }
.admin-content :is(.ui-btn-danger, .um-btn-danger, .ue-btn-danger, .ud-btn-danger) { background: var(--app-danger); border-color: var(--app-danger); color: #fff; box-shadow: none; }
.admin-content :is(.ui-btn-danger, .um-btn-danger, .ue-btn-danger, .ud-btn-danger):hover { background: #7f2837; color: #fff; }
body :is(.admin-content, .field-content, .public-main, .public-auth-card, .modal) :is(.form-control, .form-select, .ui-input) {
    color: var(--app-ink); background-color: #fff; border-color: var(--app-input-line); border-radius: 9px; min-height: 44px;
}
body :is(.admin-content, .field-content, .public-main, .public-auth-card, .modal) :is(.form-control, .form-select, .ui-input):focus {
    border-color: var(--app-primary); box-shadow: 0 0 0 .22rem #1268721c; outline: 2px solid transparent;
}
body :is(.admin-content, .field-content, .public-main, .public-auth-card, .modal) :is(.form-control, .form-select):disabled { background-color: #eaf0f4; color: var(--app-muted); opacity: 1; }
body :is(.admin-content, .field-content, .public-main, .public-auth-card, .modal) :is(.form-control, .form-select).input-validation-error { border-color: var(--app-danger); }
body .form-control::placeholder { color: #697b8b; opacity: 1; }
body .form-check-input:checked { background-color: var(--app-primary); border-color: var(--app-primary); }
body .form-check-input:focus { border-color: var(--app-primary); box-shadow: 0 0 0 .22rem #1268721c; }
body .input-group-text { background: var(--app-surface-alt); border-color: var(--app-input-line); color: var(--app-muted); }
body .input-group > :not(:last-child) { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }
body .input-group > :not(:first-child) { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; }
body .form-label { color: var(--app-ink); font-weight: 600; }
body .form-text { color: var(--app-muted); }
body .dropdown-menu { --bs-dropdown-link-hover-bg: var(--app-primary-soft); --bs-dropdown-link-hover-color: var(--app-primary-hover); --bs-dropdown-link-active-bg: var(--app-primary); border-color: var(--app-line); box-shadow: var(--app-shadow-raised); }
body .page-link { color: var(--app-primary); border-color: var(--app-line); min-width: 42px; min-height: 42px; display: grid; place-items: center; }
body .active > .page-link { background: var(--app-primary); border-color: var(--app-primary); color: #fff; }
body .page-link:hover { color: var(--app-primary-hover); background: var(--app-primary-soft); }
body .nav-tabs { --bs-nav-link-color: var(--app-muted); --bs-nav-link-hover-color: var(--app-primary); --bs-nav-tabs-link-active-color: var(--app-primary); --bs-nav-tabs-link-active-border-color: var(--app-line) var(--app-line) #fff; }
body .alert { border-radius: 11px; }
body .alert-success, .admin-content .ui-alert.ok { color: var(--app-success); background: var(--app-success-soft); border-color: #badac9; }
body .alert-info { color: var(--app-info); background: var(--app-info-soft); border-color: #c6ddeb; }
body .alert-warning, .admin-content .ui-alert.warn { color: var(--app-warning); background: var(--app-warning-soft); border-color: #ecd7ad; }
body .alert-danger, .admin-content .ui-alert.danger { color: var(--app-danger); background: var(--app-danger-soft); border-color: #e9bdc7; }
body .badge { line-height: 1.4; letter-spacing: .02em; }
body .badge.bg-warning { color: #51330d !important; }
body .badge.bg-info { color: #fff !important; }
body .pill.ok { background: var(--app-success-soft); color: var(--app-success); border-color: #badac9; }
body .pill.no { background: var(--app-danger-soft); color: var(--app-danger); border-color: #e9bdc7; }
body .pill.warn { background: var(--app-warning-soft); color: var(--app-warning); border-color: #ecd7ad; }
body .modal-content { border: 1px solid var(--app-line); border-radius: 18px; box-shadow: 0 24px 80px #10233240; overflow: hidden; }
body .modal-header { background: var(--app-surface-alt); border-bottom-color: var(--app-line); padding: 1.25rem 1.5rem; }
body .modal-title { color: var(--app-navy); font-weight: 700; font-size: 1.2rem; }
body .modal-body { padding: 1.5rem; }
body .modal-footer { background: var(--app-surface-alt); border-top-color: var(--app-line); gap: .5rem; padding: 1rem 1.5rem; }

/* Workspace navigation: navy structure, teal selection, brass wayfinding. */
body.admin-app .admin-sidebar, body.field-app .field-sidebar { background: linear-gradient(170deg, #193a50 0%, var(--app-navy-deep) 80%) !important; color: #e3edf4; }
:is(.admin-brand, .field-brand) small { color: #b8ccda; }
:is(.admin-brand-row, .field-brand-row) { border-bottom: 1px solid #ffffff12; margin-bottom: .5rem; }
:is(.admin-nav-label, .field-nav-label) { color: #afc3d2; font-size: .64rem; letter-spacing: .16em; }
:is(.admin-nav-link, .field-nav-link) { color: #d1e0e9; border-radius: 9px; }
:is(.admin-nav-link, .field-nav-link):is(:hover, :focus-visible) { background: #ffffff0e; color: #fff; }
:is(.admin-nav-link, .field-nav-link).is-active { background: #215365; border-color: #3c697b; box-shadow: inset 3px 0 var(--app-brass-light); color: #fff; }
:is(.admin-nav-link, .field-nav-link).is-active i { color: var(--app-brass-light); }
:is(.admin-sidebar-scroll, .field-sidebar-scroll) { scrollbar-color: #547286 transparent; }
:is(.admin-sidebar-footer, .field-sidebar-footer) { border-top-color: #ffffff20; }
:is(.admin-workspace-label, .field-workspace-note, .field-workspace-note small) { color: #b8ccda; }
.admin-workspace-dot { background: var(--app-brass-light); }
:is(.admin-sidebar, .field-sidebar) :focus-visible { outline-color: var(--app-brass-light); }
:is(.admin-close, .field-close) { border-color: #698090; background: transparent; color: #fff; }
:is(.admin-topbar, .field-topbar) { background: #fffffffa; border-bottom: 1px solid var(--app-line); box-shadow: 0 2px 12px #142d4105; }
:is(.admin-avatar, .field-avatar) { background: var(--app-primary-soft); color: var(--app-primary); border: 1px solid #c7e0e3; border-radius: 12px; }
:is(.admin-account-toggle, .field-account-toggle):hover { background: var(--app-surface-alt); }
:is(.admin-breadcrumb, .field-breadcrumb) { color: var(--app-muted); }
:is(.admin-content, .field-content) { padding-top: clamp(24px, 2.8vw, 40px); padding-bottom: 40px; }
:is(.admin-footer, .field-footer) { background: #f7f9fb; color: var(--app-muted); border-color: var(--app-line); }
.admin-content :is(.ui-hero, .um-hero, .ue-hero, .ud-hero) { padding-bottom: 26px; }
:is(.admin-content, .field-content) :is(.ui-hero, .um-hero, .ue-hero, .ud-hero, .field-page-heading, .settings-heading, .an-header, .fm-heading) h1 { color: var(--app-navy); letter-spacing: -.04em; font-weight: 750; }
:is(.fm-heading, .field-page-heading) { margin-bottom: 26px; }
:is(.fm-eyebrow, .field-eyebrow, .settings-eyebrow, .drone-eyebrow) { color: var(--app-primary); letter-spacing: .16em; }
.admin-content :is(.ui-card, .um-card, .ue-card, .ud-card, .stat, .card),
.field-content :is(.card, .drone-card) { background: #fff; border: 1px solid var(--app-line) !important; border-radius: var(--app-radius); box-shadow: var(--app-shadow) !important; }
.admin-content :is(.ui-card-h, .um-card-h, .ue-card-h, .ud-card-h) { background: var(--app-surface-alt); border-bottom: 1px solid var(--app-line); border-radius: var(--app-radius) var(--app-radius) 0 0; }
.admin-content :is(.ui-card-h, .um-card-h, .ue-card-h, .ud-card-h) .t { color: var(--app-navy); }
.admin-content :is(.ui-card-h, .um-card-h, .ue-card-h, .ud-card-h) .m { color: var(--app-muted); }
:is(.admin-content, .field-content) .card-header:not(.bg-primary):not(.bg-success):not(.bg-danger):not(.bg-info):not(.bg-warning) { color: var(--app-ink); background: var(--app-surface-alt); border-color: var(--app-line); }
.admin-content .stat { border-top: 3px solid var(--app-primary) !important; }
.admin-content .stat .ico, .field-stat-top i, .settings-section-icon, .fm-form-icon, .admin-content .section-icon { color: var(--app-primary); background: var(--app-primary-soft); }
.admin-content .stat .k { color: var(--app-muted); }
.field-stat { border-color: var(--app-line); border-top: 3px solid var(--app-primary); box-shadow: var(--app-shadow); border-radius: var(--app-radius); }
.field-stat strong { color: var(--app-navy); font-variant-numeric: tabular-nums; }
:is(.admin-content, .field-content) .table { --bs-table-color: var(--app-ink); --bs-table-border-color: var(--app-line); --bs-table-hover-bg: #f0f7f8; --bs-table-striped-bg: #f7f9fb; }
:is(.admin-content, .field-content) :is(.table, .ui-table) th { color: #50647a; background: #edf2f6; font-size: .7rem; letter-spacing: .06em; }
:is(.admin-content, .field-content) :is(.table, .ui-table) td { border-color: var(--app-line); vertical-align: middle; }
.admin-content .ui-table tbody tr:hover { background: #f0f7f8; }
.admin-content :is(.ui-kbd, .ue-kbd, .ud-kbd) { color: var(--app-muted); background: var(--app-surface-alt); border-color: var(--app-line); white-space: normal; overflow-wrap: anywhere; }
.admin-content .toggle-item { background: var(--app-surface-alt); }
:is(.fm-summary, .fm-row, .fm-section, .fm-panel, .pm-row, .pm-filters, .pm-gallery figure) { border-color: var(--app-line); border-radius: var(--app-radius); box-shadow: var(--app-shadow); }
.fm-summary { background: linear-gradient(110deg, #fff, #edf5f6); }
.fm-row, .pm-row { border-inline-start: 3px solid #b6d7db; }
.fm-section[open] summary { color: var(--app-primary-hover); background: var(--app-primary-soft); border-radius: var(--app-radius) var(--app-radius) 0 0; }
:is(.fm-empty, .field-empty, .an-empty, .empty-state) { background: var(--app-surface-alt); color: var(--app-muted); border-color: var(--app-input-line); border-radius: var(--app-radius); }
:is(.fm-empty, .field-empty, .empty-state) > i { color: var(--app-primary); }
:is(.field-availability, .field-card-description) { color: var(--app-muted); }
:is(.field-card-actions, .field-pagination) { border-color: var(--app-line); }
.field-availability { background: var(--app-primary-soft); }

/* Form rules and account pages that previously relied on unstyled markup. */
.validation-container { display: grid; grid-template-columns: minmax(240px, .7fr) minmax(0, 1.6fr); align-items: start; gap: 28px; }
.validation-container > * { min-width: 0; }
.validation-container .settings-panel { padding: 22px; background: var(--app-surface-alt); border: 1px solid var(--app-line); border-radius: var(--app-radius); }
.validation-container :is(h5, h6) { color: var(--app-navy); font-weight: 700; }
.validation-container .toggle-group { grid-template-columns: 1fr; }
.rule-item { padding: 22px; border: 1px solid var(--app-line); border-radius: var(--app-radius); background: #fff; margin-bottom: 18px; }
.rule-header { display: flex; align-items: start; justify-content: space-between; gap: 16px; flex-wrap: wrap; border-bottom: 1px solid var(--app-line); padding-bottom: 18px; margin-bottom: 18px; }
.rule-title { margin-bottom: 4px; overflow-wrap: anywhere; }
.rule-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.rule-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.rule-field { min-width: 0; }
.rule-field > label { display: block; margin-bottom: 7px; font-weight: 600; font-size: .82rem; color: var(--app-muted); }
.workspace-security { max-width: 1080px; margin-inline: auto; }
.workspace-security-heading { margin-bottom: 28px; }
.workspace-security-heading h1 { color: var(--app-navy); font-size: clamp(1.7rem, 3vw, 2.2rem); letter-spacing: -.04em; font-weight: 750; }
.workspace-security-heading > p:last-child { color: var(--app-muted); margin: 0; }
.workspace-security-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(240px, .8fr); align-items: start; gap: 24px; }
.workspace-security-form { padding: clamp(20px, 3vw, 32px); background: #fff; border: 1px solid var(--app-line); border-radius: var(--app-radius); box-shadow: var(--app-shadow); }
.workspace-security-note { padding: 28px; background: var(--app-navy); color: #d4e1eb; border-radius: var(--app-radius); }
.workspace-security-note > i { color: var(--app-brass-light); font-size: 2rem; }
.workspace-security-note h2 { color: #fff; font-size: 1.15rem; margin: 20px 0 12px; }
.workspace-security-note p { font-size: .9rem; line-height: 1.8; }

/* Analysis, settings, submissions and drone data surfaces. */
:is(.an-workspace, .settings-page, .drone-page) { color: var(--app-ink); }
.an-eyebrow { color: var(--app-primary) !important; }
:is(.an-panel, .settings-card, .drone-card) { border-color: var(--app-line); border-radius: var(--app-radius); box-shadow: var(--app-shadow); }
:is(.an-panel, .settings-card) h2 { color: var(--app-navy); }
.an-step > span, .an-pill { background: var(--app-primary-soft); color: var(--app-primary); }
.an-choice { border-color: var(--app-line); border-radius: 10px; }
.an-choice:has(input:checked) { background: var(--app-primary-soft); border-color: var(--app-primary); }
.an-notice { background: var(--app-info-soft); color: var(--app-info); border-color: var(--app-info); }
.an-metrics > div { background: linear-gradient(125deg, #fff, #f0f6f7); border-color: var(--app-line); }
.an-table thead th { background: #edf2f6; color: #50647a; }
.an-table td, .an-table th { border-color: var(--app-line); }
.an-tools a { background: #fff; border-color: var(--app-line); box-shadow: var(--app-shadow); }
.an-tools a:hover { border-color: var(--app-primary); background: var(--app-primary-soft); }
.an-tools i { color: var(--app-primary); }
.an-bar span { background: var(--app-primary); }
.settings-access { background: #fff6e6; color: var(--app-warning); border-color: #ecd7ad; }
.settings-tabs { border-color: var(--app-line); flex-wrap: wrap; }
.settings-tabs a { color: var(--app-muted); }
.settings-tabs a.active { color: var(--app-primary); border-bottom-color: var(--app-primary); background: var(--app-primary-soft); border-radius: 9px 9px 0 0; }
:is(.settings-description, .settings-heading p:not(.settings-eyebrow), .settings-section-heading p, .settings-page small, .settings-save > span, .settings-updated) { color: var(--app-muted); }
:is(.settings-asset-preview, .settings-source) { background: var(--app-surface-alt); border-color: var(--app-input-line); }
.settings-note { background: var(--app-info-soft); color: var(--app-info); border-color: #c6ddeb; }
.drone-upload-box { background: var(--app-primary-soft); border-color: #639fa6; border-radius: var(--app-radius); }
.drone-steps li { background: var(--app-surface-alt); border-color: var(--app-line); }
.drone-steps span { background: var(--app-primary-soft); color: var(--app-primary); }
.submission-header { background: #edf3f7; border-left-color: var(--app-primary); }
.field-label { color: var(--app-ink); background: var(--app-surface-alt); border-left-color: var(--app-primary); }
.field-subtext { color: var(--app-muted); background: var(--app-surface-alt); }
.field-value-empty { color: var(--app-muted); }
.location-card { background: var(--app-primary-soft); border-color: #c7e0e3; }
.data-card:hover { transform: none; }
body .ui-wrap .map-controls, body .ui-wrap .map-legend { border: 1px solid var(--app-line); border-radius: 12px; box-shadow: var(--app-shadow-raised); }

/* Public site: light editorial surfaces with navy and brass anchors. */
.public-header { box-shadow: 0 3px 20px #142d410d; }
.public-utility { background: var(--app-navy); color: #cedde8; border-bottom: 0; }
.public-utility a { color: #e3edf4; }
.public-utility a:hover { color: #fff; }
.public-brand small { color: var(--app-muted); }
.public-nav-link { color: #41586b; border-radius: 8px; }
.public-nav-link:is(:hover, :focus-visible, .show, .is-active, [aria-current="page"]) { background: var(--app-primary-soft); color: var(--app-primary-hover); }
.public-nav-link:is(.is-active, [aria-current="page"]) { box-shadow: inset 0 -2px var(--app-primary); }
.public-account-toggle { background: var(--app-primary); border-color: var(--app-primary); border-radius: 8px; }
.public-account-toggle:is(:hover, :focus, .show) { background: var(--app-primary-hover); color: #fff; }
.public-header .dropdown-item { color: var(--app-ink); }
.public-header .dropdown-item .bi { color: var(--app-primary); }
.public-header .dropdown-item:is(:hover, :focus, [aria-current="page"]) { color: var(--app-primary-hover); background: var(--app-primary-soft); }
.public-menu-label, .public-account-info span { color: var(--app-muted); }
.public-account-info strong { color: var(--app-navy); }
.public-menu-toggle { color: var(--app-navy); border-color: var(--app-input-line); }
.public-menu-toggle[aria-expanded="true"] { background: var(--app-primary-soft); border-color: var(--app-primary); }
.public-footer { background: linear-gradient(125deg, #19394d, var(--app-navy-deep)); border-top: 3px solid var(--app-brass); color: #cedde8; }
.public-footer :is(.public-eyebrow, .public-footer-text-link, .public-footer-contact .bi) { color: var(--app-brass-light); }
.public-footer :is(.public-brand small, .public-footer-links a, .public-footer-contact > *, .public-footer-bottom, .public-footer-bottom a) { color: #c8d9e5; }
.public-contact-button { background: var(--app-brass-light); color: #30291d; border-radius: 8px; }
.public-contact-button:hover { background: #f3d9a9; color: #30291d; }
.public-footer :focus-visible, .page-hero :focus-visible, .public-utility :focus-visible { outline-color: var(--app-brass-light); }
.page-hero { background: var(--app-navy-deep); }
.page-hero-shade { background: linear-gradient(90deg, rgb(10 30 46 / 91%) 0%, rgb(12 42 55 / 73%) 55%, rgb(14 41 55 / 35%) 100%); }
.page-hero .page-hero-eyebrow { color: var(--app-brass-light); }
.page-hero .btn-light { color: var(--app-navy); background: #fff; border-color: #fff; }
.page-hero .btn-outline-light { color: #fff; border-color: #d8e6ef; background: transparent; }
.page-hero .btn-outline-light:hover { background: #fff; color: var(--app-navy); }
.public-main :is(.public-lead, .public-service-card p, .public-auth-help) { color: var(--app-muted); }
.public-main :is(.public-panel, .public-auth-card, .public-service-card) { color: var(--app-ink); border-color: var(--app-line); box-shadow: var(--app-shadow); }
.public-main :is(.public-auth-card, .public-panel) { border-top: 3px solid var(--app-primary); }
.public-auth-card h2, .public-reading-body :is(h2, h3), .public-section-title { color: var(--app-navy); }
:is(.public-content, .public-auth-card) a:not(.btn) { color: var(--app-primary); }
:is(.public-content, .public-auth-card) a:not(.btn):hover { color: var(--app-primary-hover); text-decoration: underline; }
:is(.public-content, .public-auth-card) .public-eyebrow { color: var(--app-primary); }
:is(.public-contact-details, .public-service-process, .public-recovery-codes) { background: var(--app-surface-alt); }
.public-reading-body { color: #394f62; }
.public-reading-nav { border-left-color: var(--app-brass); }
.public-service-card > i { display: inline-grid; place-items: center; color: var(--app-primary); background: var(--app-primary-soft); width: 54px; height: 54px; border-radius: 14px; font-size: 1.6rem; }
.public-notice { background: var(--app-success-soft); border-color: #badac9; color: var(--app-ink); }
.public-error-body .public-auth-card { border-top: 4px solid var(--app-brass); box-shadow: var(--app-shadow-raised); }
.home-content { --home-ink: var(--app-navy); --home-muted: var(--app-muted); --home-line: var(--app-line); }
.home-eyebrow, .home-service-arrow, .home-text-link, .home-person-copy > span, .home-project-readmore { color: var(--app-primary); }
.home-service-icon { color: var(--app-primary); background: var(--app-primary-soft); border-radius: 12px; }
.home-service:hover { background: var(--app-surface-alt); }
.home-projects { background: #eef3f7; border-color: var(--app-line); }
.home-team { background: #f8f9fb; border-color: var(--app-line); }
.home-project { border-color: var(--app-line); border-radius: var(--app-radius); box-shadow: var(--app-shadow); }
.home-project:has(a:hover), .home-project:focus-within { border-color: #8ab3bd; box-shadow: var(--app-shadow-raised); }
.home-project-category, .home-project-location, .home-fieldwork figcaption { color: var(--app-muted); }
.home-principles li > span { color: var(--app-warning); }
.home-fieldwork-images, .home-project-image, .home-person-image { background: #e8eef3; border-color: var(--app-line); }
.home-fieldwork .page-hero-controls button { color: var(--app-primary); border-color: var(--app-input-line); }
.home-fieldwork .page-hero-controls button:hover { background: var(--app-primary-soft); }
.personnel-card, .project-card { border-color: var(--app-line); border-radius: var(--app-radius); box-shadow: var(--app-shadow); }
.personnel-role, .personnel-readmore, .personnel-contact a { color: var(--app-primary); }
.personnel-excerpt, .personnel-profile-role { color: var(--app-muted); }
.personnel-contact, .filter-card { background: var(--app-surface-alt); border-color: var(--app-line); }
.public-main .icon-badge { color: var(--app-primary); background: var(--app-primary-soft); }
.public-main .stat-value { color: var(--app-navy); }

/* Finishing treatments for secondary data and public profile pages. */
body.theme-admin :is(.ui-wrap, .um-wrap, .ue-wrap, .ud-wrap) { --adm-bg: transparent; --adm-text: var(--app-ink); --adm-muted: var(--app-muted); --adm-border: var(--app-line); }
.empty-rules { padding: clamp(24px, 4vw, 42px); text-align: center; border: 1px dashed var(--app-input-line); border-radius: var(--app-radius); background: var(--app-surface-alt); }
.empty-rules > i { font-size: 2.5rem; color: var(--app-primary); }
.empty-rules h4 { color: var(--app-navy); }
.stat-badge { background: var(--app-primary); color: #fff; box-shadow: none; border-radius: 8px; }
.page-hero .page-hero-controls button { background: #163e52d9; border-color: #94b0c1; }
.page-hero .page-hero-controls button:hover { background: #245b6c; }
.an-tools span { color: var(--app-primary); }
.drone-page progress { accent-color: var(--app-primary); }
.drone-file, .drone-job { border-color: var(--app-line); }
.drone-steps li, .drone-file-meta, .drone-empty, .drone-page dt { color: var(--app-muted); }
.personnel-section-heading h2, .personnel-card h3, .personnel-bio :is(h2, h3) { color: var(--app-navy); }
.personnel-eyebrow { color: var(--app-primary); }
.personnel-bio { color: #394f62; }
.personnel-photo-wrap, .personnel-portrait { background: #e8eef3; }
.personnel-related-grid > a { background: var(--app-surface-alt); color: var(--app-primary); border: 1px solid var(--app-line); }
.personnel-related-grid > a > span { color: var(--app-muted); }

@media (max-width: 1199.98px) {
    .validation-container { grid-template-columns: minmax(0, 1fr); }
    .public-header .dropdown-menu { background: var(--app-surface-alt); }
}
@media (max-width: 767.98px) {
    .workspace-security-grid { grid-template-columns: minmax(0, 1fr); }
    .workspace-security-note { padding: 24px; }
    .rule-item, .validation-container .settings-panel { padding: 18px; }
}
@media (max-width: 575.98px) {
    body :is(.admin-content, .field-content, .public-main, .public-auth-card, .modal) :is(.form-control, .form-select, .ui-input) { font-size: 1rem; }
    .rule-body { grid-template-columns: minmax(0, 1fr); }
    .rule-actions { width: 100%; }
    .rule-actions .btn { flex: 1 1 120px; }
    .settings-tabs a { flex: 1 1 auto; justify-content: center; }
    .modal-dialog { margin: .75rem; }
    body .modal-header, body .modal-body { padding: 1.25rem; }
    body .modal-footer { padding: 1rem; }
    body .modal-footer .btn { flex: 1 1 110px; }
}
@media (prefers-reduced-motion: reduce) {
    :is(.admin-app, .field-app, .public-site, .public-error-body) *,
    :is(.admin-app, .field-app, .public-site, .public-error-body) *::before,
    :is(.admin-app, .field-app, .public-site, .public-error-body) *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
@media print {
    body:is(.admin-app, .field-app, .public-site, .public-error-body) { background: #fff; color: #000; }
    :is(.admin-content, .field-content) { padding: 0; }
    :is(.an-panel, .settings-card, .public-auth-card, .workspace-security-form) { box-shadow: none; }
    .workspace-security-grid, .validation-container { display: block; }
}
