:root {
  --ink: #152721;
  --forest: #173f35;
  --forest-2: #22594a;
  --mint: #d9eee6;
  --mint-soft: #edf7f2;
  --cream: #f5f3ed;
  --paper: #fffefa;
  --line: #d9ded9;
  --muted: #68766f;
  --orange: #e26d37;
  --shadow: 0 18px 60px rgba(19, 45, 37, .12);
  --radius: 20px;
  --surface: white;
  --border: var(--line);
  --text: var(--ink);
  --green: var(--forest-2);
  --green-light: #94bdaa;
  --green-pale: var(--mint-soft);
  --shadow-sm: 0 6px 20px rgba(19,45,37,.08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "DM Sans", sans-serif; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
:where(a,button,input,select,textarea,summary):focus-visible { outline:3px solid var(--forest-2); outline-offset:2px; }
.hidden { display: none !important; }
.eyebrow { color: var(--forest-2); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
h1, h2, h3 { font-family: "Manrope", sans-serif; letter-spacing: -.035em; margin: 0; }
.btn { align-items: center; border: 0; border-radius: 999px; display: inline-flex; font-weight: 700; gap: 9px; justify-content: center; padding: 12px 20px; transition: .2s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--forest); color: white; box-shadow: 0 9px 20px rgba(23,63,53,.2); }
.btn-primary:hover { background: var(--forest-2); }
.btn-light { background: white; color: var(--forest); }
.btn-ghost { background: transparent; color: var(--forest); border: 1px solid var(--line); }
.btn-danger { background: #fff1ed; color: #a63c21; }
.icon-btn { align-items:center; background:white; border:1px solid var(--line); border-radius:12px; display:flex; height:42px; justify-content:center; width:42px; }
.toast { display:flex; flex-direction:column; gap:10px; max-width:410px; pointer-events:none; position:fixed; right:22px; top:88px; width:calc(100% - 32px); z-index:3000; }
.toast:empty { display:none; }
.toast-item { align-items:flex-start; background:white; border:1px solid var(--line); border-left:4px solid var(--forest-2); border-radius:14px; box-shadow:0 16px 45px rgba(13,31,25,.22); display:grid; gap:12px; grid-template-columns:32px 1fr 28px; opacity:0; padding:14px; pointer-events:auto; transform:translateX(24px); transition:opacity .2s ease,transform .2s ease; }
.toast-item.show { opacity:1; transform:translateX(0); }
.toast-item.error { border-left-color:#bd3f28; }
.toast-item.warning { border-left-color:#d8851d; }
.toast-item.info { border-left-color:#3976a8; }
.toast-symbol { align-items:center; background:var(--mint); border-radius:50%; color:var(--forest); display:flex; font-weight:800; height:30px; justify-content:center; width:30px; }
.toast-item.error .toast-symbol { background:#fde5df; color:#a52f1c; }
.toast-item.warning .toast-symbol { background:#fff0d5; color:#9a5a08; }
.toast-item.info .toast-symbol { background:#e2eef7; color:#2e668f; }
.toast-copy strong { display:block; font-size:14px; margin:1px 0 3px; }
.toast-copy p { color:var(--muted); font-size:13px; line-height:1.45; margin:0; overflow-wrap:anywhere; }
.toast-close { align-items:center; background:transparent; border:0; color:var(--muted); display:flex; height:28px; justify-content:center; padding:0; width:28px; }
.toast-close:hover { background:var(--cream); border-radius:8px; }

.brand { align-items:center; display:flex; font:700 20px "Manrope",sans-serif; gap:9px; }
.brand-mark { align-items:center; display:flex; height:44px; justify-content:center; width:44px; }
.brand-mark img { display:block; height:44px; object-fit:contain; width:44px; }
.public-nav { align-items:center; display:flex; height:84px; justify-content:space-between; margin:auto; max-width:1240px; padding:0 28px; position:relative; z-index:5; }
.nav-links { align-items:center; display:flex; gap:32px; font-size:14px; font-weight:600; }
.nav-links a:hover { color:var(--forest-2); }

.hero { background:var(--cream); min-height:720px; overflow:hidden; position:relative; }
.hero-grid { align-items:center; display:grid; gap:60px; grid-template-columns:.92fr 1.08fr; margin:auto; max-width:1240px; padding:74px 28px 110px; }
.hero-copy { position:relative; z-index:2; }
.hero-copy h1 { font-size:clamp(48px,6vw,78px); line-height:1.02; margin:17px 0 25px; max-width:650px; }
.hero-copy h1 em { color:var(--forest-2); font-style:normal; }
.hero-copy > p { color:#52625a; font-size:19px; line-height:1.7; margin:0 0 34px; max-width:570px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.trust-note { align-items:center; color:var(--muted); display:flex; font-size:13px; gap:8px; margin-top:25px; }
.hero-map { background:#dce7dd; border:9px solid rgba(255,255,255,.8); border-radius:34px; box-shadow:var(--shadow); height:500px; overflow:hidden; position:relative; transform:rotate(1deg); }
.hero-map svg { height:100%; width:100%; }
.map-float { align-items:center; background:white; border-radius:14px; box-shadow:0 12px 30px rgba(26,54,44,.18); display:flex; gap:12px; left:20px; padding:13px 15px; position:absolute; top:22px; transform:rotate(-1deg); }
.map-float strong { display:block; font-size:14px; }
.map-float small { color:var(--muted); }
.pulse { background:var(--orange); border:4px solid #ffe4d7; border-radius:50%; height:18px; width:18px; }

.section { margin:auto; max-width:1180px; padding:104px 28px; }
.section-head { align-items:end; display:flex; justify-content:space-between; margin-bottom:50px; }
.section h2 { font-size:44px; line-height:1.15; margin-top:12px; max-width:650px; }
.section-head p { color:var(--muted); line-height:1.7; max-width:430px; }
.feature-grid { display:grid; gap:20px; grid-template-columns:repeat(3,1fr); }
.feature { border:1px solid var(--line); border-radius:var(--radius); padding:30px; }
.feature-icon { align-items:center; background:var(--mint); border-radius:14px; color:var(--forest); display:flex; font-size:22px; height:48px; justify-content:center; margin-bottom:48px; width:48px; }
.feature h3 { font-size:20px; margin-bottom:10px; }
.feature p { color:var(--muted); line-height:1.65; margin:0; }
.data-band { background:var(--forest); color:white; }
.data-inner { align-items:center; display:grid; gap:70px; grid-template-columns:1fr 1fr; margin:auto; max-width:1180px; padding:90px 28px; }
.data-inner h2 { font-size:42px; margin:12px 0 18px; }
.data-inner p { color:#bcd0c9; line-height:1.7; }
.data-list { display:grid; gap:12px; }
.data-item { align-items:center; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); border-radius:15px; display:flex; gap:14px; padding:17px; }
.data-item span:first-child { align-items:center; background:#fff; border-radius:50%; color:var(--forest); display:flex; height:27px; justify-content:center; width:27px; }
.public-footer { align-items:center; color:var(--muted); display:flex; font-size:13px; justify-content:space-between; margin:auto; max-width:1180px; padding:38px 28px; }
.access-denied-page { background:var(--cream); min-height:100vh; }
.access-denied-card { background:white; border:1px solid var(--line); border-radius:26px; box-shadow:var(--shadow); margin:80px auto; max-width:560px; padding:46px; text-align:center; }
.access-denied-symbol { align-items:center; background:var(--mint); border-radius:50%; color:var(--forest); display:flex; font-size:27px; height:62px; justify-content:center; margin:0 auto 22px; width:62px; }
.access-denied-card h1 { font-size:38px; margin:9px 0 14px; }
.access-denied-card p { color:var(--muted); line-height:1.65; margin:0 auto 28px; max-width:440px; }

.modal-backdrop { align-items:center; background:transparent; border:0; height:100%; justify-content:center; margin:0; max-height:none; max-width:none; padding:20px; width:100%; }
.modal-backdrop[open] { display:flex; }
.modal-backdrop::backdrop { background:rgba(13,31,25,.58); }
.modal { background:var(--paper); border-radius:24px; box-shadow:var(--shadow); max-height:92vh; overflow:auto; padding:32px; position:relative; width:min(480px,100%); }
.modal h2 { font-size:30px; margin-bottom:8px; }
.modal > p { color:var(--muted); margin:0 0 25px; }
.modal-close { position:absolute; right:22px; top:22px; }
.field { display:grid; gap:7px; margin-bottom:16px; }
.field label { font-size:13px; font-weight:700; }
.field input,.field select,.field textarea { background:white; border:1px solid var(--line); border-radius:12px; color:var(--ink); outline:none; padding:12px 13px; width:100%; }
.field textarea { min-height:85px; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--forest-2); box-shadow:0 0 0 3px var(--mint); }
.modal .btn { width:100%; }
.confirm-modal { overflow:visible; padding:34px; text-align:center; width:min(430px,100%); }
.confirm-modal h2 { font-size:25px; margin:14px 0 8px; }
.confirm-modal > p { line-height:1.55; margin:0 auto 26px; max-width:340px; }
.confirm-symbol { align-items:center; background:var(--mint); border-radius:50%; color:var(--forest); display:flex; font:800 22px "Manrope"; height:54px; justify-content:center; margin:-61px auto 0; outline:8px solid rgba(255,255,255,.25); width:54px; }
.confirm-symbol.danger { background:#fde5df; color:#a52f1c; }
.confirm-actions { display:grid; gap:10px; grid-template-columns:1fr 1fr; }
.confirm-actions .btn { width:100%; }
.confirm-actions .btn-danger { background:#b53f28; color:white; }
.confirm-actions .btn-danger:hover { background:#9f351f; }
.demo-logins { border-top:1px solid var(--line); display:grid; gap:9px; margin-top:22px; padding-top:20px; }
.demo-logins > span { color:var(--muted); font-size:12px; text-align:center; }
.demo-row { display:grid; gap:9px; grid-template-columns:1fr 1fr; }
.demo-user { background:var(--mint-soft); border:1px solid #d2e7de; border-radius:12px; color:var(--forest); padding:11px; }

.app-shell { background:#f4f5f2; min-height:100vh; }
.app-header { align-items:center; background:white; border-bottom:1px solid var(--line); display:flex; height:70px; justify-content:space-between; padding:0 22px; position:relative; z-index:500; }
.app-header .brand { font-size:18px; }
.header-right { align-items:center; display:flex; gap:11px; }
.primary-nav { align-items:center; display:flex; gap:5px; margin-left:auto; margin-right:18px; }
.primary-nav a { border-radius:10px; color:var(--muted); font-size:13px; font-weight:700; padding:9px 13px; }
.primary-nav a:hover { background:var(--mint-soft); color:var(--forest); }
.primary-nav a.active { background:var(--forest); color:white; }
.role-pill { background:var(--mint-soft); border-radius:999px; color:var(--forest); font-size:11px; font-weight:700; padding:7px 10px; text-transform:uppercase; }
.avatar { align-items:center; background:var(--forest); border-radius:50%; color:white; display:flex; font-size:12px; font-weight:700; height:38px; justify-content:center; width:38px; }
.user-menu { position:relative; }
.user-popover { background:white; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); padding:8px; position:absolute; right:0; top:48px; width:190px; z-index:900; }
.user-popover button,.user-popover a { background:none; border:0; border-radius:9px; color:var(--ink); display:block; padding:10px; text-align:left; width:100%; }
.user-popover button:hover,.user-popover a:hover { background:var(--cream); }
.user-popover-account { border-bottom:1px solid var(--line); display:grid; gap:2px; margin-bottom:5px; padding:7px 10px 10px; }
.user-popover-account small { color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.user-popover-nav { display:none; }

.dashboard { display:grid; grid-template-columns:360px 1fr; height:calc(100vh - 70px); }
.side-panel { background:white; border-right:1px solid var(--line); display:flex; flex-direction:column; overflow:hidden; position:relative; z-index:450; }
.map-sidebar-content { display:flex; flex:1; flex-direction:column; min-height:0; }
.panel-tabs { border-bottom:1px solid var(--line); display:flex; gap:5px; padding:14px 16px 0; }
.panel-tab { background:none; border:0; border-bottom:2px solid transparent; color:var(--muted); flex:1; font-size:13px; font-weight:700; padding:9px 10px 12px; }
.panel-tab.active { border-color:var(--forest); color:var(--forest); }
.search-wrap { padding:17px 16px 10px; }
.search-box { align-items:center; background:#f4f5f2; border:1px solid transparent; border-radius:13px; display:flex; gap:8px; padding:0 12px; }
.search-box:focus-within { background:white; border-color:var(--forest-2); }
.search-box input { background:transparent; border:0; outline:0; padding:12px 0; width:100%; }
.filters { display:flex; gap:7px; padding:0 16px 12px; }
.filter-chip { background:white; border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:12px; padding:7px 10px; }
.filter-chip.active { background:var(--forest); border-color:var(--forest); color:white; }
.selection-tools { align-items:center; border-bottom:1px solid var(--line); display:flex; gap:8px; min-height:43px; padding:3px 16px 10px; }
.selection-tools button { align-items:center; background:white; border:1px solid var(--line); border-radius:9px; color:var(--muted); display:inline-flex; font-size:10px; font-weight:750; gap:6px; padding:6px 8px; }
.selection-tools button:hover { border-color:var(--forest-2); color:var(--forest); }
.selection-tools small { color:var(--muted); font-size:9px; line-height:1.3; }
.multi-select-toggle.active { background:var(--forest); border-color:var(--forest); color:white; }
.multi-select-box { align-items:center; border:1px solid currentColor; border-radius:4px; display:flex; font-size:9px; height:14px; justify-content:center; width:14px; }
.clear-map-selection { margin-left:auto; }
.clear-map-selection b { align-items:center; background:var(--mint); border-radius:999px; color:var(--forest); display:flex; font-size:9px; height:17px; justify-content:center; min-width:17px; padding:0 4px; }
.property-select-check { align-items:center; border:1.5px solid #aab9b2; border-radius:5px; color:white; display:flex; flex:0 0 auto; font-size:10px; font-weight:900; height:18px; justify-content:center; width:18px; }
.property-select-check.checked { background:var(--forest); border-color:var(--forest); }
.results-meta { align-items:center; color:var(--muted); display:flex; font-size:12px; justify-content:space-between; padding:7px 18px; }
.property-list { flex:1; min-height:0; overflow:auto; padding:2px 8px 10px; }
.property-card { background:white; border:0; border-bottom:1px solid #edf0ed; border-radius:10px; color:var(--ink); cursor:pointer; display:block; font:inherit; padding:9px 10px; text-align:left; transition:.18s; width:100%; }
.property-card:hover { background:var(--mint-soft); }
.property-card:focus-visible { outline:2px solid var(--forest-2); outline-offset:-2px; }
.property-card.active { background:var(--mint-soft); box-shadow:inset 3px 0 var(--forest); }
.property-top { align-items:center; display:flex; gap:8px; justify-content:space-between; }
.property-heading { min-width:0; }
.property-card h3 { font-size:13.5px; letter-spacing:-.01em; line-height:1.25; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.property-card p { color:var(--muted); font-size:10.5px; line-height:1.25; margin:2px 0 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.status { border-radius:999px; flex:none; font-size:9px; font-weight:700; padding:3px 6px; }
.status.active { background:#dff3e6; color:#237044; }
.status.review { background:#fff1db; color:#9b5d0c; }
.property-facts { display:flex; margin-top:5px; }
.property-facts span { color:var(--muted); font-size:10px; line-height:1.2; }
.property-facts span + span::before { color:#b7c0bb; content:'•'; margin:0 6px; }
.map-card-relations { background:#f7f9f7; border-radius:8px; display:grid; gap:3px; margin-top:7px; padding:6px 8px; }
.map-card-relations span { color:#42554d; font-size:9.5px; line-height:1.25; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.map-card-relations b { color:var(--forest); display:inline-block; font-size:8px; letter-spacing:.04em; margin-right:6px; min-width:42px; text-transform:uppercase; }
.map-card-relations .previous { color:var(--muted); }
.map-card-relations .previous b { color:#7a8781; }
.owner-map-card { padding-bottom:10px; }
.owner-map-heading { align-items:center; display:grid; gap:9px; grid-template-columns:30px minmax(0,1fr); }
.owner-map-heading > div { min-width:0; }
.owner-map-heading .owner-avatar { height:30px; width:30px; }
.map-owner-properties { align-items:center; display:flex; gap:5px; margin-top:8px; min-width:0; overflow:hidden; }
.map-owner-properties b { color:var(--muted); flex:none; font-size:8px; letter-spacing:.04em; text-transform:uppercase; }
.map-owner-properties span { background:#f1f5f2; border-radius:999px; color:#40534b; font-size:9px; max-width:115px; overflow:hidden; padding:4px 7px; text-overflow:ellipsis; white-space:nowrap; }
.map-owner-properties span i { background:#3f8d68; border-radius:50%; display:inline-block; height:5px; margin-right:5px; vertical-align:1px; width:5px; }
.map-owner-properties span.previous i { background:#a0aaa5; }
.map-owner-properties em { color:var(--muted); flex:none; font-size:9px; font-style:normal; }
.map-pagination { align-items:center; background:white; border-top:1px solid var(--line); display:flex; flex:none; justify-content:space-between; padding:9px 12px; }
.map-pagination span { color:var(--muted); font-size:10px; }
.map-pagination strong { color:var(--ink); }
.map-pagination button { align-items:center; background:white; border:1px solid var(--line); border-radius:8px; color:var(--forest); display:flex; font-size:18px; height:30px; justify-content:center; line-height:1; width:34px; }
.map-pagination button:hover:not(:disabled) { background:var(--mint-soft); border-color:#bcdacf; }
.map-pagination button:disabled { cursor:not-allowed; opacity:.35; }

.map-area { position:relative; }
#map { height:100%; width:100%; z-index:1; }
.place-search { left:64px; max-width:390px; position:absolute; top:18px; width:calc(100% - 140px); z-index:450; }
.place-search form { align-items:center; background:white; border:1px solid var(--line); border-radius:13px; box-shadow:0 7px 22px rgba(20,45,38,.15); display:flex; min-height:44px; overflow:hidden; padding-left:12px; }
.place-search form > span { color:var(--muted); display:flex; }
.place-search input { background:transparent; border:0; min-width:0; outline:0; padding:12px 9px; width:100%; }
.place-search form button { align-self:stretch; background:var(--forest); border:0; color:white; font-size:11px; font-weight:700; padding:0 15px; }
.place-search form button:disabled { cursor:wait; opacity:.7; }
.place-results { background:white; border:1px solid var(--line); border-radius:13px; box-shadow:0 14px 35px rgba(20,45,38,.18); margin-top:7px; overflow:hidden; }
.place-results[hidden] { display:none; }
.place-results > button { align-items:center; background:white; border:0; border-bottom:1px solid #edf0ed; display:grid; gap:9px; grid-template-columns:20px minmax(0,1fr) auto; padding:11px 12px; text-align:left; width:100%; }
.place-results > button:hover,.place-results > button:focus { background:var(--mint-soft); outline:0; }
.place-results strong { display:block; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.place-results small { color:var(--muted); display:block; font-size:10px; margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.place-results em { background:#eef2ef; border-radius:999px; color:var(--muted); font-size:9px; font-style:normal; max-width:80px; overflow:hidden; padding:4px 7px; text-overflow:ellipsis; text-transform:capitalize; white-space:nowrap; }
.place-pin { color:var(--orange); font-size:10px; text-align:center; }
.place-attribution { color:var(--muted); font-size:9px; padding:7px 12px; text-align:right; }
.place-empty { color:var(--muted); font-size:12px; padding:16px; text-align:center; }
.map-tools { display:flex; flex-direction:column; gap:8px; position:absolute; right:18px; top:18px; z-index:400; }
.map-tool { align-items:center; background:white; border:1px solid var(--line); border-radius:11px; box-shadow:0 5px 15px rgba(20,45,38,.1); color:var(--forest); display:flex; height:42px; justify-content:center; width:42px; }
.map-tool:hover { background:var(--mint-soft); border-color:#b8cfc4; }
.map-tool.active { background:var(--forest); border-color:var(--forest); color:white; }
.area-summary-toggle span { font-family:Georgia,serif; font-size:21px; line-height:1; }
.area-summary-window { background:rgba(255,255,255,.97); border:1px solid var(--line); border-radius:15px; box-shadow:0 10px 30px rgba(20,45,38,.17); overflow:hidden; position:absolute; right:70px; top:18px; width:260px; z-index:400; }
.area-summary-head { align-items:center; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; padding:11px 13px; }
.area-summary-head > span { display:flex; flex-direction:column; }
.area-summary-head small { color:var(--muted); font-size:8px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.area-summary-head strong { font-size:12px; margin-top:2px; }
.area-summary-head button { align-items:center; background:transparent; border:0; border-radius:7px; color:var(--muted); display:flex; height:27px; justify-content:center; width:27px; }
.area-summary-head button:hover { background:var(--cream); color:var(--forest); }
.area-summary-value { display:flex; flex-direction:column; padding:14px 15px 13px; }
.area-summary-value > small { color:var(--muted); font-size:9px; text-transform:uppercase; }
.area-summary-value > strong { color:var(--forest); font-size:26px; letter-spacing:-.03em; margin:2px 0; }
.area-summary-value > span { color:var(--muted); font-size:10px; }
.area-summary-window > p { background:#fff8e8; color:#806123; font-size:9px; line-height:1.4; margin:0; padding:8px 14px; }
.area-summary-empty { display:flex; flex-direction:column; gap:4px; padding:15px; }
.area-summary-empty strong { font-size:12px; }
.area-summary-empty span { color:var(--muted); font-size:10px; line-height:1.4; }
.map-legend { background:rgba(255,255,255,.95); border:1px solid var(--line); border-radius:12px; bottom:22px; box-shadow:0 5px 18px rgba(20,45,38,.1); font-size:11px; padding:10px 13px; position:absolute; right:18px; z-index:400; }
.legend-row { align-items:center; display:flex; gap:7px; margin:5px 0; }
.legend-swatch { border:2px solid var(--forest-2); height:12px; width:18px; }
.legend-swatch.review { border-color:var(--orange); }
.detail-card { background:white; border:1px solid var(--line); border-radius:18px; bottom:22px; box-shadow:var(--shadow); left:22px; padding:20px; position:absolute; width:330px; z-index:400; }
.detail-card h3 { font-size:20px; margin:8px 0 3px; }
.detail-card .address { color:var(--muted); font-size:13px; }
.detail-close { position:absolute; right:12px; top:12px; }
.detail-grid { border-bottom:1px solid var(--line); border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr; margin:16px 0; padding:13px 0; row-gap:13px; }
.detail-grid small { color:var(--muted); display:block; font-size:10px; margin-bottom:2px; text-transform:uppercase; }
.detail-grid strong { font-size:13px; }
.detail-card.has-areas { max-height:calc(100% - 44px); overflow-y:auto; width:370px; }
.detail-areas { border-bottom:1px solid var(--line); margin:-3px 0 16px; padding-bottom:12px; }
.detail-areas summary { align-items:center; cursor:pointer; display:flex; justify-content:space-between; list-style:none; padding:3px 0; }
.detail-areas summary::-webkit-details-marker { display:none; }
.detail-areas summary strong,.expanded-area-title strong { font-size:12px; }
.detail-areas summary span,.expanded-area-title span { color:var(--muted); font-size:10px; }
.detail-areas summary i { display:inline-block; font-size:13px; font-style:normal; margin-left:3px; transition:transform .18s; }
.detail-areas[open] summary { margin-bottom:9px; }
.detail-areas[open] summary i { transform:rotate(180deg); }
.expanded-area-title { align-items:center; display:flex; justify-content:space-between; margin-bottom:9px; }
.area-list { display:grid; gap:6px; }
.area-list-item { align-items:center; background:#f7f9f7; border:1px solid #e5ebe7; border-radius:9px; color:var(--ink); display:grid; gap:8px; grid-template-columns:auto minmax(0,1fr) auto auto; min-height:42px; padding:8px 10px; text-align:left; width:100%; }
.area-list-item.interactive { grid-template-columns:auto minmax(0,1fr) auto auto auto; }
.area-list-item.manageable { grid-template-columns:auto minmax(0,1fr) auto auto auto; }
.area-delete-button { background:white; border:1px solid #e7b8aa; border-radius:7px; color:#a63c21; font-size:9px; font-weight:750; padding:5px 7px; }
.area-delete-button:hover { background:#fff1ed; border-color:#d98b75; }
.area-list-item.interactive { cursor:pointer; transition:border-color .15s,background .15s; }
.area-list-item.interactive:hover { background:#eef5f1; border-color:#bdd2c7; }
.area-number { font-size:11px; font-weight:700; }
.area-designation { font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.area-size { color:var(--muted); display:flex; flex-direction:column; font-size:10px; line-height:1.15; white-space:nowrap; }
.area-size small { color:#718078; font-size:8px; font-weight:600; letter-spacing:.02em; }
.area-calculation-note { background:#fff8e8; border-radius:7px; color:#806123; font-size:10px; margin:-8px 0 14px; padding:7px 9px; }
.vvo-area-cell { display:flex; flex-direction:column; line-height:1.25; white-space:nowrap; }
.vvo-area-cell strong { color:var(--forest); }
.vvo-area-cell small { color:var(--muted); font-size:9px; font-weight:400; margin-top:2px; }
.area-geometry-icon { align-items:center; background:#edf0ee; border-radius:50%; color:#7b8781; display:flex; font-size:11px; font-weight:800; height:21px; justify-content:center; width:21px; }
.area-geometry-icon.synced { background:#dff3e6; color:#237044; }
.area-geometry-icon.error { background:#fff1ed; color:#a63c21; }
.area-focus-arrow { color:var(--forest); font-size:18px; line-height:1; }
.detail-owners { margin-top:-4px; }
.detail-owner-empty { border-bottom:1px solid var(--line); font-size:11px; margin:-3px 0 14px; padding:0 0 12px; }
.owner-groups { display:grid; gap:10px; }
.owner-group-title { align-items:center; display:flex; justify-content:space-between; margin-bottom:6px; }
.owner-group-title strong { font-size:11px; }
.owner-group-title span { color:var(--muted); font-size:9px; }
.owner-list { display:grid; gap:5px; }
.owner-list-item { align-items:center; background:#f7f9f7; border:1px solid #e5ebe7; border-radius:9px; display:grid; gap:8px; grid-template-columns:30px minmax(0,1fr) auto; padding:7px 9px; }
.owner-avatar { align-items:center; background:var(--mint); border-radius:50%; color:var(--forest); display:flex; flex:none; font-size:10px; font-weight:800; height:28px; justify-content:center; width:28px; }
.owner-main { min-width:0; }
.owner-main strong { display:block; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.owner-main small { color:var(--muted); display:block; font-size:9px; margin-top:2px; }
.owner-share { background:white; border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:9px; padding:3px 6px; }
.owner-empty { color:var(--muted); font-size:10px; }
.previous-owners { border-top:1px solid #e4e9e6; padding-top:8px; }
.previous-owners summary { color:var(--muted); cursor:pointer; display:flex; font-size:10px; font-weight:700; justify-content:space-between; list-style:none; margin-bottom:0; }
.previous-owners summary::-webkit-details-marker { display:none; }
.previous-owners[open] summary { margin-bottom:7px; }
.owner-property-group { margin-bottom:13px; }
.owner-property-links { display:grid; gap:6px; }
.owner-property-links a { align-items:center; background:#f7f9f7; border:1px solid #e5ebe7; border-radius:9px; color:var(--ink); display:flex; gap:9px; justify-content:space-between; padding:8px 10px; text-align:left; width:100%; }
.owner-property-links a:hover { background:#eef5f1; border-color:#bdd2c7; }
.owner-property-links a span { min-width:0; }
.owner-property-links strong { display:block; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.owner-property-links small { color:var(--muted); display:block; font-size:9px; margin-top:2px; }
.owner-property-links i { color:var(--forest); font-size:18px; font-style:normal; }
.owner-property-history { margin-top:2px; }
.owner-property-history summary { margin-bottom:0; }
.owner-detail-card .address { line-height:1.4; }
.leaflet-control-zoom { border:0 !important; box-shadow:0 5px 15px rgba(20,45,38,.12) !important; }
.leaflet-control-zoom a { color:var(--forest) !important; }

.admin-page { margin:auto; max-width:1180px; padding:34px 24px 70px; }
.admin-head { align-items:end; display:flex; justify-content:space-between; margin-bottom:20px; }
.admin-head h1 { font-size:34px; margin:6px 0; }
.admin-head p { color:var(--muted); margin:0; }
.admin-tabs { background:#e9ece8; border:1px solid #dfe4df; border-radius:14px; display:inline-flex; gap:4px; margin-bottom:20px; padding:5px; }
.admin-tabs a { align-items:center; background:transparent; border-radius:10px; color:var(--muted); display:flex; font-size:13px; font-weight:700; gap:9px; padding:10px 15px; }
.admin-tabs a:hover { color:var(--forest); }
.admin-tabs a.active { background:white; box-shadow:0 3px 10px rgba(20,45,38,.09); color:var(--forest); }
.admin-tabs small { align-items:center; background:rgba(23,63,53,.08); border-radius:999px; display:flex; font-size:9px; height:20px; justify-content:center; min-width:20px; padding:0 6px; }
.admin-tabs a.active small { background:var(--mint); }
.stats-row { display:grid; gap:14px; grid-template-columns:repeat(4,1fr); margin-bottom:23px; }
.stat-card { background:white; border:1px solid var(--line); border-radius:16px; padding:18px; }
.stat-card small { color:var(--muted); display:block; margin-bottom:9px; }
.stat-card strong { font:700 27px "Manrope"; }
.access-panel { background:white; border:1px solid var(--line); border-radius:18px; margin-bottom:18px; overflow:hidden; }
.access-head { align-items:end; display:flex; gap:24px; justify-content:space-between; padding:20px 22px; }
.access-head h2 { font-size:20px; margin:4px 0; }
.access-head p { color:var(--muted); font-size:12px; margin:0; }
.access-head form { align-items:center; display:flex; gap:8px; }
.access-head input,.access-head select { background:white; border:1px solid var(--line); border-radius:10px; outline:0; padding:10px 11px; }
.access-head input { min-width:230px; }
.access-head input:focus,.access-head select:focus { border-color:var(--forest-2); box-shadow:0 0 0 3px var(--mint); }
.access-head .btn { padding:10px 15px; white-space:nowrap; }
.access-head .user-create-form { display:grid; gap:8px; grid-template-columns:minmax(145px,1fr) minmax(155px,1fr) minmax(145px,1fr) minmax(180px,1fr) 120px auto; width:100%; }
.access-head .user-create-form input { min-width:0; width:100%; }
.access-head:has(.user-create-form) { align-items:stretch; flex-direction:column; }
.access-list { border-top:1px solid var(--line); }
.access-user { align-items:center; border-top:1px solid #edf0ed; display:grid; gap:11px; grid-template-columns:34px minmax(190px,1fr) 90px 100px 100px; padding:10px 15px; }
.access-user:first-child { border-top:0; }
.access-avatar { align-items:center; background:var(--mint-soft); border-radius:50%; color:var(--forest); display:flex; font-size:12px; font-weight:800; height:32px; justify-content:center; width:32px; }
.access-user strong { display:block; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.access-user small { color:var(--muted); display:block; font-size:10px; margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.access-role { color:var(--muted); font-size:10px; font-weight:700; text-transform:uppercase; }
.access-status { border-radius:999px; font-size:9px; font-weight:700; justify-self:start; padding:4px 7px; }
.access-status.active { background:#dff3e6; color:#237044; }
.access-status.invited { background:#fff1db; color:#9b5d0c; }
.access-user > button { background:none; border:0; color:#a63c21; font-size:10px; padding:6px; }
.access-user > button:disabled { color:var(--muted); cursor:not-allowed; opacity:.4; }
.table-card { background:white; border:1px solid var(--line); border-radius:18px; overflow:hidden; }
.sync-panel { background:var(--forest); border-radius:18px; color:white; margin-bottom:18px; padding:20px 22px; }
.sync-panel-main { align-items:center; display:flex; gap:20px; justify-content:space-between; }
.sync-panel-copy { align-items:center; display:flex; gap:15px; }
.sync-panel h3 { font-size:17px; margin-bottom:4px; }
.sync-panel p { color:#bdd2ca; font-size:13px; margin:0; }
.sync-icon { align-items:center; background:rgba(255,255,255,.12); border-radius:50%; display:flex; flex:0 0 auto; font-size:24px; height:46px; justify-content:center; width:46px; }
.sync-panel.is-syncing .sync-icon { animation:import-spin 1.1s linear infinite; }
.sync-panel .btn { background:white; color:var(--forest); flex:0 0 auto; }
.sync-panel.not-configured { background:#5f6b66; }
.sync-panel .btn:disabled { cursor:not-allowed; opacity:.6; transform:none; }
.sync-progress { border-top:1px solid rgba(255,255,255,.16); margin-top:17px; padding-top:15px; }
.sync-progress-copy { align-items:flex-start; display:flex; gap:16px; justify-content:space-between; margin-bottom:10px; }
.sync-progress-copy strong { display:block; font-size:13px; }
.sync-progress-copy small { color:#bdd2ca; display:block; font-size:11px; margin-top:3px; }
.sync-progress-copy > span { color:white; font-size:12px; font-weight:800; }
.sync-progress .progress-track { background:rgba(255,255,255,.16); }
.sync-progress .progress-track > span { background:linear-gradient(90deg,#8fd0b1,#fff); }
.sync-log { border-top:1px solid rgba(255,255,255,.14); margin-top:14px; padding-top:12px; }
.sync-log summary { align-items:center; color:white; cursor:pointer; display:flex; font-size:11px; font-weight:700; gap:12px; justify-content:space-between; list-style:none; }
.sync-log summary::-webkit-details-marker { display:none; }
.sync-log summary::before { content:'›'; font-size:18px; line-height:1; transition:transform .2s ease; }
.sync-log[open] summary::before { transform:rotate(90deg); }
.sync-log summary span:first-child { flex:1; }
.sync-log summary span:last-child { color:#bdd2ca; font-weight:500; }
.sync-log-list { background:rgba(255,255,255,.07); border-radius:12px; margin-top:11px; max-height:340px; overflow:auto; }
.sync-log-item { align-items:center; border-bottom:1px solid rgba(255,255,255,.1); display:grid; gap:10px; grid-template-columns:26px minmax(150px,.8fr) minmax(220px,1.4fr); padding:10px 12px; }
.sync-log-item:last-child { border-bottom:0; }
.sync-log-symbol { align-items:center; background:#dff3e6; border-radius:50%; color:#237044; display:flex; font-size:11px; font-weight:900; height:22px; justify-content:center; width:22px; }
.sync-log-item.failed .sync-log-symbol { background:#ffe5dd; color:#a63c21; }
.sync-log-property strong,.sync-log-result strong { display:block; font-size:11px; }
.sync-log-property small,.sync-log-result small { color:#bdd2ca; display:block; font-size:10px; margin-top:2px; overflow-wrap:anywhere; }
.sync-log-item.failed .sync-log-result strong { color:#ffc2af; }
.sync-log-empty { color:#bdd2ca; font-size:11px; padding:14px; text-align:center; }
.table-tools { align-items:center; border-bottom:1px solid var(--line); display:flex; gap:10px; justify-content:space-between; padding:14px; }
.import-help { background:#fafaf7; border-bottom:1px solid var(--line); color:var(--muted); font-size:12px; padding:10px 15px; }
.table-search { max-width:340px; width:100%; }
table { border-collapse:collapse; width:100%; }
th { background:#fafaf7; color:var(--muted); font-size:11px; letter-spacing:.05em; padding:12px 16px; text-align:left; text-transform:uppercase; }
td { border-top:1px solid #edf0ed; font-size:13px; padding:14px 16px; }
.table-actions { display:flex; gap:6px; }
.table-actions button { background:none; border:1px solid var(--line); border-radius:8px; padding:6px 8px; }
.property-table-row.expanded td { background:#fbfcfb; border-bottom:0; }
.area-toggle { align-items:center; background:none; border:0; color:var(--forest); display:flex; font-size:10px; font-weight:700; gap:5px; margin-top:6px; padding:0; }
.area-toggle i { font-size:13px; font-style:normal; }
.single-area-label { color:var(--muted); display:block; font-size:10px; margin-top:6px; }
.area-detail-row td { background:#f7f9f7; padding:0 16px 15px; }
.expanded-area-panel { border-left:3px solid #94bdaa; margin-left:4px; padding:12px 14px; }
.expanded-owner-panel { border-left-color:#d08a55; }
.expanded-owner-panel .owner-groups { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.expanded-owner-panel .previous-owners { border-left:1px solid var(--line); border-top:0; padding-left:14px; padding-top:0; }
.expanded-owner-panel .previous-owners summary { margin-bottom:7px; }
.owner-summary { display:block; font-size:11px; font-weight:700; max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.owner-summary.missing { color:var(--muted); font-weight:500; }
.admin-area-list { grid-template-columns:repeat(auto-fit,minmax(380px,1fr)); }
.table-pagination { align-items:center; border-top:1px solid var(--line); display:flex; justify-content:space-between; padding:14px 16px; }
.table-pagination > span { color:var(--muted); font-size:11px; }
.table-pagination > div { align-items:center; display:flex; gap:5px; }
.table-pagination button { background:white; border:1px solid var(--line); border-radius:8px; color:var(--ink); font-size:11px; min-width:32px; padding:7px 9px; }
.table-pagination button.active { background:var(--forest); border-color:var(--forest); color:white; }
.table-pagination button:disabled { cursor:not-allowed; opacity:.4; }
.pagination-gap { color:var(--muted); padding:0 2px; }
.geo-status { border-radius:999px; display:inline-block; font-size:10px; font-weight:700; padding:5px 8px; }
.geo-status.synced { background:#dff3e6; color:#237044; }
.geo-status.missing { background:#eef0ee; color:#68766f; }
.geo-status.error { background:#fff1ed; color:#a63c21; }
.sync-error { color:#a63c21; display:block; margin-top:5px; max-width:190px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.import-label { overflow:hidden; position:relative; transition:opacity .2s,background .2s; }
.import-label input { inset:0; opacity:0; position:absolute; }
.import-label.is-importing { background:#eef1ee; color:var(--muted); cursor:not-allowed; opacity:.78; pointer-events:none; }
.import-spinner { animation:import-spin .75s linear infinite; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; display:none; height:15px; margin-right:7px; width:15px; }
.import-label.is-importing .import-spinner { display:inline-block; }
.import-progress { background:#f7faf8; border-bottom:1px solid var(--line); padding:13px 15px 14px; }
.import-progress[hidden] { display:none; }
.import-progress-copy { align-items:center; display:flex; font-size:12px; justify-content:space-between; margin-bottom:8px; }
.import-progress-copy strong { color:var(--ink); }
.import-progress-copy span,.import-progress small { color:var(--muted); }
.import-progress small { display:block; font-size:11px; margin-top:7px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.progress-track { background:#dfe7e2; border-radius:999px; height:7px; overflow:hidden; }
.progress-track span { background:linear-gradient(90deg,var(--forest),#6aaa8d); border-radius:inherit; display:block; height:100%; transition:width .3s ease; width:0; }
.owner-cell { align-items:center; display:flex; gap:9px; min-width:190px; }
.owner-cell strong { display:block; font-size:12px; }
.owner-cell small { color:var(--muted); display:block; font-size:9px; margin-top:2px; }
.ownership-count { align-items:center; border-radius:999px; display:inline-flex; font-size:10px; font-weight:800; justify-content:center; min-width:28px; padding:5px 8px; }
.ownership-count.current { background:#dff3e6; color:#237044; }
.ownership-count.previous { background:#eef0ee; color:#68766f; }
.owner-properties { display:flex; flex-wrap:wrap; gap:4px; max-width:220px; }
.owner-properties span { background:var(--mint-soft); border-radius:999px; color:var(--forest); font-size:9px; font-weight:700; padding:4px 6px; }
.owner-properties small { color:var(--muted); font-size:9px; padding:4px 2px; }
.owner-address { color:var(--muted); font-size:10px; max-width:220px; }
@keyframes import-spin { to { transform:rotate(360deg); } }
.empty-state { color:var(--muted); padding:50px; text-align:center; }

@media (max-width: 900px) {
  .nav-links a { display:none; }
  .hero-grid,.data-inner { grid-template-columns:1fr; }
  .hero-grid { padding-top:45px; }
  .hero-map { height:420px; }
  .section-head { align-items:start; flex-direction:column; }
  .feature-grid { grid-template-columns:1fr; }
  .feature-icon { margin-bottom:24px; }
  .dashboard { grid-template-columns:300px 1fr; }
  .stats-row { grid-template-columns:1fr 1fr; }
}
@media (max-width: 680px) {
  .toast { left:16px; right:16px; top:82px; width:auto; }
  .public-nav { height:70px; padding:0 18px; }
  .nav-links { gap:8px; }
  .nav-links .btn { padding:10px 14px; }
  .hero-grid { padding:40px 18px 70px; }
  .hero-copy h1 { font-size:45px; }
  .hero-map { height:330px; }
  .section { padding:75px 18px; }
  .section h2,.data-inner h2 { font-size:34px; }
  .data-inner { padding:70px 18px; }
  .public-footer { align-items:start; flex-direction:column; gap:13px; }
  .role-pill,.primary-nav { display:none; }
  .user-popover-nav { border-bottom:1px solid var(--line); display:grid; margin-bottom:5px; padding-bottom:5px; }
  .dashboard { display:block; height:calc(100vh - 70px); }
  .side-panel { border-bottom:1px solid var(--line); height:44%; position:absolute; bottom:0; left:0; right:0; z-index:500; }
  .map-area { height:56%; }
  .place-search { left:58px; max-width:none; right:12px; top:12px; width:auto; }
  .place-search form button { padding:0 12px; }
  .map-tools { top:68px; }
  .area-summary-window { right:66px; top:68px; width:min(250px,calc(100% - 84px)); }
  .detail-card,.detail-card.has-areas { bottom:14px; left:12px; max-height:calc(100% - 28px); width:calc(100% - 24px); }
  .map-legend { display:none; }
  .admin-head { align-items:start; flex-direction:column; gap:18px; }
  .admin-tabs { display:flex; width:100%; }
  .admin-tabs { display:flex; overflow-x:auto; width:100%; }
  .admin-tabs a { flex:0 0 auto; justify-content:center; }
  .access-head { align-items:stretch; flex-direction:column; }
  .access-head form { align-items:stretch; flex-direction:column; }
  .access-head .user-create-form { grid-template-columns:1fr; }
  .access-head input { min-width:0; width:100%; }
  .access-user { grid-template-columns:34px minmax(0,1fr) auto; }
  .access-role { display:none; }
  .access-status { grid-column:2; }
  .access-user > button { grid-column:3; grid-row:1 / span 2; }
  .sync-panel-main { align-items:stretch; flex-direction:column; gap:16px; }
  .sync-panel-main .btn { width:100%; }
  .sync-log summary { align-items:flex-start; flex-wrap:wrap; }
  .sync-log summary span:last-child { padding-left:30px; width:100%; }
  .sync-log-item { align-items:flex-start; grid-template-columns:26px 1fr; }
  .sync-log-result { grid-column:2; }
  .stats-row { grid-template-columns:1fr 1fr; }
  .table-card { overflow-x:auto; }
  table { min-width:720px; }
  .table-pagination { align-items:flex-start; flex-direction:column; gap:10px; min-width:720px; }
  .expanded-owner-panel .owner-groups { grid-template-columns:1fr; }
  .expanded-owner-panel .previous-owners { border-left:0; border-top:1px solid var(--line); padding-left:0; padding-top:8px; }
}


.settings-panel { background:white; border:1px solid var(--line); border-radius:18px; max-width:900px; overflow:hidden; }
.settings-intro { align-items:flex-start; border-bottom:1px solid var(--line); display:flex; gap:16px; padding:24px; }
.settings-intro h2 { font-size:23px; margin:4px 0 7px; }
.settings-intro p { color:var(--muted); line-height:1.55; margin:0; max-width:650px; }
.settings-icon { align-items:center; background:var(--mint); border-radius:13px; color:var(--forest); display:flex; flex:0 0 auto; font-size:25px; height:48px; justify-content:center; width:48px; }
.settings-form { padding:24px; }
.settings-fields { display:grid; gap:15px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.settings-fields .field { margin:0; }
.settings-fields .field small { color:var(--muted); font-size:10px; }
.settings-preview { background:var(--mint-soft); border:1px solid #dce9e2; border-radius:13px; display:grid; gap:3px; margin-top:20px; padding:15px 17px; }
.settings-preview span { color:var(--muted); font-size:10px; font-weight:700; text-transform:uppercase; }
.settings-preview strong { color:var(--forest); font-size:16px; }
.settings-preview small { color:var(--muted); font-size:10px; }
.settings-actions { align-items:center; display:flex; gap:9px; justify-content:flex-end; margin-top:20px; }
.settings-section-actions { display:flex; justify-content:flex-start; margin-top:14px; }
.settings-section-actions .btn { padding:9px 14px; }
.settings-page-form { display:grid; gap:18px; max-width:1000px; }
.settings-page-form .settings-panel { max-width:none; }
.geoportal-fields { display:grid; gap:15px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:18px; }
.geoportal-fields .field { margin:0; }
.geoportal-fields .field > small { color:var(--muted); display:block; font-size:10px; line-height:1.4; margin-top:5px; }
.credential-field { align-content:start; }
.credential-label { align-items:center; display:flex; justify-content:space-between; min-height:19px; }
.credential-label label { margin:0; }
.credential-label > span { background:var(--mint-soft); border:1px solid #d6e8df; border-radius:999px; color:var(--forest-2); font-size:8px; font-weight:800; letter-spacing:.07em; padding:3px 7px; text-transform:uppercase; }
.credential-control { align-items:stretch; background:white; border:1px solid var(--line); border-radius:12px; display:grid; grid-template-columns:43px minmax(0,1fr); min-height:45px; overflow:hidden; transition:border-color .15s,box-shadow .15s; }
.credential-control:focus-within { border-color:var(--forest-2); box-shadow:0 0 0 3px var(--mint); }
.credential-control > span { align-items:center; background:#f1f6f3; border-right:1px solid var(--line); color:var(--forest); display:flex; font-family:"Manrope",sans-serif; font-size:10px; font-weight:800; justify-content:center; letter-spacing:.05em; }
.credential-control input { background:transparent; border:0; border-radius:0; box-shadow:none!important; min-width:0; outline:0; padding:11px 13px; }
.credential-control input:focus { border-color:transparent; box-shadow:none!important; }
.client-id-field > small { margin-top:0; }
.connection-state { align-items:center; border:1px solid; border-radius:13px; display:flex; gap:11px; padding:12px 14px; }
.connection-state > span { align-items:center; border-radius:50%; display:flex; flex:0 0 auto; font-size:11px; font-weight:900; height:25px; justify-content:center; width:25px; }
.connection-state > div { display:grid; gap:2px; }
.connection-state strong { font-size:12px; }
.connection-state small { color:var(--muted); font-size:9px; }
.connection-state.connected { background:#eff8f2; border-color:#cde5d5; }
.connection-state.connected > span { background:#d9f0e1; color:#237044; }
.connection-state.disconnected { background:#fff7ea; border-color:#eed9b2; }
.connection-state.disconnected > span { background:#f8e8c9; color:#8e6117; }
.secret-clear { align-items:center; color:#87502f; display:flex; font-size:9px; gap:6px; margin-top:7px; }
.secret-clear input { height:14px; margin:0; width:14px; }
.settings-advanced { border-top:1px solid var(--line); margin-top:22px; padding-top:16px; }
.settings-advanced summary { color:var(--forest); cursor:pointer; font-size:11px; font-weight:750; }
.settings-advanced[open] summary { margin-bottom:4px; }
.settings-page-actions { align-items:center; background:white; border:1px solid var(--line); border-radius:15px; display:flex; gap:9px; justify-content:flex-end; padding:14px 18px; }
.runtime-toggle { align-items:flex-start; background:#f7f9f7; border:1px solid var(--line); border-radius:12px; cursor:pointer; display:flex; gap:10px; margin-top:18px; padding:12px 14px; }
.runtime-toggle > input { accent-color:var(--forest); height:17px; margin:2px 0 0; width:17px; }
.runtime-toggle > span { display:grid; gap:3px; }
.runtime-toggle strong { font-size:11px; }
.runtime-toggle small { color:var(--muted); font-size:9px; line-height:1.45; }
.permissions-layout{display:grid;grid-template-columns:minmax(250px,330px) 1fr;gap:24px;align-items:start}
.role-list-panel,.permission-editor{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:22px;box-shadow:var(--shadow-sm)}
.role-list-panel h2,.permission-editor h2{margin:4px 0 6px}.role-list-panel p,.permission-editor p{margin:0;color:var(--muted)}
.role-list{display:grid;gap:8px;margin:22px 0}
.role-card{width:100%;display:flex;justify-content:space-between;gap:14px;text-align:left;padding:13px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);cursor:pointer}
.role-card:hover{border-color:var(--green-light)}.role-card.active{border-color:var(--green);background:var(--green-pale)}
.role-card span{display:grid;gap:3px}.role-card small{color:var(--muted);line-height:1.35}.role-card em{font-style:normal;font-size:12px;color:var(--muted);white-space:nowrap}
.role-create-form{display:grid;gap:9px;padding-top:18px;border-top:1px solid var(--border)}
.role-create-form input,.permission-editor input[type="text"],.permission-editor .field input{width:100%}
.permission-editor-head{display:flex;justify-content:space-between;gap:20px;align-items:start;margin-bottom:20px}
.permission-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}
.permission-group{border:1px solid var(--border);border-radius:13px;padding:10px 14px 14px;margin:0}
.permission-group legend{font-weight:700;padding:0 7px;color:var(--green)}
.permission-option{display:flex;align-items:flex-start;gap:10px;padding:10px 2px;cursor:pointer}
.permission-option+ .permission-option{border-top:1px solid var(--border)}
.permission-option input{width:18px;height:18px;margin-top:2px;accent-color:var(--green)}
.permission-option span{display:grid;gap:2px}.permission-option small{color:var(--muted);line-height:1.35}
@media(max-width:900px){.permissions-layout{grid-template-columns:1fr}.permission-groups{grid-template-columns:1fr}.settings-fields{grid-template-columns:1fr}.admin-tabs a{flex:0 0 auto}}

.access-user > button { white-space:nowrap; }

.auth-modal { width:min(440px,100%); }
.auth-brand { align-items:center; display:flex; gap:14px; margin-bottom:20px; padding-right:40px; }
.auth-brand img { height:58px; object-fit:contain; width:58px; }
.auth-brand h2 { margin:2px 0 0; }
.auth-form { display:grid; gap:11px; }
.auth-form input { background:#fff; border:1px solid var(--line); border-radius:11px; font:inherit; outline:0; padding:13px 14px; width:100%; }
.auth-form input:focus { border-color:var(--forest-2); box-shadow:0 0 0 3px var(--mint); }
.account-note { background:var(--mint-soft); border-top:1px solid #dce9e2; color:var(--muted); font-size:12px; line-height:1.55; padding:12px 22px; }
.account-note strong { color:var(--forest); }

.area-geometry-icon.summary { color:var(--muted); }
@media(max-width:680px){.geoportal-fields{grid-template-columns:1fr}.settings-page-actions{align-items:stretch;flex-direction:column-reverse}.settings-page-actions .btn{width:100%}}

/* Medlemmar och jakträtt */
.hunting-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px}.hunting-toolbar.compact{align-items:center}.hunting-toolbar h2{margin:3px 0 5px}.hunting-toolbar p{margin:0;color:var(--muted)}.hunting-actions{display:flex;gap:10px;flex-wrap:wrap}.hunting-table{overflow:auto}.hunting-table table{min-width:880px}.hunting-table td{vertical-align:middle}.hunting-table small{display:block;color:var(--muted);margin-top:3px}.party-roles{display:flex;gap:5px;flex-wrap:wrap}.party-roles span,.game-pill{display:inline-flex;padding:4px 8px;border-radius:999px;background:#edf5f1;color:var(--green);font-size:.76rem;font-weight:700}.member-number{font-variant-numeric:tabular-nums}.table-link{border:0;background:none;color:var(--green);font:inherit;font-weight:700;cursor:pointer;text-decoration:none;padding:4px}
.data-table{overflow:hidden}.data-table-tools{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:18px;justify-content:space-between;padding:13px 15px}.data-table-tools small{color:var(--muted);margin:0;white-space:nowrap}.data-table-tools .search-box>span{color:var(--muted);font-size:20px;line-height:1}.data-table-scroll{overflow:auto}.data-table-sort{align-items:center;background:none;border:0;color:inherit;cursor:pointer;display:flex;font:inherit;gap:7px;letter-spacing:inherit;margin:-8px -10px;padding:8px 10px;text-align:left;text-transform:inherit;width:calc(100% + 20px)}.data-table-sort:hover,.data-table-sort.active{color:var(--forest)}.data-table-sort i{font-size:13px;font-style:normal;min-width:10px}.data-table-empty{color:var(--muted);padding:26px 8px;text-align:center;text-transform:none}
.hunting-subtabs{display:flex;gap:6px;padding:5px;background:#edf1ec;border-radius:13px;width:max-content;max-width:100%;margin-bottom:22px;overflow-x:auto}.hunting-subtabs a{background:transparent;padding:9px 16px;border-radius:9px;color:var(--muted);font:inherit;font-weight:700;white-space:nowrap}.hunting-subtabs a.active{background:#fff;color:var(--green);box-shadow:0 2px 8px #183f3220}.hunting-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.hunting-summary-grid article{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.hunting-summary-grid article>span,.hunting-summary-grid small{display:block;color:var(--muted)}.hunting-summary-grid strong{display:block;font-size:1.7rem;margin:7px 0}.hunting-summary-grid .warning{border-color:#e6b965;background:#fffaf0}.hunting-info-card{background:linear-gradient(135deg,#183f32,#28604e);color:white;border-radius:18px;padding:24px}.hunting-info-card h3{margin-top:0}.hunting-info-card p{color:#d9e8e1}.formula{display:inline-flex;background:#ffffff14;border:1px solid #ffffff25;border-radius:10px;padding:10px 14px;font-weight:700}
.certificate-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:.75rem;font-weight:800;background:#edf0ed;color:#64706b}.certificate-status.active{background:#dff1e7;color:#17603f}.certificate-status.pending_payment{background:#fff2ce;color:#7c5600}.certificate-status.revoked,.certificate-status.inactive{background:#fde5df;color:#9b3423}.certificate-status.expired{background:#ececec;color:#666}.certificate-status.draft{background:#e8eef5;color:#31577b}
.season-rules-form{padding:24px}.season-rule-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}.season-rule-columns fieldset{border:1px solid var(--line);border-radius:14px;padding:16px}.season-rule-columns legend{font-weight:800;padding:0 7px}.season-rule-columns label{display:grid;gap:6px;margin:10px 0;color:var(--muted);font-size:.86rem}.season-rule-columns input{padding:10px;border:1px solid var(--line);border-radius:9px;font:inherit}
.hunting-modal{width:min(680px,calc(100vw - 28px));max-height:90vh;overflow:auto}.hunting-modal h2{margin-top:4px}.hunting-modal textarea{min-height:90px;resize:vertical}.hunting-modal form{display:grid;gap:16px;margin-top:20px}.hunting-modal form>.demo-row{gap:14px}.hunting-modal form>.runtime-toggle{margin:0 0 4px}.hunting-modal form>.game-checkboxes,.hunting-modal form>.certificate-preview{margin:0}.hunting-modal form>.btn[type="submit"]{width:100%;margin-top:4px}.hunting-modal .field{display:grid;gap:6px}.hunting-modal .field>label{margin:0}.selected-party{display:flex;justify-content:space-between;gap:12px;padding:14px;background:#f2f5f1;border-radius:12px;margin-bottom:15px}.selected-party span{color:var(--muted)}.game-checkboxes{display:grid;grid-template-columns:1fr 1fr;gap:10px}.game-checkboxes label{display:flex;gap:10px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:12px;font-weight:700}.certificate-preview{display:grid;gap:14px}.certificate-preview-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.certificate-preview-summary article{padding:14px;border-radius:12px;background:#f2f5f1}.certificate-preview-summary strong,.certificate-preview-summary small{display:block}.allocation-editor{border:1px solid var(--line);border-radius:13px;padding:14px}.allocation-editor h4{margin:0 0 10px}.allocation-row{display:grid;grid-template-columns:1fr 110px;gap:10px;align-items:center;margin:7px 0}.allocation-row input{width:100%}
.member-portal{max-width:960px;margin:0 auto;padding:42px 24px}.member-card{position:relative;overflow:hidden;background:linear-gradient(140deg,#173e32,#285d4b);color:#fff;border-radius:25px;padding:28px;box-shadow:0 18px 45px #183f3230}.member-card:after{content:"";position:absolute;width:260px;height:260px;border:55px solid #ffffff0b;border-radius:50%;right:-90px;top:-100px}.member-card-brand,.member-card-body,.member-card-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative;z-index:1}.member-card-brand .brand{color:white}.member-card-brand>span{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:#bdd7cc}.member-card-body{margin:38px 0 26px}.member-card-body h1{font-size:2rem;margin:5px 0}.member-card-body p{margin:0;color:#c7dbd3}.member-card-rights{display:flex;gap:8px;margin-bottom:24px;position:relative;z-index:1}.member-card-rights span{background:#ffffff19;border:1px solid #ffffff29;border-radius:999px;padding:8px 13px;font-weight:800}.member-card-footer{border-top:1px solid #ffffff24;padding-top:18px}.member-card-footer a{color:white;font-weight:800}.member-history{margin-top:28px}.member-history article{display:grid;grid-template-columns:1fr auto auto;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:13px;padding:15px 18px;margin:9px 0}.member-history article span{display:block;color:var(--muted)}
.verification-page{min-height:100vh;background:#eef3ef;padding:24px}.verification-page nav{max-width:760px;margin:0 auto 45px}.verification-card{max-width:620px;margin:0 auto;background:#fff;border-radius:24px;padding:34px;box-shadow:0 20px 50px #183f3218;text-align:center}.verification-symbol{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;margin:-64px auto 18px;background:#1d6a4a;color:#fff;font-size:1.8rem;border:7px solid #eef3ef}.verification-card.invalid .verification-symbol{background:#a44331}.verification-card dl{text-align:left;margin:26px 0}.verification-card dl div{display:grid;grid-template-columns:145px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.verification-card dt{color:var(--muted)}.verification-card dd{margin:0;font-weight:700}
@media(max-width:900px){.hunting-summary-grid{grid-template-columns:1fr 1fr}.hunting-toolbar{flex-direction:column}.season-rule-columns{grid-template-columns:1fr}}@media(max-width:600px){.hunting-summary-grid,.certificate-preview-summary,.game-checkboxes{grid-template-columns:1fr}.member-portal{padding:24px 14px}.member-card{padding:21px}.member-card-body,.member-card-footer{align-items:flex-start;flex-direction:column}.member-history article{grid-template-columns:1fr auto}.member-history article a{grid-column:1/-1}.verification-card{padding:25px 18px}.verification-card dl div{grid-template-columns:1fr;gap:3px}}
@media(max-width:600px){.data-table-tools{align-items:stretch;flex-direction:column;gap:8px}.data-table-tools .table-search{max-width:none}.data-table-tools small{align-self:flex-end}}

.entity-link{color:var(--forest);text-decoration:underline;text-decoration-color:#9fc4b5;text-underline-offset:3px}.entity-link:hover{color:var(--forest-2);text-decoration-color:currentColor}.data-table tr.is-focused td{background:#eef7f2}.data-table tr.is-focused td:first-child{box-shadow:inset 4px 0 var(--forest)}
.flow-steps{align-items:center;display:flex;gap:10px;margin:0 48px 22px 0}.flow-steps span{align-items:center;color:var(--muted);display:flex;font-size:.78rem;font-weight:700;gap:7px;white-space:nowrap}.flow-steps span b{align-items:center;background:#e8ece9;border-radius:50%;display:flex;height:25px;justify-content:center;width:25px}.flow-steps span.current{color:var(--forest)}.flow-steps span.current b,.flow-steps span.done b{background:var(--forest);color:white}.flow-steps i{background:var(--line);flex:1;height:1px;min-width:18px}.flow-actions{display:grid;gap:10px;grid-template-columns:1fr 2fr}.flow-actions .btn:only-child{grid-column:1/-1}.certificate-preview section{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.certificate-preview section>header,.certificate-preview section>p,.certificate-preview section>.allocation-editor{margin:0}.certificate-preview section>header{align-items:center;background:var(--mint-soft);display:flex;justify-content:space-between;padding:14px 16px}.certificate-preview section>p{align-items:center;color:var(--muted);display:flex;font-size:.82rem;justify-content:space-between;padding:11px 16px}.certificate-preview section>p strong{color:var(--ink)}.allocation-editor{border:0!important;border-radius:0!important;padding:0 16px 14px!important}.allocation-heading,.allocation-editor label{align-items:center;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) 110px}.allocation-heading{color:var(--muted);font-size:.72rem;padding:8px 0}.allocation-editor label{border-top:1px solid var(--line);padding:10px 0}.allocation-editor label>span{display:grid;gap:2px}.allocation-editor label small{color:var(--muted)}.allocation-editor input{width:100%}.source-type{font-size:.68rem;font-style:normal;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.source-type.owner{color:#17603f}.source-type.lease{color:#31577b}.certificate-preview footer{align-items:center;background:var(--forest);border-radius:13px;color:white;display:flex;justify-content:space-between;padding:15px 17px}.certificate-preview footer strong{font-size:1.15rem}
@media(max-width:680px){.table-card,.data-table-scroll{overscroll-behavior-inline:contain}.table-card table th:first-child,.table-card table td:first-child{background:var(--surface);left:0;position:sticky;z-index:2}.table-card table th:last-child,.table-card table td:last-child{background:var(--surface);position:sticky;right:0;z-index:2}.table-card table th{z-index:3}.flow-actions{grid-template-columns:1fr}.flow-steps{margin-right:42px}.allocation-heading,.allocation-editor label{grid-template-columns:minmax(0,1fr) 90px}}
