
/* Wallet-payment overlay: while a BitLogin Connection Vault request is in
 * flight, the widget's PERMANENT mount is lifted into an overlay by styling
 * it in place. It is never moved or re-created -- either kills BitLogin's
 * crypto worker (its docs document both scars). */
body[data-bitlogin-pay] #portalSignin{display:block;position:static}
body[data-bitlogin-pay] #portalSignin > :not(#bitloginMount){display:none}
body[data-bitlogin-pay] #bitloginMount{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:rgba(4,5,12,.72);padding:16px}
body[data-bitlogin-pay] #bitloginMount bitlogin-auth{width:min(430px,100%);max-height:90vh;overflow-y:auto}

.portal-page{padding:42px 0 74px}
.portal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:28px}
.portal-head h1{font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:-.045em}
.portal-head p{max-width:680px;margin:14px 0 0;color:var(--muted)}
.portal-auth,.portal-shell,.portal-card,.portal-table-wrap,.portal-form-card{border:1px solid var(--line);background:linear-gradient(180deg,rgba(23,27,39,.86),rgba(13,15,23,.8));box-shadow:inset 0 1px rgba(255,255,255,.045)}
.portal-auth{max-width:720px;padding:clamp(22px,4vw,34px);border-radius:20px;box-shadow:var(--shadow)}
.portal-auth h2,.portal-panel h2,.portal-form-card h3{margin:0 0 8px}
.portal-auth>p,.portal-panel-head>div>p,.portal-form-card>p{margin:0 0 20px;color:var(--muted)}
.portal-auth bitlogin-auth{display:block;--bl-accent:var(--accent);--bl-accent-hover:var(--accent-strong);--bl-accent-fg:#04101f;--bl-bg:var(--panel-strong);--bl-fg:var(--ink);--bl-muted:var(--muted);--bl-border:var(--line);--bl-input-bg:rgba(7,8,16,.6);--bl-danger:var(--danger);--bl-danger-bg:rgba(255,122,133,.09);--bl-warn:#ffe0aa;--bl-warn-bg:rgba(255,190,92,.09);--bl-radius:14px;--bl-font-family:var(--font);--bl-max-width:none}
.portal-alt-signin{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.portal-alt-signin summary{cursor:pointer;color:var(--muted);font-size:.84rem;font-weight:750}
.portal-alt-signin[open] summary{margin-bottom:15px;color:var(--ink)}
.portal-signin-actions{display:flex;flex-wrap:wrap;gap:10px}
.portal-shell{overflow:hidden;display:grid;grid-template-columns:210px minmax(0,1fr);min-height:660px;border-radius:22px;box-shadow:var(--shadow)}
.portal-sidebar{display:flex;flex-direction:column;padding:18px;border-right:1px solid var(--line);background:rgba(7,8,16,.38)}
.portal-identity{padding:10px 9px 18px;border-bottom:1px solid var(--line)}
.portal-identity span,.portal-identity strong{display:block}
.portal-identity span{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.09em}
.portal-identity strong{overflow:hidden;margin-top:5px;font-family:var(--mono);font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}
.portal-tabs{display:grid;gap:6px;margin-top:18px}
.portal-tab{display:flex;align-items:center;gap:10px;width:100%;min-height:43px;padding:0 12px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--muted);font-weight:730;text-align:left}
.portal-tab:hover{color:var(--ink);background:rgba(255,255,255,.04)}
.portal-tab[aria-selected=true]{border-color:rgba(61,155,255,.24);color:var(--accent-strong);background:var(--accent-soft)}
.portal-signout{margin-top:auto}
.portal-main{min-width:0;padding:clamp(20px,4vw,34px)}
.portal-panel[hidden]{display:none}
.portal-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}
.portal-panel-head h2{font-size:1.55rem}
.portal-toolbar,.portal-actions{display:flex;flex-wrap:wrap;align-items:end;gap:10px}
.portal-field{display:grid;gap:6px;min-width:130px}
.portal-field.grow{min-width:min(100%,260px);flex:1}
.portal-field label{color:var(--muted);font-size:.74rem;font-weight:750}
.portal-field input,.portal-field select{width:100%;min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:rgba(7,8,16,.62);color:var(--ink)}
.portal-field input:focus,.portal-field select:focus{border-color:rgba(61,155,255,.65);outline:none}
.portal-field small{color:var(--muted);font-size:.7rem}
.portal-status{margin:0 0 18px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;color:var(--muted);background:rgba(7,8,16,.48);font-size:.82rem}
.portal-status[data-tone=ok]{border-color:rgba(85,214,164,.34);color:#b6f0d8;background:rgba(85,214,164,.08)}
.portal-status[data-tone=warn]{border-color:rgba(247,147,26,.34);color:#ffe0aa;background:rgba(247,147,26,.08)}
.portal-status[data-tone=error]{border-color:rgba(255,122,133,.36);color:#ffc4c9;background:rgba(255,122,133,.08)}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:22px}
.portal-card{min-width:0;padding:17px;border-radius:14px}
.portal-card span{display:block;color:var(--muted);font-size:.72rem;font-weight:720}
.portal-card strong{display:block;margin-top:7px;font-size:1.45rem;letter-spacing:-.03em}
.portal-card small{display:block;margin-top:5px;color:var(--muted);font-size:.68rem}
.portal-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 10px}
.portal-section-title h3{margin:0;font-size:1rem}
.portal-table-wrap{overflow:auto;border-radius:14px}
.portal-table{width:100%;border-collapse:collapse;font-size:.8rem}
.portal-table th{padding:10px 12px;border-bottom:1px solid var(--line);color:var(--muted);font-size:.68rem;text-align:left;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}
.portal-table td{padding:11px 12px;border-bottom:1px solid rgba(255,255,255,.06);vertical-align:top}
.portal-table tbody tr:last-child td{border-bottom:0}
.portal-table .mono{font-family:var(--mono);font-size:.72rem}
.portal-table .numeric{text-align:right;font-variant-numeric:tabular-nums}
.portal-empty{margin:0;padding:22px;color:var(--muted);text-align:center}
.portal-badge{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.68rem;font-weight:760}
.portal-badge[data-state=ready],.portal-badge[data-state=fulfilled],.portal-badge[data-state=succeeded],.portal-badge[data-state=paid]{border-color:rgba(85,214,164,.3);color:var(--success);background:rgba(85,214,164,.08)}
.portal-badge[data-state=disabled],.portal-badge[data-state=permanent_failure]{border-color:rgba(255,122,133,.3);color:var(--danger);background:rgba(255,122,133,.08)}
.portal-alerts{display:grid;gap:9px;margin:0;padding:0;list-style:none}
.portal-alerts li{padding:12px 14px;border:1px solid rgba(247,147,26,.25);border-radius:11px;color:#ead7c0;background:var(--orange-soft);font-size:.8rem}
.portal-split{display:grid;grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr);gap:16px}
.portal-form-card{padding:20px;border-radius:15px}
.portal-form{display:grid;gap:13px}
.portal-form .portal-actions{margin-top:2px}
.portal-connection-list,.portal-secret-list{display:grid;gap:10px}
.portal-row-card{padding:15px;border:1px solid var(--line);border-radius:13px;background:rgba(7,8,16,.42)}
.portal-row-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.portal-row-head h3{margin:0;font-size:.93rem}
.portal-row-head p{margin:3px 0 0;color:var(--muted);font-family:var(--mono);font-size:.68rem;overflow-wrap:anywhere}
.portal-row-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px;color:var(--muted);font-size:.7rem}
.portal-row-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.portal-row-actions .button{min-height:34px;padding:0 11px;font-size:.72rem}
.portal-health{margin-top:11px;padding:11px;border-radius:9px;background:rgba(61,155,255,.07);color:var(--muted);font-size:.73rem;white-space:pre-line}
.portal-warning{margin:0 0 18px;padding:14px;border:1px solid rgba(247,147,26,.28);border-radius:11px;color:#e7d3bd;background:var(--orange-soft);font-size:.8rem}
.portal-warning strong{color:var(--ink)}
.portal-note{color:var(--muted);font-size:.72rem}
.portal-pagination{display:flex;justify-content:flex-end;margin-top:12px}
.portal-pagination .button[hidden]{display:none}
@media(max-width:980px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-split{grid-template-columns:1fr}}
@media(max-width:760px){.portal-head{flex-direction:column}.portal-shell{grid-template-columns:1fr}.portal-sidebar{border-right:0;border-bottom:1px solid var(--line)}.portal-tabs{grid-template-columns:repeat(4,1fr)}.portal-tab{justify-content:center;padding:0 7px;font-size:.72rem}.portal-signout{margin-top:14px}.portal-main{padding:20px}.portal-panel-head{flex-direction:column}.metric-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.portal-tabs{grid-template-columns:1fr 1fr}.metric-grid{grid-template-columns:1fr}.portal-toolbar{align-items:stretch;flex-direction:column}.portal-field{width:100%}}
