@font-face {
  font-family: "Sofia Sans";
  src: url("../fonts/sofia-sans/SofiaSans-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 100 600;
  font-display: swap;
}
@font-face {
  font-family: "Sofia Sans";
  src: url("../fonts/sofia-sans/SofiaSans-Bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700 1000;
  font-display: swap;
}
@font-face {
  font-family: "Sofia Sans";
  src: url("../fonts/sofia-sans/SofiaSans-Italic.ttf") format("truetype");
  font-style: italic;
  font-weight: 100 600;
  font-display: swap;
}
@font-face {
  font-family: "Sofia Sans";
  src: url("../fonts/sofia-sans/SofiaSans-BoldItalic.ttf") format("truetype");
  font-style: italic;
  font-weight: 700 1000;
  font-display: swap;
}

:root {
  --bs-font-sans-serif: "Sofia Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --bs-body-font-family: var(--bs-font-sans-serif);
  --sofia-navy: #102a43;
  --sofia-blue: #1665d8;
  --sofia-cyan: #0ea5a6;
  --sofia-green: #1f8a70;
  --sofia-gold: #e5a624;
  --surface: #ffffff;
  --canvas: #f4f7fb;
  --border: #dfe7f0;
  --text: #243b53;
  --muted: #6b7c93;
  --sidebar-width: 274px;
  --radius: 14px;
  --shadow: 0 9px 26px rgba(16, 42, 67, .08);
}

html, body { min-height: 100%; }
body { background: var(--canvas); color: var(--text); font-family: var(--bs-font-sans-serif); }
button, input, optgroup, select, textarea, .leaflet-container { font-family: inherit; }
a { color: var(--sofia-blue); }
.app-shell { min-height: 100vh; }
.app-sidebar {
  position: fixed; inset: 0 auto 0 0; width: var(--sidebar-width); z-index: 1040;
  background: linear-gradient(180deg, #102a43 0%, #153d5c 60%, #125c66 100%); color: #fff;
  padding: 20px 14px; overflow-y: auto; box-shadow: 8px 0 28px rgba(13, 38, 59, .16);
}
.brand { display: flex; gap: 12px; align-items: center; color: #fff; text-decoration: none; padding: 4px 8px 22px; }
.brand-mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: linear-gradient(145deg, #38bdf8, #1f8a70); font-weight: 800; }
.brand-title { font-size: 15px; font-weight: 800; line-height: 1.15; letter-spacing: .01em; }
.brand-subtitle { color: rgba(255,255,255,.62); font-size: 11px; margin-top: 3px; }
.nav-section { color: rgba(255,255,255,.45); font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; padding: 16px 12px 7px; }
.app-nav { display: grid; gap: 4px; }
.app-nav a { color: rgba(255,255,255,.78); text-decoration: none; padding: 10px 12px; border-radius: 10px; display: flex; gap: 11px; align-items: center; font-size: 14px; font-weight: 600; }
.app-nav a:hover { background: rgba(255,255,255,.08); color: #fff; }
.app-nav a.active { color: #fff; background: rgba(56,189,248,.2); box-shadow: inset 3px 0 #38bdf8; }
.nav-icon { width: 22px; text-align: center; font-size: 16px; }
.nav-module { margin-top: 14px; padding: 8px; border: 1px solid rgba(255,255,255,.1); border-radius: 13px; background: rgba(4,25,42,.18); }
.nav-module.active { border-color: rgba(56,189,248,.34); background: rgba(4,25,42,.3); }
.nav-module-title { display: flex; align-items: center; gap: 10px; width: 100%; padding: 6px 8px 9px; border: 0; color: #fff; background: transparent; text-align: left; border-radius: 9px; }
.nav-module-title:hover { background: rgba(255,255,255,.06); }
.nav-module-title > span:nth-child(2) { min-width: 0; flex: 1; }
.nav-module-title strong { display: block; font-size: 13px; }
.nav-module-title small { display: block; color: rgba(255,255,255,.54); font-size: 10px; margin-top: 1px; }
.nav-module-mark { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; color: #fff2a8; background: rgba(229,166,36,.2); }
.nav-module-transport .nav-module-mark { color: #bdfcf1; background: rgba(31,138,112,.28); }
.nav-module-playgrounds .nav-module-mark { color: #fff1a8; background: rgba(231,169,0,.28); }
.nav-module-green-system .nav-module-mark { color: #d8ffe4; background: rgba(35,122,75,.34); }
.nav-module-green-system.active { border-color: rgba(74,222,128,.34); }
.nav-module-chevron { flex: 0 0 auto !important; color: rgba(255,255,255,.58); font-size: 17px; transform: rotate(180deg); transition: transform .16s ease; }
.nav-module.is-collapsed .nav-module-chevron { transform: rotate(0); }
.nav-module.is-collapsed .nav-submenu { display: none; }
.nav-module.is-collapsed { padding-bottom: 8px; }
.nav-submenu { gap: 2px; }
.nav-submenu a { min-height: 36px; padding: 8px 9px 8px 12px; font-size: 12px; color: rgba(255,255,255,.7); }
.nav-submenu .nav-icon { width: 18px; font-size: 13px; opacity: .82; }
.app-main { min-height: 100vh; margin-left: var(--sidebar-width); }
.app-header { height: 74px; position: sticky; top: 0; z-index: 1020; background: rgba(255,255,255,.94); backdrop-filter: blur(12px); border-bottom: 1px solid var(--border); }
.app-header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; padding: 0 28px; }
.page-eyebrow { color: var(--muted); font-size: 11px; text-transform: uppercase; font-weight: 800; letter-spacing: .1em; }
.page-heading { font-size: 20px; font-weight: 800; margin: 1px 0 0; color: var(--sofia-navy); }
.user-chip { display: flex; align-items: center; gap: 10px; }
.user-avatar { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: linear-gradient(145deg, var(--sofia-blue), var(--sofia-cyan)); font-weight: 800; }
.user-name { font-size: 13px; font-weight: 700; }
.user-role { color: var(--muted); font-size: 11px; }
.content { padding: 26px 28px 46px; }
.panel { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); }
.panel-header { padding: 18px 20px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.panel-body { padding: 20px; }
.panel-title { margin: 0; font-size: 16px; font-weight: 800; color: var(--sofia-navy); }
.panel-subtitle { color: var(--muted); font-size: 12px; margin-top: 3px; }
.metric-card { padding: 20px; height: 100%; position: relative; overflow: hidden; }
.metric-card::after { content: ""; position: absolute; width: 96px; height: 96px; border-radius: 50%; background: var(--metric-color, var(--sofia-blue)); opacity: .08; right: -28px; top: -30px; }
.metric-label { color: var(--muted); font-size: 12px; font-weight: 700; }
.metric-value { color: var(--sofia-navy); font-size: 29px; font-weight: 850; margin-top: 4px; }
.metric-note { color: var(--muted); font-size: 11px; margin-top: 5px; }
.btn-primary { background: var(--sofia-blue); border-color: var(--sofia-blue); }
.btn-primary:hover { background: #0f55bb; border-color: #0f55bb; }
.btn-soft { background: #eef5ff; color: #145ab7; border: 1px solid #d6e7ff; }
.btn-soft:hover { background: #dfedff; color: #0e4c9c; }
.form-label { font-size: 12px; font-weight: 750; color: #40566d; }
.form-control, .form-select { border-color: #cfdbe7; border-radius: 9px; min-height: 40px; }
.form-control:focus, .form-select:focus { border-color: #79aef2; box-shadow: 0 0 0 .2rem rgba(22,101,216,.11); }
.table { color: var(--text); margin-bottom: 0; }
.table thead th { color: #5c6f82; font-size: 10px; text-transform: uppercase; letter-spacing: .07em; border-bottom-color: var(--border); background: #f8fafc; white-space: nowrap; }
.table tbody td { font-size: 13px; vertical-align: middle; border-bottom-color: #edf1f5; }
.table-hover tbody tr:hover { background: #f8fbff; }
.badge-status { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; font-size: 10px; font-weight: 800; border-radius: 999px; background: #e8f1ff; color: #175fb8; }
.badge-status[data-status="installed"], .badge-status[data-status="active"], .badge-status[data-status="available"], .badge-status[data-status="verified"], .badge-status[data-status="checked"], .badge-status[data-status="completed"], .badge-status[data-status="resolved"] { background: #def7ec; color: #116149; }
.badge-status[data-status="repair"], .badge-status[data-status="for_check"], .badge-status[data-status="reserved"], .badge-status[data-status="in_progress"], .badge-status[data-status="needs_action"] { background: #fff2cc; color: #8a5b00; }
.badge-status[data-status="missing"], .badge-status[data-status="scrapped"], .badge-status[data-status="cancelled"], .badge-status[data-status="rejected"] { background: #fee2e2; color: #a71d2a; }
.badge-status[data-status="unknown"], .badge-status[data-status="draft"] { background: #edf2f7; color: #52677c; }
.badge-status[data-status="archived"] { background:#e8eaed; color:#4d5963; }
.filter-bar { display: flex; gap: 10px; flex-wrap: wrap; align-items: end; }
.filter-bar > * { min-width: 150px; }
body[data-page="map"] .content { padding: 12px 18px 18px; }
body[data-page="photo-map"] .content { padding: 12px 18px 18px; }
.map-workspace { display: grid; grid-template-rows: auto minmax(430px, 1fr); height: calc(100vh - 104px); min-height: 520px; }
.map-workbar { min-height: 54px; display: flex; flex-wrap: wrap; align-items: center; gap: 9px; padding: 7px 8px 10px; }
.map-workbar-spacer { flex: 1; }
.map-street-search{flex:1 1 230px;max-width:350px;min-width:0;margin:0}.map-street-input{display:flex;gap:4px;align-items:center}.map-street-input input{min-width:0;height:36px}.map-street-input>.btn{flex-shrink:0;min-height:36px}.map-street-search>small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.map-street-search [hidden]{display:none!important}
#map-street::-webkit-search-cancel-button{-webkit-appearance:none}#map-street-clear{min-width:32px;font-size:18px;text-decoration:none;padding:0 6px}
.map-workbar-actions { display: flex; min-width: 0; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.map-workbar-actions .btn { white-space: nowrap; }
.map-mode-switch { display: inline-flex; padding: 3px; border: 1px solid var(--border); border-radius: 10px; background: #fff; box-shadow: 0 3px 12px rgba(16,42,67,.06); }
.map-mode-switch button { border: 0; border-radius: 7px; padding: 6px 11px; background: transparent; color: #52677c; font-size: 12px; font-weight: 750; white-space: nowrap; }
.map-mode-switch button:hover { color: var(--sofia-navy); background: #f3f7fb; }
.map-mode-switch button.active { color: #fff; background: var(--sofia-navy); box-shadow: 0 3px 8px rgba(16,42,67,.18); }
.map-result-summary { color: var(--muted); font-size: 12px; white-space: nowrap; }
.map-campaign-context { max-width: 310px; overflow: hidden; padding: 6px 9px; border: 1px solid #ead8f0; border-radius: 9px; color: #6e347a; background: #fbf4fd; font-size: 10px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.filter-count { display: inline-grid; min-width: 18px; height: 18px; place-items: center; margin-left: 4px; padding: 0 5px; border-radius: 99px; background: var(--sofia-blue); color: #fff; font-size: 10px; }
.map-shell { position: relative; min-height: 0; overflow: hidden; border-radius: var(--radius); border: 1px solid var(--border); box-shadow: var(--shadow); background: #dbe7ef; }
#asset-map { position: absolute; inset: 0; }
.map-filter-panel { position: absolute; z-index: 700; top: 12px; left: 58px; width: min(320px, calc(100% - 76px)); max-height: calc(100% - 24px); overflow: auto; padding: 16px; border: 1px solid rgba(207,219,231,.9); border-radius: 13px; background: rgba(255,255,255,.98); box-shadow: 0 16px 38px rgba(16,42,67,.2); transform: translateY(-8px); opacity: 0; visibility: hidden; transition: opacity .16s ease, transform .16s ease, visibility .16s; }
.map-filter-panel.open { transform: translateY(0); opacity: 1; visibility: visible; }
.map-filter-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 13px; }
.map-filter-fields { display: grid; gap: 10px; }
.map-filter-fields .form-label { margin-bottom: 4px; }
.map-previous-toggle { display: flex; align-items: flex-start; gap: 9px; padding: 10px 11px; border: 1px solid #d9e1e7; border-radius: 10px; background: #f7f9fa; cursor: pointer; }
.map-previous-toggle input { flex: 0 0 auto; margin-top: 2px; }
.map-previous-toggle span,.map-previous-toggle strong,.map-previous-toggle small { display: block; }
.map-previous-toggle strong { color: #495864; font-size: 11px; }
.map-previous-toggle small { margin-top: 2px; color: #74828c; font-size: 9px; line-height: 1.35; }
.map-previous-toggle.is-unavailable { display: none; }
.searchable-select { position: relative; width: 100%; }
.searchable-native-select { position: absolute!important; left: 0; bottom: 0; width: 1px!important; min-height: 1px!important; height: 1px!important; padding: 0!important; opacity: 0; pointer-events: none; }
.searchable-select-control { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 9px; width: 100%; min-height: 40px; padding: 5px 10px; border: 1px solid #cfdbe7; border-radius: 9px; color: #263d52; background: #fff; text-align: left; }
.searchable-select-control:hover:not(:disabled),.searchable-select.open .searchable-select-control { border-color: #79aef2; box-shadow: 0 0 0 .2rem rgba(22,101,216,.08); }
.searchable-select-control:disabled { color: #687987; background: #eef2f5; cursor: default; }
.searchable-select-control img { width: 34px; height: 34px; border: 1px solid #dde6ed; border-radius: 8px; object-fit: contain; background: #fff; }
.searchable-select-control span { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.searchable-select-control i { color: #6c7d8b; font-size: 12px; font-style: normal; }
.searchable-select-panel { position: absolute; z-index: 1000; top: calc(100% + 5px); left: 0; right: 0; overflow: hidden; padding: 7px; border: 1px solid #c7d6e2; border-radius: 11px; background: #fff; box-shadow: 0 16px 35px rgba(20,46,69,.2); }
.searchable-select-panel[hidden] { display: none; }
.searchable-select-search { margin-bottom: 6px; }
.searchable-select-options { display: grid; gap: 3px; max-height: 270px; overflow: auto; }
.searchable-select-options button { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 9px; width: 100%; padding: 7px 8px; border: 0; border-radius: 8px; color: #31485c; background: transparent; font-size: 11px; text-align: left; }
.searchable-select-options button:hover,.searchable-select-options button[aria-selected="true"] { color: #124f9e; background: #edf5ff; }
.searchable-select-options button img { width: 42px; height: 38px; border: 1px solid #e0e8ee; border-radius: 7px; object-fit: contain; background: #fff; }
.searchable-select-options button span { overflow-wrap: anywhere; }
.searchable-select-options button b { color: #1665d8; }
.searchable-select-empty { padding: 18px 8px; color: #71818e; font-size: 10px; text-align: center; }
.placement-catalog-preview { display: flex; align-items: center; gap: 10px; margin-top: 7px; padding: 8px 9px; border: 1px solid #d9e7f4; border-radius: 10px; color: #35506a; background: #f7fbff; }
.placement-catalog-preview.is-empty { min-height: 42px; border-style: dashed; color: #7b8c99; font-size: 10px; }
.placement-catalog-preview .table-item-photo { width: 58px; height: 48px; flex: 0 0 58px; object-fit: contain; }
.placement-catalog-preview span,.placement-catalog-preview strong,.placement-catalog-preview small { display: block; }
.placement-catalog-preview strong { color: #223f59; font-size: 11px; }
.placement-catalog-preview small { margin-top: 2px; color: #6b7e8e; font-size: 9px; }
.map-draw-chooser { position: absolute; z-index: 710; top: 58px; right: 12px; width: min(540px,calc(100% - 24px)); max-height: calc(100% - 70px); overflow: auto; padding: 12px; border: 1px solid var(--border); border-radius: 14px; background: rgba(255,255,255,.98); box-shadow: 0 14px 34px rgba(16,42,67,.2); }
.map-draw-chooser[hidden] { display: none; }
.map-draw-chooser-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.map-draw-chooser-heading strong { color:var(--sofia-navy); font-size:13px; }
.map-draw-choices { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:7px; }
.map-popup-counts{display:flex;gap:3px;flex-wrap:wrap;margin-top:4px}.map-popup-counts i{padding:2px 4px;border-radius:5px;color:#5f7078;background:#edf2f4;font-size:8px;font-style:normal}.map-popup-counts b{color:#243f4d}
.map-draw-chooser button[data-draw-shape] { display:flex; min-width:0; min-height:66px; flex-direction:column; align-items:center; justify-content:center; gap:4px; border:1px solid #d9e5ef; border-radius:10px; padding:8px 6px; background:#f8fbfe; color:var(--text); font-size:11px; font-weight:800; text-align:center; }
.map-draw-chooser button[data-draw-shape]:hover { border-color:#80afe8; background:#edf5ff; color:#145ab7; }
.map-draw-chooser button[data-draw-shape] span { color:var(--sofia-blue); font-size:18px; line-height:1; }
.map-draw-hint { display:block; margin-top:9px; color:var(--muted); font-size:10px; line-height:1.4; }
.map-legend { position: absolute; z-index: 500; right: 12px; bottom: 12px; display: flex; gap: 11px; background: rgba(255,255,255,.92); padding: 7px 10px; border: 1px solid rgba(223,231,240,.9); border-radius: 9px; box-shadow: 0 7px 20px rgba(16,42,67,.12); font-size: 10px; pointer-events: none; }
.legend-dot { width: 9px; height: 9px; display: inline-block; border-radius: 50%; margin-right: 5px; }
.legend-line { width: 14px; display: inline-block; margin: 0 5px 2px 0; border-top: 2px solid; }
.legend-line.district { border-color: #58738e; border-top-style: dashed; }
.legend-line.park-zone { height:8px; border:2px solid #237a4b; background:rgba(101,173,115,.18); }
.legend-reference { width: 14px; display: inline-block; margin: 0 5px 2px 0; border-top: 3px dashed #87929b; }
.leaflet-popup-content { min-width: 250px; margin: 14px 16px; }
.map-popup-title { font-weight: 800; color: var(--sofia-navy); font-size: 14px; }
.map-popup-meta { color: var(--muted); font-size: 11px; margin: 4px 0 8px; }
.map-popup-items { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; font-size: 12px; }
.map-popup-item { display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 8px; }
.map-popup-thumb { width: 34px; height: 34px; border-radius: 8px; object-fit: cover; background: #edf2f7; }
.map-popup-thumb.placeholder { display: grid; place-items: center; color: var(--sofia-blue); font-size: 15px; }
.map-previous-details { margin-top: 10px; padding: 8px 9px; border: 1px dashed #b8c2ca; border-radius: 9px; color: #56636d; background: #f7f8f9; }
.map-previous-details summary { cursor: pointer; font-size: 10px; font-weight: 800; }
.map-previous-details ul { display: grid; gap: 4px; margin: 7px 0 0; padding: 0; list-style: none; }
.map-previous-details li { display: grid; grid-template-columns: 38px minmax(0,1fr); align-items: center; gap: 8px; font-size: 10px; }
.map-previous-details li>img,.map-previous-details li>i { display: grid; width: 38px; height: 34px; place-items: center; border: 1px solid #dce3e8; border-radius: 7px; object-fit: contain; color: #778590; background: #fff; cursor: zoom-in; font-style: normal; }
.map-previous-details li span,.map-previous-details li b,.map-previous-details li small { display: block; overflow-wrap: anywhere; }
.map-previous-details li b { color: #46535d; }
.map-previous-details li small { margin-top: 2px; color: #75828b; }
.district-label { color: #415b74; font-size: 10px; font-weight: 800; text-shadow: 0 1px 2px #fff, 0 0 4px #fff; background: transparent; border: 0; box-shadow: none; }
.district-label::before { display: none; }
.catalog-toolbar { min-height: 58px; padding: 10px 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--border); background: #fbfdff; }
.catalog-search { position: relative; width: min(420px, 100%); }
.catalog-search span { position: absolute; z-index: 1; left: 12px; top: 50%; transform: translateY(-53%); color: var(--muted); }
.catalog-search .form-control { padding-left: 34px; background: #fff; }
.catalog-item-cell { display: flex; align-items: center; gap: 12px; min-width: 280px; }
.catalog-photo { width: 66px; height: 58px; flex: 0 0 66px; object-fit: contain; border: 1px solid var(--border); border-radius: 10px; background: #fff; }
.catalog-photo-empty { display: grid; place-items: center; color: #8ea2b7; background: #edf3f8; font-size: 19px; }
.catalog-table tbody td { padding-top: 10px; padding-bottom: 10px; }
.catalog-status-filter { width: 190px; }
.catalog-editor-drawer { width: min(780px,100vw); }
.catalog-lifecycle-drawer { width: min(480px,100vw); }
.catalog-drawer-eyebrow { margin-bottom: 2px; color:#67809a; font-size:9px; font-weight:900; letter-spacing:.09em; }
.catalog-form-section { margin-bottom:18px; padding:17px; border:1px solid #dce6ef; border-radius:15px; background:#fbfdff; }
.catalog-form-heading { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.catalog-form-heading>span { display:grid; place-items:center; width:29px; height:29px; flex:0 0 29px; border-radius:9px; color:#fff; background:#1c67c9; font-size:11px; font-weight:900; }
.catalog-form-heading strong,.catalog-form-heading small { display:block; }
.catalog-form-heading strong { color:#173b58; font-size:13px; }
.catalog-form-heading small { margin-top:2px; color:#748798; font-size:9px; line-height:1.35; }
.catalog-photo-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin:10px 0; }
.catalog-photo-gallery-empty { grid-column:1/-1; padding:25px 15px; border:1px dashed #cbd9e5; border-radius:12px; color:#72879a; background:#f8fbfd; text-align:center; font-size:11px; }
.catalog-photo-card { position:relative; overflow:hidden; border:1px solid #d6e2ec; border-radius:12px; background:#fff; }
.catalog-photo-card.is-primary { border-color:#4b88d9; box-shadow:inset 0 0 0 1px #4b88d9; }
.catalog-photo-preview { display:block; width:100%; height:135px; padding:0; border:0; background:#edf3f7; cursor:zoom-in; }
.catalog-photo-preview img { display:block; width:100%; height:100%; object-fit:cover; }
.catalog-photo-card>div { display:grid; gap:7px; padding:8px; }
.catalog-photo-card>div>span { color:#557086; font-size:9px; font-weight:850; }
.catalog-photo-card>div>div { display:flex; gap:5px; flex-wrap:wrap; }
.catalog-photo-card .btn { padding:4px 6px; font-size:8px; }
.catalog-photo-upload { position:relative; display:grid; grid-template-columns:34px 1fr; column-gap:10px; padding:12px 14px; border:1px dashed #99b9d6; border-radius:12px; color:#28526f; background:#f1f7fc; cursor:pointer; }
.catalog-photo-upload>span { grid-row:1/3; display:grid; place-items:center; width:34px; height:34px; border-radius:10px; color:#fff; background:#1c67c9; font-size:18px; }
.catalog-photo-upload strong,.catalog-photo-upload small { display:block; }
.catalog-photo-upload strong { font-size:11px; }
.catalog-photo-upload small { color:#6c8294; font-size:9px; }
.catalog-photo-upload input { position:absolute; width:1px; height:1px; opacity:0; }
.catalog-history-list { display:grid; gap:7px; }
.catalog-history-list article { padding:9px 11px; border-left:3px solid #6f91b1; border-radius:8px; background:#f3f7fa; }
.catalog-history-list strong,.catalog-history-list small { display:block; }
.catalog-history-list strong { color:#294a65; font-size:10px; }
.catalog-history-list small { margin-top:2px; color:#748696; font-size:8px; }
.catalog-history-list p { margin:5px 0 0; color:#52697b; font-size:9px; }
.catalog-form-submit { position:sticky; bottom:-20px; z-index:2; display:flex; justify-content:flex-end; margin:20px -20px -20px; padding:13px 20px; border-top:1px solid #dce6ee; background:rgba(255,255,255,.96); backdrop-filter:blur(8px); }
.catalog-row-actions { display:flex; gap:5px; flex-wrap:wrap; min-width:170px; }
.catalog-row-actions .btn { padding:4px 7px; font-size:9px; }
.catalog-row-archived { opacity:.72; }
.catalog-lifecycle-badge { display:inline-flex; padding:5px 8px; border-radius:999px; font-size:9px; font-weight:850; }
.catalog-lifecycle-badge.active { color:#126449; background:#e6f6ef; }
.catalog-lifecycle-badge.archived { color:#665b52; background:#eeeae6; }
.catalog-lifecycle-badge.removed { color:#9f2430; background:#fdecee; }
.catalog-photo-count { margin:4px 0 0 78px; color:#71879a; font-size:9px; }
.catalog-lifecycle-summary { display:flex; align-items:center; gap:10px; padding:12px; border:1px solid #d8e4ed; border-radius:13px; background:#f7fafc; }
.catalog-lifecycle-summary .table-item-identity { min-width:0; }
.catalog-lifecycle-warning { margin-top:12px; padding:12px; border-left:4px solid #d18a24; border-radius:10px; color:#6d522a; background:#fff8e9; font-size:10px; line-height:1.5; }
.inventory-command-center { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 24px; background: linear-gradient(120deg,#fff 0%,#f7fbff 62%,#eef9f7 100%); }
.inventory-command-copy { max-width: 680px; }
.inventory-command-copy h2 { margin: 2px 0 6px; color: var(--sofia-navy); font-size: 22px; font-weight: 850; }
.inventory-command-copy p { margin: 0; color: var(--muted); font-size: 13px; }
.inventory-actions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; max-width: 620px; }
.inventory-metrics .metric-card { min-height: 128px; }
.inventory-metrics > div:nth-child(2) .metric-card { --metric-color: var(--sofia-cyan); }
.inventory-metrics > div:nth-child(3) .metric-card { --metric-color: var(--sofia-gold); }
.inventory-metrics > div:nth-child(4) .metric-card { --metric-color: #7c5ce5; }
.inventory-legend { display: flex; gap: 14px; color: var(--muted); font-size: 11px; white-space: nowrap; }
.inventory-summary-tools { display: flex; align-items: center; gap: 14px; }
.inventory-summary-tools .form-select { width: 220px; min-height: 34px; font-size: 12px; }
.inventory-dot { display: inline-block; width: 8px; height: 8px; margin-right: 5px; border-radius: 50%; }
.inventory-dot.available { background: var(--sofia-green); }
.inventory-dot.attention { background: var(--sofia-gold); }
.inventory-quantity { font-size: 14px !important; font-weight: 850; }
.inventory-quantity.available { color: #13705a; }
.inventory-quantity.attention { color: #966100; }
.inventory-quantity.danger { color: #b12531; }
.movement-label { display: inline-block; max-width: 170px; color: var(--sofia-navy); font-weight: 750; }
.catalog-choice-preview { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; padding: 9px 11px; border: 1px solid #d9e7f4; border-radius: 10px; background: #f7fbff; }
.catalog-choice-meta { color: var(--muted); font-size: 11px; text-align: right; }
.operation-hint { min-height: 16px; margin-top: 6px; color: var(--muted); font-size: 11px; }
.placement-item-list { display: grid; gap: 6px; min-width: 220px; }
.placement-item-compact { display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 8px; }
.placement-item-compact strong { display: block; color: var(--sofia-navy); font-size: 11px; line-height: 1.2; }
.placement-item-compact small { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; }
.placement-item-operational{grid-template-columns:34px minmax(210px,1fr) auto;padding:8px;border:1px solid #e1e8ec;border-radius:10px;background:#fbfdfe}.placement-item-main{min-width:0}.placement-item-main em{display:block;margin-top:5px;color:#6a7b84;font-size:9px;font-style:normal;line-height:1.35}.placement-count-row{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.placement-count{display:inline-flex;align-items:center;gap:4px;padding:3px 6px;border-radius:7px;color:#526872;background:#edf3f5}.placement-count small{margin:0!important;color:inherit!important;font-size:8px!important}.placement-count strong{font-size:9px!important}.placement-count.success{color:#17633e;background:#e8f6ee}.placement-count.partial{color:#7a5b0d;background:#fff5d8}.placement-count.warning{color:#7c5610;background:#fff4d6}.placement-count.danger{color:#8b3030;background:#fdecec}.placement-count-edit{align-self:start;padding:4px 8px}.placement-counts-drawer{width:min(600px,100vw)}.placement-counts-identity{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:13px;border:1px solid #d7e3e8;border-radius:13px;background:#f6fafb}.placement-counts-identity>div:last-child strong,.placement-counts-identity>div:last-child small{display:block}.placement-counts-identity>div:last-child strong{color:#173d53;font-size:12px}.placement-counts-identity>div:last-child small{margin-top:3px;color:#6e808a;font-size:10px}.placement-counts-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.placement-counts-grid label{padding:11px;border:1px solid #dbe5e9;border-radius:12px;background:#fbfdfe}.placement-counts-grid label>span{display:block;margin-bottom:6px;color:#365367;font-size:10px;font-weight:850}
.report-photo-stack { display: flex; gap: 4px; flex-wrap: wrap; }
.campaign-overview { overflow: hidden; }
.campaign-card-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(320px,1fr)); gap: 14px; padding: 18px 20px 20px; background: linear-gradient(135deg,#f8fbff,#f2f9f7); }
.campaign-card { appearance: none; display: block; width: 100%; padding: 17px; border: 1px solid #d8e4ef; border-radius: 13px; color: var(--text); background: #fff; box-shadow: 0 5px 16px rgba(16,42,67,.05); text-align: left; transition: border-color .16s,box-shadow .16s,transform .16s; }
.campaign-card-select{display:block;width:100%;padding:0;border:0;color:inherit;background:transparent;text-align:left}
.campaign-card:hover { transform: translateY(-1px); border-color: #9ec3ef; box-shadow: 0 9px 22px rgba(16,42,67,.1); }
.campaign-card.active { border-color: var(--sofia-blue); box-shadow: 0 0 0 3px rgba(22,101,216,.1),0 9px 22px rgba(16,42,67,.1); }
.campaign-card.archived{border-style:dashed;background:#f6f7f8}.campaign-card.archived:hover{border-color:#aeb8bf;transform:none}.campaign-card.archived .campaign-season,.campaign-card.archived h3,.campaign-card.archived .campaign-card-metrics strong{color:#53616b}
.campaign-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.campaign-card h3 { margin: 4px 0 0; color: var(--sofia-navy); font-size: 16px; font-weight: 850; }
.campaign-season { color: var(--sofia-blue); font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.campaign-period { display: flex; gap: 18px; margin: 14px 0; padding: 10px 0; border-block: 1px solid #edf1f5; color: var(--muted); font-size: 10px; }
.campaign-period strong { display: block; margin-top: 2px; color: var(--text); font-size: 11px; }
.campaign-card-metrics { display: flex; gap: 16px; flex-wrap: wrap; color: var(--muted); font-size: 10px; }
.campaign-card-metrics strong { display: block; color: var(--sofia-navy); font-size: 17px; line-height: 1; }
.campaign-copy-button{width:100%;margin-top:14px}.campaign-archive-lock,.campaign-lineage{margin-top:12px;padding-top:10px;border-top:1px solid #e3e8eb;color:#6c7a83;font-size:10px;font-weight:750}.campaign-archive-lock{text-align:center}.campaign-table-archive{display:inline-flex;align-items:center;padding:6px 9px;border-radius:8px;color:#5d6870;background:#eceff1;font-size:10px;font-weight:800;white-space:nowrap}
.campaign-copy-drawer{width:min(620px,96vw)}.campaign-copy-source{display:grid;gap:3px;padding:14px 15px;border:1px solid #cdddea;border-radius:14px;background:#f4f9fc}.campaign-copy-source span{color:#6b7f8c;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.campaign-copy-source strong{color:#173c55;font-size:15px}.campaign-copy-source small{color:#6a7d89}.campaign-copy-note{padding:14px 15px;border-left:4px solid #2c7a60;border-radius:11px;color:#385747;background:#f0f8f4}.campaign-copy-note strong{display:block;margin-bottom:5px}.campaign-copy-note p{margin:4px 0;font-size:11px;line-height:1.5}.campaign-copy-confirm{display:flex;align-items:flex-start;gap:10px;padding:13px;border:1px solid #e0c68b;border-radius:12px;background:#fff9eb;cursor:pointer}.campaign-copy-confirm input{margin-top:3px}.campaign-copy-confirm span,.campaign-copy-confirm strong,.campaign-copy-confirm small{display:block}.campaign-copy-confirm strong{color:#6e4c08;font-size:12px}.campaign-copy-confirm small{margin-top:3px;color:#7f6a3d;font-size:10px;line-height:1.4}
.campaign-filter-bar { display: grid; grid-template-columns: minmax(180px,1fr) minmax(160px,.8fr) minmax(220px,1.25fr) minmax(190px,1fr) minmax(160px,.8fr) auto; align-items: end; gap: 10px; padding: 15px 20px; border-bottom: 1px solid var(--border); background: #fbfdff; }
.campaign-filter-field { min-width: 0; }
.campaign-filter-field .form-label { display: block; margin-bottom: 5px; }
.campaign-filter-field .form-control { width: 100%; background-color: #fff; }
.campaign-filter-reset { min-height: 36px; white-space: nowrap; }
.placement-actions { display: flex; gap: 5px; flex-wrap: wrap; min-width: 145px; }

.table-item-identity { display: flex; align-items: center; gap: 10px; min-width: 225px; }
.table-item-photo { width: 52px; height: 46px; flex: 0 0 52px; border: 1px solid var(--border); border-radius: 9px; background: #fff; object-fit: contain; cursor: zoom-in; }
.table-item-photo-small { width: 34px; height: 32px; flex-basis: 34px; border-radius: 7px; }
.table-item-photo-large { width: 66px; height: 58px; flex-basis: 66px; }
.table-item-photo-empty { display: grid; place-items: center; color: #91a4b8; background: #eef3f8; cursor: default; }
.table-item-title { max-width: 260px; color: var(--sofia-navy); font-weight: 750; line-height: 1.25; }
.table-item-code { margin-top: 3px; color: var(--muted); font-size: 10px; letter-spacing: .02em; }
.image-lightbox { position: fixed; z-index: 2200; inset: 0; display: none; place-items: center; padding: 28px; background: rgba(7,23,38,.78); backdrop-filter: blur(5px); }
.image-lightbox.open { display: grid; }
.image-lightbox-card { width: min(760px,100%); padding: 16px; border-radius: 15px; background: #fff; box-shadow: 0 22px 70px rgba(0,0,0,.32); }
.image-lightbox-card img { display: block; width: 100%; max-height: 72vh; object-fit: contain; border-radius: 10px; background: #f5f7fa; }
.image-lightbox-title { padding: 13px 4px 2px; color: var(--sofia-navy); font-weight: 800; }
.image-lightbox-loading { display:grid; place-items:center; min-height:220px; padding:30px; color:#637684; background:#f5f7fa; border-radius:10px; text-align:center; }
.image-lightbox-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.image-lightbox-original { flex:0 0 auto; font-size:12px; font-weight:800; }
.photo-map-inline-signals h3{display:flex;align-items:center;justify-content:space-between}.photo-map-inline-signals h3 span{display:grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:99px;color:#8a4c18;background:#fff0df;font-size:9px}.photo-map-inline-signals>div{display:grid;gap:6px}.photo-map-inline-signals article{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border:1px solid #eadfd4;border-radius:10px;background:#fffaf5}.photo-map-inline-signals article strong,.photo-map-inline-signals article small{display:block}.photo-map-inline-signals article strong{color:#513d2d;font-size:9px}.photo-map-inline-signals article small{margin-top:2px;color:#8b7c70;font-size:8px}
.image-lightbox-close { position: absolute; top: 18px; right: 22px; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; color: #fff; background: rgba(0,0,0,.2); font-size: 27px; line-height: 1; }

.dt-container { padding: 12px 18px 16px; }
.dt-container .dt-layout-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 10px !important; }
.dt-container .dt-layout-row:last-child { margin: 12px 0 0 !important; }
.dt-container .dt-layout-cell { display: flex; align-items: center; }
.dt-container .dt-length, .dt-container .dt-search, .dt-container .dt-info { color: var(--muted); font-size: 11px; }
.dt-container .dt-input { min-height: 34px; border: 1px solid #cfdbe7 !important; border-radius: 8px !important; background: #fff !important; font-size: 12px; }
.dt-container .dt-search .dt-input { width: min(260px,48vw); padding: 6px 10px; }
.dt-container .pagination { gap: 3px; margin: 0; }
.dt-container .page-link { min-width: 32px; border-color: var(--border); border-radius: 7px !important; color: var(--sofia-blue); font-size: 11px; text-align: center; }
.dt-container .active > .page-link { border-color: var(--sofia-blue); background: var(--sofia-blue); }
.dt-container table.dataTable { width: 100% !important; margin: 0 !important; }
.dt-container table.dataTable > tbody > tr > td { padding-top: 9px; padding-bottom: 9px; }
.dt-container table.dataTable thead .dt-column-order { opacity: .5; }
.dt-container .dtr-details { width: 100%; }
.dt-container .dtr-details li { display: grid; grid-template-columns: minmax(110px,34%) 1fr; gap: 10px; padding: 8px 0 !important; }
.dt-container .dtr-title { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .05em; }
body[data-page="movements"] #movements { order: -1; }

.transport-command-center { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 24px; overflow: hidden; background: linear-gradient(125deg,#fff 0%,#f5fbff 58%,#ebf8f4 100%); }
.transport-command-center h2 { margin: 3px 0 7px; color: var(--sofia-navy); font-size: 23px; font-weight: 850; }
.transport-command-center p { max-width: 740px; margin: 0; color: var(--muted); font-size: 13px; }
.transport-command-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.transport-metrics .metric-card { min-height: 126px; }
.transport-metrics > div:nth-child(2) .metric-card { --metric-color: #1677c8; }
.transport-metrics > div:nth-child(3) .metric-card { --metric-color: #7c3aed; }
.transport-metrics > div:nth-child(4) .metric-card { --metric-color: #dc2626; }
.transport-alert-metric { --metric-color: #d97706; }
.transport-alert-metric .metric-value { color: #a63f17; }
.transport-filter-bar { display: grid; grid-template-columns: minmax(260px,1.4fr) repeat(4,minmax(145px,.75fr)) auto; align-items: end; gap: 10px; padding: 15px 20px; border-bottom: 1px solid var(--border); background: #fbfdff; }
.transport-filter-wide { min-width: 0; }
.transport-filter-bar .form-label { display: block; margin-bottom: 5px; }
.transport-filter-reset { min-height: 36px; white-space: nowrap; }
.transport-stop-identity { display: grid; grid-template-columns: 42px minmax(190px,1fr); align-items: center; gap: 10px; min-width: 270px; }
.transport-mode-icon { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 12px; color: #fff; background: var(--transport-color,#1677c8); font-size: 12px; font-weight: 900; letter-spacing: -.02em; box-shadow: 0 5px 12px color-mix(in srgb,var(--transport-color,#1677c8) 22%,transparent); }
.transport-stop-name { color: var(--sofia-navy); font-size: 13px; font-weight: 800; line-height: 1.2; }
.transport-public-code { margin-top: 3px; color: var(--muted); font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: 10px; }
.transport-location-cell strong { display: block; color: var(--text); font-size: 12px; }
.transport-location-cell small { display: block; max-width: 230px; margin-top: 2px; color: var(--muted); font-size: 10px; white-space: normal; }
.transport-priority { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 11px; font-weight: 750; }
.transport-priority::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #8da0b4; }
.transport-priority[data-priority="urgent"]::before { background: #dc2626; box-shadow: 0 0 0 3px #fee2e2; }
.transport-priority[data-priority="high"]::before { background: #d97706; }
.transport-priority[data-priority="low"]::before { background: #1f8a70; }
.transport-signal-count { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 11px; }
.transport-signal-count.has-open { color: #a63f17; font-weight: 800; }
.transport-dossier-drawer { width: min(760px,100vw); }
.transport-signal-drawer { width: min(620px,100vw); }
.transport-dossier-identity { display: flex; align-items: center; gap: 12px; }
.transport-dossier-grid { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(190px,.8fr); gap: 12px; }
.transport-qr-card,.transport-signal-summary { display: flex; align-items: center; gap: 15px; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: #f8fbff; }
.transport-qr-card strong,.transport-signal-summary strong { display: block; color: var(--sofia-navy); font-size: 12px; }
.transport-qr-card small,.transport-signal-summary small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.transport-qr { display: grid; place-items: center; flex: 0 0 auto; padding: 7px; border: 1px solid #dce5ed; border-radius: 9px; background: #fff; }
.transport-qr img,.transport-qr canvas { display: block; width: 92px !important; height: 92px !important; }
.transport-summary-number { color: var(--sofia-blue); font-size: 36px; font-weight: 900; line-height: 1; }
.transport-dossier-section { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--border); }
.transport-dossier-section h3 { margin: 0 0 12px; color: var(--sofia-navy); font-size: 14px; font-weight: 850; }
.transport-mini-list { display: grid; gap: 8px; }
.transport-mini-item { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid #e4ebf2; border-radius: 10px; background: #fbfdff; }
.transport-mini-item strong { display: block; color: var(--sofia-navy); font-size: 11px; }
.transport-mini-item small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
.transport-timeline { display: grid; }
.transport-timeline article { display: grid; grid-template-columns: 14px 1fr; gap: 10px; position: relative; padding-bottom: 15px; }
.transport-timeline article::before { content: ""; position: absolute; left: 5px; top: 11px; bottom: -2px; border-left: 1px solid #cbd8e5; }
.transport-timeline article:last-child::before { display: none; }
.transport-timeline article > span { z-index: 1; width: 11px; height: 11px; margin-top: 3px; border: 3px solid #d8eaff; border-radius: 50%; background: var(--sofia-blue); }
.transport-timeline strong { display: block; color: var(--sofia-navy); font-size: 11px; }
.transport-timeline small { display: block; margin-top: 2px; color: var(--muted); font-size: 9px; }
.transport-timeline p { margin: 5px 0 0; color: #4c6277; font-size: 11px; white-space: pre-line; }
.transport-map-workspace { display: grid; grid-template-rows: auto minmax(430px,1fr); height: calc(100vh - 104px); min-height: 520px; }
body[data-page="transport-map"] .content { padding: 12px 18px 18px; }
#transport-map { position: absolute; inset: 0; }
.transport-stop-marker { border: 2px solid #fff; box-shadow: 0 2px 7px rgba(16,42,67,.28); }
.transport-map-popup { min-width: 220px; }
.transport-map-popup h3 { margin: 0 0 4px; color: var(--sofia-navy); font-size: 14px; font-weight: 850; }
.transport-map-popup .meta { margin-bottom: 9px; color: var(--muted); font-size: 10px; }
.transport-signal-stop { display: grid; padding: 12px 14px; border-radius: 11px; background: #eef6ff; }
.transport-signal-stop strong { color: var(--sofia-navy); font-size: 13px; }
.transport-signal-stop span { margin-top: 3px; color: var(--muted); font-size: 10px; }
.asset-create-drawer { width: min(760px,100vw); }
.transport-gis-drawer { width: min(820px,100vw); }
.gis-field-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 9px; }
.gis-inline-map,.gis-editor-map { position: relative; overflow: hidden; border: 1px solid #bfd0df; border-radius: 13px; background: #dce8ef; box-shadow: inset 0 0 0 1px rgba(255,255,255,.55); }
.gis-inline-map { height: 310px; }
.transport-gis-map { height: 365px; }
.gis-editor-tip { padding: 9px 11px; border: 1px solid #dce8f3; border-top: 0; border-radius: 0 0 10px 10px; color: #52677c; background: #f6faff; font-size: 10px; line-height: 1.45; }
.transport-gis-context { display: flex; align-items: center; gap: 11px; padding: 12px 14px; border: 1px solid #d9e6f0; border-radius: 12px; background: linear-gradient(120deg,#f8fbff,#f1f8f6); }
.transport-gis-context strong,.transport-gis-context small { display: block; }
.transport-gis-context strong { color: var(--sofia-navy); font-size: 13px; }
.transport-gis-context small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.transport-gis-context .transport-mode-icon { width: 38px; height: 38px; flex-basis: 38px; border-radius: 10px; }
.playground-command-center { background: linear-gradient(125deg,#fff 0%,#fffaf0 56%,#f1f9f3 100%); }
.playground-command-center h2 { color: #253b31; }
.playground-metrics .playground-good { --metric-color: #2e9d62; }
.playground-metrics .playground-warning { --metric-color: #e0a100; }
.playground-metrics .playground-danger { --metric-color: #d84343; }
.playground-filter-bar { grid-template-columns: minmax(250px,1.35fr) repeat(4,minmax(140px,.75fr)) auto; }
.playground-icon { display:grid; place-items:center; width:42px; height:42px; flex:0 0 42px; border-radius:13px; color:#fff; background:var(--playground-color,#e7a900); font-size:18px; font-weight:900; box-shadow:0 5px 12px color-mix(in srgb,var(--playground-color,#e7a900) 24%,transparent); }
.playground-name-link { appearance:none; border:0; background:transparent; color:inherit; cursor:pointer; padding:0; text-align:left; }
.playground-name-link:hover,.playground-name-link:focus-visible { color:var(--brand,#185b4f); text-decoration:underline; text-underline-offset:3px; }
.playground-condition-pill { display:inline-flex; align-items:center; gap:7px; padding:5px 8px; border-radius:999px; color:#516579; background:#eef3f7; font-size:10px; font-weight:800; white-space:nowrap; }
.playground-condition-pill > span { width:8px; height:8px; border-radius:50%; background:#788b9c; }
.playground-condition-pill.good { color:#196a43; background:#e8f7ee; }.playground-condition-pill.good > span { background:#2e9d62; }
.playground-condition-pill.warning { color:#805b00; background:#fff5ce; }.playground-condition-pill.warning > span { background:#e0a100; }
.playground-condition-pill.danger { color:#952b2b; background:#fdeaea; }.playground-condition-pill.danger > span { background:#d84343; }
.playground-yesno { display:inline-flex; align-items:center; padding:4px 7px; border-radius:7px; color:#7b5e20; background:#faf5e9; font-size:10px; font-weight:750; }.playground-yesno.yes { color:#196a43; background:#e8f7ee; }
.drawer.playground-dossier-drawer { width:min(1180px,100vw); }
.drawer.playground-map-dossier { width:min(880px,100vw); }
.playground-condition-banner { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border-left:5px solid #788b9c; border-radius:10px; color:#405469; background:#f1f5f8; }
.playground-condition-banner strong { font-size:13px; text-transform:uppercase; letter-spacing:.02em; }.playground-condition-banner span { color:inherit; font-size:11px; }
.playground-condition-banner.good { color:#196a43; border-color:#2e9d62; background:#eaf8f0; }.playground-condition-banner.warning { color:#7b5900; border-color:#e0a100; background:#fff7d8; }.playground-condition-banner.danger { color:#8c2727; border-color:#d84343; background:#fdecec; }
.playground-section-title { margin:0 0 10px; color:var(--sofia-navy); font-size:14px; font-weight:850; }
.playground-source-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0; }
.playground-source-grid > div { min-width:0; min-height:78px; padding:13px 14px; border:1px solid #e0e9e4; border-radius:12px; background:#fff; }.playground-source-grid > div.playground-source-wide { grid-column:1/-1; min-height:0; }.playground-source-grid dt { color:#708396; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.045em; }.playground-source-grid dd { margin:6px 0 0; color:#20384e; font-size:13px; line-height:1.48; overflow-wrap:anywhere; }
.playground-location-card { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px; border:1px solid var(--border); border-radius:13px; background:#fbfdff; }.playground-location-card strong,.playground-location-card small { display:block; }.playground-location-card strong { color:var(--sofia-navy); font-size:13px; }.playground-location-card small { margin-top:5px; color:var(--muted); font-size:11px; }
.playground-media-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }.playground-media-item { display:flex; min-height:76px; overflow:hidden; border:1px solid var(--border); border-radius:10px; color:var(--text); background:#fbfdff; text-decoration:none; }.playground-media-item.image { flex-direction:column; }.playground-media-item img { width:100%; height:105px; object-fit:cover; }.playground-media-item span { display:block; min-width:0; padding:7px 9px; overflow-wrap:anywhere; }.playground-media-item span strong,.playground-media-item span time { display:block; }.playground-media-item span strong { color:#294258; font-size:9px; line-height:1.35; }.playground-media-item span time { margin-top:4px; color:#7a8b99; font-size:8px; }.playground-media-item.document { align-items:center; gap:8px; padding:10px; }.playground-media-item.document b { font-size:22px; }
.playground-media-item.video{display:flex;flex-direction:column}.playground-media-item video{display:block;width:100%;height:150px;object-fit:cover;background:#17231d}.playground-media-item.video span{display:block}
.playground-media-upload-section { border-color:#cbded0; background:#f7fbf8; }.playground-media-upload-section .field-media-source-actions { margin-top:2px; }.playground-queue-document { display:grid; place-items:center; width:72px; height:62px; border-radius:8px; color:#315e9a; background:#edf4fc; font-size:25px; }
.playground-map-workspace { height:calc(100vh - 104px); }.playground-map-workspace #playground-map { position:absolute; inset:0; }.playground-marker { transition:stroke-width .12s ease; }.playground-map-popup .playground-condition-pill { margin-bottom:2px; }
.placement-remove-drawer { width:min(520px,100vw); }
.placement-remove-warning { display:flex; align-items:center; gap:12px; padding:14px; border:1px solid #fecaca; border-radius:13px; background:#fff5f5; }
.placement-remove-warning > span { display:grid; place-items:center; width:38px; height:38px; flex:0 0 38px; border-radius:50%; color:#fff; background:#b42318; font-size:20px; font-weight:900; }
.placement-remove-warning strong,.placement-remove-warning small { display:block; }.placement-remove-warning strong { color:#7f1d1d; }.placement-remove-warning small { margin-top:3px; color:#9f3a38; }
.placement-audit-drawer { width:min(1080px,100vw); }
.audit-reason-preview { max-width:360px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.audit-detail-meta { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.audit-detail-meta > div,.audit-reason-card { padding:12px 14px; border:1px solid var(--border); border-radius:11px; background:#f8fafc; }
.audit-detail-meta span,.audit-reason-card span { display:block; margin-bottom:4px; color:var(--muted); font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.audit-detail-meta strong,.audit-reason-card strong { display:block; color:var(--sofia-navy); font-size:12px; line-height:1.45; }
.audit-diff-table { table-layout:fixed; }.audit-diff-table th:first-child { width:20%; }.audit-diff-table td { overflow-wrap:anywhere; font-size:10px; }
.audit-json { max-height:260px; margin:0; padding:12px; overflow:auto; border:1px solid #d9e2ec; border-radius:10px; color:#24405a; background:#f6f8fa; font-size:9px; white-space:pre-wrap; overflow-wrap:anywhere; }
body[data-page="playgrounds-map"] .content { padding:12px 18px 18px; }
.public-playground-hero .public-stop-mark { background:linear-gradient(145deg,#f0bd21,#2e9d62); }
.gis-editor-map .leaflet-pm-toolbar,.gis-inline-map .leaflet-pm-toolbar { box-shadow: 0 5px 14px rgba(16,42,67,.16); }
.gis-editor-map .leaflet-control-attribution,.gis-inline-map .leaflet-control-attribution { font-size: 8px; }

.public-asset-body { min-height: 100vh; background: #eef3f7; }
.public-asset-header { display: flex; align-items: center; justify-content: space-between; max-width: 1120px; margin: 0 auto; padding: 22px 24px; }
.public-brand { display: flex; align-items: center; gap: 11px; color: var(--sofia-navy); text-decoration: none; }
.public-brand strong,.public-brand small { display: block; }
.public-brand small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.public-verified { padding: 6px 10px; border-radius: 99px; color: #116149; background: #dff6ec; font-size: 10px; font-weight: 800; }
.public-asset-main { width: min(1060px,calc(100% - 32px)); margin: 12px auto 46px; }
.public-asset-footer { padding: 22px; color: var(--muted); text-align: center; font-size: 10px; }
.public-stop-hero { display: flex; align-items: center; gap: 18px; margin-bottom: 20px; padding: 28px; border-radius: 18px; color: #fff; background: linear-gradient(130deg,#102a43,#14576a 68%,#158078); box-shadow: 0 16px 40px rgba(16,42,67,.18); }
.public-stop-mark { display: grid; place-items: center; width: 66px; height: 66px; flex: 0 0 66px; border: 2px solid rgba(255,255,255,.3); border-radius: 18px; background: rgba(255,255,255,.13); font-size: 21px; font-weight: 900; }
.public-stop-code { color: rgba(255,255,255,.66); font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: 11px; letter-spacing: .04em; }
.public-stop-hero h1 { margin: 4px 0 3px; font-size: clamp(22px,4vw,34px); font-weight: 900; }
.public-stop-hero p { margin: 0; color: rgba(255,255,255,.74); font-size: 13px; }
.public-alert { border: 0; border-radius: 12px; box-shadow: var(--shadow); }
.public-stop-grid { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(260px,.7fr); gap: 18px; }
.public-card { padding: 22px; border: 1px solid var(--border); border-radius: 15px; background: #fff; box-shadow: var(--shadow); }
.public-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 18px; }
.public-card h2 { margin: 2px 0 0; color: var(--sofia-navy); font-size: 17px; font-weight: 850; }
.public-card p { margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.public-detail-list { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }
.public-detail-list div { padding: 12px 0; border-top: 1px solid #edf1f5; }
.public-detail-list div:nth-child(odd) { padding-right: 16px; }
.public-detail-list dt { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .06em; }
.public-detail-list dd { margin: 3px 0 0; color: var(--text); font-size: 12px; font-weight: 700; }
.public-qr-aside { display: flex; align-items: center; flex-direction: column; text-align: center; }
.public-qr-aside .transport-qr img,.public-qr-aside .transport-qr canvas { width: 168px !important; height: 168px !important; }
.public-signal-form { max-width: 860px; }
.public-qr-sheet { width: min(540px,100%); margin: 10px auto; padding: 42px; border: 1px solid #ccd6df; color: #000; background: #fff; text-align: center; box-shadow: 0 16px 46px rgba(16,42,67,.14); }
.public-qr-municipality { font-size: 13px; font-weight: 900; letter-spacing: .14em; }
.public-qr-mark { display: grid; place-items: center; width: 62px; height: 62px; margin: 22px auto; border-radius: 16px; color: #fff; background: #102a43; font-size: 20px; font-weight: 900; }
.public-qr-sheet h1 { font-size: 25px; font-weight: 900; }
.public-qr-code-label,.public-qr-url { font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: 11px; }
.public-print-qr { display: grid; place-items: center; margin: 25px auto; }
.public-print-qr img,.public-print-qr canvas { display: block; }
.public-qr-sheet p { color: #354b60; font-size: 14px; }
.public-qr-url { margin: 18px 0; overflow-wrap: anywhere; color: #637486; }

@media print {
  .public-asset-header,.public-asset-footer,.public-print-button { display: none !important; }
  .public-asset-body,.public-asset-main { width: 100%; margin: 0; background: #fff; }
  .public-qr-sheet { width: 100%; max-width: none; min-height: 100vh; margin: 0; border: 0; box-shadow: none; }
}
.drawer { position: fixed; z-index: 1060; top: 0; right: 0; bottom: 0; width: min(520px, 100vw); background: #fff; transform: translateX(105%); transition: transform .22s ease; box-shadow: -18px 0 50px rgba(16,42,67,.18); overflow-y: auto; }
.drawer.open { transform: translateX(0); }
.map-installation-controls{padding:10px;background:#f4f8fb;border:1px solid #e0e8ef;border-radius:10px;margin:10px 0}.map-installation-controls>strong{display:block;font-size:13px;margin-bottom:8px}.map-installation-buttons{display:flex;gap:7px}.map-installation-buttons>.btn{flex:1;min-height:42px;font-size:12px;white-space:nowrap;background:white;border:1px solid #cbd8e2}.map-installation-buttons>[data-installation-status=installed]{color:#126645}.map-installation-buttons>[data-installation-status=dismantled]{color:#8054b8}.map-installation-buttons>[aria-pressed=true]{box-shadow:inset 0 0 0 1px currentColor;background:#edf5ef;opacity:1}.map-installation-buttons>[aria-pressed=true][data-installation-status=dismantled]{background:#f2ecf8}.map-installation-controls>small{display:block;color:#647789;font-size:10px;line-height:1.4;margin-top:8px}.map-installation-message{font-size:12px;margin-top:8px;color:#a73625}.map-installation-info{font-size:10px;color:#6b7e8d;line-height:1.5;margin:7px 0}.map-installation-legend{pointer-events:auto;align-items:center;gap:5px;flex-wrap:wrap;max-width:calc(100% - 24px)}.map-installation-legend button{border:1px solid transparent;border-radius:6px;background:transparent;color:#294a60;font-size:11px;padding:7px;min-height:36px;display:flex;align-items:center;gap:6px}.map-installation-legend button[aria-pressed=true]{background:#eaf1f7;border-color:#c1d3e1}.map-installation-planned{display:flex;align-items:center;gap:5px;font-size:10px;padding:6px}.map-installation-controls [hidden]{display:none!important}
.drawer-header { position: sticky; top: 0; z-index: 1; padding: 18px 20px; background: #fff; border-bottom: 1px solid var(--border); display: flex; justify-content: space-between; align-items: center; }
.drawer-body { padding: 20px; }
.backdrop-soft { display: none; position: fixed; inset: 0; z-index: 1055; background: rgba(15,42,67,.28); }
.backdrop-soft.show { display: block; }
.empty-state { text-align: center; padding: 42px 20px; color: var(--muted); }
.empty-icon { width: 54px; height: 54px; margin: 0 auto 12px; border-radius: 16px; display: grid; place-items: center; background: #edf5ff; color: var(--sofia-blue); font-size: 23px; }
.toast-stack { position: fixed; z-index: 2000; right: 20px; top: 86px; display: grid; gap: 8px; }
.app-toast { width: min(380px, calc(100vw - 40px)); color: #fff; background: #153d5c; padding: 13px 15px; border-radius: 10px; box-shadow: 0 12px 30px rgba(16,42,67,.22); font-size: 13px; animation: toast-in .18s ease; }
.app-toast.error { background: #9b1c2c; }
.app-toast.success { background: #146c55; }
@keyframes toast-in { from { transform: translateY(-8px); opacity: 0; } }
.code-box { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; background: #102a43; color: #d9f0ff; padding: 14px; border-radius: 10px; overflow: auto; font-size: 12px; }
.auth-page { min-height: 100vh; display: grid; grid-template-columns: 1.05fr .95fr; background: #fff; }
.auth-visual { background: linear-gradient(145deg, #0d2942, #14576a 70%, #158078); color: #fff; padding: clamp(36px,6vw,88px); display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; }
.auth-visual::after { content: ""; position: absolute; width: 520px; height: 520px; border-radius: 50%; border: 80px solid rgba(255,255,255,.05); right: -210px; bottom: -170px; }
.auth-form-wrap { display: grid; place-items: center; padding: 32px; }
.auth-card { width: min(430px,100%); }
.auth-title { font-weight: 850; color: var(--sofia-navy); }
.auth-note { color: var(--muted); font-size: 13px; }
.password-requirements{padding:13px 14px;border:1px solid #d9e3ec;border-radius:12px;background:#f8fafc}.password-requirements-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.password-requirements-heading strong{color:var(--sofia-navy);font-size:12px}.password-requirements-heading span{color:#6b7c93;font-size:10px;font-weight:800}.password-requirements ul{display:grid;gap:7px;margin:0;padding:0;list-style:none}.password-requirements li{display:flex;align-items:center;gap:8px;color:#687b8e;font-size:11px;font-weight:650;transition:color .15s ease}.password-requirements input[type="checkbox"]{width:16px;height:16px;flex:0 0 16px;margin:0;accent-color:#1f8a70;opacity:1}.password-requirements li.is-valid{color:#176b52}.password-requirements li.is-valid span{font-weight:800}.password-requirements.is-complete{border-color:#b9ddce;background:#f1faf6}.password-requirements.is-complete .password-requirements-heading span{color:#176b52}
.password-requirements input[type="checkbox"]{pointer-events:none}
.property-row, .placement-item-row { background: #f8fafc; border: 1px solid var(--border); border-radius: 10px; padding: 12px; margin-bottom: 10px; }
#placement-drawer .placement-item-label { display: flex; flex-direction: column; gap: 5px; width: 100%; min-width: 0; margin: 0; color: #42566b; font-size: 12px; font-weight: 600; }
#placement-drawer .placement-item-label .form-control { min-width: 0; font-size: 16px; font-weight: 400; }
#placement-drawer .placement-item-counts { margin: 4px 0 0; padding: 12px 0 0; border: 0; border-top: 1px solid #dce4ee; }
#placement-drawer .placement-item-counts legend { float: none; width: auto; margin-bottom: 10px; font-size: 12px; font-weight: 600; color: #42566b; }
#placement-drawer .placement-item-counts-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
#placement-drawer .placement-item-counts-grid label { justify-content: space-between; }
#placement-drawer .placement-item-counts small { display: block; margin-top: 8px; color: #65758a; font-size: 11px; }
.json-editor { min-height: 190px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; }
.mobile-menu-button { display: none; }

@media (max-width: 1399px) {
  .campaign-filter-bar { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .campaign-filter-reset { justify-self: start; }
  .transport-filter-bar { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .transport-filter-wide { grid-column: span 2; }
}

@media (max-width: 991px) {
  .app-sidebar { transform: translateX(-105%); transition: transform .2s ease; }
  body.sidebar-open .app-sidebar { transform: translateX(0); }
  .app-main { margin-left: 0; }
  .mobile-menu-button { display: inline-flex; }
  .content { padding: 20px 16px 36px; }
  .app-header-inner { padding: 0 16px; }
  .auth-page { grid-template-columns: 1fr; }
  .auth-visual { min-height: 260px; }
  body[data-page="map"] .content { padding: 10px 12px 12px; }
  .map-workspace { height: calc(100vh - 96px); }
  .map-module-christmas .map-workbar-spacer, .map-module-christmas .map-result-summary, .map-module-christmas .map-campaign-context { display: none; }
  .map-module-christmas .map-workbar-actions { margin-left: auto; }
  .inventory-command-center { align-items: flex-start; flex-direction: column; }
  .inventory-actions { justify-content: flex-start; max-width: none; }
  .transport-command-center { align-items: flex-start; flex-direction: column; }
  .transport-command-actions { justify-content: flex-start; }
  .public-stop-grid { grid-template-columns: 1fr; }
  .audit-detail-meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 575px) {
  .user-chip .user-copy { display: none; }
  .map-workbar { flex-wrap: wrap; padding-inline: 0; }
  .map-workbar-spacer, .map-result-summary, .map-campaign-context { display: none; }
  .map-mode-switch { order: 1; flex: 1 1 100%; }
  .map-mode-switch button { flex: 1; }
  .map-street-search{order:2;flex:1 1 100%;max-width:none}.map-module-christmas .map-workbar-actions{order:3}
  .map-street-input input{font-size:16px;height:40px}.map-street-input>.btn{min-height:40px}
  .map-workbar-actions { order: 2; display: grid; width: 100%; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .map-workbar-actions .btn { width: 100%; }
  .map-workbar-actions .map-primary-action { grid-column: 1/-1; min-height: 42px; }
  .map-filter-toggle { margin-left: 0; }
  .map-filter-panel { left: 10px; width: calc(100% - 20px); }
  .map-draw-chooser { top: 58px; right: 10px; width: calc(100% - 20px); max-height: calc(100% - 68px); }
  .map-draw-choices { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .placement-counts-grid { grid-template-columns:1fr; }
  .map-legend { left: 10px; right: auto; }
  .filter-bar > * { min-width: 130px; flex: 1; }
  .catalog-toolbar { align-items: stretch; flex-direction: column; }
  .catalog-status-filter { width:100%; }
  .catalog-editor-drawer .drawer-body { padding:14px; }
  .catalog-form-section { padding:13px; }
  .catalog-photo-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .catalog-photo-preview { height:120px; }
  .catalog-form-submit { bottom:-14px; margin:18px -14px -14px; padding:11px 14px; }
  .catalog-form-submit .btn { width:100%; }
  .dt-container { padding-inline: 10px; }
  .dt-container .dt-layout-row { align-items: stretch; flex-direction: column; }
  .dt-container .dt-layout-cell { justify-content: space-between; width: 100%; }
  .dt-container .dt-search, .dt-container .dt-search .dt-input { width: 100%; }
  .inventory-command-center { padding: 18px; }
  .inventory-actions .btn { flex: 1 1 calc(50% - 8px); }
  .inventory-legend { display: none; }
  .inventory-summary-tools, .inventory-summary-tools .form-select { width: 100%; }
  .campaign-card-grid { grid-template-columns: 1fr; padding: 14px; }
  .campaign-filter-bar { grid-template-columns: 1fr; padding: 14px; }
  .campaign-filter-reset { width: 100%; }
  .campaign-placements-heading { align-items: flex-start; flex-direction: column; }
  .transport-filter-bar { grid-template-columns: 1fr; padding: 14px; }
  .transport-filter-wide { grid-column: auto; }
  .transport-filter-reset { width: 100%; }
  .transport-dossier-grid { grid-template-columns: 1fr; }
  .transport-qr-card { align-items: flex-start; }
  .transport-map-legend { max-width: calc(100% - 20px); flex-wrap: wrap; }
  .playground-source-grid { grid-template-columns: 1fr; }
  .playground-source-grid > div:nth-child(odd) { border-right: 0; }
  .playground-media-grid { grid-template-columns: 1fr 1fr; }
  .playground-condition-banner { align-items:flex-start; flex-direction:column; }
  .audit-detail-meta { grid-template-columns:1fr; }
  .public-asset-header { padding-inline: 16px; }
  .public-verified { display: none; }
  .public-stop-hero { align-items: flex-start; padding: 20px; }
  .public-stop-mark { width: 48px; height: 48px; flex-basis: 48px; border-radius: 13px; font-size: 15px; }
  .public-card { padding: 18px; }
  .public-detail-list { grid-template-columns: 1fr; }
  .public-detail-list div:nth-child(odd) { padding-right: 0; }
  .public-qr-sheet { padding: 28px 18px; }
}

/* Mobile field workspace for organisation-scoped park assets. */
body[data-page="field"] .content { padding: 14px 18px 24px; background: #edf3ee; }
.field-app { --field-green:#176b45; --field-green-dark:#0e4d32; --field-lime:#c8ea91; display:grid; gap:12px; }
.field-hero { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 20px; overflow:hidden; border-radius:18px; color:#fff; background:linear-gradient(126deg,#0e4d32,#176b45 58%,#327f4f); box-shadow:0 14px 30px rgba(14,77,50,.18); }
.field-hero-copy { display:flex; align-items:center; gap:14px; min-width:0; }.field-org-mark { display:grid; place-items:center; width:52px; height:52px; flex:0 0 52px; border:1px solid rgba(255,255,255,.25); border-radius:15px; color:var(--field-lime); background:rgba(255,255,255,.1); font-size:29px; }.field-hero .page-eyebrow { color:rgba(255,255,255,.68); }.field-hero h2 { margin:2px 0 3px; font-size:20px; font-weight:900; }.field-hero p { margin:0; color:rgba(255,255,255,.73); font-size:10px; font-weight:650; letter-spacing:.01em; }.field-hero-actions { display:flex; align-items:center; justify-content:flex-end; gap:9px; }.field-hero-actions .form-select { width:230px; }.field-gps-button { display:inline-flex; align-items:center; gap:8px; color:#174c37; }.field-gps-button.outside { color:#8b2c20; }.field-gps-dot { width:9px; height:9px; border:2px solid #fff; border-radius:50%; background:#28a96b; box-shadow:0 0 0 2px #28a96b; }
.field-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }.field-metrics article { display:flex; align-items:center; justify-content:space-between; min-width:0; padding:12px 15px; border:1px solid #d9e5db; border-radius:13px; background:#fff; box-shadow:0 5px 14px rgba(32,66,47,.05); }.field-metrics span { color:#6d7e72; font-size:10px; font-weight:700; }.field-metrics strong { color:var(--field-green-dark); font-size:21px; font-weight:900; }
.field-toolbar { display:grid; grid-template-columns:minmax(240px,1.3fr) minmax(210px,1fr) minmax(180px,.8fr) auto auto; gap:9px; padding:10px; border:1px solid #d7e3d9; border-radius:14px; background:#fff; }.field-search { position:relative; }.field-search > span { position:absolute; z-index:1; top:50%; left:13px; transform:translateY(-50%); color:#73877a; font-size:18px; }.field-search .form-control { padding-left:38px; }
.field-workspace { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(340px,.75fr); gap:12px; min-height:590px; height:calc(100vh - 300px); }.field-map-card,.field-assets-card { min-width:0; overflow:hidden; border:1px solid #d6e1d8; border-radius:16px; background:#fff; box-shadow:0 8px 20px rgba(30,61,43,.06); }.field-map-card { position:relative; display:grid; grid-template-rows:auto minmax(0,1fr) auto; }.field-map-heading,.field-assets-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 15px; border-bottom:1px solid #e5ece6; }.field-map-heading strong,.field-assets-heading strong { display:block; color:#183c2b; font-size:13px; }.field-map-heading small,.field-assets-heading small { display:block; margin-top:2px; color:#74857b; font-size:9px; }.field-map-count { padding:5px 8px; border-radius:999px; color:#1b6744; background:#e7f5ec; font-size:9px; font-weight:800; }.field-map-card #field-map { min-height:420px; }.field-map-hint { display:flex; align-items:center; gap:7px; padding:8px 12px; color:#687a6f; background:#f8fbf8; font-size:9px; }.field-zone-swatch { width:22px; height:10px; border:2px solid #237a4b; background:rgba(101,173,115,.16); }.field-map-popup strong { display:block; max-width:240px; color:#173c2a; font-size:13px; }.field-map-popup p { margin:5px 0 9px; color:#738276; font-size:10px; }
.field-map-heading-actions { display:flex; align-items:center; gap:7px; }.field-map-heading-actions .form-select { width:128px; min-height:29px; padding-block:3px; border-color:#d8e3da; color:#3b5948; background-color:#f8fbf9; font-size:9px; font-weight:750; }
body[data-page="field"] .leaflet-tile-pane img { transition:filter .18s ease; }
body[data-page="field"][data-field-map-tone="mono"] .leaflet-tile-pane img { filter:grayscale(1) saturate(0) contrast(.9) brightness(1.08); }
body[data-page="field"][data-field-map-tone="contrast"] .leaflet-tile-pane img { filter:grayscale(.55) saturate(.6) contrast(1.25) brightness(.95); }
.field-asset-pin { background:transparent; border:0; filter:drop-shadow(0 3px 5px rgba(13,38,26,.38)); transition:filter .14s ease; }.field-asset-pin > span { display:grid; place-items:center; width:100%; height:100%; box-sizing:border-box; border:3px solid #fff; border-radius:50% 50% 50% 18%; color:#fff; background:var(--pin-color,#237a4b); box-shadow:0 0 0 1px rgba(13,45,29,.62),inset 0 -4px 8px rgba(0,0,0,.14); transform:rotate(-45deg); }.field-asset-pin b { font-size:15px; line-height:1; text-shadow:0 1px 2px rgba(0,0,0,.42); transform:rotate(45deg); }.field-asset-pin.warning > span { box-shadow:0 0 0 3px rgba(231,166,26,.7),inset 0 -4px 8px rgba(0,0,0,.14); }.field-asset-pin.danger > span { box-shadow:0 0 0 3px rgba(210,65,55,.78),inset 0 -4px 8px rgba(0,0,0,.14); }.field-asset-pin.is-selected { z-index:1000!important; filter:drop-shadow(0 4px 8px rgba(9,30,19,.58)); }.field-asset-pin.is-selected > span { border-width:4px; box-shadow:0 0 0 3px #102e20,0 0 0 7px rgba(255,255,255,.88),inset 0 -4px 8px rgba(0,0,0,.16); }.field-asset-pin.is-selected b { font-size:18px; }.field-asset-vector { filter:drop-shadow(0 2px 3px rgba(14,46,29,.3)); }.field-asset-vector.is-selected { filter:drop-shadow(0 3px 5px rgba(8,34,20,.48)); }.field-asset-tooltip { padding:5px 8px; border:0; border-radius:8px; color:#fff; background:#173a2a; box-shadow:0 5px 14px rgba(15,43,27,.22); font-size:10px; font-weight:800; }
.field-assets-card { display:grid; grid-template-rows:auto minmax(0,1fr); }.field-assets-heading #field-view-toggle { display:none; }.field-asset-list { overflow:auto; padding:9px; background:#f8faf8; }.field-asset-card { display:grid; grid-template-columns:52px minmax(0,1fr) auto; align-items:center; gap:10px; width:100%; margin-bottom:8px; padding:9px; border:1px solid #dfe8e1; border-radius:13px; color:inherit; background:#fff; text-align:left; box-shadow:0 3px 9px rgba(32,66,47,.035); transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease; }.field-asset-card:hover,.field-asset-card:focus-visible { transform:translateY(-1px); border-color:#9ac7a9; box-shadow:0 7px 16px rgba(32,66,47,.08); }.field-asset-card.selected { border-color:#24764e; background:#f0f8f3; box-shadow:0 0 0 2px rgba(36,118,78,.13),0 8px 17px rgba(32,66,47,.1); }.field-asset-card > img,.field-asset-symbol { width:52px; height:52px; border-radius:11px; object-fit:cover; }.field-asset-symbol { display:grid; place-items:center; color:#fff; background:var(--asset-color,#237a4b); font-size:23px; font-weight:900; }.field-asset-copy { min-width:0; }.field-asset-title,.field-asset-meta,.field-asset-responsibility { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.field-asset-title { color:#1b382a; font-size:12px; font-weight:850; }.field-asset-meta { margin-top:3px; color:#61766a; font-size:9px; }.field-asset-responsibility { margin-top:4px; color:#839187; font-size:8px; }.field-asset-side { display:flex; align-items:flex-end; flex-direction:column; gap:5px; color:#7f8e84; }.field-asset-side small { font-size:8px; white-space:nowrap; }.field-asset-side b { color:#246f4c; font-size:21px; line-height:1; }.field-condition-dot { display:inline-block; width:9px; height:9px; border-radius:50%; background:#87978d; }.field-condition-dot.good { background:#27915b; }.field-condition-dot.warning { background:#d79b1b; }.field-condition-dot.danger { background:#cf443d; }
.field-playground-asset-card{align-items:start}.field-playground-card-summary{display:grid;gap:4px;margin-top:6px}.field-playground-card-primary{display:flex;align-items:center;gap:5px;min-width:0}.field-playground-card-primary>b{flex:0 0 auto;padding:3px 6px;border-radius:999px;color:#76520c;background:#fff1b8;font-size:7px;font-style:normal;font-weight:900}.field-playground-card-primary>em{min-width:0;overflow:hidden;color:#435b4d;font-size:8px;font-style:normal;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.field-playground-card-facts{display:flex;align-items:center;flex-wrap:wrap;gap:3px}.field-playground-card-facts>span{padding:2px 4px;border-radius:5px;color:#6e7d73;background:#eef3ef;font-size:7px;line-height:1.25;white-space:nowrap}.field-playground-card-facts b{color:#284a37;font-weight:900}.field-playground-asset-card .field-asset-responsibility{margin-top:5px}.field-playground-asset-card .field-asset-side{padding-top:2px}
.field-create-drawer { width:min(800px,100vw); }.field-dossier-drawer { width:min(720px,100vw); }.field-zone-drawer{width:min(860px,100vw)}.field-form-section { display:flex; align-items:flex-start; gap:11px; }.field-form-step { display:grid; place-items:center; width:30px; height:30px; flex:0 0 30px; border-radius:9px; color:#fff; background:var(--field-green,#176b45); font-size:13px; font-weight:900; }.field-form-section-copy h3 { margin:1px 0 2px; color:#173a2a; font-size:14px; font-weight:900; }.field-form-section-copy p { margin:0; color:#738278; font-size:10px; line-height:1.45; }.field-type-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-top:12px; }.field-type-choice { display:flex; align-items:center; flex-direction:column; justify-content:center; min-height:83px; padding:8px 5px; border:1px solid #dbe6dd; border-radius:12px; color:#405c4c; background:#fff; text-align:center; }.field-type-choice span { display:grid; place-items:center; width:34px; height:34px; margin-bottom:6px; border-radius:10px; color:#fff; background:var(--asset-color); font-size:18px; }.field-type-choice strong { font-size:9px; line-height:1.2; }.field-type-choice.selected { border-color:var(--asset-color); background:#f1f8f3; box-shadow:inset 0 0 0 1px var(--asset-color); }.field-create-map-wrap { overflow:hidden; border:1px solid #cddbd0; border-radius:14px; background:#e4ece6; }.field-create-map-wrap #field-create-map { height:330px; }.field-create-map-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px; background:#fff; }.field-location-proof,.field-media-gps { display:flex; align-items:center; gap:10px; margin-top:8px; padding:10px 12px; border:1px solid #dce5de; border-radius:11px; color:#63756a; background:#f7faf8; }.field-location-proof > span,.field-media-gps > span { display:grid; place-items:center; width:27px; height:27px; flex:0 0 27px; border-radius:50%; background:#e5ece7; font-weight:900; }.field-location-proof strong,.field-location-proof small,.field-media-gps strong,.field-media-gps small { display:block; }.field-location-proof strong,.field-media-gps strong { font-size:10px; }.field-location-proof small,.field-media-gps small { margin-top:2px; color:#809087; font-size:8px; }.field-location-proof.verified,.field-media-gps.verified { color:#176b45; border-color:#b6ddc3; background:#eef9f2; }.field-location-proof.verified > span,.field-media-gps.verified > span { color:#fff; background:#24935c; }.field-location-proof.warning,.field-media-gps.warning { color:#8b3c2d; border-color:#efc6bd; background:#fff4f2; }.field-location-proof.warning > span,.field-media-gps.warning > span { color:#fff; background:#d25540; }.field-submit-bar { position:sticky; bottom:-20px; display:flex; align-items:center; justify-content:flex-end; gap:9px; margin:24px -20px -20px; padding:13px 20px; border-top:1px solid #dde7df; background:rgba(255,255,255,.96); backdrop-filter:blur(8px); }
.field-zone-editor-note{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid #cfe0d4;border-radius:11px;color:#496656;background:#f3f9f5}.field-zone-editor-note>span{display:grid;place-items:center;width:27px;height:27px;flex:0 0 27px;border-radius:8px;color:#fff;background:#278155;font-weight:900}.field-zone-editor-note strong,.field-zone-editor-note small{display:block}.field-zone-editor-note strong{font-size:10px}.field-zone-editor-note small{margin-top:2px;color:#74867b;font-size:8px;line-height:1.45}.field-zone-map-wrap{overflow:hidden;border:1px solid #c9d9cd;border-radius:14px;background:#e7eee9}.field-zone-map-wrap #field-zone-editor-map{height:420px}.field-zone-map-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px;background:#fff}.field-zone-editor-summary{padding:8px 11px;border:1px solid #e0e8e2;border-top:0;border-radius:0 0 10px 10px;color:#536d5d;background:#fafcfb;font-size:9px}.field-zone-save-warning{padding:9px 11px;border-left:3px solid #d09a29;border-radius:8px;color:#785d23;background:#fff8e8;font-size:9px;line-height:1.5}.field-zone-history{display:grid;gap:8px}.field-zone-history article{padding:10px 11px;border:1px solid #dfe7e1;border-radius:10px;background:#fafcfb}.field-zone-history strong,.field-zone-history span,.field-zone-history small{display:block}.field-zone-history strong{color:#284a37;font-size:10px}.field-zone-history span{margin-top:3px;color:#63766a;font-size:9px;line-height:1.45}.field-zone-history small{margin-top:4px;color:#85938a;font-size:8px}
.field-dossier-status { display:flex; align-items:center; gap:10px; padding:11px 13px; border-left:4px solid #809087; border-radius:10px; color:#52695c; background:#f3f6f4; }.field-dossier-status.good { color:#176b45; border-color:#27915b; background:#edf8f1; }.field-dossier-status.warning { color:#835e12; border-color:#d79b1b; background:#fff8e6; }.field-dossier-status.danger { color:#8d332d; border-color:#cf443d; background:#fff0ef; }.field-dossier-status strong,.field-dossier-status small { display:block; }.field-dossier-status strong { font-size:12px; }.field-dossier-status small { margin-top:2px; font-size:9px; }.field-responsibility-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; }.field-responsibility-grid article { padding:12px; border:1px solid #dfe7e1; border-radius:11px; background:#fafcfb; }.field-responsibility-grid span,.field-detail-grid dt,.field-dossier-note > span { display:block; margin-bottom:4px; color:#7b8b81; font-size:8px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }.field-responsibility-grid strong { display:block; color:#1c3d2b; font-size:11px; line-height:1.35; }.field-detail-grid { display:grid; grid-template-columns:1fr 1fr; margin:0; overflow:hidden; border:1px solid #e0e7e2; border-radius:11px; }.field-detail-grid > div { padding:10px 12px; border-bottom:1px solid #edf1ee; }.field-detail-grid > div:nth-child(odd) { border-right:1px solid #edf1ee; }.field-detail-grid dd { margin:0; color:#284535; font-size:10px; overflow-wrap:anywhere; }.field-dossier-note { padding:12px; border-radius:11px; background:#f6f8f6; }.field-dossier-note p { margin:0; color:#425c4d; font-size:10px; white-space:pre-line; }.field-section-title { margin:0 0 9px; color:#173a2a; font-size:13px; font-weight:900; }.field-media-heading { display:flex; align-items:center; justify-content:space-between; }.field-media-heading span { display:grid; place-items:center; min-width:24px; height:24px; padding:0 6px; border-radius:99px; color:#176b45; background:#e8f6ed; font-size:9px; font-weight:900; }.field-media-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }.field-media-card { overflow:hidden; border:1px solid #dfe7e1; border-radius:11px; background:#fff; }.field-media-card img,.field-media-card video { display:block; width:100%; height:155px; object-fit:cover; background:#17241c; }.field-media-card > div { padding:9px; }.field-media-card strong,.field-media-card small { display:block; }.field-media-card strong { color:#254634; font-size:9px; overflow-wrap:anywhere; }.field-media-card small { margin-top:3px; color:#7a8b80; font-size:8px; }.field-document-link { display:grid; place-items:center; min-height:100px; padding:12px; color:#176b45; background:#eff7f2; font-size:10px; font-weight:800; text-align:center; }.field-media-empty { grid-column:1/-1; padding:25px 18px; border:1px dashed #cfdcd2; border-radius:11px; color:#7a8a80; background:#fafcfb; font-size:10px; text-align:center; }.field-media-uploader { padding:14px; border:1px solid #cee0d2; border-radius:14px; background:#f5faf6; }.field-camera-input { display:flex; align-items:center; flex-direction:column; justify-content:center; min-height:145px; margin-top:13px; padding:18px; border:2px dashed #9cc8aa; border-radius:13px; color:#176b45; background:#fff; cursor:pointer; text-align:center; }.field-camera-input > span { font-size:32px; }.field-camera-input strong,.field-camera-input small { display:block; }.field-camera-input strong { margin-top:5px; font-size:12px; }.field-camera-input small { margin-top:3px; color:#74887b; font-size:9px; }.field-media-preview { display:flex; align-items:center; gap:10px; margin-top:9px; padding:8px; border:1px solid #d6e2d8; border-radius:11px; background:#fff; }.field-media-preview img,.field-media-preview video { width:92px; height:72px; border-radius:8px; object-fit:cover; background:#16231b; }.field-media-preview strong { min-width:0; color:#2b4a38; font-size:9px; overflow-wrap:anywhere; }
.field-dossier-map-card { overflow:hidden; border:1px solid #cbdcd0; border-radius:14px; background:#f5f9f6; box-shadow:0 8px 18px rgba(25,65,41,.08); }.field-dossier-map-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border-bottom:1px solid #dce7df; background:#f9fcfa; }.field-dossier-map-heading span,.field-dossier-map-heading strong { display:block; }.field-dossier-map-heading span { color:#7a8d81; font-size:8px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }.field-dossier-map-heading strong { max-width:390px; margin-top:2px; color:#1a422d; font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.field-dossier-map-heading .btn { color:#176b45; border:1px solid #cfe0d4; font-size:9px; font-weight:800; }.field-dossier-map-card #field-dossier-map { height:245px; background:#e7ece8; }.field-dossier-map-meta { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:8px; padding:8px 11px; color:#395d47; background:#fff; font-size:9px; font-weight:750; }.field-dossier-map-meta small { color:#829087; font-size:8px; font-weight:600; }.field-dossier-map-pin { display:grid; place-items:center; width:23px; height:23px; border-radius:50%; color:#fff; background:#176b45; font-weight:900; }.field-position-update-button { white-space:nowrap; font-size:9px; font-weight:850; }.field-position-update-proof { display:flex; align-items:center; gap:8px; padding:8px 11px; border-top:1px solid #e3ebe5; color:#627269; background:#f8fbf9; }.field-position-update-proof > span { display:grid; place-items:center; width:24px; height:24px; flex:0 0 24px; border-radius:50%; color:#176b45; background:#e3f1e8; font-weight:900; }.field-position-update-proof strong,.field-position-update-proof small { display:block; }.field-position-update-proof strong { color:#375847; font-size:9px; }.field-position-update-proof small { margin-top:1px; color:#829087; font-size:8px; line-height:1.35; }.field-position-update-proof.measuring { background:#eef6ff; }.field-position-update-proof.measuring > span { color:#fff; background:#2474c7; animation:field-gps-pulse 1.15s ease-in-out infinite; }.field-position-update-proof.verified { color:#176b45; background:#eef9f2; }.field-position-update-proof.verified > span { color:#fff; background:#24935c; }.field-position-update-proof.warning { background:#fff4f2; }.field-position-update-proof.warning > span { color:#fff; background:#d25540; }
@keyframes field-gps-pulse { 0%,100% { transform:scale(.88); opacity:.72; } 50% { transform:scale(1); opacity:1; } }
.leaflet-control-layers-expanded { max-height:55vh; overflow:auto; border-radius:11px; font-size:10px; }
.field-playground-dossier-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.field-playground-dossier-heading .field-section-title{margin:0}.field-playground-dossier-heading>span{padding:4px 7px;border-radius:999px;color:#697c70;background:#edf3ef;font-size:8px;font-weight:800;white-space:nowrap}.field-playground-dossier-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.field-playground-dossier-summary article{min-width:0;padding:8px 9px;border:1px solid #dfe8e2;border-radius:9px;background:#fafcfb}.field-playground-dossier-summary .field-playground-fact-wide{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:9px}.field-playground-dossier-summary span{display:block;color:#7a8c81;font-size:7px;font-weight:850;text-transform:uppercase;letter-spacing:.035em}.field-playground-dossier-summary strong{display:block;margin-top:3px;color:#234431;font-size:10px;line-height:1.3;overflow-wrap:anywhere}.field-playground-dossier-summary .field-playground-fact-wide strong{margin:0;text-align:right}
.field-dossier-more{overflow:hidden;border:1px solid #dce6df;border-radius:10px;background:#fafcfb}.field-dossier-more>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;color:#315c43;cursor:pointer;list-style:none}.field-dossier-more>summary::-webkit-details-marker{display:none}.field-dossier-more>summary span{font-size:10px;font-weight:850}.field-dossier-more>summary small{color:#7b8b81;font-size:8px}.field-dossier-more[open]>summary{border-bottom:1px solid #e2eae4}.field-dossier-more>div{padding:9px}
.field-dossier-edit{padding:0;overflow:hidden;border:1px solid #cbded0;border-radius:12px;background:#f8fbf9}.field-dossier-edit>summary{display:flex;align-items:center;gap:9px;padding:11px 12px;color:#176b45;background:#f4faf6;cursor:pointer;list-style:none}.field-dossier-edit>summary::-webkit-details-marker,.field-edit-subsection>summary::-webkit-details-marker{display:none}.field-dossier-edit>summary .field-edit-icon{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:8px;color:#fff;background:#238052;font-size:13px}.field-dossier-edit>summary>span:last-child{display:grid;gap:1px}.field-dossier-edit>summary strong{font-size:11px}.field-dossier-edit>summary small{color:#718379;font-size:8px;font-weight:650}.field-dossier-edit[open]>summary{border-bottom:1px solid #dbe7de}.field-dossier-edit>form{display:grid;gap:9px;padding:10px;background:#fff}.field-edit-official{padding:10px;border:1px solid #dce7df;border-radius:10px;background:#f7faf8}.field-edit-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}.field-edit-section-heading strong{color:#244735;font-size:11px}.field-edit-section-heading small{color:#7d8d83;font-size:7px}.field-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.field-edit-grid label{display:block;min-width:0;margin:0}.field-edit-grid label>span{display:block;margin:0 0 4px;color:#62766a;font-size:8px;font-weight:800}.field-edit-grid .form-control,.field-edit-grid .form-select{min-width:0;min-height:36px;padding-block:6px;font-size:11px}.field-edit-grid textarea.form-control{min-height:60px}.field-edit-span-2{grid-column:1/-1}.field-edit-subsection{overflow:hidden;border:1px solid #dce6df;border-radius:10px;background:#fafcfb}.field-edit-subsection>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;color:#315c43;cursor:pointer;list-style:none}.field-edit-subsection>summary span{font-size:10px;font-weight:850}.field-edit-subsection>summary small{color:#7b8b81;font-size:7px}.field-edit-subsection[open]>summary{border-bottom:1px solid #e3ebe5;background:#f5f9f6}.field-edit-subsection>.field-edit-grid{padding:10px}.field-edit-save{position:sticky;bottom:-10px;z-index:2;min-height:40px;margin-top:1px;box-shadow:0 -6px 12px rgba(255,255,255,.86)}

@media (max-width: 1199px) {
  .field-workspace { grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr); }
  .field-type-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}

@media (max-width: 767px) {
  body[data-page="field"] .app-header { display:none; }
  body[data-page="field"] .content { padding:8px 8px 82px; }
  .field-app { gap:8px; }
  .field-hero { align-items:flex-start; flex-direction:column; padding:14px; border-radius:15px; }
  .field-org-mark { width:43px; height:43px; flex-basis:43px; font-size:23px; }
  .field-hero h2 { font-size:17px; }
  .field-hero-actions { width:100%; justify-content:stretch; }
  .field-hero-actions .btn { flex:1; min-height:42px; padding-inline:8px; font-size:10px; }
  .field-hero-actions .form-select { width:100%; }
  .field-toolbar { grid-template-columns:1fr 1fr; padding:8px; }
  .field-search { grid-column:1/-1; }
  .field-toolbar #field-fit,.field-toolbar #field-zone-edit-open,.field-map-popup [data-field-zone-edit] { display:none; }
  .field-workspace { display:block; height:auto; min-height:0; }
  .field-map-card { display:none; height:calc(100vh - 250px); min-height:480px; }
  .field-map-heading { padding:10px 11px; }
  .field-map-heading-actions { gap:5px; }
  .field-map-heading-actions .form-select { width:112px; }
  .field-app.show-map .field-map-card { display:grid; }
  .field-app.show-map .field-assets-card { display:none; }
  .field-assets-card { min-height:420px; }
  .field-assets-heading { position:sticky; z-index:2; top:0; background:#fff; }
  .field-assets-heading #field-view-toggle { display:inline-flex; }
  .field-asset-list { max-height:none; padding:7px; }
  .field-asset-card { grid-template-columns:44px minmax(0,1fr) auto; }
  .field-asset-card > img,.field-asset-symbol { width:44px; height:44px; }
  .field-create-drawer,.field-dossier-drawer,.field-zone-drawer { width:100vw; }
  .field-create-drawer .drawer-header,.field-dossier-drawer .drawer-header,.field-zone-drawer .drawer-header { padding:13px 15px; }
  .field-create-drawer .drawer-body,.field-dossier-drawer .drawer-body,.field-zone-drawer .drawer-body { padding:15px; }
  .field-type-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
  .field-type-choice { min-height:76px; }
  .field-create-map-wrap #field-create-map { height:280px; }
  .field-zone-map-wrap #field-zone-editor-map { height:330px; }
  .field-create-map-actions { align-items:stretch; flex-direction:column; }
  .field-create-map-actions #field-create-gps { min-height:44px; }
  .field-submit-bar { bottom:-15px; margin:22px -15px -15px; padding:11px 15px; }
  .field-submit-bar .btn-lg { flex:1; font-size:12px; }
  .field-responsibility-grid,.field-detail-grid { grid-template-columns:1fr 1fr; }
  .field-media-grid { grid-template-columns:1fr; }
  .field-media-card img,.field-media-card video { height:175px; }
  .field-dossier-map-card #field-dossier-map { height:165px; }
  .field-dossier-map-meta { grid-template-columns:auto minmax(0,1fr); }
  .field-position-update-button { grid-column:1 / -1; width:100%; }
  .field-dossier-map-meta small { display:none; }
}

@media (hover:none) and (pointer:coarse) {
  .field-toolbar #field-zone-edit-open,.field-map-popup [data-field-zone-edit] { display:none; }
}

/* Permanent system identity */
.system-identity-note{display:flex;align-items:flex-start;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid #cfe0ea;border-radius:12px;color:#244b62;background:#f2f8fb}
.system-identity-note strong{font-size:.82rem}.system-identity-note span{color:#617986;font-size:.74rem;line-height:1.45}
.system-identity-control[readonly],#responsible-unit-form input[readonly]{color:#3f5968;background:#eef3f5;border-color:#d6e0e5;cursor:not-allowed}
.asset-system-identity{display:grid;gap:8px;margin-bottom:12px;padding:13px 14px;border:1px solid #d7e3e9;border-radius:13px;background:#f7fafb}
.asset-system-identity>div{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:8px}.asset-system-identity span{color:#758894;font-size:.67rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.asset-system-identity code,.asset-system-identity strong{min-width:0;color:#26495d;font-size:.75rem;overflow-wrap:anywhere}.asset-system-identity>small{color:#71838d;font-size:.68rem}

/* Compact, child-friendly playground markers in the mobile field panel */
.field-asset-pin.field-playground-pin{filter:drop-shadow(0 3px 4px rgba(67,50,15,.32))}
.field-asset-pin.field-playground-pin>span{position:relative;border-width:2px;border-radius:48% 52% 46% 54%/48% 46% 54% 52%;color:#173a50;background:linear-gradient(145deg,#ffe27a 0%,#ffc846 48%,var(--pin-color,#e7a900) 100%);box-shadow:0 0 0 1px rgba(77,58,10,.38),inset 0 3px 5px rgba(255,255,255,.32);transform:none}
.field-asset-pin.field-playground-pin>span:after{content:"";position:absolute;left:50%;bottom:-4px;width:8px;height:8px;border-right:2px solid #fff;border-bottom:2px solid #fff;border-radius:1px;background:var(--pin-color,#e7a900);transform:translateX(-50%) rotate(45deg);z-index:-1}
.field-asset-pin.field-playground-pin b{display:grid;place-items:center;width:20px;height:20px;text-shadow:none;transform:none}
.field-asset-pin.field-playground-pin svg{width:19px;height:19px;overflow:visible}.field-asset-pin.field-playground-pin svg path{fill:none;stroke:#173a50;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.field-asset-pin.field-playground-pin svg .playground-eye{fill:#173a50}.field-asset-pin.field-playground-pin svg .playground-cheek{fill:#f0645a;opacity:.9}
.field-asset-pin.field-playground-pin.warning>span{box-shadow:0 0 0 3px rgba(236,156,28,.67),inset 0 3px 5px rgba(255,255,255,.32)}.field-asset-pin.field-playground-pin.danger>span{box-shadow:0 0 0 3px rgba(210,65,55,.76),inset 0 3px 5px rgba(255,255,255,.32)}
.field-asset-pin.field-playground-pin.is-selected{filter:drop-shadow(0 4px 7px rgba(53,40,10,.48))}.field-asset-pin.field-playground-pin.is-selected>span{border-width:3px;box-shadow:0 0 0 2px #173a50,0 0 0 5px rgba(255,255,255,.9),inset 0 3px 5px rgba(255,255,255,.32)}.field-asset-pin.field-playground-pin.is-selected b{font-size:inherit}

/* Compact field markers. Benches and bins are deliberately color-only dots. */
.field-asset-pin{filter:drop-shadow(0 2px 4px rgba(13,38,26,.34))}.field-asset-pin>span{border-width:2px;box-shadow:0 0 0 1px rgba(13,45,29,.58),inset 0 -3px 6px rgba(0,0,0,.14)}.field-asset-pin b{font-size:11px}.field-asset-pin.warning>span{box-shadow:0 0 0 2px rgba(231,166,26,.7),inset 0 -3px 6px rgba(0,0,0,.14)}.field-asset-pin.danger>span{box-shadow:0 0 0 2px rgba(210,65,55,.78),inset 0 -3px 6px rgba(0,0,0,.14)}.field-asset-pin.is-selected>span{border-width:3px;box-shadow:0 0 0 2px #102e20,0 0 0 4px rgba(255,255,255,.88),inset 0 -3px 6px rgba(0,0,0,.16)}.field-asset-pin.is-selected b{font-size:13px}
.field-asset-dot{border:0;background:transparent;filter:drop-shadow(0 1px 2px rgba(16,39,25,.4))}.field-asset-dot>span{display:block;width:100%;height:100%;box-sizing:border-box;border:2px solid #fff;border-radius:50%;background:var(--pin-color,#237a4b);box-shadow:0 0 0 1px rgba(15,44,28,.55)}.field-asset-dot.is-selected{z-index:1000!important;filter:drop-shadow(0 2px 4px rgba(9,30,19,.5))}.field-asset-dot.is-selected>span{border-width:3px;box-shadow:0 0 0 2px #173a2a,0 0 0 4px rgba(255,255,255,.88)}
.field-layer-dot{display:inline-block;width:9px;height:9px;margin-right:3px;border:1px solid #fff;border-radius:50%;background:var(--layer-color);box-shadow:0 0 0 1px rgba(15,44,28,.45)}
.field-asset-pin.field-playground-pin b{width:17px;height:17px}.field-asset-pin.field-playground-pin svg{width:16px;height:16px}.field-asset-pin.field-playground-pin>span:after{bottom:-3px;width:6px;height:6px}

/* Multi-file camera queue and audited media removal. */
.field-media-card{position:relative}.field-media-card>a:not(.field-document-link){display:block}.field-media-remove{position:absolute;z-index:2;top:7px;right:7px;display:grid;place-items:center;width:28px;height:28px;padding:0;border:2px solid rgba(255,255,255,.95);border-radius:50%;color:#fff;background:rgba(126,31,31,.9);box-shadow:0 2px 7px rgba(30,18,18,.3);font-size:19px;line-height:1}.field-media-remove:disabled{opacity:.7}
.field-media-source-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.field-media-source-actions .field-camera-input{min-height:96px;margin:0;padding:13px 8px}.field-media-source-actions .field-camera-input.secondary{color:#315e9a;border-color:#b9cde8;background:#f8fbff}.field-media-source-actions .field-camera-input>span{font-size:25px;line-height:1}.field-media-source-actions .field-camera-input strong{font-size:10px}.field-media-source-actions .field-camera-input small{font-size:8px}.field-media-limit{margin-top:7px;color:#75867c;font-size:8px;text-align:center}
.field-media-preview{display:grid;align-items:stretch;gap:7px;margin-top:9px;padding:0;border:0;background:transparent}.field-media-preview article{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr) 26px;align-items:center;gap:8px;padding:7px;border:1px solid #d6e2d8;border-radius:11px;background:#fff}.field-media-preview article img,.field-media-preview article video{width:72px;height:62px;border-radius:8px;object-fit:cover;background:#16231b}.field-media-preview article>div{min-width:0}.field-media-preview article strong,.field-media-preview article small{display:block}.field-media-preview article strong{min-width:0;color:#2b4a38;font-size:9px;overflow-wrap:anywhere}.field-media-preview article small{margin:2px 0 5px;color:#7a8b80;font-size:8px}.field-media-preview article input{min-width:0;font-size:9px}.field-media-preview [data-media-queue-remove]{display:grid;place-items:center;width:25px;height:25px;padding:0;border:0;border-radius:50%;color:#8b3434;background:#f8e8e8;font-size:17px}
.field-media-preview [data-playground-media-remove]{display:grid;place-items:center;width:25px;height:25px;padding:0;border:0;border-radius:50%;color:#8b3434;background:#f8e8e8;font-size:17px}

/* Full playground dossier editing and unified asset audit */
.playground-edit-group{border:1px solid #dfe8ee;border-radius:14px;background:#f9fbfc;overflow:hidden}
.playground-dossier-overview{padding:24px;border:1px solid #dce7e1;border-radius:18px;background:#fbfdfc}.playground-dossier-overview-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid #e3ebe7}.playground-dossier-overview-heading p{margin:0;color:#71847a;font-size:.88rem}.playground-dossier-overview-heading .btn{min-height:42px;padding-inline:18px;white-space:nowrap}.playground-subsection-title{margin:0 0 12px;color:#456052;font-size:.82rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.playground-dossier-overview .transport-dossier-grid{grid-template-columns:minmax(0,1fr) 310px;gap:22px;align-items:start}.playground-dossier-overview .transport-qr-card{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:15px;padding:16px;border-radius:14px}.playground-dossier-overview .transport-qr-card strong{font-size:14px;line-height:1.3}.playground-dossier-overview .transport-qr-card small{margin-top:5px;font-size:11px;line-height:1.45}.playground-dossier-overview .transport-qr-card .btn{min-height:34px}
.playground-assessment-summary{display:grid;gap:10px;margin-top:14px}.playground-assessment-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.playground-assessment-meta article,.playground-assessment-grid article{padding:11px 12px;border:1px solid #e1e9e4;border-radius:11px;background:#fff}.playground-assessment-meta span,.playground-assessment-grid span,.playground-assessment-notes>span{display:block;margin-bottom:4px;color:#74867c;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.playground-assessment-meta strong,.playground-assessment-grid strong{display:block;color:#294a38;font-size:.84rem}.playground-assessment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.playground-assessment-grid article{border-left:4px solid #9eada5}.playground-assessment-grid article[data-assessment="good"]{border-left-color:#2d9560;background:#f5fbf7}.playground-assessment-grid article[data-assessment="minor_issues"]{border-left-color:#d9a52a;background:#fffbef}.playground-assessment-grid article[data-assessment="needs_repair"]{border-left-color:#db792d;background:#fff7ef}.playground-assessment-grid article[data-assessment="critical"]{border-left-color:#cf4640;background:#fff2f1}.playground-assessment-grid article[data-assessment="not_applicable"]{border-left-color:#8796a0;background:#f4f7f8}.playground-assessment-notes{padding:12px 13px;border-radius:11px;background:#f2f6f3}.playground-assessment-notes p{margin:0;color:#3f584a;white-space:pre-line}.playground-media-upload-section{border:1px solid #cde0d5;border-radius:15px;background:#f5faf7}
.playground-edit-group>summary{display:flex;align-items:center;gap:12px;padding:13px 15px;cursor:pointer;list-style:none;background:#fff;user-select:none}
.playground-edit-group>summary::-webkit-details-marker{display:none}
.playground-edit-group>summary>span{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#e8f3f0;color:#176b58;font-weight:800;flex:0 0 auto}
.playground-edit-group>summary>div{display:flex;flex-direction:column;line-height:1.25}
.playground-edit-group>summary small{color:#6b7f8d;margin-top:2px}
.playground-edit-group>summary:after{content:'⌄';margin-left:auto;color:#5b7180;font-weight:800;transition:transform .18s ease}
.playground-edit-group[open]>summary:after{transform:rotate(180deg)}
.playground-edit-group>.row{padding:0 15px 15px;margin:0}
.playground-change-reason{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(260px,1.45fr);gap:16px;align-items:center;padding:15px;border:1px solid #b9d8ce;border-radius:14px;background:#eef8f5}
.playground-change-reason>div{display:flex;flex-direction:column}.playground-change-reason small{color:#55726a;margin-top:3px}
.playground-edit-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px;border:1px solid #d7e7df;border-radius:15px;background:linear-gradient(135deg,#f7fbf9,#eef7f3)}.playground-edit-heading h3{font-size:1.05rem}.playground-edit-eyebrow{display:block;margin-bottom:4px;color:#2c735c;font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.playground-edit-form{margin-top:17px}.playground-edit-group{box-shadow:0 6px 18px rgba(31,69,53,.035)}.playground-edit-group>summary{padding:16px 18px}.playground-edit-group>summary>span{width:34px;height:34px}.playground-edit-group>.row{padding:5px 18px 20px}.playground-edit-group .form-label{margin-bottom:7px;font-size:.76rem}.playground-edit-group .form-control,.playground-edit-group .form-select{min-height:44px;background-color:#fff}.playground-form-subsection{display:flex;align-items:center;justify-content:space-between;margin-top:5px;padding-top:15px;border-top:1px solid #e1e9e5}.playground-form-subsection:first-child{margin-top:0;padding-top:0;border-top:0}.playground-form-subsection>div{display:flex;flex-direction:column}.playground-form-subsection strong{color:#315443;font-size:.86rem}.playground-form-subsection small{margin-top:2px;color:#75877e;font-size:.72rem}.playground-edit-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 17px;border:1px solid #c8ddd2;border-radius:14px;background:#f5faf7}.playground-edit-actions span{color:#587066;font-size:.78rem}.playground-edit-actions .btn{min-height:44px;white-space:nowrap}
.asset-audit-lock{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#e8f3f0;color:#176b58;font-size:.78rem;font-weight:800;white-space:nowrap}

/* Единен български календар: видимият формат е ДД.ММ.ГГГГ, а API получава ISO стойност. */
.bg-date-field{position:relative;display:flex;width:100%;min-width:0}.bg-date-display{min-width:0;padding-right:42px}.bg-date-button{position:absolute;z-index:2;top:1px;right:1px;display:grid;place-items:center;width:38px;height:calc(100% - 2px);padding:0;border:0;border-left:1px solid #d5e0e8;border-radius:0 .45rem .45rem 0;color:#315f7b;background:#f5f9fb;font-size:17px;line-height:1}.bg-date-button:hover,.bg-date-button:focus-visible{color:#174d6d;background:#eaf3f7}.bg-date-button:disabled{opacity:.55;cursor:not-allowed}
.bg-calendar{position:fixed;z-index:10080;padding:12px;overflow:auto;border:1px solid #cddbe3;border-radius:15px;background:#fff;box-shadow:0 18px 50px rgba(25,52,69,.23);color:#18364b;font-size:13px}.bg-calendar[hidden]{display:none}.bg-calendar-header{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;gap:7px;margin-bottom:9px}.bg-calendar-header strong{text-align:center;text-transform:capitalize}.bg-calendar-header button{display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:9px;color:#245570;background:#eef5f8;font-size:25px;line-height:1}.bg-calendar-weekdays,.bg-calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.bg-calendar-weekdays{margin-bottom:4px;color:#728692;font-size:10px;font-weight:850;text-align:center;text-transform:uppercase}.bg-calendar-weekdays span{padding:4px 0}.bg-calendar-day{display:grid;place-items:center;aspect-ratio:1;padding:0;border:0;border-radius:9px;color:#203f52;background:transparent}.bg-calendar-day:hover,.bg-calendar-day:focus-visible{background:#e9f3f7;outline:none}.bg-calendar-day.outside{color:#a7b4bc}.bg-calendar-day.today{box-shadow:inset 0 0 0 1px #2d7ca4;font-weight:850}.bg-calendar-day.selected{color:#fff;background:#176fa4;box-shadow:none;font-weight:850}.bg-calendar-time{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:9px 10px;border-radius:10px;background:#f2f7f9}.bg-calendar-time span{font-weight:800}.bg-calendar-time input{width:118px;padding:6px 8px;border:1px solid #cbd9e1;border-radius:8px;background:#fff}.bg-calendar-footer{display:flex;justify-content:flex-end;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid #e5ecef}.bg-calendar-footer button{padding:7px 10px;border:0;border-radius:8px;color:#31596f;background:#edf4f7;font-weight:750}.bg-calendar-footer button.primary{color:#fff;background:#176fa4}
@media (max-width:480px){.bg-calendar{padding:10px}.bg-calendar-day{border-radius:7px}.bg-calendar-footer button{flex:1;padding-inline:5px}}
.asset-audit-hero{align-items:center}.asset-audit-guard{display:flex;align-items:center;gap:12px;min-width:280px;padding:13px 15px;border:1px solid rgba(255,255,255,.2);border-radius:15px;background:rgba(255,255,255,.12)}
.asset-audit-guard>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#d9f5e9;color:#12634f;font-weight:900}.asset-audit-guard>div{display:flex;flex-direction:column}.asset-audit-guard small{opacity:.82;margin-top:2px}
.asset-audit-filters{grid-template-columns:minmax(220px,1.5fr) repeat(5,minmax(145px,1fr)) auto}
.asset-audit-module{display:inline-flex;padding:5px 9px;border-radius:999px;background:#edf2f5;color:#405666;font-size:.76rem;font-weight:800;white-space:nowrap}
.asset-audit-module[data-module="playgrounds"]{background:#edf6e9;color:#41692e}.asset-audit-module[data-module="transport"]{background:#eaf2fb;color:#315d89}.asset-audit-module[data-module="gis"]{background:#f3ebfa;color:#6a3d89}
.asset-audit-module[data-module="access"]{background:#eef1f3;color:#596971}
.asset-audit-field-preview{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.asset-audit-field-preview span{padding:3px 7px;border-radius:7px;background:#f1f5f7;color:#435966;font-size:.76rem}.asset-audit-field-preview small{font-weight:800;color:#57707f}
.asset-audit-drawer{width:min(760px,96vw)}
.asset-audit-actor-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:14px;border:1px solid #e0e8ed;border-radius:15px;background:#f8fafb}.asset-audit-actor-card>div:nth-child(2){display:flex;flex-direction:column}.asset-audit-actor-card small{color:#687d89}.asset-audit-actor-card time{color:#536b79;font-size:.86rem;text-align:right}
.asset-audit-changes{display:grid;gap:9px}.asset-audit-changes article{display:grid;grid-template-columns:minmax(140px,.65fr) minmax(0,1.35fr);gap:15px;padding:12px 13px;border:1px solid #e2e9ed;border-radius:12px;background:#fff}.asset-audit-changes article>strong{color:#334d5c}.asset-audit-changes article>div{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:9px;align-items:start}.asset-audit-changes article span{padding:7px 9px;border-radius:8px;background:#f4f6f7;overflow-wrap:anywhere;white-space:pre-wrap}.asset-audit-changes article span:last-child{background:#eaf6f2;color:#174f42}.asset-audit-changes article b{padding-top:7px;color:#68808c}
@media (max-width:1199.98px){.asset-audit-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.asset-audit-filters .transport-filter-wide{grid-column:span 2}}
@media (max-width:991.98px){.playground-dossier-overview .transport-dossier-grid{grid-template-columns:1fr}.playground-dossier-overview .transport-dossier-grid>aside{display:grid;grid-template-columns:1fr 1fr;gap:12px}.playground-dossier-overview .transport-dossier-grid>aside .playground-location-card{margin-top:0!important}}
@media (max-width:767.98px){.playground-change-reason{grid-template-columns:1fr}.playground-dossier-overview{padding:17px}.playground-dossier-overview-heading,.playground-edit-heading{align-items:stretch;flex-direction:column}.playground-dossier-overview-heading .btn{width:100%}.playground-dossier-overview .transport-dossier-grid>aside{grid-template-columns:1fr}.playground-source-grid{grid-template-columns:1fr}.playground-source-grid>div.playground-source-wide{grid-column:auto}.playground-assessment-meta,.playground-assessment-grid{grid-template-columns:1fr}.playground-edit-actions{align-items:stretch;flex-direction:column}.playground-edit-actions .btn{width:100%}.asset-audit-guard{min-width:0;width:100%}.asset-audit-filters{grid-template-columns:1fr 1fr}.asset-audit-filters .transport-filter-wide{grid-column:1/-1}.asset-audit-actor-card{grid-template-columns:auto 1fr}.asset-audit-actor-card time{grid-column:1/-1;text-align:left}.asset-audit-changes article{grid-template-columns:1fr}.asset-audit-changes article>div{grid-template-columns:1fr}.asset-audit-changes article b{padding:0;transform:rotate(90deg);justify-self:center}}

/* Dedicated photo map and compact dossier gallery */
.photo-map-workspace #photo-map{position:absolute;inset:0}.photo-map-marker{background:transparent;border:0}.photo-map-marker>span{position:relative;display:grid;place-items:center;width:100%;height:100%;border:3px solid #fff;border-radius:50%;color:#fff;background:var(--photo-color,#236f55);box-shadow:0 4px 13px rgba(18,43,31,.38)}.photo-map-marker b{font-size:15px;line-height:1}.photo-map-marker em{position:absolute;right:-5px;top:-6px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border:2px solid #fff;border-radius:999px;color:#163629;background:#fff3bd;box-shadow:0 2px 5px rgba(0,0,0,.18);font-size:9px;font-style:normal;font-weight:900}.photo-map-drawer{width:min(620px,96vw)}.photo-map-drawer-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:12px;padding:4px;border-radius:12px;background:#edf2ef}.photo-map-drawer-tabs button{padding:9px;border:0;border-radius:9px;color:#607369;background:transparent;font-size:10px;font-weight:850}.photo-map-drawer-tabs button.active{color:#174f38;background:#fff;box-shadow:0 2px 7px rgba(28,58,42,.1)}.photo-map-asset-summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:14px;border:1px solid #cee1d6;border-radius:15px;background:#f3faf6}.photo-map-asset-summary>span{display:grid;place-items:center;min-width:48px;height:48px;padding:0 9px;border-radius:14px;color:#fff;background:#22714d;font-size:18px;font-weight:900}.photo-map-asset-summary strong,.photo-map-asset-summary small{display:block}.photo-map-asset-summary small{margin-top:2px;color:#6b7e73;font-size:10px}.photo-map-address{margin:12px 0;padding:10px 12px;border-radius:11px;color:#526a5d;background:#f5f7f6;font-size:11px}.photo-map-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.photo-map-gallery article{overflow:hidden;border:1px solid #dce5df;border-radius:13px;background:#fff}.photo-map-gallery-open{display:block;width:100%;padding:0;border:0;background:#e7ece9;cursor:zoom-in}.photo-map-gallery img{display:block;width:100%;height:180px;object-fit:cover;background:#e7ece9}.photo-map-gallery article>div{padding:10px}.photo-map-gallery strong,.photo-map-gallery small{display:block}.photo-map-gallery strong{color:#244735;font-size:11px;overflow-wrap:anywhere}.photo-map-gallery small{margin-top:3px;color:#708278;font-size:9px}.photo-map-condition-legend{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px!important}.photo-map-condition-legend span{display:flex;align-items:center;gap:5px;white-space:nowrap}.photo-map-condition-legend i{width:9px;height:9px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px rgba(25,45,35,.18);background:#788b9c}.photo-map-condition-legend i[data-condition="new"]{background:#2879d0}.photo-map-condition-legend i[data-condition="good"]{background:#27915b}.photo-map-condition-legend i[data-condition="satisfactory"]{background:#d79b1b}.photo-map-condition-legend i[data-condition="poor"]{background:#e16a2d}.photo-map-condition-legend i[data-condition="critical"]{background:#cf443d}.photo-map-condition-legend i[data-condition="unknown"]{background:#788b9c}.photo-map-inline-loading{padding:42px 15px;color:#6a7d73;text-align:center}.photo-map-inline-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.photo-map-inline-status{display:flex;gap:5px;flex-wrap:wrap}.photo-map-inline-fields{display:grid;grid-template-columns:1fr 1fr;margin:0;overflow:hidden;border:1px solid #dfe7e2;border-radius:13px}.photo-map-inline-fields>div{padding:10px 11px;border-bottom:1px solid #edf1ee}.photo-map-inline-fields>div:nth-child(odd){border-right:1px solid #edf1ee}.photo-map-inline-fields dt{color:#73867b;font-size:8px;font-weight:850;text-transform:uppercase}.photo-map-inline-fields dd{margin:3px 0 0;color:#294a38;font-size:10px;overflow-wrap:anywhere}.photo-map-inline-description{margin:10px 0;padding:11px;border-radius:11px;color:#496456;background:#f5f8f6;font-size:10px;white-space:pre-line}.dossier-history-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border:1px solid #dce6e0;border-radius:12px;color:#315440;background:#f8faf9}.dossier-history-summary strong,.dossier-history-summary small{display:block}.dossier-history-summary small{margin-top:2px;color:#71837a;font-size:9px}.dossier-history-list{display:grid;gap:8px;margin-top:9px}.dossier-history-list article{padding:10px 11px;border-left:3px solid #6b8c7a;border-radius:8px;background:#f5f8f6}.dossier-history-list article[data-module="access"]{border-left-color:#98a7ae;background:#f6f8f9}.dossier-history-list strong,.dossier-history-list small{display:block}.dossier-history-list strong{color:#294a38;font-size:10px}.dossier-history-list small{margin-top:3px;color:#72847a;font-size:8px}.dossier-history-list p{margin:5px 0 0;color:#526a5c;font-size:9px}.dossier-history-changes{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px}.dossier-history-changes span{padding:3px 6px;border-radius:6px;background:#e7f0eb;color:#345c46;font-size:8px}
@media(max-width:767.98px){.photo-map-workspace .map-workbar>div:first-child{display:none}.photo-map-gallery{grid-template-columns:1fr}.photo-map-gallery img{height:210px}.photo-map-asset-summary{grid-template-columns:auto 1fr}.photo-map-asset-summary .btn{grid-column:1/-1;width:100%}.photo-map-inline-heading{align-items:stretch;flex-direction:column}.photo-map-inline-heading .btn{width:100%}.photo-map-inline-fields{grid-template-columns:1fr}.photo-map-inline-fields>div:nth-child(odd){border-right:0}}

/* District intake and administrator workflow for muddy spaces. */
.nav-module-muddy-spaces .nav-module-mark{color:#7a4d22;background:#f4e9dc}.muddy-intro{display:flex;align-items:flex-start;gap:12px;padding:17px 19px;border-color:#c9dfe4;color:#244f5d;background:linear-gradient(135deg,#eef8f9,#f7fbfc)}
.muddy-location-map{height:430px;border:1px solid #cddde2;border-radius:15px;background:#eef4f2;overflow:hidden}.muddy-admin-map{height:440px;border-top:1px solid #e1e8e5;background:#eef4f2}.muddy-map-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.muddy-coordinate-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;padding:10px 12px;border:1px solid #dce7e3;border-radius:10px;background:#f7faf9;font-size:.8rem}.muddy-coordinate-bar>span:first-child{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#315248}
.sofia-basemap-control.leaflet-control-layers{padding:3px;border:1px solid rgba(31,64,50,.16);border-radius:10px;background:rgba(255,255,255,.94);box-shadow:0 3px 12px rgba(22,47,36,.16);backdrop-filter:blur(6px)}.sofia-basemap-control .leaflet-control-layers-list{display:flex}.sofia-basemap-control .leaflet-control-layers-base{display:flex;gap:2px}.sofia-basemap-control .leaflet-control-layers-base label{margin:0}.sofia-basemap-control .leaflet-control-layers-base label>span{display:block}.sofia-basemap-control .leaflet-control-layers-base label span span{display:block;padding:6px 9px;border-radius:7px;color:#3f5d50;font-family:"Sofia Sans",sans-serif;font-size:.72rem;font-weight:800;line-height:1.15;cursor:pointer}.sofia-basemap-control .leaflet-control-layers-base input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}.sofia-basemap-control .leaflet-control-layers-base input:checked+span{color:#fff;background:#176f66}.sofia-basemap-control .leaflet-control-layers-base input:focus-visible+span{outline:3px solid rgba(32,132,113,.28);outline-offset:1px}.sofia-basemap-control .leaflet-control-layers-separator{display:none}
.muddy-stage{overflow:hidden}.muddy-stage-header{display:flex;align-items:center;gap:13px;padding:17px 20px;color:#fff;background:linear-gradient(135deg,#147b70,#0d655e)}.muddy-stage[data-stage="1"] .muddy-stage-header{background:linear-gradient(135deg,#1b5d78,#164a62)}.muddy-stage[data-stage="3"] .muddy-stage-header{background:linear-gradient(135deg,#437d4b,#2f6537)}.muddy-stage-number{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.35);border-radius:13px;background:rgba(255,255,255,.13);font-size:1.1rem;font-weight:900}.muddy-stage-header h2{margin:0;font-size:1rem;font-weight:850}.muddy-stage-header p{margin:2px 0 0;opacity:.78;font-size:.75rem}.muddy-criteria-list{display:grid}.muddy-criterion{margin:0;padding:18px 20px;border:0;border-bottom:1px solid #e5ece8}.muddy-criterion:last-child{border-bottom:0}.muddy-criterion legend{display:flex;align-items:center;gap:9px;width:auto;margin:0 0 10px;color:#263f36;font-size:.9rem;font-weight:800}.muddy-criterion legend span{display:inline-grid;place-items:center;min-width:38px;padding:4px 7px;border-radius:8px;color:#17685e;background:#e7f3f0;font-size:.72rem}.muddy-option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}.muddy-option{position:relative;display:flex;align-items:center;gap:9px;min-height:47px;padding:10px 12px;border:1px solid #d9e4df;border-radius:11px;color:#455b51;background:#fbfcfc;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.muddy-option:hover{border-color:#8dbbb0;background:#f4faf8}.muddy-option:has(input:checked){border-color:#208471;background:#eaf7f3;box-shadow:0 0 0 2px rgba(32,132,113,.11);color:#174d43;font-weight:750}.muddy-option input{flex:0 0 auto;accent-color:#167567}.muddy-option span{font-size:.8rem;line-height:1.35}.muddy-submit-bar{position:sticky;z-index:400;bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0 5px;padding:15px 17px;border:1px solid #bfd7cc;border-radius:15px;background:rgba(248,252,250,.96);box-shadow:0 10px 30px rgba(30,68,52,.16);backdrop-filter:blur(9px)}
.muddy-criterion-attachment{margin-top:13px;padding:12px 13px;border:1px solid #d7e5df;border-radius:12px;background:#f6faf8}.muddy-criterion-attachment .form-label{margin-bottom:6px;color:#315646;font-size:.75rem;font-weight:850}.muddy-media-uploader{background:#f8fcf9}.muddy-media-uploader .field-media-source-actions{max-width:650px}.muddy-media-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.muddy-media-card{overflow:hidden;border:1px solid #d9e5df;border-radius:12px;background:#f8fbf9}.muddy-media-card img,.muddy-media-card video{display:block;width:100%;height:190px;object-fit:cover;background:#17241c}.muddy-media-card>div{padding:10px 11px}.muddy-media-card strong,.muddy-media-card small{display:block}.muddy-media-card strong{color:#285843;font-size:.75rem}.muddy-media-card small{margin-top:3px;color:#718379;font-size:.65rem;overflow-wrap:anywhere}
.muddy-district-tabs{display:inline-flex;gap:4px;margin:0 0 18px;padding:4px;border:1px solid #d8e5df;border-radius:13px;background:#fff;box-shadow:0 5px 18px rgba(16,42,67,.06)}.muddy-district-tabs button{display:flex;align-items:center;gap:7px;padding:9px 14px;border:0;border-radius:9px;color:#587064;background:transparent;font-size:.79rem;font-weight:800}.muddy-district-tabs button:hover{color:#174d43;background:#f2f8f5}.muddy-district-tabs button.active{color:#fff;background:#176f66;box-shadow:0 4px 10px rgba(23,111,102,.2)}.muddy-district-tabs button b{display:inline-grid;min-width:21px;height:21px;place-items:center;padding:0 5px;border-radius:999px;color:#176f66;background:#e2f2ec;font-size:.66rem}.muddy-district-tabs button.active b{color:#176f66;background:#fff}.muddy-history-header{align-items:center}.muddy-history-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;border-bottom:1px solid var(--border);background:var(--border)}.muddy-history-summary>div{padding:13px 16px;background:#f8fbfa}.muddy-history-summary span,.muddy-history-summary strong{display:block}.muddy-history-summary span{color:var(--muted);font-size:.67rem;font-weight:750}.muddy-history-summary strong{margin-top:2px;color:#214c3b;font-size:1.12rem;font-weight:900}.muddy-row-actions,.muddy-district-export-actions{display:flex;gap:6px;flex-wrap:wrap}.muddy-row-actions{min-width:210px}.muddy-district-export-actions{justify-content:flex-end;margin-bottom:14px}
.muddy-summary-cards .metric-card{height:100%;min-height:122px}.muddy-summary-cards .metric-card>span,.muddy-summary-cards .metric-card>strong,.muddy-summary-cards .metric-card>small{position:relative;z-index:1;display:block}.muddy-summary-cards .metric-card>span{color:var(--muted);font-size:.72rem;font-weight:800}.muddy-summary-cards .metric-card>strong{margin-top:5px;color:var(--sofia-navy);font-size:1.65rem;font-weight:900}.muddy-summary-cards .metric-card>small{margin-top:4px;color:var(--muted);font-size:.66rem}.muddy-admin-toolbar{align-items:flex-end}.muddy-admin-toolbar .form-select{width:190px}.muddy-score-pill{display:inline-flex;align-items:center;justify-content:center;min-width:62px;padding:6px 9px;border-radius:999px;color:#fff;background:#176f66;font-weight:900}.drawer-wide{width:min(860px,96vw)}.muddy-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.muddy-detail-summary>div,.muddy-detail-card{padding:12px 13px;border:1px solid #dce6e1;border-radius:12px;background:#f8faf9}.muddy-detail-summary span,.muddy-detail-card>span{display:block;margin-bottom:4px;color:#74867c;font-size:.65rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.muddy-detail-summary strong,.muddy-detail-card strong{display:block;color:#284c3a;font-size:.86rem}.muddy-detail-card div{margin-top:4px;color:#697d72;font-size:.75rem;overflow-wrap:anywhere}.muddy-detail-section{margin:24px 0 9px;padding-bottom:8px;border-bottom:1px solid #dce5e1;color:#315441;font-size:.83rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.muddy-score-table td,.muddy-score-table th{padding:9px 8px;vertical-align:middle}.muddy-score-table td:last-child,.muddy-score-table th:last-child{text-align:right}.muddy-files-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.muddy-file-link{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid #d9e5df;border-radius:11px;color:#285843;background:#f8fbf9;text-decoration:none}.muddy-file-link:hover{border-color:#8eb9a6;color:#184d37;background:#f0f8f4}.muddy-file-link>span:first-child{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#e1f1e8;font-weight:900}.muddy-file-link strong,.muddy-file-link small{display:block}.muddy-file-link strong{font-size:.75rem}.muddy-file-link small{margin-top:2px;color:#718379;font-size:.65rem;overflow-wrap:anywhere}
@media(max-width:991.98px){.muddy-detail-summary{grid-template-columns:1fr 1fr}.muddy-location-map{height:360px}.muddy-admin-map{height:380px}}
@media(max-width:767.98px){body[data-page="muddy-spaces"] .content{padding-inline:10px}.muddy-location-map{height:330px}.muddy-admin-map{height:340px}.muddy-map-heading,.muddy-coordinate-bar,.muddy-submit-bar,.muddy-admin-toolbar,.muddy-history-header{align-items:stretch;flex-direction:column}.muddy-map-heading .btn,.muddy-submit-bar .btn,.muddy-history-header .btn{width:100%}.muddy-stage-header{padding:14px}.muddy-criterion{padding:15px}.muddy-option-grid{grid-template-columns:1fr}.muddy-submit-bar{bottom:8px}.muddy-admin-toolbar .form-select{width:100%}.muddy-detail-summary,.muddy-files-grid,.muddy-media-gallery{grid-template-columns:1fr}.muddy-summary-cards .metric-card{min-height:105px}.muddy-district-tabs{display:flex}.muddy-district-tabs button{flex:1;justify-content:center}.muddy-history-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.muddy-history-summary>div:first-child{grid-column:1/-1}.muddy-district-export-actions{justify-content:stretch}.muddy-district-export-actions .btn{flex:1}}

/* Christmas reference registers and nested warehouse locations. */
.registry-warehouse-detail-drawer{z-index:1062}
#registry-warehouse-drawer,#registry-location-drawer{z-index:1070}
.christmas-registers{display:grid;gap:22px}.registry-hero{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:25px 28px;color:#fff;background:linear-gradient(135deg,#174c61,#167163)}.registry-hero h2{margin:3px 0 6px;font-size:1.45rem;font-weight:900}.registry-hero p{max-width:780px;margin:0;opacity:.84;font-size:.86rem}.registry-hero .page-eyebrow{color:#c8ede3}.registry-hero-stats{display:flex;flex:0 0 auto;gap:7px}.registry-hero-stats span{display:flex;flex-direction:column;min-width:112px;padding:11px 13px;border:1px solid rgba(255,255,255,.18);border-radius:13px;background:rgba(255,255,255,.1);font-size:.65rem}.registry-hero-stats strong{font-size:1.15rem}.registry-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.registry-panel,.registry-warehouses-panel{overflow:hidden}.registry-panel .panel-header,.registry-warehouses-panel .panel-header{padding:18px 20px}.registry-table{margin:0}.registry-table td{vertical-align:middle}.registry-table code,.registry-location-card code{padding:3px 6px;border-radius:6px;color:#315867;background:#eef4f6;font-size:.72rem}.registry-row-actions{display:flex;gap:5px;flex-wrap:wrap}.registry-row-archived{opacity:.68;background:#f6f7f8}.registry-form-intro{margin-bottom:18px;padding:12px 14px;border:1px solid #cfe1df;border-radius:12px;color:#3d625b;background:#f2f9f7;font-size:.78rem;line-height:1.5}.registry-drawer{width:min(620px,96vw)}.registry-warehouse-detail-drawer{width:min(760px,96vw)}.registry-warehouse-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px}.registry-warehouse-summary>div:not(.registry-warehouse-detail-actions){padding:11px 12px;border:1px solid #dce7e3;border-radius:11px;background:#f8faf9}.registry-warehouse-summary span,.registry-warehouse-summary strong{display:block}.registry-warehouse-summary span{margin-bottom:3px;color:#75877e;font-size:.65rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.registry-warehouse-summary strong{color:#294b3c;font-size:.8rem;overflow-wrap:anywhere}.registry-warehouse-summary>p{grid-column:1/-1;margin:0;padding:11px 12px;border-radius:11px;color:#536b5f;background:#f2f6f4;font-size:.78rem;white-space:pre-line}.registry-warehouse-detail-actions{grid-column:1/-1;display:flex;gap:7px;justify-content:flex-end}.registry-section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:24px 0 11px;padding-bottom:10px;border-bottom:1px solid #dfe8e4}.registry-section-heading h3{margin:0;color:#2a4d3d;font-size:1rem;font-weight:900}.registry-section-heading p{margin:3px 0 0;color:#70827a;font-size:.7rem}.registry-location-list{display:grid;gap:8px}.registry-location-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px 12px;border:1px solid #d9e5df;border-radius:13px;background:#fff}.registry-location-card.is-archived{opacity:.68;background:#f5f7f6}.registry-location-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;color:#196d58;background:#e5f3ee;font-size:18px}.registry-location-card strong,.registry-location-card small{display:block}.registry-location-card strong{color:#284b3b;font-size:.83rem}.registry-location-card small{margin-top:3px;color:#71837a;font-size:.68rem}.registry-location-card p{margin:5px 0 0;color:#60756a;font-size:.7rem}.registry-location-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.registry-location-empty{padding:35px 18px}
@media(max-width:1199.98px){.registry-grid{grid-template-columns:1fr}.registry-hero{align-items:flex-start;flex-direction:column}.registry-hero-stats{width:100%}.registry-hero-stats span{flex:1}}
@media(max-width:767.98px){.registry-hero{padding:20px}.registry-hero-stats{display:grid;grid-template-columns:repeat(3,1fr)}.registry-hero-stats span{min-width:0;padding:9px;font-size:.56rem}.registry-hero-stats strong{font-size:.95rem}.registry-warehouse-summary{grid-template-columns:1fr}.registry-warehouse-summary>p,.registry-warehouse-detail-actions{grid-column:auto}.registry-section-heading{align-items:stretch;flex-direction:column}.registry-section-heading .btn{width:100%}.registry-location-card{grid-template-columns:34px minmax(0,1fr)}.registry-location-actions{grid-column:1/-1;justify-content:flex-start;padding-left:45px}}
