/* ── TVNDEM Client Portal styles ─────────────── */
.portal-body{min-height:100vh}
.portal-nav .inner{display:flex;align-items:center;justify-content:space-between}

/* Auth (login) */
.portal-auth{max-width:26rem;margin:0 auto;padding:clamp(3rem,10vh,7rem) 1.25rem 4rem}
.auth-card{padding:clamp(2rem,5vw,3rem)}
.auth-title{font-size:clamp(1.8rem,4vw,2.4rem);letter-spacing:-.02em}
.portal-auth label{display:block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:1rem 0 .35rem}
.portal-auth input{width:100%;padding:.9rem 1.1rem;border-radius:1rem;border:1px solid var(--glass-line);background:color-mix(in oklab,#fff 60%,transparent);font:inherit}
.auth-links{text-align:center}
.auth-link-btn{background:none;border:none;cursor:pointer;font:inherit;font-size:.82rem}
.auth-error{padding:.8rem 1rem;border-radius:.8rem;background:color-mix(in oklab,#c0392b 12%,transparent);border:1px solid color-mix(in oklab,#c0392b 30%,transparent);color:#a23125;font-size:.85rem}
.auth-note{padding:.9rem 1rem;border-radius:.8rem;background:color-mix(in oklab,var(--copper) 8%,transparent)}

/* Main portal */
.portal-main{max-width:70rem;margin:0 auto;padding:clamp(2rem,5vw,3.5rem) 1.25rem 5rem}
.portal-loading{text-align:center;padding:6rem 0}
.spinner{width:2.2rem;height:2.2rem;border-radius:50%;border:3px solid color-mix(in oklab,var(--ink) 15%,transparent);border-top-color:var(--copper);margin:0 auto;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.portal-grid{display:grid;grid-template-columns:1fr 20rem;gap:1.5rem;align-items:start}
@media(max-width:780px){.portal-grid{grid-template-columns:1fr}}
.portal-card{padding:1.75rem}
.pc-head{display:flex;align-items:center;justify-content:space-between}
.pc-body{display:grid;gap:1rem}
.pc-field label{display:block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem}
.pc-field input,.pc-field select{width:100%;padding:.8rem 1rem;border-radius:.9rem;border:1px solid var(--glass-line);background:color-mix(in oklab,#fff 55%,transparent);font:inherit;transition:opacity .2s,background .2s}
.pc-field input:disabled,.pc-field select:disabled{opacity:.75;cursor:default;background:transparent;border-color:transparent;padding-left:0}
.pc-actions{display:flex;gap:.7rem;margin-top:.6rem}
.pc-saved{color:var(--copper);font-size:.82rem;margin-top:.6rem}

.plan-badge{display:flex;flex-direction:column;gap:.2rem}
.plan-name{font-family:var(--font-display);font-size:1.6rem;letter-spacing:-.02em}
.plan-price{color:var(--muted);font-size:.9rem}
.plan-extras p{margin:0}
