:root{
    --bg:#07111f;
    --panel:#0f2036;
    --panel2:#122944;
    --text:#edf6ff;
    --muted:#9fb2c7;
    --accent:#35d07f;
    --accent2:#28a9ff;
    --danger:#ff5b6e;
    --warning:#ffc857;
    --success:#2dd36f;
    --card-border:rgba(255,255,255,.12);
}
*{box-sizing:border-box}
body{
    margin:0;
    color:var(--text);
    background:
      radial-gradient(circle at top left, rgba(40,169,255,.23), transparent 30%),
      radial-gradient(circle at top right, rgba(53,208,127,.18), transparent 32%),
      linear-gradient(135deg,var(--bg) 0%, color-mix(in srgb, var(--bg) 82%, var(--accent2) 18%) 45%, color-mix(in srgb, var(--bg) 92%, #000 8%) 100%);
    min-height:100vh;
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.app-navbar{
    background:color-mix(in srgb, var(--bg) 86%, transparent);
    backdrop-filter: blur(16px);
    border-bottom:1px solid rgba(255,255,255,.10);
    box-shadow:0 8px 30px rgba(0,0,0,.24);
}
.brand-icon{
    width:38px;height:38px;border-radius:13px;display:grid;place-items:center;
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    color:#05111f;box-shadow:0 10px 24px rgba(40,169,255,.25);
}
.nav-link{color:#d5e7f7!important;border-radius:14px;padding:.65rem .9rem!important}
.nav-link:hover{background:rgba(255,255,255,.09);color:#fff!important}
.hero-card,.glass-card{
    background:linear-gradient(180deg,color-mix(in srgb, var(--panel) 88%, transparent),color-mix(in srgb, var(--bg) 88%, transparent));
    border:1px solid var(--card-border);
    box-shadow:0 24px 60px rgba(0,0,0,.28);
    border-radius:28px;
}
.hero-card{padding:28px;overflow:hidden;position:relative}
.hero-card:before{
    content:"";position:absolute;inset:-80px auto auto -70px;width:210px;height:210px;border-radius:999px;
    background:rgba(53,208,127,.17);filter:blur(6px);
}
.text-muted-app{color:var(--muted)!important}
.stat-card{
    background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);
    border-radius:22px;padding:20px;height:100%;transition:.2s ease;
}
.stat-card:hover{transform:translateY(-2px);background:rgba(255,255,255,.10)}
.stat-icon{width:48px;height:48px;border-radius:18px;display:grid;place-items:center;font-size:1.45rem;background:rgba(255,255,255,.10)}
.map-wrap{height:650px;border-radius:28px;overflow:hidden;border:1px solid rgba(255,255,255,.14);box-shadow:0 22px 50px rgba(0,0,0,.35);position:relative;background:color-mix(in srgb, var(--bg) 88%, #000 12%)}
#map{height:100%;width:100%;z-index:1}
.map-toolbar{
    position:absolute;top:18px;left:18px;right:18px;z-index:500;
    display:flex;gap:10px;flex-wrap:wrap;align-items:center;pointer-events:none;
}
.map-toolbar>*{pointer-events:auto}
.filter-pill,.legend-box{
    background:color-mix(in srgb, var(--bg) 86%, transparent);border:1px solid rgba(255,255,255,.16);
    color:var(--text);border-radius:18px;padding:10px 13px;backdrop-filter:blur(12px);
    box-shadow:0 12px 30px rgba(0,0,0,.22);
}
.legend-dot{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:6px}
.dot-em_andamento{background:var(--accent2)}
.dot-concluido{background:var(--success)}
.dot-paralisada{background:var(--danger)}
.btn-gradient{background:linear-gradient(135deg,var(--accent),var(--accent2));border:0;color:#041320;font-weight:800;border-radius:16px;padding:.72rem 1rem;box-shadow:0 14px 30px rgba(40,169,255,.18)}
.btn-gradient:hover{filter:brightness(1.08);color:#041320}
.btn-soft{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#fff;border-radius:16px;padding:.72rem 1rem}
.btn-soft:hover{background:rgba(255,255,255,.14);color:#fff}
.table{--bs-table-color:#edf6ff;--bs-table-bg:transparent;--bs-table-border-color:rgba(255,255,255,.11)}
.table thead th{color:#a9c2d8;font-weight:700;text-transform:uppercase;font-size:.78rem;letter-spacing:.06em}
.form-control,.form-select{
    background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#fff;border-radius:16px;padding:.78rem 1rem;
}
.form-control:focus,.form-select:focus{background:rgba(255,255,255,.10);border-color:var(--accent2);color:#fff;box-shadow:0 0 0 .25rem rgba(40,169,255,.16)}
.form-select option{color:#111;background:#fff}
.badge-status{border-radius:999px;padding:.45rem .7rem;font-weight:800}
.bg-em_andamento{background:rgba(40,169,255,.18);color:#7fd0ff;border:1px solid rgba(40,169,255,.30)}
.bg-concluido{background:rgba(45,211,111,.18);color:#7dffa9;border:1px solid rgba(45,211,111,.30)}
.bg-paralisada{background:rgba(255,91,110,.18);color:#ff9eaa;border:1px solid rgba(255,91,110,.30)}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#081627;color:#edf6ff;border:1px solid rgba(255,255,255,.12)}
.popup-title{font-weight:900;font-size:1rem;margin-bottom:3px}.popup-meta{color:#a7bdd2;font-size:.85rem}.popup-actions a{color:#6fd1ff;text-decoration:none;font-weight:800}
.custom-marker{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;border:3px solid rgba(255,255,255,.82);box-shadow:0 9px 24px rgba(0,0,0,.35);color:#fff;font-size:18px}
.marker-em_andamento{background:linear-gradient(135deg,#28a9ff,#1664d9)}
.marker-concluido{background:linear-gradient(135deg,#2dd36f,#087e3e)}
.marker-paralisada{background:linear-gradient(135deg,#ff5b6e,#b40c25)}
.app-footer{color:#85a0b7;border-top:1px solid rgba(255,255,255,.08);background:rgba(7,17,31,.40)}
@media(max-width:768px){.map-wrap{height:560px}.hero-card{padding:20px}.map-toolbar{position:relative;top:auto;left:auto;right:auto;margin-bottom:12px}.map-wrap{overflow:visible}#map{border-radius:24px;overflow:hidden}.legend-box{width:100%}}

.map-warning{
  position:absolute;
  left:18px;
  bottom:18px;
  z-index:900;
  max-width:min(560px, calc(100% - 36px));
  padding:12px 16px;
  border-radius:18px;
  background:rgba(15, 23, 42, .88);
  color:#fff;
  box-shadow:0 18px 45px rgba(0,0,0,.22);
  backdrop-filter:blur(12px);
  font-size:.92rem;
}
.leaflet-control-layers{
  border:0!important;
  border-radius:16px!important;
  box-shadow:0 12px 30px rgba(15,23,42,.18)!important;
  overflow:hidden;
}

.login-body{
    min-height:100vh;
    background:
      radial-gradient(circle at 15% 20%, rgba(42, 169, 255, .20), transparent 32%),
      radial-gradient(circle at 85% 10%, rgba(45, 211, 111, .14), transparent 30%),
      linear-gradient(135deg, #04111f 0%, #071827 48%, #0b2432 100%);
    display:grid;
    place-items:center;
    padding:24px;
}
.login-shell{width:100%;max-width:520px}
.login-card{
    border:1px solid rgba(255,255,255,.14);
    background:rgba(7,17,31,.78);
    box-shadow:0 30px 90px rgba(0,0,0,.42);
    backdrop-filter:blur(18px);
    border-radius:32px;
    padding:34px;
    color:var(--text);
}
.login-brand{display:flex;align-items:center;gap:14px}
.input-group-text{
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.14);
    color:#a9dfff;
    border-radius:16px 0 0 16px;
}
.input-group .form-control{border-radius:0 16px 16px 0}
.login-demo{
    background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.12);
    border-radius:20px;
    padding:14px 16px;
    color:#dcefff;
}
.login-demo code{color:#9fe8ff;background:rgba(0,0,0,.22);padding:2px 6px;border-radius:8px}
.dropdown-menu{background:var(--panel);color:var(--text);border:1px solid rgba(255,255,255,.12)}
.dropdown-item{color:#eaf6ff}
.dropdown-item:hover{background:rgba(255,255,255,.08);color:#fff}

.modal-dark{background:linear-gradient(180deg,rgba(18,41,68,.98),rgba(10,23,39,.98));color:var(--text);border:1px solid rgba(255,255,255,.14)!important}
.palette-card{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);border-radius:22px;padding:18px;height:100%;transition:.2s ease}
.palette-card:hover{transform:translateY(-2px);background:rgba(255,255,255,.10)}
.palette-preview{height:70px;border-radius:18px;display:flex;overflow:hidden;border:1px solid rgba(255,255,255,.18)}
.palette-preview span{flex:1}.pending-row{background:rgba(255,200,87,.12)!important}.bulk-tools{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:14px}


/* v10 - paletas globais mais fortes */
body{background-color:var(--bg)!important;}
.app-navbar,.app-footer{background:color-mix(in srgb, var(--bg) 88%, transparent)!important;}
.glass-card,.hero-card,.login-card,.modal-dark{background:linear-gradient(180deg,color-mix(in srgb, var(--panel) 92%, transparent),color-mix(in srgb, var(--bg) 92%, transparent))!important;}
.stat-card,.bulk-tools,.palette-card{background:color-mix(in srgb, var(--panel) 68%, transparent)!important;}
.table{--bs-table-color:var(--text)!important;}
.btn-gradient{background:linear-gradient(135deg,var(--accent),var(--accent2))!important;}
.btn-soft{background:color-mix(in srgb, var(--panel) 72%, transparent)!important;border-color:color-mix(in srgb, var(--accent2) 35%, transparent)!important;color:var(--text)!important;}
.form-control,.form-select,.input-group-text{background:color-mix(in srgb, var(--panel) 72%, transparent)!important;color:var(--text)!important;}
.nav-link:hover{background:color-mix(in srgb, var(--accent) 16%, transparent)!important;}
.admin-tile{display:block;text-decoration:none;color:var(--text);height:100%}
.admin-tile:hover{color:var(--text)}
.log-box{max-height:520px;overflow:auto;border-radius:22px;border:1px solid rgba(255,255,255,.12)}
