:root{--bg: #0f1a12;--bg2: #1a2e1f;--ink: #e8f0e9;--muted: #9bb39f;--accent: #c4f061;--accent2: #3dd6c6;--danger: #ff6b6b;--card: #152419;--border: #2a4030;--font: "IBM Plex Sans", "Segoe UI", sans-serif;--display: "Fraunces", Georgia, serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:radial-gradient(ellipse at 20% 0%,#1f3d28 0%,transparent 50%),radial-gradient(ellipse at 90% 20%,#0d3a35 0%,transparent 40%),var(--bg);color:var(--ink)}a{color:var(--accent2);text-decoration:none}h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:-.02em}.app-shell{max-width:960px;margin:0 auto;padding:1rem 1.25rem 4rem;min-height:100%}.nav{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.nav .brand{font-family:var(--display);font-size:1.35rem;color:var(--accent);margin-right:auto}.nav a,.nav button.linkish{color:var(--muted);background:none;border:none;cursor:pointer;font:inherit;padding:.35rem .5rem}.nav a.active,.nav a:hover{color:var(--ink)}.card{background:color-mix(in srgb,var(--card) 90%,transparent);border:1px solid var(--border);border-radius:12px;padding:1.25rem;margin-bottom:1rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn{background:var(--accent);color:#102012;border:none;border-radius:8px;padding:.65rem 1rem;font-weight:600;cursor:pointer;font-family:inherit}.btn.secondary{background:transparent;color:var(--ink);border:1px solid var(--border)}.btn:disabled{opacity:.5;cursor:not-allowed}input,textarea{width:100%;background:#0c1510;border:1px solid var(--border);border-radius:8px;color:var(--ink);padding:.65rem .75rem;font:inherit;margin:.35rem 0 .75rem}label{color:var(--muted);font-size:.85rem}.stack{display:flex;flex-direction:column;gap:.5rem}.row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.muted{color:var(--muted)}.error{color:var(--danger)}.tree{font-family:ui-monospace,monospace;font-size:.8rem;max-height:320px;overflow:auto}.hit{border-left:3px solid var(--accent2);padding-left:.75rem;margin:.75rem 0}.note{background:#0c1510;padding:.75rem;border-radius:8px;margin:.5rem 0}.badge{display:inline-block;font-size:.7rem;padding:.15rem .45rem;border-radius:999px;background:var(--bg2);color:var(--accent);border:1px solid var(--border)}
