:root {
  color-scheme: dark;
  --noir-950:#050506; --noir-900:#0b0b0d; --noir-850:#121216; --noir-800:#1b1b21;
  --ivory-50:#f6f1e8; --ivory-100:#ece4d6; --stone-300:#b8b3a8; --stone-500:#77736a;
  --blue:#4c7dff; --gold:#c9a86a; --crimson:#c94f4f; --violet:#8b5cf6; --green:#6ee7b7;
  --bg:var(--noir-950); --surface:rgba(18,18,22,.78); --surface-strong:rgba(27,27,33,.92);
  --text:var(--ivory-50); --muted:var(--stone-300); --dim:var(--stone-500); --border:rgba(246,241,232,.12);
  --font-ui:"Manrope",system-ui,-apple-system,Segoe UI,sans-serif; --font-mono:"IBM Plex Mono",Consolas,monospace; --font-serif:"Instrument Serif",Georgia,serif;
  --ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;min-height:100vh;background:linear-gradient(rgba(246,241,232,.032) 1px,transparent 1px),linear-gradient(90deg,rgba(246,241,232,.032) 1px,transparent 1px),radial-gradient(circle at 70% 18%,rgba(76,125,255,.16),transparent 30%),radial-gradient(circle at 12% 78%,rgba(201,168,106,.10),transparent 32%),var(--bg);background-size:64px 64px,64px 64px,auto,auto,auto;color:var(--text);font-family:var(--font-ui);line-height:1.55;overflow-x:hidden} a{color:inherit;text-decoration:none} button{font:inherit;color:inherit} .app{width:min(1720px,calc(100% - 48px));margin:0 auto}.topbar{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--border);background:rgba(5,5,6,.78);backdrop-filter:blur(18px)}
