:root{--navy:#17324a;--navy-2:#213f5a;--navy-3:#2d4e6c;--bg:#f4f6f8;--card:#fff;--border:#dfe4ea;--text:#1d2a36;--muted:#6b7785;--accent:#0b7bc0;--accent-soft:#e3f0f9;--good:#1e8a5a;--warn:#e38418;--crit:#d03b3b;--none:#8a96a3;--ref:#6d4bb3;--s-vib:#2a78d6;--s-ele:#eb6834;--radius:10px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button{font:inherit;color:inherit;cursor:pointer}select,input{font:inherit}.app{grid-template-columns:228px 1fr;height:100vh;display:grid}.sidebar{background:var(--navy);color:#dbe6f0;flex-direction:column;gap:6px;padding:18px 12px 14px;display:flex;overflow-y:auto}.brand{letter-spacing:.12em;color:#9fd3f5;padding:2px 8px 0;font-size:17px;font-weight:800}.brand-sub{color:#8fa6bb;padding:0 8px 12px;font-size:11px;line-height:1.4}.nav a{color:#d4e0ea;border-radius:7px;align-items:center;gap:11px;padding:9px 10px;font-size:14px;text-decoration:none;display:flex}.nav a:hover{background:var(--navy-2)}.nav a.active{background:var(--accent);color:#fff;font-weight:600}.nav .num{color:#fff;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:grid}.side-section{color:#8fa6bb;text-transform:uppercase;letter-spacing:.06em;margin-top:14px;padding:0 8px;font-size:11px;font-weight:700}.side-field{color:#a9bccd;flex-direction:column;gap:4px;padding:4px 8px;font-size:11px;display:flex}.side-field select{background:var(--navy-2);color:#e6eef5;border:1px solid var(--navy-3);border-radius:6px;padding:6px 8px;font-size:13px}.toggle{color:#d4e0ea;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.side-foot{color:#7f97ad;border-top:1px solid var(--navy-2);margin-top:auto;padding:10px 8px 0;font-size:10.5px;line-height:1.45}.main{flex-direction:column;min-width:0;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--border);background:#fff;flex-wrap:wrap;align-items:center;gap:16px;padding:12px 22px;display:flex}.crumbs{font-size:15px;font-weight:700}.crumbs span{color:var(--muted);font-weight:500}.clock{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-left:auto;font-size:12.5px;display:flex}.clock .time{font-variant-numeric:tabular-nums;color:var(--text);min-width:132px;font-weight:600}.clock input[type=range]{width:220px;accent-color:var(--accent)}.btn{border:1px solid var(--border);background:#fff;border-radius:7px;align-items:center;gap:6px;padding:6px 11px;font-size:12.5px;display:inline-flex}.btn:hover{border-color:#b9c4cf}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.live{color:var(--good);border-color:#bfe3d0}.btn.live.on{background:#e7f5ee;font-weight:700}.live-dot{background:var(--good);border-radius:50%;width:8px;height:8px;display:inline-block}.page{flex-direction:column;flex:1;gap:14px;padding:18px 22px 28px;display:flex;overflow-y:auto}.page>*{flex-shrink:0}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;display:flex}.page-head h1{letter-spacing:-.01em;margin:0;font-size:24px}.page-head p{color:var(--muted);margin:2px 0 0;font-size:13.5px}.trail{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--accent-soft);color:#0a5d93;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.chip.risk{color:#9a5208;background:#fdf0e3}.chip.ref{color:var(--ref);background:#efe9f9}.chip.grey{color:var(--muted);background:#eef1f4}.grid{gap:14px;display:grid}.kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.kpi{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.kpi .label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.kpi .value{font-variant-numeric:tabular-nums;margin-top:4px;font-size:26px;font-weight:750}.kpi .sub{color:var(--muted);margin-top:2px;font-size:11.5px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:14px 16px}.card h3{justify-content:space-between;align-items:center;gap:8px;margin:0 0 10px;font-size:14px;display:flex}.card h3 small{color:var(--muted);font-size:11.5px;font-weight:500}.card .hint{color:var(--muted);margin:-4px 0 10px;font-size:12px;line-height:1.45}.twin-wrap{border-radius:var(--radius);border:1px solid var(--border);background:#f4f6f8;position:relative;overflow:hidden}.twin-canvas{width:100%;position:relative;overflow:hidden}.float{z-index:5;will-change:transform;position:absolute;top:0;left:0}.twin-overlay{pointer-events:none;flex-wrap:wrap;gap:6px;display:flex;position:absolute;top:10px;left:12px}.twin-overlay .chip{border:1px solid var(--border);color:var(--text);background:#ffffffeb}.twin-legend{border:1px solid var(--border);background:#ffffffeb;border-radius:8px;flex-wrap:wrap;gap:10px;padding:6px 10px;font-size:11.5px;display:flex;position:absolute;bottom:10px;right:12px}.twin-legend span{align-items:center;gap:5px;display:inline-flex}.twin-tag,.asset-tag{border:1px solid var(--border);white-space:nowrap;background:#fffffff2;border-radius:999px;align-items:center;gap:7px;padding:6px 12px;font-size:13px;display:inline-flex;box-shadow:0 2px 8px #17324a1f}.twin-tag.sel,.asset-tag.sel{border-color:var(--accent);box-shadow:0 0 0 2px #0b7bc040}.twin-tag .muted,.asset-tag .muted{color:var(--muted)}.twin-tag .small{font-size:11px}.dot{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.status{align-items:center;gap:6px;font-weight:700;display:inline-flex}.status svg{flex:none}.asset-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.asset-cell{border:1px solid var(--border);text-align:left;background:#fff;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:12.5px;display:flex}.asset-cell.normal{background:#eef7f2;border-color:#cfe7da}.asset-cell.atencao{background:#fdf2e6;border-color:#f2cc9f}.asset-cell.critico{background:#fbeaea;border-color:#efb5b5}.asset-cell.sem-referencia{background:#f3f5f7}.asset-cell.sel{outline:2px solid var(--accent);outline-offset:1px}.mrow{grid-template-columns:74px repeat(4,1fr);align-items:center;gap:6px;margin-bottom:6px;display:grid}.mrow .mname{font-size:12.5px;font-weight:700}.queue{flex-direction:column;gap:6px;display:flex}.qitem{border:1px solid var(--border);text-align:left;background:#fff;border-radius:8px;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:12.5px;display:grid}.qitem:hover{border-color:#b9c4cf}.qitem.first{background:#fdf2e6;border-color:#f2cc9f}.qitem .rank{color:var(--warn);font-weight:800}.qitem .meta{color:var(--muted);font-size:11.5px}.bar{background:#edf0f3;border-radius:3px;height:6px;overflow:hidden}.bar>i{border-radius:3px;height:100%;display:block}table.t{border-collapse:collapse;width:100%;font-size:12.5px}table.t th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:6px 8px;font-size:11.5px;font-weight:600}table.t td{vertical-align:middle;border-bottom:1px solid #eef1f4;padding:7px 8px}table.t tr.sel td{background:var(--accent-soft)}table.t tr.click{cursor:pointer}table.t tr.click:hover td{background:#f6f9fb}.seg{border:1px solid var(--border);background:#fff;border-radius:8px;display:inline-flex;overflow:hidden}.seg button{border:0;border-right:1px solid var(--border);background:0 0;padding:6px 11px;font-size:12.5px}.seg button:last-child{border-right:0}.seg button.on{background:var(--accent);color:#fff;font-weight:600}.contrib{grid-template-columns:110px 1fr 46px;align-items:center;gap:8px;margin-bottom:8px;font-size:12.5px;display:grid}.contrib .bar{height:12px}.timeline-events{flex-direction:column;gap:8px;display:flex}.ev{border-left:3px solid var(--border);cursor:pointer;background:#fafbfc;border-radius:0 8px 8px 0;grid-template-columns:112px 1fr;gap:10px;padding:8px 10px;font-size:12.5px;display:grid}.ev:hover{background:#f2f6f9}.ev .when{color:var(--muted);font-size:11.5px}.ev.falha{border-color:var(--crit)}.ev.inspecao{border-color:var(--ref)}.ev.intervencao{border-color:var(--accent)}.ev.alerta{border-color:var(--warn)}.ev.dados{border-color:var(--none)}.hyp{border:1px solid var(--border);border-radius:8px;margin-bottom:8px;padding:10px 12px}.hyp .top{justify-content:space-between;gap:8px;font-size:13px;font-weight:650;display:flex}.hyp p{color:var(--muted);margin:6px 0 0;font-size:12px;line-height:1.45}.hyp .missing{color:#9a5208}.modal-back{z-index:100;background:#17324a73;place-items:center;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;flex-direction:column;gap:12px;width:min(520px,92vw);padding:20px 22px;display:flex;box-shadow:0 20px 60px #00000040}.modal h2{margin:0;font-size:18px}.modal label{color:var(--muted);flex-direction:column;gap:4px;font-size:12.5px;display:flex}.modal select,.modal input,.modal textarea{border:1px solid var(--border);color:var(--text);border-radius:7px;padding:8px 10px;font-size:13.5px}.modal .actions{justify-content:flex-end;gap:8px;display:flex}.value-chain{border:1px solid var(--border);border-radius:var(--radius);background:#fff;grid-template-columns:repeat(4,1fr);gap:0;display:grid;overflow:hidden}.vc{border-right:1px solid var(--border);color:var(--muted);padding:10px 14px;font-size:12px}.vc:last-child{border-right:0}.vc b{color:var(--text);letter-spacing:.03em;font-size:12.5px;display:block}.vc.on{background:var(--accent-soft)}.vc.on b{color:#0a5d93}.reg-list{flex-direction:column;gap:8px;display:flex}.reg{grid-template-columns:1fr 70px 110px;align-items:center;gap:8px;font-size:12.5px;display:grid}.versions{flex-direction:column;gap:8px;display:flex}.ver{border:1px solid var(--border);border-radius:8px;grid-template-columns:52px 1fr auto;align-items:start;gap:10px;padding:8px 10px;font-size:12.5px;display:grid}.ver.active{border-color:var(--ref);background:#f6f2fc}.ver .tag{color:var(--ref);font-weight:800}.ver p{color:var(--muted);margin:2px 0 0;font-size:11.5px;line-height:1.4}.empty{color:var(--muted);padding:10px 0;font-size:12.5px}.foot-note{color:var(--muted);font-size:11.5px}@media (width<=1100px){.app{grid-template-columns:1fr;height:auto}.sidebar{flex-flow:wrap}.main,.page{overflow:visible}}.preset-bar{z-index:6;border:1px solid var(--border);background:#fffffff2;border-radius:8px;gap:0;display:flex;position:absolute;bottom:10px;left:12px;overflow:hidden}.preset-bar button{border:0;border-right:1px solid var(--border);background:0 0;padding:6px 10px;font-size:12px}.preset-bar button:last-child{border-right:0}.preset-bar button.on{background:var(--accent);color:#fff;font-weight:600}.nav-txt{flex-direction:column;line-height:1.2;display:flex}.nav-txt small{color:#8fa6bb;text-transform:uppercase;letter-spacing:.06em;font-size:10.5px}.nav a.active .nav-txt small{color:#d6ecfa}.conn{color:var(--good);align-items:center;gap:6px;font-weight:700;display:inline-flex}.live-dot.pulse{animation:1.6s ease-in-out infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 #1e8a5a80}50%{box-shadow:0 0 0 5px #1e8a5a00}}.topbar{z-index:10;position:relative}.twin-slot{border-radius:var(--radius);border:1px solid var(--border);background:#f2f4f6}.twin-stage{z-index:4;border-radius:var(--radius);will-change:transform;position:fixed;top:0;left:0;overflow:hidden}.twin-stage canvas{display:block}.twin-stage .twin-overlay{z-index:6}.chip.whatif{color:#9a5208;background:#fff4e5;border:1px solid #f2cc9f}.twin-overlay .chip.whatif{color:#9a5208;background:#fff4e5;border-color:#f2cc9f}.twin-loader{z-index:8;color:var(--text);background:#f2f4f6;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:13px;transition:opacity .5s;display:flex;position:absolute;inset:0}.twin-loader span{color:var(--muted);font-size:12px}.twin-loader.done{opacity:0;pointer-events:none}.spinner{border:3px solid #d6e2ec;border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.whatif-panel{background:linear-gradient(#fffaf3,#fff 120px);border-color:#f2cc9f}.ctl-list{flex-direction:column;gap:14px;display:flex}.ctl{color:var(--muted);flex-direction:column;gap:6px;font-size:12.5px;display:flex}.ctl-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.ctl-top b{color:var(--text);font-variant-numeric:tabular-nums}.ctl input[type=range]{accent-color:#e38418;width:100%}.ctl select{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:7px;padding:7px 9px;font-size:13px}.ctl-hint{font-size:11.5px;line-height:1.4}.switch{cursor:pointer;background:#cfd6dd;border-radius:11px;flex:none;width:38px;height:22px;transition:background .15s;position:relative}.switch i{background:#fff;border-radius:50%;width:16px;height:16px;transition:left .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0003}.switch.on{background:#1e8a5a}.switch.on i{left:19px}.feed{flex-direction:column;gap:2px;font-size:12.5px;display:flex}.feed-row{border-bottom:1px solid #f0f2f4;grid-template-columns:68px 10px 64px 1fr;align-items:center;gap:8px;padding:5px 4px;animation:.4s fadein;display:grid}.feed-row .when{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11.5px}@keyframes fadein{0%{background:#eef6fc}to{background:0 0}}.value-list{flex-direction:column;gap:12px;display:flex}.value-list>div{grid-template-columns:74px 1fr auto;align-items:center;gap:10px;font-size:13px;display:grid}.value-list b{color:var(--accent);font-size:20px}.value-list small{color:var(--muted);margin-top:2px;font-size:11.5px;display:block}.value-list em{color:var(--good);white-space:nowrap;font-style:normal;font-weight:700}.reco{flex-direction:column;gap:10px;display:flex}.reco b{font-size:15px;line-height:1.35}.reco p{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.reco .btn{align-self:flex-start;padding:8px 14px}.sidebar{z-index:10;position:relative}.twin-stage .float{z-index:5}.mlist{flex-direction:column;gap:8px;display:flex}.mcard{text-align:left;border:1px solid var(--border);background:#fff;border-radius:8px;flex-direction:column;gap:3px;padding:9px 11px;font-size:12.5px;display:flex}.mcard:hover{border-color:#b9c4cf}.mcard.sel{border-color:var(--accent);box-shadow:0 0 0 2px #0b7bc02e}.mcard-top{justify-content:space-between;align-items:center;gap:6px;display:flex}.mcard-kpis{color:var(--muted);flex-direction:column;gap:1px;font-size:11.5px;display:flex}.mcard-kpis b{color:var(--text);font-variant-numeric:tabular-nums}
