:root{--bg:#f2f6f4;--surface:#fff;--soft:#edf4f0;--line:#d7e2dd;--text:#12251e;--muted:#687b73;--green:#0f5b40;--green2:#167653;--green3:#0b3e2d;--ok:#248f55;--warn:#d79b17;--bad:#c64141;--shadow:0 10px 30px rgba(10,54,39,.08)}
*{box-sizing:border-box}html,body{margin:0;width:100%;min-height:100%;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button{cursor:pointer}.login-view{min-height:100dvh;display:grid;place-items:center;padding:18px;background:radial-gradient(circle at 80% 0,#1b7355 0,transparent 34%),linear-gradient(145deg,#082b21,#0f513b 55%,#153e32)}.login-card{width:min(100%,430px);padding:22px;border-radius:24px;background:rgba(255,255,255,.98);box-shadow:0 32px 80px rgba(0,0,0,.28)}.brand-row{display:flex;align-items:center;gap:11px}.brand-logo{width:47px;height:47px;border-radius:14px;border:1px solid var(--line);display:grid;place-items:center;background:#fff;overflow:hidden}.brand-logo img{width:39px;height:39px;object-fit:contain}.brand-row strong{display:block;font-size:15px}.brand-row span{display:block;margin-top:2px;color:var(--muted);font-size:9px}.login-copy{padding:26px 0 18px}.eyebrow{font-size:8px;font-weight:900;letter-spacing:.9px;color:var(--green);text-transform:uppercase}.login-copy h1{margin:7px 0 7px;font-size:27px;line-height:1.05}.login-copy p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}.login-card form{display:grid;gap:11px}.login-card label span{display:block;margin:0 0 5px;font-size:8px;font-weight:900;text-transform:uppercase;color:#41554d}.login-card input,.login-card select{width:100%;height:48px;border:1px solid var(--line);border-radius:13px;padding:0 13px;background:#fbfdfc;color:var(--text);outline:0}.login-card input:focus,.login-card select:focus{border-color:var(--green2);box-shadow:0 0 0 3px rgba(22,118,83,.11)}#loginButton{height:49px;border:0;border-radius:13px;background:linear-gradient(135deg,var(--green3),var(--green2));color:#fff;font-weight:900}.login-message{min-height:18px;margin:0;color:var(--bad);font-size:9px;text-align:center}.login-note{display:block;margin-top:13px;color:var(--muted);font-size:8px;line-height:1.4;text-align:center}.viewer-app{position:fixed;inset:0;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}.viewer-app[hidden],.login-view[hidden]{display:none!important}.app-header{flex:0 0 auto;padding:calc(9px + env(safe-area-inset-top)) 11px 8px;background:linear-gradient(135deg,var(--green3),var(--green2));color:#fff;box-shadow:0 5px 24px rgba(7,48,34,.2);z-index:20}.header-line{display:flex;align-items:center;gap:10px}.mini-brand{display:flex;align-items:center;gap:9px;min-width:0;flex:1}.mini-brand img{width:37px;height:37px;border-radius:11px;background:#fff;padding:3px;object-fit:contain}.mini-brand div{min-width:0}.mini-brand strong{display:block;font-size:15px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-brand span{display:block;margin-top:2px;font-size:8px;opacity:.78;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions{display:flex;gap:6px}.pdf-button,.icon-button{height:34px;border:1px solid rgba(255,255,255,.22);border-radius:10px;background:rgba(255,255,255,.1);color:#fff;font-size:8px;font-weight:900}.pdf-button{padding:0 11px}.icon-button{width:35px;font-size:18px}.pdf-button[hidden]{display:none}.status-line{display:flex;gap:5px;margin-top:7px;overflow:hidden}.status-chip{height:24px;display:inline-flex;align-items:center;gap:5px;padding:0 8px;border:1px solid rgba(255,255,255,.13);border-radius:999px;background:rgba(255,255,255,.1);font-size:7px;font-weight:850;white-space:nowrap}.status-chip.grow{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis}.status-chip i{width:6px;height:6px;border-radius:50%;background:#74dfa5;box-shadow:0 0 0 3px rgba(116,223,165,.13)}.status-chip i.warn{background:#ffd166}.status-chip i.bad{background:#ff8e8e}.search-area{flex:0 0 auto;padding:8px 10px 7px;border-bottom:1px solid var(--line);background:var(--bg);z-index:10}.single-search{height:44px;display:grid;grid-template-columns:31px minmax(0,1fr) auto;align-items:center;gap:3px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 4px 16px rgba(20,60,46,.035)}.single-search>span{justify-self:center;color:#72837c;font-size:21px;transform:rotate(-15deg)}.single-search input{min-width:0;width:100%;height:40px;border:0;background:transparent;outline:0;color:var(--text);font-size:12px}.single-search input::placeholder{color:#8b9a94}.single-search button{height:31px;margin-right:5px;padding:0 9px;border:0;border-radius:9px;background:var(--soft);color:#536860;font-size:8px;font-weight:900}.search-hint{padding:5px 2px 0;color:#75877f;font-size:7px}.views{flex:1;min-height:0;position:relative;overflow:hidden}.view{position:absolute;inset:0;padding:8px 10px calc(72px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.view[hidden]{display:none!important}.map-view{padding:0 0 calc(61px + env(safe-area-inset-bottom));overflow:hidden;background:#dce5e0}.map-view iframe{width:100%;height:100%;border:0;background:#dce5e0}.map-loading{position:absolute;inset:0;z-index:2;display:grid;place-content:center;gap:9px;text-align:center;background:var(--bg);color:var(--muted);font-size:10px}.map-loading.hidden{display:none}.map-loading span{width:29px;height:29px;margin:auto;border:3px solid #cbdcd4;border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.fresh-card{display:flex;align-items:flex-start;gap:9px;margin-bottom:8px;padding:9px 10px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(135deg,#f9fcfa,#edf5f1)}.fresh-card i{width:9px;height:9px;margin-top:2px;border-radius:50%;background:var(--ok);flex:0 0 auto}.fresh-card.warn i{background:var(--warn)}.fresh-card.bad i{background:var(--bad)}.fresh-card b{display:block;font-size:9px}.fresh-card span{display:block;margin-top:2px;color:var(--muted);font-size:7.5px;line-height:1.35}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:8px}.kpi{min-width:0;padding:9px 8px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 4px 14px rgba(10,54,39,.03)}.kpi small{display:block;color:var(--muted);font-size:6.2px;font-weight:900;text-transform:uppercase}.kpi strong{display:block;margin-top:3px;font-size:18px;line-height:1}.list{display:grid;gap:8px}.card{overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow)}.card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start;padding:10px 10px 8px;border-bottom:1px solid #e7eeea}.card-title{min-width:0}.card-title b{display:block;font-size:13px;line-height:1.2}.card-title span{display:block;margin-top:2px;color:var(--muted);font-size:7.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{align-self:start;max-width:112px;padding:5px 7px;border-radius:999px;background:#e8f5ed;color:#17623f;font-size:6.3px;font-weight:950;text-transform:uppercase;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge.warn{background:#fff2d5;color:#8d5c00}.badge.bad{background:#fde6e6;color:#a32f2f}.card-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;padding:9px 10px}.field{min-width:0}.field.wide{grid-column:1/-1}.field small{display:block;color:var(--muted);font-size:6px;font-weight:900;text-transform:uppercase;letter-spacing:.15px}.field b,.field span{display:block;margin-top:2px;font-size:8.5px;line-height:1.28;overflow-wrap:anywhere}.note{margin:0 10px 10px;padding:8px 9px;border-radius:10px;background:var(--soft);color:#2f473d;font-size:7.8px;line-height:1.4;overflow-wrap:anywhere}.material-name{font-size:12px!important}.qty-line{display:flex;gap:8px;align-items:baseline}.qty-line strong{font-size:15px}.qty-line em{font-style:normal;color:var(--muted);font-size:6px}.empty{margin:18px 2px;padding:24px 16px;border:1px dashed #c9d8d1;border-radius:14px;background:rgba(255,255,255,.7);text-align:center}.empty b{display:block;font-size:12px}.empty span{display:block;margin-top:5px;color:var(--muted);font-size:8px;line-height:1.4}.more-row{display:flex;justify-content:center;padding:10px}.more-row button{height:38px;padding:0 15px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--green);font-size:8px;font-weight:900}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);gap:3px;padding:6px 6px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(255,255,255,.97);backdrop-filter:blur(16px);box-shadow:0 -8px 26px rgba(12,54,40,.08)}.nav-item{height:49px;border:0;border-radius:12px;background:transparent;color:#71827b;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:7px;font-weight:900}.nav-item svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}.nav-item.active{background:#e8f3ed;color:var(--green)}
@media(min-width:760px){.login-card{padding:28px}.viewer-app{left:50%;width:min(760px,100%);transform:translateX(-50%);box-shadow:0 0 70px rgba(0,0,0,.14)}.card-grid{grid-template-columns:repeat(3,1fr)}.field.wide{grid-column:auto}.note{font-size:8.5px}.view{padding-inline:14px}}
@media print{body>*{display:none!important}}

.failure-description b{display:block;font-size:8.4px;line-height:1.35}.failure-description span{display:block;margin-top:4px;color:var(--muted);font-size:7.2px;line-height:1.35}.failure-card .badge{max-width:104px}
@media(max-width:390px){.nav-item{font-size:6.2px}.nav-item svg{width:19px;height:19px}.bottom-nav{gap:2px;padding-left:4px;padding-right:4px}}

/* ===== Cloudflare Viewer V1.03.8.76 r4 · Falhas Acompanhadas completo, somente leitura ===== */
.failure-view{padding-top:0!important}.failure-tabs{position:sticky;top:0;z-index:9;display:flex;gap:6px;padding:8px 0 7px;overflow-x:auto;scrollbar-width:none;background:linear-gradient(var(--bg) 76%,rgba(242,246,244,0))}.failure-tabs::-webkit-scrollbar{display:none}.failure-tabs button{flex:0 0 auto;min-height:36px;padding:0 11px;border:1px solid var(--line);border-radius:11px;background:#fff;color:#61736b;font-size:7.4px;font-weight:900;white-space:nowrap;box-shadow:0 4px 12px rgba(10,54,39,.03)}.failure-tabs button span{display:inline-grid;place-items:center;min-width:17px;height:17px;margin-left:4px;padding:0 4px;border-radius:999px;background:#edf3f0;color:#60716a;font-size:6.5px}.failure-tabs button.active{border-color:#bad8c9;background:#e6f2ec;color:var(--green)}.failure-tabs button.active span{background:var(--green);color:#fff}.failure-toolbar{display:flex;align-items:center;gap:8px;margin:0 0 8px;padding:9px 10px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 5px 16px rgba(10,54,39,.035)}.failure-toolbar-copy{min-width:0;flex:1}.failure-toolbar-copy b{display:block;font-size:10px}.failure-toolbar-copy span{display:block;margin-top:2px;color:var(--muted);font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.failure-filter-button{height:32px;padding:0 10px;border:1px solid #bad5c8;border-radius:10px;background:#eef6f2;color:var(--green);font-size:7px;font-weight:900}.failure-filter-button span{display:inline-grid;place-items:center;min-width:17px;height:17px;margin-left:4px;padding:0 4px;border-radius:999px;background:var(--green);color:#fff;font-size:6px}.failure-filter-button[hidden]{display:none!important}.summary-four{grid-template-columns:repeat(4,1fr)}.summary-four .kpi{padding-inline:6px}.summary-four .kpi small{font-size:5.6px}.summary-four .kpi strong{font-size:16px}.bad-kpi strong{color:var(--bad)}
.readonly-banner{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px;padding:11px;border:1px solid #c9dcd2;border-radius:14px;background:linear-gradient(135deg,#f8fcfa,#eaf4ef)}.readonly-icon{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:11px;background:#dcece4;color:var(--green);font-size:17px}.readonly-banner b{display:block;font-size:9px}.readonly-banner span{display:block;margin-top:3px;color:var(--muted);font-size:7.3px;line-height:1.45}.readonly-register{overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow)}.readonly-register>header{padding:11px 12px;border-bottom:1px solid var(--line);background:#f7faf8}.readonly-register>header span{display:block;color:var(--green);font-size:6px;font-weight:950;letter-spacing:.5px}.readonly-register>header h3{margin:3px 0 0;font-size:12px}.readonly-fields{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:10px}.readonly-field{min-width:0;min-height:52px;padding:8px;border:1px solid #e0e8e4;border-radius:10px;background:#f9fbfa}.readonly-field.wide{grid-column:1/-1}.readonly-field small{display:block;color:var(--muted);font-size:5.8px;font-weight:900;text-transform:uppercase}.readonly-field span{display:block;margin-top:5px;color:#9aa7a1;font-size:9px}
.failure-details{margin:0 10px 10px;border-top:1px dashed #dce6e1}.failure-details summary{padding:8px 0 2px;color:var(--green);font-size:7px;font-weight:900;cursor:pointer;list-style:none}.failure-details summary::-webkit-details-marker{display:none}.failure-details summary::after{content:'+';float:right}.failure-details[open] summary::after{content:'−'}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:7px 0 2px}.detail-grid>div{padding:7px;border-radius:9px;background:#f5f8f6}.detail-grid small{display:block;color:var(--muted);font-size:5.6px;text-transform:uppercase;font-weight:900}.detail-grid b{display:block;margin-top:2px;font-size:7.4px;overflow-wrap:anywhere}
.dashboard-kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-bottom:8px}.dashboard-kpis>div{min-height:68px;padding:10px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 4px 14px rgba(10,54,39,.03)}.dashboard-kpis small{display:block;color:var(--muted);font-size:6px;font-weight:900;text-transform:uppercase}.dashboard-kpis strong{display:block;margin-top:5px;font-size:22px}.dashboard-kpis .danger strong{color:var(--bad)}.dashboard-grid{display:grid;gap:8px}.chart-card,.process-summary{overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow)}.chart-card>header,.process-summary>header{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;padding:10px 11px;border-bottom:1px solid var(--line);background:#f8faf9}.chart-card header span,.process-summary header span{display:block;color:var(--green);font-size:5.6px;font-weight:950;letter-spacing:.5px}.chart-card h3,.process-summary h3{margin:2px 0 0;font-size:10px}.process-summary>header>b{font-size:15px;color:var(--green)}.mini-bars{display:grid;gap:8px;padding:11px}.mini-bar-label{display:flex;justify-content:space-between;gap:8px;align-items:center}.mini-bar-label span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#31463e;font-size:7px;font-weight:800}.mini-bar-label b{font-size:7px}.mini-bar-track{height:7px;margin-top:4px;overflow:hidden;border-radius:999px;background:#edf2ef}.mini-bar-track i{display:block;height:100%;border-radius:inherit;background:#3d71c7}.mini-bars.green .mini-bar-track i{background:#2f9360}.mini-bars.orange .mini-bar-track i{background:#d88a2c}.mini-bars.purple .mini-bar-track i{background:#7752b5}.mini-bars.teal .mini-bar-track i{background:#258b87}.chart-empty{padding:18px 12px;color:var(--muted);font-size:7px;text-align:center}.month-chart{height:132px;display:flex;align-items:flex-end;gap:6px;padding:12px 10px 6px}.month-item{min-width:0;flex:1;text-align:center}.month-bars{height:102px;display:flex;align-items:flex-end;justify-content:center;gap:3px;border-bottom:1px solid #dce4e0}.month-bars i{position:relative;width:10px;min-height:0;border-radius:4px 4px 0 0}.month-bars i.included{background:#3d71c7}.month-bars i.closed{background:#2f9360}.month-bars i b{position:absolute;top:-10px;left:50%;transform:translateX(-50%);font-size:5px;font-style:normal}.month-item small{display:block;margin-top:4px;color:var(--muted);font-size:5.5px}.chart-key{display:flex;justify-content:center;gap:12px;padding:4px 8px 9px;color:var(--muted);font-size:5.8px}.chart-key span{display:flex;align-items:center;gap:4px}.chart-key i{width:7px;height:7px;border-radius:2px}.chart-key i.included{background:#3d71c7}.chart-key i.closed{background:#2f9360}.process-summary{margin-top:8px}.process-row{padding:9px 10px;border-top:1px solid #edf1ef}.process-row:first-of-type{border-top:0}.process-row>b{display:block;font-size:8px}.process-row>div{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:6px}.process-row span{display:block;padding:5px;border-radius:7px;background:#f3f7f5;color:var(--muted);font-size:5.2px}.process-row strong{display:block;margin-top:1px;color:var(--text);font-size:7.5px}
.audit-list{display:grid;gap:7px}.audit-card{padding:10px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 5px 16px rgba(10,54,39,.04)}.audit-card>header{display:flex;justify-content:space-between;align-items:center;gap:8px}.audit-card time{color:var(--muted);font-size:6.4px}.audit-card header span{max-width:50%;padding:4px 7px;border-radius:999px;background:#e9f2ed;color:var(--green);font-size:5.7px;font-weight:950;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.audit-main{display:flex;align-items:baseline;gap:8px;margin-top:6px}.audit-main b{font-size:10px}.audit-main span{color:var(--muted);font-size:7px}.audit-card p{margin:7px 0 0;padding:7px;border-radius:8px;background:#f4f7f5;font-size:7.2px;line-height:1.4}.audit-card footer{margin-top:6px;color:#7d8d86;font-size:5.8px}
.filter-sheet[hidden]{display:none!important}.filter-sheet{position:fixed;inset:0;z-index:100;pointer-events:none}.filter-sheet.open{pointer-events:auto}.filter-sheet-backdrop{position:absolute;inset:0;border:0;background:rgba(5,28,20,.48);opacity:0;transition:opacity .18s}.filter-sheet.open .filter-sheet-backdrop{opacity:1}.filter-sheet-panel{position:absolute;left:0;right:0;bottom:0;max-height:min(82dvh,680px);overflow:auto;padding:0 12px calc(12px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:#fff;box-shadow:0 -20px 60px rgba(0,0,0,.25);transform:translateY(105%);transition:transform .2s}.filter-sheet.open .filter-sheet-panel{transform:translateY(0)}.filter-sheet-panel>header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:13px 0 10px;background:#fff;border-bottom:1px solid #edf1ef}.filter-sheet-panel header span{display:block;color:var(--green);font-size:6px;font-weight:950}.filter-sheet-panel h2{margin:2px 0 0;font-size:14px}.filter-sheet-panel header button{width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:#f5f8f6;color:#50635b;font-size:18px}.filter-sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:11px 0}.filter-sheet-grid label:nth-child(5){grid-column:1/-1}.filter-sheet-grid label span{display:block;margin:0 0 4px;color:#53675e;font-size:6px;font-weight:900;text-transform:uppercase}.filter-sheet-grid select{width:100%;height:42px;border:1px solid var(--line);border-radius:11px;padding:0 9px;background:#f9fbfa;color:var(--text);font-size:8px;outline:0}.filter-sheet-panel>footer{position:sticky;bottom:0;display:grid;grid-template-columns:1fr 1.5fr;gap:7px;padding-top:9px;background:#fff}.filter-sheet-panel>footer button{height:43px;border-radius:11px;font-size:8px;font-weight:900}.sheet-ghost{border:1px solid var(--line);background:#fff;color:#52655d}.sheet-primary{border:0;background:linear-gradient(135deg,var(--green3),var(--green2));color:#fff}
@media(min-width:600px){.dashboard-grid{grid-template-columns:1fr 1fr}.dashboard-kpis{grid-template-columns:repeat(4,1fr)}.filter-sheet-panel{left:50%;right:auto;width:min(560px,100%);transform:translate(-50%,105%)}.filter-sheet.open .filter-sheet-panel{transform:translate(-50%,0)}}
@media(max-width:380px){.summary-four{grid-template-columns:1fr 1fr}.process-row>div{grid-template-columns:1fr 1fr}.readonly-fields{grid-template-columns:1fr}.readonly-field.wide{grid-column:auto}.filter-sheet-grid{grid-template-columns:1fr}.filter-sheet-grid label:nth-child(5){grid-column:auto}}