.home-ribbon{display:none;position:relative;width:100%;border-bottom:1px solid rgba(76,125,255,.22);padding:8px 24px;background:rgba(76,125,255,.08);color:var(--blue);font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.06em}.brand small{color:var(--blue);font-size:.62rem;letter-spacing:.08em}.top-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.home-btn{border-color:rgba(76,125,255,.36);background:rgba(76,125,255,.10);color:var(--blue)}.project-footer{width:min(1720px,calc(100% - 48px));margin:0 auto 36px;display:flex;justify-content:space-between;gap:18px;align-items:center;border:1px solid var(--border);border-radius:22px;padding:16px 18px;background:rgba(18,18,22,.62);color:var(--muted)}.project-footer strong{display:block;color:var(--text);font-size:.82rem}.project-footer span{display:block;color:var(--dim);font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;margin-top:4px}
.topbar-inner{width:min(1720px,calc(100% - 48px));margin:0 auto;display:grid;grid-template-columns:1fr auto auto;gap:18px;align-items:center;min-height:72px}.brand{display:flex;gap:12px;align-items:center;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(246,241,232,.2);border-radius:999px;background:rgba(246,241,232,.04);font-weight:700}.status-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(76,125,255,.32);border-radius:999px;padding:8px 12px;color:var(--blue);font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;background:rgba(76,125,255,.08)}.pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 20px rgba(110,231,183,.7);animation:pulse 1.6s infinite}.btn{border:1px solid var(--border);border-radius:999px;background:rgba(246,241,232,.04);padding:10px 14px;font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:all .18s var(--ease)}.btn:hover{transform:translateY(-1px);border-color:rgba(246,241,232,.28)}.hero{padding:56px 0 28px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);gap:32px;align-items:end}.eyebrow{font-family:var(--font-mono);color:var(--blue);font-size:.75rem;text-transform:uppercase;letter-spacing:.09em}.hero h1{margin:10px 0 18px;font-size:clamp(3.2rem,7vw,8.4rem);line-height:.9;letter-spacing:-.065em}.hero h1 em{font-family:var(--font-serif);font-weight:400;color:var(--gold)}.hero p{max-width:880px;color:var(--muted);font-size:1.04rem}.hero-card{border:1px solid var(--border);border-radius:28px;padding:22px;background:linear-gradient(135deg,rgba(76,125,255,.12),transparent 45%),rgba(18,18,22,.72);box-shadow:0 28px 80px rgba(0,0,0,.28)}.hero-card h2{margin:0 0 8px;font-size:1.08rem}.hero-card p{margin:0;color:var(--muted);font-size:.9rem}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0 26px}.kpi{border:1px solid var(--border);border-radius:18px;padding:16px;background:rgba(18,18,22,.68)}.kpi strong{display:block;font-size:clamp(1.6rem,3vw,3.1rem);line-height:1;letter-spacing:-.06em}.kpi span{display:block;margin-top:8px;color:var(--dim);font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.06em}.workspace{display:grid;grid-template-columns:minmax(740px,1fr) 420px;gap:18px;align-items:start}.map-panel,.side-panel,.bottom-panel{border:1px solid var(--border);border-radius:26px;background:rgba(18,18,22,.72);box-shadow:0 20px 70px rgba(0,0,0,.25);overflow:hidden}.panel-head{display:flex;justify-content:space-between;gap:16px;align-items:center;border-bottom:1px solid var(--border);padding:16px 18px}.panel-title{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.panel-sub{font-family:var(--font-mono);font-size:.66rem;color:var(--dim);text-transform:uppercase;letter-spacing:.07em}.map-wrap{position:relative;height:720px;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(76,125,255,.08),transparent 35%)}#flowSvg{position:absolute;inset:0;width:100%;height:100%;z-index:1}.server-node{position:absolute;z-index:3;width:184px;min-height:102px;transform:translate(-50%,-50%);border:1px solid rgba(246,241,232,.14);border-radius:18px;padding:13px;background:rgba(5,5,6,.76);backdrop-filter:blur(12px);transition:border-color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease)}.server-node.active{border-color:rgba(76,125,255,.55);box-shadow:0 0 0 1px rgba(76,125,255,.10),0 0 42px rgba(76,125,255,.22);transform:translate(-50%,-50%) scale(1.02)}.server-top{display:flex;justify-content:space-between;gap:8px;align-items:start}.server-name{font-weight:800;font-size:.82rem;line-height:1.15}.server-meta{margin-top:6px;color:var(--dim);font-family:var(--font-mono);font-size:.58rem;text-transform:uppercase;letter-spacing:.055em}.server-bars{display:grid;gap:5px;margin-top:10px}.bar{height:5px;border-radius:999px;background:rgba(246,241,232,.08);overflow:hidden}.bar span{display:block;height:100%;width:50%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--gold));transition:width .4s var(--ease)}.asset-badge{position:absolute;z-index:4;min-width:92px;max-width:138px;transform:translate(-50%,-50%);border:1px solid rgba(201,168,106,.22);border-radius:999px;padding:6px 9px;background:rgba(201,168,106,.08);color:var(--ivory-100);font-family:var(--font-mono);font-size:.56rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flow-line{stroke:rgba(246,241,232,.16);stroke-width:1.35;fill:none}.flow-line.active{stroke:var(--blue);stroke-width:2.25;filter:drop-shadow(0 0 9px rgba(76,125,255,.8));stroke-dasharray:10 10;animation:dash 1.2s linear infinite}.packet{position:absolute;z-index:5;width:10px;height:10px;border-radius:50%;background:var(--blue);box-shadow:0 0 18px rgba(76,125,255,.85);pointer-events:none}.side-panel{position:sticky;top:90px}.active-jobs{display:grid;gap:10px;padding:14px;max-height:340px;overflow:auto}.job-card{border:1px solid var(--border);border-radius:16px;padding:12px;background:rgba(5,5,6,.35)}.job-card.running{border-color:rgba(76,125,255,.35)}.job-card.warning{border-color:rgba(201,168,106,.45)}.job-card.error{border-color:rgba(201,79,79,.45)}.job-card h3{margin:0;font-size:.9rem}.job-route{margin-top:6px;color:var(--dim);font-family:var(--font-mono);font-size:.58rem;text-transform:uppercase;letter-spacing:.055em}.progress{height:7px;background:rgba(246,241,232,.08);border-radius:999px;overflow:hidden;margin-top:10px}.progress span{display:block;height:100%;width:0%;background:linear-gradient(90deg,var(--blue),var(--green));border-radius:999px;transition:width .3s linear}.job-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:10px;color:var(--muted);font-family:var(--font-mono);font-size:.6rem}.logs{padding:14px;height:390px;overflow:auto;background:rgba(5,5,6,.22)}.log-row{display:grid;grid-template-columns:72px 62px 1fr;gap:8px;border-bottom:1px solid rgba(246,241,232,.06);padding:7px 0;font-family:var(--font-mono);font-size:.62rem;color:var(--muted)}.log-row .level{text-transform:uppercase}.log-row.success .level{color:var(--green)}.log-row.warning .level,.log-row.retry .level{color:var(--gold)}.log-row.error .level{color:var(--crimson)}.bottom-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin:18px 0 60px}.table-wrap{padding:14px;overflow:auto;max-height:390px}.run-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.66rem}.run-table th{color:var(--dim);font-weight:500;text-align:left;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);padding:10px}.run-table td{padding:10px;border-bottom:1px solid rgba(246,241,232,.06);color:var(--muted)}.status-success{color:var(--green)}.status-error{color:var(--crimson)}.status-running{color:var(--blue)}.asset-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px}.asset-card{border:1px solid rgba(246,241,232,.09);border-radius:14px;padding:10px;background:rgba(5,5,6,.22)}.asset-card strong{display:block;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-card span{font-family:var(--font-mono);color:var(--dim);font-size:.56rem;text-transform:uppercase;letter-spacing:.06em}.legend{display:flex;flex-wrap:wrap;gap:10px;padding:0 18px 18px;color:var(--dim);font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.055em}.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.blue{background:var(--blue)}.gold{background:var(--gold)}.green{background:var(--green)}.red{background:var(--crimson)}@keyframes dash{to{stroke-dashoffset:-20}}@keyframes pulse{0%,100%{opacity:.55;transform:scale(.9)}50%{opacity:1;transform:scale(1.15)}}@media(max-width:1180px){.hero,.workspace,.bottom-grid{grid-template-columns:1fr}.map-wrap{height:740px}.side-panel{position:relative;top:0}.kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.home-ribbon{display:block}.top-actions{justify-content:flex-start}.project-footer{width:min(100% - 24px,680px);flex-direction:column;align-items:flex-start}.app,.topbar-inner{width:min(100% - 24px,680px)}.topbar-inner{grid-template-columns:1fr}.hero h1{font-size:3.4rem}.kpis{grid-template-columns:1fr}.map-wrap{height:820px}.server-node{width:158px}.asset-list{grid-template-columns:1fr}.log-row{grid-template-columns:1fr}}


