:root{--bg:#ffffff;--surface:#f4f4f5;--text:#18181b;--muted:#71717a;--primary:#2563eb;--danger:#dc2626;--ok:#16a34a;--radius:8px;--space:12px;--font:system-ui,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#111111;--surface:#1c1c1f;--text:#f4f4f5;--muted:#a1a1aa}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font)}button,input,textarea,select{font:inherit}.app{display:flex;flex-direction:column;height:100dvh;max-width:60rem;margin:0 auto;padding:0 var(--space)}.log{flex:1;overflow:auto;padding:var(--space) 0}.msg{background:var(--surface);border-radius:var(--radius);padding:var(--space);margin:6px 0;white-space:pre-wrap}.row{display:flex;gap:8px;padding:var(--space) 0}.row textarea{flex:1;min-height:44px}.err{color:var(--danger)}.muted{color:var(--muted)}button{min-height:44px;padding:0 16px;border-radius:var(--radius);border:1px solid var(--muted);background:var(--primary);color:#fff}button.secondary{background:transparent;color:var(--text)}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
