:root{--bg-a:#fff8ef;--bg-b:#eff6f7;--ink:#1f2f35;--ink-soft:#4f646b;--panel:hsla(0,0%,100%,.88);--line:rgba(31,47,53,.12);--accent:#0f8a8d;--accent-2:#f25f4c;--accent-3:#247ba0}*{box-sizing:border-box}body{margin:0;font-family:Space Grotesk,Segoe UI,sans-serif;color:var(--ink);background:radial-gradient(circle at 15% 0,rgba(242,95,76,.2),transparent 35%),radial-gradient(circle at 100% 0,rgba(15,138,141,.2),transparent 40%),linear-gradient(140deg,var(--bg-a),var(--bg-b));min-height:100vh}.dashboard-root{width:min(1100px,94vw);margin:0 auto;padding:2.2rem 0 3rem;display:grid;grid-gap:1rem;gap:1rem}.hero{background:linear-gradient(120deg,rgba(15,138,141,.92),rgba(36,123,160,.92));border-radius:16px;padding:1.4rem 1.4rem 1.2rem;color:#f5fcff}.hero h1{margin:0;font-size:clamp(1.4rem,3.6vw,2rem);letter-spacing:.02em}.hero p{margin:.4rem 0 0;color:rgba(245,252,255,.95)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.panel h2{margin:0 0 .8rem;font-size:1.02rem}.grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.8rem;gap:.8rem}.grid,label{display:grid}label{grid-gap:.35rem;gap:.35rem;font-size:.86rem;color:var(--ink-soft)}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:.6rem .7rem;font:inherit;color:var(--ink);background:hsla(0,0%,100%,.95)}textarea{resize:vertical}.span-2{grid-column:span 2}.button-row{margin-top:.8rem;display:flex;flex-wrap:wrap;gap:.55rem}button{border:none;border-radius:999px;padding:.58rem .9rem;font:inherit;font-size:.88rem;cursor:pointer;color:#fff;background:linear-gradient(110deg,var(--accent),var(--accent-3));transition:transform .12s ease}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{opacity:.55;cursor:not-allowed}.output pre{margin:0;max-height:320px;overflow:auto;border-radius:10px;padding:.8rem;border:1px solid var(--line);background:#10181b;color:#d7eef0;font-family:IBM Plex Mono,Consolas,monospace;font-size:.8rem}@media (max-width:860px){.grid{grid-template-columns:1fr}.span-2{grid-column:span 1}}