/* ============================================================
   V2 OBSERVABILIDADE · painéis avançados
   ============================================================ */
.observability-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0 24px}.obs-card{border:1px solid var(--border);border-radius:22px;padding:18px;background:linear-gradient(180deg,rgba(246,241,232,.055),rgba(246,241,232,.02)),rgba(18,18,22,.78);box-shadow:0 24px 80px rgba(0,0,0,.18);min-height:150px}.obs-card.score-card{border-color:rgba(76,125,255,.32);background:radial-gradient(circle at 12% 8%,rgba(76,125,255,.18),transparent 42%),rgba(18,18,22,.82)}.obs-label{display:block;color:var(--blue);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}.obs-card strong{display:block;font-size:clamp(2rem,4vw,4.2rem);line-height:.95;letter-spacing:-.07em}.obs-card p{margin:10px 0 0;color:var(--muted);font-size:.86rem;line-height:1.45}.observability-deep{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:18px;margin:24px 0 44px}.incident-list{display:grid;gap:10px;max-height:380px;overflow:auto;padding-right:4px}.incident-item{border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:16px;padding:12px;background:rgba(5,5,6,.20)}.incident-item.error{border-left-color:var(--crimson)}.incident-item.retry{border-left-color:var(--blue)}.incident-item strong{display:block;font-size:.88rem}.incident-item span{display:block;margin-top:4px;color:var(--dim);font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.06em}.performance-panel{display:grid;gap:12px}.perf-row{display:grid;grid-template-columns:115px 1fr 54px;gap:10px;align-items:center}.perf-row span{color:var(--dim);font-family:var(--font-mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.06em}.perf-track{height:10px;border:1px solid var(--border);border-radius:999px;overflow:hidden;background:rgba(246,241,232,.04)}.perf-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--gold));width:0%;transition:width .5s var(--ease)}.perf-note{margin-top:12px;color:var(--muted);font-size:.86rem}.lineage-view{display:grid;gap:12px}.lineage-step{position:relative;border:1px solid var(--border);border-radius:16px;padding:12px 12px 12px 40px;background:rgba(5,5,6,.20)}.lineage-step:before{content:"";position:absolute;left:16px;top:17px;width:10px;height:10px;border-radius:999px;background:var(--blue);box-shadow:0 0 18px rgba(76,125,255,.45)}.lineage-step:after{content:"";position:absolute;left:20px;top:32px;bottom:-16px;width:1px;background:rgba(76,125,255,.30)}.lineage-step:last-child:after{display:none}.lineage-step strong{display:block;font-size:.9rem}.lineage-step span{display:block;color:var(--dim);font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;margin-top:4px}.flow-line.warning{stroke:var(--gold);stroke-width:.42}.flow-line.error{stroke:var(--crimson);stroke-width:.48}.flow-line.success{stroke:var(--green)}
@media(max-width:1180px){.observability-grid,.observability-deep{grid-template-columns:1fr 1fr}.lineage-panel{grid-column:1/-1}}
@media(max-width:760px){.observability-grid,.observability-deep{grid-template-columns:1fr}.perf-row{grid-template-columns:92px 1fr 44px}}


