:root{color-scheme:dark;--bg: #10140f;--raise: #181d16;--sink: #0c100b;--line: #31382a;--text: #e7e3d4;--muted: #9a957f;--accent: #d6f25c;--accent-ink: #172006;--warn: #ffb25e;--bad: #ff6d4f;--ok: #8ee0a8;--mark: #3c3114;--sans: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--serif: "Iowan Old Style", Palatino, "Palatino Linotype", Georgia, serif;--mono: ui-monospace, "Cascadia Code", "SFMono-Regular", Menlo, Consolas, monospace;font-family:var(--sans);font-size:16px;line-height:1.45;background:var(--bg);color:var(--text)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:radial-gradient(1200px 500px at 10% -10%,#1c2614 0%,transparent 55%),var(--bg)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);grid-template-areas:"header header" "aside main";min-height:100vh}header{grid-area:header}aside{grid-area:aside}main{grid-area:main;min-width:0}header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;padding:1.1rem 1.25rem .9rem;border-bottom:1px solid var(--line)}.brand h1{font-family:var(--serif);font-weight:500;font-size:1.7rem;letter-spacing:-.03em;margin:0}.brand p{margin:.2rem 0 0;color:var(--muted);max-width:46rem}.brand strong{color:var(--text);font-weight:600}.sweep{border:1px solid var(--line);background:var(--sink);border-radius:999px;padding:.35rem .8rem;font-family:var(--mono);font-size:.78rem;white-space:nowrap}.sweep.ok{color:var(--ok);border-color:#2c5a3d}.sweep.bad{color:var(--bad);border-color:#6a3328}aside{border-right:1px solid var(--line);padding:1rem 1rem 2rem;background:#0c100b8c}main{padding:1rem 1.15rem 2.5rem;display:flex;flex-direction:column;gap:1rem}.panel{border:1px solid var(--line);background:var(--raise);border-radius:12px;padding:.85rem .9rem 1rem;margin-bottom:.8rem}.panel h2,main h2{margin:0 0 .65rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:650}.row{display:flex;gap:.45rem;flex-wrap:wrap}.grow{flex:1}button.primary,button.ghost,button.file{border-radius:8px;border:1px solid var(--line);background:var(--sink);padding:.45rem .7rem}button.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent;font-weight:650}button.ghost:hover,button.file:hover{border-color:var(--accent)}button.file{position:relative;overflow:hidden}button.file input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}label.field{display:flex;flex-direction:column;gap:.25rem;margin-top:.55rem;font-size:.86rem}label.field span{color:var(--muted)}label.check{display:flex;gap:.45rem;align-items:center;margin-top:.55rem;font-size:.9rem}input[type=text],input[type=number],select,textarea{width:100%;background:var(--sink);border:1px solid var(--line);border-radius:8px;padding:.4rem .5rem}textarea{min-height:4.5rem;resize:vertical}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.hint{color:var(--muted);font-size:.78rem;margin:.45rem 0 0}.warn{color:var(--warn)}pre,code,.mono{font-family:var(--mono)}pre.cli,pre.json,pre.report{margin:0;background:var(--sink);border-radius:8px;padding:.7rem;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:.78rem;line-height:1.4;max-height:22rem}.chips{display:flex;flex-wrap:wrap;gap:.35rem}.chip{font-family:var(--mono);font-size:.75rem;border:1px solid var(--line);border-radius:999px;padding:.15rem .5rem;background:var(--sink)}.chip em{font-style:normal;color:var(--accent)}.sessions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.sessions button{width:100%;text-align:left;background:var(--sink);border:1px solid var(--line);border-radius:8px;padding:.45rem .55rem;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto auto;gap:.45rem;align-items:center}.sessions button[aria-pressed=true]{border-color:var(--accent)}.sessions .id{font-family:var(--mono);font-size:.82rem;overflow:hidden;text-overflow:ellipsis}.sessions .sub{color:var(--muted);font-size:.75rem;overflow:hidden;text-overflow:ellipsis}.tag{font-family:var(--mono);font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:.1rem .4rem;border:1px solid var(--line)}.tag.kept{color:var(--ok)}.tag.drop{color:var(--warn)}.tag.train{color:var(--accent)}.tag.val{color:#9ecbff}.tag.test{color:#e2a4ff}.transcript{display:flex;flex-direction:column;gap:.55rem}.bubble{border:1px solid var(--line);border-radius:10px;padding:.55rem .7rem;background:var(--sink)}.bubble .who{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.25rem}.bubble p{margin:.2rem 0;white-space:pre-wrap;word-break:break-word}.tool{margin-top:.35rem;border-left:2px solid var(--accent);padding-left:.55rem}.tool .name{font-family:var(--mono);font-size:.8rem;color:var(--accent)}mark{background:var(--mark);color:#ffd27a;padding:0 .15em;border-radius:.2em}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.stat{background:var(--sink);border:1px solid var(--line);border-radius:8px;padding:.45rem .55rem}.stat b{display:block;font-family:var(--mono);font-size:1.05rem}.stat span{color:var(--muted);font-size:.75rem}.schema{width:100%;border-collapse:collapse;font-size:.84rem}.schema th,.schema td{text-align:left;padding:.3rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}.schema th{color:var(--muted);font-weight:600;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.scroll{overflow-x:auto}.banner{border:1px solid #6a4a1e;background:#2a210f;color:var(--warn);border-radius:10px;padding:.55rem .7rem}.error{border:1px solid #6a3328;background:#2a1410;color:#ffb0a1;border-radius:10px;padding:.7rem}@media(max-width:900px){.app{grid-template-columns:1fr;grid-template-areas:"header" "aside" "main"}aside{border-right:0;border-bottom:1px solid var(--line)}header{flex-direction:column;align-items:flex-start}.sessions button{grid-template-columns:minmax(0,1fr) auto}.sessions .sub{display:none}.stats{grid-template-columns:1fr}}
