@layer design {
  /* Балтморе 0.24.16 — публичный слой дизайн-системы «Куршская коса».
   * Структурные стили живут в app.css/site.css; здесь только осознанная визуальная система
   * и новые компоненты макета. Большие поверхности остаются спокойными, но не бесцветными. */

  html { scroll-padding-top: 86px; }
  body.site-body {
    background:
      radial-gradient(circle at 9% 0, rgba(214,185,139,.10), transparent 28rem),
      radial-gradient(circle at 92% 10%, rgba(49,94,145,.055), transparent 30rem),
      var(--color-canvas);
    color: var(--color-ink);
    font: var(--type-body-ui)/1.5 var(--font-ui);
    text-rendering: optimizeLegibility;
  }
  .site-body .shell,.site-body .container { width: var(--shell); }
  .site-body a { text-decoration-thickness: .075em; text-underline-offset: .16em; }
  .site-body a:not(:where(.is-active,[aria-current])) { color: var(--color-link); }
  .site-body a:not(:where(.is-active,[aria-current])):hover { color: var(--color-link-hover); }
  .site-body :where(a,button,summary,input,select,textarea):focus-visible {
    outline: 2px solid var(--color-focus);
    outline-offset: 3px;
  }
  .site-body :where(h1,h2,h3) { color: var(--color-ink); }
  .site-body h1 { font-size: var(--type-page-title); line-height: 1.08; letter-spacing: -.028em; }
  .site-body h2 { font-size: var(--type-section-title); line-height: 1.2; letter-spacing: -.018em; }
  .site-body h3 { line-height: 1.25; }
  .site-body .kicker,.site-body .eyebrow {
    color: var(--color-sea);
    font-weight: 800;
    letter-spacing: .08em;
  }
  .utility-bar { display: none; }

  /* Masthead. */
  .portal-header {
    position: relative;
    z-index: 60;
    border: 0;
    background: var(--color-surface-glass);
    box-shadow: 0 1px 0 var(--color-shadow-rule);
  }
  .portal-header__main {
    min-height: 78px;
    display: grid;
    grid-template-columns: minmax(225px,250px) minmax(320px,1fr) auto;
    align-items: center;
    gap: 22px;
  }
  .portal-brand {
    width: min(238px,100%);
    min-width: 0;
    display: flex;
    align-items: center;
    color: inherit;
    text-decoration: none;
  }
  .portal-brand:hover { color: inherit; }
  .portal-brand__logo {
    display: block;
    width: 100%;
    height: auto;
    max-height: 56px;
    background: transparent;
  }
  .portal-search {
    min-height: 42px;
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    width: 100%;
    overflow: hidden;
    border: 1px solid var(--color-control-border);
    border-radius: 10px;
    background: var(--color-surface);
    transition: border-color .16s ease, box-shadow .16s ease;
  }
  .portal-search:focus-within {
    border-color: var(--color-focus);
    box-shadow: 0 0 0 2px var(--color-focus-ring);
  }
  .portal-search input,
  .portal-search input:hover,
  .portal-search input:focus,
  .portal-search input:focus-visible {
    min-width: 0;
    height: 40px;
    padding: 8px 13px;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--color-ink);
    box-shadow: none;
  }
  .portal-search input::placeholder { color: var(--color-placeholder); opacity: 1; }
  .portal-search button {
    min-width: 80px;
    height: 40px;
    padding: 0 17px;
    border: 0;
    border-radius: 0;
    background: var(--color-forest);
    color: var(--color-on-primary);
    font-weight: 800;
  }
  .portal-search button:hover { background: var(--color-forest-strong); }
  .portal-header__tools { display: flex; align-items: center; gap: 8px; }
  .header-action,
  .header-account > summary,
  .search-toggle,
  .nav-toggle {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 8px 12px;
    border: 1px solid var(--color-border-strong);
    border-radius: 10px;
    background: var(--color-surface);
    color: var(--color-ink-soft);
    font-size: .84rem;
    font-weight: 760;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
  }
  .header-action:hover,
  .header-account > summary:hover,
  .header-account[open] > summary,
  .search-toggle:hover,
  .nav-toggle:hover {
    border-color: var(--color-control-border-hover);
    background: var(--color-surface-forest);
    color: var(--color-forest-strong);
  }
  .header-action__icon { color: var(--color-sky); font-size: 1.12rem; line-height: 1; }
  .header-account { position: relative; }
  .header-account > summary { list-style: none; }
  .header-account > summary::-webkit-details-marker { display: none; }
  .header-account > summary::after { content: "⌄"; margin-left: 2px; color: var(--color-sky); font-size: .9rem; }
  .header-account[open] > summary::after { transform: rotate(180deg); }
  .header-account__menu {
    position: absolute;
    top: calc(100% + 9px);
    right: 0;
    z-index: 75;
    min-width: 230px;
    display: grid;
    gap: 3px;
    padding: 9px;
    border: 1px solid var(--color-divider);
    border-radius: 12px;
    background: var(--color-surface);
    box-shadow: var(--shadow-layer);
  }
  .header-account__link {
    min-height: 38px;
    display: flex;
    align-items: center;
    padding: 8px 10px;
    border-radius: 8px;
    color: var(--color-ink);
    font-weight: 700;
    text-decoration: none;
  }
  .header-account__link:hover,.header-account__link.is-active {
    background: var(--color-surface-forest);
    color: var(--color-forest-strong);
  }
  .portal-header__mobile-actions { display: none; }
  .portal-search-panel { display: none; background: var(--color-surface); }
  .portal-search-panel.is-open { display: block; }

  /* Primary navigation: soft forest band, blue active marker. */
  .portal-nav {
    position: relative;
    overflow: visible;
    border-top: 1px solid var(--color-divider);
    border-bottom: 1px solid var(--color-border-strong);
    background: var(--color-nav-surface);
    box-shadow: 0 7px 18px var(--color-shadow-hairline);
  }
  .portal-nav__inner { min-height: 46px; display: block; overflow: visible; }
  .portal-nav__links { min-height: 46px; display: flex; align-items: stretch; }
  .portal-nav__link,
  .portal-nav__more > summary {
    position: relative;
    min-width: 0;
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    border: 0;
    border-right: 1px solid var(--color-nav-divider);
    color: var(--color-forest-strong);
    font-size: .88rem;
    font-weight: 760;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
  }
  .portal-nav__link::after,
  .portal-nav__more > summary::after {
    content: "";
    position: absolute;
    left: 15px;
    right: 15px;
    bottom: 0;
    height: 3px;
    border-radius: 3px 3px 0 0;
    background: transparent;
  }
  .portal-nav .portal-nav__link:hover,
  .portal-nav .portal-nav__more > summary:hover {
    background: var(--color-nav-hover-surface);
    color: var(--color-ink);
  }
  .portal-nav .portal-nav__link.is-active,
  .portal-nav .portal-nav__more[open] > summary,
  .portal-nav .portal-nav__more.is-active > summary {
    background: var(--color-nav-active-surface);
    color: var(--color-sky-strong);
  }
  .portal-nav__link.is-active::after,
  .portal-nav__more[open] > summary::after,
  .portal-nav__more.is-active > summary::after { background: var(--color-nav-accent); }
  .portal-nav__more { position: relative; margin-left: auto; }
  .portal-nav__more > summary { list-style: none; border-left: 1px solid var(--color-nav-divider); }
  .portal-nav__more > summary::-webkit-details-marker { display: none; }
  .portal-nav__chevron { margin-left: 7px; color: var(--color-sky); font-size: 1rem; }
  .portal-nav__more[open] .portal-nav__chevron { transform: rotate(180deg); }
  .portal-nav :where(a,summary):focus-visible { outline-offset: -3px; }
  .portal-mega {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 80;
    width: min(960px,calc(100vw - 40px));
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 18px;
    padding: 20px;
    border: 1px solid var(--color-divider);
    border-radius: 14px;
    background: var(--color-surface);
    color: var(--color-ink);
    box-shadow: 0 18px 46px var(--color-shadow-strong);
  }
  .portal-mega::before {
    content: "";
    position: absolute;
    top: -7px;
    right: 38px;
    width: 14px;
    height: 14px;
    border-left: 1px solid var(--color-divider);
    border-top: 1px solid var(--color-divider);
    background: var(--color-surface);
    transform: rotate(45deg);
  }
  .portal-mega__group { min-width: 0; }
  .portal-mega__group h2 {
    margin: 0 0 8px;
    font-size: .75rem;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
  }
  .portal-mega__group--editorial h2 { color: var(--color-sky-strong); }
  .portal-mega__group--city h2 { color: var(--color-sea); }
  .portal-mega__group--market h2 { color: var(--color-forest-strong); }
  .portal-mega__group--services h2 { color: var(--color-sand); }
  .portal-mega__link {
    min-height: 34px;
    display: flex;
    align-items: center;
    margin: 0 -7px;
    padding: 6px 7px;
    border-radius: 8px;
    color: var(--color-ink);
    font-size: .89rem;
    font-weight: 650;
    line-height: 1.25;
    text-decoration: none;
  }
  .portal-mega__link:hover,.portal-mega__link.is-active {
    background: var(--color-surface-forest);
    color: var(--color-forest-strong);
  }
  .portal-nav__mobile-utility { display: none; }

  /* Shared surfaces and controls. */
  .portal-main { min-height: 58vh; }
  .portal-ad-wrap,.global-flashes { margin-top: 18px; }
  .portal-block,.sidebar-box,.form-card,.account-panel,.service-card,
  .directory-card,.auto-card,.realty-card,.job-card,.board-card,.afisha-card,
  .business-bank-card,.weather-card,.tv-overview-card,.pagination {
    border-color: var(--color-divider);
    background: var(--color-surface);
  }
  .portal-block {
    position: relative;
    margin-bottom: 20px;
    overflow: hidden;
    border: 1px solid var(--color-divider);
    border-radius: var(--radius-layer);
    box-shadow: 0 1px 0 var(--color-shadow-faint);
  }
  .block-head {
    position: relative;
    min-height: 50px;
    margin: -14px -14px 14px;
    padding: 12px 14px 10px 18px;
    border: 0;
    border-bottom: 1px solid var(--color-divider);
    background: linear-gradient(90deg,var(--section-wash,var(--color-surface-subtle)),var(--color-surface) 72%);
  }
  .block-head::before {
    content: "";
    width: 6px;
    height: 21px;
    flex: 0 0 6px;
    border-radius: 99px;
    background: var(--section-accent,var(--color-sky));
  }
  .block-head :where(h1,h2) {
    margin: 0;
    color: var(--color-ink);
    font-size: var(--type-block-title);
    font-weight: 850;
    letter-spacing: -.026em;
  }
  .block-head__all {
    margin-left: auto;
    padding: 5px 8px;
    border-radius: 8px;
    color: var(--color-link);
    font-size: .77rem;
    font-weight: 750;
    text-decoration: none;
  }
  .block-head__all:hover { background: var(--color-surface-sky); color: var(--color-link-hover); }
  .sidebar-box {
    border-radius: var(--radius-layer);
    background: var(--color-surface);
    box-shadow: 0 8px 24px var(--color-shadow-hairline);
  }
  .sidebar-box header {
    margin: -12px -12px 10px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--color-divider);
    background: transparent;
  }
  .sidebar-box header h2 { font-weight: 850; }
  .sidebar-box--accent { background: var(--color-surface-forest); border-color: var(--color-border-strong); }
  .compact-empty,.empty-state {
    border-color: transparent;
    border-radius: 10px;
    background: var(--color-surface-subtle);
    color: var(--color-muted);
  }
  .module-teaser,.wide-module-teaser,.portal-ad,.media-placeholder {
    border-color: var(--color-divider);
    border-radius: 11px;
    background: var(--color-surface-subtle);
  }
  .aux-links a { font-weight: 650; text-decoration: none; }

  .site-body :where(input,select,textarea),
  .site-body :where(.field input,.field select,.field textarea,.content-editor-block input,.content-editor-block select,.content-editor-block textarea,.gallery-editor input,.account-form input,.account-form textarea,.account-form select) {
    border-width: 1px;
    border-color: var(--color-control-border);
    border-radius: var(--radius-control);
    background: var(--color-surface);
    box-shadow: none;
  }
  .site-body :where(input,select,textarea):hover { border-color: var(--color-control-border-hover); }
  .site-body :where(input,select,textarea):focus,
  .site-body :where(input,select,textarea):focus-visible {
    border-color: var(--color-focus);
    outline: 0;
    box-shadow: 0 0 0 2px var(--color-focus-ring);
  }
  .site-body :where(button[type="submit"]:not(.button--secondary):not(.button--danger):not(.link-danger):not(.text-button),.button--primary,.button-primary),
  .site-body .footer-newsletter button,
  .portal-bulletin button {
    border-radius: 9px;
    background: var(--color-forest);
    color: var(--color-on-primary);
  }
  .site-body :where(button[type="submit"]:not(.button--secondary):not(.button--danger):not(.link-danger):not(.text-button),.button--primary,.button-primary):hover,
  .site-body .footer-newsletter button:hover,
  .portal-bulletin button:hover { background: var(--color-forest-strong); color: var(--color-on-primary); }
  .site-body .button--secondary { border-color: var(--color-control-border); border-radius: 9px; background: var(--color-surface); }
  .site-body .button--secondary:hover { border-color: var(--color-control-border-hover); background: var(--color-surface-forest); }
  .site-body a.button--primary,
  .site-body a.button-primary,
  .site-body a.button--primary:hover,
  .site-body a.button-primary:hover,
  .site-body a.button--primary:focus-visible,
  .site-body a.button-primary:focus-visible { color: var(--color-on-primary); }

  /* Homepage: three voices — editorial, city/culture, market/services. */
  .portal-home { padding-top: 20px; }
  .home-section--news { --section-accent: var(--color-sky); --section-wash: var(--color-surface-sky); }
  .home-section--reports { --section-accent: var(--color-sky-strong); --section-wash: var(--color-surface-sky); }
  .home-section--video { --section-accent: var(--color-sea); --section-wash: var(--color-surface-sea); }
  .home-section--articles { --section-accent: var(--color-sand); --section-wash: var(--color-surface-sand); }
  .home-section--afisha { --section-accent: var(--color-coral); --section-wash: var(--color-surface-coral); background: var(--color-surface); }
  .home-section--places { --section-accent: var(--color-sea); --section-wash: var(--color-surface-sea); background: var(--color-surface); }
  .home-section--auto { --section-accent: var(--color-sky-strong); --section-wash: var(--color-surface-sky); }
  .home-section--realty { --section-accent: var(--color-sand); --section-wash: var(--color-surface-sand); }
  .home-section--board { --section-accent: var(--color-coral); --section-wash: var(--color-surface-coral); }
  .home-section--job { --section-accent: var(--color-forest); --section-wash: var(--color-surface-forest); }
  .home-section--business { --section-accent: var(--color-forest-strong); --section-wash: var(--color-surface-forest); }
  .home-section--rates { --section-accent: var(--color-sand); --section-wash: var(--color-surface-sand); }
  .home-top-grid { gap: 20px; }
  .news-lead__media { border-radius: 10px; background: var(--color-surface-sky); }
  .news-lead h2 a,.news-list h3 a,.media-card h3 a,.publication-row h2 a { color: var(--color-ink); }
  .news-lead h2 a:hover,.news-list h3 a:hover,.media-card h3 a:hover,.publication-row h2 a:hover { color: var(--color-link-hover); }
  .news-list article,.sidebar-list article,.home-tv-program { border-color: var(--color-divider); }
  .media-card__image,.compact-thumb,.home-board-list__image,.auto-home-list__image { border-radius: 8px; background: var(--color-surface-subtle); }
  .home-weather-box {
    border-color: var(--color-border-strong);
    border-radius: var(--radius-layer);
    background: linear-gradient(145deg,var(--color-surface-forest),var(--color-surface-sky));
  }
  .home-weather-box h2 { color: var(--color-forest-strong); }
  .home-weather-box > div > a strong { color: var(--color-sky-strong); }
  .home-tv-box { border-color: var(--color-divider); border-radius: var(--radius-layer); background: var(--color-surface-stone); }
  .home-tv-program__time { color: var(--color-sea); }
  .home-afisha-list time,.afisha-date { color: var(--color-coral); }
  .directory-home__grid > div + div { border-color: var(--color-divider); }
  .directory-home__categories a:hover,.directory-home__entries article:hover { background: var(--color-surface-sea); }
  .home-job-tabs > div + div { border-color: var(--color-divider); }
  .home-job-resume-cta { border-color: var(--color-divider); background: var(--color-surface-forest); }
  .home-rate-list > div { border-color: var(--color-divider); }

  /* Listings and entity pages: less boxed, more typographic. */
  .listing-page,.module-page,.directory-page,.auto-page,.realty-page,.job-page,.board-page,
  .business-page,.afisha-page,.services-page,.weather-page,.tv-page,.search-page,.static-page,
  .system-public-page,.account-page { padding-top: 22px; }
  .listing-head,.directory-head,.auto-head,.realty-head,.job-head,.board-head,.module-hero,
  .business-hero,.system-page-head,.account-head {
    border-top: 3px solid var(--color-sky);
    border-radius: var(--radius-layer);
    background: linear-gradient(100deg,var(--color-surface-sky),var(--color-surface) 54%);
  }
  .directory-head,.afisha-head { border-top-color: var(--color-sea); background: linear-gradient(100deg,var(--color-surface-sea),var(--color-surface) 54%); }
  .job-head,.job-list-head { border-top-color: var(--color-forest); }
  .realty-head { border-top-color: var(--color-sand); background: linear-gradient(100deg,var(--color-surface-sand),var(--color-surface) 54%); }
  .board-head { border-top-color: var(--color-coral); background: linear-gradient(100deg,var(--color-surface-coral),var(--color-surface) 54%); }
  .filter-panel,.directory-filter,.auto-filter,.realty-filter,.job-filter,.board-filter,
  .afisha-search,.directory-search,.business-filters,.service-filter,.weather-filter,.tv-filter {
    border-color: var(--color-border-strong);
    border-radius: var(--radius-layer);
    background: var(--color-surface-subtle);
  }
  .directory-card,.auto-card,.realty-card,.job-card,.board-card,.afisha-card,.business-bank-card,.service-card,.weather-card,.tv-overview-card {
    border-radius: 10px;
    background: var(--color-surface);
    box-shadow: none;
    transition: border-color .16s ease,background-color .16s ease,box-shadow .16s ease,transform .16s ease;
  }
  .site-body :where(.directory-card,.auto-card,.realty-card,.job-card,.board-card,.afisha-card,.business-bank-card,.service-card):hover {
    border-color: var(--color-control-border-hover);
    background: var(--color-surface);
    box-shadow: var(--shadow-hover);
  }
  .directory-card h2 a,.auto-card h2 a,.realty-card h2 a,.job-card h2 a,.board-card h2 a,.afisha-card h2 a { color: var(--color-ink); }
  .listing-featured,.publication-page__main,.event-page__main,.directory-entry-main,.board-item-main,.auto-item-main,.realty-item-main,.job-item-head {
    border-color: var(--color-divider);
    background: var(--color-surface);
  }
  .breadcrumbs { color: var(--color-muted); }
  .breadcrumbs a { color: var(--color-muted); text-decoration-color: transparent; }
  .breadcrumbs a:hover { color: var(--color-link-hover); text-decoration-color: currentColor; }
  .pagination { border-radius: 10px; }
  .pagination a:hover { background: var(--color-surface-forest); }
  .pagination .is-current { background: var(--color-forest); color: var(--color-on-primary); }

  /* Jobs: preserve source accuracy and dense reading rhythm. */
  .site-body .job-list-head h1 {
    width: 100%;
    max-width: none;
    font-size: clamp(1.42rem,1.30rem + .38vw,1.72rem);
    line-height: 1.1;
    text-wrap: wrap;
  }
  .site-body .job-item-head h1 {
    width: 100%;
    max-width: none;
    font-size: clamp(1.36rem,1.27rem + .32vw,1.62rem);
    line-height: 1.12;
    text-wrap: wrap;
  }
  .site-body .job-employer-row-card h2,.site-body .job-employer-grid h2 {
    font-size: 1rem;
    line-height: 1.28;
    text-wrap: wrap;
  }
  .site-body .job-description,.site-body .job-description :where(p,li) {
    width: 100%;
    max-width: none;
    font-size: var(--type-body-compact);
    line-height: 1.56;
    text-align: start;
    hyphens: none;
    overflow-wrap: break-word;
    word-break: normal;
  }
  .site-body .job-description h2 { font-size: 1.06rem; line-height: 1.24; }
  .site-body .job-description h3 { font-size: .98rem; line-height: 1.28; }
  .job-facts > div { border-color: var(--color-divider); background: var(--color-surface-forest); }
  .job-skill-tags span { border-color: var(--color-border-strong); background: var(--color-surface-forest); color: var(--color-forest-strong); }
  .job-source-box { background: var(--color-surface-sand); }
  .site-body :where(.job-employer-row-card,.job-city-links a,.job-category-card,.tv-overview-card__programs > a,.tv-channel-switcher__list a):hover {
    background: var(--color-surface-forest);
    color: var(--color-forest-strong);
  }

  /* Business, banks and services inherit the same natural system without touching accepted bank artwork. */
  .bank-logo img,.business-bank-card img,.portal-footer__logo,.admin-brand__logo,.admin-auth-brand img { background: transparent; }
  .bank-catalog-card > a:hover,.bank-object-row:hover { background: var(--color-surface-forest); }
  .bank-network-filter__tabs a:hover { background: var(--color-surface-forest); color: var(--color-forest-strong); }
  .bank-network-filter__tabs a.is-active,.bank-pagination__page.is-current { background: var(--color-forest); color: var(--color-on-primary); }
  .bank-profile__stats > div { border-color: var(--color-notice-border); background: var(--color-surface-sand); }
  .weather-card--lead { border-color: var(--color-border-strong); background: linear-gradient(145deg,var(--color-surface-sea),var(--color-surface) 68%); }
  .weather-card__metrics > div,.weather-details__grid > div { border-color: var(--color-divider); }
  .tv-channel-switcher,.tv-overview-card,.business-entry-card { border-color: var(--color-divider); }

  /* Messages and status — semantic, not decorative. */
  .flash--success,.status-badge--published { border-color: var(--color-success-border); background: var(--color-surface-forest); color: var(--color-forest-strong); }
  .flash--error,.status-badge--rejected { border-color: var(--color-danger-border); background: var(--color-surface-coral); color: var(--color-danger); }
  .flash--info,.status-badge--draft { border-color: var(--color-divider); background: var(--color-surface-sky); color: var(--color-sky-strong); }

  /* Footer: warm light information field with full-width legal copy. */
  .portal-footer {
    margin-top: 40px;
    border: 0;
    background: transparent;
    color: var(--color-ink);
  }
  .portal-footer__main {
    border-top: 1px solid var(--color-border-strong);
    background: linear-gradient(120deg,var(--color-footer-surface),var(--color-surface-stone) 56%,var(--color-surface-sand));
  }
  .portal-footer__grid {
    grid-template-columns: repeat(4,minmax(0,1fr)) minmax(280px,1.55fr);
    gap: 26px;
    padding: 34px 0 32px;
  }
  .portal-footer__links { display: grid; align-content: start; gap: 5px; min-width: 0; }
  .portal-footer__links h2 {
    margin: 0 0 8px;
    color: var(--color-forest-strong);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
  }
  .portal-footer__links a { margin: 0; color: var(--color-ink-soft); font-size: .84rem; line-height: 1.35; text-decoration: none; }
  .portal-footer a:hover { color: var(--color-link-hover); }
  .portal-footer__meta { display: grid; align-content: start; gap: 14px; min-width: 0; }
  .portal-footer__identity { display: flex; align-items: center; }
  .portal-footer__logo { display: block; width: min(205px,100%); height: auto; }
  .portal-footer__about-links { display: flex; flex-wrap: wrap; gap: 7px 12px; margin: 0; }
  .portal-bulletin {
    display: grid;
    gap: 8px;
    padding: 13px;
    border: 1px solid var(--color-border-strong);
    border-radius: 12px;
    background: rgba(255,253,248,.70);
  }
  .portal-bulletin > label { color: var(--color-forest-strong); font-weight: 800; }
  .portal-bulletin > div { display: grid; grid-template-columns: minmax(0,1fr) auto; }
  .portal-bulletin > small { color: var(--color-muted); }
  .portal-footer__legal {
    border-top: 1px solid var(--color-divider);
    padding: 16px 0 22px;
  }
  .portal-footer__legal small {
    display: block;
    color: var(--color-muted);
    font-size: .72rem;
    line-height: 1.5;
  }
  .scroll-top {
    border: 1px solid var(--color-on-primary-border);
    background: var(--color-forest);
    color: var(--color-on-primary);
    box-shadow: 0 10px 30px var(--color-shadow-strong);
  }
  .scroll-top:hover { background: var(--color-forest-strong); }

  /* Administration is quieter than the public site but shares the same tokens. */
  .admin-body { background: var(--color-admin-canvas); }
  .admin-topbar { background: var(--color-admin-topbar); }
  .admin-sidebar { background: var(--color-admin-sidebar); }
  .admin-brand { gap: 10px; background: var(--color-admin-sidebar); }
  .admin-brand__logo { display: block; width: 34px; height: 34px; flex: 0 0 34px; }
  .admin-brand__mode { color: var(--color-on-footer); font-size: .92rem; font-weight: 760; }
  .admin-subnav a.is-active,.admin-tabs a.is-active { color: var(--color-forest-strong); border-color: var(--color-forest); }
  .admin-auth-brand { display: inline-flex; width: min(260px,80vw); margin-bottom: 20px; }
  .admin-auth-brand img { display: block; width: 100%; height: auto; }

  /* Internal styleguide follows production, not a separate palette. */
  .styleguide-page { padding: 26px 0 54px; }
  .styleguide-intro { max-width: 68rem; margin-bottom: 28px; }
  .styleguide-intro > p:last-child { max-width: 64rem; color: var(--color-muted); }
  .styleguide-section { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--color-divider); }
  .styleguide-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: 10px; }
  .styleguide-swatch {
    --swatch-color: var(--color-divider);
    min-height: 82px;
    display: grid;
    align-content: end;
    gap: 5px;
    padding: 14px;
    border: 1px solid var(--color-divider);
    border-top: 7px solid var(--swatch-color);
    border-radius: 10px;
    background: var(--color-surface);
  }
  .styleguide-swatch strong { color: var(--color-ink); }
  .styleguide-swatch code { color: var(--color-muted); font-size: .78rem; overflow-wrap: anywhere; }
  .styleguide-swatch--brand { --swatch-color: var(--color-brand-vivid); }
  .styleguide-swatch--sky { --swatch-color: var(--color-sky-strong); }
  .styleguide-swatch--forest { --swatch-color: var(--color-forest); }
  .styleguide-swatch--sea { --swatch-color: var(--color-sea); }
  .styleguide-swatch--moss { --swatch-color: var(--color-moss); }
  .styleguide-swatch--sand { --swatch-color: var(--color-brand-sand); }
  .styleguide-swatch--canvas { --swatch-color: var(--color-canvas); }
  .styleguide-swatch--surface { --swatch-color: var(--color-border-strong); }
  .styleguide-swatch--ink { --swatch-color: var(--color-ink); }
  .styleguide-swatch--muted { --swatch-color: var(--color-muted); }
  .styleguide-swatch--divider { --swatch-color: var(--color-divider); }
  .styleguide-swatch--control { --swatch-color: var(--color-control-border); }
  .styleguide-swatch--danger { --swatch-color: var(--color-danger); }
  .styleguide-type-reading { max-width: 65ch; color: var(--color-ink-soft); }
  .styleguide-actions { display: flex; flex-wrap: wrap; gap: 8px; }

  @media (max-width: 1120px) {
    .site-body .shell,.site-body .container { width: min(100% - 30px,1040px); }
    .portal-header__main { grid-template-columns: minmax(195px,215px) minmax(260px,1fr) auto; gap: 14px; }
    .portal-brand { width: min(205px,100%); }
    .portal-nav__link,.portal-nav__more > summary { padding-inline: 12px; font-size: .83rem; }
    .home-top-grid { grid-template-columns: minmax(0,2.55fr) minmax(260px,1fr); gap: 18px; }
    .portal-footer__grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
    .portal-footer__meta { grid-column: 1 / -1; grid-template-columns: minmax(280px,420px); justify-content: end; align-items: end; }
  }

  @media (max-width: 900px) {
    .portal-nav__link,.portal-nav__more > summary { padding-inline: 10px; font-size: .79rem; }
    .portal-mega { grid-template-columns: repeat(2,minmax(0,1fr)); width: min(700px,calc(100vw - 30px)); }
  }

  @media (max-width: 820px) {
    .site-body .shell,.site-body .container { width: calc(100% - 24px); }
    html { scroll-padding-top: 72px; }
    .portal-header__main { min-height: 66px; grid-template-columns: minmax(150px,1fr) auto; gap: 10px; }
    .portal-brand { width: min(178px,100%); }
    .portal-header__main > .portal-search,.portal-header__tools { display: none; }
    .portal-header__mobile-actions { display: flex; gap: 7px; }
    .portal-search-panel { padding: 0 12px 12px; }
    .portal-nav { display: none; background: var(--color-surface); box-shadow: 0 14px 30px var(--color-shadow-medium); }
    .portal-nav.is-open { display: block; }
    .portal-nav__inner { min-height: 0; padding: 8px 0 12px; }
    .portal-nav__links { min-height: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2px; }
    .portal-nav__link,.portal-nav__more > summary {
      min-height: 44px;
      justify-content: flex-start;
      padding: 9px 12px;
      border: 0;
      border-radius: 8px;
      background: transparent;
      color: var(--color-ink-soft);
      font-size: .88rem;
    }
    .portal-nav__link::after,.portal-nav__more > summary::after { left: 10px; right: auto; bottom: 4px; width: 26px; height: 3px; }
    .portal-nav__more { position: static; margin: 0; }
    .portal-nav__more > summary { border: 0; }
    .portal-mega {
      position: static;
      grid-column: 1 / -1;
      width: auto;
      margin: 4px 0 8px;
      grid-template-columns: repeat(2,minmax(0,1fr));
      gap: 14px;
      padding: 15px;
      border: 1px solid var(--color-divider);
      border-radius: 12px;
      background: var(--color-surface-subtle);
      box-shadow: none;
    }
    .portal-mega::before { display: none; }
    .portal-nav__mobile-utility {
      display: flex;
      flex-wrap: wrap;
      gap: 4px 12px;
      margin-top: 8px;
      padding: 11px 10px 0;
      border-top: 1px solid var(--color-divider);
    }
    .portal-nav__mobile-utility a { min-height: 40px; display: inline-flex; align-items: center; padding: 6px 0; color: var(--color-ink-soft); font-size: .81rem; font-weight: 700; text-decoration: none; }
    .home-top-grid,.news-layout { grid-template-columns: 1fr; }
    .news-list { border-left: 0; border-top: 1px solid var(--color-divider); padding: 12px 0 0; }
    .home-top-sidebar { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .portal-footer__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .portal-footer__meta { grid-column: 1 / -1; grid-template-columns: 1fr; justify-content: stretch; align-items: start; }
  }

  @media (max-width: 560px) {
    .site-body .shell,.site-body .container { width: calc(100% - 20px); }
    body.site-body { font-size: 15px; }
    .portal-brand { width: min(158px,100%); }
    .search-toggle,.nav-toggle { min-width: 42px; min-height: 42px; padding: 7px 9px; }
    .search-toggle { background: var(--color-surface-sky); color: var(--color-sky-strong); }
    .nav-toggle { background: var(--color-surface-forest); color: var(--color-forest-strong); }
    .portal-nav__links { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .portal-nav__more { grid-column: 1 / -1; }
    .portal-mega { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; padding: 12px; }
    .portal-mega__group h2 { margin-bottom: 5px; font-size: .66rem; letter-spacing: .055em; }
    .portal-mega__link { min-height: 40px; padding: 7px 5px; margin-inline: -5px; font-size: .80rem; line-height: 1.2; }
    .portal-home { padding-top: 14px; }
    .portal-block { margin-bottom: 14px; border-radius: 11px; }
    .block-head { min-height: 47px; padding-left: 14px; }
    .block-head::before { width: 5px; height: 19px; flex-basis: 5px; }
    .block-head .aux-links { display: none; }
    .block-head__all { font-size: .73rem; }
    .home-top-sidebar { grid-template-columns: 1fr; }
    .media-row,.articles-home-grid,.video-home-list,.portal-pair,.directory-home__grid,.portal-module-grid,
    .auto-grid,.realty-grid,.business-bank-grid,.service-grid,.weather-grid,.portal-footer__grid { grid-template-columns: 1fr; }
    .directory-home__grid > div + div { border-left: 0; border-top: 1px solid var(--color-divider); padding: 14px 0 0; }
    .portal-footer__grid { gap: 20px; padding-block: 28px; }
    .portal-footer__legal { padding-block: 14px 18px; }
    .site-body .job-list-head h1 { font-size: 1.4rem; }
    .site-body .job-item-head h1 { font-size: 1.34rem; }
  }

}