/* ============================================================
   V3 PLAYGROUND ANALÍTICO · filtros, isolamento e consulta simulada
   ============================================================ */
.playground-shell{border:1px solid var(--border);border-radius:28px;background:linear-gradient(180deg,rgba(246,241,232,.052),rgba(246,241,232,.018)),rgba(18,18,22,.78);box-shadow:0 24px 80px rgba(0,0,0,.22);padding:22px;margin:18px 0 24px}.playground-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start;margin-bottom:18px}.playground-head h2{margin:0 0 8px;font-size:clamp(1.8rem,3.4vw,3.6rem);line-height:1;letter-spacing:-.06em}.playground-head p{max-width:920px;color:var(--muted);margin:0}.eyebrow.compact{margin-bottom:10px}.filter-summary{border:1px solid rgba(76,125,255,.28);border-radius:999px;padding:10px 14px;background:rgba(76,125,255,.08);color:var(--blue);font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}.filter-grid label,.query-label{display:grid;gap:6px;color:var(--dim);font-family:var(--font-mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.07em}.filter-grid select,.query-label select,textarea{width:100%;border:1px solid var(--border);border-radius:13px;background:rgba(5,5,6,.45);color:var(--ivory);padding:11px 12px;font-family:var(--font-mono);font-size:.72rem;outline:none}.filter-grid select:focus,.query-label select:focus,textarea:focus{border-color:rgba(76,125,255,.48);box-shadow:0 0 0 3px rgba(76,125,255,.12)}.playground-actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 20px}.query-grid{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(0,1.4fr);gap:16px}.query-panel,.query-result-panel{border:1px solid var(--border);border-radius:22px;background:rgba(5,5,6,.24);overflow:hidden}.panel-head.no-border{border-bottom:0}.query-panel{padding-bottom:16px}.query-panel .query-label,.query-panel textarea,.query-panel .technical-btn{width:calc(100% - 32px);margin-left:16px;margin-right:16px}.query-panel textarea{min-height:152px;resize:vertical;line-height:1.55;color:var(--ivory-100)}.technical-btn{justify-content:center;border-color:rgba(76,125,255,.34);background:rgba(76,125,255,.08);color:var(--blue);margin-top:12px}.playground-table-wrap{max-height:360px}.server-node.is-filtered-out,.asset-badge.is-filtered-out{opacity:.12;filter:grayscale(1);transform:translate(-50%,-50%) scale(.94)}.flow-line.is-filtered-out{opacity:.07;stroke-dasharray:0;filter:none}.server-node.is-filtered-in{border-color:rgba(76,125,255,.45)}.asset-badge.is-filtered-in{border-color:rgba(76,125,255,.44);background:rgba(76,125,255,.12)}.asset-card.hidden-by-filter{display:none}.run-table tr.hidden-by-filter{display:none}.query-empty{color:var(--dim);font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.status-warning,.status-retry{color:var(--gold)}@media(max-width:1180px){.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.query-grid,.playground-head{grid-template-columns:1fr}.filter-summary{justify-self:start}}@media(max-width:720px){.playground-shell{padding:16px;border-radius:22px}.filter-grid{grid-template-columns:1fr}.query-panel .query-label,.query-panel textarea,.query-panel .technical-btn{width:calc(100% - 24px);margin-left:12px;margin-right:12px}}
