*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f7f5ff;--surface: #fff;--surface2: #f0eeff;--border: #e3dcff;--text: #1a1535;--muted: #605a90;--muted2: #a099cf;--primary: #6d4aff;--primary-h: #5835e0;--primary-s: #f0eeff;--ring: rgba(109,74,255,.22);--danger: #ef4444;--success: #22c55e}[data-theme=dark]{--bg: #0d0a1d;--surface: #1c1830;--surface2: #251f3d;--border: #2e2850;--text: #e8e4ff;--muted: #9e98c8;--muted2: #605a90;--primary: #7c5fff;--primary-h: #8b6fff;--primary-s: #251f3d;--ring: rgba(124,95,255,.28)}html,body,#root{height:100%;font-family:Inter,sans-serif;background:var(--bg);color:var(--text);overflow:hidden}button{cursor:pointer;font-family:inherit;border:none;background:none}input{font-family:inherit}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}*{transition-property:background-color,border-color,color,transform,opacity;transition-duration:.14s}.btn-primary{background:var(--primary);color:#fff;padding:11px 18px;font-size:14px;font-weight:600;border-radius:8px;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn-primary:hover{background:var(--primary-h)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-primary:active:not(:disabled){transform:scale(.99)}.btn-sso{background:var(--surface);color:var(--text);padding:10px 16px;font-size:13.5px;font-weight:500;border-radius:8px;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%}.btn-sso:hover{background:var(--surface2);border-color:var(--primary)}input.ds-input{width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:14px;outline:none}input.ds-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}input.ds-input::placeholder{color:var(--muted2)}input.ds-input.error{border-color:var(--danger);box-shadow:0 0 0 3px #ef444424}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes blobFloat1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(40px,-30px) scale(1.08)}}@keyframes blobFloat2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-30px,40px) scale(.92)}}
