:root{--bg:#0d1117;--bg-2:#131a22;--panel:#161e28;--panel-2:#1c2632;--line:#273342;--line-2:#344456;--text:#e6edf3;--muted:#8b9bb0;--faint:#5b6b80;--amber:#f2b84b;--amber-dim:#8a6a2c;--teal:#4fc3b0;--accept:#5cc98a;--refine:#f2b84b;--reject:#ef6b6b;--info:#6ea8fe;--radius:10px;--mono:ui-monospace, "SF Mono", "Cascadia Code", "JetBrains Mono", Menlo, Consolas, monospace;--sans:"Inter", "Segoe UI", system-ui, -apple-system, "Noto Sans Thai", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased}a{color:var(--amber);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:600}h1{font-size:22px}h2{font-size:16px}h3{font-size:14px}code,.mono{font-family:var(--mono);font-size:12.5px}.muted{color:var(--muted)}.faint{color:var(--faint)}.topbar{z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#0d1117db;align-items:center;gap:24px;height:52px;padding:0 20px;display:flex;position:sticky;top:0}.brand{letter-spacing:.02em;color:var(--text);align-items:center;gap:10px;font-weight:700;display:flex}.brand:hover{text-decoration:none}.brand-mark{background:linear-gradient(135deg, var(--amber), #e07b39);color:#1b1206;border-radius:7px;place-items:center;width:26px;height:26px;font-size:14px;display:grid}.brand small{color:var(--muted);letter-spacing:0;font-weight:500}.nav{gap:4px;display:flex}.menu-btn{border:1px solid var(--line-2);background:var(--panel-2);width:38px;height:38px;color:var(--text);cursor:pointer;border-radius:8px;place-items:center;margin-left:auto;display:none}.nav a{color:var(--muted);border-radius:8px;padding:6px 12px;font-weight:500}.nav a:hover{color:var(--text);background:var(--panel);text-decoration:none}.nav a.active{color:var(--text);background:var(--panel-2);box-shadow:inset 0 -2px 0 var(--amber)}.health{color:var(--muted);gap:12px;margin-left:auto;font-size:12px;display:flex}.dot{background:var(--faint);border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block}.dot.on{background:var(--accept);box-shadow:0 0 6px var(--accept)}.dot.off{background:var(--reject)}.page{max-width:1320px;margin:0 auto;padding:24px 20px 60px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.page-head p{color:var(--muted);margin:4px 0 0}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (max-width:900px){.grid-2{grid-template-columns:1fr}}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.card+.card{margin-top:16px}.card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.btn{border:1px solid var(--line-2);background:var(--panel-2);height:34px;color:var(--text);font:500 13px var(--sans);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:7px;padding:0 14px;display:inline-flex}.btn:hover{border-color:var(--muted);text-decoration:none}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--amber);border-color:var(--amber);color:#1b1206;font-weight:600}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{background:0 0}.btn.danger{color:var(--reject)}.btn.sm{height:28px;padding:0 10px;font-size:12px}.input,select.input,textarea.input{border:1px solid var(--line-2);background:var(--bg-2);height:34px;color:var(--text);font:13px var(--sans);border-radius:8px;min-width:0;padding:0 10px}textarea.input{resize:vertical;height:auto;padding:8px 10px}.input:focus{border-color:var(--amber);outline:none;box-shadow:0 0 0 3px #f2b84b26}label.field{color:var(--muted);flex-direction:column;gap:5px;font-size:12px;font-weight:500;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.search{flex:1;min-width:200px;position:relative}.search .input{width:100%;padding-left:32px}.search:before{content:"⌕";color:var(--faint);font-size:16px;position:absolute;top:6px;left:11px}.seg{background:var(--bg-2);border:1px solid var(--line-2);border-radius:9px;padding:3px;display:inline-flex}.seg button{color:var(--muted);font:500 13px var(--sans);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:5px 12px}.seg button.on{background:var(--panel-2);color:var(--text);box-shadow:0 1px 0 var(--line-2)}.chip{border:1px solid var(--line-2);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;display:inline-flex}.chip.on{color:var(--text);border-color:currentColor}.swatch{border-radius:2px;width:8px;height:8px;display:inline-block}.badge{font:600 11px var(--sans);letter-spacing:.03em;border-radius:999px;padding:2px 8px;display:inline-block}.badge.ACCEPTED{color:var(--accept);background:#5cc98a26}.badge.NEEDS_REFINE{color:var(--refine);background:#f2b84b26}.badge.REJECTED{color:var(--reject);background:#ef6b6b26}.badge.MERGED{color:var(--info);background:#6ea8fe26}.badge.ROLLED_BACK{color:var(--muted);background:#8b9bb026}.blocker{color:var(--refine)}.undo-box{background:var(--bg-2);border:1px solid var(--line);border-radius:8px;margin-top:12px;padding:12px 14px}.badge.step{background:var(--panel-2);color:var(--text);border:1px solid var(--line-2)}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);max-height:70vh;overflow:auto}table.data{border-collapse:collapse;width:100%;font-size:13px}table.data th{z-index:1;text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--panel-2);border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 12px;font-size:11.5px;font-weight:600;position:sticky;top:0}table.data td{border-bottom:1px solid var(--line);vertical-align:top;padding:8px 12px}table.data tr:hover td{background:#ffffff05}table.data td.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}table.data tr.expanded td{background:var(--bg-2)}.lineage{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;font-size:12px;display:grid}.lineage div{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 10px}.lineage b{color:var(--faint);text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px;font-size:10.5px;font-weight:600;display:block}.stat{flex-direction:column;gap:2px;display:flex}.stat b{font:600 20px var(--mono);font-variant-numeric:tabular-nums}.stat span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px}.empty{text-align:center;color:var(--muted);padding:40px}.error-box{color:#f5b5b5;background:#ef6b6b1a;border:1px solid #ef6b6b59;border-radius:8px;padding:12px 14px}.note-box{background:var(--bg-2);border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:12px 14px}.flow{background:radial-gradient(ellipse at 50% 20%, #1a2533 0%, var(--bg) 70%);height:calc(100vh - 52px);position:relative;overflow:hidden}.flow canvas{display:block}.scene-wrap{position:absolute;inset:0}.scene-wrap>div:first-child{inset:0;position:absolute!important}.scene-labels{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.flow>div:first-child{inset:0;position:absolute!important}.hud{pointer-events:none;z-index:20;position:absolute}.hud>*{pointer-events:auto}.hud.tl{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex;top:16px;left:16px;right:16px}.hud.bl{bottom:16px;left:16px;right:16px}.glass{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);background:#131a22d1;border-radius:12px}.hud-title{max-width:360px;padding:12px 16px}.hud-title h1{font-size:17px}.hud-title p{color:var(--muted);margin:4px 0 0;font-size:12.5px}.hud-tools{flex-wrap:wrap;align-items:center;gap:8px;padding:8px;display:flex}.hud-tools .search{min-width:220px}.sugg{flex-wrap:wrap;align-items:center;gap:6px;width:100%;font-size:12px;display:flex}.sem-note{background:#4fc3b014;border:1px solid #4fc3b04d;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;padding:8px 12px;font-size:13px;display:flex}.sem-note b{color:var(--teal)}.kpis{gap:22px;margin-left:auto;padding:12px 16px;display:flex}.timeline{align-items:center;gap:12px;padding:10px 14px;display:flex}.months{flex:1;grid-template-columns:repeat(13,minmax(0,1fr));gap:4px;display:grid}.months button{border:1px solid var(--line);background:var(--bg-2);height:40px;color:var(--muted);font:500 11.5px var(--sans);cursor:pointer;border-radius:6px;padding:0;position:relative;overflow:hidden}.months button i{background:var(--amber-dim);opacity:.55;position:absolute;bottom:0;left:0;right:0}.months button span{position:relative}.months button.on{border-color:var(--amber);color:var(--text)}.months button.on i{background:var(--amber);opacity:.4}.legend{flex-wrap:wrap;gap:6px;padding:8px 10px;display:flex}.side{z-index:30;width:360px;max-width:calc(100vw - 32px);max-height:calc(100% - 150px);padding:16px;animation:.22s ease-out slide;position:absolute;top:16px;right:16px;overflow:auto}@keyframes slide{0%{opacity:0;transform:translate(20px)}}.side h2{align-items:center;gap:8px;display:flex}.side .close{margin-left:auto}.mini-bars .pick{cursor:pointer}.mini-bars .pick:focus{outline:none}.mini-bars .pick:focus-visible rect:nth-child(2),.mini-bars .pick:focus-visible rect:last-of-type{stroke:var(--amber);stroke-width:1.2px}.item-row{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;gap:4px 10px;padding:8px 0;display:grid}.item-row .bar{background:var(--bg-2);border-radius:2px;grid-column:1/-1;height:4px;overflow:hidden}.item-row .bar i{height:100%;display:block}.scene-label{font:600 11px var(--sans);color:var(--text);white-space:nowrap;border:1px solid var(--line-2);pointer-events:none;letter-spacing:.02em;background:#0d1117c7;border-radius:6px;padding:3px 8px;transform:translate(-50%,-100%)}.scene-label.click{pointer-events:auto;cursor:pointer}.scene-label.click:hover{border-color:var(--amber)}.scene-label.stage{border-color:var(--amber-dim);color:var(--amber);padding:5px 10px;font-size:12.5px}.scene-label.hot{border-color:var(--amber);box-shadow:0 0 12px #f2b84b66}.scene-label small{color:var(--muted);margin-left:4px;font-weight:500}.graph-box{border:1px solid var(--line);border-radius:var(--radius);background:#0b0f14;height:68vh;position:relative;overflow:hidden}.graph-legend{z-index:2;flex-wrap:wrap;gap:6px;max-width:70%;display:flex;position:absolute;top:10px;left:10px}.graph-detail{z-index:2;width:300px;max-height:calc(100% - 20px);padding:12px;font-size:12px;position:absolute;top:10px;right:10px;overflow:auto}.graph-detail dl{grid-template-columns:auto 1fr;gap:3px 10px;margin:8px 0 0;display:grid}.graph-detail dt{color:var(--faint)}.graph-detail dd{word-break:break-all;font-family:var(--mono);margin:0;font-size:11.5px}.schema-legend{color:var(--muted);flex-wrap:wrap;gap:18px;margin-bottom:10px;font-size:12px;display:flex}.line-sample{background:var(--teal);vertical-align:middle;width:26px;height:2px;margin-right:6px;display:inline-block}.key{font:700 9px var(--sans);vertical-align:1px;border-radius:3px;margin-right:5px;padding:1px 4px;display:inline-block}.key.pk{color:var(--amber);background:#f2b84b2e}.key.fk{color:var(--teal);background:#4fc3b029}.schema{border:1px solid var(--line);border-radius:var(--radius);background:#0b0f14;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 110px;padding:8px 56px;display:grid;position:relative}.schema-lines{pointer-events:none;width:100%;height:100%;color:var(--teal);position:absolute;inset:0;overflow:visible}.schema-lines g{opacity:.6;transition:opacity .15s}.schema-lines g.on{opacity:1}.schema-lines g.on path{stroke-width:2px}.schema-lines g.off{opacity:.07}.schema-lines path{fill:none;stroke:currentColor;stroke-width:1.4px}.rel-label rect{fill:#0b0f14;stroke:currentColor;stroke-width:1px}.rel-label text{fill:var(--text);font:600 10px var(--mono)}.rel-pill{border:1px solid var(--teal);color:var(--teal);font:600 10.5px var(--mono);border-radius:999px;padding:1px 7px;display:inline-block}.cf-legend{align-items:center;gap:6px;display:inline-flex}.cf-sample{color:var(--teal)}.cf-sample path{fill:none;stroke:currentColor;stroke-width:1.4px}.schema-col{z-index:1;flex-direction:column;gap:14px;padding:6px 0 12px;display:flex;position:relative}.schema-group{flex-direction:column;padding:4px 2px 0;font-size:12px;display:flex}.schema-group b{color:var(--text);text-transform:uppercase;letter-spacing:.05em;font-size:12.5px}.schema-table{background:var(--panel);border:1px solid var(--line-2);border-top:3px solid var(--line-2);cursor:pointer;border-radius:8px;font-size:12px;transition:opacity .15s,box-shadow .15s}.schema-table.dim{opacity:.3}.schema-table.hot{box-shadow:0 0 0 1px var(--teal), 0 6px 20px #4fc3b026}.schema-table header{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:7px 10px;display:flex}.schema-table header b{font-family:var(--mono);font-size:12.5px}.schema-table header .faint{margin-left:auto;font-size:11px}.schema-table ul{margin:0;padding:4px 0;list-style:none}.schema-table li{font-family:var(--mono);justify-content:space-between;gap:8px;padding:2px 10px;font-size:11.5px;display:flex}.schema-table li .faint{font-size:10.5px}.schema-bottom{grid-template-columns:1fr 1fr;gap:16px;margin:16px 0 80px;display:grid}.schema-bottom h3{margin:0 0 8px}tr.dim td{opacity:.35}@media (max-width:1000px){.schema{grid-template-columns:1fr;gap:0}.schema-bottom{grid-template-columns:1fr}}.dropzone{border:1.5px dashed var(--line-2);border-radius:var(--radius);text-align:center;color:var(--muted);cursor:pointer;padding:28px;transition:border-color .15s,background .15s}.dropzone.drag,.dropzone:hover{border-color:var(--amber);background:#f2b84b0a}.dropzone b{color:var(--text)}.pipeline{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:4px 0 18px;display:grid}.pipe-step{text-align:center;color:var(--faint);padding:0 8px;font-size:12px;position:relative}.pipe-step:before{content:"";background:var(--line-2);width:100%;height:2px;position:absolute;top:15px;left:-50%}.pipe-step:first-child:before{display:none}.pipe-step .node{z-index:1;background:var(--bg-2);border:2px solid var(--line-2);border-radius:50%;place-items:center;width:32px;height:32px;margin:0 auto 6px;font-weight:700;display:grid;position:relative}.pipe-step.done{color:var(--muted)}.pipe-step.done .node{border-color:var(--teal);color:var(--teal)}.pipe-step.done:before{background:var(--teal)}.pipe-step.active .node{border-color:var(--amber);color:var(--amber);animation:1s infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 6px #f2b84b26}}.states{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:12px;display:grid}@media (max-width:800px){.states{grid-template-columns:1fr}}.state{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);opacity:.4;padding:14px;transition:opacity .3s,transform .3s,border-color .3s}.state h3{align-items:center;gap:8px;display:flex}.state p{color:var(--muted);margin:6px 0 0;font-size:12.5px}.state .icon{color:#0d1117;border-radius:50%;place-items:center;width:26px;height:26px;font-weight:800;display:grid}.state.accept .icon{background:var(--accept)}.state.refine .icon{background:var(--refine)}.state.reject .icon{background:var(--reject)}.state.on{opacity:1;transform:translateY(-2px)}.state h3 .info-btn{border:1px solid var(--line-2);background:var(--panel-2);width:22px;height:22px;color:var(--muted);cursor:pointer;border-radius:50%;flex:none;place-items:center;margin-left:auto;font:italic 700 12px Georgia,serif;display:grid}.state h3 .info-btn:hover,.state h3 .info-btn[aria-expanded=true]{color:var(--text);border-color:var(--muted)}.icon-btn{width:28px;height:28px;color:var(--faint);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;place-items:center;display:grid}.icon-btn:hover{color:var(--reject);background:#ef6b6b14;border-color:#ef6b6b66}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#05080ca8;place-items:center;padding:16px;animation:.15s ease-out fade;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line-2);border-radius:14px;width:520px;max-width:100%;max-height:calc(100vh - 32px);padding:18px 20px;animation:.16s ease-out pop;overflow:auto;box-shadow:0 24px 64px #0000008c}.modal header{align-items:center;gap:10px;margin-bottom:6px;display:flex}.modal header h2{margin:0;font-size:17px}.modal header button{margin-left:auto}.modal ul{color:var(--muted);margin:8px 0 12px;padding-left:20px;font-size:13.5px}.modal li{margin:5px 0}.modal-next{background:var(--bg-2);border:1px solid var(--line);border-radius:8px;margin:0;padding:10px 12px;font-size:13px}.state-modal .icon{color:#0d1117;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-weight:800;display:grid}.state-modal.accept .icon{background:var(--accept)}.state-modal.refine .icon{background:var(--refine)}.state-modal.reject .icon{background:var(--reject)}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.98)}}.state.accept.on{border-color:var(--accept);box-shadow:0 0 0 1px var(--accept), 0 8px 24px #5cc98a1f}.state.refine.on{border-color:var(--refine);box-shadow:0 0 0 1px var(--refine), 0 8px 24px #f2b84b1f}.state.reject.on{border-color:var(--reject);box-shadow:0 0 0 1px var(--reject), 0 8px 24px #ef6b6b1f}.step-pick{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}@media (max-width:900px){.step-pick{grid-template-columns:1fr 1fr}}.step-opt{text-align:left;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--bg-2);color:var(--text);cursor:pointer;font:13px var(--sans);padding:12px}.step-opt:hover{border-color:var(--muted)}.step-opt.on{border-color:var(--amber);box-shadow:inset 0 0 0 1px var(--amber)}.step-opt .meter{background:var(--line);border-radius:2px;height:4px;margin:8px 0 6px;overflow:hidden}.step-opt .meter i{background:var(--teal);height:100%;display:block}.step-opt small{color:var(--muted);font-size:11.5px;display:block}.tag-sug{color:var(--teal);letter-spacing:.05em;text-transform:uppercase;font-size:10.5px;font-weight:700}.issue{border-radius:5px;margin:1px 4px 1px 0;padding:1px 7px;font-size:11.5px;display:inline-block}.issue.error{color:#f5a3a3;background:#ef6b6b24}.issue.warning{color:#f4cd85;background:#f2b84b24}.issue.info{color:#a9c8fe;background:#6ea8fe1f}tr.dropped td{opacity:.35;text-decoration:line-through}.cell-input{width:110px;height:28px;font-family:var(--mono);text-align:right;font-size:12px}.chart-box{border:1px solid var(--line);background:var(--bg-2);border-radius:10px;margin:10px 0 4px;padding:10px 8px 4px}.chart-tip{border:1px solid var(--line-2);color:var(--text);background:#131a22f5;border-radius:8px;min-width:160px;padding:8px 10px;font-size:12px;box-shadow:0 8px 24px #00000073}.chart-tip-title{color:var(--text);margin-bottom:4px;font-weight:600}.chart-tip-row{color:var(--text);grid-template-columns:10px 1fr auto;align-items:center;gap:8px;padding:1px 0;display:grid}.chart-tip-row.faded{opacity:.45}.chart-tip-row i{border-radius:2px;width:10px;height:10px}.chart-tip-row b{font:600 12px var(--mono);font-variant-numeric:tabular-nums}.chart-tip-row small{color:var(--muted);font:500 10.5px var(--sans)}.chart-title{color:var(--muted);margin:0 0 4px 6px;font-size:12px;font-weight:600}.recharts-text{fill:var(--muted)}.recharts-legend-item-text{color:var(--muted)!important}.charts-page .page-head{flex-wrap:wrap;align-items:flex-start;gap:16px}.charts-page .kpis{gap:26px}.charts-layout{grid-template-columns:250px minmax(0,1fr);align-items:start;gap:16px;padding-bottom:90px;display:grid}.charts-nav{flex-direction:column;gap:4px;padding:8px;display:flex;position:sticky;top:68px}.charts-nav button{text-align:left;width:100%;color:var(--muted);cursor:pointer;font:13px var(--sans);background:0 0;border:1px solid #0000;border-radius:8px;align-items:flex-start;gap:10px;padding:9px 10px;display:flex}.charts-nav button:hover{background:var(--panel-2);color:var(--text)}.charts-nav button.on{background:var(--panel-2);color:var(--text);border-color:var(--line-2);box-shadow:inset 3px 0 0 var(--amber)}.charts-nav b{font-weight:600;display:block}.charts-nav small{color:var(--faint);font-size:11.5px;line-height:1.35;display:block}.nav-ico{background:var(--bg-2);border:1px solid var(--line);width:26px;height:26px;color:var(--amber);border-radius:7px;flex:none;place-items:center;font-size:14px;display:grid}.charts-main{min-width:0;padding:18px 20px}.charts-main-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.charts-main-head h2{margin:0;font-size:18px}.charts-main-head p{margin:3px 0 0;font-size:12.5px}.charts-main-head .seg button{align-items:center;gap:6px;display:inline-flex}.charts-filters{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:8px;margin:16px 0 12px;padding:12px;display:flex}.charts-row{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.charts-label{width:64px;color:var(--faint);flex:none;font-size:12px}.seg-months button{padding:5px 9px}.charts-canvas{height:430px}.charts-canvas .fuel-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.charts-table{margin-top:16px}.charts-table td,.charts-table th{padding:6px 10px}.charts-table .swatch{vertical-align:-1px}.charts-table .bar{background:var(--bg-2);border-radius:3px;height:6px;overflow:hidden}.charts-table .bar i{height:100%;display:block}.fuel-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.fuel-mini{background:var(--bg-2);border:1px solid var(--line);border-radius:8px;padding:8px 10px 4px;font-size:12px;transition:opacity .2s}@media (max-width:900px){.charts-layout{grid-template-columns:1fr}.charts-nav{flex-direction:row;position:static;overflow-x:auto}.charts-nav button{min-width:170px}.charts-canvas{height:340px}}.chat{flex-direction:column;max-width:920px;height:calc(100vh - 100px);margin:0 auto;display:flex}.chat-log{flex-direction:column;flex:1;gap:14px;padding:8px 0 16px;display:flex;overflow:auto}.msg{max-width:100%}.msg.user{background:var(--panel-2);border:1px solid var(--line-2);border-radius:12px 12px 2px;align-self:flex-end;max-width:75%;padding:10px 14px}.msg.bot{align-self:flex-start;width:100%}.msg.bot .answer{line-height:1.6}.msg.bot .answer table{border-collapse:collapse;margin:8px 0;font-size:13px}.msg.bot .answer th,.msg.bot .answer td{border:1px solid var(--line);text-align:left;padding:5px 9px}.msg.bot details{color:var(--muted);margin-top:8px;font-size:12px}.msg.bot pre{background:var(--bg-2);border:1px solid var(--line);font:12px var(--mono);color:var(--text);white-space:pre-wrap;border-radius:8px;padding:10px;overflow:auto}.chat-input{border-radius:12px;gap:8px;padding:12px;display:flex}.chat-input textarea{flex:1;height:44px;max-height:160px}.suggests{flex-wrap:wrap;gap:8px;display:flex}.typing span{background:var(--amber);border-radius:50%;width:6px;height:6px;margin-right:4px;animation:1s infinite blink;display:inline-block}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}@keyframes blink{50%{opacity:.2}}.agent{z-index:60;flex-direction:column;align-items:flex-start;gap:10px;display:flex;position:fixed;bottom:20px;left:16px}.agent.on-flow{bottom:168px}.agent-fab{cursor:pointer;filter:drop-shadow(0 10px 24px #0000008c);background:0 0;border:0;border-radius:50%;width:58px;height:58px;padding:0;display:block;position:relative}.fab-ring{background:conic-gradient(#f2b84b,#e07b39,#c084d6,#4fc3b0,#6ea8fe,#f2b84b);border-radius:50%;animation:7s linear infinite fab-spin;position:absolute;inset:0}.fab-ring:after{content:"";background:inherit;filter:blur(12px);opacity:.35;border-radius:50%;animation:3.2s ease-in-out infinite fab-breathe;position:absolute;inset:-6px}.fab-core{background:radial-gradient(circle at 32% 26%,#2b3a4c 0%,#151d27 55%,#0d1117 100%);border-radius:50%;place-items:center;transition:transform .2s;display:grid;position:absolute;inset:3px;box-shadow:inset 0 1px #ffffff14,inset 0 -6px 14px #00000080}.fab-live{background:var(--teal);width:11px;height:11px;box-shadow:0 0 8px var(--teal);border:2px solid #0d1117;border-radius:50%;position:absolute;top:4px;right:3px}.fab-label{white-space:nowrap;pointer-events:none;font:600 12.5px var(--sans);color:var(--text);border:1px solid var(--line-2);opacity:0;background:#131a22eb;border-radius:999px;padding:6px 12px;transition:opacity .18s,transform .18s;position:absolute;top:50%;left:68px;transform:translate(-6px,-50%)}.agent-fab:hover .fab-core,.agent-fab:focus-visible .fab-core{transform:scale(1.06)}.agent-fab:hover .fab-label,.agent-fab:focus-visible .fab-label{opacity:1;transform:translateY(-50%)}.agent-fab:hover .fab-ring{animation-duration:2.5s}.agent-fab:focus-visible{outline:2px solid var(--amber);outline-offset:4px}.agent-fab.on .fab-ring{background:var(--line-2);animation:none}.agent-fab.on .fab-ring:after{display:none}@keyframes fab-spin{to{transform:rotate(360deg)}}@keyframes fab-breathe{50%{opacity:.6;transform:scale(1.06)}}.agent-head-logo{background:var(--bg-2);border:1px solid var(--line-2);border-radius:8px;place-items:center;width:26px;height:26px;display:grid}.agent-panel{flex-direction:column;width:380px;max-width:calc(100vw - 32px);height:min(560px,100vh - 172px);animation:.18s ease-out rise;display:flex;overflow:hidden;box-shadow:0 16px 48px #00000080}.agent.on-flow .agent-panel{height:min(520px,100vh - 312px)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.agent-head{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:10px 12px;font-size:12px;display:flex}.agent-head b{font-size:14px}.agent-head button{margin-left:auto}.agent-log{flex-direction:column;flex:1;gap:10px;padding:12px;font-size:13px;display:flex;overflow:auto}.agent-log .msg.user{max-width:85%;padding:8px 12px}.agent-log .chart-box{margin-top:6px}.agent-hello p{margin:0 0 10px}.agent-did{color:var(--teal);background:#4fc3b01a;border:1px solid #4fc3b04d;border-radius:999px;margin-bottom:4px;padding:3px 9px;font-size:11.5px;display:inline-block}.agent-input{border-top:1px solid var(--line);gap:8px;padding:10px;display:flex}.agent-input textarea{resize:none;flex:1;height:38px;padding-top:8px}.agent-flash{animation:1.6s ease-out 2 flash}@keyframes flash{0%,to{box-shadow:none}30%{box-shadow:0 0 0 3px var(--teal), 0 0 18px #4fc3b080}}.form-2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.grid-2>*,.schema-bottom>*,.form-2>*,.charts-layout>*{min-width:0}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (max-width:1100px){.topbar{gap:12px;padding:0 14px}.brand small{display:none}.menu-btn{display:grid}.health{order:3;margin-left:0}.health span{font-size:0}.health .dot{width:9px;height:9px;margin:0}.nav{border-bottom:1px solid var(--line);background:#0d1117f7;flex-direction:column;gap:2px;padding:8px;display:none;position:absolute;top:52px;left:0;right:0;box-shadow:0 16px 32px #00000073}.nav.open{display:flex}.nav a{padding:12px 14px;font-size:15px}.nav a.active{box-shadow:inset 3px 0 0 var(--amber)}}@media (max-width:760px){.page{padding:16px 14px 90px}.page-head h1{font-size:21px}.form-2{grid-template-columns:1fr}.card{padding:14px}.row .stat b,.stat b{font-size:18px}.btn{min-height:38px}.chip{min-height:32px;padding:5px 11px}.input{height:40px;font-size:15px}.seg{flex-wrap:wrap}.seg button{min-height:34px}.hud.tl{gap:8px;top:10px;left:10px;right:10px}.hud-title{flex:100%;max-width:none;padding:8px 12px}.hud-title h1{font-size:15px}.hud-title p{display:none}.hud-tools{flex:100%;padding:6px}.hud-tools .search{flex:100%;min-width:0}.kpis{flex:100%;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0;padding:8px 10px;display:grid}.kpis .stat b{font-size:14px}.kpis .stat span{letter-spacing:.02em;font-size:9.5px}.hud.bl{bottom:10px;left:10px;right:10px}.hud.bl .legend{flex-wrap:nowrap;max-width:100%;overflow-x:auto;display:flex!important}.hud.bl .legend .chip{flex:none}.timeline{gap:8px;padding:8px}.months{scroll-snap-type:x proximity;gap:4px;display:flex;overflow-x:auto}.months button{scroll-snap-align:start;flex:none;min-width:44px;height:40px}.side{z-index:40;border-radius:16px 16px 0 0;width:auto;max-width:none;max-height:62vh;inset:auto 0 0}.agent.on-flow{align-items:flex-end;bottom:150px;left:auto;right:12px}body:has(.flow .side) .agent.on-flow{display:none}.agent-fab{width:50px;height:50px}.fab-label{display:none}.agent-panel{width:calc(100vw - 32px)}.charts-main{padding:14px}.charts-row{gap:6px}.charts-label{width:100%}.charts-canvas{height:320px}.charts-page .kpis{grid-template-columns:1fr 1fr;gap:10px;width:100%;display:grid}.lineage{grid-template-columns:1fr 1fr}.graph-box{height:60vh}.graph-detail{width:auto;max-height:45%;inset:auto 10px 10px}.schema{padding:8px 14px 8px 40px}.pipeline{font-size:11px}.step-pick{grid-template-columns:1fr}.chat{height:calc(100vh - 84px)}.msg.user{max-width:90%}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
