.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;font-weight:600;font-size:0.9375rem;padding:9px 20px;cursor:pointer;user-select:none;border:none;border-radius:50px;text-decoration:none;transition:background 0.2s ease,box-shadow 0.22s ease,transform 0.16s ease,color 0.18s ease}.btn-primary{background:var(--accent,#2f7ae5);color:#fff;box-shadow:0 4px 12px rgba(47,122,229,0.32),0 1px 3px rgba(0,0,0,0.12)}.btn-primary:hover{background:var(--accent-hover,#3f8bff);transform:translateY(-2px);box-shadow:0 8px 20px rgba(47,122,229,0.42),0 2px 6px rgba(0,0,0,0.16)}.btn-primary:active{transform:translateY(0);box-shadow:0 3px 6px rgba(47,122,229,0.32),0 1px 3px rgba(0,0,0,0.12)}.btn-secondary{background:#fff;border:1px solid var(--border,#d8e0ec);color:var(--ink-900,#0f172a);box-shadow:0 1px 3px rgba(0,0,0,0.07)}.btn-secondary:hover{background:var(--accent,#2f7ae5);border-color:var(--accent,#2f7ae5);color:#fff;transform:translateY(-2px);box-shadow:0 6px 16px rgba(47,122,229,0.32),0 2px 6px rgba(0,0,0,0.10)}.btn-secondary:active{transform:translateY(0)}.btn-neutral{background:#fff;border:1px solid var(--border,#d8e0ec);color:var(--ink-700,#334155)}.btn-neutral:hover{background:var(--hover,#e6eefc)}.btn-link{background:none;border:none;padding:0;font-size:inherit;font-weight:600;color:var(--accent,#2f7ae5);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.btn-link:hover{color:var(--accent-hover,#3f8bff);opacity:0.88}.btn-tab{display:flex;align-items:center;justify-content:center;width:100%;height:3rem;padding:0;background:#fff;border:1px solid #c9daff;font-weight:600;color:var(--ink-700,#334155);border-radius:8px;cursor:pointer;transition:background 0.2s ease,border-color 0.2s ease,box-shadow 0.22s ease,transform 0.16s ease}.btn-tab:hover{background:#e8efff;border-color:#bcd1ff;transform:translateY(-2px);box-shadow:0 8px 20px rgba(47,122,229,0.16),0 3px 6px rgba(0,0,0,0.07)}.btn-tab.active{background:var(--accent,#2f7ae5);border-color:var(--accent,#2f7ae5);color:#fff;box-shadow:0 10px 26px rgba(47,122,229,0.32),0 4px 8px rgba(0,0,0,0.10)}.btn-tab.active:hover{background:var(--accent-hover,#3f8bff);transform:none}.btn-small{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:4px 10px;font-size:0.75rem;font-weight:600;background:var(--accent,#2f7ae5);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background 0.18s ease,transform 0.14s ease,box-shadow 0.18s ease}.btn-small:hover{background:var(--accent-hover,#3f8bff);transform:translateY(-1px);box-shadow:0 4px 10px rgba(47,122,229,0.38),0 1px 3px rgba(0,0,0,0.12)}.btn-small:active{transform:translateY(0)}.btn-solid{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;font-size:0.9375rem;font-weight:600;background:#0f1e4a;color:#fff;border:none;border-radius:6px;cursor:pointer;text-decoration:none;box-shadow:0 4px 12px rgba(15,30,74,0.28),0 1px 2px rgba(0,0,0,0.10);transition:background 0.2s ease,transform 0.16s ease,box-shadow 0.22s ease}.btn-solid:hover{background:#0a1430;transform:translateY(-2px);box-shadow:0 8px 20px rgba(15,30,74,0.36),0 3px 6px rgba(0,0,0,0.14)}.btn-solid:active{transform:translateY(0);box-shadow:0 3px 6px rgba(15,30,74,0.24),0 1px 3px rgba(0,0,0,0.10)}.btn-back{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:transparent;border:none;border-radius:6px;font-weight:600;color:var(--accent,#2f7ae5);cursor:pointer;text-decoration:none;transition:opacity 0.18s ease}.btn-back:hover{opacity:0.75}.btn-portal{display:inline-flex;align-items:center;justify-content:center;padding:5px 10px;border-radius:4px;font-size:0.75rem;font-weight:600;text-decoration:none;color:#fff;background:var(--accent,#2f7ae5);border:none;cursor:pointer;transition:background 0.15s ease,transform 0.14s ease}.btn-portal:hover{background:var(--accent-hover,#3f8bff);transform:translateY(-1px)}.btn-portal:active{transform:translateY(0)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.btn-icon svg{width:1rem;height:1rem;stroke-width:2;display:block}