:root{
  --pink:#eb175d;--pink-dark:#c70d49;--pink-soft:#fff0f5;--bg:#f5f6f8;--card:#fff;
  --text:#21242a;--muted:#727984;--border:#e3e6eb;--green:#16975a;--red:#d94a4a;
  --amber:#d99a19;--shadow:0 14px 38px rgba(28,32,39,.08);--radius:18px
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.app-shell{display:grid;grid-template-columns:245px 1fr;min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;background:white;border-right:1px solid var(--border);padding:25px 18px;display:flex;flex-direction:column;z-index:30}
.brand{height:86px;display:flex;align-items:center;padding:0 7px 18px;border-bottom:1px solid var(--border)}
.brand img{width:185px;max-height:70px;object-fit:contain;object-position:left center}
.nav{display:grid;gap:7px;margin-top:22px}.nav-item{border:0;background:transparent;padding:13px 14px;border-radius:12px;text-align:left;font-weight:700;color:#5c6470}
.nav-item span{display:inline-block;width:24px}.nav-item:hover,.nav-item.active{background:var(--pink-soft);color:var(--pink)}
.sidebar-bottom{margin-top:auto;display:grid;gap:12px}.sidebar-bottom small{color:var(--muted);text-align:center}.role-box{background:#f8f8fa;padding:12px;border-radius:13px}
.role-box label{font-size:11px;text-transform:uppercase;font-weight:800;color:var(--muted)}.role-box select{margin-top:7px}
.main{min-width:0;padding:25px 28px 45px}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}
.topbar h1{margin:0;font-size:27px}.topbar p{margin:5px 0 0;color:var(--muted)}.top-actions{display:flex;gap:10px}
.btn,.search-trigger,.icon-btn{border:1px solid var(--border);background:white;color:var(--text);border-radius:11px;font-weight:750;transition:.18s}
.btn{padding:11px 15px}.btn:hover,.search-trigger:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(0,0,0,.07)}
.btn.primary{background:var(--pink);border-color:var(--pink);color:white}.btn.primary:hover{background:var(--pink-dark)}
.btn.ghost{background:#fafafa}.icon-btn{width:38px;height:38px;font-size:20px}.search-trigger{padding:10px 13px;color:var(--muted)}
.search-trigger kbd{margin-left:20px;border:1px solid var(--border);background:#f5f5f7;padding:3px 6px;border-radius:5px;font-size:11px}
.page{display:none}.page.active{display:block}
.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:14px;margin-bottom:18px}
.metric{background:white;border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.metric:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--pink)}.metric.success:before{background:var(--green)}.metric.danger:before{background:var(--red)}
.metric span{font-size:12px;text-transform:uppercase;color:var(--muted);font-weight:800}.metric strong{display:block;font-size:29px;margin:7px 0 3px}.metric small{color:var(--muted)}
.dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.span-2{grid-row:span 2}
.card{background:white;border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.card-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:15px}.card h2,.card-head h2{font-size:18px;margin:0}.card-head p,.card>p{color:var(--muted);font-size:13px;margin:5px 0 0}
.unit-list,.unit-grid{display:grid;gap:12px}.unit-grid{grid-template-columns:repeat(3,minmax(250px,1fr))}
.unit-card{border:1px solid var(--border);border-radius:15px;padding:16px;background:white;transition:.18s}.unit-card:hover{border-color:#f5a8c3;box-shadow:0 12px 28px rgba(235,23,93,.09);transform:translateY(-2px)}
.unit-card-head{display:flex;justify-content:space-between;gap:10px}.unit-card h3{margin:0;font-size:16px}.unit-meta{margin-top:12px;display:grid;gap:7px;color:#5e6671;font-size:13px}
.unit-actions{display:flex;gap:7px;margin-top:14px;flex-wrap:wrap}.unit-actions button{border:0;background:#f4f5f7;padding:8px 10px;border-radius:8px;font-size:12px;font-weight:750}.unit-actions button:hover{background:var(--pink-soft);color:var(--pink)}
.status-pill{display:inline-flex;align-items:center;height:26px;padding:0 9px;border-radius:999px;font-size:11px;font-weight:850}
.status-pill.open{background:#e7f7ef;color:var(--green)}.status-pill.closed{background:#fff0f0;color:var(--red)}
.compact .unit-card{padding:13px}.compact .unit-meta{grid-template-columns:1fr 1fr}.compact .unit-actions{display:none}
.ranking{display:grid;gap:12px}.rank-row{display:grid;grid-template-columns:1fr auto;gap:9px}.rank-row strong{font-size:13px}.rank-bar{height:7px;background:#eee;border-radius:999px;overflow:hidden;margin-top:6px}.rank-bar i{display:block;height:100%;background:var(--pink);border-radius:999px}
.donut-area{display:flex;align-items:center;justify-content:space-around;gap:20px;min-height:180px}.donut{width:145px;height:145px;border-radius:50%;display:grid;place-items:center;position:relative;background:conic-gradient(var(--green) 0%,var(--red) 0)}
.donut:after{content:"";position:absolute;width:94px;height:94px;background:white;border-radius:50%}.donut span{position:relative;z-index:1;font-size:23px;font-weight:850}.donut-legend{display:grid;gap:13px}.donut-legend div{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center}.dot{width:10px;height:10px;border-radius:50%}.dot.open{background:var(--green)}.dot.closed{background:var(--red)}
.timeline{display:grid}.timeline-item{display:grid;grid-template-columns:12px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.timeline-item i{width:10px;height:10px;border-radius:50%;background:var(--pink);margin-top:5px}.timeline-item p{margin:0;font-size:13px}.timeline-item small{color:var(--muted)}
.filters-card{margin-bottom:17px}.filters{display:grid;grid-template-columns:2fr repeat(3,1fr) auto;gap:10px;align-items:end}.field{display:grid;gap:6px}.field label{font-size:12px;color:var(--muted);font-weight:800}.field small{color:var(--muted)}
input,select{width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:white;outline:none;color:var(--text)}input:focus,select:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(235,23,93,.1)}
.units-toolbar{display:flex;justify-content:space-between;align-items:center;margin:15px 2px}.units-toolbar span{display:block;font-size:12px;color:var(--muted)}.view-toggle{display:flex;background:#e9ebee;border-radius:10px;padding:3px}.view-toggle button{border:0;background:transparent;padding:8px 11px;border-radius:8px}.view-toggle button.active{background:white;box-shadow:0 2px 7px rgba(0,0,0,.08)}
.table-wrap{overflow:auto;padding:0}table{border-collapse:collapse;width:100%;min-width:850px}th,td{padding:13px;border-bottom:1px solid var(--border);text-align:left;font-size:13px}th{background:#fafafa;color:var(--muted);font-size:11px;text-transform:uppercase;position:sticky;top:0}
.map-layout{display:grid;grid-template-columns:330px 1fr;gap:18px}.map-side{height:calc(100vh - 145px);display:flex;flex-direction:column}.map-side>input,.map-side>select{margin-bottom:9px}.map-unit-list{overflow:auto;display:grid;gap:7px}.map-list-item{border:1px solid var(--border);border-radius:11px;padding:11px;cursor:pointer}.map-list-item:hover{border-color:var(--pink);background:var(--pink-soft)}
.map-card{padding:0;overflow:hidden;position:relative;height:calc(100vh - 145px)}#map{width:100%;height:100%;background:#edf0f2}.map-error{position:absolute;inset:0;display:grid;place-content:center;text-align:center;padding:30px;background:#f4f5f7}.map-error span{color:var(--muted);margin-top:8px}
.data-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.warning-card{grid-column:1/-1;background:#fffaf0}.drop-zone{margin-top:20px;border:2px dashed #f0aac2;border-radius:15px;padding:30px;display:grid;place-items:center;text-align:center;background:var(--pink-soft);cursor:pointer}.drop-zone input{display:none}.drop-zone span{font-size:12px;color:var(--muted);margin-top:8px}.stack-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.modal-backdrop{position:fixed;inset:0;background:rgba(22,25,30,.62);z-index:100;display:grid;place-items:center;padding:20px}.modal{width:min(880px,100%);max-height:92vh;overflow:auto;background:white;border-radius:20px;padding:23px;box-shadow:0 30px 90px rgba(0,0,0,.25)}.modal-head{display:flex;justify-content:space-between;gap:20px}.modal-head h2{margin:0}.modal-head p{margin:5px 0 0;color:var(--muted)}
.form-section{margin-top:22px;padding-top:20px;border-top:1px solid var(--border)}.form-section h3{font-size:15px;margin:0 0 13px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
.address-field{position:relative;margin-bottom:12px}.suggestions{position:absolute;top:69px;left:0;right:0;background:white;border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 45px rgba(0,0,0,.15);z-index:20;overflow:hidden}.suggestion{padding:12px;border-bottom:1px solid var(--border);cursor:pointer;font-size:13px}.suggestion:hover{background:var(--pink-soft)}
.drawer{position:fixed;inset:0;z-index:110}.drawer-overlay{position:absolute;inset:0;background:rgba(22,25,30,.45)}.drawer-panel{position:absolute;right:0;top:0;bottom:0;width:min(480px,92vw);background:white;padding:25px;overflow:auto;box-shadow:-20px 0 55px rgba(0,0,0,.18)}.drawer-close{position:absolute;right:18px;top:18px}.detail-logo{width:110px;margin-bottom:22px}.detail-header h2{margin:0 0 8px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.detail-item{background:#f7f8fa;padding:12px;border-radius:11px}.detail-item span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;font-weight:800;margin-bottom:5px}.detail-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}
.search-modal{position:fixed;inset:0;background:rgba(20,22,27,.58);z-index:120;display:grid;place-items:start center;padding-top:11vh}.search-box{width:min(680px,92vw);background:white;border-radius:18px;padding:16px;box-shadow:0 30px 90px rgba(0,0,0,.28)}.search-box input{font-size:18px;padding:15px}.search-result{padding:12px;border-bottom:1px solid var(--border);cursor:pointer}.search-result:hover{background:var(--pink-soft)}.search-box>small{display:block;text-align:right;color:var(--muted);margin-top:9px}
.toast{position:fixed;right:22px;bottom:22px;z-index:150;background:#25282e;color:white;padding:13px 16px;border-radius:11px;box-shadow:var(--shadow)}
.mobile-only{display:none}
@media(max-width:1150px){.metric-grid{grid-template-columns:repeat(3,1fr)}.unit-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.span-2{grid-row:auto}.filters{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.app-shell{display:block}.sidebar{position:fixed;left:-270px;transition:.2s}.sidebar.open{left:0}.main{padding:17px}.mobile-only{display:inline-grid}.topbar{align-items:flex-start}.top-actions{flex-direction:column}.search-trigger kbd{display:none}.metric-grid{grid-template-columns:repeat(2,1fr)}.unit-grid{grid-template-columns:1fr}.map-layout{grid-template-columns:1fr}.map-side{height:350px}.map-card{height:470px}.data-grid{grid-template-columns:1fr}.warning-card{grid-column:auto}.form-grid{grid-template-columns:1fr}}
.status-pill.building{background:#fff4d6;color:#9a6500}.dot.building{background:#e7ad27}.metric.warning{border-top:3px solid #e7ad27}
.connection-badge{display:block;padding:7px 10px;border-radius:8px;font-size:11px}.connection-badge.online{background:#e8f7ef;color:#137c4b}.connection-badge.offline{background:#fdeaea;color:#a32d2d}
.loading-state{position:fixed;inset:auto 22px 22px auto;z-index:9999;background:#151515;color:#fff;padding:12px 18px;border-radius:10px;box-shadow:0 8px 30px #0003}.toast.error{background:#9f2323}textarea{font:inherit;resize:vertical}
.section-help{margin:-5px 0 14px;color:var(--muted);font-size:13px}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.photo-card{border:1px solid var(--border);border-radius:14px;padding:12px;background:#fff}
.photo-card>strong{display:block;margin-bottom:10px}
.photo-preview{height:150px;border:1px dashed var(--border);border-radius:11px;background:#f7f8fa;display:grid;place-items:center;overflow:hidden;color:var(--muted);font-size:13px}
.photo-preview img{width:100%;height:100%;object-fit:cover;display:block}
.photo-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.photo-actions .btn{font-size:12px;padding:8px 10px}
.danger-outline{border-color:#e5a2a2!important;color:#b42323!important;background:#fff!important}
.detail-photos{margin-top:22px;padding-top:18px;border-top:1px solid var(--border)}
.detail-photos h3{margin:0 0 12px}
.detail-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.detail-photo-grid a{position:relative;display:block;height:125px;border-radius:12px;overflow:hidden;background:#f2f3f5}
.detail-photo-grid img{width:100%;height:100%;object-fit:cover}
.detail-photo-grid span{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.65);color:#fff;padding:4px 7px;border-radius:7px;font-size:11px}
@media(max-width:760px){.photo-grid,.detail-photo-grid{grid-template-columns:1fr}.photo-preview{height:190px}}

/* v0.9.4 — autenticação e usuários */
.auth-screen{position:fixed;inset:0;z-index:1000;background:linear-gradient(135deg,#fff 0%,#fff4f8 55%,#f7f7fa 100%);display:grid;place-items:center;padding:24px}
.auth-card{width:min(430px,100%);background:#fff;border:1px solid var(--border);border-radius:24px;box-shadow:0 25px 70px rgba(30,20,28,.14);padding:34px;display:grid;gap:20px}
.auth-card>img{width:170px;max-height:75px;object-fit:contain;object-position:left}.auth-card h1{margin:0 0 5px;font-size:28px}.auth-card p{margin:0;color:var(--muted)}
.auth-form{display:grid;gap:14px}.auth-submit{width:100%;justify-content:center;padding:13px}.link-btn{border:0;background:none;color:var(--pink);font-weight:700;padding:0;text-align:left}.auth-card small{min-height:18px;color:var(--muted)}
.user-box{background:#f8f8fa;padding:12px;border-radius:13px;display:grid;gap:3px}.user-box strong{font-size:13px}.user-box span{font-size:11px;color:var(--muted);text-transform:uppercase;font-weight:800}
.top-user{display:flex;align-items:center;gap:8px}.top-user span{font-size:13px;font-weight:700;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.version-label{opacity:.75}
.users-table-wrap{box-shadow:none;border:0;margin-top:12px}.role-chip{display:inline-flex;padding:5px 9px;border-radius:999px;background:var(--pink-soft);color:var(--pink);font-size:11px;font-weight:800}.modal-small{max-width:680px}.form-note{color:var(--muted);font-size:12px}.master-only.hidden{display:none!important}
@media(max-width:780px){.top-user span{display:none}.auth-card{padding:25px}.users-table-wrap{overflow:auto}}

/* v0.9.4.1 — primeiro acesso sem CLI */
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;background:#f4f5f7;border-radius:12px;margin:6px 0 14px}.auth-tab{border:0;background:transparent;padding:10px;border-radius:9px;font-weight:700;color:#667085;cursor:pointer}.auth-tab.active{background:#fff;color:#111827;box-shadow:0 1px 4px rgba(16,24,40,.10)}.auth-help{display:block;text-align:center;color:#667085;line-height:1.4}.status-chip{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700;white-space:nowrap}.active-access{background:#eaf8ef;color:#1d7a43}.pending-access{background:#fff5db;color:#946200}


/* v1.0.1 — usabilidade, auditoria e ficha cadastral */
.sidebar-overlay{position:fixed;inset:0;background:rgba(22,25,30,.48);z-index:29}
.sidebar-close{position:absolute;right:12px;top:12px}.menu-open{overflow:hidden}
.detail-section{margin-top:22px;padding-top:18px;border-top:1px solid var(--border)}
.detail-section h3{margin:0 0 12px;font-size:15px}.detail-section:first-of-type{border-top:0;padding-top:0}
.detail-item strong{overflow-wrap:anywhere}.location-modal{max-width:820px}.location-adjust-map{height:480px;margin-top:20px;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:#edf0f2}
@media(max-width:780px){.sidebar{width:270px;left:-285px;box-shadow:18px 0 45px rgba(0,0,0,.18)}.sidebar.open{left:0}.sidebar-overlay:not(.hidden){display:block}.drawer-panel{width:100vw}.detail-grid{grid-template-columns:1fr}.detail-actions .btn{width:100%;justify-content:center;text-align:center}.location-adjust-map{height:56vh;min-height:330px}.modal-actions{flex-wrap:wrap}.modal-actions .btn{flex:1}.topbar>div:first-child{display:grid;grid-template-columns:auto 1fr;column-gap:10px}.topbar>div:first-child p{grid-column:2}.topbar h1{align-self:center}}
