*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--text);animation:pageIn .28s ease both;min-height:100vh}
button,input,select,textarea{font:inherit}
button{border:0;border-radius:14px;padding:10px 14px;font-weight:800;background:var(--primary);color:#fff;cursor:pointer;transition:.16s ease;user-select:none}
button:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(47,85,151,.22)}
button:active{transform:translateY(0) scale(.985)}
button.secondary{background:var(--card);color:var(--text);border:1px solid var(--line)}
button.danger{background:var(--danger)}
button.success{background:var(--success)}
button.small{padding:7px 10px;font-size:13px;border-radius:11px}
button:disabled{opacity:.55;cursor:not-allowed;pointer-events:none;transform:none;box-shadow:none}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--text);padding:10px 12px;min-height:42px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(122,167,255,.18)}
textarea{min-height:92px;resize:vertical}
a{color:var(--primary)}
.spacer{height:12px}
.muted{color:var(--muted)}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes pageIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes softPop{from{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}
@keyframes modalIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@keyframes panelIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes noticeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}