/* Estate — shared visual system for every workspace and standalone page.
   Presentation only: service routing, map geometry and loading stay in their existing modules. */
:root {
  --navy-950: #102b29;
  --navy-900: #173b36;
  --navy-800: #214c45;
  --navy-700: #326257;
  --primary: #176b57;
  --primary-600: #105642;
  --primary-ink: #155e4d;
  --primary-soft: #edf5f0;
  --primary-100: #dcece2;
  --primary-200: #b5d5c3;
  --accent: #e4bd74;
  --accent-soft: #fbf5e8;
  --accent-ink: #78551e;
  --bg: #f5f6f3;
  --surface: #ffffff;
  --surface-2: #f9faf7;
  --surface-3: #edf0ea;
  --line: #e0e5de;
  --line-2: #cbd4cb;
  --ink: #20372f;
  --ink-2: #3a4c44;
  --muted: #637269;
  --muted-2: #718176;
  --plot-fill: #f4f7f1;
  --plot-stroke: #448373;
  --plot-hover: #e1eee4;
  --plot-sel: #b9dccb;
  --plot-label: #20372f;
  --plot-halo: rgba(244,247,241,.94);
  --stage-bg: #fafbf8;
  --stage-dot: rgba(23,107,87,.10);
  --r-xs: 5px; --r-sm: 7px; --r-md: 10px; --r-lg: 12px; --r-xl: 16px; --r-2xl: 20px;
  --sh-xs: 0 1px 2px rgba(26,52,40,.025);
  --sh-sm: 0 2px 8px -3px rgba(26,52,40,.07);
  --sh-md: 0 8px 24px -12px rgba(26,52,40,.18);
  --sh-lg: 0 18px 44px -18px rgba(26,52,40,.24);
  --ring: 0 0 0 3px rgba(23,107,87,.22);
  --header-h: 64px;
  --max: 1320px;
}
html[data-theme="dark"] {
  --primary: #267b64;
  --primary-600: #2d8b71;
  --primary-ink: #9dd6ba;
  --primary-soft: #1d342b;
  --primary-100: #29483a;
  --primary-200: #44785e;
  --accent-soft: #352f21;
  --accent-ink: #e4c58e;
  --bg: #111b17;
  --surface: #19251f;
  --surface-2: #1e2c25;
  --surface-3: #27382e;
  --line: #304237;
  --line-2: #455a4b;
  --ink: #e8eee7;
  --ink-2: #c6d3c8;
  --muted: #a2b4a6;
  --muted-2: #8da393;
  --plot-fill: #20352b;
  --plot-stroke: #8dbba1;
  --plot-hover: #304e3c;
  --plot-sel: #406c50;
  --plot-label: #e8eee7;
  --plot-halo: rgba(32,53,43,.94);
  --stage-bg: #15231c;
  --stage-dot: rgba(157,214,186,.1);
  --ring: 0 0 0 3px rgba(157,214,186,.3);
}
/* Quiet chrome, with one clear primary action. */
.notice-strip { background: var(--navy-950); color: #d0ddd5; font-size: 11.5px; }
.notice-inner { min-height: 29px; }
.notice-inner .ui-icon, .notice-aside { color: #c0d4c6; }
.logo, .page-icon, .op-access-ico { background: var(--primary); box-shadow: none; }
.topbar { background: var(--surface); }
.topbar-inner { gap: 32px; }
.brand-txt strong { font-size: 16px; letter-spacing: -.035em; }
.brand-txt small { font-size: 10.5px; letter-spacing: .025em; }
.top-link { font-size: 13px; font-weight: 500; padding-inline: 12px; }
.top-link.active, .top-link[aria-current="page"] { background: var(--primary-soft); font-weight: 600; }
.top-link.active::after { display: none; }
.auth-state { font-size: 11.5px; border: 1px solid var(--line); background: var(--surface-2); }
.btn, .service-view .btn { font-size: 13px; border-radius: var(--r-sm); }
.btn.primary:hover:not(:disabled) { box-shadow: 0 3px 10px -4px rgba(23,107,87,.35); }
.btn.gold:hover:not(:disabled) { background: #d7ae61; }
.btn.ghost { border-color: var(--line); }
.eyebrow { font-size: 10px; letter-spacing: .13em; }
/* A compact editorial introduction with a cadastral preview. */
.hero { background: var(--navy-900); }
.hero-inner { grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); padding-top: 42px; padding-bottom: 34px; gap: 68px; }
.hero-glow { background: radial-gradient(ellipse at 95% 5%, rgba(130,176,142,.14), transparent 60%); }
.hero-topo { opacity: .3; }
.hero-kicker { background: none; border: 0; padding: 0; border-radius: 0; color: #c6d9cc; font-size: 10px; text-transform: uppercase; letter-spacing: .14em; margin-bottom: 18px; }
.kicker-dot { background: #b8d4ae; box-shadow: none; }
.hero-title { font-size: clamp(32px,3.6vw,48px); font-weight: 600; line-height: 1.14; letter-spacing: -.045em; }
.hero-title span { background: none; color: #d8c397; }
.hero-sub { color: #c3d2c9; font-size: 14px; line-height: 1.7; margin-top: 16px; max-width: 59ch; }
.hero-search { margin-top: 24px; padding: 5px 5px 5px 14px; border-radius: 9px; box-shadow: 0 4px 16px rgba(0,0,0,.08); }
.hero-search input { font-size: 13px; height: 38px; }
.hero-search .btn { --btn-h: 40px; font-size: 12px; }
.hero-search:focus-within { box-shadow: 0 0 0 3px rgba(216,195,151,.4); }
.hero-quick { gap: 6px; margin-top: 12px; font-size: 11px; color: #bed0c4; }
.hero-quick button { font-size: 11px; height: 28px; padding-inline: 10px; border-radius: 5px; color: #dce6df; }
.hero-art { min-height: 280px; }
.art-window { inset: 0 0 30px 25px; transform: none; border-radius: 12px; animation: none; box-shadow: 0 15px 40px -15px rgba(0,0,0,.35); }
.art-bar { background: #f1f4ed; height: 34px; border-color: #dbe3d6; }
.art-bar > span { background: #c6d1c1; width: 6px; height: 6px; }
.art-bar em { color: #4b6556; font-size: 10px; }
.art-map { height: calc(100% - 34px); background: #f6f7f0; }
.art-map .plots polygon { fill: #eaf0e2; stroke: #689376; stroke-width: 1; }
.art-map .plots polygon.on { fill: #e9c67c; stroke: #987b42; animation: none; }
.art-map .plot-nos text { fill: #3e5b46; }
.art-record { width: 210px; padding: 13px; bottom: 0; left: 0; border-radius: 10px; animation: none; box-shadow: 0 12px 24px -12px rgba(0,0,0,.35); }
.art-ico { color: #176b57; background: #edf5f0; }
.art-record-head { padding-bottom: 8px; }
.art-record dl { gap: 5px; padding-top: 8px; }
.art-record dl div { font-size: 11px; }
.art-toast { right: -12px; top: -12px; padding: 8px 10px; font-size: 10px; border-radius: 7px; animation: none; }
.hero-stats li { flex-direction: row; align-items: center; gap: 10px; padding: 16px 20px 16px 0; }
.hero-stats li + li { padding-left: 20px; }
.hero-stats strong { font-size: 17px; font-weight: 600; color: #e9dfc8; }
.hero-stats span { font-size: 10.5px; color: #bdcfc2; max-width: 135px; }
/* The directory uses the same page grid as the service workspaces. */
.home-body { padding-top: 32px; padding-bottom: 48px; gap: 44px; }
.services-section { width: 100%; }
.section-heading { margin-bottom: 20px; }
.section-heading h2 { font-size: 24px; font-weight: 600; letter-spacing: -.04em; }
.section-heading p { font-size: 13px; margin-top: 5px; }
.services-layout { grid-template-columns: 216px minmax(0,1fr); gap: 24px; }
.svc-cats { padding: 6px; border-radius: 10px; box-shadow: none; }
.svc-cat { min-height: 42px; padding: 9px 10px; font-size: 12px; border-radius: 6px; }
.svc-cat.active { box-shadow: inset 3px 0 var(--primary); }
.svc-cat em { font-size: 10px; }
.svc-filter { width: 280px; }
.svc-filter input { height: 40px; font-size: 12px; border-color: var(--line); box-shadow: none; }
#home-groups { gap: 26px; }
.group-head { gap: 6px 12px; margin-bottom: 12px; padding-bottom: 10px; }
.group-head h3 { font-size: 14px; }
.group-head p { font-size: 11px; }
.svc-grid { grid-template-columns: repeat(auto-fill,minmax(245px,1fr)); gap: 10px; }
.svc-card { min-height: 80px; padding: 15px; border-radius: 10px; box-shadow: none; gap: 12px; }
.svc-card:hover { transform: none; background: var(--surface-2); box-shadow: var(--sh-sm); }
.svc-icon { width: 36px; height: 36px; border-radius: 9px; }
.svc-icon .ui-icon { width: 18px; height: 18px; }
.svc-text strong { font-size: 13px; line-height: 1.45; }
.svc-text small { font-size: 12px; line-height: 1.5; }
.svc-card > .ui-icon:last-child { width: 14px; height: 14px; }
.steps-strip { gap: 20px; }
.steps-strip li { padding: 22px; border: 1px solid var(--line); background: var(--surface); border-radius: 12px; }
.steps-strip li:not(:last-child)::after { display: none; }
.steps-strip strong { font-size: 15px; }
.steps-strip p { font-size: 13px; }
.trust-card { padding: 28px; border-radius: 14px; box-shadow: none; background: var(--surface); }
.trust-card { color: var(--ink); border: 1px solid var(--line); }
.trust-card::before { display: none; }
.trust-card .eyebrow { color: var(--primary-ink); }
.trust-card h2 { color: var(--ink); font-size: 26px; font-weight: 600; }
.trust-copy p { color: var(--muted); font-size: 14px; }
.trust-copy .trust-signup a { color: var(--primary-ink); }
.trust-list li { background: var(--surface-2); border-color: var(--line); padding: 12px; }
.trust-list li > span { color: var(--primary-ink); background: var(--primary-soft); }
.trust-list strong { color: var(--ink); font-size: 13px; }
.trust-list p { color: var(--muted); font-size: 12px; }
/* Shared service pages, results, and map controls. */
.page-heading { background: var(--surface-2); }
.page-heading::before { opacity: .45; }
.page-heading-inner { padding-block: 22px; }
.page-icon { width: 44px; height: 44px; border-radius: 10px; background: var(--primary-soft); color: var(--primary-ink); border: 1px solid var(--primary-100); }
.crumbs { font-size: 11px; margin-bottom: 5px; }
#page-title { font-size: 25px; font-weight: 600; letter-spacing: -.035em; }
#page-description { font-size: 12.5px; margin-top: 5px; }
.page-badge { font-size: 10.5px; background: var(--surface); border-radius: 6px; }
.workspace-grid { gap: 20px; padding-top: 24px; }
.panel, .guide-card, .history, .rec-card { box-shadow: var(--sh-sm); }
.form-body { padding: 20px; gap: 12px; }
.section-label h3 { font-size: 10px; letter-spacing: .09em; }
.section-label span { border-radius: 5px; width: 20px; height: 20px; }
.service-view .field { font-size: 12px; gap: 6px; }
.service-view .field input, .service-view .field select, .service-view .combo-btn:not(:disabled) { background-color: var(--surface-2); border-color: var(--line-2); }
.service-view .field input:focus, .service-view .field select:focus, .service-view .combo-btn.open { background-color: var(--surface); border-color: var(--primary); }
.actions { padding: 13px 20px; }
.action-note { font-size: 11px; }
.guide-card { padding: 20px; background: var(--surface-2); }
.guide-steps p { font-size: 12px; line-height: 1.65; margin-top: 3px; }
.source-note p { font-size: 11px; line-height: 1.6; }
.empty-state { padding: 32px 20px; border-style: solid; background: var(--surface-2); }
.empty-state h2 { font-weight: 600; }
.empty-state p { font-size: 12px; line-height: 1.7; }
.quick-section { margin-top: 28px; }
.quick-section h2 { font-size: 15px; }
.map-toolbar { padding: 10px; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; }
.map-empty { border-style: solid; padding: 40px 20px; }
.map-stage { border-radius: 10px; box-shadow: var(--sh-sm); }
.map-info, .map-zoom, .map-labelsize { box-shadow: var(--sh-md); }
.sat-status { background: var(--surface); box-shadow: var(--sh-md); }
.sat-err { color: var(--danger); }
.sat-titles p { color: #c3d7ca; }
.rec-card th { background: var(--primary-soft); color: var(--primary-ink); }
.tool-output { background: var(--primary-soft); border-left: 3px solid var(--primary); font-size: 22px; }
.site-footer { background: var(--navy-950); color: #b9cdc2; border-top: 0; }
.site-footer .brand-txt strong { color: #fff; }
.site-footer .brand-txt small, .footer-brand p, .footer-base { color: #9fb8ab; }
.footer-col h3 { color: #7f9c8d; }
.footer-col a { color: #dce8e1; }
.footer-col a:hover { color: #fff; }
.footer-base { border-top-color: rgba(255, 255, 255, .1); }
.footer-separator { color: #5f7d6f; }
.footer-grid { padding-top: 32px; padding-bottom: 28px; }
.footer-col h3 { font-size: 11px; letter-spacing: .07em; text-transform: uppercase; }
.footer-col a, .footer-brand p, .footer-base { font-size: 11.5px; }
/* Standalone legal and operator pages inherit the same visual language. */
.lg-hero { background: var(--navy-900); }
.lg-hero .wrap { padding-top: 32px; padding-bottom: 30px; }
.lg-hero h1 { font-size: clamp(28px,3vw,36px); font-weight: 600; }
.lg-hero .eyebrow { color: #d8c397; }
.lg-hero p, .lg-hero .lg-meta { color: #c3d2c9; }
.lg-layout { gap: 28px; padding-top: 28px; }
.lg-doc { border-radius: 12px; padding: 28px 32px; }
.lg-nav a { font-size: 13px; }
.op-title h1 { letter-spacing: -.04em; font-weight: 600; }
.op-panel { border-radius: 12px; box-shadow: var(--sh-sm); }
.op-access { border-top: 3px solid var(--primary); }
@media (max-width: 1080px) {
  .hero-inner { grid-template-columns: 1fr; padding-top: 36px; gap: 24px; }
  .hero-sub { max-width: 64ch; }
  .hero-search { max-width: 660px; }
  .services-layout { grid-template-columns: 1fr; gap: 20px; }
  .svc-cats { max-width: 100%; }
}
@media (max-width: 900px) {
  :root { --header-h: 60px; }
  .hero-stats li { padding-block: 14px; }
  .page-heading-inner { gap: 12px; }
  .topbar-inner { gap: 12px; }
  .notice-inner .notice-aside { display: none; }
}
@media (max-width: 600px) {
  .brand-txt strong { font-size: 13.5px; }
  .topbar-inner { gap: 8px; }
  .topbar .logo { width: 32px; height: 32px; }
  .brand { gap: 8px; }
  .notice-strip { font-size: 10px; }
  .auth-box { gap: 6px; }
  .icon-btn { width: 44px; height: 44px; }
  #login-btn, #logout-btn { --btn-h: 44px; padding-inline: 12px; }
  .hero-inner { padding-block: 28px; }
  .hero-title { font-size: 34px; }
  .hero-kicker { font-size: 9px; letter-spacing: .09em; }
  .hero-sub { font-size: 14px; }
  .hero-search { padding: 6px; margin-top: 20px; }
  .hero-search input { font-size: 16px; height: 44px; }
  .hero-search .btn { --btn-h: 44px; font-size: 13px; }
  .hero-quick button { min-height: 44px; font-size: 11px; }
  .hero-stats li { gap: 8px; padding-right: 10px; }
  .hero-stats li + li { padding-left: 10px; }
  .hero-stats li:nth-child(3) { padding-left: 0; }
  .hero-stats strong { font-size: 16px; }
  .hero-stats span { font-size: 10px; }
  .home-body { padding-top: 26px; gap: 32px; }
  .section-heading h2 { font-size: 22px; }
  .svc-filter { width: 100%; }
  .svc-filter input { font-size: 16px; height: 44px; }
  .svc-cat { min-height: 44px; }
  .svc-grid { grid-template-columns: minmax(0,1fr); }
  .svc-text strong { font-size: 14px; }
  .svc-text small { font-size: 12px; }
  .group-head p { font-size: 12px; }
  .page-heading-inner { padding-block: 18px; }
  #page-title { font-size: 22px; }
  .workspace-grid { padding-top: 16px; }
  .form-body, .guide-card { padding: 16px; }
  .actions { padding: 12px 16px; }
  .service-view .btn, .service-view .btn.sm, .service-view .map-tools .btn { --btn-h: 44px; }
  .service-view .field input, .service-view .field select, .service-view .field textarea { font-size: 16px; }
  .map-toolbar { padding: 8px; }
  .map-zoom button { width: 44px; height: 44px; }
  .map-search input, .mark-input input, .map-sheet select { font-size: 16px; }
  .map-tb-group { min-width: 0; width: 100%; }
  .map-tb-group .map-sheet { flex: 1 1 0; min-width: 0; }
  .map-tb-group select { min-width: 0; }
  .service-view .map-tb-group .btn { --btn-h: 44px; padding-inline: 10px; }
  .map-search { min-width: 0; height: 48px; }
  .map-search input { min-width: 0; }
  .map-search .btn { --btn-h: 40px; }
  .footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 16px; }
  .lg-doc { padding: 22px 18px; }
  .lg-nav a { min-height: 44px; }
  .footer-col a { padding-block: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
