*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}:root{--bg:#f6f7f9;--surface:#ffffff;--border:#e5e7eb;--text:#0f172a;--muted:#64748b;--accent:#2563eb;--accent-hover:#1d4ed8;--danger:#b42318;--ok:#0d652d}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent)}.ui-card{background:var(--surface);border:1px solid var(--border);border-radius:14px}.ui-input{width:100%;padding:.55rem .75rem;border:1px solid var(--border);border-radius:8px;font-size:.9rem;font-family:inherit;color:var(--text);background:#fff;outline:none;transition:border-color .12s ease,box-shadow .12s ease}.ui-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(37,99,235,.15)}.ui-btn{display:inline-block;font-family:inherit;font-size:.9rem;font-weight:500;line-height:1.2;padding:.5rem .9rem;border-radius:8px;border:1px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color .12s ease,border-color .12s ease,opacity .12s ease}.ui-btn:disabled{opacity:.5;cursor:not-allowed}.ui-btn-sm{padding:.35rem .65rem;font-size:.8rem}.ui-btn-primary{background:var(--text);color:#fff}.ui-btn-primary:hover:not(:disabled){background:#1e293b}.ui-btn-ghost{background:#fff;color:var(--text);border-color:var(--border)}.ui-btn-ghost:hover:not(:disabled){background:#f1f5f9}.ui-btn-danger{background:#fff;color:var(--danger);border-color:#e7c3c3}.ui-btn-danger:hover:not(:disabled){background:#fdf2f2}