*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f7f7f8;--bg-card:#fff;--bg-elevated:#f0f0f3;--bg-input:#fff;--bg-hover:#f4f4f8;--border:#e4e4ea;--border-soft:#ededf2;--border-focus:#7c3aed;--text:#0f0f14;--text-dim:#5c5c72;--text-muted:#9898aa;--accent:#7c3aed;--accent-hover:#6d28d9;--accent-light:#9d5ff5;--accent-dim:#7c3aed14;--accent-mid:#7c3aed26;--green:#16a34a;--green-dim:#16a34a1a;--red:#dc2626;--red-dim:#dc262614;--yellow:#d97706;--yellow-dim:#d977061a;--blue:#2563eb;--blue-dim:#2563eb14;--shadow-xs:0 1px 2px #0000000d;--shadow-sm:0 1px 3px #0000000f, 0 4px 12px #0000000a;--shadow-md:0 4px 16px #00000014, 0 1px 4px #0000000a;--shadow-lg:0 12px 40px #0000001a, 0 2px 8px #0000000f;--radius-xs:4px;--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-xl:24px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif}html,body{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button{font-family:var(--font);cursor:pointer}input,textarea,select{font-family:var(--font);color:var(--text);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;width:100%;padding:.6rem .85rem;font-size:.875rem;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-dim)}input::placeholder,textarea::placeholder{color:var(--text-muted)}.btn{border-radius:var(--radius-sm);white-space:nowrap;cursor:pointer;border:none;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1.1rem;font-size:.825rem;font-weight:600;line-height:1;transition:all .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-xs)}.btn-primary:hover{background:var(--accent-hover);box-shadow:var(--shadow-sm)}.btn-primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-ghost{color:var(--text-dim);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--bg-hover);color:var(--text);border-color:var(--border-focus)}.btn-danger{background:var(--red-dim);color:var(--red);border:1px solid #0000}.btn-danger:hover{border-color:var(--red)}.btn-lg{border-radius:var(--radius);padding:.7rem 1.5rem;font-size:.9rem}.btn-full{width:100%}.form-group{flex-direction:column;gap:.35rem;display:flex}.form-label{color:var(--text-dim);letter-spacing:.01em;font-size:.775rem;font-weight:600}.form-error{color:var(--red);font-size:.75rem}.form-hint{color:var(--text-muted);font-size:.72rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);padding:1.25rem}.badge{letter-spacing:.01em;border-radius:99px;align-items:center;gap:.25rem;padding:.2rem .55rem;font-size:.7rem;font-weight:600;display:inline-flex}.badge-green{background:var(--green-dim);color:var(--green)}.badge-red{background:var(--red-dim);color:var(--red)}.badge-dim{background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border)}.badge-blue{background:var(--blue-dim);color:var(--blue)}.divider{color:var(--text-muted);align-items:center;gap:.75rem;font-size:.75rem;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.spinner{border:2px solid #7c3aed33;border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.6s linear infinite spin}.btn-primary .spinner{border-color:#fff #ffffff4d #ffffff4d}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes popIn{0%{opacity:0;transform:translate(-50%,-48%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.fade-up{animation:.25s forwards fadeUp}.section-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.72rem;font-weight:700}
