:root{--bg:#f6f7f5;--panel:#ffffff;--ink:#20221f;--muted:#676d63;--line:#dfe4db;--accent:#2f7d62;--accent-ink:#f8fffb;--danger:#a4493d;--shadow:0 24px 60px rgba(41,47,38,0.1);--mono:"Geist Mono","SFMono-Regular",Consolas,monospace;--sans:"Geist","Avenir Next","Segoe UI",sans-serif}*{box-sizing:border-box}body,html{margin:0;min-height:100dvh;font-family:var(--sans);color:var(--ink);background:var(--bg)}button,input,textarea{font:inherit}a{color:inherit;text-decoration:none}.dashboard-shell{min-height:100dvh;max-width:1180px;margin:0 auto;padding:40px 24px 64px}.dashboard-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);grid-gap:28px;gap:28px;align-items:end;padding:28px 0 34px}.hero-copy{max-width:720px}.block-title,.eyebrow,.overlay-kicker{display:inline-flex;align-items:center;gap:8px;color:var(--accent);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:0}.hero-copy h1{max-width:760px;margin:14px 0 18px;font-size:clamp(44px,7vw,86px);line-height:.95;letter-spacing:0}.hero-copy p,.setup-panel p,.status-block span,.suggestion-row p,.test-console p{color:var(--muted);line-height:1.55}.setup-panel,.status-block,.suggestion-list,.test-console{background:rgba(255,255,255,.82);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.setup-panel{padding:22px}.setup-panel label,.suggestion-list h2,.test-console h2{display:block;margin:0 0 10px;font-weight:800}.inline-control{display:grid;grid-template-columns:1fr auto;grid-gap:10px;gap:10px}input,textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#fbfcfa;color:var(--ink);outline:none;padding:12px 13px}textarea{resize:vertical}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(47,125,98,.14)}.helper,.notice{margin:10px 0 0;font-size:13px}.status-grid{display:grid;grid-template-columns:1.35fr .75fr .9fr;grid-gap:16px;gap:16px;margin:10px 0 16px}.status-block{min-height:154px;padding:20px}.status-block.wide{display:grid;grid-gap:14px;gap:14px}.status-block strong{display:block;margin-top:18px;font-size:24px;letter-spacing:0}.status-block code{display:block;overflow-wrap:anywhere;color:#384037;font-family:var(--mono);font-size:14px;background:#f1f4ee;border:1px solid var(--line);border-radius:8px;padding:12px}.button-row{display:flex;flex-wrap:wrap;gap:10px}.button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;padding:0 14px;font-weight:800;transition:transform .18s ease,border-color .18s ease,background .18s ease}.button:hover{border-color:#bcc8ba}.button:active,.overlay-button:active{transform:translateY(1px) scale(.99)}.button.primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.workspace-grid{display:grid;grid-template-columns:minmax(320px,.75fr) minmax(0,1.25fr);grid-gap:16px;gap:16px}.suggestion-list,.test-console{padding:22px}.test-console{display:grid;grid-gap:14px;gap:14px;align-content:start}.suggestion-list{display:grid;grid-gap:12px;gap:12px}.empty-state{display:grid;min-height:180px;place-items:center;border:1px dashed #cbd4c7;border-radius:8px;color:var(--muted);text-align:center;padding:24px}.suggestion-row{display:grid;grid-template-columns:1fr auto;grid-gap:14px;gap:14px;padding:15px 0;border-top:1px solid var(--line)}.suggestion-row h3{margin:8px 0 4px}.suggestion-row p{margin:0}.pill{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:4px 9px;color:var(--accent);font-size:12px;font-weight:800}.row-meta{display:grid;justify-items:end;align-content:center;color:var(--muted);font-family:var(--mono);font-size:13px}.row-meta strong{color:var(--ink)}.overlay-shell{min-height:100dvh;position:relative;overflow:hidden;background:transparent;font-family:var(--sans);color:#f9fbf6;pointer-events:none}.connection-chip{position:fixed;top:18px;right:18px;padding:7px 10px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(25,30,25,.42);color:rgba(249,251,246,.78);font-family:var(--mono);font-size:12px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.overlay-card{position:fixed;right:32px;bottom:34px;width:min(440px,calc(100vw - 40px));padding:22px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:rgba(27,32,27,.86);box-shadow:0 28px 90px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.12);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:auto;animation:overlayIn .26s cubic-bezier(.16,1,.3,1)}.overlay-card.danger{border-color:rgba(236,162,148,.34)}.overlay-card h1{margin:12px 0 8px;font-size:30px;line-height:1.04;letter-spacing:0}.overlay-card p{margin:0;color:rgba(249,251,246,.78);line-height:1.48}.target{display:inline-flex;margin-top:12px;color:#e9b0a6;font-family:var(--mono);font-size:13px}.overlay-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.overlay-button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:rgba(255,255,255,.09);color:#f9fbf6;cursor:pointer;padding:0 12px;font-weight:800;transition:transform .18s ease,background .18s ease,border-color .18s ease}.overlay-button:hover{background:rgba(255,255,255,.16)}.overlay-button.destructive{border-color:rgba(230,122,104,.38);color:#ffd9d2}.active-challenge{position:fixed;left:30px;bottom:32px;display:flex;width:min(360px,calc(100vw - 40px));align-items:center;justify-content:space-between;gap:14px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:rgba(31,88,69,.8);box-shadow:0 20px 60px rgba(0,0,0,.28);padding:14px 14px 14px 16px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:auto}.active-challenge span{display:block;color:rgba(249,251,246,.68);font-size:12px;font-weight:800;text-transform:uppercase}.active-challenge strong{display:block;margin-top:3px}.active-challenge button{display:grid;width:34px;height:34px;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(255,255,255,.08);color:#f9fbf6;cursor:pointer}@keyframes overlayIn{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:860px){.dashboard-shell{padding:24px 16px 42px}.dashboard-hero,.inline-control,.status-grid,.workspace-grid{grid-template-columns:1fr}.hero-copy h1{font-size:46px}}