:root{--bg:#0f1c1a;--bg-elevated:#162824;--fg:#e8f2ef;--muted:#8fa8a1;--accent:#2db88a;--accent-dim:#1a7a5c;--danger:#e07a5f;--border:#2a3f3a;--font-display:"Fraunces",Georgia,serif;--font-body:"Source Sans 3",system-ui,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;background:radial-gradient(ellipse 80% 50% at 10% -10%,#1a4a3c 0,transparent 50%),radial-gradient(ellipse 60% 40% at 100% 0,#243830 0,transparent 45%),var(--bg);color:var(--fg);font-family:var(--font-body)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em}.shell{max-width:960px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.nav{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.nav .brand{font-family:var(--font-display);font-size:1.35rem;color:var(--fg);margin-right:auto;text-decoration:none}.card{background:color-mix(in srgb,var(--bg-elevated) 90%,transparent);border:1px solid var(--border);border-radius:12px;padding:1.25rem 1.35rem;margin-bottom:1rem}.muted{font-size:.95rem}.muted,label{color:var(--muted)}label{display:block;margin:.75rem 0 .35rem;font-size:.9rem}input,select,textarea{width:100%;padding:.65rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--fg);font:inherit}.btn,button{display:inline-block;margin-top:1rem;padding:.65rem 1.1rem;border-radius:8px;border:none;background:var(--accent);color:#062219;font:inherit;font-weight:600;cursor:pointer}.btn.secondary,button.secondary{background:transparent;color:var(--fg);border:1px solid var(--border)}button:disabled{opacity:.5;cursor:not-allowed}.row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.badge{display:inline-block;padding:.2rem .55rem;border-radius:6px;font-size:.8rem;background:var(--accent-dim);color:var(--fg)}.badge.warn{background:#5a4030}.badge.ok{background:var(--accent-dim)}table{width:100%;border-collapse:collapse;font-size:.9rem}td,th{text-align:left;padding:.55rem .4rem;border-bottom:1px solid var(--border)}.error{color:var(--danger);margin-top:.75rem}.steps{list-style:none;padding:0;margin:0}.steps li{padding:.85rem 0;border-bottom:1px solid var(--border)}.steps li:last-child{border-bottom:none}.steps .step-key{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}