.portal-nav{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.portal-back{color:var(--cyan);font-size:.88rem;font-weight:700}
.portal-main{min-height:calc(100vh - 150px);padding:72px 0 90px;background:radial-gradient(ellipse at 50% 0%,#168bff18,transparent 48%)}
.portal-wrap{width:min(940px,calc(100% - 38px));margin:0 auto}
.portal-heading{max-width:700px;margin:0 auto 34px;text-align:center}
.portal-heading .eyebrow{margin-bottom:12px}
.portal-heading h1{max-width:none;margin-bottom:12px;font-size:clamp(2.5rem,7vw,4.4rem)}
.portal-heading>p:last-child{color:var(--muted);font-size:1.02rem}
.portal-card{padding:clamp(23px,4vw,38px);border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,#0e2544,#0a1b34);box-shadow:0 24px 60px #0002}
.portal-card h2{margin:0 0 10px;font-size:clamp(1.5rem,4vw,2rem)}
.portal-card>p{color:var(--muted)}
.portal-card[hidden],.portal-dashboard[hidden]{display:none}
.setup-card,.sign-in-card{max-width:560px;margin:0 auto}
.portal-icon{width:46px;height:46px;display:grid;place-items:center;margin-bottom:20px;border:1px solid #28639a;border-radius:14px;background:#168bff18;color:var(--cyan);font-size:1.25rem}
.portal-form{display:grid;gap:11px;margin-top:22px}
.portal-form label{font-size:.85rem;font-weight:700}
.portal-form input{width:100%;min-height:49px;padding:12px 14px;border:1px solid #355577;border-radius:10px;background:#071a31;color:var(--ink);font:inherit}
.portal-form input:focus{border-color:var(--cyan);outline:2px solid #20c4ff35}
.portal-form .button{margin-top:5px;cursor:pointer;font:inherit}
.portal-status{min-height:1.35em;margin:4px 0 0!important;color:#a9eac3!important;font-size:.83rem!important}
.portal-dashboard{display:grid;gap:22px}
.dashboard-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 4px}
.dashboard-top h2{margin:0;font-size:clamp(1.8rem,4vw,2.6rem)}
.dashboard-top .eyebrow{margin-bottom:7px}
.signed-in-as{margin:7px 0 0;color:var(--muted);font-size:.86rem}
.sign-out{min-height:42px;cursor:pointer;font:inherit}
.dashboard-columns{display:grid;grid-template-columns:1.4fr .8fr;align-items:start;gap:18px}
.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.card-title-row .eyebrow{margin-bottom:7px}
.card-title-row h2{margin:0}
.status-chip{padding:6px 10px;border:1px solid #35628a;border-radius:999px;color:#c0eaff;font-size:.74rem;font-weight:700;white-space:nowrap}
.project-list{display:grid;gap:13px}
.project-card{padding:19px;border:1px solid #ffffff16;border-radius:15px;background:#071a31a8}
.project-card h3{margin:0 0 5px;font-size:1.14rem}
.project-meta{margin:0;color:var(--muted);font-size:.83rem}
.project-stage{display:inline-flex;margin:14px 0 8px;padding:6px 10px;border-radius:99px;background:#168bff1d;color:#8bdbff;font-size:.77rem;font-weight:700}
.project-next{margin:4px 0 0;color:#d4dfed;font-size:.88rem}
.project-next strong{color:white}
.project-link{display:inline-block;margin-top:12px;color:var(--cyan);font-size:.82rem;font-weight:700}
.portal-empty{padding:18px;border:1px dashed #3c5d7d;border-radius:14px;color:var(--muted);font-size:.9rem}
.billing-panel{position:sticky;top:100px}
.billing-panel .button{width:100%;margin-top:10px;cursor:pointer;font:inherit}
.billing-note{margin:13px 0 0!important;color:#91a5bd!important;font-size:.75rem!important}
.portal-legal{margin:22px 0 0;text-align:center;color:#91a2b9;font-size:.77rem}
.portal-legal a,.portal-footer a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.portal-footer{display:flex;justify-content:space-between;gap:18px;padding:23px 0;color:#a7b4c8;font-size:.78rem}
button:disabled{cursor:wait;opacity:.65}
@media(max-width:760px){.portal-main{padding:48px 0 65px}.dashboard-columns{grid-template-columns:1fr}.billing-panel{position:static}.project-panel{order:0}.billing-panel{order:1}}
@media(max-width:520px){.portal-nav{min-height:68px}.portal-wrap{width:calc(100% - 30px)}.dashboard-top{align-items:flex-start}.portal-footer{flex-direction:column}.sign-out{padding-inline:13px}}
