:root{--bg:#f3f6fa;--card:#fff;--text:#172033;--muted:#64748b;--border:#d8e0ea;--primary:#1d4ed8;--primary-dark:#1e40af;--danger:#b91c1c;--ok:#15803d;--review:#b45309;--shadow:0 12px 32px rgba(15,23,42,.08)}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}body{margin:0}button,input,select,textarea{font:inherit}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#dbeafe 0,#f8fafc 45%,#e2e8f0 100%)}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--border);border-radius:22px;padding:30px;box-shadow:0 30px 80px rgba(15,23,42,.16)}.login-card h1{margin:.2rem 0}.login-card label{display:grid;gap:7px;margin:16px 0;font-weight:750}.brand-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:#0f172a;color:#fff;font-weight:900;font-size:1.25rem}.eyebrow{margin:14px 0 0;text-transform:uppercase;letter-spacing:.11em;font-size:.72rem;font-weight:900;color:var(--primary)}.wide{width:100%}.form-error{padding:10px 12px;border-radius:10px;background:#fee2e2;color:#991b1b}.topbar{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:minmax(190px,1fr) minmax(190px,260px) auto auto;align-items:center;gap:16px;min-height:78px;padding:10px clamp(14px,3vw,38px);background:#0f172a;color:#fff;box-shadow:0 6px 24px rgba(2,6,23,.25)}.brand{display:flex;flex-direction:column}.brand strong{font-size:1.05rem}.brand span{font-size:.76rem;color:#cbd5e1}.tenant-switcher{display:grid;gap:4px}.tenant-switcher label{font-size:.68rem;text-transform:uppercase;color:#94a3b8;font-weight:850}.tenant-switcher select{background:#1e293b;color:#fff;border-color:#475569}.topbar nav{display:flex;gap:7px;flex-wrap:wrap}.nav-button,.nav-link{border:1px solid #334155;background:transparent;color:#e2e8f0;padding:8px 11px;border-radius:9px;cursor:pointer;font-weight:750;text-decoration:none}.nav-button.active,.nav-button:hover,.nav-link:hover{background:#fff;color:#0f172a;border-color:#fff}.user-box{display:flex;align-items:center;gap:9px;font-size:.82rem}.link-plain{border:0;background:transparent;color:#93c5fd;cursor:pointer;padding:4px}main{max-width:1660px;margin:0 auto;padding:26px clamp(12px,3vw,38px) 64px}.view{display:none}.view.active{display:block}.view-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:8px 0 18px}.view-heading h1{margin:0;font-size:clamp(1.4rem,2vw,2.05rem)}.view-heading p{margin:5px 0 0;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.stats article,.panel-card{background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}.stats article{padding:18px}.stats span{display:block;font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.stats strong{display:block;font-size:1.9rem;margin-top:4px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel-card{padding:20px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.panel-heading h2{font-size:1.05rem;margin:0}.group-summary{display:grid;gap:10px}.group-summary article{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px;border:1px solid var(--border);border-radius:11px}.group-summary strong{font-size:1.15rem}.recent-list{display:grid;gap:9px}.recent-item{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding:9px 0}.recent-item:last-child{border:0}.map-frame-wrap{height:calc(100vh - 190px);min-height:540px;background:var(--card);border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}#mapFrame{width:100%;height:100%;border:0;background:#e2e8f0}.map-tools,.table-actions,.form-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.filter-card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:20px;box-shadow:var(--shadow)}.filter-section{border:1px solid var(--border);border-radius:14px;padding:14px;margin-bottom:14px}.filter-section summary{font-weight:850;cursor:pointer;margin:-2px 0 12px}.filter-section:not([open]) summary{margin-bottom:0}.quick-filter>label{display:block;font-weight:800;margin-bottom:7px}.search-row{display:flex;gap:10px}.search-row input{flex:1}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label,.table-actions label,.compact-form label,.pole-form label{display:grid;gap:6px;font-size:.82rem;font-weight:750;color:#334155}.full{grid-column:1/-1}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:10px 11px;background:#fff;color:#111827}select[multiple]{min-height:105px}textarea{resize:vertical}small{color:var(--muted);font-weight:500}.button{border:0;border-radius:10px;padding:10px 14px;font-weight:820;cursor:pointer}.button.primary{background:var(--primary);color:#fff}.button.primary:hover{background:var(--primary-dark)}.button.secondary{background:#334155;color:#fff}.button.ghost{background:#eef2f7;color:#1e293b}.button.danger{background:#b91c1c;color:#fff}.button:disabled{opacity:.55;cursor:not-allowed}.table-shell{overflow:auto;background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse;min-width:1240px}th,td{border-bottom:1px solid #e8edf2;padding:11px;vertical-align:top;text-align:left}th{position:sticky;top:0;background:#f8fafc;color:#475569;font-size:.74rem;text-transform:uppercase;letter-spacing:.035em;z-index:1}tbody tr:hover{background:#f8fbff}.thumb{width:120px;height:82px;object-fit:cover;border-radius:9px;background:#e2e8f0;cursor:pointer}.file-cell{max-width:230px}.file-cell strong{display:block;word-break:break-word}.muted{color:var(--muted);font-size:.82rem}.ocr-snippet{display:block;max-width:260px;max-height:86px;overflow:auto;white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.73rem;background:#f8fafc;border-radius:8px;padding:8px}.status{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:.7rem;font-weight:900}.status.OK{background:#dcfce7;color:var(--ok)}.status.REVISAO{background:#ffedd5;color:var(--review)}.status.ERRO{background:#fee2e2;color:var(--danger)}.row-actions{display:flex;flex-direction:column;gap:6px}.link-button{border:0;background:#e2e8f0;border-radius:8px;padding:7px 9px;cursor:pointer;text-align:center;font-weight:720;color:#0f172a;text-decoration:none;font-size:.76rem}.link-button.danger{background:#fee2e2;color:#991b1b}.pagination{display:flex;justify-content:center;gap:6px;margin-top:18px;flex-wrap:wrap}.pagination button{border:1px solid var(--border);background:#fff;border-radius:8px;padding:8px 11px;cursor:pointer}.pagination button.active{background:#0f172a;color:#fff}.management-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}.compact-form{display:grid;gap:11px;border-bottom:1px solid var(--border);padding-bottom:18px;margin-bottom:14px}.management-list{display:grid;gap:8px}.management-item{border:1px solid var(--border);border-radius:11px;padding:11px}.management-item header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.management-item h3{margin:0;font-size:.94rem}.management-item p{margin:5px 0 0}.badge{display:inline-flex;padding:4px 7px;border-radius:999px;background:#e0e7ff;color:#3730a3;font-size:.68rem;font-weight:850}dialog{border:0;border-radius:18px;max-width:min(1080px,95vw);width:100%;padding:24px;box-shadow:0 25px 70px rgba(0,0,0,.35)}dialog::backdrop{background:rgba(15,23,42,.76)}.dialog-close{position:absolute;right:12px;top:10px;border:0;background:#e2e8f0;border-radius:999px;width:36px;height:36px;font-size:1.4rem;cursor:pointer}.dialog-grid{display:grid;grid-template-columns:minmax(280px,1.2fr) minmax(270px,.8fr);gap:20px}.dialog-grid img{width:100%;max-height:75vh;object-fit:contain;background:#0f172a;border-radius:12px}.detail-list{display:grid;grid-template-columns:125px 1fr;gap:8px;font-size:.86rem}.detail-list dt{font-weight:800}.detail-list dd{margin:0;word-break:break-word}.raw-box{white-space:pre-wrap;max-height:260px;overflow:auto;background:#f1f5f9;padding:12px;border-radius:10px;font-family:ui-monospace,monospace;font-size:.78rem}.pole-form h2{margin-top:0}.toast{position:fixed;right:20px;bottom:20px;z-index:80;background:#0f172a;color:#fff;padding:12px 16px;border-radius:10px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translateY(12px);transition:.2s}.toast.show{opacity:1;transform:none}.empty{text-align:center;padding:40px!important;color:var(--muted)}.error-text{color:#dc2626!important;font-weight:700}[hidden]{display:none!important}@media(max-width:1200px){.topbar{grid-template-columns:1fr 240px}.topbar nav{grid-column:1/-1}.user-box{position:absolute;right:20px;top:15px}.management-grid{grid-template-columns:1fr 1fr}}@media(max-width:900px){.stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.management-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:repeat(2,1fr)}.dialog-grid{grid-template-columns:1fr}.view-heading{align-items:flex-start;flex-direction:column}.map-frame-wrap{height:70vh}.topbar{display:flex;align-items:flex-start;flex-direction:column}.tenant-switcher{width:100%}.user-box{position:static}}@media(max-width:600px){main{padding-inline:10px}.stats,.form-grid,.two-cols{grid-template-columns:1fr}.full{grid-column:auto}.search-row{flex-direction:column}.topbar nav{width:100%}.nav-button{flex:1}.thumb{width:95px;height:68px}}@media(prefers-color-scheme:dark){:root{--bg:#0b1220;--card:#111827;--text:#e5e7eb;--muted:#94a3b8;--border:#293548;--shadow:none}.login-screen{background:#0b1220}.login-card,input,select,textarea{background:#0f172a;color:#e5e7eb;border-color:#334155}.login-card,.panel-card,.filter-card,.table-shell,.stats article{background:var(--card)}th{background:#182235;color:#cbd5e1}tbody tr:hover{background:#162033}.ocr-snippet,.raw-box{background:#0f172a}.form-grid label,.table-actions label,.compact-form label,.pole-form label{color:#cbd5e1}.button.ghost,.link-button{background:#253247;color:#e5e7eb}dialog{background:#111827;color:#e5e7eb}.dialog-close{background:#334155;color:#fff}.management-item{background:#0f172a}}

/* v6.2.1 — isolamento por empresa e caixas/derivações */
.stats{grid-template-columns:repeat(6,minmax(0,1fr))}
.checkbox-card{border:1px solid var(--border);border-radius:12px;padding:12px;background:#f8fafc}
.checkbox-card>span{display:flex;align-items:center;gap:10px;font-weight:850}
.checkbox-card input[type="checkbox"]{width:20px;height:20px;flex:0 0 auto;margin:0}
.boxes-section{margin:18px 0;padding:16px;border:1px solid var(--border);border-radius:14px;background:#f8fafc}
.boxes-heading,.box-row-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.boxes-heading h3{margin:0}.boxes-heading p{margin:4px 0 0}
.boxes-list{display:grid;gap:12px;margin-top:14px}
.box-row{padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--card)}
.box-row-heading{margin-bottom:12px}.box-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.box-summary{display:inline-flex;margin-top:8px;padding:4px 8px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:.7rem;font-weight:850}
.detail-boxes{display:grid;gap:10px;margin:18px 0}.detail-boxes h3{margin:0}.detail-boxes article{border:1px solid var(--border);border-radius:11px;padding:12px}.detail-boxes article header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
@media(max-width:1300px){.stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.box-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-color-scheme:dark){.checkbox-card,.boxes-section{background:#0f172a}.box-summary{background:#1e3a5f;color:#bfdbfe}}

/* v6.3.0 — traçados, KMZ e métricas geográficas */
.button.trace{background:#0f766e;color:#fff}.button.trace:hover{background:#115e59}
.filter-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.filter-metrics article{padding:14px;border:1px solid var(--border);border-radius:12px;background:#f8fafc}
.filter-metrics span{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}
.filter-metrics strong{display:block;margin-top:4px;font-size:1.35rem}
#kmzImportForm h3{margin:0;font-size:.95rem}
#traceDetailContent h2{margin-top:0}
.trace-swatch{display:inline-block;width:18px;height:5px;border-radius:999px;vertical-align:middle;margin-right:7px}
@media(max-width:760px){.filter-metrics{grid-template-columns:1fr}}
@media(prefers-color-scheme:dark){.filter-metrics article{background:#0f172a}}

/* Poste sem foto */
.thumb.no-photo { display:inline-flex;align-items:center;justify-content:center;min-width:72px;min-height:54px;border:1px dashed #94a3b8;background:#f8fafc;color:#475569;border-radius:8px;font-size:.78rem;cursor:pointer; }
.photo-placeholder { min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border:1px dashed #94a3b8;border-radius:12px;background:#f8fafc;color:#475569;text-align:center;padding:2rem; }
.photo-placeholder span { font-size:.9rem;max-width:280px; }

/* v6.5.0 — planos e cotas por empresa */
.plan-usage-card{margin-bottom:18px}.plan-usage-card .panel-heading{margin-bottom:10px}.plan-usage-card .panel-heading p{margin:4px 0 0}
.plan-usage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.plan-usage-grid article{padding:14px;border:1px solid var(--border);border-radius:12px;background:#f8fafc}.plan-usage-grid span{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}.plan-usage-grid strong{display:block;margin:4px 0;font-size:1.35rem}.plan-usage-grid .quota-hit{color:var(--danger)}
.plan-edit-grid,.company-plan-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.plan-edit-grid .full,.company-plan-row .full{grid-column:1/-1}.management-item .inline-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.management-item .quota-line{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
@media(max-width:760px){.plan-usage-grid,.plan-edit-grid,.company-plan-row{grid-template-columns:1fr}.plan-edit-grid .full,.company-plan-row .full{grid-column:auto}}
@media(prefers-color-scheme:dark){.plan-usage-grid article{background:#0f172a}}


/* v6.6.0 — layout visual de caixas e portas */
.box-layout-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:4px}.box-layout-summary{font-size:.78rem;color:var(--muted);font-weight:700}
.box-layout-readonly{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}.box-layout-readonly>summary{cursor:pointer;font-weight:850;color:var(--primary)}
.box-layout-grid{--layout-columns:4;display:grid;grid-template-columns:repeat(var(--layout-columns),minmax(90px,1fr));gap:8px;margin-top:12px}.box-port{min-height:74px;padding:9px;border:1px solid var(--border);border-radius:10px;background:#f8fafc;display:flex;flex-direction:column;gap:2px}.box-port strong{font-size:.8rem}.box-port span{font-size:.66rem;font-weight:900}.box-port small{font-size:.66rem;overflow-wrap:anywhere}.box-port.status-ocupada{background:#dcfce7;border-color:#86efac}.box-port.status-reservada{background:#fef3c7;border-color:#fcd34d}.box-port.status-defeito{background:#fee2e2;border-color:#fca5a5}.box-layout-empty{margin-top:10px}
.box-layout-dialog{max-width:min(1400px,96vw)}.box-layout-editor h2{margin-top:0}.layout-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:12px 0 16px}.layout-toolbar>div:first-child{display:flex;flex-direction:column}.layout-toolbar .inline-actions{display:flex;gap:8px;flex-wrap:wrap}
.box-layout-editor-grid{--layout-columns:4;display:grid;grid-template-columns:repeat(var(--layout-columns),minmax(180px,1fr));gap:10px;max-height:62vh;overflow:auto;padding:4px}.layout-port-editor{border:1px solid var(--border);border-radius:11px;padding:10px;background:#f8fafc}.layout-port-editor header{display:flex;align-items:center;justify-content:space-between;gap:7px}.layout-port-editor header select{width:auto;min-width:105px;padding:7px}.layout-port-editor details{margin-top:8px}.layout-port-editor summary{cursor:pointer;font-size:.74rem;font-weight:800}.layout-port-editor details label{display:block;margin-top:7px;font-size:.72rem}.layout-port-editor input,.layout-port-editor textarea{margin-top:3px;padding:7px;font-size:.75rem}
@media(max-width:900px){.box-layout-grid,.box-layout-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.layout-toolbar{flex-direction:column}}
@media(max-width:560px){.box-layout-grid,.box-layout-editor-grid{grid-template-columns:1fr!important}}
@media(prefers-color-scheme:dark){.box-port,.layout-port-editor{background:#0f172a}.box-port.status-ocupada{background:#123524;border-color:#166534}.box-port.status-reservada{background:#3a2d0b;border-color:#a16207}.box-port.status-defeito{background:#3b1717;border-color:#991b1b}}

/* v6.7.0 — assinatura, cobrança e bloqueio por pagamento */
.billing-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#dbeafe 0,#f8fafc 48%,#e2e8f0 100%)}
.billing-card{width:min(520px,100%);background:var(--card);border:1px solid var(--border);border-radius:22px;padding:30px;box-shadow:0 30px 80px rgba(15,23,42,.16)}
.billing-card h1{margin:.3rem 0}.billing-card>p{color:var(--muted);line-height:1.55}
.billing-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}
.billing-summary>div{border:1px solid var(--border);border-radius:12px;padding:12px;background:#f8fafc}
.billing-summary span{display:block;font-size:.68rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.billing-summary strong{display:block;margin-top:4px;font-size:.96rem;overflow-wrap:anywhere}
.billing-card .button.wide{margin-top:9px}.billing-back{display:block;margin:14px auto 0;border:0;background:transparent;color:var(--primary);font-weight:750;cursor:pointer}
.billing-status-active{color:var(--ok)}.billing-status-suspended,.billing-status-canceled{color:var(--danger)}.billing-status-pending{color:var(--review)}
@media(max-width:560px){.billing-summary{grid-template-columns:1fr}.billing-card{padding:22px}}
@media(prefers-color-scheme:dark){.billing-summary>div{background:#0f172a}}

/* v6.7.1 - contratação e upgrade de planos */
.upgrade-card{margin-top:18px}
.upgrade-plans-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.upgrade-plan{display:flex;flex-direction:column;gap:14px;padding:18px;border:1px solid var(--line,#d9e2ec);border-radius:16px;background:var(--panel,#fff)}
.upgrade-plan.current{outline:2px solid rgba(37,99,235,.18);border-color:#7aa7ef}
.upgrade-plan header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.upgrade-plan h3{margin:0 0 5px}
.upgrade-plan p{margin:0}
.upgrade-price{font-size:1.25rem}
.upgrade-plan .wide{margin-top:auto;width:100%}

/* ==========================================================================\n   PosteGrid UI Refresh — interface only\n   Mantem IDs, formularios e contratos JS/API existentes.\n   ========================================================================== */
:root{
  --pg-blue:#1463ea;
  --pg-blue-strong:#0758df;
  --pg-blue-soft:#eaf2ff;
  --pg-violet:#7c3aed;
  --pg-green:#22a447;
  --pg-orange:#f28a22;
  --pg-cyan:#0e9f9a;
  --pg-ink:#15233b;
  --pg-muted:#6f7f96;
  --pg-line:#e4eaf1;
  --pg-surface:#ffffff;
  --pg-canvas:#f5f7fb;
  --pg-sidebar:232px;
  --bg:var(--pg-canvas);
  --card:var(--pg-surface);
  --text:var(--pg-ink);
  --muted:var(--pg-muted);
  --border:var(--pg-line);
  --primary:var(--pg-blue);
  --primary-dark:var(--pg-blue-strong);
  --shadow:0 10px 28px rgba(30,55,90,.07);
}
html{background:var(--pg-canvas);color-scheme:light}
body{background:var(--pg-canvas);color:var(--pg-ink);min-height:100vh}
body::selection{background:#cfe0ff;color:#0d3577}

/* Login e bloqueio de assinatura */
.login-screen,.billing-screen{
  background:
    radial-gradient(circle at 17% 18%,rgba(20,99,234,.11),transparent 32%),
    radial-gradient(circle at 88% 82%,rgba(124,58,237,.08),transparent 30%),
    #f7f9fd;
}
.login-card,.billing-card{
  position:relative;overflow:hidden;background:#fff;border:1px solid #e1e8f0;
  border-radius:24px;padding:34px;box-shadow:0 26px 70px rgba(36,60,92,.14)
}
.login-card::before,.billing-card::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,var(--pg-blue),#57a0ff,var(--pg-violet))}
.brand-mark{width:58px;height:58px;border-radius:18px;background:linear-gradient(145deg,#1566ef,#0b4fc7);box-shadow:0 12px 28px rgba(20,99,234,.24);font-size:0}
.brand-mark::before{content:"PG";font-size:1.02rem;letter-spacing:-.04em;color:#fff}
.login-card h1{font-size:1.55rem;letter-spacing:-.025em;color:#14233b}
.login-card input,.billing-card input{min-height:46px}

/* Sidebar principal */
#appShell{min-height:100vh}
.topbar{
  position:fixed;inset:0 auto 0 0;z-index:50;width:var(--pg-sidebar);height:100vh;min-height:0;
  display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0 14px 16px;
  background:#fff;color:var(--pg-ink);border-right:1px solid var(--pg-line);box-shadow:none;overflow-y:auto
}
.brand{position:relative;display:flex;justify-content:center;min-height:82px;padding:19px 8px 17px 54px;border-bottom:1px solid #eef2f7}
.brand::before{content:"";position:absolute;left:10px;top:22px;width:30px;height:34px;border-left:4px solid var(--pg-blue);border-right:4px solid var(--pg-blue);border-radius:3px;background:linear-gradient(90deg,transparent 42%,var(--pg-blue) 43% 57%,transparent 58%)}
.brand::after{content:"";position:absolute;left:4px;top:35px;width:42px;height:3px;background:var(--pg-blue);box-shadow:0 -9px 0 -1px var(--pg-blue),0 9px 0 -1px var(--pg-blue)}
.brand strong{font-size:1rem;letter-spacing:-.025em;color:#10213c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand span{margin-top:2px;color:#8b98aa;font-size:.69rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tenant-switcher{order:3;margin-top:auto;padding:14px 10px 10px;border-top:1px solid #eef2f7}
.tenant-switcher label{color:#8290a3;font-size:.65rem;letter-spacing:.07em}
.tenant-switcher select{margin-top:5px;background:#f8faff;color:#27405f;border:1px solid #dfe7f1;border-radius:10px;padding:9px 10px;font-size:.77rem;font-weight:750}
.topbar nav{order:2;display:flex;flex-direction:column;gap:5px;width:100%;margin-top:16px}
.nav-button,.nav-link{
  position:relative;display:flex;align-items:center;width:100%;min-height:44px;padding:10px 12px 10px 42px;
  border:0;border-radius:10px;background:transparent;color:#526178;text-align:left;font-size:.82rem;font-weight:720;transition:.16s ease
}
.nav-button::before{position:absolute;left:14px;top:50%;translate:0 -50%;display:grid;place-items:center;width:18px;height:18px;color:#6d7f97;font-size:17px;font-weight:500}
.nav-button[data-view="dashboard"]::before{content:"⌂"}
.nav-button[data-view="map"]::before{content:"◇";transform:rotate(45deg)}
.nav-button[data-view="search"]::before{content:"⌕";font-size:21px}
.nav-button[data-view="table"]::before{content:"│";border:2px solid currentColor;border-radius:3px;font-size:0}
.nav-button[data-view="management"]::before{content:"⚙";font-size:15px}
.nav-button:hover{background:#f4f7fb;color:#1f4c93;border:0}
.nav-button.active{background:var(--pg-blue-soft);color:#0759dc;border:0;box-shadow:inset 3px 0 0 #1b69eb}
.nav-button.active::before{color:#0759dc}
.user-box{order:4;display:grid;grid-template-columns:1fr auto;align-items:center;gap:7px;margin-top:2px;padding:12px 10px;border-top:1px solid #eef2f7;color:#40516a;font-size:.72rem}
.user-box::before{content:"";grid-row:1;grid-column:1;width:31px;height:31px;border-radius:50%;background:linear-gradient(145deg,#dfeaff,#f1f5fa);box-shadow:inset 0 0 0 1px #d8e2ef}
.user-box #userName{grid-row:1;grid-column:1;margin-left:40px;display:block;max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:780}
.user-box .link-plain{grid-row:1;grid-column:2;color:#7c8899;font-size:.69rem;font-weight:750}
.user-box .link-plain:hover{color:#d23636}

/* Barra de trabalho */
.workspace-topbar{
  position:sticky;top:0;z-index:40;margin-left:var(--pg-sidebar);height:72px;padding:11px 28px;
  display:flex;align-items:center;justify-content:space-between;gap:18px;background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--pg-line);backdrop-filter:blur(12px)
}
.workspace-search{display:flex;align-items:center;gap:10px;width:min(460px,48vw);height:45px;padding:0 12px;border:1px solid #dce4ee;border-radius:14px;background:#fff;color:#748297;text-align:left;cursor:pointer;box-shadow:0 2px 8px rgba(30,55,90,.03)}
.workspace-search:hover{border-color:#bfd2ed;box-shadow:0 5px 18px rgba(30,55,90,.07)}
.workspace-search-icon{position:relative;width:17px;height:17px;border:2px solid #65758c;border-radius:50%}
.workspace-search-icon::after{content:"";position:absolute;width:7px;height:2px;background:#65758c;right:-5px;bottom:-2px;rotate:45deg;border-radius:2px}
.workspace-search kbd{margin-left:auto;padding:4px 6px;border:1px solid #e0e6ee;border-bottom-width:2px;border-radius:6px;background:#f8fafc;color:#8a97a8;font:600 .63rem/1 ui-monospace,monospace}
.workspace-actions{display:flex;align-items:center;gap:10px}
.workspace-map-link{height:42px;padding:0 14px;border:1px solid #dce4ee;border-radius:11px;background:#fff;color:#314764;font-weight:760;font-size:.77rem;cursor:pointer}
.workspace-map-link:hover{background:#f7faff;border-color:#c7d8ef;color:#0759dc}
.workspace-status{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;background:#f4f8ff;color:#52657f;font-size:.68rem;font-weight:760;white-space:nowrap}
.workspace-status i{width:7px;height:7px;border-radius:50%;background:#22a447;box-shadow:0 0 0 3px #dcf6e3}

/* Área de conteúdo */
main{max-width:none;margin:0 0 0 var(--pg-sidebar);padding:26px 28px 60px;min-height:calc(100vh - 72px)}
.view-heading{align-items:center;margin:2px 0 20px}
.view-heading h1{font-size:1.45rem;letter-spacing:-.03em;color:#162640}
.view-heading p{margin-top:4px;font-size:.78rem;color:#7b899c}

/* Botões */
.button{min-height:39px;border-radius:10px;padding:9px 14px;box-shadow:none;font-size:.77rem;font-weight:780;transition:.14s ease}
.button.primary{background:linear-gradient(180deg,#1c6df0,#0e5ee3);box-shadow:0 6px 16px rgba(20,99,234,.18)}
.button.primary:hover{background:#0759dc;translate:0 -1px}
.button.secondary{background:#fff;color:#42536a;border:1px solid #d7e0eb}
.button.secondary:hover,.button.ghost:hover{background:#f5f8fc;color:#1c5fc0}
.button.ghost{background:#f4f7fb;color:#526178;border:1px solid transparent}
.button.trace{background:#7c3aed;color:#fff;box-shadow:0 6px 16px rgba(124,58,237,.14)}
.button.trace:hover{background:#6d28d9}

/* Cards de indicadores */
.stats{grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px;margin-bottom:18px}
.stats article{position:relative;min-height:116px;padding:20px 16px 16px 70px;border:1px solid #e3e9f1;border-radius:15px;box-shadow:0 7px 20px rgba(39,63,94,.055);overflow:hidden}
.stats article::before{position:absolute;left:17px;top:20px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:#fff;font-size:17px;font-weight:900;box-shadow:0 7px 15px rgba(33,77,142,.15)}
.stats article:nth-child(1)::before{content:"†";background:linear-gradient(145deg,#3183f6,#0b5ee3)}
.stats article:nth-child(2)::before{content:"◎";background:linear-gradient(145deg,#50bc70,#24a248)}
.stats article:nth-child(3)::before{content:"⇥";background:linear-gradient(145deg,#9a5cf4,#7432e0)}
.stats article:nth-child(4)::before{content:"⌁";background:linear-gradient(145deg,#a552f1,#7937dc)}
.stats article:nth-child(5)::before{content:"↝";background:linear-gradient(145deg,#30b883,#149b68)}
.stats article:nth-child(6)::before{content:"!";background:linear-gradient(145deg,#f5ae45,#ed861b)}
.stats article:nth-child(7)::before{content:"↗";background:linear-gradient(145deg,#47a3f4,#2483dc)}
.stats article:nth-child(8)::before{content:"□";background:linear-gradient(145deg,#ff9a35,#ef7e0f)}
.stats article:nth-child(9)::before{content:"Y";background:linear-gradient(145deg,#29b6aa,#138c85)}
.stats span{color:#596980;font-size:.68rem;letter-spacing:0;text-transform:none;font-weight:720}
.stats strong{margin-top:5px;font-size:1.55rem;letter-spacing:-.035em;color:#13223a}

/* Painéis da dashboard */
.panel-card,.filter-card,.table-shell{border:1px solid #e2e8f0;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(30,55,90,.05)}
.panel-card{padding:18px}
.panel-heading h2{font-size:.95rem;color:#1d2e49}
.plan-usage-card{margin-bottom:16px}
.plan-usage-grid article,.filter-metrics article{background:#f8faff;border-color:#e4eaf2;border-radius:11px}
.plan-usage-grid span,.filter-metrics span{color:#7f8da0;text-transform:none;letter-spacing:0;font-weight:720}
.dashboard-grid{gap:16px}
.group-summary article{border-color:#e6ebf2;background:#fbfcfe}
.recent-item{color:#243853;border-color:#edf1f6;text-align:left}
.recent-item:hover{background:#f8faff}
.upgrade-plans-grid{gap:12px}
.upgrade-plan{border-color:#e3e9f1;border-radius:14px;background:#fff;box-shadow:0 4px 14px rgba(30,55,90,.035)}
.upgrade-plan.current{outline:0;border-color:#8fb5ec;box-shadow:0 0 0 3px rgba(20,99,234,.08)}

/* Mapa */
#view-map{position:relative}
#view-map .view-heading{position:relative;z-index:3;margin-bottom:12px}
.map-tools{padding:7px;border:1px solid #e1e7ef;border-radius:13px;background:#fff;box-shadow:0 7px 20px rgba(30,55,90,.06)}
#mapStatus{padding:0 8px;font-size:.68rem}
.map-frame-wrap{height:calc(100vh - 150px);min-height:610px;border-radius:17px;border:1px solid #dfe6ef;box-shadow:0 8px 24px rgba(27,55,94,.075);background:#eef3f8}
#mapFrame{background:#eef3f8}

/* Busca */
.filter-card{padding:18px}
.filter-metrics{gap:10px}
.filter-metrics article{padding:13px 15px}
.filter-section{border-color:#e5eaf1;border-radius:12px;background:#fcfdff}
.filter-section summary{color:#31445f;font-size:.82rem}
.quick-filter{background:#fff}
.search-row input{height:44px}

/* Formulários */
input,select,textarea{border:1px solid #d7e0eb;border-radius:9px;background:#fff;color:#1d2d45;outline:none;transition:border .14s,box-shadow .14s}
input:focus,select:focus,textarea:focus{border-color:#78a7ec;box-shadow:0 0 0 3px rgba(20,99,234,.09)}
.form-grid label,.table-actions label,.compact-form label,.pole-form label{color:#526279;font-size:.75rem;font-weight:720}
.checkbox-card,.boxes-section{background:#f8faff;border-color:#e1e8f1}

/* Tabela */
.table-shell{overflow:auto}
table{min-width:1160px}
th{background:#f7f9fc;color:#738196;border-bottom-color:#e3e9f0;font-size:.66rem}
td{border-bottom-color:#edf1f5;color:#324761;font-size:.78rem}
tbody tr:hover{background:#f8fbff}
.thumb{border-radius:9px;box-shadow:0 2px 7px rgba(30,55,90,.09)}
.link-button{background:#f1f5fa;color:#3e536f;border:1px solid #e1e7ef}
.link-button:hover{background:#eaf2ff;color:#0759dc}
.pagination button{background:#fff;border-color:#dce4ee;color:#4a5c75}
.pagination button.active{background:var(--pg-blue);border-color:var(--pg-blue);color:#fff}

/* Gestão */
.management-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.management-item{border-color:#e4eaf1;border-radius:11px;background:#fbfcfe}
.badge{background:#edf3ff;color:#255db2}

/* Diálogos */
dialog{background:#fff;color:#1d2d45;border-radius:20px;border:1px solid #dde5ee;padding:24px;box-shadow:0 30px 90px rgba(20,38,66,.28)}
dialog::backdrop{background:rgba(21,35,59,.55);backdrop-filter:blur(3px)}
.dialog-close{background:#f2f5f9;color:#6a788b}
.dialog-close:hover{background:#e9eef5;color:#283c57}
.raw-box,.ocr-snippet{background:#f7f9fc;color:#3b4e67}
.photo-placeholder,.thumb.no-photo{background:#f7f9fc;color:#607087}
.box-port,.layout-port-editor{background:#f8faff}

/* Corrige estilos escuros herdados quando o SO estiver em dark mode: a identidade desta UI e clara. */
@media(prefers-color-scheme:dark){
  :root{--bg:var(--pg-canvas);--card:#fff;--text:var(--pg-ink);--muted:var(--pg-muted);--border:var(--pg-line);--shadow:0 10px 28px rgba(30,55,90,.07)}
  html,body{background:var(--pg-canvas);color:var(--pg-ink)}
  .login-screen,.billing-screen{background:radial-gradient(circle at 17% 18%,rgba(20,99,234,.11),transparent 32%),radial-gradient(circle at 88% 82%,rgba(124,58,237,.08),transparent 30%),#f7f9fd}
  .login-card,.billing-card,.panel-card,.filter-card,.table-shell,.stats article,dialog{background:#fff;color:#1d2d45;border-color:#e1e8f0}
  input,select,textarea{background:#fff;color:#1d2d45;border-color:#d7e0eb}
  th{background:#f7f9fc;color:#738196}tbody tr:hover{background:#f8fbff}
  .ocr-snippet,.raw-box,.checkbox-card,.boxes-section,.plan-usage-grid article,.filter-metrics article,.box-port,.layout-port-editor{background:#f8faff;color:#3b4e67}
  .form-grid label,.table-actions label,.compact-form label,.pole-form label{color:#526279}
  .button.ghost,.link-button{background:#f1f5fa;color:#3e536f}
  .dialog-close{background:#f2f5f9;color:#6a788b}.management-item{background:#fbfcfe}
  .billing-summary>div{background:#f8faff}.box-summary{background:#dbeafe;color:#1d4ed8}
}

/* Responsividade */
@media(max-width:1380px){
  :root{--pg-sidebar:216px}
  .stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .workspace-status{display:none}
}
@media(max-width:1050px){
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .management-grid{grid-template-columns:1fr}
  .workspace-search{width:min(420px,55vw)}
}
@media(max-width:860px){
  :root{--pg-sidebar:0px}
  .topbar{position:static;width:100%;height:auto;display:flex;flex-direction:column;padding:10px 12px;background:#fff;border-right:0;border-bottom:1px solid var(--pg-line)}
  .brand{width:100%;min-height:62px;padding-top:10px;padding-bottom:10px}
  .brand::before{top:12px}.brand::after{top:25px}
  .topbar nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:8px;overflow-x:auto}
  .nav-button{justify-content:center;min-width:112px;padding:10px 8px 10px 31px;text-align:center}
  .nav-button::before{left:10px}
  .tenant-switcher{width:100%;margin-top:8px;border-top:0;padding:8px 10px}
  .user-box{width:100%;margin-top:0}
  .workspace-topbar{position:sticky;margin-left:0;padding:9px 12px;height:62px}
  main{margin-left:0;padding:20px 12px 50px}
  .workspace-search{width:100%}.workspace-actions{display:none}
  .map-frame-wrap{height:70vh;min-height:500px}
}
@media(max-width:620px){
  .stats,.form-grid,.two-cols,.plan-usage-grid{grid-template-columns:1fr}
  .stats article{min-height:100px}
  .dashboard-grid{grid-template-columns:1fr}
  .workspace-search kbd{display:none}
  .view-heading{align-items:flex-start}
  .map-tools{width:100%}
}

/* Ferramentas de coordenadas — painel flutuante e compacto */
.map-frame-wrap{position:relative}
.coordinate-float{position:absolute;z-index:8;top:12px;left:12px;width:min(430px,calc(100% - 24px));border:1px solid rgba(203,213,225,.92);border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 12px 32px rgba(15,23,42,.16);backdrop-filter:blur(12px);overflow:hidden;transition:width .16s ease,box-shadow .16s ease}
.coordinate-float-head{min-height:43px;display:flex;align-items:center;gap:7px;padding:5px 6px 5px 8px}
.coordinate-panel-toggle{min-width:0;display:flex;align-items:center;gap:7px;border:0;background:transparent;color:#25364e;cursor:pointer;padding:5px 4px;border-radius:8px}
.coordinate-panel-toggle:hover{background:#f1f5f9}
.coordinate-panel-toggle strong{font-size:.76rem;white-space:nowrap}
.coordinate-crosshair{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#eaf2ff;color:#1764dc;font-size:16px;font-weight:900}
.coordinate-temp-badge{padding:2px 5px;border-radius:5px;background:#eef2f7;color:#6b7788;font-size:.55rem;font-weight:900;letter-spacing:.06em}
.coordinate-current{min-width:0;margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#52647b;font:700 10px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}
.coordinate-collapse{flex:0 0 30px;width:30px;height:30px;border:0;border-radius:8px;background:#f3f6fa;color:#64748b;cursor:pointer;font-size:15px;font-weight:900;transition:transform .16s ease}
.coordinate-collapse:hover{background:#eaf0f7;color:#1d4ed8}
.coordinate-float-body{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;padding:0 9px 9px;border-top:1px solid #edf1f5;max-height:110px;opacity:1;transition:max-height .18s ease,opacity .14s ease,padding .18s ease,border .18s ease}
.coordinate-inputs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding-top:8px}
.coordinate-inputs label{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:5px;height:35px;padding:0 7px;border:1px solid #d9e1eb;border-radius:9px;background:#fff}
.coordinate-inputs label:focus-within{border-color:#78a7ec;box-shadow:0 0 0 3px rgba(20,99,234,.08)}
.coordinate-inputs label span{font-size:.57rem;font-weight:900;letter-spacing:.08em;color:#8694a7}
.coordinate-inputs input{min-width:0;height:31px;padding:0;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;color:#21344f;font:700 10.5px/1 ui-monospace,SFMono-Regular,Menlo,monospace}
.coordinate-inputs input:focus{outline:0;box-shadow:none!important}
.coordinate-actions{display:flex;align-items:center;gap:5px;padding-top:8px}
.coordinate-action,.coordinate-icon-action{height:35px;border:1px solid #dce4ee;border-radius:9px;background:#fff;color:#44566d;cursor:pointer;font-size:.67rem;font-weight:820;transition:.13s ease}
.coordinate-action{display:flex;align-items:center;justify-content:center;gap:5px;padding:0 9px;white-space:nowrap}
.coordinate-action span{font-size:13px;line-height:1}
.coordinate-action:hover,.coordinate-icon-action:hover{border-color:#b7c9e2;background:#f5f8fc;color:#125cc7}
.coordinate-action.primary{border-color:#1769e8;background:#1769e8;color:#fff;box-shadow:0 5px 12px rgba(23,105,232,.18)}
.coordinate-action.primary:hover{background:#0d5fdc;color:#fff}
.coordinate-action.active{border-color:#f3b35a;background:#fff7e8;color:#9a5a00}
.coordinate-icon-action{display:grid;place-items:center;width:35px;padding:0;font-size:15px}
.coordinate-icon-action.danger:hover{border-color:#fecaca;background:#fff1f2;color:#be123c}
.coordinate-float.is-collapsed{width:205px}
.coordinate-float.is-collapsed .coordinate-float-body{max-height:0;opacity:0;padding-top:0;padding-bottom:0;border-top-color:transparent;pointer-events:none;overflow:hidden}
.coordinate-float.is-collapsed .coordinate-current{display:none}
.coordinate-float.is-collapsed .coordinate-collapse{transform:rotate(180deg)}
@media(max-width:760px){
  .coordinate-float{top:8px;left:8px;width:min(390px,calc(100% - 16px))}
  .coordinate-float-body{grid-template-columns:1fr;max-height:160px}
  .coordinate-actions{padding-top:0}
  .coordinate-action{flex:1}
  .coordinate-icon-action{flex:0 0 35px}
  .coordinate-float.is-collapsed{width:190px}
}
@media(max-width:430px){
  .coordinate-inputs{grid-template-columns:1fr}
  .coordinate-float-body{max-height:205px}
  .coordinate-current{font-size:9px}
}
