
:root{
  --primary:#8B0000;
  --primary-2:#5C0000;
  --bg:#F3F6F8;
  --card:#FFFFFF;
  --text:#17232D;
  --muted:#687782;
  --border:#D8E0E6;
  --ok:#247A52;
  --warning:#A76B00;
  --danger:#B33A3A;
  --radius:14px;
  --font:16px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:var(--font)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
#app{min-height:100vh;display:flex}
.sidebar{width:250px;background:var(--primary);color:white;padding:22px 16px;position:fixed;inset:0 auto 0 0;z-index:20;display:flex;flex-direction:column}
.brand{display:flex;gap:12px;align-items:center;padding:8px 8px 26px}
.brand-mark{width:40px;height:40px;border-radius:11px;background:white;color:var(--primary);display:grid;place-items:center;font-weight:800}
.brand strong,.brand span{display:block}.brand span{font-size:12px;opacity:.7}
nav{display:grid;gap:7px}.nav-btn{border:0;background:transparent;color:white;text-align:left;padding:12px 13px;border-radius:10px;opacity:.84}
.nav-btn:hover,.nav-btn.active{background:rgba(255,255,255,.13);opacity:1}
.connection{margin-top:auto;font-size:12px;border:1px solid rgba(255,255,255,.25);padding:9px;border-radius:10px;text-align:center}
.main{margin-left:250px;width:calc(100% - 250px);padding:24px 28px 60px}
.topbar{display:flex;align-items:center;gap:14px;margin-bottom:24px}
.topbar>div{flex:1}.eyebrow{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
h1{margin:2px 0 0;font-size:28px}
h2{margin:0 0 8px}h3{margin:0 0 8px}
.primary,.secondary,.danger,.icon-btn{border:0;border-radius:10px;padding:11px 15px}
.primary{background:var(--primary);color:#fff}.secondary{background:#E9EFF3;color:var(--primary)}.danger{background:#FCE8E8;color:var(--danger)}
.icon-btn{background:#fff;border:1px solid var(--border);display:none}
.grid{display:grid;gap:16px}.cards{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px}
.metric{font-size:30px;font-weight:750}.muted{color:var(--muted)}
.status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:12px;background:#EAF5EF;color:var(--ok)}
.status.pending{background:#FFF3D9;color:var(--warning)}
.status.danger{background:#FCE8E8;color:var(--danger)}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
input,select,textarea{width:100%;border:1px solid var(--border);border-radius:10px;padding:11px 12px;background:#fff;color:var(--text)}
textarea{min-height:100px;resize:vertical}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.field label{display:block;font-size:13px;font-weight:650;margin:0 0 6px}.field small{color:var(--muted)}
.section{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:16px}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.activity{border:1px solid var(--border);border-radius:12px;padding:14px;margin-top:12px;background:#FBFCFD}
.row{display:flex;gap:8px;align-items:end}.row>*{flex:1}
.pill{display:inline-flex;gap:6px;align-items:center;padding:7px 9px;background:#EDF3F7;border-radius:999px;font-size:13px;margin:3px}
table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:10px;border-bottom:1px solid var(--border);text-align:left;font-size:14px;vertical-align:top}th{color:var(--muted);font-size:12px;text-transform:uppercase}
.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius)}
.hidden{display:none!important}
.empty{padding:35px;text-align:center;color:var(--muted)}
.toast{position:fixed;right:20px;bottom:20px;background:#17232D;color:white;padding:12px 16px;border-radius:10px;z-index:50;box-shadow:0 10px 30px rgba(0,0,0,.2)}
@media(max-width:900px){
  .sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}
  .main{margin-left:0;width:100%;padding:16px}
  .icon-btn{display:block}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .form-grid,.form-grid.three{grid-template-columns:1fr}
  .topbar .primary{padding:10px}
}
@media(max-width:560px){
  .cards{grid-template-columns:1fr 1fr}.metric{font-size:24px}
  .topbar h1{font-size:22px}.topbar .primary{font-size:13px}
}

.autocomplete-wrap{position:relative}.autocomplete-list{position:absolute;z-index:30;left:0;right:0;top:100%;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.12);overflow:hidden}.autocomplete-item{display:block;width:100%;border:0;background:#fff;text-align:left;padding:10px 12px;color:var(--text)}.autocomplete-item:hover{background:#EDF3F7}

:root[data-theme="dark"]{--primary:#8B0000;--primary-2:#5C0000;--bg:#111315;--card:#191c1f;--text:#F4F4F4;--muted:#B7BEC6;--border:#343A40}
:root[data-theme="dark"] input,:root[data-theme="dark"] select,:root[data-theme="dark"] textarea{background:#111315;color:#fff;border-color:#444}
:root[data-theme="dark"] .section,:root[data-theme="dark"] .card,:root[data-theme="dark"] .activity,:root[data-theme="dark"] table{background:var(--card);color:var(--text);border-color:var(--border)}
:root[data-theme="dark"] .secondary{background:#2A2F34;color:#fff}
.input-with-button{display:flex;align-items:center;gap:8px}.input-with-button input:not(.visually-hidden-picker){flex:1}
.visually-hidden-picker{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.icon-button{min-width:44px;height:44px;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:10px}

/* v0.5 */
.sidebar-collapse{position:absolute;top:10px;right:10px;width:36px;height:36px;border:0;border-radius:9px;background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center;cursor:pointer;font-size:18px}
body.sidebar-collapsed .sidebar{width:76px;padding:18px 10px}
body.sidebar-collapsed .main{margin-left:76px;width:calc(100% - 76px)}
body.sidebar-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}
body.sidebar-collapsed .brand>div:not(.brand-mark){display:none}
body.sidebar-collapsed .nav-btn{font-size:0;text-align:center;padding:12px 8px}
body.sidebar-collapsed .nav-btn::before{font-size:19px}
body.sidebar-collapsed .nav-btn[data-view="inicio"]::before{content:"⌂"}
body.sidebar-collapsed .nav-btn[data-view="apropriar"]::before{content:"＋"}
body.sidebar-collapsed .nav-btn[data-view="apropriacoes"]::before{content:"▤"}
body.sidebar-collapsed .nav-btn[data-view="configuracoes"]::before{content:"⚙"}
body.sidebar-collapsed .connection{font-size:0;padding:9px 4px}
body.sidebar-collapsed .connection::before{content:"●";font-size:12px}
.input-invalid{border-color:#8B0000!important;box-shadow:0 0 0 2px rgba(139,0,0,.13)!important}
.input-invalid:focus{border-color:#5C0000!important;box-shadow:0 0 0 3px rgba(139,0,0,.2)!important}
:root[data-theme="dark"] .autocomplete-list{background:#191c1f;border-color:#4a4a4a;color:#fff}
:root[data-theme="dark"] .autocomplete-item{background:#191c1f;color:#fff}
:root[data-theme="dark"] .autocomplete-item:hover{background:#2d3237;color:#fff}
:root{--primary:#8B0000;--primary-2:#5C0000}
:root[data-theme="dark"]{--primary:#8B0000;--primary-2:#5C0000}
@media(max-width:900px){
  .sidebar-collapse{display:none}
  body.sidebar-collapsed .sidebar{width:250px;padding:22px 16px}
  body.sidebar-collapsed .main{margin-left:0;width:100%}
}

/* v0.6 */
body.sidebar-collapsed .sidebar{
  width:76px;
  padding:18px 10px;
}
body.sidebar-collapsed .main{
  margin-left:76px;
  width:calc(100% - 76px);
}
body.sidebar-collapsed .brand{
  justify-content:center;
  padding-left:0;
  padding-right:0;
}
body.sidebar-collapsed .brand > div:not(.brand-mark){display:none}
body.sidebar-collapsed .nav-btn{
  font-size:0;
  text-align:center;
  padding:12px 8px;
}
body.sidebar-collapsed .nav-btn::before{font-size:19px}
body.sidebar-collapsed .nav-btn[data-view="inicio"]::before{content:"⌂"}
body.sidebar-collapsed .nav-btn[data-view="apropriar"]::before{content:"＋"}
body.sidebar-collapsed .nav-btn[data-view="apropriacoes"]::before{content:"▤"}
body.sidebar-collapsed .nav-btn[data-view="configuracoes"]::before{content:"⚙"}
body.sidebar-collapsed .connection{font-size:0;padding:9px 4px}
body.sidebar-collapsed .connection::before{content:"●";font-size:12px}
.input-invalid{
  border-color:#8B0000!important;
  box-shadow:0 0 0 2px rgba(139,0,0,.16)!important;
}
.input-invalid:focus{
  border-color:#5C0000!important;
  box-shadow:0 0 0 3px rgba(139,0,0,.22)!important;
}
@media(max-width:900px){
  body.sidebar-collapsed .sidebar{
    width:250px;
    padding:22px 16px;
    transform:translateX(-100%);
  }
  body.sidebar-collapsed .sidebar.open{transform:translateX(0)}
  body.sidebar-collapsed .main{margin-left:0;width:100%}
}

/* v0.7 fixes */
.sidebar-collapse{
  position:absolute;top:10px;right:10px;width:36px;height:36px;
  border:0;border-radius:9px;background:rgba(255,255,255,.14);
  color:#fff;display:grid;place-items:center;cursor:pointer;font-size:18px;z-index:3
}
body.sidebar-collapsed .sidebar{width:76px;padding:18px 10px}
body.sidebar-collapsed .main{margin-left:76px;width:calc(100% - 76px)}
body.sidebar-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}
body.sidebar-collapsed .brand>div:not(.brand-mark){display:none}
body.sidebar-collapsed .nav-btn{font-size:0;text-align:center;padding:12px 8px}
body.sidebar-collapsed .nav-btn::before{font-size:19px}
body.sidebar-collapsed .nav-btn[data-view="inicio"]::before{content:"⌂"}
body.sidebar-collapsed .nav-btn[data-view="apropriar"]::before{content:"＋"}
body.sidebar-collapsed .nav-btn[data-view="apropriacoes"]::before{content:"▤"}
body.sidebar-collapsed .nav-btn[data-view="configuracoes"]::before{content:"⚙"}
body.sidebar-collapsed .connection{font-size:0;padding:9px 4px}
body.sidebar-collapsed .connection::before{content:"●";font-size:12px}
.input-invalid{
  border-color:#8B0000!important;
  box-shadow:0 0 0 2px rgba(139,0,0,.18)!important
}
.input-invalid:focus{
  border-color:#5C0000!important;
  box-shadow:0 0 0 3px rgba(139,0,0,.24)!important
}
@media(max-width:900px){
  .sidebar-collapse{display:none}
  body.sidebar-collapsed .sidebar{width:250px;padding:22px 16px}
  body.sidebar-collapsed .main{margin-left:0;width:100%}
}

/* v0.8 */
body.sidebar-collapsed .sidebar{width:76px;padding:18px 10px}
body.sidebar-collapsed .main{margin-left:76px;width:calc(100% - 76px)}
body.sidebar-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}
body.sidebar-collapsed .brand>div:not(.brand-mark){display:none}
body.sidebar-collapsed .nav-btn{font-size:0;text-align:center;padding:12px 8px}
body.sidebar-collapsed .nav-btn::before{font-size:19px}
body.sidebar-collapsed .nav-btn[data-view="inicio"]::before{content:"⌂"}
body.sidebar-collapsed .nav-btn[data-view="apropriar"]::before{content:"＋"}
body.sidebar-collapsed .nav-btn[data-view="apropriacoes"]::before{content:"▤"}
body.sidebar-collapsed .nav-btn[data-view="configuracoes"]::before{content:"⚙"}
body.sidebar-collapsed .connection{font-size:0;padding:9px 4px}
body.sidebar-collapsed .connection::before{content:"●";font-size:12px}
.sidebar-collapse{position:absolute;top:8px;right:8px;width:36px;height:36px;border:0;border-radius:9px;background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;cursor:pointer;font-size:18px;z-index:4}
.input-invalid{border-color:#8B0000!important;box-shadow:0 0 0 2px rgba(139,0,0,.18)!important}
.input-invalid:focus{border-color:#5C0000!important;box-shadow:0 0 0 3px rgba(139,0,0,.24)!important}
@media(max-width:900px){.sidebar-collapse{display:none}body.sidebar-collapsed .sidebar{width:250px;padding:22px 16px}body.sidebar-collapsed .main{margin-left:0;width:100%}}

/* v1.0 layout and validation */
.sidebar .brand{position:relative}
.sidebar #menuBtn{position:absolute;top:54px;right:10px;z-index:5}
body.sidebar-collapsed .sidebar #menuBtn{position:relative;top:auto;right:auto;margin:8px auto 12px}
.input-invalid{border-color:#8B0000!important;box-shadow:0 0 0 2px rgba(139,0,0,.22)!important}
.input-invalid:focus{border-color:#5C0000!important;box-shadow:0 0 0 3px rgba(139,0,0,.28)!important}
.selection-summary{margin:8px 0 10px;font-size:12px;color:var(--muted,#8fa3b8)}
.excel-select,#selectAllRows{width:17px;height:17px;cursor:pointer;accent-color:#8B0000}

/* v1.1 - sidebar button is below the brand mark */
.sidebar .sidebar-collapse{
  position:relative;
  top:auto;
  right:auto;
  align-self:center;
  flex:0 0 auto;
  margin:-10px 0 14px;
}
body.sidebar-collapsed .sidebar .sidebar-collapse{
  position:relative;
  top:auto;
  right:auto;
  margin:0 auto 14px;
}
@media(max-width:900px){
  .sidebar .sidebar-collapse{display:none}
}

/* v1.1 - appropriation date filters */
.filters .filter-date{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}
.filters .filter-date input{min-width:150px}
@media(max-width:900px){
  .filters .filter-date{width:100%}
}

/* v1.2 resources, logo and date filters */
.brand-mark{overflow:hidden;background:#fff}
.brand-mark img{width:100%;height:100%;display:block;object-fit:cover}
.resource-row{display:grid;grid-template-columns:minmax(220px,1.1fr) minmax(220px,1fr) auto;gap:8px;align-items:end;margin-bottom:10px}
.material-row{grid-template-columns:minmax(180px,1fr) minmax(120px,.45fr) minmax(220px,1fr) auto}
.resource-row .field{min-width:0}
.filter-date-wrap{display:flex;align-items:center;gap:4px}
.date-filter-text{min-width:125px!important}
@media(max-width:900px){.resource-row,.material-row{grid-template-columns:1fr}.resource-row .danger{justify-self:start}.filter-date-wrap{width:100%}.date-filter-text{width:100%}}

/* v1.3 - structured resources and Brazilian date filters */
.resource-section{margin-top:8px}
.resource-row{display:grid;grid-template-columns:minmax(230px,1.1fr) minmax(260px,1fr) auto;gap:8px;align-items:end;margin-bottom:10px}
.resource-row.material-row{grid-template-columns:minmax(200px,1fr) minmax(120px,.45fr) minmax(260px,1fr) auto}
.resource-row .field{min-width:0}
.resource-list{z-index:30}
.resource-empty{margin:4px 0 10px;padding:12px}
.filter-date-wrap{display:flex;align-items:center;gap:4px}
.date-filter-text{min-width:125px!important}
.visually-hidden-picker{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.brand-mark img{object-fit:contain!important;padding:2px}
@media(max-width:900px){.resource-row,.resource-row.material-row{grid-template-columns:1fr}.resource-row .danger{justify-self:start}.filter-date-wrap{width:100%}.date-filter-text{width:100%}}

.topbar-actions{display:flex;align-items:center;gap:10px}.topbar-actions .secondary{color:#fff;background:#5C0000;border:1px solid rgba(255,255,255,.18)}

/* v1.5 */
.topbar-actions{margin-left:auto;justify-content:flex-end;flex-shrink:0}.topbar-actions .primary,.topbar-actions .secondary{white-space:nowrap}.activity-filter-wrap{position:relative;min-width:240px}.activity-filter-wrap .autocomplete-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60}.activities-cell{position:relative;min-width:240px}.activity-more{border:0;background:rgba(139,0,0,.12);color:#8B0000;border-radius:999px;padding:2px 7px;cursor:pointer;font-weight:700}.activity-popover{position:fixed;z-index:100;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:12px 14px;box-shadow:0 14px 35px rgba(0,0,0,.3);max-width:320px;max-height:300px;overflow:auto}.activity-popover ul{margin:8px 0 0 18px;padding:0}.activity-popover li{margin:4px 0}.cep-field-wrap{display:flex;gap:8px;align-items:center}.cep-field-wrap input{flex:1}.cep-status{font-size:12px;white-space:nowrap}.cep-valid{color:#43b581}.cep-error{color:#ff6b6b}.cep-checking{color:#e0b15a}.cep-pending{color:var(--muted)}.sp-map{position:relative;min-height:540px;margin-top:14px;border:1px solid var(--border);border-radius:14px;background:var(--card);overflow:hidden}.sp-map svg{display:block;width:100%;height:auto;min-height:500px}.sp-map .mun polygon{fill:rgba(255,255,255,.035);stroke:rgba(160,170,180,.45);stroke-width:.35}.sp-map .heat-point circle:first-child{fill:#8B0000;filter:drop-shadow(0 3px 5px rgba(139,0,0,.3))}.sp-map .heat-core{fill:#fff;stroke:#8B0000;stroke-width:1.5}.map-loading,.map-error{min-height:500px;display:grid;place-items:center;text-align:center;padding:30px}.map-meta{position:absolute;top:12px;right:12px;z-index:2;background:rgba(15,17,19,.86);color:#fff;padding:7px 10px;border-radius:8px;font-size:12px}.map-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px;color:var(--muted);font-size:12px}.heat{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:5px;background:#8B0000}.heat.low{opacity:.28}.heat.mid{opacity:.55}.heat.high{opacity:.9}
body.sidebar-collapsed .nav-btn[data-view="area"]::before{content:"⌖"}

/* v1.6 - clima, mapa por CEP e zoom */
.strict-choice-wrap .autocomplete-list{z-index:70}
.area-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:14px 0 4px}
.map-mode-switch{display:inline-flex;border:1px solid var(--border);border-radius:10px;padding:3px;background:var(--card)}
.map-mode{border:0;background:transparent;color:var(--text);padding:8px 13px;border-radius:7px;cursor:pointer;font-weight:700}
.map-mode.active{background:#8B0000;color:#fff}
.map-zoom-controls{position:absolute;right:14px;bottom:14px;z-index:5;display:flex;flex-direction:column;gap:6px}
.map-zoom-controls button{width:38px;height:38px;border:1px solid var(--border);border-radius:9px;background:var(--card);color:var(--text);font-size:20px;font-weight:800;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.map-zoom-controls button:hover{background:#8B0000;color:#fff}
.sp-map svg{touch-action:none}
.map-pin path{fill:#8B0000;stroke:#fff;stroke-width:1.5;vector-effect:non-scaling-stroke}
.map-pin circle{fill:#fff;stroke:#8B0000;stroke-width:1.2;vector-effect:non-scaling-stroke}
.map-pin text{fill:#8B0000;font-size:7px;font-weight:800;pointer-events:none}
@media(max-width:900px){.area-map-toolbar{align-items:stretch}.map-mode-switch{width:100%}.map-mode{flex:1}.map-zoom-controls{right:10px;bottom:10px}}

/* v1.7 map navigation */
.map-city-label{font-size:10px;font-weight:700;fill:var(--text);paint-order:stroke;stroke:var(--card);stroke-width:3px;stroke-linejoin:round;pointer-events:none}
.map-pan-horizontal{position:absolute;left:18px;right:70px;bottom:12px;z-index:5;display:flex;align-items:center;gap:8px;padding:5px 8px;background:rgba(15,17,19,.82);border-radius:8px}
.map-pan-horizontal label{font-size:10px;color:#fff;white-space:nowrap}.map-pan-horizontal input{flex:1;min-width:80px}
.map-pan-vertical{position:absolute;right:58px;top:70px;bottom:78px;z-index:5;display:flex;align-items:center;justify-content:center;padding:6px 4px;background:rgba(15,17,19,.82);border-radius:8px}
.map-pan-vertical label{display:none}.map-pan-vertical input{writing-mode:vertical-lr;direction:ltr;width:22px;height:100%;min-height:150px}
@media(max-width:900px){.map-pan-horizontal{left:10px;right:62px;bottom:8px}.map-pan-vertical{right:52px;top:62px;bottom:68px}.map-city-label{font-size:9px}}

/* v1.8 */
.map-pan-horizontal input[type="range"]{height:18px;min-height:18px;accent-color:#8B0000;cursor:pointer}.map-pan-horizontal input[type="range"]::-webkit-slider-thumb{width:34px;height:16px;border-radius:8px;background:#8B0000;cursor:grab}.map-pan-horizontal input[type="range"]::-moz-range-thumb{width:34px;height:16px;border-radius:8px;background:#8B0000;border:0;cursor:grab}.map-pan-vertical input[type="range"]::-webkit-slider-thumb{width:20px;height:42px;border-radius:10px;background:#8B0000;cursor:grab}.map-pan-vertical input[type="range"]::-moz-range-thumb{width:20px;height:42px;border-radius:10px;background:#8B0000;border:0;cursor:grab}.map-pin .pin-bg{fill:#8B0000;stroke:#fff;stroke-width:1.5;vector-effect:non-scaling-stroke}.map-pin .pin-core{fill:#fff;stroke:#8B0000;stroke-width:1.2;vector-effect:non-scaling-stroke}.map-pin text{fill:#8B0000;font-size:10px;font-weight:800;pointer-events:none}.map-cluster .pin-bg{fill:#8B0000;opacity:.95}.cep-generic-wrap{margin-top:8px}.cep-generic-wrap.hidden{display:none}.cep-generic-wrap label{display:block;font-size:11px;font-weight:700;margin-bottom:4px}.cep-generic-wrap input{width:100%}

/* v1.10 mapa: controles de deslocamento personalizados */
.map-pan-horizontal,.map-pan-vertical{box-sizing:border-box}
.pan-slider{position:relative;flex:1;min-width:80px;height:28px;cursor:pointer;touch-action:none;outline:none}
.pan-slider:focus-visible{outline:2px solid #fff;outline-offset:2px;border-radius:6px}
.pan-track{position:absolute;left:10px;right:10px;top:50%;height:6px;transform:translateY(-50%);background:#ddd;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.25)}
.pan-thumb{position:absolute;top:50%;width:20px;height:18px;transform:translateY(-50%);border-radius:5px;background:#8B0000;border:1px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.45);pointer-events:none}
.map-pan-vertical{width:34px;padding:8px 5px;display:flex}
.map-pan-vertical .pan-slider{width:24px;height:100%;min-height:150px;flex:none}
.map-pan-vertical .pan-track{top:10px;bottom:10px;left:50%;right:auto;width:6px;height:auto;transform:translateX(-50%)}
.map-pan-vertical .pan-thumb{left:50%!important;top:auto;width:18px;height:24px;transform:translate(-50%,0)}
.map-pan-horizontal label,.map-pan-vertical label{user-select:none}
/* v1.11: controles de mapa e marcadores */
.map-pan-horizontal .pan-thumb{width:24px;height:18px;border-radius:5px}
.map-pan-vertical .pan-thumb{width:18px;height:28px;border-radius:5px}

/* v1.15 - autenticação, perfis e versionamento */
.login-screen{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:var(--bg,#f5f6f8)}
.login-card{width:min(440px,100%);background:var(--card,#fff);border:1px solid var(--border,#ddd);border-radius:18px;padding:28px;box-shadow:0 16px 50px rgba(0,0,0,.16)}
.login-brand{width:72px;height:72px;margin:0 auto 12px;border-radius:16px;overflow:hidden;background:#fff}.login-brand img{width:100%;height:100%;object-fit:contain;padding:4px}
.login-card h1{text-align:center;margin:4px 0 6px}.login-card>.muted{text-align:center;margin-bottom:20px}.login-card form{display:grid;gap:14px}.login-card .primary{width:100%;margin-top:4px}.login-error{min-height:20px;color:#8B0000;font-weight:600}.login-demo{margin-top:20px;padding:12px;border-radius:10px;background:rgba(139,0,0,.06);font-size:12px;line-height:1.7}.login-demo code{font-weight:700}
.auth-required #app{display:none}
.topbar-user{display:flex;align-items:center;gap:9px;margin-left:auto;margin-right:8px}.topbar-user>span{font-weight:700}.topbar-user small{color:var(--muted);padding-right:6px}.topbar-user button{padding:7px 10px!important}
.history-panel{margin-top:14px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--card)}.history-item{display:grid;grid-template-columns:auto 1fr 1fr auto;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);align-items:center}.history-item:last-child{border-bottom:0}.history-item span,.history-item small{color:var(--muted)}
:root[data-theme="dark"] .login-screen{background:#101214}:root[data-theme="dark"] .login-card{background:#191c1f;border-color:#333}:root[data-theme="dark"] .login-demo{background:rgba(139,0,0,.16)}
@media(max-width:900px){.topbar-user{margin-left:0}.topbar-user>span,.topbar-user small{display:none}.history-item{grid-template-columns:1fr;gap:3px}}
.version-badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:rgba(139,0,0,.12);color:var(--primary);font-size:.82rem;font-weight:700;margin-left:8px}
.history-panel{margin-top:12px}
.history-item{display:grid;grid-template-columns:auto auto 1fr;gap:8px 14px;padding:12px 0;border-bottom:1px solid var(--border)}
.history-item small{grid-column:1/-1}
@media(max-width:700px){.history-item{grid-template-columns:1fr}.history-item small{grid-column:auto}}

.version-modal{position:fixed;inset:0;background:rgba(0,0,0,.58);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}.version-modal.hidden{display:none}.version-modal-card{background:var(--surface,#fff);color:var(--text,#222);width:min(1000px,96vw);max-height:90vh;overflow:auto;border-radius:14px;padding:20px;box-shadow:0 20px 60px rgba(0,0,0,.35)}.password-modal-card{width:min(620px,96vw)}.version-readonly h3{color:#8B0000;border-bottom:1px solid #ccc;padding-bottom:6px}.version-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.version-meta>div,.version-field{border:1px solid #ddd;border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:4px}.version-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.version-activity{border:1px solid #ddd;border-radius:10px;padding:12px;margin:8px 0}.version-activity h4{margin:0 0 8px;color:#8B0000}.history-item{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap;border:1px solid #ddd;border-radius:8px;padding:10px;margin:8px 0}.history-item>div{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.history-item small{display:block;width:100%}@media(max-width:700px){.version-fields,.version-meta{grid-template-columns:1fr}}
/* v1.18 - tema consistente em modais e visualização de versões */
.version-modal-card{background:var(--card,#fff);color:var(--text,#222);border:1px solid var(--border,#ddd)}
.version-meta>div,.version-field,.version-activity,.history-item{border-color:var(--border,#ddd);color:var(--text,#222)}
.version-readonly h3{color:var(--primary,#8B0000);border-bottom-color:var(--border,#ddd)}
.version-extra-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}
:root[data-theme="dark"] .version-modal-card{background:#191c1f;color:#F4F4F4}
:root[data-theme="dark"] .version-meta>div,:root[data-theme="dark"] .version-field,:root[data-theme="dark"] .version-activity,:root[data-theme="dark"] .history-item{background:#191c1f;border-color:#343A40;color:#F4F4F4}
@media(max-width:700px){.version-extra-grid{grid-template-columns:1fr}}

/* v1.23 - catálogo de campo */
.catalog-page{max-width:1200px}.catalog-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.catalog-tab{min-width:190px}.catalog-tab.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.catalog-tab span{opacity:.75;margin-left:6px}.catalog-toolbar{display:flex;gap:14px;align-items:end;justify-content:space-between;margin-bottom:14px}.catalog-toolbar .field{flex:1}.catalog-actions{display:flex;gap:8px;align-items:center}.catalog-add{display:flex;gap:12px;align-items:end;margin-bottom:14px}.catalog-add .field{flex:1}.catalog-list.large{max-height:520px;overflow:auto;border:1px solid var(--border);border-radius:10px;padding:8px}.catalog-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border-bottom:1px solid var(--border)}.catalog-item:last-child{border-bottom:0}.catalog-item .secondary{white-space:nowrap}.catalog-manager{margin-top:16px}.workforce-row .field small,.resource-row .field small{display:block;margin-top:4px}.admin-only-nav.hidden{display:none!important}@media(max-width:800px){.catalog-toolbar,.catalog-add{flex-direction:column;align-items:stretch}.catalog-actions{justify-content:flex-start}}
.catalog-workspace-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:4px 0 14px}.catalog-workspace-head h3{margin:0 0 4px}.catalog-count{font-size:13px;color:var(--muted);white-space:nowrap}.catalog-import-btn,.catalog-download{cursor:pointer}.catalog-actions button{cursor:pointer}.catalog-add .field label{font-size:13px}
:root[data-theme="dark"] .catalog-item{background:var(--card);color:var(--text)}
@media(max-width:700px){.catalog-workspace-head{align-items:flex-start;flex-direction:column}.catalog-actions{width:100%}.catalog-actions button{flex:1}}
.multi-choice-item{display:flex;align-items:center;gap:8px;text-align:left}.multi-check{display:inline-flex;width:18px;height:18px;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:4px;font-weight:700}.multi-choice-item.selected{font-weight:600}

/* v1.27 - seleção múltipla padronizada para Desvio de tráfego */
.multi-selected{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 7px;min-height:0}.multi-chip{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:999px;padding:5px 9px;cursor:pointer;font-size:12px}.multi-chip:hover{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,var(--card))}.multi-choice-item{cursor:pointer}.multi-check{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:4px;flex:0 0 16px}.strict-choice-wrap input{cursor:text}

/* v1.28 - configuracao dinamica de servicos */
.service-config-list{display:grid;gap:10px;margin-top:12px}.service-config-card{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;border:1px solid var(--border,#ddd);padding:12px;border-radius:10px}.service-config-actions{display:flex;gap:8px}.service-config-editor{margin-top:14px;border-top:1px solid var(--border,#ddd);padding-top:14px}.service-editor-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.service-fields-editor{display:grid;gap:10px}.service-field-editor{display:grid;grid-template-columns:40px minmax(180px,1fr) minmax(140px,.7fr) minmax(100px,.5fr) auto auto auto;gap:10px;align-items:end;border:1px solid var(--border,#ddd);border-radius:10px;padding:10px}.service-field-editor .service-options-editor{grid-column:2/-1}.drag-handle{font-weight:700;text-align:center}.service-order-buttons{display:flex;gap:4px}.service-order-buttons button{min-width:34px}.check{display:flex;align-items:center;gap:6px;white-space:nowrap}.service-field-editor button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:900px){.service-config-card{grid-template-columns:1fr}.service-field-editor{grid-template-columns:1fr}.service-field-editor .service-options-editor{grid-column:auto}.service-order-buttons{justify-content:flex-start}}
/* v1.29 - gerenciamento de serviços separado e histórico de configurações */
.service-manager-summary{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.service-manager-summary span{border:1px solid var(--border);border-radius:999px;padding:7px 11px;background:var(--card)}.service-card-meta{margin-top:4px;font-size:13px}.service-version-card{width:min(900px,96vw)}.service-version-note{padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg);margin:12px 0}.service-version-fields{display:grid;gap:8px}.service-version-field{display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:start;border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--card)}.service-version-index{font-weight:700;text-align:center}.service-version-options{margin-top:6px;font-size:13px}.service-history{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.service-history-empty{margin-top:12px}.service-history .history-item{margin:8px 0}.service-history .history-item>div{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
@media(max-width:700px){.service-version-field{grid-template-columns:28px 1fr}.service-config-actions{flex-wrap:wrap}.service-config-actions button{flex:1}}

/* v1.32 - centralização de exclusões lógicas */
.deleted-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.deleted-tab span{opacity:.75;margin-left:5px}.deleted-tab.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.deleted-page .table-wrap{margin-top:12px}.deleted-page td:last-child{white-space:nowrap}.deleted-page td:last-child button{margin:2px 4px 2px 0}@media(max-width:800px){.deleted-page .table-wrap{overflow-x:auto}}

/* Identificação explícita do ambiente de demonstração */
.demo-auth-note{padding:12px 14px;border:1px solid #b6c9df;background:#eef5fc;color:#253e57;border-radius:10px;font-size:.85rem;line-height:1.45;margin:10px 0 16px}
.demo-top-note{padding:9px 14px;margin:0 0 12px;border:1px solid #b6c9df;background:#eef5fc;color:#253e57;border-radius:10px;font-size:.84rem;line-height:1.4}

/* Intervalos com datas opcionais visíveis — Demo Build 02 rev01 */
.intervals .interval{padding:12px;border:1px solid var(--border,#d5dce5);border-radius:10px;margin-bottom:10px}
.interval-main{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.interval-main .field{flex:1 1 130px}
.interval-details{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}
.interval-details .toggle-interval-dates{font-size:12px;padding:5px 9px}
.interval-dates{display:flex;gap:12px;flex-basis:100%;flex-wrap:wrap}
.interval-dates .field{flex:1 1 170px}
.interval-night-confirm{flex-basis:100%;font-size:13px}
.interval-duration{flex-basis:100%;font-weight:600}

/* Calendário de intervalos em formato brasileiro, independente do locale do navegador */
.interval-dates .input-with-button{position:relative}
.br-calendar-popover{position:absolute;z-index:1000;top:calc(100% + 6px);left:0;width:280px;max-width:90vw;padding:12px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 28px rgba(0,0,0,.22);color:var(--text)}
.br-cal-header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;text-transform:capitalize}
.br-cal-header button{border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text);min-width:34px;height:34px;cursor:pointer}
.br-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
.br-cal-grid button{padding:0;min-width:0;height:33px;border:0;border-radius:7px;background:transparent;color:var(--text);cursor:pointer}
.br-cal-grid button:hover,.br-cal-grid button.selected{background:var(--primary);color:#fff}
.br-cal-weekday{font-size:12px;font-weight:700;opacity:.75;padding:7px 0}
.br-cal-footer{font-size:11px;opacity:.7;margin-top:8px;text-align:center}

/* Demo Build 03: campos de recursos por atividade */
.resource-row,.resource-row.material-row{grid-template-columns:minmax(190px,1.2fr) minmax(95px,.45fr) minmax(105px,.45fr) minmax(170px,1fr) auto}
.resource-row:not(.material-row){grid-template-columns:minmax(190px,1.2fr) minmax(95px,.45fr) minmax(170px,1fr) auto}
@media(max-width:900px){.resource-row,.resource-row.material-row,.resource-row:not(.material-row){grid-template-columns:1fr}}
/* Build 04 — particularidades */
.part-answer{display:flex;gap:24px;flex-wrap:wrap;margin:8px 0 14px}.part-answer label,.part-choice{display:flex;align-items:center;gap:8px;cursor:pointer}.part-item{border:1px solid var(--border,#d6dce2);border-radius:10px;padding:15px;margin:12px 0;background:rgba(128,128,128,.035)}.part-options{display:flex;flex-direction:column;gap:9px;padding:10px 0}.part-item .part-remove{margin-top:10px}.part-item textarea{min-height:70px}.part-item input[type=checkbox],.part-item input[type=radio],.part-answer input{width:auto;accent-color:#8b0000}

/* Build 06 — revisão da apropriação */
.review-modal-card{max-height:90vh;overflow-y:auto;max-width:820px}
.review-modal-card h3{margin:20px 0 10px}
.review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.review-line{display:flex;flex-direction:column;gap:4px;padding:10px;border:1px solid var(--border,#ddd);border-radius:8px;overflow-wrap:anywhere;white-space:pre-wrap}
.review-line span{white-space:pre-wrap}
.review-activity{padding:12px;border:1px solid var(--border,#ddd);border-radius:8px;margin:8px 0}
.review-activity small{display:block;margin-top:5px;opacity:.75}
.review-note{margin-top:18px}
