.employee-manager-message { min-height: 1.5rem; margin-bottom: .5rem; color: var(--brand-dark); font-weight: 750; }
.employee-manager-filters { grid-template-columns: minmax(220px, 1.6fr) minmax(190px, .8fr) auto; }
.employee-manager-filters .employee-status-filter { display: grid; grid-template-columns: auto minmax(120px, 1fr); align-items: center; gap: .45rem; min-height: 44px; }
.employee-status-badge { display: inline-flex; align-items: center; width: fit-content; border-radius: 999px; padding: .28rem .62rem; background: #4b5563; color: #fff; font-size: .78rem; font-weight: 850; line-height: 1.2; }
.employee-status-badge[data-state="active"] { background: #17633d; color: #fff; }
.employee-status-badge[data-state="archived"], .employee-status-badge[data-state="left"] { background: #9f1d20; color: #fff; }
.employee-status-badge[data-state="exit-soon"] { background: #9a4b00; color: #fff; }
.employee-manager-message.error, .form-error { color: var(--red); }
.employee-manager-list { display: grid; gap: .45rem; margin-top: 1rem; }
.employee-manager-list-head, .employee-manager-row { display: grid; grid-template-columns: 2fr 1fr 1fr 1.4fr 1fr; gap: .75rem; align-items: center; }
.employee-manager-list-head { padding: .4rem .75rem; color: var(--ink-2); font-size: .75rem; font-weight: 850; text-transform: uppercase; }
.employee-manager-row { width: 100%; min-height: 52px; text-align: left; overflow-wrap: anywhere; }
.mobile-label { display: none; color: var(--ink-2); font-size: .72rem; font-weight: 750; text-transform: uppercase; }
.employee-manager-tabs { display: flex; overflow-x: auto; gap: .35rem; margin: 1rem 0; padding: .2rem; }
.employee-manager-tabs [role="tab"] { flex: 0 0 auto; border-radius: 999px; background: var(--card-2); color: var(--ink-2); }
.employee-manager-tabs [role="tab"][aria-selected="true"] { border-color: var(--brand); background: #DDEBE4; color: var(--brand-dark); }
.employee-manager-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; padding: 1rem 0; }
.employee-manager-form label { display: grid; gap: .3rem; min-width: 0; color: var(--ink-2); font-size: .82rem; font-weight: 750; }
.employee-manager-form input, .employee-manager-form select, .employee-manager-form textarea { width: 100%; min-width: 0; min-height: 44px; border: 1px solid var(--line); border-radius: 10px; background: #fff; padding: .6rem; font: inherit; }
.employee-manager-form textarea { min-height: 80px; resize: vertical; }
.employee-manager-form fieldset, .employee-manager-form .form-error { grid-column: 1 / -1; }
.employee-manager-form .checkbox-label { display: flex; flex-direction: row; align-items: center; min-height: 44px; }
.employee-manager-form .checkbox-label input { width: 20px; min-height: 20px; }
.employee-detail-head, .employee-record, .qualification-filters { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: .6rem; }
.employee-detail-head h2 { margin-bottom: 0; }
.employee-records { display: grid; gap: .6rem; padding-left: 1.2rem; }
.employee-record > div { display: grid; gap: .2rem; }
.qualification-status { width: fit-content; border-radius: 999px; padding: .2rem .45rem; background: var(--card-2); font-size: .72rem; font-weight: 800; }
.qualification-filters { justify-content: flex-start; margin-bottom: 1rem; }
.qualification-filters [aria-pressed="true"] { background: #DDEBE4; color: var(--brand-dark); }
.cost-result dl { display: grid; grid-template-columns: minmax(8rem, auto) 1fr; gap: .35rem 1rem; }
.cost-result dd { margin: 0; }
.employee-manager-empty { border: 1px dashed var(--line); border-radius: 12px; padding: 1rem; color: var(--ink-2); }
#view-employees :focus-visible, #view-employee-qualifications :focus-visible, #view-employee-overview :focus-visible { outline: 3px solid #D49A23; outline-offset: 3px; }
@media (max-width: 700px) {
  .employee-manager-list-head { display: none; }
  .employee-manager-row { grid-template-columns: 1fr 1fr; padding: .8rem; }
  .employee-manager-row strong { grid-column: 1 / -1; }
  .mobile-label { display: block; margin-bottom: .15rem; }
  .manager-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .employee-manager-form { grid-template-columns: 1fr; }
  .employee-manager-form fieldset, .employee-manager-form .form-error { grid-column: auto; }
}
@media (max-width: 390px) {
  .employee-manager-row, .manager-stats { grid-template-columns: 1fr; }
  .employee-manager-row strong { grid-column: auto; }
  .employee-detail-head > button, .employee-manager-form > button { width: 100%; }
  .employee-manager-tabs { margin-inline: -.4rem; }
}

:root {
  color-scheme: light;
  --paper: #ECE9E1;
  --card: #FCFBF7;
  --card-2: #F4F1E9;
  --card-3: #E8E1D4;
  --ink: #1B1A16;
  --ink-2: #6C6859;
  --ink-3: #9B9584;
  --line: #DAD2C3;
  --line-2: #E7DFD1;
  --brand: #2E7263;
  --brand-dark: #1E5147;
  --green: #3B8A57;
  --yellow: #C0942B;
  --orange: #CB7330;
  --red: #BE4A3F;
  --blue: #2E6CA6;
  --radius: 16px;
  --shadow: 0 12px 34px rgba(42,35,20,.10);
  --shadow-lg: 0 22px 70px rgba(42,35,20,.18);
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
button, input { font: inherit; }
.platform-option { font: inherit; text-align: left; width: 100%; }
button, .button-link { border: 1px solid var(--line); background: var(--brand); color: #fff; border-radius: 999px; padding: 10px 14px; font-weight: 750; cursor: pointer; text-decoration: none; display: inline-flex; gap: 7px; align-items: center; justify-content: center; }
button:hover, .button-link:hover { filter: brightness(.98); transform: translateY(-1px); }
button.secondary, .secondary { background: var(--card); color: var(--brand-dark); border-color: #C9DCD5; }
.ghost-button { background: var(--card-2); color: var(--ink-2); border: 1px solid var(--line); padding: 7px 11px; font-size: 12px; }
.hidden { display: none !important; }

.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 20px; background: var(--paper); }
.login-card { width: min(440px, 100%); }
.login-form { display: grid; gap: 14px; margin-top: 20px; }
.login-form label { display: grid; gap: 6px; color: var(--ink-2); }
.login-form input { border: 1px solid var(--line); border-radius: 12px; background: var(--card-2); color: var(--ink); padding: 12px; }
.error-text { color: var(--red); }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 218px minmax(0, 1fr); }
.sidebar { background: #F7F3EA; border-right: 1px solid var(--line); padding: 18px 12px; display: flex; flex-direction: column; gap: 18px; position: sticky; top: 0; height: 100vh; }
.brand { display: flex; gap: 9px; align-items: center; padding: 3px 4px; }
.brand-mark { width: 40px; height: 40px; border-radius: 12px; background: var(--brand); color: #fff; display: grid; place-items: center; font-weight: 900; box-shadow: var(--shadow); }
.brand-name { font-size: 10px; letter-spacing: .14em; font-weight: 900; color: var(--brand-dark); }
.brand-product { font-size: 15px; line-height: 1.1; font-weight: 800; letter-spacing: -.03em; color: var(--ink); }
.nav { display: grid; grid-template-columns: minmax(0, 1fr); gap: 5px; min-width: 0; }
.nav-label { margin: 12px 8px 5px; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); font-weight: 850; }
.nav-item { min-width: 0; width: 100%; justify-content: flex-start; border: 0; background: transparent; color: var(--ink-2); border-radius: 10px; padding: 9px 10px; font-weight: 760; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nav-item span { min-width: 20px; color: var(--brand); }
.nav-item b { margin-left: auto; background: var(--card-3); color: var(--ink-2); border-radius: 999px; padding: 1px 7px; font-size: 12px; }
.nav-item.active { background: var(--brand); color: #fff; box-shadow: var(--shadow); }
.nav-item.active span { color: #fff; }
.nav-item:disabled { cursor: default; color: #8B877D; background: transparent; border: 0; }
.nav-item:disabled:hover { filter: none; transform: none; }
.nav-item:disabled span { color: #A39D91; }
.platform-switcher { position: relative; margin-top: auto; border: 1px solid rgba(46,114,99,.2); border-radius: 16px; background: linear-gradient(180deg, rgba(255,253,247,.92), rgba(240,236,225,.95)); box-shadow: 0 10px 24px rgba(42,35,20,.07); color: var(--ink); }
.platform-switcher summary { list-style: none; cursor: pointer; padding: 10px 12px; display: grid; gap: 2px; position: relative; }
.platform-switcher summary::-webkit-details-marker { display: none; }
.platform-switcher summary::after { content: "⌄"; position: absolute; right: 12px; top: 14px; color: var(--brand-dark); font-weight: 900; transition: transform .16s ease; }
.platform-switcher[open] summary::after { transform: rotate(180deg); }
.platform-eyebrow, .platform-group > span { font-size: 9px; letter-spacing: .14em; text-transform: uppercase; font-weight: 900; color: var(--brand-dark); }
.platform-switcher summary strong { font-size: 14px; letter-spacing: -.02em; }
.platform-switcher summary small { max-width: 150px; color: var(--ink-2); font-size: 10px; line-height: 1.2; }
.platform-menu { position: absolute; left: 0; bottom: calc(100% + 8px); z-index: 1200; width: 100%; max-height: min(58vh, 430px); overflow: auto; overscroll-behavior: contain; display: grid; gap: 10px; padding: 10px; border: 1px solid var(--line); border-radius: 18px; background: rgba(252,251,247,.98); box-shadow: var(--shadow-lg); }
.platform-menu-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 2px 2px 0; }
.platform-menu-head strong { color: var(--brand-dark); font-size: 13px; }
.platform-menu-close { width: 30px; height: 30px; padding: 0; border-radius: 9px; background: var(--card-2); color: var(--brand-dark); }
.platform-group { display: grid; gap: 6px; }
.platform-option { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 8px 9px; border: 1px solid var(--line-2); border-radius: 13px; background: var(--card-2); color: var(--ink); text-decoration: none; }
.platform-option:hover, .platform-option:focus { border-color: var(--brand); outline: none; transform: translateY(-1px); }
.platform-option.active { background: #E6F0EA; border-color: #BFD8C4; }
.platform-option.disabled { opacity: 1; cursor: default; color: var(--ink-3); background: #F1EDE4; border-color: #E4DCCD; }
.platform-option strong, .platform-option small { display: block; min-width: 0; }
.platform-option strong { font-size: 12px; }
.platform-option small { margin-top: 1px; color: var(--ink-2); font-size: 10px; line-height: 1.2; }
.platform-option.disabled strong { color: #7E7A6D; font-weight: inherit; letter-spacing: inherit; }
.platform-option.disabled small { color: #9B9584; font-weight: inherit; }

.sidebar-foot { margin-top: 0; display: grid; gap: 8px; padding: 10px; border: 1px solid rgba(46,114,99,.18); border-radius: 16px; background: linear-gradient(180deg, rgba(255,253,247,.9), rgba(244,241,233,.95)); color: var(--ink-2); font-size: 11px; box-shadow: 0 10px 24px rgba(42,35,20,.07); }
.auth-user { min-width: 0; display: flex; align-items: center; gap: 8px; padding: 8px; border-radius: 13px; background: rgba(255,255,255,.66); border: 1px solid var(--line-2); }
.auth-user > span:last-child { min-width: 0; display: grid; gap: 1px; }
.auth-user small { font-size: 9px; text-transform: uppercase; letter-spacing: .12em; font-weight: 900; color: var(--brand-dark); }
.auth-user strong { min-width: 0; display: block; overflow-wrap: anywhere; color: var(--ink); font-size: 12px; line-height: 1.2; }
.auth-status-dot { width: 9px; height: 9px; border-radius: 999px; background: var(--green); box-shadow: 0 0 0 4px rgba(59,138,87,.13); flex: 0 0 auto; }
.auth-status-dot.warn { background: var(--yellow); box-shadow: 0 0 0 4px rgba(192,148,43,.15); }
.logout-button { width: 100%; padding: 8px 11px; background: #EEF4EF; color: var(--brand-dark); border-color: #C9DCD5; }

.main { min-width: 0; padding: 18px 22px 34px; }
.topbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px 18px; margin-bottom: 14px; }
.topbar > div:first-child { min-width: 220px; }
body[data-view="map"] .main { padding: 16px 16px 16px; }
body[data-view="map"] .topbar { margin-bottom: 10px; padding-top: 2px; }
body[data-view="map"] .eyebrow, body[data-view="map"] #view-subtitle { display: none; }
body[data-view="map"] h1 { font-size: clamp(1.55rem, 2vw, 2rem); line-height: 1.12; }
.eyebrow, .kicker { margin: 0 0 5px; color: var(--brand); text-transform: uppercase; letter-spacing: .14em; font-weight: 900; font-size: 11px; }
h1 { margin: 0; font-size: clamp(1.85rem, 3vw, 2.65rem); letter-spacing: -.06em; line-height: 1.08; }
h2, h3 { margin-top: 0; letter-spacing: -.02em; }
.subline, .muted, small { color: var(--ink-2); }
.weather-strip { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; align-items: center; min-width: 0; justify-self: end; }
.current-weather-card { position: relative; display: inline-flex; align-items: center; gap: 9px; max-width: 100%; padding: 9px 12px; border: 1px solid rgba(78,71,57,.14); border-radius: 18px; background: linear-gradient(180deg, rgba(255,253,247,.94), rgba(242,238,226,.92)); box-shadow: 0 10px 24px rgba(41,32,18,.08), inset 0 1px 0 rgba(255,255,255,.7); color: var(--ink); white-space: nowrap; }
.weather-source { display: inline-flex; align-items: center; max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; letter-spacing: .09em; text-transform: uppercase; color: var(--brand-dark); font-weight: 900; opacity: .76; }
.weather-metric { display: inline-flex; align-items: baseline; gap: 5px; min-width: 0; font-size: 13px; color: var(--ink-2); }
.weather-metric strong { font-size: 18px; color: var(--ink); letter-spacing: .01em; }
.weather-metric.station strong { max-width: 155px; overflow: hidden; text-overflow: ellipsis; font-size: 15px; }
.weather-icon { align-self: center; font-size: 17px; line-height: 1; color: var(--brand); opacity: .9; }
.weather-icon.sun { color: #C09A2E; }
.weather-icon.water, .weather-icon.rain { color: #377B8A; }
.weather-icon.wind { color: #7D776B; }
.weather-icon.pressure, .weather-icon.station-icon { color: #3D8A73; }
.weather-divider { width: 1px; align-self: stretch; min-height: 24px; background: var(--line); opacity: .85; }
.current-weather-card.muted-weather { padding: 10px 14px; color: var(--ink-2); }
.wx-item { background: var(--card); border: 1px solid var(--line); border-radius: 14px; min-width: 92px; padding: 10px 12px; box-shadow: var(--shadow); }
.wx-item span { display: block; font-size: 11px; color: var(--ink-2); }
.wx-item strong { font-size: 19px; }
.wx-item small { margin-left: 3px; }
.view { display: none; animation: fade .18s ease; }
.view.active { display: block; }
@keyframes fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

.grid { display: grid; gap: 14px; }
.stats { grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 16px 0; }
.panel, .stat, .detail-card, .decision-hero, .map-card { background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow); border-radius: var(--radius); }
.panel { margin: 16px 0; padding: 20px; }
.compact-panel { overflow: hidden; }
.stat { padding: 15px; }
.stat .label { display: block; color: var(--ink-2); font-size: 12px; }
.stat strong { display: block; font-size: 27px; letter-spacing: -.04em; }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.panel-head.stack { display: grid; align-items: stretch; }
.panel-toolbar { display: flex; align-items: center; justify-content: flex-end; gap: 14px; margin-bottom: 14px; }
.panel-toolbar-control { display: block; margin: 0 0 14px auto; }
.actions { display: flex; gap: 8px; flex-wrap: wrap; }
.decision-hero { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, .6fr); gap: 24px; padding: 28px; background: linear-gradient(135deg, var(--card), #F7F1E7); }
.decision-hero h2 { font-size: clamp(1.7rem, 3vw, 3rem); margin: 5px 0 8px; }
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
.hero-metrics { display: grid; gap: 10px; }
.hero-metrics div { border: 1px solid var(--line-2); background: var(--card-2); border-radius: 14px; padding: 14px; }
.hero-metrics strong { display: block; font-size: 29px; }
.hero-metrics span { color: var(--ink-2); font-size: 12px; }

.status-pill { --c: var(--brand); display: inline-flex; align-items: center; gap: 7px; border-radius: 999px; padding: 5px 10px; color: var(--c); background: color-mix(in srgb, var(--c) 14%, white); font-weight: 900; font-size: 12px; }
.status-pill::before, .dot { content: ""; width: 9px; height: 9px; border-radius: 50%; background: currentColor; display: inline-block; }
.priority-list { display: grid; gap: 7px; }
.priority-row { width: 100%; display: grid; grid-template-columns: 14px minmax(0, 1fr) 90px 70px 70px; gap: 10px; align-items: center; background: var(--card-2); border-radius: 12px; border: 1px solid var(--line-2); color: var(--ink); text-align: left; padding: 10px 14px; cursor: pointer; }
.priority-row:hover, .priority-row:focus { border-color: var(--brand); outline: none; transform: translateY(-1px); }
.priority-row strong { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.priority-row small { display: block; }
.priority-row b, .priority-row em, .priority-row i { font-style: normal; color: var(--ink-2); font-size: 12px; text-align: right; }

.trend { display: grid; grid-template-columns: repeat(10, minmax(182px, 182px)); gap: 12px; overflow-x: auto; padding: 2px 2px 12px; align-items: stretch; scroll-snap-type: x proximity; }
.trend.mini { grid-template-columns: repeat(10, minmax(152px, 152px)); }
.trend-day { --c: var(--brand); min-width: 152px; min-height: 246px; display: grid; grid-template-rows: auto auto 1fr auto auto; gap: 7px; align-content: start; border: 1px solid var(--line); border-top: 4px solid var(--c); border-radius: 14px; padding: 10px; background: var(--card-2); color: var(--c); scroll-snap-align: start; }
.trend.mini .trend-day { min-height: 178px; }
.trend-date { color: var(--ink); font-weight: 900; font-size: .9rem; }
.trend-status-row { display: grid; gap: 5px; }
.trend-bar-wrap { height: 8px; display: flex; align-items: stretch; border-radius: 999px; background: rgba(0,0,0,.06); overflow: hidden; border: 1px solid var(--line-2); }
.trend-bar { height: 100%; background: currentColor; opacity: .78; border-radius: inherit; }
.trend-status { color: var(--ink); font-weight: 900; text-transform: uppercase; font-size: .74rem; }
.trend-score { color: var(--ink-2); font-size: .8rem; }
.trend-metrics { display: grid; gap: 3px; margin: 0; font-size: .72rem; }
.trend-metrics > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; align-items: start; }
.humidity-metric { margin-top: 2px; padding-top: 4px; border-top: 1px dashed var(--line); }
.humidity-metric.night { margin-top: -1px; padding-top: 2px; border-top: 0; }
.trend-day dt { color: var(--ink-2); }
.trend-day dd { margin: 0; color: var(--ink); text-align: right; }
.metric-source { display: block; color: var(--ink-3); font-size: 9px; line-height: 1.05; font-weight: 750; }
.trend.mini .metric-source { display: none; }
.risk-summary { border-radius: 9px; background: rgba(192,148,43,.12); color: var(--ink); padding: 5px 6px; font-size: 10px; line-height: 1.25; }
.risk-summary strong { color: var(--yellow); }
.trend.mini .risk-summary { display: none; }
.trend-note { display: block; line-height: 1.25; }
.trend-detail { display: grid; grid-template-columns: 1.3fr .7fr; gap: 14px; }
.weather-control-grid { display: grid; grid-template-columns: 1fr; gap: 12px; align-items: stretch; margin: 12px 0 14px; }
.weather-control-card { border: 1px solid var(--line); border-radius: 16px; background: rgba(255,253,247,.78); padding: 11px; box-shadow: 0 10px 24px rgba(41,32,18,.05); }
.weather-control-title { font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; color: var(--brand-dark); margin: 0 0 8px; }
.weather-control-row { display: grid; gap: 8px; align-items: end; }
.location-row { grid-template-columns: minmax(170px, 1.1fr) minmax(150px, .9fr) minmax(210px, 1.2fr) auto; }
.view-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.weather-controls label { display: grid; gap: 4px; font-size: 11px; font-weight: 800; color: var(--ink-2); }
.weather-controls select, .weather-controls input { min-width: 0; border: 1px solid var(--line); border-radius: 10px; padding: 8px 9px; background: #fff; color: var(--ink); }
.weather-controls button { padding: 9px 12px; white-space: nowrap; height: 38px; }
.place-label { display: block; margin-top: 8px; color: var(--ink-2); font-weight: 750; }
.place-label strong { color: var(--ink); }
.model-weather-section { margin-top: 14px; }
.weather-curves { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 12px; }
.weather-curves.model-curves { grid-template-columns: 1fr; gap: 12px; }
.compact-curve-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; }
.curve-card { background: rgba(255,253,247,.88); border: 1px solid var(--line); border-radius: 18px; padding: 14px; box-shadow: 0 14px 34px rgba(41,32,18,.07); }
.model-curve-card { padding: 16px 18px 12px; cursor: help; }
.compact-curve-card { padding: 11px 12px 8px; border-radius: 14px; }
.compact-curve-card .curve-head { margin-bottom: 4px; gap: 8px; }
.compact-curve-card h3 { font-size: .95rem; }
.compact-curve-card small { font-size: 10px; line-height: 1.2; }
.compact-curve-card svg { max-height: 245px; }
.model-curve-card:hover, .model-curve-card:focus { border-color: var(--brand); outline: none; box-shadow: 0 16px 38px rgba(41,32,18,.11); }
.curve-card h3 { margin-bottom: 2px; }
.curve-card svg { width: 100%; height: auto; display: block; }
.curve-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 10px; }
.curve-head strong { color: var(--ink-2); font-size: 13px; }
.panel-actions { display: inline-flex; align-items: center; gap: 10px; }
.trend-panel-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.trend-panel-toolbar h2 { margin: 0; }
.info-button { width: 30px; height: 30px; border-radius: 999px; padding: 0; display: inline-grid; place-items: center; font-weight: 900; font-family: ui-serif, Georgia, serif; background: #E6F0EA; color: var(--brand-dark); border: 1px solid #BFD8C4; box-shadow: 0 4px 10px rgba(41,32,18,.06); }
.info-button:hover, .info-button:focus { background: var(--brand); color: #fff; outline: none; }
.info-button.small { width: 24px; height: 24px; font-size: 12px; flex: 0 0 auto; }
.curve-axis { stroke: var(--line); stroke-width: 1; }
.curve-grid { stroke: rgba(78,71,57,.13); stroke-width: 1; }
.curve-line { fill: none; stroke-width: 2.6; stroke-linejoin: round; stroke-linecap: round; }
.curve-area { opacity: .12; }
.curve-label { fill: rgba(78,71,57,.62); font-size: 10px; }
.curve-dot { stroke: var(--card); stroke-width: 1.5; }
.model-line { fill: none; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; opacity: .72; filter: drop-shadow(0 1px 0 rgba(255,255,255,.55)); }
.model-spread { fill: #2E6CA6; opacity: .16; stroke: none; }
.model-dot { stroke: var(--card); stroke-width: 1.1; opacity: 0; transition: opacity .15s ease; }
.model-curve-card:hover .model-dot { opacity: .75; }
.model-legend { display: flex; gap: 6px; flex-wrap: nowrap; align-items: center; overflow-x: auto; background: rgba(255,253,247,.86); border: 1px solid var(--line); border-radius: 14px; padding: 7px; margin: 10px 0 4px; box-shadow: 0 8px 20px rgba(41,32,18,.05); position: sticky; top: 8px; z-index: 4; backdrop-filter: blur(10px); }
.model-toggle { --c: var(--brand); display: inline-flex; gap: 5px; align-items: center; white-space: nowrap; border: 1px solid rgba(78,71,57,.12); border-radius: 999px; background: rgba(255,255,255,.72); padding: 4px 7px; font-size: 10px; font-weight: 750; cursor: pointer; flex: 0 0 auto; }
.model-toggle input { accent-color: var(--c); }
.model-toggle span { width: 14px; height: 2px; border-radius: 3px; background: var(--c); display: inline-block; }
.model-toggle:has(input:not(:checked)) { opacity: .45; }
.subpanel { margin: 12px 0 0; box-shadow: none; }
.heat-row { display: grid; grid-template-columns: repeat(8, 1fr); gap: 8px; }
.heat-cell { background: var(--c); color: #fff; border-radius: 10px; display: grid; place-items: center; padding: 12px 6px; }
.heat-cell span { font-size: 11px; opacity: .9; }
.source-list { display: grid; gap: 6px; margin-top: 12px; }
.source-list > div { display: flex; gap: 8px; flex-wrap: wrap; }
.source-chip { display: inline-flex; gap: 5px; align-items: center; border: 1px solid var(--line); border-radius: 999px; padding: 6px 10px; background: var(--card-2); color: var(--ink-2); font-size: .82rem; }
.source-chip.ok { color: var(--green); border-color: #BFD8C4; }
.source-chip.fail { color: var(--yellow); border-color: #E2C977; }

.info-modal { position: fixed; inset: 0; z-index: 3000; display: grid; place-items: center; padding: 18px; }
.info-modal.hidden { display: none !important; }
.info-modal-backdrop { position: absolute; inset: 0; background: rgba(28,24,18,.48); backdrop-filter: blur(3px); }
.info-modal-card { position: relative; width: min(760px, 100%); max-height: min(82vh, 820px); overflow: auto; background: var(--card); border: 1px solid var(--line); border-radius: 22px; padding: 24px; box-shadow: 0 26px 80px rgba(28,24,18,.28); }
.info-modal-card h3 { padding-right: 42px; margin-bottom: 12px; }
.info-modal-body { color: var(--ink); line-height: 1.55; }
.info-modal-body h4 { margin: 16px 0 6px; }
.info-modal-body ul { margin: 8px 0 12px 20px; padding: 0; }
.info-modal-body li { margin: 6px 0; }
.info-modal-close { position: absolute; top: 14px; right: 14px; width: 34px; height: 34px; padding: 0; border-radius: 999px; background: var(--card-2); color: var(--ink); border: 1px solid var(--line); font-size: 22px; line-height: 1; }
.info-modal-close:hover, .info-modal-close:focus { background: var(--brand); color: #fff; outline: none; }

.map-layout { display: grid; grid-template-columns: minmax(0, 1fr) clamp(360px, 30vw, 440px); gap: 10px; height: calc(100dvh - 88px); min-height: 500px; }
.map-card { overflow: hidden; position: relative; min-width: 0; min-height: 500px; border-radius: 14px; background: var(--card-2); }
#leaflet-map, #svg-map-fallback, #map { display: block; width: 100%; height: 100%; min-height: 500px; }
.leaflet-container { font-family: inherit; background: var(--card-2); position: relative; }
.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer { position: absolute; left: 0; top: 0; }
.leaflet-container { overflow: hidden; }
.leaflet-map-pane { z-index: 400; }
.leaflet-tile-pane { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane { z-index: 500; }
.leaflet-marker-pane { z-index: 600; }
.leaflet-tooltip-pane { z-index: 650; }
.leaflet-popup-pane { z-index: 700; }
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow { user-select: none; -webkit-user-drag: none; max-width: none !important; max-height: none !important; }
.leaflet-tile { border: 0; visibility: hidden; }
.leaflet-tile-loaded { visibility: inherit; }
.leaflet-zoom-animated { transform-origin: 0 0; }
.leaflet-interactive { cursor: pointer; }
.leaflet-tooltip { position: absolute; padding: 6px 8px; background: rgba(255,255,255,.95); border: 1px solid var(--line); border-radius: 8px; color: var(--ink); box-shadow: var(--shadow); font-size: 12px; pointer-events: none; }
.leaflet-control { position: relative; z-index: 800; pointer-events: auto; }
.leaflet-control-container .leaflet-top,
.leaflet-control-container .leaflet-bottom { position: absolute; z-index: 1000; pointer-events: none; }
.leaflet-top { top: 0; } .leaflet-right { right: 0; } .leaflet-bottom { bottom: 0; } .leaflet-left { left: 0; }
.leaflet-control-zoom { display: inline-grid; margin: 10px; border: 1px solid rgba(54,70,60,.18); border-radius: 10px; overflow: hidden; box-shadow: 0 4px 14px rgba(35,45,39,.12); background: rgba(252,251,247,.94); }
.map-source-control { margin: 0 10px 10px 0; display: grid; justify-items: end; gap: 6px; }
.google-map-attribution { display: flex; align-items: center; gap: 8px; max-width: min(560px, calc(100vw - 130px)); margin: 0 0 10px 48px; padding: 5px 8px; border-radius: 4px; background: rgba(255,255,255,.92); color: #222; box-shadow: 0 1px 4px rgba(0,0,0,.25); font: 11px/1.25 Arial, sans-serif; }
.google-map-attribution[hidden] { display: none; }
.google-map-attribution img { width: 59px; height: auto; flex: 0 0 auto; }
.google-map-attribution span { overflow-wrap: anywhere; }
.map-source-toggle { width: 32px; height: 32px; padding: 0; display: grid; place-items: center; border-radius: 999px; background: rgba(252,251,247,.95); color: var(--brand-dark); border: 1px solid #BFD8C4; box-shadow: var(--shadow); font-family: ui-serif, Georgia, serif; font-weight: 900; }
.map-source-control.open .map-source-toggle, .map-source-toggle:hover, .map-source-toggle:focus { background: var(--brand); color: #fff; outline: none; }
.map-source-popover { width: min(300px, calc(100vw - 34px)); display: grid; gap: 4px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 14px; background: rgba(252,251,247,.96); color: var(--ink); box-shadow: var(--shadow-lg); font-size: 12px; line-height: 1.35; }
.map-source-popover[hidden] { display: none !important; }
.map-source-popover strong { color: var(--brand-dark); }
.map-source-popover span, .map-source-popover small { display: block; }
.canonical-layer-control { margin: 10px 10px 0 0; display: grid; justify-items: end; max-width: calc(100vw - 24px); }
.canonical-layer-toggle, .map-fullscreen-toggle { min-width: 38px; min-height: 38px; padding: 6px 9px; border: 1px solid #b9cdbd; border-radius: 10px; background: rgba(252,251,247,.97); color: var(--brand-dark); box-shadow: var(--shadow); font-weight: 800; }
.canonical-layer-popover { width: min(310px, calc(100vw - 28px)); max-height: min(65dvh, 520px); margin-top: 6px; padding: 10px; overflow: auto; overscroll-behavior: contain; border: 1px solid var(--line); border-radius: 12px; background: rgba(252,251,247,.98); box-shadow: var(--shadow-lg); }
.canonical-layer-popover[hidden] { display: none !important; }
.canonical-layer-popover > strong { display: block; margin: 0 0 7px; color: var(--brand-dark); }
.canonical-layer-popover fieldset { min-width: 0; margin: 7px 0; padding: 6px; border: 1px solid var(--line); border-radius: 8px; }
.canonical-layer-popover legend { padding: 0 4px; font-size: 11px; font-weight: 800; color: var(--muted); }
.canonical-layer-row { min-width: 0; padding: 5px 0; border-bottom: 1px solid rgba(218,210,195,.55); }
.canonical-layer-row:last-child { border-bottom: 0; }
.canonical-layer-row > label { display: flex; min-width: 0; align-items: center; gap: 6px; overflow-wrap: anywhere; font-size: 12px; }
.canonical-layer-swatch { width: 10px; height: 10px; flex: 0 0 10px; border-radius: 50%; background: var(--layer-color); }
.canonical-layer-opacity { display: grid !important; grid-template-columns: 1fr auto; margin: 4px 0 0 22px; color: var(--muted); font-size: 10px !important; }
.canonical-layer-opacity input { grid-column: 1 / -1; width: 100%; min-width: 0; }
.canonical-layer-error { color: var(--danger); font-size: 12px; }
.map-utility-controls { margin: 10px 0 0 10px; display: flex; align-items: center; }
.current-location-control { margin: 62px 0 0 10px !important; border: 0 !important; border-radius: 50% !important; background: transparent; box-shadow: none !important; }
.current-location-control button { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 1px solid #b9cdbd; border-radius: 50%; background: rgba(252,251,247,.97); color: #1677ff; box-shadow: var(--shadow); font-size: 20px; line-height: 1; }
.current-location-control button[data-location-state="ready"] { background: #fff; }
.current-location-control button[data-location-state="error"] { color: #7a7064; }
.current-location-marker { filter: drop-shadow(0 1px 3px rgba(0,0,0,.4)); }
.current-location-accuracy { pointer-events: none; }
.canonical-inspector { display: grid; gap: 5px; min-width: 190px; overflow-wrap: anywhere; }
.canonical-inspector span { color: var(--muted); } .canonical-inspector code { font-size: 10px; }
.canonical-inspector a { color: var(--brand-dark); font-weight: 800; }
.map-card.map-expanded { position: fixed; inset: 0; z-index: 10000; width: 100vw; height: 100dvh; min-height: 100dvh; border: 0; border-radius: 0; background: #eef1eb; }
.map-card.map-expanded #leaflet-map { height: 100dvh; min-height: 100dvh; }
body.map-expanded-open { overflow: hidden; }
.map-fullscreen-close { display: none; }
.map-fullscreen-close[hidden] { display: none !important; }
.map-card.map-expanded .map-fullscreen-toggle { display: none; }
.map-card.map-expanded .map-fullscreen-close { position: fixed; top: calc(12px + env(safe-area-inset-top)); right: calc(12px + env(safe-area-inset-right)); z-index: 12000; width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(35,53,43,.22); border-radius: 50%; background: rgba(252,251,247,.96); color: #24372c; box-shadow: 0 6px 20px rgba(24,39,31,.2); font-size: 30px; font-weight: 400; line-height: 1; }
.map-card.map-expanded .map-fullscreen-close:hover { background: #fff; transform: translateY(-1px); }
.map-card.map-expanded .canonical-layer-control { margin-top: 66px; }
.leaflet-bottom .leaflet-control-scale { clear: both; margin: 0 0 calc(14px + env(safe-area-inset-bottom)) 10px; }
@media (max-width: 720px) {
  .leaflet-bottom.leaflet-left .leaflet-control-scale {
    position: absolute;
    left: 52px;
    bottom: calc(10px + env(safe-area-inset-bottom));
    clear: none;
    margin: 0;
  }
}
.leaflet-control-scale-line { box-sizing: border-box; height: auto; padding: 3px 6px 4px; border: 1px solid rgba(24,39,31,.7); border-radius: 4px; background: rgba(252,251,247,.9); color: #24372c; font-size: 10px; font-weight: 650; line-height: 1.15; white-space: nowrap; }
.leaflet-control-zoom a { position: relative; width: 34px; height: 34px; display: grid; place-items: center; overflow: hidden; background: rgba(252,251,247,.96); color: transparent; text-decoration: none; font-size: 0; border: 0; line-height: 1; }
.leaflet-control-zoom a::before { content: ''; position: absolute; left: 10px; right: 10px; top: 50%; height: 1.5px; border-radius: 2px; background: #31473a; transform: translateY(-50%); }
.leaflet-control-zoom-in::after { content: ''; position: absolute; top: 10px; bottom: 10px; left: 50%; width: 1.5px; border-radius: 2px; background: #31473a; transform: translateX(-50%); }
.leaflet-control-zoom-out::after { content: none; }
.leaflet-control-zoom a:hover { background: #fff; }
.leaflet-control-zoom a + a { border-top: 1px solid var(--line); }
.map-panel { min-height: 0; display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; }
.map-panel .panel-head { padding: 9px; margin: 0; border-bottom: 1px solid var(--line-2); }
.map-panel .panel-head h2 { font-size: 1rem; margin-bottom: 2px; }
.map-panel .panel-head .subline { font-size: 11px; margin: 0 0 7px; }
.map-summary { margin: 0; font-size: 11px; }
.segmented { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.basemap-select { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px; font-size: 11px; color: var(--ink-2); }
.basemap-select select { width: 100%; min-width: 0; min-height: 36px; padding: 5px 30px 5px 9px; border-radius: 8px; border: 1px solid var(--line-2); background: var(--card-2); color: var(--ink); font: inherit; }
.external-layer-panel { min-width: 0; border: 1px solid var(--line-2); border-radius: 9px; background: var(--card-2); font-size: 11px; }
.external-layer-panel > summary { min-height: 36px; padding: 6px 8px; display: flex; align-items: center; gap: 5px; cursor: pointer; color: var(--brand-dark); font-weight: 850; list-style-position: inside; }
.external-layer-panel > summary span { color: var(--muted); font-size: 10px; }
.external-layer-list { max-height: 300px; overflow: auto; overscroll-behavior: contain; padding: 0 7px 7px; }
.external-layer-state { margin: 2px 0; padding: 6px; color: var(--muted); overflow-wrap: anywhere; }
.external-layer-state.error { color: var(--red); }
.external-layer-list > button { min-height: 36px; padding: 5px 9px; }
.external-layer-row { min-width: 0; padding: 6px 0; border-top: 1px solid var(--line-2); }
.external-layer-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 5px; }
.external-layer-head > label { min-width: 0; min-height: 36px; display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 4px; font-weight: 750; }
.external-layer-head > label span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.external-layer-head > label small { padding: 2px 4px; border-radius: 4px; background: #dfe9e1; color: var(--brand-dark); font-size: 8px; }
.external-layer-head input[type="checkbox"] { width: 18px; height: 18px; margin: 0; }
.external-layer-order { display: flex; gap: 3px; }
.external-layer-order button { width: 36px; height: 36px; padding: 0; border-radius: 7px; background: var(--card); color: var(--ink-2); }
.external-layer-order button:disabled { opacity: .35; }
.external-layer-opacity { display: grid; grid-template-columns: auto minmax(70px, 1fr) 38px; align-items: center; gap: 5px; color: var(--muted); font-size: 9px; }
.external-layer-opacity input { width: 100%; min-width: 0; height: 24px; margin: 0; }
.external-layer-opacity output { text-align: right; font-variant-numeric: tabular-nums; }
.external-layer-attribution { display: block; margin-top: 1px; overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.external-layer-panel :focus-visible { outline: 3px solid color-mix(in srgb, var(--brand) 45%, white); outline-offset: 1px; }
.segmented button { background: var(--card-2); color: var(--ink-2); padding: 5px 6px; border-radius: 8px; font-size: 11px; }
.segmented button.active { background: #DDEDE6; color: var(--brand-dark); border-color: #BFD8C4; }
.tile-status { font-size: 10px; color: var(--ink-2); background: var(--card-2); border: 1px solid var(--line-2); border-radius: 8px; padding: 5px 7px; }
.tile-status.warn { color: var(--red); border-color: #E0B6B0; background: #FFF0EC; }
.search { width: 100%; border: 1px solid var(--line); border-radius: 9px; background: var(--card-2); padding: 6px 8px; color: var(--ink); font-size: 12px; }
.filter-row { display: flex; flex-wrap: wrap; gap: 4px; padding: 6px; border-bottom: 1px solid var(--line-2); }
.filter-chip { --c: var(--brand); background: var(--card-2); color: var(--ink-2); border-radius: 999px; padding: 4px 8px; font-size: 11px; }
.filter-chip.active { background: color-mix(in srgb, var(--c) 16%, white); color: var(--c); border-color: var(--c); }
.map-field-list { min-height: 0; overflow: auto; padding: 6px; display: grid; gap: 4px; align-content: start; }
.map-list-row { padding: 0; background: transparent; border: 0; border-radius: 12px; display: block; }
.map-list-row .priority-row { grid-template-columns: 9px minmax(0,1fr) 50px; padding: 5px 7px; gap: 6px; }
.map-list-row .priority-row strong { font-size: 12px; }
.map-list-row .priority-row small, .map-list-row .priority-row b { font-size: 10px; }
.map-list-row .priority-row em, .map-list-row .priority-row i { display: none; }
.map-list-row.active .priority-row { background: #EDE6D8; border-color: var(--brand); }
.detail-card { position: relative; margin: 7px; border-radius: 14px; box-shadow: 0 10px 24px rgba(42,35,20,.08); border: 1px solid var(--line); padding: 12px; background: #FFFCF5; }
.detail-close { position: absolute; top: 7px; right: 7px; width: 28px; height: 28px; padding: 0; border-radius: 999px; background: var(--card-2); color: var(--ink-2); border: 1px solid var(--line); font-size: 18px; line-height: 1; z-index: 1; }
.detail-close:hover, .detail-close:focus { background: var(--brand); color: #fff; outline: none; }
.detail-card h3 { font-size: 1.06rem; margin: 4px 0 0; }
.selected-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding-right: 38px; }
.selected-head > strong { color: var(--ink-2); font-size: 12px; white-space: nowrap; }
.kv { display: grid; grid-template-columns: 92px 1fr; gap: 4px; margin: 6px 0; font-size: 11px; }
.compact-kv { grid-template-columns: 78px 1fr; }
.kv span:nth-child(odd) { color: var(--ink-2); }
.selected-action { display: grid; gap: 2px; padding: 6px 7px; border-radius: 10px; background: #F3EFE5; border: 1px solid var(--line-2); font-size: 11px; }
.selected-action span { color: var(--ink-2); font-weight: 800; font-size: 10px; text-transform: uppercase; letter-spacing: .05em; }
.selected-action strong { font-size: 12px; }
.criteria { display: grid; gap: 5px; margin-top: 6px; }
.compact-criteria { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.criterion { display: grid; grid-template-columns: 16px minmax(0,1fr); gap: 1px 5px; align-items: center; padding: 5px 6px; border: 1px solid var(--line-2); border-radius: 9px; background: var(--card-2); }
.criterion strong { font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.criterion span { font-size: 12px; line-height: 1; }
.criterion small { font-size: 9px; }
.criterion small { grid-column: 2; color: var(--ink-2); }
.criterion.ok span { color: var(--green); } .criterion.fail span { color: var(--red); } .criterion.missing span { color: var(--yellow); }


.manager-preview { overflow: hidden; }
.manager-preview .pill { border-radius: 999px; background: #DDEBE4; color: var(--brand-dark); padding: 6px 10px; font-size: 11px; font-weight: 900; }
.manager-preview-status-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.manager-preview-status-row h2 { margin: 0; }
.manager-preview-status { --c: var(--brand-dark); }
.manager-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.manager-stats article { border: 1px solid var(--line); border-radius: 14px; background: var(--card-2); padding: 12px; }
.manager-stats span { display: block; color: var(--ink-2); font-size: 11px; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.manager-stats strong { display: block; margin-top: 4px; font-size: 28px; letter-spacing: -.05em; color: var(--brand-dark); }
.taskmanager-board { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .42fr); gap: 12px; align-items: start; }
.task-list-preview { display: grid; gap: 8px; }
.manager-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.manager-toolbar input { border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--ink-2); padding: 10px 12px; }
.manager-toolbar button { padding: 9px 12px; }
.task-preview-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; border: 1px solid var(--line-2); border-radius: 14px; background: var(--card-2); padding: 11px; }
.task-preview-card.active { background: #EDE6D8; border-color: var(--brand); }
.task-preview-card h3 { margin: 7px 0 2px; font-size: 1rem; }
.task-preview-card p { margin: 0; color: var(--ink-2); font-size: 12px; }
.task-preview-card > strong { color: var(--ink-2); font-size: 12px; }
.task-inspector { border: 1px solid var(--line); border-radius: 16px; background: #FFFCF5; padding: 14px; box-shadow: 0 10px 24px rgba(42,35,20,.08); }
.task-inspector h3 { margin: 10px 0; font-size: 1.15rem; }
.checklist-preview { display: grid; gap: 7px; margin: 10px 0; }
.checklist-preview label { display: flex; gap: 8px; align-items: flex-start; border: 1px solid var(--line-2); border-radius: 10px; background: var(--card-2); padding: 8px; font-size: 12px; color: var(--ink); }
.checklist-preview input { margin-top: 2px; accent-color: var(--brand); }


.taskmanager-filters { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.taskmanager-filters button { padding: 6px 10px; border-radius: 999px; background: var(--card-2); color: var(--ink-2); font-size: 11px; }
.taskmanager-filters button.active { background: #DDEBE4; color: var(--brand-dark); border-color: #BFD8C4; }
.task-create-panel, .mobile-field-mode { display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid var(--line-2); border-radius: 14px; background: rgba(244,241,233,.82); padding: 10px 12px; margin-bottom: 10px; }
.task-create-panel strong, .mobile-field-mode strong { color: var(--brand-dark); }
.task-create-panel span, .mobile-field-mode span { color: var(--ink-2); font-size: 12px; }
.taskmanager-plan-builder { display: grid; gap: 14px; border: 1px solid var(--line); border-radius: 18px; background: #FFFCF5; padding: 16px; margin-bottom: 12px; }
.taskmanager-builder-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.taskmanager-builder-head h3 { margin: 0 0 4px; }
.taskmanager-builder-head p { margin: 0; color: var(--ink-2); font-size: 12px; }
.taskmanager-plan-fields { display: grid; grid-template-columns: minmax(180px, .45fr) minmax(220px, 1fr); gap: 10px; }
.taskmanager-plan-fields label { display: grid; gap: 6px; color: var(--ink-2); font-size: 12px; font-weight: 750; }
.taskmanager-plan-fields input, .taskmanager-plan-fields select { width: 100%; min-width: 0; min-height: 44px; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--ink); padding: 10px 11px; font: inherit; }
.taskmanager-plan-builder fieldset { min-width: 0; border: 0; padding: 0; margin: 0; }
.taskmanager-plan-builder legend { margin-bottom: 8px; color: var(--brand-dark); font-weight: 850; }
.taskmanager-group-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.taskmanager-group-choice { display: flex; gap: 9px; align-items: flex-start; border: 1px solid var(--line-2); border-radius: 12px; background: var(--card-2); padding: 10px; cursor: pointer; }
.taskmanager-group-choice:has(input:checked) { border-color: var(--brand); background: #E7F0E9; }
.taskmanager-group-choice input, .taskmanager-plan-items input { width: 20px; height: 20px; flex: 0 0 auto; margin: 0; accent-color: var(--brand-dark); }
.taskmanager-group-choice span { min-width: 0; display: grid; gap: 3px; }
.taskmanager-group-choice small { color: var(--ink-2); font-weight: 500; line-height: 1.35; }
.taskmanager-safety-note { margin: 0; border-left: 4px solid var(--orange); border-radius: 8px; background: #FFF3DF; color: var(--ink-2); padding: 10px 12px; font-size: 12px; line-height: 1.45; }
.taskmanager-review { display: flex; align-items: flex-start; gap: 9px; border: 1px solid var(--line-2); border-radius: 11px; background: #fff; padding: 10px 12px; font-weight: 750; cursor: pointer; }
.taskmanager-review input { width: 20px; height: 20px; flex: 0 0 auto; margin: 0; accent-color: var(--brand-dark); }
.taskmanager-plan-builder .form-message.error { color: var(--red); font-weight: 750; }
.taskmanager-standards { border-top: 1px solid var(--line-2); padding-top: 10px; }
.taskmanager-standards summary { color: var(--brand-dark); font-weight: 800; cursor: pointer; }
.taskmanager-standards section { display: grid; gap: 3px; padding: 9px 0; border-bottom: 1px solid var(--line-2); }
.taskmanager-standards section span { color: var(--ink-2); font-size: 12px; line-height: 1.45; }
.taskmanager-plan-list { display: grid; gap: 12px; }
.taskmanager-day-plan { border: 1px solid var(--line); border-radius: 18px; background: #fff; padding: 16px; }
.taskmanager-day-plan > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.taskmanager-day-plan > header > div { min-width: 0; }
.taskmanager-day-plan h3 { margin: 7px 0 2px; }
.taskmanager-day-plan header p { margin: 0; color: var(--ink-2); font-size: 12px; overflow-wrap: anywhere; }
.taskmanager-provenance { display: block; margin-top: 5px; color: var(--ink-2); overflow-wrap: anywhere; }
.taskmanager-plan-group { border-top: 1px solid var(--line-2); padding: 12px 0 2px; }
.taskmanager-plan-group-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 8px; }
.taskmanager-plan-group-head > div { min-width: 0; display: grid; gap: 2px; overflow-wrap: anywhere; }
.taskmanager-plan-group-head small { color: var(--ink-2); }
.taskmanager-plan-group-head > span { border-radius: 999px; background: #DDEBE4; color: var(--brand-dark); padding: 4px 8px; font-size: 11px; font-weight: 850; }
.taskmanager-plan-items { display: grid; gap: 6px; }
.taskmanager-plan-items label { display: flex; align-items: flex-start; gap: 10px; border: 1px solid var(--line-2); border-radius: 11px; background: var(--card-2); padding: 10px; cursor: pointer; }
.taskmanager-plan-items label > span { min-width: 0; display: grid; gap: 2px; line-height: 1.4; overflow-wrap: anywhere; }
.taskmanager-plan-items label small { color: var(--brand-dark); font-size: 10px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.taskmanager-plan-items label.completed { opacity: .64; background: #E8EFE9; }
.taskmanager-plan-items label.completed > span { text-decoration: line-through; }
.taskmanager-plan-empty { display: grid; gap: 5px; border: 1px dashed var(--line); border-radius: 16px; color: var(--ink-2); padding: 24px; text-align: center; }
.taskmanager-message { min-height: 24px; margin-bottom: 10px; color: var(--brand-dark); font-weight: 750; }
.taskmanager-message.error { color: var(--red); }
.taskmanager-coordinator-actions, .taskmanager-server-section { display: grid; gap: 12px; margin-bottom: 18px; }
.taskmanager-coordinator-actions button, .taskmanager-server-section button, .taskmanager-coordinator-actions summary { min-height: 44px; }
.taskmanager-coordinator-actions :focus-visible, .taskmanager-server-section :focus-visible, .taskmanager-local-plans > summary:focus-visible, #work-management-panel select:focus-visible, #work-management-panel textarea:focus-visible { outline: 3px solid #D49A23; outline-offset: 3px; }
.correction-interval { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) auto; gap: 10px; align-items: end; margin-bottom: 10px; }
.correction-interval label { display: grid; gap: 5px; }
@media print {
  body.work-management-printing .app-header, body.work-management-printing .sidebar, body.work-management-printing .view:not(#view-taskmanager), body.work-management-printing #view-taskmanager > :not(#work-management-panel), body.work-management-printing #work-management-panel > :not(#work-management-content), body.work-management-printing #work-management-content > :not(.table-wrap) { display: none !important; }
  body.work-management-printing .app-shell, body.work-management-printing main, body.work-management-printing #work-management-panel, body.work-management-printing #work-management-content { display: block !important; margin: 0; padding: 0; width: 100%; }
  body.work-management-printing [data-work-month-table] { width: 100%; font-size: 9pt; border-collapse: collapse; }
  body.work-management-printing [data-work-month-table] th, body.work-management-printing [data-work-month-table] td { border: 1px solid #777; padding: 4px; }
}
.taskmanager-free-task { border: 1px solid var(--line); border-radius: 16px; background: #FFFCF5; padding: 12px 16px; }
.taskmanager-free-task summary, .taskmanager-local-plans > summary { min-height: 44px; display: flex; align-items: center; color: var(--brand-dark); font-weight: 850; cursor: pointer; }
.taskmanager-free-task form { display: grid; gap: 12px; padding: 12px 0 4px; }
.taskmanager-wide-field { display: grid; gap: 6px; color: var(--ink-2); font-size: 12px; font-weight: 750; }
.taskmanager-wide-field textarea { min-height: 84px; resize: vertical; border: 1px solid var(--line); border-radius: 10px; padding: 10px; font: inherit; }
.taskmanager-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.taskmanager-section-head h3 { margin: 0; }
.taskmanager-server-task { align-items: start; }
.taskmanager-server-task small { color: var(--ink-2); }
.taskmanager-task-actions { display: grid; gap: 8px; justify-items: end; }
.taskmanager-reassign { display: grid; gap: 4px; color: var(--ink-2); font-size: 11px; font-weight: 750; }
.taskmanager-reassign select { min-height: 44px; max-width: 230px; border: 1px solid var(--line); border-radius: 10px; background: #fff; padding: 8px; font: inherit; }
.taskmanager-correct { width: min(100%, 360px); }
.taskmanager-correct > summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 800; }
.taskmanager-correct form { display: grid; gap: 8px; padding-top: 8px; }
.taskmanager-correct label { display: grid; gap: 4px; color: var(--ink-2); font-size: 11px; font-weight: 750; }
.taskmanager-correct input, .taskmanager-correct select { min-height: 44px; min-width: 0; border: 1px solid var(--line); border-radius: 10px; background: #fff; padding: 8px; font: inherit; }
.taskmanager-local-plans { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 10px; }
.taskmanager-local-item { min-height: 44px; display: flex; align-items: center; gap: 10px; border: 1px solid var(--line-2); border-radius: 10px; background: var(--card-2); padding: 8px 10px; color: var(--ink-2); }
.taskmanager-day-plan.local-only { background: #F7F4ED; }
.weidemanager-board { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .38fr); gap: 12px; align-items: start; }
.weide-map-preview { min-height: 390px; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(135deg, #DDEBE4, #F5EBDD); padding: 14px; display: grid; align-content: space-between; gap: 12px; }
.weide-map-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.paddock-preview-card { min-height: 118px; display: grid; align-content: start; gap: 5px; border: 1px solid rgba(46,114,99,.2); border-radius: 18px; background: rgba(255,253,247,.78); color: var(--ink); text-align: left; padding: 14px; }
.paddock-preview-card.active { background: rgba(237,230,216,.92); border-color: var(--brand); box-shadow: 0 12px 28px rgba(42,35,20,.12); }
.paddock-preview-card span { color: var(--brand-dark); font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .12em; }
.paddock-preview-card strong { font-size: 1rem; }
.paddock-preview-card small { color: var(--ink-2); }
.weide-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.weide-actions button { padding: 8px 10px; font-size: 12px; }
.weide-inspector { min-height: 260px; }


.herdenmanager-board { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .42fr); gap: 12px; align-items: start; }
.herd-list-preview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.herd-preview-card { min-height: 210px; border: 1px solid var(--line-2); border-radius: 18px; background: var(--card-2); padding: 14px; display: grid; align-content: start; gap: 8px; }
.herd-preview-card.active { background: #EDE6D8; border-color: var(--brand); box-shadow: 0 12px 28px rgba(42,35,20,.12); }
.herd-preview-card span { width: fit-content; border-radius: 999px; background: #DDEBE4; color: var(--brand-dark); padding: 4px 8px; font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.herd-preview-card h3 { margin: 4px 0 0; font-size: 1.18rem; color: var(--brand-dark); }
.herd-preview-card p, .herd-preview-card small { margin: 0; color: var(--ink-2); }
.herd-inspector { min-height: 300px; }
.herd-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.herd-actions button { padding: 8px 10px; font-size: 12px; }


.manager-preview-grid { display: grid; gap: 10px; }
.manager-preview-card { border: 1px solid var(--line-2); border-radius: 18px; background: var(--card-2); padding: 14px; display: grid; align-content: start; gap: 8px; }
.manager-preview-card.active { background: #EDE6D8; border-color: var(--brand); box-shadow: 0 12px 28px rgba(42,35,20,.12); }
.manager-action-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.manager-action-row button { padding: 8px 10px; font-size: 12px; }
.flaechenmanager-board { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr); gap: 12px; align-items: start; }
.fieldbase-browser-panel, .fieldbase-inspector { min-width: 0; }
.fieldbase-browser-panel { overflow: hidden; border: 1px solid var(--line-2); border-radius: 14px; background: var(--card); padding: 10px; }
.fieldbase-browser-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.fieldbase-browser-head h3 { margin: 0; }
.fieldbase-browser-head p { margin: 2px 0 0; color: var(--ink-2); font-size: 12px; }
.fieldbase-browser-head button { min-height: 40px; padding: 7px 10px; }
.fieldbase-search { display: grid; gap: 4px; margin-bottom: 8px; color: var(--ink-2); font-size: 11px; font-weight: 800; }
.fieldbase-search input { width: 100%; min-width: 0; min-height: 40px; border: 1px solid var(--line); border-radius: 10px; background: #fff; padding: 7px 10px; font: inherit; }
.fieldbase-list-preview { min-width: 0; max-height: min(58vh, 580px); overflow-x: hidden; overflow-y: auto; display: grid; gap: 2px; }
.fieldbase-browser-row { width: 100%; min-width: 0; min-height: 52px; display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 1px 8px; align-items: center; border: 1px solid transparent; border-radius: 9px; background: transparent; color: var(--ink); padding: 6px 8px; text-align: left; }
.fieldbase-browser-row:hover, .fieldbase-browser-row:focus-visible { border-color: var(--line); background: var(--card-2); }
.fieldbase-browser-row.active { border-color: var(--brand); background: #EDE6D8; }
.fieldbase-tree-marker { grid-row: 1 / span 2; color: var(--brand); text-align: center; }
.fieldbase-browser-name { min-width: 0; overflow: hidden; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.fieldbase-browser-meta { grid-column: 2; min-width: 0; overflow: hidden; color: var(--ink-2); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.fieldbase-browser-state { grid-column: 3; grid-row: 1 / span 2; color: var(--ink-2); font-size: 10px; font-weight: 800; white-space: nowrap; }
.fieldbase-browser-row[hidden], [data-parcel-search-empty][hidden] { display: none; }
.fieldbase-load-message { margin: 6px 0; border-radius: 9px; background: #FFF1E8; color: var(--red); padding: 8px 10px; font-weight: 800; }
.fieldbase-empty-selection { margin: 0; padding: 16px 4px; }
.fieldbase-inspector { min-height: 180px; }
.fieldbase-inspector-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.fieldbase-inspector-head h3 { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.parcel-status-badge { flex: 0 0 auto; border-radius: 999px; background: #E4EFE6; color: var(--green); padding: 4px 9px; font-size: 11px; font-weight: 850; }
.parcel-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0 0 14px; overflow: hidden; border: 1px solid var(--line-2); border-radius: 12px; background: var(--line-2); }
.parcel-facts > div { min-width: 0; display: grid; gap: 2px; background: var(--card); padding: 9px 11px; }
.parcel-facts dt { color: var(--ink-2); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.parcel-facts dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: 13px; font-weight: 750; }
.parcel-edit-form { display: grid; gap: 10px; margin: 0; border-top: 1px solid var(--line-2); padding-top: 12px; }
.parcel-form-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(130px, .45fr); gap: 10px; align-items: end; }
.parcel-edit-form label, .parcel-geometry-fields label { min-width: 0; display: grid; gap: 5px; color: var(--ink-2); font-size: 12px; font-weight: 800; }
.parcel-edit-form input, .parcel-geometry-fields input, .parcel-geometry-fields textarea { width: 100%; min-width: 0; }
.parcel-type-display { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 8px 0; border: 1px solid var(--line-2); border-radius: 9px; padding: 8px 10px; }
.parcel-type-display span { color: var(--ink-2); font-size: 12px; font-weight: 750; }
.parcel-map-shell { min-width: 0; margin-bottom: 14px; overflow: hidden; border: 1px solid var(--line-2); border-radius: 14px; background: var(--card-2); }
#parcel-map { width: 100%; height: 300px; min-height: 240px; }
.parcel-map-toolbar { display: flex; flex-wrap: wrap; align-items: start; gap: 4px 12px; border-top: 1px solid var(--line-2); padding: 0 8px; }
.parcel-map-layer-details { flex: 1 1 180px; }
.parcel-map-layer-details > summary { min-height: 40px; display: flex; align-items: center; padding: 6px 4px; color: var(--brand-dark); cursor: pointer; font-size: 12px; font-weight: 850; }
.parcel-map-layer-details > summary:focus-visible { outline: 3px solid rgba(59,138,87,.35); outline-offset: -3px; }
.parcel-map-controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; align-items: center; padding: 6px 12px 10px; }
.parcel-map-controls > label:first-child { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 12px; font-weight: 800; }
#parcel-topo-opacity { grid-column: 1; width: 100%; min-width: 0; accent-color: var(--brand); }
#parcel-topo-opacity:focus-visible { outline: 3px solid rgba(59,138,87,.35); outline-offset: 3px; }
#parcel-topo-help { grid-column: 1; color: var(--ink-2); line-height: 1.35; }
.parcel-label-toggle { grid-column: 2; grid-row: 2 / span 2; min-height: 40px; display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.parcel-tile-status, .parcel-map-attribution { margin: 0; padding: 5px 12px; overflow-wrap: anywhere; color: var(--ink-2); font-size: 11px; line-height: 1.35; }
.parcel-tile-status.warn { color: var(--red); font-weight: 800; }
.parcel-map-attribution { border-top: 1px solid var(--line-2); padding: 6px 12px; color: #5f5a50; font-size: 9px; line-height: 1.3; }
.parcel-geometry-editor { margin-top: 10px; border: 1px solid var(--line-2); border-radius: 11px; background: var(--card-2); }
.parcel-geometry-editor > summary { min-height: 42px; display: flex; align-items: center; padding: 7px 11px; color: var(--brand-dark); cursor: pointer; font-size: 12px; font-weight: 850; }
.parcel-geometry-fields { display: grid; gap: 10px; margin: 0; border-top: 1px solid var(--line-2); padding: 11px; }
.parcel-geometry-field textarea { resize: vertical; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 11px; line-height: 1.35; }
.parcel-geometry-field small { color: var(--ink-2); font-weight: 500; }
@media (max-width: 390px) {
  .fieldbase-browser-head { align-items: stretch; flex-direction: column; }
  .fieldbase-browser-head button { width: 100%; }
  .fieldbase-list-preview { max-height: 36vh; }
  .fieldbase-browser-row { grid-template-columns: 20px minmax(0, 1fr); }
  .fieldbase-browser-state { grid-column: 2; grid-row: 3; justify-self: start; }
  .parcel-facts, .parcel-form-grid { grid-template-columns: minmax(0, 1fr); }
  .parcel-map-controls { grid-template-columns: minmax(0, 1fr); }
  #parcel-topo-help, .parcel-label-toggle { grid-column: 1; }
  .parcel-label-toggle { grid-row: auto; }
  #parcel-map { height: 260px; }
}
@media (orientation: landscape) and (max-height: 500px) {
  #parcel-map { height: 220px; min-height: 220px; }
}
@media (max-width: 1200px) {
  .taskmanager-board, .weidemanager-board, .herdenmanager-board, .flaechenmanager-board, .foerdermanager-board { grid-template-columns: 1fr; }
  .herd-list-preview, .fieldbase-list-preview, .compliance-list-preview, .weide-map-grid { grid-template-columns: 1fr; }
  .taskmanager-group-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}


.foerdermanager-board { display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, .44fr); gap: 12px; align-items: start; }
.compliance-list-preview { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.compliance-preview-card { min-height: 210px; }
.compliance-preview-card span { width: fit-content; border-radius: 999px; background: #F4E4D5; color: var(--orange); padding: 4px 8px; font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.compliance-preview-card.active span { background: #E6EBEF; color: #64748b; }
.compliance-preview-card h3 { margin: 4px 0 0; font-size: 1.13rem; color: var(--brand-dark); }
.compliance-preview-card p, .compliance-preview-card small { margin: 0; color: var(--ink-2); }
.compliance-inspector { min-height: 310px; }

.field-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; }
.field-card { background: var(--card-2); border: 1px solid var(--line); border-radius: 16px; padding: 15px; cursor: pointer; }
.field-card:hover, .field-card.active { border-color: var(--brand); }
.upload { display: flex; gap: 12px; flex-wrap: wrap; margin: 16px 0; }
input[type=file] { border: 1px dashed var(--line); padding: 12px; border-radius: 14px; background: var(--card-2); color: var(--ink); }
.result { overflow: auto; max-height: 380px; background: #201D17; color: #F8F1E5; border: 1px solid var(--line); border-radius: 16px; padding: 16px; }
.warning { border-color: #E2C977; background: #FFF8DF; }

@media (max-width: 1050px) {
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: static; height: auto; }
  .brand { order: 1; }
  .platform-switcher { order: 2; margin-top: 0; }
  .nav { order: 3; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
  .sidebar-foot { order: 4; }
  .platform-switcher[open]::before { content: ""; position: fixed; inset: 0; z-index: 1180; background: rgba(30, 27, 22, .44); }
  .platform-menu { position: fixed; z-index: 1200; left: 10px; right: 10px; bottom: max(10px, env(safe-area-inset-bottom)); width: auto; max-height: calc(100dvh - 20px - env(safe-area-inset-top)); overflow-y: auto; overscroll-behavior: contain; border-radius: 20px; padding: 12px; }
  body.platform-menu-open { overflow: hidden; }
  .map-layout, .decision-hero, .trend-detail { grid-template-columns: 1fr; height: auto; }
  .map-card, #leaflet-map, #svg-map-fallback, #map { min-height: 62vh; }
  .map-panel { min-height: 520px; }
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .topbar { display: block; }
  .weather-strip { justify-content: flex-start; margin-top: 18px; min-width: 0; width: 100%; }
  .current-weather-card { flex-wrap: wrap; white-space: normal; row-gap: 8px; }
  .weather-source { position: static; width: 100%; }
  .weather-control-grid { grid-template-columns: 1fr; }
  .location-row, .view-row { grid-template-columns: 1fr; }
  .compact-curve-grid { grid-template-columns: 1fr; }
  .weather-controls button { width: 100%; }
}

.billing-message { min-height: 24px; margin: 0 0 8px; color: var(--brand-dark); font-weight: 700; }
.billing-overview-panel, .billing-recent-panel { max-width: 1180px; margin: 0 auto 18px; }
.billing-overview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.billing-overview-card { min-width: 0; display: grid; gap: 7px; border: 1px solid var(--line); border-radius: 14px; background: var(--card-2); color: var(--ink); padding: 16px; text-align: left; }
.billing-overview-card:hover, .billing-overview-card:focus-visible { border-color: var(--brand); transform: translateY(-1px); }
.billing-overview-card span, .billing-overview-card small { color: var(--ink-2); }
.billing-overview-card strong { font-size: 1.55rem; }
.billing-quick-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 18px; }
.billing-overview-recent { display: grid; gap: 8px; }
.billing-recent-row { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; border: 1px solid transparent; border-bottom-color: var(--line-2); border-radius: 10px; background: transparent; color: var(--ink); padding: 10px; text-align: left; }
.billing-recent-row:hover, .billing-recent-row:focus-visible { border-color: var(--brand); background: var(--card-2); }
.billing-recent-row:last-child { border-bottom: 0; }
.billing-recent-row > span { display: grid; gap: 3px; }
.billing-recent-row small { color: var(--ink-2); }
.billing-primary-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.billing-document-actions { position: relative; }
.billing-document-menu { position: absolute; z-index: 30; top: calc(100% + 7px); right: 0; display: grid; width: max-content; min-width: 220px; max-width: min(280px, calc(100vw - 32px)); padding: 7px; border: 1px solid var(--line); border-radius: 13px; background: var(--card); box-shadow: 0 18px 42px rgba(41,32,18,.16); }
.billing-document-menu.hidden { display: none; }
.billing-document-menu button { width: 100%; border: 0; border-radius: 9px; background: transparent; color: var(--ink); padding: 10px 11px; text-align: left; }
.billing-document-menu button:not([aria-disabled="true"]):hover, .billing-document-menu button:not([aria-disabled="true"]):focus-visible { background: var(--card-2); color: var(--brand-dark); }
.billing-document-menu button[aria-disabled="true"] { color: #6F695D; cursor: default; }
.billing-message.error { color: var(--red); }
.billing-contacts { max-width: 1080px; margin: 0 auto; }
.billing-contact-head-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.billing-vcf-preview { margin: 0 0 18px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--card-2); }
.billing-vcf-preview.hidden { display: none; }
.billing-vcf-form { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(180px, .6fr) auto; gap: 10px; align-items: end; }
.billing-vcf-form label, .billing-vcf-controls label { display: grid; gap: 5px; color: var(--ink-2); font-size: 12px; font-weight: 800; }
.billing-vcf-form input, .billing-vcf-form select, .billing-vcf-controls select { width: 100%; }
.billing-vcf-preview-list { display: grid; gap: 10px; margin-top: 14px; }
.billing-vcf-card { display: grid; gap: 10px; border: 1px solid var(--line-2); border-radius: 12px; background: var(--card); padding: 13px; }
.billing-vcf-card > div:first-child { display: grid; gap: 3px; }
.billing-vcf-card small { overflow-wrap: anywhere; }
.billing-vcf-duplicate { margin: 0; color: var(--orange); font-size: 12px; font-weight: 750; }
.billing-vcf-controls { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(180px, .8fr); gap: 10px; align-items: end; }
.billing-vcf-controls fieldset { display: flex; gap: 10px; flex-wrap: wrap; margin: 0; border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; }
.billing-vcf-controls fieldset legend { padding: 0 4px; color: var(--ink-2); font-size: 11px; font-weight: 800; }
.billing-vcf-controls fieldset label { display: flex; align-items: center; gap: 5px; }
.billing-vcf-controls fieldset input { width: auto; }
.billing-contact-toolbar { display: grid; gap: 5px; max-width: 430px; margin: 0 0 16px; color: var(--ink-2); font-size: 12px; font-weight: 800; }
.billing-contact-toolbar select { width: 100%; }
.billing-contact-list { display: grid; gap: 8px; }
.billing-contact-row { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 16px; border: 1px solid var(--line-2); border-radius: 13px; background: var(--card-2); color: var(--ink); padding: 13px 15px; text-align: left; }
.billing-contact-row:hover, .billing-contact-row:focus-visible { border-color: var(--brand); transform: translateY(-1px); }
.billing-contact-row > span { display: grid; gap: 4px; min-width: 0; }
.billing-contact-row > span:last-child { justify-items: end; flex: 0 0 auto; }
.billing-contact-row small { overflow-wrap: anywhere; }
.billing-contact-role-list { display: flex; gap: 5px; flex-wrap: wrap; }
.billing-contact-role { display: inline-flex; width: max-content; border-radius: 999px; background: #E4EFE6; color: var(--green); padding: 3px 7px; font-size: 10px; font-weight: 850; }
.billing-contact-role.issuer { background: #E3EAF2; color: var(--blue); }
.billing-contact-complete, .billing-contact-incomplete { font-size: 11px; font-weight: 850; }
.billing-contact-complete { color: var(--green); }
.billing-contact-incomplete { color: var(--orange); }
.billing-contact-roles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; border: 1px solid var(--line); border-radius: 14px; padding: 16px; background: var(--card-2); }
.billing-contact-roles legend, .billing-contact-section legend { padding: 0 6px; color: var(--ink); font-size: 13px; font-weight: 850; }
.billing-contact-role-option { min-height: 44px; display: flex; align-items: center; gap: 9px; min-width: 0; border: 1px solid var(--line-2); border-radius: 10px; padding: 8px 10px; background: var(--card); cursor: pointer; line-height: 1.25; }
.billing-contact-role-option:hover { border-color: var(--brand); }
.billing-contact-role-option span { min-width: 0; overflow-wrap: anywhere; }
.billing-contact-role-option:has(input:checked) { border-color: var(--brand); background: #EAF2EC; }
.billing-contact-active { min-height: 44px; display: flex; align-items: center; gap: 7px; }
.billing-contact-roles input, .billing-contact-active input { width: auto; }
.contact-role-error { grid-column: 1 / -1; min-height: 0; margin: 0; }
.billing-contact-section { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; margin: 0; border: 1px solid var(--line); border-radius: 14px; padding: 16px; }
.billing-contact-section > label { display: grid; gap: 6px; min-width: 0; color: var(--ink-2); font-size: 12px; font-weight: 800; }
.billing-contact-issuer-fields { background: var(--card-2); }
.billing-contact-issuer-fields.hidden { display: none; }
#view-billing-contacts :focus-visible { outline: 3px solid #D49A23; outline-offset: 3px; }
@media (max-width: 760px) {
  .billing-contact-roles, .billing-contact-section { grid-template-columns: 1fr; padding: 13px; }
  .billing-contact-section .span-2 { grid-column: auto; }
}
.billing-layout { display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 18px; align-items: start; }
.billing-summary { display: grid; gap: 9px; position: sticky; top: 18px; }
.billing-summary span, .billing-summary small { color: var(--ink-2); }
.billing-summary strong { font-size: 1.1rem; }
.billing-filters { display: grid; grid-template-columns: repeat(3, minmax(150px, 1fr)); gap: 10px; align-items: end; margin: 18px 0; }
.billing-filters label, .billing-form-grid label { display: grid; gap: 6px; font-size: 12px; font-weight: 750; color: var(--ink-2); }
.billing-filters input, .billing-filters select, .billing-form-grid input, .billing-form-grid select, .billing-form-grid textarea { width: 100%; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--ink); padding: 10px 11px; font: inherit; }
.billing-form-grid textarea { min-height: 86px; resize: vertical; }
.billing-list { display: grid; gap: 8px; }
.billing-row { width: 100%; border-radius: 12px; background: var(--card-2); color: var(--ink); display: flex; justify-content: space-between; text-align: left; padding: 13px 15px; }
.billing-row > span { display: grid; gap: 5px; }
.billing-row > span:last-child { text-align: right; justify-items: end; }
.billing-row small { color: var(--ink-2); font-weight: 500; }
.billing-status { border-radius: 999px; padding: 3px 8px; background: var(--card-3); font-size: 11px; font-style: normal; }
.billing-status.ready { background: #DDEBDD; color: var(--green); }
.billing-status.invoiced { background: #DDE7F2; color: var(--blue); }
.billing-status.cancelled { background: #F0DEDB; color: var(--red); }
.billing-editor { max-width: 960px; margin: 0 auto; }
.billing-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; align-items: start; }
.billing-issuer-picker { align-self: start; align-content: start; }
.billing-form-grid input:not([type="checkbox"]):not([type="file"]), .billing-form-grid select { height: 44px; }
.billing-customer-picker { display: grid; gap: 6px; align-content: start; font-size: 12px; font-weight: 750; color: var(--ink-2); }
.billing-customer-picker select { min-height: 44px; }
.billing-customer-picker .text-button { justify-self: start; width: auto; border: 0; background: transparent; color: var(--green); padding: 2px 0; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.billing-customer-picker .text-button:hover { color: var(--green-2); }
.billing-form-grid .span-2 { grid-column: 1 / -1; }
.billing-positions { display: grid; gap: 12px; }
.billing-position { border: 1px solid var(--line); border-radius: 13px; background: var(--card-2); padding: 14px; }
.billing-position-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.billing-position-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.billing-position-grid .span-2 { grid-column: 1 / -1; }
.billing-position-total { display: flex; justify-content: flex-end; gap: 10px; margin-top: 10px; color: var(--ink-2); }
.billing-position-total strong { color: var(--ink); }
.service-catalog-panel { min-width: 0; }
.service-catalog-picker { position: relative; min-width: 0; }
.service-catalog-picker > label { display: grid; gap: 6px; color: var(--ink-2); font-size: 12px; font-weight: 750; }
.service-catalog-picker-results { position: absolute; z-index: 80; top: calc(100% + 5px); left: 0; right: 0; display: grid; gap: 4px; max-height: 280px; overflow-y: auto; border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: 6px; box-shadow: var(--shadow); }
.service-catalog-picker-results.hidden { display: none; }
.service-catalog-picker-results,
.service-catalog-picker-results button,
.service-catalog-picker-results strong,
.service-catalog-picker-results small,
.service-catalog-picker-results p {
  text-align: left;
}
.service-catalog-picker-results button { display: grid; gap: 3px; width: 100%; margin-left: 0; border: 0; border-radius: 9px; background: transparent; color: var(--ink); padding: 10px 0; }
.service-catalog-picker-results button:hover, .service-catalog-picker-results button:focus-visible { background: var(--card-2); color: var(--green); }
.service-catalog-picker-results small, .service-catalog-picker-results p { color: var(--ink-2); overflow-wrap: anywhere; }
.service-catalog-picker-results p { margin: 0; padding: 10px 0; }
.service-catalog-search { display: grid; gap: 6px; max-width: 620px; margin: 18px 0; font-size: 12px; font-weight: 750; color: var(--ink-2); }
.service-catalog-search input { width: 100%; min-width: 0; border: 1px solid var(--line); border-radius: 10px; background: #fff; padding: 10px 11px; font: inherit; }
.service-catalog-list { display: grid; gap: 8px; min-width: 0; }
.service-catalog-category { display: grid; gap: 8px; margin-top: 10px; }
.service-catalog-category > h3 { margin: 0; border-bottom: 2px solid var(--green); padding: 8px 2px; color: var(--brand-dark); font-size: 16px; }
.service-catalog-category > h3 span { margin-right: 8px; font-variant-numeric: tabular-nums; }
.service-catalog-row { display: grid; grid-template-columns: minmax(90px, .6fr) minmax(180px, 2fr) minmax(70px, .5fr) minmax(110px, .8fr) auto; gap: 14px; align-items: center; min-width: 0; border: 1px solid var(--line-2); border-radius: 12px; background: var(--card-2); padding: 12px 14px; }
.service-catalog-row > div { min-width: 0; }
.service-catalog-row strong, .service-catalog-row span, .service-catalog-row small { display: block; overflow-wrap: anywhere; }
.service-catalog-row small { color: var(--ink-3); margin-top: 3px; }
.service-catalog-number { font-weight: 850; color: var(--green); font-variant-numeric: tabular-nums; }
.service-catalog-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
button.compact { padding: 7px 10px; font-size: 12px; }
.billing-files { border: 1px dashed var(--line); border-radius: 12px; padding: 14px; }
.billing-previews { display: flex; gap: 10px; flex-wrap: wrap; }
.billing-previews figure { width: 112px; margin: 0; position: relative; }
.billing-previews img { width: 112px; height: 80px; object-fit: cover; border-radius: 9px; }
.billing-previews button { position: absolute; right: -5px; top: -5px; width: 25px; height: 25px; padding: 0; background: var(--red); }
.billing-previews figcaption { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.billing-totals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 18px 0; border-radius: 13px; background: var(--brand-dark); color: white; }
.billing-totals div { display: grid; gap: 5px; padding: 17px; }
.billing-totals div + div { border-left: 1px solid rgba(255,255,255,.25); }
.billing-totals span { font-size: 12px; opacity: .8; }
.billing-totals strong { font-size: 1.35rem; }
.billing-detail { max-width: 900px; margin: 0 auto; }
.billing-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 18px 0; }
.billing-detail-grid div { display: grid; gap: 4px; background: var(--card-2); border-radius: 10px; padding: 12px; }
.billing-detail-grid span { color: var(--ink-2); font-size: 11px; }
.billing-detail-positions { display: grid; gap: 8px; margin: 16px 0; }
.billing-detail-position { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 14px; background: var(--card-2); border-radius: 10px; padding: 12px; }
.billing-detail-position > div { display: grid; gap: 3px; }
.billing-detail-position span { color: var(--ink-2); font-size: 12px; }
.billing-attachments { display: flex; flex-wrap: wrap; gap: 8px; margin: 15px 0; }
button.danger { background: var(--red); }
.danger-zone { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 22px; border: 1px solid #E0B6B0; border-radius: 13px; background: #FFF0EC; padding: 14px; }
.danger-zone > div { min-width: 0; display: grid; gap: 4px; }
.danger-zone small { color: var(--ink-2); overflow-wrap: anywhere; }
.danger-zone .danger { flex: 0 0 auto; }

.billing-document-view { max-width: 1120px; margin: 0 auto; }
.billing-document-overview, .billing-document-editor { margin-top: 0; }
.billing-document-head-actions { display: flex; align-items: end; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.billing-document-organization { display: grid; gap: 5px; color: var(--ink-2); font-size: 12px; font-weight: 750; }
.billing-document-organization select { min-width: 210px; width: 100%; }
.billing-document-list { display: grid; gap: 9px; }
.billing-document-row { width: 100%; display: grid; gap: 10px; border: 1px solid var(--line); border-radius: 13px; background: var(--card-2); color: var(--ink); padding: 14px 16px; text-align: left; }
.billing-document-row-copy { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.billing-document-row-main { min-width: 0; display: grid; gap: 5px; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; }
.billing-document-row-title { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 8px; row-gap: 3px; }
button.billing-document-row-main:hover { color: var(--green); }
.billing-document-row-copy > span { flex: 0 0 auto; display: grid; gap: 5px; justify-items: end; text-align: right; }
.billing-document-row-actions { display: flex; justify-content: flex-end; }
.billing-document-row small { color: var(--ink-2); font-weight: 500; }
.billing-status.finalizing { background: #f3ead4; color: #8a6116; }
.billing-status.finalized { background: #dde7f2; color: var(--blue); }
.billing-document-editor-status { display: inline-flex; margin-top: 6px; --c: var(--blue); }
.billing-document-form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.billing-document-form-grid label, .billing-document-item-grid label { display: grid; gap: 6px; color: var(--ink-2); font-size: 12px; font-weight: 750; }
.billing-document-form-grid input, .billing-document-form-grid select, .billing-document-form-grid textarea, .billing-document-item-grid input, .billing-document-item-grid select, .billing-document-item-grid textarea { width: 100%; min-width: 0; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--ink); padding: 10px 11px; font: inherit; }
.billing-document-form-grid textarea, .billing-document-item-grid textarea { min-height: 80px; resize: vertical; }
.billing-document-form-grid .span-all { grid-column: 1 / -1; }
.billing-document-sources { display: grid; gap: 7px; margin: 0; border: 1px solid var(--line); border-radius: 13px; padding: 12px; }
.billing-document-sources legend { padding: 0 5px; color: var(--ink-2); font-size: 12px; font-weight: 800; }
.billing-document-sources > p { margin: 0 0 3px; }
.billing-document-source { display: flex !important; grid-template-columns: none !important; flex-direction: row; align-items: flex-start; gap: 9px !important; border: 1px solid var(--line-2); border-radius: 10px; background: var(--card-2); padding: 9px; cursor: pointer; }
.billing-document-source input { width: auto; margin-top: 3px; }
.billing-document-source span { display: grid; gap: 2px; }
.billing-document-items { display: grid; gap: 11px; }
.billing-document-item { border: 1px solid var(--line); border-radius: 13px; background: var(--card-2); padding: 14px; }
.billing-document-item-grid { display: grid; grid-template-columns: minmax(180px, 2fr) repeat(5, minmax(100px, .7fr)); gap: 10px; align-items: end; }
.billing-document-item-grid .item-catalog { grid-column: 1 / -1; }
.billing-document-item-grid.quantity-only { grid-template-columns: minmax(220px, 2fr) minmax(100px, .5fr) minmax(120px, .7fr); }
.billing-document-line-total { display: grid; gap: 5px; justify-items: end; padding: 9px; border-radius: 10px; background: #fff; color: var(--ink-2); font-size: 11px; }
.billing-document-line-total strong { color: var(--ink); font-size: 14px; }
.billing-document-totals { display: grid; grid-template-columns: repeat(3, 1fr); margin: 18px 0; border-radius: 13px; overflow: hidden; background: var(--brand-dark); color: #fff; }
.billing-document-totals div { display: grid; gap: 5px; padding: 16px; }
.billing-document-totals div + div { border-left: 1px solid rgba(255,255,255,.25); }
.billing-document-totals span { font-size: 12px; opacity: .8; }
.billing-document-totals strong { font-size: 1.25rem; }
.billing-document-price-note { margin: 18px 0; border: 1px solid #BFD8C4; border-radius: 12px; background: #E6F0EA; color: var(--brand-dark); padding: 12px; font-weight: 750; }

@media (max-width: 900px) {
  .billing-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .billing-layout { grid-template-columns: 1fr; }
  .billing-summary { position: static; grid-template-columns: 1fr 1fr; }
  .billing-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .billing-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .billing-document-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .billing-document-item-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .billing-document-item-grid .item-description { grid-column: 1 / -1; }
}
.form-manager-layout { display: grid; grid-template-columns: minmax(280px, 360px) minmax(0, 1fr); gap: 16px; align-items: start; }
body[data-platform="formularmanager"] .weather-strip { display: none; }
.form-document-list { display: grid; gap: 8px; max-height: calc(100dvh - 240px); overflow: auto; }
.form-document-search { display: grid; gap: 5px; margin-bottom: 12px; color: var(--ink-2); font-size: 12px; font-weight: 750; }
.form-document-search input { width: 100%; min-width: 0; border: 1px solid var(--line); border-radius: 10px; background: #fff; padding: 9px 10px; }
.form-document-row { width: 100%; display: flex; justify-content: space-between; gap: 10px; text-align: left; background: #FFFCF5; color: var(--ink); border: 1px solid var(--line); }
.form-document-row span:first-child { display: grid; min-width: 0; }
.form-document-row strong, .form-document-row small { overflow: hidden; text-overflow: ellipsis; }
.form-document-row small { color: var(--ink-3); }
.form-document-row.active { border-color: var(--green); box-shadow: 0 0 0 1px var(--green); }
.form-status { align-self: start; white-space: nowrap; font-size: .72rem; }
.form-import-form, .form-draft-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.form-import-form > .panel-head, .form-draft-form > .panel-head, .form-import-form .span-2, .form-draft-form .span-2 { grid-column: 1 / -1; }
.form-import-form label, .form-draft-form label { display: grid; gap: 6px; }
.form-selected-files { display: flex; flex-wrap: wrap; gap: 7px; }
.form-file-chip { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; border-radius: 999px; background: var(--cream-2); }
.form-file-chip button { padding: 0 4px; min-height: auto; background: transparent; color: var(--ink); }
.form-blocks { border: 1px solid var(--line); border-radius: 12px; padding: 12px; }
#form-block-editor { display: grid; gap: 10px; }
.form-section-note { margin: 0 0 10px; font-size: 12px; }
.form-block { display: grid; gap: 7px; padding: 10px; border: 1px solid var(--line-2); border-radius: 9px; background: #FFFCF5; }
.form-block-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.form-block-title { display: grid; gap: 2px; min-width: 0; }
.form-block-title small { overflow-wrap: anywhere; }
.form-order-actions { display: inline-flex; gap: 5px; flex: 0 0 auto; }
.form-order-actions button { min-width: 32px; padding: 5px 8px; border-radius: 8px; font-size: 12px; }
.form-order-actions button:disabled, button[data-form-mutation]:disabled { cursor: not-allowed; opacity: .52; transform: none; }
.form-detail-section { border: 1px solid var(--line); border-radius: 12px; background: var(--card-2); padding: 13px; }
.form-detail-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 10px; }
.form-detail-heading h3 { margin: 0; font-size: 1rem; }
.form-source-list, .form-import-protocol, .form-revision-list { display: grid; gap: 8px; }
.form-source-row, .form-protocol-row, .form-revision-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: start; border: 1px solid var(--line-2); border-radius: 10px; background: #fff; padding: 10px; }
.form-source-copy, .form-protocol-copy, .form-revision-copy { display: grid; gap: 3px; min-width: 0; }
.form-source-copy strong, .form-protocol-copy strong { overflow-wrap: anywhere; }
.form-source-meta { display: flex; flex-wrap: wrap; gap: 5px 10px; color: var(--ink-2); font-size: 11px; }
.form-source-warning { margin: 3px 0 0; color: var(--orange); font-size: 12px; }
.form-source-order { display: inline-flex; gap: 5px; }
.form-source-order button { padding: 5px 8px; border-radius: 8px; font-size: 12px; }
.form-revision-row { align-items: center; }
.form-revision-row .button-link { padding: 7px 10px; font-size: 12px; }
.form-draft-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
@media (max-width: 900px) and (hover: none) and (pointer: coarse) {
  body:not([data-view="dashboard"]) .weather-strip { display: none; }
  .employee-manager-row { grid-template-columns: 1fr; }
  .employee-manager-row > * { min-width: 0; overflow-wrap: anywhere; }
  .employee-manager-row strong { grid-column: auto; }
  .employee-manager-row .mobile-label { display: block; margin-bottom: .15rem; }
}
@media (max-width: 520px) {
  .form-manager-layout, .form-import-form, .form-draft-form { grid-template-columns: minmax(0, 1fr); max-width: 100%; }
  .form-manager-layout > *, .form-import-form > *, .form-draft-form > * { min-width: 0; max-width: 100%; }
  .form-import-form input, .form-import-form select, .form-import-form textarea, .form-draft-form input, .form-draft-form select, .form-draft-form textarea { box-sizing: border-box; min-width: 0; max-width: 100%; width: 100%; }
  .form-document-panel .panel-head, .form-editor-panel .panel-head { flex-wrap: wrap; }
  .form-import-form > .panel-head, .form-draft-form > .panel-head, .form-import-form .span-2, .form-draft-form .span-2 { grid-column: auto; }
  .form-document-list { max-height: 280px; }
  .billing-overview-grid { grid-template-columns: 1fr; }
  .billing-quick-actions > button { width: 100%; }
  .billing-recent-row { grid-template-columns: 1fr; }
  .billing-main > .panel-head, .panel-toolbar, #service-catalog-editor > .panel-head { align-items: stretch; flex-direction: column; }
  .panel-toolbar button, .panel-toolbar-control, #service-catalog-editor > .panel-head > button { width: 100%; }
  .billing-primary-actions { width: 100%; justify-content: stretch; }
  .billing-primary-actions > button, .billing-document-actions, .billing-document-actions > button { flex: 1 1 auto; }
  .billing-document-menu { left: 0; right: auto; }
  .billing-form-grid, .billing-position-grid, .billing-totals, .billing-detail-grid, .billing-contact-issuer-fields, .billing-vcf-form, .billing-vcf-controls { grid-template-columns: 1fr; }
  .service-catalog-row { grid-template-columns: 1fr; gap: 7px; }
  .service-catalog-actions { justify-content: flex-start; }
  .service-catalog-actions button { flex: 1 1 120px; }
  .billing-contact-row { align-items: flex-start; }
  .billing-form-grid .span-2 { grid-column: auto; }
  .billing-position-grid .span-2 { grid-column: auto; }
  .billing-detail-position { grid-template-columns: 1fr; gap: 7px; }
  .billing-totals div + div { border-left: 0; border-top: 1px solid rgba(255,255,255,.25); }
  .billing-filters { grid-template-columns: 1fr; }
  .billing-row { align-items: flex-start; gap: 10px; }
  .billing-row > span:last-child { min-width: 105px; }
  .billing-document-overview > .panel-head, .billing-document-editor > .panel-head { align-items: stretch; flex-direction: column; }
  .billing-document-form-grid, .billing-document-item-grid, .billing-document-item-grid.quantity-only, .billing-document-totals { grid-template-columns: 1fr; }
  .billing-document-form-grid .span-all, .billing-document-item-grid .item-description { grid-column: auto; }
  .billing-document-row-copy { align-items: flex-start; }
  .billing-document-row-copy > span { min-width: 95px; }
  .billing-document-row-actions button { width: 100%; }
  .billing-document-totals div + div { border-left: 0; border-top: 1px solid rgba(255,255,255,.25); }
  .danger-zone { align-items: stretch; flex-direction: column; }
  .danger-zone .danger { width: 100%; }
  .taskmanager-group-grid, .taskmanager-plan-fields { grid-template-columns: 1fr; }
  .taskmanager-builder-head, .taskmanager-day-plan > header, .mobile-field-mode { align-items: stretch; flex-direction: column; }
  .taskmanager-builder-head button, .taskmanager-day-plan > header button { width: 100%; }
  .taskmanager-plan-builder, .taskmanager-day-plan { padding: 12px; }
  .taskmanager-group-choice, .taskmanager-plan-items label { min-height: 52px; }
  .taskmanager-server-task { grid-template-columns: 1fr; }
  .taskmanager-task-actions, .taskmanager-reassign, .taskmanager-reassign select { width: 100%; max-width: none; justify-items: stretch; }
}

/* WeideManager & HerdenManager */
.weide-board { display: grid; grid-template-columns: 1fr 320px; gap: 14px; align-items: start; }
.weide-map-card { min-height: 440px; }
#weide-map { min-height: 440px; height: 100%; }
.weide-layer-toggles { display: flex; flex-wrap: wrap; gap: 6px; }
.weide-layer-toggles label { display: inline-flex; align-items: center; gap: 5px; font-size: .82rem; border: 1px solid var(--line); border-radius: 999px; padding: 4px 10px; cursor: pointer; background: var(--card-2); }
.weide-move-form { display: grid; grid-template-columns: repeat(4, 1fr) auto; gap: 10px; align-items: end; }
.weide-move-form label { display: flex; flex-direction: column; gap: 4px; font-size: .82rem; color: var(--muted); }
.weide-move-form .weide-move-note { grid-column: 1 / -2; }
.weide-move-form select, .weide-move-form input { padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.table-scroll { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.data-table th { text-align: left; padding: 8px 10px; border-bottom: 2px solid var(--line); font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.data-table td { padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
.data-table tr.open-record td { font-weight: 600; }
.button-like { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 8px; padding: 7px 12px; font-size: .85rem; text-decoration: none; color: inherit; background: var(--card-2); }
.weide-tagebuch-actions { display: flex; gap: 8px; align-items: center; }
.weide-tagebuch-actions select { padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.herden-board { display: grid; grid-template-columns: 1fr 340px; gap: 14px; align-items: start; }
.herd-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.herd-card { text-align: left; border: 1px solid var(--line); border-radius: 12px; background: var(--card); padding: 12px; cursor: pointer; font: inherit; }
.herd-card.active { border-color: var(--accent, #2f5d43); box-shadow: 0 0 0 2px rgba(47,93,67,.18); }
.herd-card h3 { margin: 4px 0; font-size: 1rem; }
.herd-card .muted { font-size: .8rem; }
.herd-history { margin-top: 10px; }
.herd-history li { font-size: .82rem; margin: 4px 0; }
@media (max-width: 980px) {
  .weide-board, .herden-board { grid-template-columns: 1fr; }
  .weide-move-form { grid-template-columns: 1fr 1fr; }
  .weide-move-form .weide-move-note { grid-column: auto; }
}

/* WissensManager */
.knowledge-message { display: none; margin-bottom: 14px; border: 1px solid #b8d3bd; border-radius: 12px; background: #e9f3eb; color: var(--brand-dark); padding: 11px 14px; font-weight: 750; }
.knowledge-message.visible { display: block; }
.knowledge-message.error { border-color: #e6b8ad; background: #fff0ec; color: #8a2e20; }
.knowledge-overview { margin-bottom: 16px; }
.knowledge-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; overflow: hidden; border-radius: 12px; background: var(--line); }
.knowledge-stats article { display: grid; gap: 5px; background: var(--card-2); padding: 16px; }
.knowledge-stats span { color: var(--ink-2); font-size: 12px; font-weight: 750; }
.knowledge-stats strong { color: var(--brand-dark); font-family: var(--serif); font-size: 1.65rem; }
.knowledge-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(280px, .85fr); gap: 16px; align-items: start; }
.knowledge-main, .knowledge-side { min-width: 0; }
.knowledge-side { display: grid; gap: 16px; position: sticky; top: 16px; }
.knowledge-filters { display: grid; grid-template-columns: minmax(180px, 1.6fr) minmax(160px, .8fr) auto; gap: 10px; align-items: end; margin: 18px 0; }
.knowledge-filters label, .knowledge-upload label { display: grid; gap: 6px; color: var(--ink-2); font-size: 12px; font-weight: 750; }
.knowledge-filters input, .knowledge-filters select, .knowledge-upload input { width: 100%; min-width: 0; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--ink); padding: 10px 11px; font: inherit; }
.knowledge-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 9px; }
.knowledge-card { width: 100%; display: grid; gap: 7px; border: 1px solid var(--line); border-radius: 13px; background: #fff; color: var(--ink); padding: 14px; text-align: left; box-shadow: none; }
.knowledge-card > * { min-width: 0; overflow-wrap: anywhere; }
.knowledge-card:hover, .knowledge-card.active { border-color: var(--green); background: #f2f7f3; transform: none; }
.knowledge-card-type { color: var(--green); font-size: 11px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.knowledge-card > strong { font-family: var(--serif); font-size: 1.08rem; }
.knowledge-card > span:not(.knowledge-card-type) { color: var(--ink-2); font-weight: 500; line-height: 1.45; }
.knowledge-card small { color: var(--ink-3); }
.knowledge-empty { display: grid; gap: 6px; border: 1px dashed var(--line); border-radius: 13px; color: var(--ink-2); padding: 24px; text-align: center; }
.knowledge-upload { display: grid; gap: 12px; margin: 14px 0 10px; }
.knowledge-upload-panel small { display: block; color: var(--ink-3); line-height: 1.45; }
.knowledge-upload-status-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 18px; border-top: 1px solid var(--line); padding-top: 14px; }
.knowledge-upload-status-head h3 { margin: 0; font-family: var(--serif); font-size: 1rem; }
.knowledge-upload-status-head button { min-height: 44px; padding: 7px 10px; }
.knowledge-upload-list { display: grid; gap: 8px; margin-top: 10px; }
.knowledge-upload-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 8px; align-items: center; min-width: 0; border-radius: 9px; background: var(--card-2); padding: 10px; }
.knowledge-upload-row strong { overflow-wrap: anywhere; font-size: .9rem; }
.knowledge-upload-row small { grid-column: 1 / -1; font-size: .75rem; }
.knowledge-upload-status-badge { justify-self: end; border: 1px solid #c8d6ca; border-radius: 999px; background: #fff; color: var(--brand-dark); padding: 4px 8px; font-size: .75rem; font-weight: 800; white-space: nowrap; }
.knowledge-upload-row.status-geprueft .knowledge-upload-status-badge,
.knowledge-upload-row.status-uebernommen .knowledge-upload-status-badge { border-color: #8fbb98; background: #e9f3eb; }
.knowledge-upload-row.status-abgelehnt .knowledge-upload-status-badge,
.knowledge-upload-row.status-verarbeitung_fehlgeschlagen .knowledge-upload-status-badge { border-color: #e6b8ad; background: #fff0ec; color: #8a2e20; }
.knowledge-upload-status-note { color: var(--ink-2) !important; }
.knowledge-upload-error { margin: 0; color: #8a2e20; font-size: .85rem; }
.knowledge-detail { min-height: 220px; }
.knowledge-detail .button-link { display: inline-flex; margin-top: 14px; }
.knowledge-path { overflow-wrap: anywhere; border-radius: 8px; background: var(--card-2); color: var(--ink-3); padding: 8px 10px; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 11px; }
.knowledge-preview { max-height: 360px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 14px 0; color: var(--ink-2); line-height: 1.55; }

@media (max-width: 1200px) {
  .knowledge-layout { grid-template-columns: 1fr; }
  .knowledge-side { position: static; }
}
@media (max-width: 900px) {
  .knowledge-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .knowledge-filters, .knowledge-stats { grid-template-columns: 1fr; }
}
/* Mahdplanung: versionierte, kanonische Schnittplanung */
.mowing-plan-message { min-height: 1.5rem; margin: 0 0 12px; color: var(--muted, #647067); }
.mowing-plan-message.error, .mowing-plan-editor .form-error { color: #9f2f2f; }
.mowing-plan-message:empty { display: none; }
.mowing-plan-layout { display: grid; grid-template-columns: minmax(280px, .7fr) minmax(560px, 1.3fr); gap: 18px; align-items: start; }
.mowing-plan-overview, .mowing-plan-editor { min-width: 0; }
.mowing-plan-filters { display: flex; gap: 8px; align-items: end; margin: 0 0 16px; }
.mowing-plan-filters label { font-weight: 700; }
.mowing-plan-filters input { width: 8rem; }
.mowing-plan-list { display: grid; gap: 9px; }
.mowing-plan-card { width: 100%; min-height: 44px; padding: 13px; display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; text-align: left; color: inherit; background: #fff; border: 1px solid #d9e0d9; border-radius: 12px; }
.mowing-plan-card:hover, .mowing-plan-card:focus-visible, .mowing-plan-card.active { border-color: #3b7554; box-shadow: 0 0 0 2px rgba(59,117,84,.13); }
.mowing-plan-card strong, .mowing-plan-card span:not(.mowing-plan-status), .mowing-plan-card small { grid-column: 1; }
.mowing-plan-status { grid-column: 2; grid-row: 1 / span 2; align-self: start; padding: 4px 8px; border-radius: 999px; background: #e9eee9; font-size: .78rem; font-weight: 700; }
.mowing-plan-status[data-status="planned"], .mowing-plan-status[data-status="in_progress"] { background: #e3efe7; color: #285c3c; }
.mowing-plan-status[data-status="completed"] { background: #dce9dd; color: #214c31; }
.mowing-plan-status[data-status="cancelled"] { background: #eee7e4; color: #7b4037; }
.mowing-plan-empty { padding: 24px 12px; text-align: center; border: 1px dashed #cad3ca; border-radius: 12px; }
.mowing-plan-base-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.mowing-plan-base-grid label, .mowing-step label { display: grid; gap: 5px; font-weight: 650; }
.mowing-plan-base-grid .span-2 { grid-column: span 2; }
.mowing-plan-period { margin: 16px 0; padding: 12px 14px; display: grid; grid-template-columns: auto 1fr; gap: 2px 14px; border-radius: 10px; background: #f1f5f0; }
.mowing-plan-period span { font-weight: 700; }
.mowing-plan-period small { grid-column: 2; color: var(--muted, #647067); }
.mowing-steps { padding: 0; margin: 0; border: 0; }
.mowing-steps legend { font-size: 1.15rem; font-weight: 750; }
#mowing-plan-steps { display: grid; gap: 10px; }
.mowing-step { position: relative; display: grid; grid-template-columns: 2rem repeat(4, minmax(0, 1fr)); gap: 10px; align-items: end; padding: 12px; border: 1px solid #dce3dc; border-radius: 12px; }
.mowing-step h3 { margin: 0; align-self: center; }
.mowing-step-number { width: 2rem; height: 2rem; display: grid; place-items: center; align-self: center; border-radius: 50%; background: #dfeadf; color: #2e5c3c; font-weight: 800; }
.mowing-step select, .mowing-step input, .mowing-plan-base-grid select, .mowing-plan-base-grid input, .mowing-plan-base-grid textarea { width: 100%; min-width: 0; }

@media (max-width: 1100px) {
  .mowing-plan-layout { grid-template-columns: 1fr; }
  .mowing-step { grid-template-columns: 2rem repeat(2, minmax(0, 1fr)); }
  .mowing-step h3 { grid-column: 2 / -1; }
}
@media (max-width: 640px) {
  .mowing-plan-overview .panel-head, .mowing-plan-editor .panel-head { align-items: stretch; }
  .mowing-plan-overview .panel-head button, .mowing-plan-editor .panel-head button { width: 100%; }
  .mowing-plan-base-grid { grid-template-columns: 1fr; }
  .mowing-plan-base-grid .span-2 { grid-column: auto; }
  .mowing-step { grid-template-columns: 2rem 1fr; }
  .mowing-step h3 { grid-column: 2; }
  .mowing-step label { grid-column: 1 / -1; }
  .mowing-plan-period { grid-template-columns: 1fr; }
  .mowing-plan-period small { grid-column: 1; }
}

/* Kompakte Kartendarstellung */
.map-display-settings { min-width: 0; border: 1px solid var(--line-2); border-radius: 9px; background: rgba(248,246,240,.58); }
.map-display-settings > summary { min-height: 38px; padding: 6px 9px; display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 8px; cursor: pointer; color: var(--brand-dark); font-size: 11px; font-weight: 800; }
.map-display-settings > summary small { min-width: 0; overflow: hidden; color: var(--muted); font-size: 9px; font-weight: 600; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.map-display-settings-body { display: grid; gap: 8px; padding: 0 8px 8px; }
.map-display-settings:not([open]) > .map-display-settings-body,
.external-layer-panel:not([open]) > .external-layer-list { display: none; }
.map-layer-controls { min-width: 0; padding: 7px 0 0; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 4px 8px; border-top: 1px solid rgba(218,210,195,.7); }
.map-layer-toggle { min-height: 34px; display: flex; align-items: center; gap: 6px; font-size: 10px; }
.map-layer-toggle:first-child { grid-column: 1; }
.map-layer-toggle input { width: 17px; height: 17px; margin: 0; }
.map-opacity-label { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 9px; }
.map-opacity-label output { font-variant-numeric: tabular-nums; }
#map-topo-opacity { width: 100%; min-width: 0; grid-column: 1 / -1; height: 26px; margin: 0; accent-color: var(--brand); }
#map-topo-help { grid-column: 1 / -1; margin-top: -2px; overflow-wrap: anywhere; color: var(--muted); font-size: 9px; }
.map-display-settings :focus-visible { outline: 3px solid rgba(46,108,166,.35); outline-offset: 1px; }
.map-display-settings :disabled { cursor: not-allowed; opacity: .5; }
[data-platform="flaechenmanager"] #status-filters,
[data-platform="flaechenmanager"] #field-search,
[data-platform="flaechenmanager"] #map-field-list,
[data-platform="flaechenmanager"] #selected { display: none; }
[data-platform="flaechenmanager"] .map-panel { min-height: 0; grid-template-rows: auto; align-self: start; }
[data-platform="flaechenmanager"] .map-panel .panel-head.stack { align-content: start; }
[data-platform="flaechenmanager"] .map-summary { font-size: 10px; }
[data-platform="flaechenmanager"] .map-panel .button-link { min-height: 38px; padding: 7px 10px; border-radius: 9px; font-size: 11px; line-height: 1.2; }
.mowing-work-events { margin-top: 24px; padding-top: 20px; border-top: 2px solid var(--line); }
.mowing-work-events-head { display: flex; justify-content: space-between; align-items: start; gap: 14px; }
.mowing-work-events-head h3 { margin: 0; }
.mowing-work-event-form { margin: 14px 0; padding: 14px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; border: 1px solid #cad8cb; border-radius: 12px; background: #f7faf7; }
.mowing-work-event-form label { min-width: 0; display: grid; gap: 5px; font-weight: 650; }
.mowing-work-event-form input,.mowing-work-event-form select,.mowing-work-event-form textarea { min-width: 0; width: 100%; }
.mowing-work-event-form .span-2 { grid-column: span 2; }
.mowing-work-event-list { display: grid; gap: 10px; }
.mowing-work-event { display: grid; grid-template-columns: 1fr auto; gap: 8px 14px; padding: 14px; border: 1px solid #d7e0d7; border-radius: 12px; }
.mowing-work-event > div:first-child { display: grid; gap: 2px; }
.mowing-work-event p,.mowing-work-event small,.mowing-work-event .actions,.mowing-work-event .cancelled-label { grid-column: 1 / -1; margin: 0; overflow-wrap: anywhere; }
.mowing-work-event.cancelled { border-style: dashed; background: #f1edeb; }
.cancelled-label { color: #7b4037; }
.mowing-event-empty { padding: 18px; text-align: center; border: 1px dashed #cad3ca; border-radius: 12px; }
@media (max-width: 640px) {
  .map-layer-controls,.mowing-work-event-form { grid-template-columns: 1fr; }
  .mowing-work-event-form .span-2 { grid-column: auto; }
  .mowing-work-events-head { display: grid; }
  .mowing-work-events-head button,.mowing-work-event .actions button { min-height: 44px; width: 100%; }
  .mowing-work-event { grid-template-columns: 1fr; }
  .mowing-work-event .mowing-plan-status { grid-column: 1; justify-self: start; }
}
@media (min-width: 641px) {
  .map-layout { height: auto; min-height: calc(100dvh - 88px); }
  .map-panel { overflow: visible; }
}

/* Gemeinsamer Karten-Workspace: Flächen, Mahd und Weide */
.map-workspace, .map-workspace * { box-sizing: border-box; min-width: 0; }
.map-workspace { width: 100%; max-width: 100%; overflow-x: clip; }
.map-workspace-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 360px); align-items: start; gap: 14px; width: 100%; min-height: 500px; }
.map-workspace-card { position: relative; height: clamp(500px, 72dvh, 760px); min-height: 500px; overflow: hidden; border-radius: 14px; background: #e8eee7; }
.map-workspace-map { width: 100%; height: 100%; min-height: 500px; }
.map-workspace-empty { position: absolute; inset: 50% auto auto 50%; translate: -50% -50%; z-index: 500; max-width: min(28rem, calc(100% - 32px)); padding: 14px; background: #fff; border-radius: 10px; text-align: center; }
.map-workspace-panel { display: grid; align-content: start; gap: 10px; max-width: 100%; max-height: clamp(500px, 72dvh, 760px); overflow: auto; overscroll-behavior: contain; }
.map-workspace-panel details, .map-workspace-inspector { max-width: 100%; overflow: hidden; border: 1px solid #d9dfd5; border-radius: 10px; background: #fff; }
.map-workspace-panel summary { padding: 11px 12px; cursor: pointer; touch-action: manipulation; }
.map-workspace-search-body, .map-display-settings-body, .map-workspace-inspector { display: grid; gap: 10px; padding: 12px; overflow-wrap: anywhere; }
.map-workspace-search-body input[type="search"], .map-workspace-panel select { width: 100%; max-width: 100%; }
.workspace-bulk-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.workspace-bulk-actions button, .workspace-multi-toggle, .map-workspace-panel > button, .workspace-result button { min-height: 44px; max-width: 100%; touch-action: manipulation; white-space: normal; }
.workspace-multi-toggle[aria-pressed="true"] { color: #fff; background: #397b55; }
.workspace-filter-warning { padding: 10px; border-left: 4px solid #c0942b; background: #fff8df; overflow-wrap: anywhere; }
.workspace-result { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px solid #e7ebe5; }
.workspace-result label { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 9px; }
.workspace-result input { width: 22px; height: 22px; }
.workspace-result span, .workspace-result small { display: block; overflow-wrap: anywhere; }
.workspace-result.selected { background: #eef7ed; }
.workspace-fixed-layers { padding: 9px; border-radius: 8px; background: #eef3eb; }
.map-workspace-inspector dl > div { display: grid; grid-template-columns: minmax(90px, .8fr) minmax(0, 1.2fr); gap: 8px; padding: 5px 0; }
.map-workspace-inspector dd { margin: 0; overflow-wrap: anywhere; }
.map-workspace-panel fieldset { min-width: 0; }
.map-workspace-panel fieldset label { display: block; min-height: 44px; padding: 6px 0; touch-action: manipulation; }
.doeberitz-access-controls { margin: 12px 0 0; padding: 10px; border: 1px solid #cfd8cc; border-radius: 8px; background: #f8faf7; }
.doeberitz-access-controls legend { padding: 0 5px; font-weight: 700; }
.doeberitz-access-controls label { display: grid !important; grid-template-columns: 22px 22px minmax(0, 1fr); align-items: center; gap: 7px; }
.doeberitz-access-controls input { width: 20px; height: 20px; margin: 0; }
.doeberitz-layer-swatch { display: inline-block; width: 22px; height: 5px; border-radius: 3px; background: #667085; }
.doeberitz-layer-swatch-doeberitz { background: linear-gradient(90deg, #0057d9 0 25%, #c06b18 25% 50%, #b42318 50% 75%, #245c36 75%); }
.doeberitz-access-legend { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 10px; margin-top: 8px; font-size: .76rem; line-height: 1.25; color: #39443c; }
.doeberitz-access-legend span { display: grid; grid-template-columns: 26px minmax(0, 1fr); align-items: center; gap: 5px; min-width: 0; }
.doeberitz-access-legend i { display: inline-block; width: 24px; height: 5px; border-radius: 3px; background: #667085; }
.doeberitz-access-legend .route { height: 6px; background: #0057d9; }
.doeberitz-access-legend .walkable { background: #c06b18; }
.doeberitz-access-legend .unknown { background: repeating-linear-gradient(90deg, #667085 0 3px, transparent 3px 8px); }
.doeberitz-access-legend .restricted { background: repeating-linear-gradient(90deg, #b42318 0 9px, transparent 9px 15px); }
.doeberitz-access-legend .boundary { background: repeating-linear-gradient(90deg, #245c36 0 12px, transparent 12px 18px); }
.doeberitz-access-legend .entrance { width: 11px; height: 11px; margin-left: 6px; border: 2px solid #4c1d95; border-radius: 50%; background: #fff; }
.doeberitz-access-note, .doeberitz-access-status { margin: 8px 0 0; font-size: .82rem; line-height: 1.35; color: #4b554b; }
.doeberitz-popup { min-width: 220px; overflow-wrap: anywhere; }
.doeberitz-popup dl { margin: 8px 0; }
.doeberitz-popup dl > div { display: grid; grid-template-columns: minmax(78px, .8fr) minmax(0, 1.2fr); gap: 7px; padding: 2px 0; }
.doeberitz-popup dt { font-weight: 700; }
.doeberitz-popup dd { margin: 0; }
.doeberitz-popup p { margin: 8px 0 0; font-size: .78rem; color: #5c635b; }
.doeberitz-native-attribution-hidden { display: none !important; }
.doeberitz-source-info { position: relative; width: 44px; height: 44px; margin: 0 10px 10px 0 !important; background: transparent; border: 0; box-shadow: none !important; }
.doeberitz-source-info-button { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 1px solid #b9cdbd; border-radius: 50%; background: rgb(255 255 255 / 97%); color: #183d2e; font: 800 18px/1 Georgia, serif; box-shadow: 0 1px 5px rgb(0 0 0 / 28%); }
.doeberitz-source-info-button[aria-expanded="true"] { background: #183d2e; color: #fff; }
.doeberitz-source-info-panel { position: absolute; right: 0; bottom: 50px; width: max-content; max-width: min(280px, calc(100vw - 110px)); max-height: min(45dvh, 260px); padding: 9px 11px; border: 1px solid #cfd8cc; border-radius: 10px; background: rgb(255 255 255 / 97%); box-shadow: 0 1px 5px rgb(0 0 0 / 28%); color: #202820; font-size: 10px; line-height: 1.35; overflow: auto; overflow-wrap: anywhere; }
.doeberitz-source-info-panel[hidden] { display: none; }
.doeberitz-source-info-panel strong { display: block; margin-bottom: 4px; font-size: 11px; }
.doeberitz-source-info-panel a { color: #174f92; text-decoration: underline; }
.map-workspace-fullscreen { position: absolute; z-index: 650; top: 10px; left: 10px; width: 44px; height: 44px; padding: 0; font-size: 22px; }
.map-workspace-tile-status { position: absolute; z-index: 550; left: 60px; bottom: 30px; max-width: calc(100% - 70px); margin: 0; border-radius: 7px; padding: 5px 8px; background: rgba(255,255,255,.9); font-size: 11px; overflow-wrap: anywhere; }
.map-workspace-tile-status.warn { color: var(--red); font-weight: 800; }
.map-workspace-fullscreen-open { position: fixed !important; z-index: 5000; inset: 0; width: 100vw !important; height: 100dvh; padding: 10px; background: var(--bg, #f4f2eb); overflow: auto; }
.map-workspace-fullscreen-open .map-workspace-layout { min-height: calc(100dvh - 20px); }
.map-workspace-fullscreen-open .map-workspace-card,
.map-workspace-fullscreen-open .map-workspace-map { height: calc(100dvh - 20px); max-height: none; }
.map-workspace-fullscreen-open .map-workspace-panel { max-height: calc(100dvh - 20px); }
.map-workspace-fullscreen-body { overflow: hidden; }
.map-workspace-compact .map-workspace-layout { display: block; min-height: 280px; }
.map-workspace-compact .map-workspace-card, .map-workspace-compact .map-workspace-map { min-height: 280px; height: 280px; }
.map-workspace-compact .map-workspace-panel { display: none; }
.workspace-limit-note { margin: 0; color: var(--ink-2); font-size: 11px; }
.map-workspace-filter { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.map-workspace-filter label { display: grid; gap: 3px; font-size: 11px; font-weight: 750; }

@media (max-width: 760px) {
  .map-workspace-layout { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .map-workspace-card, .map-workspace-map { height: clamp(330px, 52dvh, 480px); min-height: clamp(330px, 52dvh, 480px); }
  .map-workspace-panel { max-height: none; overflow: visible; }
}
@media (max-width: 430px) {
  .map-workspace, .map-workspace-layout, .map-workspace-card, .map-workspace-panel { width: 100%; max-width: 100%; }
  .map-workspace-layout { gap: 9px; }
  .map-workspace-search-body, .map-display-settings-body, .map-workspace-inspector { padding: 10px; }
  .workspace-bulk-actions, .map-workspace-filter { grid-template-columns: minmax(0, 1fr); }
  .workspace-result { grid-template-columns: minmax(0, 1fr); }
  .parcel-form-grid, .parcel-facts { grid-template-columns: minmax(0, 1fr) !important; }
  .fieldbase-inspector, .fieldbase-browser-panel { max-width: 100%; overflow-x: hidden; }
  .parcel-facts dd, .fieldbase-browser-row { overflow-wrap: anywhere; }
}
