.btn:hover { transform:translateY(-2px); box-shadow:0 13px 28px rgba(91,62,130,.14); }
.btn-primary:hover { background:#633792; border-color:#633792; }
.btn:active { transform:translateY(0) scale(.98); }
.btn:disabled { opacity:.58; cursor:not-allowed; transform:none; }
.card { border-radius:18px; }
.portal-kpis { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.portal-kpi { min-height:82px; display:flex; align-items:center; gap:12px; padding:15px; border:1px solid var(--line); border-radius:15px; background:#fff; box-shadow:var(--shadow-soft); }
.portal-kpi strong { display:block; font-size:22px; }
.portal-kpi span { color:var(--muted); font-size:12px; font-weight:800; }
.portal-stepper { display:grid; grid-template-columns:repeat(var(--step-count,3),minmax(0,1fr)); gap:5px; margin-bottom:18px; padding:5px; border:1px solid var(--line); border-radius:14px; background:#fbf8fd; }
.portal-stepper button { min-height:44px; display:flex; align-items:center; justify-content:center; gap:8px; padding:8px; border:0; border-radius:10px; background:transparent; color:var(--muted); font-size:12px; font-weight:900; cursor:pointer; }
.portal-stepper button b { width:24px; height:24px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; background:#fff; color:#784BB2; }
.portal-stepper button.is-active { background:#fff; color:#784BB2; box-shadow:var(--shadow-soft); }
.portal-stepper button.is-active b { color:#fff; background:#784BB2; border-color:#784BB2; }
.portal-wizard[data-ready] [data-portal-step]:not(.is-active) { display:none; }
.portal-wizard-actions { display:flex; justify-content:space-between; gap:10px; margin-top:20px; }
.portal-tabs { display:flex; gap:5px; overflow-x:auto; padding:5px; border:1px solid var(--line); border-radius:14px; background:#fbf8fd; scrollbar-width:none; }
.portal-tabs::-webkit-scrollbar { display:none; }
.portal-tabs button { flex:0 0 auto; min-height:42px; display:flex; align-items:center; gap:7px; padding:8px 14px; border:0; border-radius:10px; background:transparent; color:var(--muted); font-weight:900; cursor:pointer; }
.portal-tabs button.is-active { color:#fff; background:#784BB2; }
.portal-tab-panel[hidden] { display:none; }
.portal-empty { min-height:180px; display:grid; place-items:center; align-content:center; gap:8px; text-align:center; color:var(--muted); }
.portal-empty strong { color:#0C0C0C; font-size:18px; }
@media(max-width:760px){
  .portal-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
  .portal-kpi { min-height:96px; display:grid; justify-items:center; align-content:center; gap:5px; padding:9px 5px; text-align:center; }
  .portal-kpi strong { font-size:19px; }
  .portal-kpi span { font-size:10px; }
  .portal-stepper { gap:3px; padding:4px; }
  .portal-stepper button { min-height:40px; padding:6px 3px; font-size:10px; }
  .portal-stepper button span { display:none; }
  .portal-wizard-actions { position:sticky; bottom:0; z-index:10; margin:18px -20px -20px; padding:11px 20px calc(11px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:rgba(255,255,255,.96); backdrop-filter:blur(12px); }
  .portal-wizard-actions .btn { flex:1; width:auto; }
  .portal-tabs button span { font-size:11px; }
  .portal-tabs { overflow:visible; }
  .portal-tabs button { flex:1 1 0; min-width:0; justify-content:center; padding-inline:5px; }
  .portal-tabs button .icon { width:15px; height:15px; }
  .portal-tabs button span { font-size:9px; white-space:nowrap; }
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
