*,*:before,*:after{box-sizing:border-box}:root{color-scheme:dark;--bg: #0d1117;--surface: #161b22;--border: #30363d;--text: #e6edf3;--muted: #8b949e;--green: #3fb950;--yellow: #d29922;--red: #f85149;--blue: #79c0ff;--orange: #e3b341;--hardware: #4493f8;--general: #bb8009;--mono: "Cascadia Code", Consolas, monospace}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}a{color:var(--blue)}header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.5rem;border-bottom:1px solid var(--border);background:var(--surface)}header h1{margin:0;font-size:1.05rem;font-weight:650}header h1 span{margin-left:.4rem;color:var(--muted);font-size:.85rem;font-weight:400}main{width:min(1200px,calc(100% - 2rem));margin:0 auto;padding:1.5rem 0}.header-actions{display:flex;align-items:center;gap:.6rem}.period-selector{display:flex;overflow:hidden;border:1px solid var(--border);border-radius:8px}.period-selector button{padding:.45rem .85rem;border:0;background:var(--bg);color:var(--muted);cursor:pointer;font-size:.8rem;font-weight:650}.period-selector button+button{border-left:1px solid var(--border)}.period-selector button.active{background:#1f6feb33;color:var(--blue)}.status-bar{display:flex;overflow:hidden;border:1px solid var(--border);border-radius:8px}.status-pill{display:flex;align-items:center;gap:.55rem;min-width:120px;padding:.45rem .85rem;background:var(--bg)}.status-pill+.status-pill{border-left:1px solid var(--border)}.status-pill strong,.pill-label{display:block}.status-pill strong{font-size:.9rem}.pill-label{color:var(--muted);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.feature-toggle{display:flex;align-items:center;gap:.55rem;padding:.45rem .85rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);cursor:pointer}.feature-toggle:disabled{cursor:not-allowed;opacity:.45}.feature-toggle .switch{position:relative;width:30px;height:16px;border-radius:999px;background:#30363d;transition:background .15s}.feature-toggle .knob{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:999px;background:var(--muted);transition:transform .15s,background .15s}.feature-toggle.on .switch{background:#23863644}.feature-toggle.on .knob{transform:translate(14px);background:var(--green)}.dot{width:9px;height:9px;border-radius:999px;background:var(--muted)}.dot.green{background:var(--green);box-shadow:0 0 7px var(--green)}.dot.yellow{background:var(--yellow);box-shadow:0 0 7px var(--yellow)}.dot.red{background:var(--red)}.dot.orange{background:var(--orange)}.dot.gray{background:var(--muted)}.cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;margin-bottom:1.5rem}.card,.table-wrap,.log-box,.chart-box{border:1px solid var(--border);border-radius:8px;background:var(--surface)}.card{min-width:0;padding:1rem 1.25rem}.card-label,.section-title{color:var(--muted);font-size:.72rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.card-main{margin:.45rem 0 .3rem;font-size:1.5rem;font-weight:750}.card-sub{overflow:hidden;color:var(--muted);font-family:var(--mono);font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.muted{color:var(--muted);font-size:1rem}.badge{display:inline-block;padding:.2em .55em;border:1px solid var(--border);border-radius:4px;font-size:.82rem}.chip{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:.18rem .5rem;border:1px solid var(--border);border-radius:4px;font-size:.74rem;font-weight:700;line-height:1.2;white-space:nowrap}.type-generate{border-color:#1f6feb66;background:#0d1f5c44;color:var(--blue)}.type-resolve{border-color:#8957e566;background:#2d1b6944;color:#d2a8ff}.green{color:var(--green)}.yellow{color:var(--yellow)}.red{color:var(--red)}.orange{color:var(--orange)}.gray{color:var(--muted)}.section-title{margin:1.5rem 0 .75rem}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.section-head .section-title{margin:1.5rem 0 .75rem}.section-count{color:var(--muted);font-family:var(--mono);font-size:.75rem;white-space:nowrap}.section-count strong{color:var(--text);font-weight:750}.targets{display:flex;flex-wrap:wrap;gap:.3rem}.targets .badge{font-family:var(--mono);font-size:.72rem}.charts{display:grid;grid-template-columns:3fr 2fr;gap:1rem}.chart-box{min-width:0;padding:.75rem 1rem .9rem}.chart-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.chart-head .section-title{margin:.25rem 0 .75rem}.legend{display:flex;gap:.9rem;color:var(--muted);font-size:.75rem}.legend span{display:inline-flex;align-items:center;gap:.35rem}.legend-dot{display:inline-block;width:9px;height:9px;border-radius:3px}.muted-note{color:var(--muted);font-family:var(--mono)}.chart-wrap{position:relative}.chart-wrap svg{display:block;width:100%;height:auto}.grid-line{stroke:#30363d88;stroke-width:1}.axis-label{fill:var(--muted);font-size:10px;font-family:var(--mono)}.chart-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted);font-size:.85rem}.chart-tooltip{position:absolute;top:0;transform:translate(-50%);padding:.45rem .6rem;border:1px solid var(--border);border-radius:6px;background:var(--bg);box-shadow:0 4px 12px #0006;font-family:var(--mono);font-size:.74rem;pointer-events:none;white-space:nowrap;z-index:10}.chart-tooltip strong{display:block;margin-bottom:.25rem}.chart-tooltip div{display:flex;align-items:center;gap:.35rem}.tip-total{margin-top:.2rem;color:var(--muted)}.rating-rows{display:flex;flex-direction:column;gap:.55rem;padding:.35rem 0 .2rem}.rating-row{display:flex;align-items:center;gap:.6rem}.rating-label{width:42px;color:var(--muted);font-family:var(--mono);font-size:.75rem;text-align:right}.rating-track{flex:1;height:14px;border-radius:4px;background:#30363d44;overflow:hidden}.rating-fill{display:block;height:100%;border-radius:0 4px 4px 0;min-width:0}.rating-value{width:40px;color:var(--text);font-family:var(--mono);font-size:.78rem}.channel-chart{margin-top:1rem}.channel-rows{display:flex;flex-direction:column;gap:.55rem;padding:.35rem 0 .2rem}.channel-row{display:flex;align-items:center;gap:.6rem}.channel-label{width:190px;overflow:hidden;color:var(--muted);font-size:.78rem;text-align:right;text-overflow:ellipsis;white-space:nowrap}.channel-track{display:flex;flex:1;gap:2px;height:14px;border-radius:4px;background:#30363d44;overflow:hidden}.channel-fill{display:block;height:100%}.channel-fill:last-child{border-radius:0 4px 4px 0}.channel-value{min-width:64px;color:var(--text);font-family:var(--mono);font-size:.78rem}.channel-note{padding-top:.4rem;font-size:.78rem}.channel-expand{display:block;width:100%;margin-top:.55rem;padding:.4rem;border:1px dashed var(--border);border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;font-size:.78rem}.channel-expand:hover{border-color:var(--blue);color:var(--blue)}table{width:100%;border-collapse:collapse;font-size:.85rem}th,td{padding:.55rem .75rem;border-bottom:1px solid #30363d55;text-align:left;vertical-align:middle}th{color:var(--muted);font-size:.73rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.mono,.url,.log-box{font-family:var(--mono)}.url{max-width:280px;overflow:hidden;color:var(--muted);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.msg-text{max-width:420px}.copyable{cursor:pointer}.copyable:hover{color:var(--blue);text-decoration:underline}.copied,.copied:hover{color:var(--green);text-decoration:none}.empty{padding:2rem;color:var(--muted);text-align:center}.log-box{max-height:320px;overflow-y:auto;padding:.65rem .8rem;font-size:.78rem;line-height:1.55}.log-line{white-space:pre-wrap;word-break:break-word}.log-line span{margin-right:.55rem;color:var(--muted)}.log-line.warn{color:var(--yellow)}.log-line.error{color:var(--red)}.login-page{display:grid;min-height:100vh;place-items:center;padding:1rem}.login-box{width:min(380px,100%);border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:1.5rem}.login-box h1{margin:0 0 1rem;font-size:1.1rem;text-align:center}.login-box input{min-width:0;border:1px solid var(--border);border-radius:6px;outline:none;background:var(--bg);color:var(--text);font-family:var(--mono)}.login-box input:focus{border-color:var(--blue)}.login-box button{border:0;border-radius:6px;background:var(--blue);color:var(--bg);cursor:pointer;font-weight:750}.login-box input,.login-box button{width:100%;padding:.65rem .8rem}.login-box button{margin-top:.75rem}.login-box p{margin:.75rem 0 0;color:var(--red);font-size:.85rem;text-align:center}.cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}.queue-backlog{margin:-.75rem 0 1.5rem;padding:.75rem 1rem;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.queue-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.3rem 0}.queue-row+.queue-row{border-top:1px solid var(--border)}.queue-name{overflow:hidden;font-size:.85rem;text-overflow:ellipsis;white-space:nowrap}.queue-meta{flex-shrink:0;color:var(--muted);font-family:var(--mono);font-size:.75rem}.model-current{display:block;max-width:190px;overflow:hidden;font-size:.85rem;text-overflow:ellipsis;white-space:nowrap}.modal-backdrop{position:fixed;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem;top:0;right:0;bottom:0;left:0;background:#000000a6}.modal{width:min(520px,100%);max-height:85vh;overflow-y:auto;padding:1.15rem 1.25rem;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.modal header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.modal-close{border:0;background:none;color:var(--muted);cursor:pointer;font-size:1.4rem;line-height:1}.modal-hint{margin:0 0 .9rem;color:var(--muted);font-size:.82rem}.model-list{display:flex;flex-direction:column;gap:.4rem}.model-option{display:flex;align-items:flex-start;gap:.65rem;padding:.65rem .8rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);cursor:pointer;text-align:left}.model-option:hover:not(:disabled){border-color:var(--blue)}.model-option:disabled{opacity:.6;cursor:default}.model-option .model-radio{flex-shrink:0;width:14px;height:14px;margin-top:.15rem;border:2px solid var(--border);border-radius:50%}.model-option.on{border-color:var(--blue)}.model-option.on .model-radio{border-color:var(--blue);background:var(--blue)}.model-label{display:block;font-size:.9rem;font-weight:650}.model-warn{display:block;margin-top:.3rem;color:var(--yellow);font-size:.76rem;line-height:1.35}.status-pill.clickable{border:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.status-pill.clickable:hover{background:var(--surface)}.session-card{margin-bottom:1rem;padding:1rem 1.15rem;border-left:3px solid var(--yellow)}.session-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.session-who{color:var(--blue);font-family:var(--mono);font-size:.85rem}.session-step{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.session-step input{flex:1 1 220px;min-width:0;padding:.55rem .75rem;border:1px solid var(--border);border-radius:6px;outline:none;background:var(--bg);color:var(--text);font-family:var(--mono)}.session-step input:focus{border-color:var(--blue)}.session-step button{padding:.55rem 1rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);cursor:pointer;font-weight:650}.session-step button[type=submit]{border-color:var(--blue);background:var(--blue);color:var(--bg)}.session-step button:disabled{opacity:.5;cursor:default}.session-step .danger-button{border-color:var(--red);background:transparent;color:var(--red)}.session-step .danger-button:hover:not(:disabled){background:var(--red);color:var(--bg)}.session-actions{display:flex;gap:.6rem}.session-hint{flex-basis:100%;margin:0;color:var(--muted);font-size:.82rem}.session-error{margin:0 0 .75rem;color:var(--red);font-size:.85rem}@media (max-width: 900px){header{align-items:stretch;flex-direction:column}.header-actions{flex-direction:column;align-items:stretch}.status-bar{flex-direction:column}.status-pill{width:100%}.status-pill+.status-pill{border-top:1px solid var(--border);border-left:0}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.charts{grid-template-columns:1fr}}@media (max-width: 560px){.cards{grid-template-columns:1fr}.url{max-width:160px}}.badge-button{padding:0;border:0;background:none;cursor:pointer;font:inherit}.badge-button:focus-visible{border-radius:999px;outline:2px solid var(--accent, #4493f8);outline-offset:2px}.dup-modal{width:min(560px,100%)}.dup-stage{margin-bottom:.9rem}.dup-stage-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.45rem}.dup-stage-when{color:var(--muted);font-size:.78rem}.badge-stage-link{border-color:#6e7681;color:#adbac7}.badge-stage-fuzzy{border-color:#4493f8;color:#4493f8}.badge-stage-judge{border-color:#bb8009;color:#d29922}.dup-facts{display:grid;grid-template-columns:minmax(7.5rem,auto) 1fr;gap:.4rem .9rem;margin:0;font-size:.84rem}.dup-facts dt{color:var(--muted)}.dup-facts dd{margin:0;overflow-wrap:anywhere}.dup-text{line-height:1.35}.dup-id{font-size:.76rem}.dup-dim{color:var(--muted)}:root{--dbg-row-h: 70px;--dbg-head-h: 92px;--dbg-tenant-h: 30px;--dbg-col-w: 158px;--dbg-rail-w: 108px}.debug-main{width:min(100% - 2rem,2400px)}.debug-board .muted,.funnel-cell .muted,.lane-type .muted{font-size:inherit}.debug-back,.debug-open{padding:.35rem .75rem;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);cursor:pointer}.debug-back:hover,.debug-open:hover{border-color:var(--blue);color:var(--blue)}.debug-entry{display:flex;align-items:center;gap:.6rem;margin:2rem 0 1rem;padding-top:1rem;border-top:1px solid var(--border)}.debug-funnel{margin:1rem 0;padding:.75rem 1rem;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.funnel-strip{display:flex;gap:.35rem;margin-top:.6rem;overflow-x:auto}.funnel-cell{flex:1 0 88px;padding:.4rem .5rem;border:1px solid var(--border);border-radius:6px;font-family:var(--mono);font-size:.72rem;text-align:center}.funnel-label{color:var(--muted);font-size:.62rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.funnel-in{font-size:1rem;font-weight:600}.debug-filters{display:flex;flex-direction:column;gap:.5rem;margin:1rem 0}.debug-filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.debug-input{padding:.35rem .6rem;min-width:190px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text)}.debug-toggles{display:flex;gap:.4rem}.debug-toggles button{padding:.35rem .7rem;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--muted);cursor:pointer;font-size:.8rem}.debug-toggles button.active{border-color:var(--blue);color:var(--blue)}.debug-group{display:flex;align-items:center;gap:.4rem}.debug-label{color:var(--muted);font-size:.78rem}.debug-count{margin-left:auto;font-size:.8rem}.debug-empty{padding:2rem;border:1px dashed var(--border);border-radius:8px;text-align:center}.debug-board{display:flex;align-items:flex-start;gap:0;overflow-x:auto;padding-bottom:.75rem;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.debug-rail{position:sticky;left:0;z-index:2;flex:0 0 var(--dbg-rail-w);background:var(--surface);border-right:1px solid var(--border)}.rail-spacer{height:calc(var(--dbg-tenant-h) + var(--dbg-head-h))}.rail-row{display:flex;align-items:center;height:var(--dbg-row-h);padding:0 .5rem;border-top:1px solid var(--border)}.rail-name{color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;line-height:1.15}.tenant-group{flex:0 0 auto;width:calc(var(--lanes, 1) * var(--dbg-col-w));border-right:1px solid var(--border)}.tenant-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;height:var(--dbg-tenant-h);padding:0 .6rem;background:var(--bg);border-bottom:1px solid var(--border);font-size:.72rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;overflow:hidden}.tenant-head .muted{flex:0 0 auto;font-weight:400;text-transform:none;letter-spacing:0}.tenant-name{overflow:hidden;text-overflow:ellipsis}.tenant-lanes{display:flex}.lane-col{flex:0 0 var(--dbg-col-w);border-left:1px solid var(--border)}.tenant-lanes .lane-col:first-child{border-left:none}.lane-head{height:var(--dbg-head-h);overflow:hidden;padding:.4rem .5rem;border-bottom:1px solid var(--border);border-left:3px solid transparent}.lane-ok .lane-head{border-left-color:var(--green)}.lane-backlog .lane-head{border-left-color:var(--yellow)}.lane-lento .lane-head{border-left-color:var(--orange)}.lane-erro .lane-head,.lane-parado .lane-head{border-left-color:var(--red)}.lane-parado .lane-head,.lane-erro .lane-head{background:#f8514914}.lane-name{font-size:.8rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lane-status{display:flex;align-items:center;gap:.25rem;margin-top:.15rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.02em;white-space:nowrap}.lane-meta span{white-space:nowrap}.lane-culprit{color:var(--muted);text-transform:none;letter-spacing:0}.lane-meta{display:flex;flex-direction:column;margin-top:.2rem;font-family:var(--mono);font-size:.66rem;color:var(--muted)}.lane-meta strong{color:var(--text)}.lane-type{display:flex;align-items:center;gap:.3rem;margin-top:.2rem;font-size:.6rem;white-space:nowrap}.lane-type .chip{padding:.05rem .3rem;font-size:.6rem}.stage-node{display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden;gap:.05rem;height:var(--dbg-row-h);padding:.3rem .5rem;border-top:1px solid var(--border);border-left:3px solid transparent;font-family:var(--mono);font-size:.68rem;line-height:1.3}.stage-backlog{border-left-color:var(--yellow)}.stage-lento{border-left-color:var(--orange)}.stage-erro{border-left-color:var(--red);background:#f8514912}.stage-vazio{opacity:.4}.stage-funnel{display:flex;gap:.3rem;font-size:.72rem}.stage-in{font-weight:600}.stage-load,.stage-coalescing{display:flex;gap:.3rem;font-size:.62rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage-time{font-size:.63rem;white-space:nowrap}.blue{color:var(--blue)}
