:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#182230;background:#f5f7fb}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}.app{display:grid;grid-template-columns:228px 1fr;min-height:100vh}.sidebar{background:#0d1b2b;color:#dce6f3;padding:22px 16px;display:flex;flex-direction:column;gap:22px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#1769ff,#4b91ff);color:white;font-weight:800}.brand div{display:flex;flex-direction:column}.brand small{color:#738199}.brand.dark small{color:#8da0b6}.sidebar nav{display:flex;flex-direction:column;gap:6px}.sidebar nav button{border:0;background:transparent;color:#aebed0;text-align:left;padding:11px 12px;border-radius:10px;display:flex;justify-content:space-between}.sidebar nav button.active{background:#1769ff;color:#fff}.sidebar nav button:disabled{opacity:.45;cursor:not-allowed}.sidebar-footer{margin-top:auto;border-top:1px solid #203149;padding-top:16px;display:flex;align-items:center;justify-content:space-between;color:#8295aa}.sidebar-footer button{border:0;background:transparent;color:#dce6f3}main{padding:26px 30px;min-width:0}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}header h1{margin:0;font-size:25px}header p,.panel-title p{margin:5px 0 0;color:#738199}.kpis{display:grid;grid-template-columns:repeat(6,minmax(135px,1fr));gap:12px;margin-bottom:18px}.kpi{background:white;border:1px solid #e7ebf1;border-radius:14px;padding:16px;display:flex;gap:12px;align-items:center;box-shadow:0 6px 20px rgba(15,30,50,.04)}.kpi-icon{width:10px;height:46px;border-radius:9px;background:#1769ff}.kpi-icon.cyan{background:#16a3b6}.kpi-icon.green{background:#24a366}.kpi-icon.gray{background:#8895a6}.kpi-icon.yellow{background:#e1a622}.kpi-icon.red{background:#dc4b5a}.kpi span{display:block;color:#738199;font-size:12px}.kpi strong{display:block;font-size:24px;line-height:1.1;margin:3px 0}.kpi small{color:#95a0af}.panel{background:white;border:1px solid #e5eaf1;border-radius:16px;box-shadow:0 8px 26px rgba(20,40,70,.04);overflow:hidden}.toolbar,.panel-title{padding:16px 18px;border-bottom:1px solid #edf0f4;display:flex;gap:12px;align-items:center}.panel-title{justify-content:space-between}.toolbar input{flex:1;min-width:200px}.toolbar input,.toolbar select,.modal input,.modal select{border:1px solid #d8dee8;border-radius:10px;padding:10px 12px;background:white}.count{margin-left:auto;color:#738199;font-size:13px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:960px}th{font-size:11px;text-transform:uppercase;letter-spacing:.035em;text-align:left;color:#7e8b9d;background:#fafbfd;padding:11px 14px;border-bottom:1px solid #e9edf2}td{padding:13px 14px;border-bottom:1px solid #edf0f4;vertical-align:middle;font-size:13px}td small,td>span{display:block;color:#78869a;margin-top:3px}.offline-row{background:#fcf6f6}.pill{display:inline-flex!important;align-items:center;border-radius:999px;padding:4px 8px!important;font-weight:700;font-size:10px!important}.pill.ok{background:#e8f7ee;color:#167445}.pill.off{background:#edf0f4;color:#586577}.pill.warn{background:#fff4d6;color:#946b00}.pill.danger{background:#ffe5e8;color:#b62839}.counters{display:grid;grid-template-columns:repeat(2,auto);gap:4px 14px}.counters span{font-size:11px;color:#78869a}.counters b{color:#2b3747;margin-left:4px}.supplies{display:grid;gap:4px;min-width:210px}.supplies>div{display:grid;grid-template-columns:54px 1fr 38px;gap:6px;align-items:center}.supplies span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.bar{height:7px;border-radius:10px;background:#edf0f4;overflow:hidden}.bar i{display:block;height:100%;border-radius:10px}.bar i.good{background:#2b9c67}.bar i.warning{background:#e1a622}.bar i.low{background:#e67e22}.bar i.critical{background:#d74556}.bar i.unknown{background:#a0a9b7}.danger{color:#ba3343!important}.ok-text{color:#1e8a56}.muted{color:#7e8b9d}.empty{text-align:center;color:#8995a5;padding:34px}.primary,.secondary{border:0;border-radius:10px;padding:10px 14px;font-weight:700}.primary{background:#1769ff;color:#fff}.secondary{background:#edf3ff;color:#2b5fb6}.small{padding:8px 11px}.tiny{padding:5px 8px;font-size:11px}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;padding:18px}.customer-card{border:1px solid #e7ebf1;border-radius:14px;padding:16px}.customer-card h3{margin:0}.customer-card p{color:#5d6b7d;min-height:20px}.customer-card small{display:block;color:#8995a5;margin-bottom:14px}.card-actions,.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,#e8f0ff,#f6f8fc 45%)}.login-card{width:min(430px,100%);background:white;border:1px solid #e0e6ee;border-radius:20px;padding:28px;box-shadow:0 25px 70px rgba(30,55,90,.12);display:grid;gap:14px}.login-card h1{margin:14px 0 0}.login-card p{margin:0}.login-card label,.modal label{display:grid;gap:6px;font-size:13px;font-weight:700;color:#49586b}.login-card input{border:1px solid #d8dee8;border-radius:10px;padding:12px}.error-box{background:#fff0f1;border:1px solid #f4c5cb;color:#a82938;border-radius:10px;padding:10px 12px;margin-bottom:12px}.modal-backdrop{position:fixed;inset:0;background:rgba(14,26,42,.45);display:grid;place-items:center;padding:20px;z-index:50}.modal{width:min(460px,100%);background:white;border-radius:16px;padding:22px;display:grid;gap:14px}.modal h2{margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.checks{display:flex;gap:14px;flex-wrap:wrap}.checks label{display:flex;align-items:center;gap:6px;font-weight:600}@media(max-width:1100px){.kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.app{grid-template-columns:1fr}.sidebar{display:none}main{padding:18px}.kpis{grid-template-columns:repeat(2,1fr)}header{align-items:flex-start}.toolbar{flex-wrap:wrap}.toolbar input,.toolbar select{width:100%}.count{margin-left:0}}
/* v0.2.0 billing additions */
textarea{font:inherit;border:1px solid #d8dee8;border-radius:10px;padding:10px 12px;min-height:74px;resize:vertical}.unit-list{display:flex;gap:6px;flex-wrap:wrap;margin:-5px 0 14px}.unit-list span{font-size:11px;background:#f2f5f9;color:#59687a;border-radius:999px;padding:5px 8px}.modal-wrap{width:min(500px,100%)}.modal-wrap.wide{width:min(1120px,100%)}.modal-wrap>.modal{width:100%;max-height:88vh;overflow:auto}.modal-wrap.wide>.modal{width:100%}.form-grid{display:grid;gap:12px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.rate-box{border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px}.rate-box legend{font-weight:800;color:#334155;padding:0 6px}.contract-printer-list{display:grid;gap:8px;max-height:55vh;overflow:auto}.cp-row{border:1px solid #e6eaf0;border-radius:12px;padding:10px}.cp-main{display:flex!important;grid-template-columns:none!important;align-items:center;gap:10px!important}.cp-main span{display:flex;flex-direction:column}.cp-main small{font-weight:400;color:#748196}.cp-overrides{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0 0 28px}.cp-overrides input{min-width:0;border:1px solid #d8dee8;border-radius:8px;padding:8px}.billing-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.billing-card{border:1px solid #e4e9f0;border-radius:14px;padding:14px;display:grid;gap:5px}.billing-card>span{font-weight:800;color:#516176}.billing-card>strong{font-size:24px}.billing-card small{color:#7d8a9a}.billing-card div{font-size:12px;color:#64748b}.billing-card em{font-style:normal;font-size:17px;font-weight:800;color:#1769ff}.invoice-total{display:flex;gap:18px;align-items:center;justify-content:flex-end;background:#f7f9fc;border-radius:12px;padding:14px;flex-wrap:wrap}.invoice-total strong{font-size:20px}.invoice-snapshots table{min-width:1100px}.issue{max-width:300px;white-space:normal}.panel-title.compact{padding:0 0 14px;border-bottom:0}.invoice-modal{gap:16px}.history{max-height:55vh}.history table{min-width:760px}.primary:disabled{opacity:.45;cursor:not-allowed}@media(max-width:760px){.form-grid.two,.form-grid.three,.billing-cards,.cp-overrides{grid-template-columns:1fr}.invoice-total{justify-content:flex-start}}
/* v0.2.2 assignment / topology additions */
.kpis{grid-template-columns:repeat(7,minmax(125px,1fr))}
.pill.blue{background:#e9f1ff;color:#285ca8}
.inline-check{display:flex!important;align-items:center;gap:8px!important;font-weight:600!important;color:#526176!important}
.inline-check input{width:auto!important;margin:0}
.assignment-history{display:grid;gap:10px;max-height:58vh;overflow:auto}
.assignment-event{border:1px solid #e4e9f0;border-radius:12px;padding:12px 14px;background:#fbfcfe}
.assignment-event>div{display:flex;align-items:center;justify-content:space-between;gap:12px}
.assignment-event>div span{font-size:11px;background:#edf3ff;color:#2b5fb6;border-radius:999px;padding:4px 7px}
.assignment-event p{margin:8px 0;color:#657487}
.assignment-event small{display:block;color:#8995a5;margin-top:3px}
@media(max-width:1250px){.kpis{grid-template-columns:repeat(4,1fr)}}
@media(max-width:760px){.kpis{grid-template-columns:repeat(2,1fr)}}
/* v0.2.3 products, inventory and reports */
.stock-kpis{grid-template-columns:repeat(3,minmax(160px,1fr));max-width:760px}
.inventory-events{margin-top:18px}
.report-filters{padding:16px 18px;display:grid;grid-template-columns:repeat(6,minmax(140px,1fr));gap:12px;border-bottom:1px solid #edf0f4;align-items:end}
.report-filters label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#536176}
.report-filters input,.report-filters select{border:1px solid #d8dee8;border-radius:10px;padding:10px 12px;background:#fff;min-width:0}
.report-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.report-table{max-height:58vh}.report-table table{min-width:1050px}.report-count{padding:10px 18px;color:#7e8b9d;font-size:12px;border-top:1px solid #edf0f4}
@media(max-width:1200px){.report-filters{grid-template-columns:repeat(3,minmax(150px,1fr))}}
@media(max-width:760px){.stock-kpis,.report-filters{grid-template-columns:1fr}.report-actions{grid-column:auto}}
/* v0.2.4 billing completion and customer lifecycle */
.inactive-card{opacity:.72;background:#fafbfc}.danger-outline{background:#fff0f1!important;color:#a82938!important}.invoice-adjustments{border:1px solid #e4e9f0;border-radius:14px;padding:14px}.invoice-adjustments h3{margin:0}.invoice-adjustments .assignment-event{margin-top:8px}.invoice-adjustments .assignment-event button{margin-top:8px}details{border:1px solid #e4e9f0;border-radius:12px;padding:10px 12px}details summary{cursor:pointer;font-weight:800;color:#536176}
.notice-box{background:#fff8e6;border:1px solid #ecd59d;color:#7a5b09;border-radius:10px;padding:10px 12px;margin-bottom:12px}
/* v0.2.9 contador operacional */
.meter-filters{grid-template-columns:repeat(5,minmax(150px,1fr))}.row-actions.stacked{display:grid;grid-template-columns:repeat(2,max-content);gap:5px}.warn-text{color:#946b00!important;max-width:220px;white-space:normal}.wide-modal{width:100%}.bulk-meter-table{max-height:56vh;border:1px solid #e7ebf1;border-radius:12px}.bulk-meter-table table{min-width:980px}.bulk-meter-table input{width:120px;min-width:90px;border:1px solid #d8dee8;border-radius:8px;padding:8px}.bulk-meter-table td:last-child input{width:220px}.meter-filters+.table-wrap table{min-width:1700px}@media(max-width:1000px){.meter-filters{grid-template-columns:repeat(2,minmax(150px,1fr))}}@media(max-width:760px){.meter-filters{grid-template-columns:1fr}.row-actions.stacked{grid-template-columns:1fr}}

.button-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
/* v0.3.8 branding */
.brand-logo{display:block;object-fit:contain;background:#fff;border-radius:10px;padding:4px;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.sidebar-logo{width:72px;height:46px;object-fit:contain;flex:0 0 auto}
.login-logo{width:94px;height:62px;object-fit:contain;flex:0 0 auto}
.brand-company{align-items:center}
.brand-company>div{min-width:0}
.app-footer{margin-top:24px;padding:18px 4px 6px;border-top:1px solid #e6ebf2;color:#7c8999;font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.app-footer strong{color:#536176}
@media(max-width:760px){.app-footer{justify-content:center;text-align:center}.login-logo{width:84px;height:56px}}
main{display:flex;flex-direction:column}.app-footer{margin-top:auto;padding-top:18px}#content{flex:0 0 auto}
/* v0.3.9 official Color 4 square logo */
.brand-logo{background:transparent;padding:0;border-radius:14px;box-shadow:0 4px 16px rgba(0,0,0,.12)}
.sidebar-logo{width:86px;height:86px;object-fit:cover}
.login-logo{width:128px;height:128px;object-fit:cover}
.brand-company{gap:10px}
@media(max-width:760px){.login-logo{width:108px;height:108px}}

/* v0.4.0 - administração e segurança */
.sidebar-user{padding:12px 14px;border-top:1px solid rgba(255,255,255,.12);display:grid;gap:8px}
.sidebar-user small{color:#cbd5e1;line-height:1.35;word-break:break-word}
.sidebar-user .secondary{width:100%;justify-content:center}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#f1f5f9;padding:2px 5px;border-radius:5px}


/* v0.4.1 - sidebar com topo/rodapé fixos e rolagem exclusiva do menu */
.sidebar{
  height:100vh;
  min-height:0;
  position:sticky;
  top:0;
  overflow:hidden;
}
.sidebar .brand-company{flex:0 0 auto}
.sidebar nav{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:5px;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:#526980 transparent;
}
.sidebar nav::-webkit-scrollbar{width:7px}
.sidebar nav::-webkit-scrollbar-track{background:transparent}
.sidebar nav::-webkit-scrollbar-thumb{background:#526980;border-radius:999px}
.sidebar nav::-webkit-scrollbar-thumb:hover{background:#6b839b}
.sidebar-user,.sidebar-footer{flex:0 0 auto}
.sidebar-footer{margin-top:0}
.admin-intro{margin-bottom:18px}
.admin-security-kpis{grid-template-columns:repeat(6,minmax(135px,1fr))}
@media(max-width:1100px){.admin-security-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.sidebar{position:static;height:auto}.admin-security-kpis{grid-template-columns:repeat(2,1fr)}}

/* v0.4.2 - Ordens de Serviço e escopo do perfil Consulta */
.os-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:12px 0 18px}
.os-detail-grid>div{border:1px solid #e4e9f0;border-radius:10px;padding:10px 12px;display:grid;gap:4px;background:#fbfcfe}
.os-detail-grid b{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#7b8797}
.os-detail-grid span{color:#263547;word-break:break-word}.os-detail-grid small{display:block;color:#8995a5;margin-top:3px}
.scope-list{display:grid;gap:12px;max-height:58vh;overflow:auto}.scope-customer{border:1px solid #e4e9f0;border-radius:12px;padding:12px;background:#fbfcfe;display:grid;gap:8px}.scope-customer select[multiple]{min-height:76px}
@media(max-width:760px){.os-detail-grid{grid-template-columns:1fr}}

/* v0.4.3 - SLA, dashboard de OS e gestão de técnicos */
.os-kpis{grid-template-columns:repeat(7,minmax(135px,1fr))}
.kpi-text{font-size:23px!important}
.os-dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.os-dashboard-grid .panel{margin:0;min-width:0}
.sla-policy-list{display:grid;gap:14px;max-height:58vh;overflow:auto;padding-right:4px;margin-bottom:14px}
.sla-policy-row{border:1px solid #dfe5ed;border-radius:14px;background:#fbfcfe;padding:14px;display:grid;gap:12px}
.sla-policy-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sla-policy-head b{color:#263547}
.sla-active-check{align-self:center;padding:14px;border:1px solid #e4e9f0;border-radius:10px;background:#fff}
.sla-detail{border:1px solid #dbe4ef;border-radius:12px;padding:14px;margin:12px 0 18px;background:#f8fbff}
.sla-detail h3{margin:0 0 10px}.sla-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}
.sla-detail-grid>div{display:grid;gap:3px}.sla-detail-grid b{font-size:11px;text-transform:uppercase;color:#7b8797}.sla-detail-grid span{word-break:break-word}
.sla-danger{border-color:#efb3b8;background:#fff5f6}.sla-warning{border-color:#ead28f;background:#fffaf0}
.technician-fields{margin:2px 0 8px}.span-two{grid-column:1/-1}
.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1400px){.os-kpis{grid-template-columns:repeat(4,1fr)}}
@media(max-width:1100px){.os-dashboard-grid{grid-template-columns:1fr}.form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.os-kpis,.form-grid.four,.sla-detail-grid{grid-template-columns:1fr}}

/* v0.4.4 - execução e fechamento de Ordens de Serviço */
.os-action-section{border:1px solid #dfe5ed;border-radius:14px;background:#fbfcfe;padding:14px;margin:16px 0;display:grid;gap:12px}
.os-action-section h3{margin:0;color:#263547}
.os-action-section form{display:grid;gap:10px}
.sla-calendar-block{border-top:1px dashed #d7dee8;padding-top:12px;display:grid;gap:10px}
.sla-weekdays{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.sla-weekdays .inline-check{padding:5px 8px;border:1px solid #e4e9f0;border-radius:8px;background:#fff}
.assignment-event p{white-space:pre-wrap}
@media(max-width:760px){.sla-weekdays{display:grid;grid-template-columns:repeat(2,1fr)}}

/* v0.4.4-alpha.3 - experiência responsiva global / mobile-first */
html{max-width:100%;overflow-x:hidden}
body{max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%}
img{max-width:100%}
.mobile-topbar,.mobile-sidebar-close,.sidebar-overlay{display:none}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
button,input,select,textarea{max-width:100%}
textarea{width:100%}
.panel-title>div,.toolbar>*{min-width:0}
.panel-title h2,.panel-title h3{overflow-wrap:anywhere}
.notice-box,.assignment-event,.os-action-section,.sla-detail{overflow-wrap:anywhere}
.camera-button{white-space:nowrap}

@media(max-width:900px){
  .app{display:block;min-height:100vh}
  .sidebar{
    display:flex;
    position:fixed;
    inset:0 auto 0 0;
    width:min(86vw,320px);
    height:100dvh;
    min-height:0;
    z-index:90;
    transform:translateX(-105%);
    transition:transform .22s ease;
    box-shadow:18px 0 44px rgba(7,18,31,.22);
    padding-top:max(18px,env(safe-area-inset-top));
    padding-bottom:max(16px,env(safe-area-inset-bottom));
  }
  .app.mobile-menu-open .sidebar{transform:translateX(0)}
  .sidebar-overlay{display:block;position:fixed;inset:0;background:rgba(8,20,34,.5);z-index:80;opacity:0;pointer-events:none;transition:opacity .22s ease}
  .app.mobile-menu-open .sidebar-overlay{opacity:1;pointer-events:auto}
  body.mobile-menu-open{overflow:hidden}
  .sidebar .brand-company{position:relative;padding-right:38px}
  .mobile-sidebar-close{display:grid;place-items:center;position:absolute;right:0;top:0;width:38px;height:38px;border:0;border-radius:10px;background:rgba(255,255,255,.1);color:#fff;font-size:27px;line-height:1}
  .sidebar nav button{min-height:44px;align-items:center;font-size:14px}
  .sidebar-user .secondary,.sidebar-footer button{min-height:42px}
  main{padding:0 18px 18px;min-width:0}
  .mobile-topbar{display:flex;position:sticky;top:0;z-index:60;margin:0 -18px 18px;padding:max(10px,env(safe-area-inset-top)) 14px 10px;align-items:center;gap:12px;background:rgba(245,247,251,.96);backdrop-filter:blur(12px);border-bottom:1px solid #e2e8f0}
  .mobile-menu-toggle{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:0;border-radius:12px;background:#0d1b2b;color:#fff;font-size:22px}
  .mobile-brand{display:flex;min-width:0;align-items:center;gap:9px}
  .mobile-brand img{width:38px;height:38px;border-radius:9px;object-fit:cover;box-shadow:0 2px 8px rgba(0,0,0,.1)}
  .mobile-brand div{min-width:0;display:grid;gap:1px}
  .mobile-brand b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
  .mobile-brand small{color:#738199;font-size:11px}
  main>header{margin-bottom:16px;gap:10px;align-items:flex-start}
  main>header h1{font-size:23px;line-height:1.15}
  main>header p{font-size:13px;line-height:1.4}
  main>header #refresh{min-height:44px;white-space:nowrap}
  .panel-title{align-items:flex-start;flex-wrap:wrap}
  .panel-title>div:first-child{flex:1 1 240px}
  .toolbar{flex-wrap:wrap}
  .toolbar input,.toolbar select{flex:1 1 220px}
  .count{margin-left:0}
  .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-security-kpis,.os-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .report-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .os-dashboard-grid{grid-template-columns:1fr}
}

@media(max-width:760px){
  :root{font-size:15px}
  main{padding:0 12px 14px}
  .mobile-topbar{margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px}
  main>header{align-items:flex-start}
  main>header>div{min-width:0;flex:1}
  main>header h1{font-size:21px}
  main>header p{display:none}
  main>header #refresh{padding:9px 11px;font-size:12px}
  .panel{border-radius:14px}
  .panel-title,.toolbar{padding:14px}
  .panel-title{display:grid;grid-template-columns:1fr;gap:10px}
  .panel-title .row-actions,.panel-title .button-row{width:100%}
  .panel-title .row-actions>button,.panel-title .button-row>button{flex:1 1 130px;min-height:44px}
  .toolbar{display:grid;grid-template-columns:1fr;gap:10px}
  .toolbar input,.toolbar select{width:100%;min-width:0}
  .count{justify-self:start}
  .kpis,.admin-security-kpis,.os-kpis,.stock-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi{padding:12px;gap:9px;min-width:0}
  .kpi-icon{width:7px;height:40px}
  .kpi strong,.kpi-text{font-size:20px!important;overflow-wrap:anywhere}
  .kpi span{font-size:11px}
  .kpi small{font-size:10px;line-height:1.25}
  .cards-grid{grid-template-columns:1fr;padding:12px}
  .customer-card{padding:14px}
  .card-actions,.row-actions{gap:7px}
  .card-actions>button{flex:1 1 130px;min-height:44px}
  .report-filters,.meter-filters{grid-template-columns:1fr;padding:14px}
  .report-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .report-actions>button{width:100%;min-height:44px}
  .form-grid.two,.form-grid.three,.form-grid.four,.billing-cards,.cp-overrides,.sla-detail-grid{grid-template-columns:1fr}
  .span-two{grid-column:auto}
  .cp-overrides{margin-left:0}
  .invoice-total{display:grid;grid-template-columns:1fr;gap:8px}
  .os-detail-grid{grid-template-columns:1fr;gap:8px}
  .os-detail-grid>div{padding:10px}
  .os-action-section{padding:12px;margin:12px 0;border-radius:12px}
  .os-action-section>.row-actions,.os-action-section form>.row-actions,.attachment-actions{display:grid;grid-template-columns:1fr}
  .os-action-section button,.attachment-actions button{min-height:44px;width:100%}
  .sla-weekdays{grid-template-columns:repeat(2,minmax(0,1fr))}
  .assignment-event>div{align-items:flex-start;flex-direction:column}
  .assignment-event{padding:11px 12px}
  .assignment-history{max-height:none}
  .scope-list,.sla-policy-list,.contract-printer-list{max-height:none}

  /* Toda tabela operacional vira card no celular, sem rolagem horizontal. */
  .table-wrap,.report-table,.history,.bulk-meter-table{overflow:visible;max-height:none!important}
  table.responsive-table{display:block;width:100%;min-width:0!important;border-collapse:separate;border-spacing:0}
  table.responsive-table thead{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
  table.responsive-table tbody{display:grid;gap:12px;padding:12px}
  table.responsive-table tbody tr{display:block;width:100%;border:1px solid #e4e9f0;border-radius:13px;background:#fff;box-shadow:0 3px 12px rgba(20,40,70,.035);overflow:hidden}
  table.responsive-table tbody tr.offline-row{background:#fff8f8}
  table.responsive-table tbody td{display:grid;width:100%;grid-template-columns:minmax(105px,36%) minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;border-bottom:1px solid #edf0f4;font-size:13px;overflow-wrap:anywhere}
  table.responsive-table tbody td:last-child{border-bottom:0}
  table.responsive-table tbody td::before{content:attr(data-label);font-size:10px;font-weight:800;line-height:1.3;letter-spacing:.035em;text-transform:uppercase;color:#7e8b9d;padding-top:2px}
  table.responsive-table tbody td.mobile-full{display:block;padding:20px 12px;text-align:center}
  table.responsive-table tbody td.mobile-full::before{display:none}
  table.responsive-table tbody td[data-label="Ações"]{display:block}
  table.responsive-table tbody td[data-label="Ações"]::before{display:none}
  table.responsive-table tbody td[data-label="Ações"] .row-actions,
  table.responsive-table tbody td[data-label="Situação"] .row-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin-top:2px}
  table.responsive-table tbody td[data-label="Ações"] button{width:100%;min-height:42px}
  table.responsive-table tbody td input,
  table.responsive-table tbody td select,
  table.responsive-table tbody td textarea{width:100%!important;min-width:0!important}
  table.responsive-table .supplies{min-width:0}
  table.responsive-table .counters{grid-template-columns:1fr 1fr}
  .report-count{padding:10px 12px}

  /* Formulários e modais próprios para toque. */
  input:not([type="checkbox"]):not([type="radio"]),select,textarea{font-size:16px;min-height:44px}
  input[type="file"]{font-size:14px;min-height:44px;width:100%}
  .primary,.secondary{min-height:42px}
  .tiny{min-height:38px;padding:8px 10px;font-size:12px}
  .modal-backdrop{align-items:end;padding:0;overflow:hidden}
  .modal-wrap,.modal-wrap.wide{width:100%;max-width:none}
  .modal-wrap>.modal,.modal-wrap.wide>.modal,.modal{width:100%;max-width:none;max-height:94dvh;border-radius:18px 18px 0 0;padding:18px 14px calc(16px + env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain}
  body.modal-open{overflow:hidden}
  .modal h2{font-size:20px;line-height:1.2}
  .modal-actions{position:sticky;bottom:-1px;z-index:5;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px -14px -16px;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-top:1px solid #e6ebf2}
  .modal-actions>button{width:100%;min-height:46px}
  .modal-actions>button:only-child{grid-column:1/-1}
  .os-mobile-modal{height:100dvh;max-height:100dvh!important;border-radius:0!important;padding-top:max(16px,env(safe-area-inset-top))!important}
  .os-mobile-modal>.panel-title.compact{position:sticky;top:calc(-1 * max(16px,env(safe-area-inset-top)));z-index:6;margin:-16px -14px 10px;padding:calc(12px + env(safe-area-inset-top)) 14px 12px;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);border-bottom:1px solid #e7ebf1}
  .os-mobile-modal .notice-box{font-size:13px;line-height:1.45}
  .os-detail-modal>.modal-actions{margin-top:18px}
  .camera-field,.camera-button{display:block}
  .app-footer{padding:16px 4px 8px;font-size:11px}
}

@media(max-width:420px){
  .kpis,.admin-security-kpis,.os-kpis,.stock-kpis{grid-template-columns:1fr 1fr}
  .kpi{padding:10px}
  .report-actions{grid-template-columns:1fr 1fr}
  table.responsive-table tbody td{grid-template-columns:minmax(92px,34%) minmax(0,1fr);padding:9px 10px;gap:8px}
  table.responsive-table tbody td[data-label="Ações"] .row-actions,
  table.responsive-table tbody td[data-label="Situação"] .row-actions{grid-template-columns:1fr}
  .modal-actions{grid-template-columns:1fr}
  .modal-actions>button{grid-column:auto!important}
  .sla-weekdays{grid-template-columns:1fr 1fr}
}

/* Tablet portrait também evita tabelas horizontais. */
@media(min-width:761px) and (max-width:900px){
  .table-wrap,.report-table,.history,.bulk-meter-table{overflow:visible;max-height:none!important}
  table.responsive-table{display:block;width:100%;min-width:0!important;border-collapse:separate;border-spacing:0}
  table.responsive-table thead{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
  table.responsive-table tbody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px}
  table.responsive-table tbody tr{display:block;width:100%;border:1px solid #e4e9f0;border-radius:13px;background:#fff;box-shadow:0 3px 12px rgba(20,40,70,.035);overflow:hidden}
  table.responsive-table tbody tr.offline-row{background:#fff8f8}
  table.responsive-table tbody td{display:grid;width:100%;grid-template-columns:minmax(100px,36%) minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;border-bottom:1px solid #edf0f4;font-size:13px;overflow-wrap:anywhere}
  table.responsive-table tbody td:last-child{border-bottom:0}
  table.responsive-table tbody td::before{content:attr(data-label);font-size:10px;font-weight:800;line-height:1.3;letter-spacing:.035em;text-transform:uppercase;color:#7e8b9d;padding-top:2px}
  table.responsive-table tbody td.mobile-full{display:block;padding:20px 12px;text-align:center}
  table.responsive-table tbody td.mobile-full::before{display:none}
  table.responsive-table tbody td[data-label="Ações"]{display:block}
  table.responsive-table tbody td[data-label="Ações"]::before{display:none}
  table.responsive-table tbody td[data-label="Ações"] .row-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  table.responsive-table tbody td[data-label="Ações"] button{width:100%;min-height:42px}
  table.responsive-table tbody td input,table.responsive-table tbody td select,table.responsive-table tbody td textarea{width:100%!important;min-width:0!important}
  table.responsive-table .supplies{min-width:0}
}

/* v0.4.4-alpha.3 - visão geral por empresa */
.overview-customer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;padding:18px}
.overview-customer-card{border:1px solid #e2e8f0;border-radius:16px;padding:17px;background:#fff;box-shadow:0 6px 18px rgba(20,40,70,.04);display:grid;gap:14px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.overview-customer-card:hover,.overview-customer-card:focus{outline:none;border-color:#b9cdf8;box-shadow:0 10px 28px rgba(23,105,255,.10);transform:translateY(-1px)}
.overview-customer-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.overview-customer-head h3{margin:0;font-size:17px}.overview-customer-head p{margin:4px 0 0;color:#738199;font-size:12px}
.overview-customer-meta{display:flex;gap:8px 14px;flex-wrap:wrap;color:#7d8999;font-size:12px;min-height:18px}
.overview-customer-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.overview-customer-stats>div{background:#f7f9fc;border:1px solid #edf0f4;border-radius:11px;padding:10px 8px;text-align:center;min-width:0}
.overview-customer-stats strong{display:block;font-size:18px;color:#1b2a3b}.overview-customer-stats span{display:block;margin-top:3px;font-size:10px;color:#7a8798;line-height:1.2}
.overview-selected-customer>div{display:flex;align-items:center;gap:14px}.overview-selected-customer h2{margin:0}.overview-selected-customer p{margin-top:3px}
@media(max-width:760px){.overview-customer-grid{grid-template-columns:1fr;padding:12px}.overview-customer-card{padding:14px}.overview-customer-stats{grid-template-columns:repeat(2,1fr)}.overview-selected-customer>div{align-items:flex-start;flex-direction:column}.overview-selected-customer .secondary{width:100%}}

/* v0.4.4-alpha.9 - semáforo operacional: verde OK, amarelo atenção, vermelho crítico */
.health-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:0 0 10px;box-shadow:0 0 0 2px rgba(15,23,42,.05)}
.health-dot.health-ok{background:#22a95f}
.health-dot.health-warning{background:#e7a315}
.health-dot.health-critical{background:#e84a5f}
.health-indicator{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;font-size:10px;line-height:1;border:1px solid transparent;white-space:nowrap}
.health-indicator b{font-size:10px;letter-spacing:.02em}
.health-indicator.health-ok{background:#ebf9f1;color:#177744;border-color:#ccefdc}
.health-indicator.health-warning{background:#fff7df;color:#99670b;border-color:#f4df9c}
.health-indicator.health-critical{background:#fff0f2;color:#a92f40;border-color:#f3c6cd}
.health-indicator.compact{padding:2px 5px}
.health-legend{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:0 18px 10px;padding:9px 12px;border:1px solid #edf0f4;border-radius:10px;background:#fafbfd;color:#65748a;font-size:11px}
.health-legend span{display:inline-flex;align-items:center;gap:6px}
.warning-row{background:#fffdf4}
.critical-row{background:#fff7f8}
.printer-status-stack{display:flex;gap:4px;align-items:flex-start;flex-wrap:wrap;min-width:132px}
.printer-error-code{display:block!important;width:100%;margin-top:2px!important;color:#b62839!important;font-weight:700;font-size:10px!important}
.printer-health-reason{display:block!important;width:100%;margin-top:1px!important;color:#758195!important;font-size:10px!important;max-width:190px;white-space:normal}
.overview-customer-stats{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.overview-health-stat strong{display:flex!important;align-items:center;justify-content:center;gap:5px}
.overview-health-stat .health-dot{width:9px;height:9px;flex-basis:9px}
.customer-health-ok{border-left:4px solid #22a95f}
.customer-health-warning{border-left:4px solid #e7a315}
.customer-health-critical{border-left:4px solid #e84a5f}
@media(max-width:760px){
  .overview-customer-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .warning-row{background:#fffdf4!important}.critical-row{background:#fff7f8!important}
  .health-legend{margin:0 12px 8px;display:grid;grid-template-columns:1fr;gap:7px}
  .printer-status-stack{min-width:0}
}

/* Garante as cores também no modo card de tablet/mobile, onde a regra do tr é mais específica. */
table.responsive-table tbody tr.warning-row{background:#fffdf4}
table.responsive-table tbody tr.critical-row{background:#fff7f8}

/* v0.4.4-alpha.9 - alinhamento e legibilidade dos indicadores da empresa */
.overview-customer-stats{
  grid-template-columns:repeat(auto-fit,minmax(88px,1fr))!important;
  align-items:stretch;
}
.overview-customer-stats>div{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  min-height:70px;
  padding:10px 6px;
}
.overview-customer-stats strong{
  width:100%;
  display:flex!important;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.1;
}
.overview-customer-stats span{
  width:100%;
  text-align:center;
  margin-left:auto;
  margin-right:auto;
  line-height:1.15;
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
}
@media(max-width:760px){
  .overview-customer-stats{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .overview-customer-stats>div:last-child:nth-child(odd){
    grid-column:1/-1;
  }
}

/* v0.4.4-alpha.9 - navegação hierárquica Empresa > Unidade > Equipamentos */
.overview-unit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;padding:18px}
.overview-unit-card{border:1px solid #e2e8f0;border-radius:16px;padding:17px;background:#fff;box-shadow:0 6px 18px rgba(20,40,70,.04);display:grid;gap:14px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.overview-unit-card:hover,.overview-unit-card:focus{outline:none;border-color:#b9cdf8;box-shadow:0 10px 28px rgba(23,105,255,.10);transform:translateY(-1px)}
.overview-unit-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.overview-unit-head h3{margin:0;font-size:17px}.overview-unit-head p{margin:4px 0 0;color:#738199;font-size:12px;line-height:1.35}
.overview-unit-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:stretch}
.overview-unit-stats>div{background:#f7f9fc;border:1px solid #edf0f4;border-radius:11px;min-height:70px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-width:0}
.overview-unit-stats strong{width:100%;display:flex!important;align-items:center;justify-content:center;gap:5px;font-size:18px;color:#1b2a3b;line-height:1.1}
.overview-unit-stats span{width:100%;display:block;margin-top:3px;font-size:10px;color:#7a8798;line-height:1.15;text-align:center;white-space:normal}
.overview-unit-all{background:linear-gradient(180deg,#fbfdff 0%,#f7faff 100%)}
.overview-breadcrumb-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media(max-width:760px){
  .overview-unit-grid{grid-template-columns:1fr;padding:12px}
  .overview-unit-card{padding:14px}
  .overview-unit-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .overview-breadcrumb-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .overview-breadcrumb-actions .secondary{width:100%}
  .overview-breadcrumb-actions .secondary:only-child{grid-column:1/-1}
}
