/* RaelInfo API widgets. Uses existing theme variables from index.html. */
.backend-section{margin:38px 0 42px;scroll-margin-top:90px}
.backend-section .section-head{align-items:center}
.backend-indicator{font-size:.75rem;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:6px 10px;white-space:nowrap}
.backend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.backend-card{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:18px;box-shadow:var(--shadow)}
.backend-card-head{display:flex;gap:11px;align-items:flex-start;margin-bottom:16px}
.backend-icon{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border-radius:12px;background:color-mix(in srgb,var(--accent) 13%,var(--surface));color:var(--accent);font-size:1.3rem;font-weight:800}
.backend-card h3{font-size:1.02rem;margin:0 0 3px;letter-spacing:-.02em}
.backend-card-head p{font-size:.78rem;color:var(--muted);margin:0;line-height:1.45}
.backend-form{display:grid;gap:7px;margin-bottom:12px}
.backend-form>label{font-size:.76rem;font-weight:750;color:var(--muted)}
.backend-inline{display:flex;gap:8px;align-items:stretch}
.backend-inline input,.backend-form input,.backend-form select{min-width:0;width:100%;border:1px solid var(--line);border-radius:9px;padding:10px 11px;min-height:44px;background:var(--bg);color:var(--text);font-size:16px}
.backend-inline .btn{flex:0 0 auto}
.backend-output{min-height:50px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface);font-size:.86rem;overflow-wrap:anywhere}
.backend-output strong{font-size:1.25rem;letter-spacing:-.03em}
.backend-output .muted,.muted{color:var(--muted)}
.backend-error{color:var(--bad)!important}
.backend-ok{color:var(--good)!important}
.backend-list{display:grid;gap:8px;max-height:390px;overflow:auto}
.backend-list-item{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:10px 11px;min-width:0}
.backend-list-item a{font-weight:750;text-decoration:none;display:block;overflow-wrap:anywhere}
.backend-list-item a:hover{text-decoration:underline}
.backend-list-item small{display:block;color:var(--muted);font-size:.72rem;margin-top:4px}
.backend-footnote{color:var(--muted);font-size:.71rem;line-height:1.45;margin:12px 0 0}
.account-state{display:grid;gap:8px;padding:12px;border:1px dashed var(--line);border-radius:10px;margin-bottom:12px;font-size:.83rem}
.account-state .text-btn{width:max-content;text-decoration:none}
.portfolio-card .backend-form .fields{margin-bottom:4px}
.portfolio-visual{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px;margin:12px 0}
.portfolio-visual canvas{display:block;width:100%;height:210px}
.portfolio-position{display:flex;align-items:center;justify-content:space-between;gap:8px}
.portfolio-position strong{font-size:.9rem}
.portfolio-position small{display:block;color:var(--muted);font-size:.72rem}
.portfolio-remove{border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);padding:6px 9px;font-size:.72rem;flex:0 0 auto}
.portfolio-remove:hover{border-color:var(--bad);color:var(--bad)}
[hidden]{display:none!important}
.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg);color:var(--text)}
.login-shell{width:min(480px,100%);border:1px solid var(--line);border-radius:20px;background:var(--card);padding:clamp(22px,5vw,34px);box-shadow:var(--shadow)}
.login-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text);font-weight:850;font-size:1.15rem;margin-bottom:20px}
.login-brand img{width:44px;height:44px}
.login-shell h1{font-size:1.8rem;letter-spacing:-.04em;margin:0 0 6px}
.login-shell>p{color:var(--muted);font-size:.88rem;margin:0 0 20px}
.login-tabs{display:flex;gap:8px;padding:4px;border:1px solid var(--line);border-radius:999px;background:var(--surface);margin:18px 0}
.login-tabs button{width:50%;border:0;border-radius:999px;background:transparent;color:var(--muted);font-weight:750;padding:9px}
.login-tabs button[aria-selected="true"]{background:var(--accent);color:#04131f}
.login-form{display:grid;gap:12px}
.login-form label{font-size:.78rem;font-weight:750;color:var(--muted)}
.login-form input{display:block;width:100%;margin-top:5px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);min-height:46px;padding:11px 12px;font-size:16px}
.login-form .btn{width:100%;min-height:46px;margin-top:4px}
.login-message{min-height:24px;font-size:.82rem;color:var(--muted);margin:12px 0}
.login-message.error{color:var(--bad)}
.login-message.success{color:var(--good)}
.login-back{display:inline-block;color:var(--accent);font-weight:700;font-size:.82rem;margin-top:10px;text-decoration:none}
@media(max-width:820px){.backend-grid{grid-template-columns:minmax(0,1fr)}.backend-section .section-head{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.backend-card{padding:14px}.backend-inline{flex-direction:column}.backend-inline .btn{width:100%}.backend-position{align-items:flex-start}.backend-indicator{white-space:normal}.portfolio-visual canvas{height:180px}}

.portfolio-account-actions{display:flex;justify-content:flex-end;margin:8px 0}.portfolio-account-actions .text-btn{color:var(--bad);font-size:.74rem}
