.purple-link{color:var(--text-color-purple);text-decoration:none}.purple-link:hover{text-decoration:underline;animation:linkFadeIn .5s ease-in-out forwards}@keyframes linkFadeIn{0%{opacity:.5}}.btn-primary{background-color:var(--primary-color);color:var(--text-interactive);border:1px solid transparent;padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.btn-primary:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.btn-primary:active{transform:translateY(0);filter:brightness(.9)}.btn-transparent{background:transparent;border:1px solid var(--text-color);color:var(--text-color);padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.btn-transparent:hover{background:#ffffff1a;transform:translateY(-1px);border-color:var(--text-color);box-shadow:0 4px 8px #0000001a}.btn-transparent:active{transform:translateY(0);filter:brightness(.9);background:#ffffff0d}.btn-glass{background:#ffffff1f;border:1px solid rgba(255,255,255,.2);color:var(--text-interactive);padding:10px 24px;border-radius:8px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.btn-glass:hover{background:#fff3;transform:translateY(-1px);border-color:#fff6}.btn-glass:active{transform:translateY(0);background:#ffffff0d}.btn-danger{background-color:var(--bg-light-gray);color:var(--text-color);border:none;padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:0 4px 6px #0003}.btn-danger:hover{background-color:var(--danger-hover);color:var(--text-interactive);transform:translateY(-2px);box-shadow:0 6px 12px #ff475766}.btn-danger:active{transform:translateY(0);background-color:var(--danger-active);filter:brightness(.9);box-shadow:0 2px 4px #0003}.info-btn{background:transparent;border:1px solid var(--text-color-purple);color:var(--text-color-purple);border-radius:50%;width:24px;height:24px;font-size:14px;cursor:pointer;margin-left:12px;flex-shrink:0;display:flex;justify-content:center;align-items:center}.info-btn:hover{background:color-mix(in srgb,var(--text-color-purple),transparent 85%)}.btn-primary:disabled,.btn-transparent:disabled,.btn-glass:disabled,.btn-danger:disabled{cursor:not-allowed!important;background-color:var(--disabled-bg)!important;color:var(--disabled-text)!important;border-color:transparent!important;transform:none!important;box-shadow:none!important;filter:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;opacity:.7}.btn-primary:hover:disabled,.btn-transparent:hover:disabled,.btn-glass:hover:disabled,.btn-danger:hover:disabled{background-color:var(--disabled-bg)!important;cursor:not-allowed!important}.banner-error{background:var(--error-bg);border-left:4px solid var(--error-border);color:var(--error-text);padding:1rem;font-weight:600;border-radius:4px;margin-bottom:1.5rem;animation:shake .5s ease-in-out;transition:background-color .3s ease,border-color .3s ease,color .3s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}:root{--text-interactive: #f8fafc;--text-interactive-hover: #b082dd;--text-interactive-active: #5f3c82;--bg-color: #f8fafc;--text-color: #0f172a;--primary-color: #764ba2;--text-color-purple: #581c87;--accent-color: #b8860b;--error-bg: rgba(255, 71, 87, .1);--error-border: #ff4757;--error-text: #d63031;--bg-light-gray: #e5e7eb;--danger-hover: #ff4757;--danger-active: #d63031;--disabled-bg: #e2e8f0;--disabled-text: #64748b}[data-theme=dark]{--text-interactive: #f8fafc;--text-interactive-hover: #b082dd;--text-interactive-active: #5f3c82;--bg-color: #0f172a;--text-color: #f8fafc;--primary-color: #5f3c82;--text-color-purple: #d8b4fe;--accent-color: #f1c40f;--error-bg: rgba(255, 107, 129, .15);--error-border: #ff6b81;--error-text: #ff7675;--bg-light-gray: #1e293b;--danger-hover: #ff6b81;--danger-active: #ff4757;--disabled-bg: #1e293b;--disabled-text: #475569}body{background-color:var(--bg-color);color:var(--text-color);font-family:sans-serif;margin:0}
