:root{--bg:#0f172a;--bg-soft:#1e293b;--line:#334155;--text:#e2e8f0;--muted:#94a3b8;--accent:#22d3ee;--accent-2:#34d399;--danger:#f87171;--radius:12px}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{flex-direction:column;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.card{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:460px;padding:24px}.card h1{margin:0 0 4px;font-size:20px}.card .subtitle{color:var(--muted);margin:0 0 20px;font-size:13px}.field{margin-bottom:14px}.field label{color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.field .error{color:var(--danger);margin-top:4px;font-size:12px}.input,.select{background:var(--bg);border:1px solid var(--line);width:100%;color:var(--text);border-radius:8px;padding:10px 12px;font-size:15px}.input:focus,.select:focus{border-color:var(--accent);outline:none}.btn{background:var(--accent);color:#0f172a;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;padding:11px 18px;font-size:15px;font-weight:700;display:inline-flex}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{color:var(--text);border:1px solid var(--line);background:0 0}.btn-danger{background:var(--danger);color:#fff}.row{gap:10px;display:flex}.row>.grow{flex:1}.checkline{align-items:flex-start;gap:10px;margin:10px 0;font-size:14px;display:flex}.checkline input{accent-color:var(--accent);margin-top:3px}.link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px}.error-banner{color:var(--danger);background:#f871711f;border:1px solid #f8717166;border-radius:8px;margin-bottom:14px;padding:10px 12px;font-size:13px}.steps{gap:6px;margin-bottom:20px;display:flex}.step-dot{background:var(--line);border-radius:4px;flex:1;height:6px}.step-dot.done{background:var(--accent-2)}.step-dot.active{background:var(--accent)}.photo{object-fit:cover;background:var(--bg);border:2px solid var(--line);border-radius:50%;width:96px;height:96px}.badge{background:var(--line);color:var(--text);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-block}.badge.ok{color:var(--accent-2);background:#34d39926}.badge.full{color:var(--accent);background:#22d3ee26}
