:root{--navy:#16364d;--navy2:#0b293d;--mint:#57ff8f;--mint2:#2fcf79;--ink:#101820;--slate:#5f7480;--line:#dbe5e9;--soft:#f5f8f9;--soft2:#eaf2f4;--white:#fff;--danger:#b44b4b;--amber:#a86f08;--shadow:0 18px 55px rgba(16,44,62,.09);--radius:18px}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#f5f8f9}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.portal-skip{position:fixed;left:16px;top:-80px;background:var(--navy);color:#fff;padding:10px 14px;border-radius:9px;z-index:999}.portal-skip:focus{top:16px}.portal-layout{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}.portal-sidebar{position:sticky;top:0;height:100vh;padding:24px 16px 20px;background:linear-gradient(180deg,#14364d,#0b293d);color:#fff;display:flex;flex-direction:column;z-index:30}.portal-brand{display:flex;align-items:center;gap:12px;padding:4px 8px 18px}.portal-brand img{width:43px;height:43px}.portal-brand span{display:grid}.portal-brand b{font-size:16px}.portal-brand small{font-size:11px;color:#a9c0ca;letter-spacing:.04em}.portal-company{margin:0 8px 20px;padding:11px 12px;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#d9e6eb;font-size:12px;font-weight:750}.portal-org-switch{display:grid;gap:6px;margin:0 8px 18px}.portal-org-switch select{min-width:0;border:1px solid rgba(255,255,255,.14);background:#0d2c40;color:#fff;border-radius:9px;padding:9px}.portal-org-switch button{border:0;border-radius:8px;padding:7px;background:rgba(87,255,143,.15);color:var(--mint);font-weight:800;cursor:pointer}.portal-sidebar nav{display:grid;gap:5px}.portal-sidebar nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;color:#bed0d8;font-size:14px;font-weight:750}.portal-sidebar nav a i{font-style:normal;width:24px;height:24px;display:grid;place-items:center;border-radius:7px;background:rgba(255,255,255,.06);font-size:13px}.portal-sidebar nav a:hover,.portal-sidebar nav a.active{background:rgba(255,255,255,.09);color:#fff}.portal-sidebar nav a.active i{background:rgba(87,255,143,.16);color:var(--mint)}.portal-side-foot{margin-top:auto;padding:15px 10px 4px;border-top:1px solid rgba(255,255,255,.11);display:flex;align-items:center;gap:10px}.portal-side-foot>div{display:grid}.portal-side-foot b{font-size:12px}.portal-side-foot small{font-size:11px;color:#91acb8}.engine-dot{width:9px;height:9px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 5px rgba(87,255,143,.1)}
.portal-workspace{min-width:0}.portal-topbar{height:72px;position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 34px}.portal-topbar>div{display:flex;align-items:center;gap:14px}.portal-topbar>div:first-child>span{font-size:13px;font-weight:850;color:var(--slate)}.portal-nav-btn{display:none;border:0;background:transparent;font-size:22px}.portal-user{display:flex;align-items:center;gap:16px}.portal-user>span{display:grid;text-align:right}.portal-user b{font-size:12px}.portal-user small{font-size:10px;color:var(--slate)}.portal-user button{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:8px;padding:8px 10px;font-size:11px;font-weight:800;cursor:pointer}.portal-main{padding:42px 38px 72px;max-width:1450px;margin:0 auto}.portal-kicker{display:block;font-size:11px;font-weight:900;letter-spacing:.14em;color:var(--mint2)}.portal-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:30px}.portal-heading h1{font-size:clamp(34px,4vw,52px);line-height:1;margin:8px 0 10px;color:var(--navy)}.portal-heading p{margin:0;color:var(--slate);max-width:720px;line-height:1.55}.portal-heading.project{align-items:center}.portal-project-score{display:grid;justify-items:center;padding:17px 22px;border-radius:16px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.portal-project-score strong{font-size:28px;color:var(--navy)}.portal-project-score span{font-size:10px;color:var(--slate);text-transform:uppercase;letter-spacing:.08em;font-weight:800}.portal-flash{padding:13px 16px;border-radius:12px;margin-bottom:24px;font-size:13px;font-weight:750}.portal-flash.ok{background:#e8fbf0;border:1px solid #b8eccd;color:#14603a}.portal-flash.error{background:#fff0f0;border:1px solid #efc5c5;color:#8b3333}
.portal-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.portal-metrics article{display:grid;gap:6px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:19px 20px;box-shadow:0 10px 30px rgba(16,44,62,.04)}.portal-metrics article.mint{background:#f2fff7;border-color:#beeaca}.portal-metrics span{font-size:10px;text-transform:uppercase;letter-spacing:.09em;font-weight:900;color:var(--slate)}.portal-metrics strong{font-size:28px;color:var(--navy)}.portal-metrics small{font-size:11px;color:var(--slate)}.portal-money{display:grid;line-height:1.15}.portal-money b{font-size:inherit;color:inherit}.portal-money small{margin-top:2px;font-size:.68em!important;color:var(--slate)!important;font-weight:700}.portal-metrics .portal-money b{font-size:22px;color:var(--navy)}.portal-metrics .portal-money small{font-size:10px!important}
.portal-panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:var(--shadow);margin-bottom:20px}.portal-panel h2{margin:7px 0 10px;color:var(--navy);font-size:22px}.portal-panel>p{color:var(--slate);line-height:1.65}.portal-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.portal-panel-head h2{margin:6px 0 0}.portal-panel-head>a,.portal-panel-head>span{font-size:11px;font-weight:850;color:var(--navy)}.portal-two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}.portal-project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.portal-project-card,.portal-project-list-card{display:block;border:1px solid var(--line);border-radius:15px;padding:19px;background:linear-gradient(180deg,#fff,#fbfdfd);transition:.18s ease}.portal-project-card:hover,.portal-project-list-card:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(16,44,62,.08)}.portal-project-top,.portal-project-list-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.portal-project-top>div,.portal-project-list-head>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.portal-project-top>div>span:last-child,.portal-project-list-head>div>span:last-child{font-size:11px;color:var(--slate)}.portal-project-top strong,.portal-project-list-head strong{color:var(--navy);font-size:20px}.portal-project-card h3,.portal-project-list-card h2{margin:14px 0 7px;color:var(--navy)}.portal-project-card p,.portal-project-list-card p{color:var(--slate);font-size:13px;line-height:1.55;min-height:40px}.portal-progress{display:grid;gap:7px}.portal-progress>span{height:7px;border-radius:99px;background:var(--soft2);overflow:hidden}.portal-progress>span i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#2fcf79,#57ff8f)}.portal-progress small{font-size:10px;color:var(--slate)}.portal-project-list{display:grid;gap:14px}.portal-project-list-card{padding:23px}.portal-status{display:inline-flex;padding:5px 7px;border-radius:99px;font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;background:#edf3f5;color:#49616f}.portal-status.complete,.portal-status.paid,.portal-status.accepted,.portal-status.active{background:#e5f9ed;color:#167044}.portal-status.in_progress,.portal-status.build,.portal-status.review,.portal-status.sent{background:#eaf5fb;color:#216784}.portal-status.waiting,.portal-status.proposal,.portal-status.onboarding,.portal-status.due{background:#fff3da;color:#976000}.portal-status.cancelled,.portal-status.declined,.portal-status.overdue{background:#fdeaea;color:#9a3f3f}.portal-status.paused,.portal-status.planned,.portal-status.planning{background:#eef2f4;color:#576a74}
.portal-action-strip,.portal-action-card{border-radius:17px;background:linear-gradient(135deg,#173c50,#0e2c40);color:#fff;padding:22px 24px;margin-bottom:20px}.portal-action-strip>span,.portal-action-card>span{font-size:10px;letter-spacing:.13em;color:var(--mint);font-weight:900}.portal-action-strip>div{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:12px}.portal-action-strip a{display:block;padding:14px 16px;border-radius:12px;background:rgba(255,255,255,.07)}.portal-action-strip b{font-size:13px}.portal-action-strip p{margin:6px 0;color:#c9d9df;font-size:12px;line-height:1.5}.portal-action-strip em{font-style:normal;color:var(--mint);font-size:10px;font-weight:850}.portal-action-card h2{margin:8px 0 7px;font-size:24px}.portal-action-card p{margin:0;color:#d6e3e8;line-height:1.6}.project-overview .portal-panel{min-height:100%}.portal-next-step{margin-top:18px;padding:15px 16px;background:#f3fff7;border:1px solid #c8efd5;border-radius:12px}.portal-next-step span{font-size:9px;letter-spacing:.1em;color:#188350;font-weight:900}.portal-next-step p{margin:5px 0 0;color:#2d5540}.stage-ribbon{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin-top:22px}.stage-ribbon span{padding:7px 5px;border-radius:7px;background:var(--line-soft);color:#8a9aa2;font-size:8px;text-align:center;text-transform:uppercase;font-weight:800}.stage-ribbon span.reached{background:#e7fbef;color:#197448}.finance-card dl,.portal-simple-dl{display:grid;gap:0;margin:16px 0 0}.finance-card dl div,.portal-simple-dl div{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-top:1px solid var(--line);align-items:center}.finance-card dt,.portal-simple-dl dt{font-size:11px;color:var(--slate)}.finance-card dd,.portal-simple-dl dd{margin:0;text-align:right;font-size:12px;font-weight:800;color:var(--navy)}.finance-card dd .portal-money{justify-items:end}
.portal-timeline{display:grid}.timeline-step{display:grid;grid-template-columns:38px 1fr;gap:14px;position:relative;padding:0 0 20px}.timeline-step:not(:last-child):before{content:"";position:absolute;left:18px;top:36px;bottom:0;width:2px;background:#dfe8eb}.timeline-step>i{position:relative;z-index:1;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#edf3f5;color:#627985;font-style:normal;font-size:11px;font-weight:900}.timeline-step.complete>i{background:#dff9e9;color:#16804d}.timeline-step.in_progress>i{background:#dff2fb;color:#1d6d8b}.timeline-step.waiting>i{background:#fff1ce;color:#986100}.timeline-step>div>div{display:flex;align-items:center;gap:10px}.timeline-step>div>div small{font-size:10px;color:var(--slate)}.timeline-step h3{margin:7px 0 4px;color:var(--navy);font-size:16px}.timeline-step p{margin:0;color:var(--slate);font-size:12px;line-height:1.55}
.portal-file-row,.portal-proposal-row,.portal-payment-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-top:1px solid var(--line)}.portal-file-row:first-of-type,.portal-proposal-row:first-of-type,.portal-payment-row:first-of-type{border-top:0}.portal-file-row .file-icon{width:32px;height:32px;border-radius:9px;background:#edf7f1;color:#16804d;display:grid;place-items:center;font-weight:900}.portal-file-row>div{min-width:0;flex:1;display:grid;gap:3px}.portal-file-row b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-file-row small{font-size:10px;color:var(--slate)}.portal-file-row em{font-style:normal;font-size:10px;color:var(--slate)}.portal-proposal-row>div:first-child,.portal-payment-row>div:first-child{display:grid;gap:5px}.portal-proposal-row b,.portal-payment-row b{font-size:12px}.portal-proposal-row small,.portal-payment-row small{font-size:10px;color:var(--slate)}.portal-proposal-row .portal-money,.portal-payment-row .portal-money{justify-items:end;font-size:12px}.portal-payment-row{align-items:flex-start}
.upload-panel{display:grid;grid-template-columns:.8fr 1.2fr;gap:28px;align-items:start}.upload-panel form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.upload-panel label,.portal-accept-form label,.portal-account-form label,.portal-login-card label{display:grid;gap:6px;color:#435b67;font-size:11px;font-weight:800}.upload-panel select,.portal-accept-form input,.portal-account-form input,.portal-login-card input{width:100%;border:1px solid #d5e0e4;border-radius:10px;background:#fff;padding:11px 12px;color:var(--ink);outline:none}.upload-panel select:focus,.portal-accept-form input:focus,.portal-account-form input:focus,.portal-login-card input:focus{border-color:#65bd87;box-shadow:0 0 0 3px rgba(87,255,143,.12)}.file-picker{grid-column:1/-1;border:1px dashed #b9cbd2;border-radius:12px;padding:14px;background:#f8fbfc;cursor:pointer}.file-picker input{position:absolute;opacity:0;pointer-events:none}.file-picker span{font-size:12px;color:var(--navy)}.upload-panel .portal-btn{align-self:end}.upload-result{display:flex;align-items:center;font-size:11px;color:var(--slate)}.portal-btn{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:10px;padding:11px 14px;font-weight:850;font-size:12px;cursor:pointer}.portal-btn.primary{background:var(--navy);color:#fff}.portal-btn.mint{background:var(--mint);color:#0e3d26}.portal-btn.soft{background:#fff;border:1px solid var(--line);color:var(--navy)}.portal-btn.full{width:100%;margin-top:18px}.portal-accept-form,.portal-account-form{display:grid;gap:12px;margin-top:18px}.check-label{display:flex!important;grid-template-columns:auto 1fr;align-items:flex-start;gap:9px!important;line-height:1.5}.check-label input{width:auto!important;margin-top:3px}.acceptance-record{display:grid;gap:4px;margin-top:20px;padding:16px;border-radius:12px;background:#effbf4;border:1px solid #c9efd8}.acceptance-record span{font-size:9px;color:#377153;text-transform:uppercase;letter-spacing:.08em;font-weight:900}.acceptance-record b{color:var(--navy)}.acceptance-record small{color:var(--slate)}.security-note{font-size:10px!important;color:var(--slate)!important;margin-top:14px!important}.portal-empty{padding:40px 18px;text-align:center;color:var(--slate)}.portal-empty.compact{padding:20px 10px}.portal-empty b{display:block;color:var(--navy);margin-bottom:5px}.portal-empty p{margin:0;font-size:12px}.portal-file-list{display:grid}
.portal-login-body{min-height:100vh;background:radial-gradient(circle at top right,rgba(87,255,143,.13),transparent 28%),linear-gradient(135deg,#0b293d,#16364d);padding:40px 18px}.portal-login-shell{width:min(460px,100%);margin:5vh auto;display:grid;gap:18px}.portal-login-brand{display:flex;align-items:center;gap:12px;color:#fff}.portal-login-brand img{width:46px;height:46px}.portal-login-brand span{display:grid}.portal-login-brand small{font-size:11px;color:#abc2cc}.portal-login-card{background:#fff;border-radius:20px;padding:30px;box-shadow:0 28px 80px rgba(0,0,0,.2)}.portal-login-card h1{margin:8px 0 8px;color:var(--navy);font-size:34px}.portal-login-card>p{color:var(--slate);line-height:1.55}.portal-login-card form{display:grid;gap:14px;margin:22px 0 14px}.portal-login-card label small{font-weight:500;color:var(--slate)}.portal-login-card>small{display:block;color:#758993;font-size:10px;line-height:1.5}.portal-login-message{padding:10px 12px;background:#fff2f2;color:#8e3636;border-radius:9px;font-size:11px}.portal-back-site{color:#bdd0d8;font-size:11px}.portal-login-card a{color:var(--navy);font-weight:800}
@media(max-width:980px){.portal-layout{grid-template-columns:1fr}.portal-sidebar{position:fixed;left:-270px;width:250px;transition:.2s ease}.portal-body.nav-open .portal-sidebar{left:0;box-shadow:20px 0 50px rgba(0,0,0,.2)}.portal-nav-btn{display:block}.portal-main{padding:32px 22px 60px}.portal-metrics{grid-template-columns:1fr 1fr}.portal-project-grid,.portal-two-col{grid-template-columns:1fr}.portal-action-strip>div{grid-template-columns:1fr}.upload-panel{grid-template-columns:1fr}}
@media(max-width:640px){.portal-topbar{padding:0 16px}.portal-user>span{display:none}.portal-main{padding:26px 14px 50px}.portal-heading{display:grid;align-items:start}.portal-heading .portal-btn{justify-self:start}.portal-metrics{grid-template-columns:1fr}.portal-project-score{justify-self:start}.stage-ribbon{grid-template-columns:repeat(3,1fr)}.upload-panel form{grid-template-columns:1fr}.upload-panel form>*{grid-column:1}.portal-panel{padding:19px}.portal-login-card{padding:24px}}
/* dev-0.11 client finance */
.portal-finance-list{display:grid}.portal-finance-row{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:15px 0;border-bottom:1px solid var(--portal-line,#dce5e9);text-decoration:none;color:inherit}.portal-finance-row:last-child{border-bottom:0}.portal-finance-row>div{display:grid;gap:4px}.portal-finance-row>div:last-child{justify-items:end}.portal-finance-row b{color:#16364D}.portal-finance-row small{color:#667d88}.portal-row-arrow{font-size:11px;font-weight:800;color:#159e58}.portal-info-note{margin-top:18px;padding:18px 20px;border-radius:14px;background:#f4f8f9;border:1px solid #dce5e9}.portal-info-note b{color:#16364D}.portal-info-note p{margin:5px 0 0;color:#526874}.portal-info-note a{color:#16364D;font-weight:800}.portal-finance-row .portal-money{justify-items:end}
@media(max-width:700px){.portal-finance-row{align-items:flex-start}.portal-finance-row>div:last-child{justify-items:start}.portal-finance-row{display:grid}.portal-finance-row .portal-money{justify-items:start}}
/* dev-0.14 project delivery engine */
.portal-status.approved,.portal-status.done,.portal-status.on_track{background:#e5f9ed;color:#167044}.portal-status.changes_requested,.portal-status.at_risk{background:#fff0df;color:#985814}.portal-status.blocked{background:#fdeaea;color:#9a3f3f}.portal-status.on_hold{background:#f1edf7;color:#66527f}.portal-delivery-metrics article>strong{font-size:18px;line-height:1.2}.portal-phase-timeline{display:grid}.portal-phase{display:grid;grid-template-columns:38px 1fr;gap:14px;position:relative;padding:0 0 19px}.portal-phase:not(:last-child):before{content:"";position:absolute;left:18px;top:36px;bottom:0;width:2px;background:#dfe8eb}.portal-phase>i{position:relative;z-index:1;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#edf3f5;color:#627985;font-style:normal;font-size:11px;font-weight:900}.portal-phase.complete>i{background:#dff9e9;color:#16804d}.portal-phase.in_progress>i{background:#dff2fb;color:#1d6d8b}.portal-phase.waiting>i{background:#fff1ce;color:#986100}.portal-phase>div>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.portal-phase h3{margin:7px 0 4px;color:var(--navy);font-size:16px}.portal-phase p{margin:0;color:var(--slate);font-size:12px;line-height:1.55}.portal-phase small{font-size:10px;color:var(--slate)}.portal-gate{display:inline-flex;border-radius:999px;padding:4px 7px;background:#eef8ff;color:#286681;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.portal-phase-label{display:block!important;margin:4px 0 0;color:#56717d!important}.portal-dependency{margin-top:7px;padding:8px 10px;border-radius:9px;background:#fff6df;color:#81580c;font-size:10px;font-weight:800}.portal-delivery-action,.portal-approval{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:14px 0;border-top:1px solid var(--line);align-items:start}.portal-delivery-action:first-of-type,.portal-approval:first-of-type{border-top:0}.portal-delivery-action>div,.portal-approval>div{display:grid;gap:4px}.portal-delivery-action b,.portal-approval b{font-size:13px;color:var(--navy)}.portal-delivery-action small,.portal-approval small{font-size:10px;color:var(--slate)}.portal-delivery-action p,.portal-approval p{margin:3px 0 0;color:var(--slate);font-size:11px;line-height:1.5}.portal-approval-form{min-width:250px;display:grid;gap:8px}.portal-approval-form textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 10px;resize:vertical}.portal-approval-form>div{display:flex;gap:7px;justify-content:flex-end}.portal-response{margin-top:7px;padding:9px 10px;border-radius:9px;background:#f4f8f9}.portal-response b{font-size:10px}.portal-permission-note{font-size:10px;color:var(--slate);padding:8px 0}.portal-check-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-top:1px solid var(--line)}.portal-check-row:first-of-type{border-top:0}.portal-check-row>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eef5f7;color:#56717d;font-weight:900}.portal-check-row>div{display:grid;gap:2px}.portal-check-row b{font-size:12px;color:var(--navy)}.portal-check-row small{font-size:9px;color:var(--slate);text-transform:uppercase;letter-spacing:.06em}.portal-money b{display:inline!important}.portal-money small{display:inline!important;font-size:inherit!important;color:inherit!important;font-weight:inherit!important}
@media(max-width:760px){.portal-delivery-action,.portal-approval{grid-template-columns:1fr}.portal-approval-form{min-width:0}.portal-approval-form>div{justify-content:flex-start}}
/* dev-0.15 identity, access & account security */
.portal-recovery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}.portal-recovery-grid code{padding:9px 11px;border:1px solid #d4e6db;border-radius:8px;background:#f8fcfa;color:var(--navy);font-weight:850;letter-spacing:.04em}.portal-security-key{display:grid;gap:6px;margin:14px 0;padding:14px;border-radius:11px;background:#f4f9fa;border:1px solid var(--line)}.portal-security-key code{overflow-wrap:anywhere;color:var(--navy);font-weight:850}.portal-security-key small{color:var(--slate);font-size:10px}.portal-team-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.portal-team-row:first-child{border-top:0}.portal-team-row>div:first-child{display:grid;gap:3px;min-width:0}.portal-team-row b{font-size:12px;color:var(--navy)}.portal-team-row small{font-size:10px;color:var(--slate)}.portal-team-row p{margin:4px 0 0;color:var(--slate);font-size:11px;line-height:1.5}.portal-team-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.portal-team-actions form{display:flex;gap:6px;align-items:center;margin:0}.portal-team-actions select,.portal-account-form select,.portal-account-form textarea{border:1px solid #d5e0e4;border-radius:9px;background:#fff;padding:9px 10px;color:var(--ink);outline:none}.portal-team-actions select:focus,.portal-account-form select:focus,.portal-account-form textarea:focus{border-color:#65bd87;box-shadow:0 0 0 3px rgba(87,255,143,.12)}.portal-btn.tiny{padding:7px 9px;min-height:31px;font-size:10px}.portal-account-form textarea{width:100%;resize:vertical}.portal-login-card form+p,.portal-login-card p:last-child{font-size:11px}.portal-login-card hr{border:0;border-top:1px solid var(--line);margin:22px 0}
@media(max-width:700px){.portal-recovery-grid{grid-template-columns:1fr}.portal-team-row{grid-template-columns:1fr}.portal-team-actions{justify-content:flex-start}.portal-team-actions form{flex-wrap:wrap}}

/* dev-0.16 coordinated visual polish */
:root{--line:#cbd9df;--line-soft:#dde7eb;--line-strong:#b9cbd3}
.portal-panel,.portal-metrics article,.portal-project-card,.portal-project-list-card,.portal-project-score,.portal-info-note,.portal-security-key{border-color:var(--line-strong)}
.portal-finance-row,.portal-team-row,.portal-delivery-action,.portal-approval,.portal-check-row,.finance-card dl div,.portal-simple-dl div{border-color:var(--line-soft)}
.portal-panel{box-shadow:0 8px 28px rgba(20,51,71,.05)}
.portal-btn.soft,.portal-user button{border-color:var(--line-strong)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(47,207,121,.30);outline-offset:2px}
.portal-mfa-enrolment{display:grid;grid-template-columns:minmax(210px,250px) minmax(0,1fr);gap:18px;align-items:center;margin:16px 0}.portal-mfa-qr-card{display:grid;justify-items:center;gap:8px;padding:16px;border:1px solid var(--line-strong);border-radius:14px;background:#fff}.portal-mfa-qr-card .mfa-qr-svg{display:block;width:min(210px,100%);height:auto}.portal-mfa-qr-card small{font-size:10px;color:var(--slate);text-align:center}.portal-mfa-manual{margin:0}.portal-mfa-manual>span{font-size:11px;color:var(--slate)}.portal-mfa-confirm{margin-top:16px}.portal-security-key code{user-select:all}
/* Public Client Portal gateway — branded, intentional and invitation-only. */
.portal-login-body.portal-gateway-page{background:#f6f9fa;padding:0}.portal-gateway-page .portal-login-shell{width:100%;max-width:none;margin:0;gap:0}.portal-gateway-page .portal-login-shell>.portal-login-brand{height:86px;padding:0 max(24px,calc((100vw - 1180px)/2));background:#fff;border-bottom:1px solid var(--line);color:var(--navy)}.portal-gateway-page .portal-login-shell>.portal-login-brand small{color:var(--slate)}.portal-gateway-page .portal-login-shell>.portal-login-brand .portal-gateway-logo{width:300px;max-width:58vw;height:66px;object-fit:contain;object-position:left center}.portal-gateway-page .portal-login-shell>.portal-back-site{display:block;padding:24px max(24px,calc((100vw - 1180px)/2));background:var(--navy2);color:#d4e4ea}.portal-gateway-v2{background:radial-gradient(circle at 82% 8%,rgba(87,255,143,.13),transparent 26%),linear-gradient(180deg,#fff 0,#f7fafb 58%,#eef4f6 100%)}.portal-gateway-hero{width:min(1180px,calc(100% - 48px));margin:0 auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);gap:72px;align-items:center;padding:88px 0 82px}.portal-gateway-hero h1{font-size:clamp(46px,5.4vw,76px);line-height:.98;letter-spacing:-.045em;color:var(--navy);margin:12px 0 24px}.portal-gateway-hero h1 em{font-style:normal;color:var(--mint2)}.portal-gateway-hero>div:first-child>p{font-size:18px;line-height:1.7;color:var(--slate);max-width:650px}.portal-gateway-hero>div:first-child>small{display:block;margin-top:18px;color:#6b818c;line-height:1.55}.portal-gateway-hero>div:first-child>small a{color:var(--navy);font-weight:850}.portal-gateway-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.gateway-outline{background:#fff;border:1px solid var(--line-strong);color:var(--navy)}.portal-gateway-visual{position:relative;padding:26px}.gateway-window{background:#fff;border:1px solid #bfcfd6;border-radius:22px;box-shadow:0 28px 70px rgba(16,44,62,.14);overflow:hidden;transform:rotate(1deg)}.gateway-window-head{height:44px;background:var(--navy);display:flex;align-items:center;gap:6px;padding:0 14px;color:#fff}.gateway-window-head>span{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.35)}.gateway-window-head b{margin-left:auto;font-size:9px;letter-spacing:.12em;color:var(--mint)}.gateway-progress{padding:25px 25px 20px}.gateway-progress small,.gateway-mini-grid small{display:block;font-size:9px;letter-spacing:.11em;color:#718792;font-weight:900}.gateway-progress strong{display:block;color:var(--navy);font-size:36px;margin:6px 0 12px}.gateway-progress i{display:block;height:8px;border-radius:999px;background:#e8eff2;overflow:hidden}.gateway-progress i u{display:block;width:68%;height:100%;background:linear-gradient(90deg,var(--mint2),var(--mint));border-radius:999px}.gateway-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px 18px}.gateway-mini-grid>div{padding:16px;border:1px solid var(--line);border-radius:13px;background:#fbfdfd}.gateway-mini-grid b{display:block;color:var(--navy);font-size:14px;margin:7px 0 4px}.gateway-mini-grid span{font-size:10px;color:var(--slate)}.gateway-secure-pill{position:absolute;right:5px;bottom:7px;padding:10px 14px;border-radius:999px;background:#e5fff0;border:1px solid #b8eccd;color:#176b43;font-size:10px;font-weight:850;box-shadow:0 10px 25px rgba(16,44,62,.10)}.gateway-secure-pill::first-letter{color:var(--mint2)}
.portal-gateway-path{border-top:1px solid var(--line);padding:76px max(24px,calc((100vw - 1180px)/2)) 84px;background:#fff}.gateway-path-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:end;margin-bottom:34px}.gateway-path-intro .portal-kicker{grid-column:1/-1}.gateway-path-intro h2{margin:0;color:var(--navy);font-size:clamp(34px,4vw,52px);line-height:1.03;letter-spacing:-.035em}.gateway-path-intro p{margin:0;color:var(--slate);font-size:15px;line-height:1.65}.portal-gateway-path ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.portal-gateway-path li{min-height:190px;padding:20px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#fff,#fafcfd)}.portal-gateway-path li>span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#e8fbef;color:#167044;font-size:10px;font-weight:900}.portal-gateway-path li b{display:block;margin-top:22px;color:var(--navy);font-size:14px}.portal-gateway-path li p{margin:7px 0 0;color:var(--slate);font-size:11px;line-height:1.55}.gateway-final-cta{margin-top:34px;border-radius:22px;background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;padding:30px 34px;display:flex;align-items:center;justify-content:space-between;gap:30px}.gateway-final-cta h2{margin:7px 0 0;font-size:28px}.gateway-final-cta .portal-kicker{color:var(--mint)}
@media(max-width:980px){.portal-gateway-hero{grid-template-columns:1fr;gap:42px;padding:64px 0}.portal-gateway-visual{max-width:650px}.gateway-path-intro{grid-template-columns:1fr}.portal-gateway-path ol{grid-template-columns:repeat(2,1fr)}.portal-gateway-path li:last-child{grid-column:1/-1}.portal-mfa-enrolment{grid-template-columns:1fr}.portal-mfa-qr-card{justify-self:start;width:min(100%,280px)}}
@media(max-width:640px){.portal-gateway-page .portal-login-shell>.portal-login-brand{height:74px;padding:0 18px}.portal-gateway-hero{width:calc(100% - 32px);padding:48px 0}.portal-gateway-hero h1{font-size:44px}.portal-gateway-hero>div:first-child>p{font-size:16px}.portal-gateway-actions{display:grid}.portal-gateway-actions .portal-btn{width:100%}.portal-gateway-visual{padding:6px}.gateway-mini-grid{grid-template-columns:1fr}.gateway-secure-pill{right:0;bottom:-18px}.portal-gateway-path{padding:62px 16px}.portal-gateway-path ol{grid-template-columns:1fr}.portal-gateway-path li:last-child{grid-column:auto}.portal-gateway-path li{min-height:0}.gateway-final-cta{display:grid;padding:26px 22px}.gateway-final-cta .portal-btn{width:100%}}

/* dev-0.17 client-centred active services */
.portal-services-panel{margin-top:20px}.portal-services-panel .portal-panel-head p{margin:5px 0 0;color:var(--slate);font-size:11px}.portal-service-list{display:grid}.portal-service-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:14px 2px;border-top:1px solid var(--line-soft,#dde7eb)}.portal-service-row:first-child{border-top:0}.portal-service-row>div:first-child{display:grid;gap:4px}.portal-service-row b{font-size:12px;color:var(--navy)}.portal-service-row small{font-size:10px;color:var(--slate)}.portal-service-value{display:grid;justify-items:end;gap:2px}.portal-service-value .portal-money b{font-size:11px}.portal-service-value .portal-money small{display:inline;font-size:9px}.portal-service-model{font-size:10px;color:var(--slate);font-weight:800}.portal-service-row .portal-row-arrow{font-size:10px;font-weight:850;color:var(--navy);white-space:nowrap}
@media(max-width:700px){.portal-service-row{grid-template-columns:1fr}.portal-service-value{justify-items:start}.portal-service-row .portal-row-arrow{justify-self:start}}

/* dev-0.18.1 service requests */
.portal-form-note{margin:14px 0 0;color:var(--slate);font-size:11px;line-height:1.6}

/* dev-0.18.3 service-request clarity */
.portal-service-choice-details{margin:-2px 0 18px}
.portal-service-choice-placeholder,.portal-service-choice-card{border:1px solid var(--line);border-radius:14px;padding:18px;background:#f8fbfc}
.portal-service-choice-placeholder b{display:block;color:var(--navy);font-size:13px}.portal-service-choice-placeholder p{margin:5px 0 0;color:var(--slate);font-size:11px;line-height:1.55}
.portal-service-choice-card{background:linear-gradient(135deg,#f5fbf8,#fff);border-color:#cfe5d8}
.portal-service-choice-card[hidden]{display:none!important}
.portal-service-choice-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:9px}
.portal-service-choice-head h2{margin:4px 0 0;font-size:20px}.portal-service-choice-head strong{color:var(--navy);font-size:14px;text-align:right;white-space:nowrap}
.portal-service-choice-card>p{margin:0;color:var(--slate);font-size:12px;line-height:1.65}
.portal-service-choice-card ul{margin:14px 0 10px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 18px;list-style:none}
.portal-service-choice-card li{position:relative;padding-left:16px;color:var(--navy);font-size:11px;line-height:1.45}.portal-service-choice-card li:before{content:'✓';position:absolute;left:0;color:var(--mint2);font-weight:900}
.portal-service-choice-card>small{display:block;border-top:1px solid #dce9e2;padding-top:10px;color:var(--slate);font-size:10px;line-height:1.55}
@media(max-width:700px){.portal-service-choice-head{display:grid;gap:7px}.portal-service-choice-head strong{text-align:left;white-space:normal}.portal-service-choice-card ul{grid-template-columns:1fr}}

/* dev-0.22.2.1 — Client Portal calm-view and account information architecture */
.portal-heading-calm{margin-bottom:22px}.portal-heading-calm h1{font-size:clamp(32px,3.7vw,48px)}
.portal-focus-panel{background:#fff;border:1px solid var(--line-strong);border-radius:18px;padding:22px 24px;box-shadow:0 8px 28px rgba(20,51,71,.05);margin-bottom:16px}.portal-focus-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px}.portal-focus-heading h2{margin:5px 0 0;color:var(--navy);font-size:21px}.portal-focus-heading>a{font-size:11px;font-weight:850;color:var(--navy);padding-top:6px}.portal-focus-count{display:grid;place-items:center;min-width:34px;height:34px;border-radius:999px;background:#fff3da;color:#8d5a00;font-weight:900;font-size:13px}.portal-attention-panel{border-color:#e8d49f;background:linear-gradient(180deg,#fffdf7,#fff)}.portal-attention-list{display:grid;gap:8px}.portal-attention-list>a{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 14px;border:1px solid #efe4c7;border-radius:12px;background:#fff}.portal-attention-list>a:hover{border-color:#dcc485;background:#fffdf6}.portal-attention-list b{display:block;color:var(--navy);font-size:12px}.portal-attention-list p{margin:4px 0 0;color:var(--slate);font-size:11px;line-height:1.45}.portal-attention-list>a>span{font-size:10px;font-weight:900;color:var(--navy);white-space:nowrap}.portal-caught-up{display:flex;gap:13px;align-items:flex-start;margin-bottom:16px;padding:16px 18px;border:1px solid #cfe8d7;background:#f5fcf7;border-radius:15px}.portal-caught-up>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#dff7e7;color:#167044;font-weight:900}.portal-caught-up b{display:block;color:var(--navy);font-size:12px}.portal-caught-up p{margin:4px 0 0;color:var(--slate);font-size:11px;line-height:1.5}.portal-focus-projects{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-project-card-compact{padding:16px}.portal-project-card-compact h3{margin-top:11px;font-size:16px}.portal-project-card-compact p{min-height:0;margin:6px 0 12px;font-size:11px}.portal-project-card-compact .portal-project-top strong{font-size:17px}
.portal-quick-actions{margin:20px 0}.portal-quick-actions>.portal-kicker{margin-bottom:9px}.portal-quick-actions>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.portal-quick-actions a{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title arrow" "meta arrow";align-items:center;gap:3px 12px;padding:14px 15px;border:1px solid var(--line-strong);border-radius:13px;background:#fff}.portal-quick-actions a:hover{border-color:#b9cbd2;box-shadow:0 7px 20px rgba(20,51,71,.05)}.portal-quick-actions b{grid-area:title;color:var(--navy);font-size:11px}.portal-quick-actions small{grid-area:meta;color:var(--slate);font-size:9px;line-height:1.4}.portal-quick-actions i{grid-area:arrow;font-style:normal;color:var(--mint2);font-weight:900}
.portal-glance{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:12px 0 26px;border:1px solid var(--line);border-radius:14px;background:#f9fbfc;overflow:hidden}.portal-glance>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-right:1px solid var(--line)}.portal-glance>div:last-child{border-right:0}.portal-glance span{color:var(--slate);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.portal-glance b{color:var(--navy);font-size:15px}
.portal-records{margin-top:28px}.portal-section-intro{margin-bottom:12px}.portal-section-intro h2{margin:5px 0 4px;color:var(--navy);font-size:20px}.portal-section-intro p{margin:0;color:var(--slate);font-size:11px}.portal-disclosure{border:1px solid var(--line-strong);border-radius:14px;background:#fff;margin-bottom:9px;overflow:hidden}.portal-disclosure>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 17px}.portal-disclosure>summary::-webkit-details-marker{display:none}.portal-disclosure>summary>div{display:grid;gap:3px}.portal-disclosure>summary b{font-size:12px;color:var(--navy)}.portal-disclosure>summary small{font-size:10px;color:var(--slate)}.portal-disclosure>summary>span{font-size:16px;color:var(--slate);transition:transform .18s ease}.portal-disclosure[open]>summary>span{transform:rotate(180deg)}.portal-disclosure[open]>summary{background:#fbfdfd;border-bottom:1px solid var(--line)}.portal-disclosure-body{padding:17px}.portal-disclosure-body>.portal-project-grid{margin-bottom:12px}.portal-inline-link{display:inline-flex;margin-top:12px;font-size:10px;font-weight:900;color:var(--navy)}.portal-record-summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:13px 14px;border-radius:11px;background:#f7fafb;border:1px solid var(--line)}.portal-record-summary>div{display:grid;gap:3px}.portal-record-summary>div>span{font-size:9px;color:var(--slate);text-transform:uppercase;letter-spacing:.06em;font-weight:850}.portal-record-summary>a,.portal-record-subhead>a{font-size:10px;font-weight:900;color:var(--navy)}.portal-record-subhead{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:18px 0 8px}.portal-record-subhead b{font-size:11px;color:var(--navy)}
.portal-heading-account{margin-bottom:18px}.portal-heading-account h1{font-size:clamp(32px,3.6vw,46px)}.portal-account-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:18px}.portal-account-tabs>a{display:grid;gap:3px;padding:13px 15px;border:1px solid var(--line-strong);border-radius:12px;background:#fff}.portal-account-tabs>a b{font-size:11px;color:var(--navy)}.portal-account-tabs>a small{font-size:9px;color:var(--slate)}.portal-account-tabs>a.active{border-color:#8ed8aa;background:#f3fff7;box-shadow:inset 0 0 0 1px #c8efd5}.portal-account-tabs>a.active b{color:#176b43}.portal-account-view{max-width:1000px}.portal-account-primary{max-width:720px}.portal-account-lead{margin-top:0!important}.portal-security-core .portal-panel{height:100%;margin-bottom:0}.portal-security-core{margin-bottom:14px}.portal-security-status{display:flex;justify-content:space-between;gap:20px;padding:11px 0;margin:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px}.portal-security-status span{color:var(--slate)}.portal-security-status b{color:var(--navy)}.portal-security-alert{border-color:#eed6a4;background:#fffdf7}.portal-account-disclosure{max-width:1000px}.portal-session-head{align-items:center}.portal-session-head p{margin:0;color:var(--slate);font-size:11px}.portal-team-attention{display:flex;gap:12px;align-items:center;padding:13px 15px;border-radius:12px;border:1px solid #ecd79f;background:#fffaf0;margin-bottom:14px}.portal-team-attention>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#fff0c8;color:#8d5a00;font-weight:900}.portal-team-attention>div{display:grid;gap:2px}.portal-team-attention b{font-size:11px;color:var(--navy)}.portal-team-attention small{font-size:9px;color:var(--slate)}.portal-member-manage{justify-self:end;position:relative}.portal-member-manage>summary{list-style:none;cursor:pointer;border:1px solid var(--line-strong);border-radius:8px;padding:7px 9px;font-size:9px;font-weight:850;color:var(--navy);background:#fff}.portal-member-manage>summary::-webkit-details-marker{display:none}.portal-member-manage[open]>summary{background:#f4f8f9}.portal-member-manage .portal-team-actions{margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#f9fbfc;display:flex;flex-wrap:wrap;justify-content:flex-end}.portal-team-invite-form{max-width:620px}
@media(max-width:980px){.portal-focus-projects{grid-template-columns:1fr}.portal-quick-actions>div{grid-template-columns:1fr}.portal-glance{grid-template-columns:1fr 1fr}.portal-glance>div:nth-child(2){border-right:0}.portal-glance>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:640px){.portal-focus-panel{padding:18px}.portal-focus-heading{margin-bottom:12px}.portal-attention-list>a{align-items:flex-start}.portal-quick-actions{margin-top:16px}.portal-glance{grid-template-columns:1fr 1fr}.portal-glance>div{display:grid;gap:4px}.portal-account-tabs{grid-template-columns:1fr}.portal-account-tabs>a{grid-template-columns:auto 1fr;align-items:baseline;gap:8px}.portal-account-tabs>a small{text-align:right}.portal-record-summary{display:grid}.portal-session-head{display:grid}.portal-session-head form{justify-self:start}.portal-team-row-managed{align-items:flex-start}.portal-member-manage{justify-self:start}}


/* dev-0.22.2.2 — Client Portal visual warmth / premium polish */
:root{--portal-canvas:#f3f7f8;--portal-card:#ffffff;--portal-border:#d8e4e8;--portal-shadow:0 18px 50px rgba(13,46,64,.075);--portal-shadow-soft:0 8px 28px rgba(13,46,64,.055)}
.portal-body{background:var(--portal-canvas)}
.portal-workspace{min-height:100vh;background:radial-gradient(circle at 86% 5%,rgba(87,255,143,.075),transparent 26rem),radial-gradient(circle at 18% 78%,rgba(70,167,204,.055),transparent 24rem),linear-gradient(180deg,#f8fbfc 0%,#f2f6f7 100%)}
.portal-sidebar{background:radial-gradient(circle at 18% 8%,rgba(87,255,143,.12),transparent 13rem),linear-gradient(180deg,#153b52 0%,#0b2a3e 68%,#092638 100%);box-shadow:10px 0 34px rgba(7,30,45,.07)}
.portal-brand img{width:46px;height:46px;filter:drop-shadow(0 7px 15px rgba(4,26,39,.28))}.portal-brand b{font-size:17px;letter-spacing:-.015em}.portal-brand small{color:#bfd0d7}
.portal-company{padding:13px 14px;border-color:rgba(255,255,255,.12);border-radius:13px;background:rgba(255,255,255,.035);box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.portal-sidebar nav{gap:7px}.portal-sidebar nav a{position:relative;border:1px solid transparent;border-radius:13px;padding:11px 12px;transition:background .18s ease,border-color .18s ease,transform .18s ease}.portal-sidebar nav a:hover{background:rgba(255,255,255,.075);border-color:rgba(255,255,255,.055);transform:translateX(2px)}.portal-sidebar nav a.active{background:linear-gradient(90deg,rgba(87,255,143,.15),rgba(255,255,255,.075));border-color:rgba(87,255,143,.13);box-shadow:inset 3px 0 0 var(--mint)}.portal-sidebar nav a i{background:rgba(255,255,255,.065)}.portal-sidebar nav a.active i{background:rgba(87,255,143,.18);box-shadow:0 0 0 1px rgba(87,255,143,.06)}
.portal-side-foot{border-top-color:rgba(255,255,255,.09)}
.portal-topbar{height:76px;background:rgba(255,255,255,.88);border-bottom-color:rgba(211,225,230,.85);box-shadow:0 8px 28px rgba(15,47,65,.035)}.portal-user button{border-radius:10px;padding:9px 12px;transition:.18s ease}.portal-user button:hover{background:#f6fafb;border-color:#bfd0d7}
.portal-main{max-width:1240px;padding:48px 46px 90px}.portal-kicker{letter-spacing:.15em}.portal-heading h1{letter-spacing:-.03em}.portal-heading p{font-size:14px}

.portal-heading-calm{position:relative;overflow:hidden;isolation:isolate;padding:31px 34px;margin-bottom:22px;border-radius:25px;background:linear-gradient(125deg,#12364d 0%,#17485b 62%,#176246 120%);box-shadow:0 22px 54px rgba(10,43,61,.16);align-items:center}.portal-heading-calm:before{content:'';position:absolute;z-index:-1;width:260px;height:260px;border-radius:50%;right:-72px;top:-135px;background:radial-gradient(circle,rgba(87,255,143,.24),rgba(87,255,143,0) 68%)}.portal-heading-calm:after{content:'';position:absolute;z-index:-1;width:180px;height:180px;border-radius:50%;right:105px;bottom:-145px;border:1px solid rgba(255,255,255,.12)}.portal-heading-calm .portal-kicker{color:var(--mint)}.portal-heading-calm h1{color:#fff;margin-top:9px;text-shadow:0 1px 0 rgba(0,0,0,.05)}.portal-heading-calm p{color:#d8e6eb;font-size:14px}.portal-heading-calm>div{position:relative;z-index:1}

.portal-focus-panel{border-color:var(--portal-border);border-radius:21px;padding:24px 26px;box-shadow:var(--portal-shadow-soft);transition:box-shadow .2s ease,border-color .2s ease}.portal-focus-heading h2{font-size:22px;letter-spacing:-.015em}.portal-focus-heading>a{padding:7px 10px;border-radius:9px;background:#f4f8f9;transition:.18s ease}.portal-focus-heading>a:hover{background:#eaf3ef;color:#176b43}
.portal-attention-panel{position:relative;overflow:hidden;border-color:#ead8a9;background:linear-gradient(135deg,#fffdf7 0%,#fff 62%)}.portal-attention-panel:before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#f4ba54,#ffd88d)}.portal-focus-count{box-shadow:inset 0 0 0 1px #f3dfb3}
.portal-attention-list>a{border-color:#eee1bd;border-radius:14px;padding:14px 16px;box-shadow:0 4px 14px rgba(108,78,12,.025);transition:.18s ease}.portal-attention-list>a:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(108,78,12,.07)}.portal-attention-list>a>span{padding:7px 9px;border-radius:8px;background:#fff7e7;color:#7e5708}
.portal-caught-up{border-radius:18px;box-shadow:0 6px 20px rgba(24,112,68,.04)}

.portal-focus-projects{gap:14px}.portal-project-card-compact{position:relative;overflow:hidden;padding:18px 19px;border-color:#d7e4e8;background:linear-gradient(145deg,#fff 0%,#fbfefd 66%,#f1fbf5 100%);box-shadow:0 8px 22px rgba(15,47,65,.045)}.portal-project-card-compact:after{content:'';position:absolute;right:-35px;top:-42px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(87,255,143,.12),rgba(87,255,143,0) 70%);pointer-events:none}.portal-project-card-compact:hover{border-color:#bdd5cd;box-shadow:0 15px 34px rgba(15,47,65,.09)}.portal-project-card-compact h3{font-size:17px}.portal-progress>span{height:8px;background:#e9f0f2}.portal-progress>span i{box-shadow:0 0 12px rgba(47,207,121,.24)}

.portal-quick-actions{margin:23px 0 18px}.portal-quick-actions>.portal-kicker{margin-bottom:10px}.portal-quick-actions>div{gap:12px}.portal-quick-actions a{grid-template-columns:38px minmax(0,1fr) auto;grid-template-areas:"icon title arrow" "icon meta arrow";padding:15px 16px;border-color:#d7e4e8;border-radius:16px;background:rgba(255,255,255,.92);box-shadow:0 7px 20px rgba(15,47,65,.04);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.portal-quick-actions a:before{grid-area:icon;content:'+';width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(135deg,#e5fbec,#f6fff9);color:#177047;font-size:20px;font-weight:500;box-shadow:inset 0 0 0 1px #cfefd9}.portal-quick-actions a:nth-child(2):before{content:'↑';color:#236887;background:linear-gradient(135deg,#e8f6fb,#f6fbfd);box-shadow:inset 0 0 0 1px #d1e8f1}.portal-quick-actions a:nth-child(3):before{content:'↗';color:#664b95;background:linear-gradient(135deg,#f0ebfb,#fbf9ff);box-shadow:inset 0 0 0 1px #e2daf4}.portal-quick-actions a:hover{transform:translateY(-2px);border-color:#c5d8dd;box-shadow:0 14px 32px rgba(20,51,71,.08)}.portal-quick-actions b{font-size:12px}.portal-quick-actions small{font-size:10px}.portal-quick-actions i{font-size:16px}
.portal-glance{margin:14px 0 30px;border-color:#d9e5e8;border-radius:16px;background:rgba(255,255,255,.83);box-shadow:0 8px 24px rgba(15,47,65,.035)}.portal-glance>div{padding:14px 16px}.portal-glance span{font-size:9px}.portal-glance b{font-size:16px}

.portal-records{margin-top:31px}.portal-section-intro h2{font-size:22px;letter-spacing:-.015em}.portal-section-intro p{font-size:12px}.portal-disclosure{border-color:#d8e4e8;border-radius:16px;background:rgba(255,255,255,.92);box-shadow:0 5px 16px rgba(15,47,65,.03);transition:border-color .18s ease,box-shadow .18s ease}.portal-disclosure:hover{border-color:#c7d9de;box-shadow:0 10px 26px rgba(15,47,65,.055)}.portal-disclosure>summary{display:grid;grid-template-columns:38px minmax(0,1fr) auto;padding:15px 17px;gap:13px}.portal-disclosure>summary:before{content:'▦';display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#edf5f8;color:#356b82;font-size:15px}.portal-records>.portal-disclosure:nth-of-type(2)>summary:before{content:'◇';background:#edf9f1;color:#23744d}.portal-records>.portal-disclosure:nth-of-type(3)>summary:before{content:'▤';background:#f3f0fa;color:#66538d}.portal-records>.portal-disclosure:nth-of-type(4)>summary:before{content:'$';background:#fff6e6;color:#8b6417;font-weight:850}.portal-disclosure>summary b{font-size:12px}.portal-disclosure>summary small{font-size:10px}.portal-disclosure[open]>summary{background:linear-gradient(90deg,#f9fcfc,#fbfefd);border-bottom-color:#e0e9ec}.portal-disclosure-body{padding:18px 20px 20px}.portal-record-summary{border-radius:13px;background:#f8fbfc}

.portal-heading-account{position:relative;overflow:hidden;padding:26px 28px;margin-bottom:17px;border:1px solid #dce8e4;border-radius:22px;background:linear-gradient(135deg,#fff 0%,#f6fbf9 72%,#effaf3 100%);box-shadow:0 10px 32px rgba(15,47,65,.05)}.portal-heading-account:after{content:'';position:absolute;width:160px;height:160px;right:-52px;top:-88px;border-radius:50%;background:radial-gradient(circle,rgba(87,255,143,.13),rgba(87,255,143,0) 70%)}.portal-heading-account h1{font-size:clamp(34px,3.7vw,48px);letter-spacing:-.035em}.portal-heading-account p{font-size:13px}
.portal-account-tabs{gap:11px;margin-bottom:20px}.portal-account-tabs>a{grid-template-columns:38px minmax(0,1fr);grid-template-areas:"icon title" "icon meta";column-gap:12px;align-items:center;padding:14px 16px;border-color:#d7e4e8;border-radius:16px;background:rgba(255,255,255,.92);box-shadow:0 6px 18px rgba(15,47,65,.035);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.portal-account-tabs>a:before{grid-area:icon;content:'◎';width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#edf5f8;color:#326a82;font-size:15px}.portal-account-tabs>a:nth-child(2):before{content:'◇';background:#fff5df;color:#8c6519}.portal-account-tabs>a:nth-child(3):before{content:'◌';background:#edf9f1;color:#23744d}.portal-account-tabs>a b{grid-area:title;font-size:12px}.portal-account-tabs>a small{grid-area:meta;font-size:10px}.portal-account-tabs>a:hover{transform:translateY(-1px);border-color:#c4d7dc;box-shadow:0 11px 26px rgba(15,47,65,.07)}.portal-account-tabs>a.active{border-color:#16364d;background:linear-gradient(135deg,#16364d,#18475a);box-shadow:0 13px 30px rgba(14,48,66,.16)}.portal-account-tabs>a.active b{color:#fff}.portal-account-tabs>a.active small{color:#c8d9df}.portal-account-tabs>a.active:before{background:rgba(87,255,143,.15);color:var(--mint);box-shadow:inset 0 0 0 1px rgba(87,255,143,.16)}
.portal-account-view{max-width:1040px}.portal-account-primary{position:relative;overflow:hidden;max-width:760px;border-color:#d8e6e1;background:linear-gradient(145deg,#fff 0%,#fbfefd 70%,#f1fbf5 100%)}.portal-profile-head{display:flex;align-items:center;gap:16px;margin-bottom:8px}.portal-profile-avatar{flex:0 0 auto;width:58px;height:58px;display:grid;place-items:center;border-radius:17px;background:linear-gradient(145deg,#15394f,#1b6049);color:#fff;font-size:20px;font-weight:900;letter-spacing:.03em;box-shadow:0 10px 24px rgba(14,48,66,.17)}.portal-profile-copy{display:grid;gap:3px}.portal-profile-copy h2{margin:0}.portal-profile-copy p{margin:0;color:var(--slate);font-size:11px}.portal-account-primary .portal-simple-dl{margin-top:20px}.portal-simple-dl div{padding:13px 0}.portal-simple-dl dt{font-size:11px}.portal-simple-dl dd{font-size:12px}
.portal-security-core{gap:16px}.portal-security-core .portal-panel{border-color:#d9e5e8;box-shadow:0 8px 24px rgba(15,47,65,.045)}.portal-security-core .portal-panel:first-child{background:linear-gradient(145deg,#fff,#fbfcff)}.portal-security-core .portal-panel:last-child{background:linear-gradient(145deg,#fff,#f7fdf9)}.portal-security-status{border-color:#e3ebee}.portal-account-form input,.portal-account-form select,.portal-account-form textarea{background:#fbfcfd;border-color:#d8e3e7}.portal-account-form input:hover,.portal-account-form select:hover,.portal-account-form textarea:hover{border-color:#c1d2d8}.portal-btn{transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.portal-btn:hover{transform:translateY(-1px)}.portal-btn.primary{background:linear-gradient(135deg,#16364d,#17495c);box-shadow:0 7px 18px rgba(14,48,66,.12)}.portal-btn.primary:hover{box-shadow:0 10px 24px rgba(14,48,66,.18)}.portal-btn.mint{background:linear-gradient(135deg,#55f98b,#77ffa3);box-shadow:0 7px 18px rgba(47,207,121,.13)}
.portal-team-row{padding:13px 14px;margin-top:8px;border:1px solid #e0e8eb!important;border-radius:12px;background:#f9fbfc}.portal-team-row:first-child{margin-top:0}.portal-member-manage>summary{border-radius:10px;padding:8px 10px}.portal-team-attention{border-radius:16px}.portal-account-disclosure{box-shadow:0 5px 18px rgba(15,47,65,.035)}

@media(max-width:980px){.portal-main{padding-left:30px;padding-right:30px}.portal-heading-calm{padding:28px}.portal-account-tabs>a{min-height:72px}.portal-disclosure>summary{grid-template-columns:36px minmax(0,1fr) auto}}
@media(max-width:640px){.portal-main{padding:24px 14px 56px}.portal-heading-calm{padding:24px 21px;border-radius:20px}.portal-heading-calm h1{font-size:36px}.portal-heading-calm:before{right:-110px;top:-150px}.portal-heading-account{padding:22px 20px;border-radius:19px}.portal-account-tabs{grid-template-columns:1fr}.portal-account-tabs>a{grid-template-columns:38px minmax(0,1fr);grid-template-areas:"icon title" "icon meta";gap:2px 12px}.portal-account-tabs>a small{text-align:left}.portal-quick-actions a{grid-template-columns:38px minmax(0,1fr) auto}.portal-glance>div{padding:12px}.portal-disclosure>summary{padding:13px 14px;grid-template-columns:34px minmax(0,1fr) auto;gap:10px}.portal-disclosure>summary:before{width:32px;height:32px}.portal-profile-avatar{width:52px;height:52px;border-radius:15px}.portal-security-core{gap:12px}}
@media(prefers-reduced-motion:reduce){.portal-sidebar nav a,.portal-quick-actions a,.portal-disclosure,.portal-account-tabs>a,.portal-btn,.portal-project-card-compact{transition:none!important}}

/* dev-0.22.3.1.1 — logo payment choice + calmer finance summary */
.portal-payment-choice{margin:0 0 22px;padding:24px;border:1px solid #cde8d7;border-radius:18px;background:linear-gradient(135deg,#f7fff9,#eef9f2);box-shadow:0 12px 30px rgba(22,54,77,.05)}
.portal-payment-choice h2{margin:7px 0 8px;color:var(--navy);font-size:24px}.portal-payment-choice>div>p{margin:0;color:var(--slate);line-height:1.6}.portal-payment-choice form{margin-top:18px}.portal-payment-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.portal-payment-options label{display:block;cursor:pointer}.portal-payment-options input{position:absolute;opacity:0;pointer-events:none}.portal-payment-options label>span{display:grid;gap:6px;min-height:130px;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.portal-payment-options label:hover>span{transform:translateY(-1px);border-color:#9fd6b5}.portal-payment-options input:checked+span{border-color:#33d878;box-shadow:0 0 0 2px rgba(51,216,120,.12);background:#f4fff7}.portal-payment-options b{font-size:15px;color:var(--navy)}.portal-payment-options strong{font-size:14px;color:#157a49}.portal-payment-options .portal-money b{font-size:14px}.portal-payment-options small{font-size:11px;line-height:1.5;color:var(--slate)}
.portal-finance-summary{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,.8fr);gap:14px;margin:18px 0 22px}.portal-outstanding-card,.portal-finance-mini article{border:1px solid var(--line-soft);border-radius:16px;background:#fff}.portal-outstanding-card{padding:20px 22px;display:grid;gap:5px}.portal-outstanding-card>span,.portal-finance-mini span{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:850;color:var(--slate)}.portal-outstanding-card .portal-money b{font-size:24px;color:var(--navy)}.portal-outstanding-card small{font-size:11px;color:var(--slate)}.portal-finance-mini{display:grid;grid-template-columns:1fr 1fr;gap:10px}.portal-finance-mini article{padding:16px;display:grid;align-content:center;gap:5px}.portal-finance-mini b{font-size:22px;color:var(--navy)}.portal-invoice-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:760px){.portal-payment-options,.portal-finance-summary,.portal-invoice-metrics{grid-template-columns:1fr}.portal-finance-mini{grid-template-columns:1fr 1fr}.portal-payment-choice{padding:18px}.portal-payment-options label>span{min-height:0}}

/* dev-0.22.3.1.2 — logo payment gate + provider-ready invoice checkout */
.portal-release-status{display:flex;align-items:center;gap:12px;margin:0 0 18px;padding:14px 16px;border:1px solid var(--line-soft);border-radius:14px;background:#fff}.portal-release-status>span{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#f1f5f6}.portal-release-status>div{display:grid;gap:3px}.portal-release-status b{color:var(--navy);font-size:13px}.portal-release-status small{color:var(--slate);line-height:1.45}.portal-release-status.unlocked{border-color:#bfe8ce;background:#f3fff7}.portal-release-status.unlocked>span{background:#dff9e9;color:#1c6a40}.portal-release-status.locked>span{color:#6f7f87}.portal-online-payment{margin-bottom:18px}.portal-online-payment .portal-btn{margin-top:4px}

/* dev-0.22.3.2 — Client logo concept review */
.portal-logo-project-card{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 28px;border:1px solid var(--portal-line);border-radius:22px;background:#fff;margin:0 0 22px;box-shadow:0 12px 30px rgba(16,43,59,.05)}.portal-logo-project-card.ready{background:linear-gradient(135deg,#fff,#eefbf4);border-color:#b8e8cb}.portal-logo-project-card.selected{background:linear-gradient(135deg,#f5fff9,#e8fff2);border-color:#6fd99b}.portal-logo-project-card h2{margin:5px 0 7px}.portal-logo-project-card p{margin:0;color:var(--portal-muted);max-width:760px}.portal-logo-review-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:22px;align-items:start}.portal-logo-concept-list{display:grid;gap:12px;position:sticky;top:24px}.portal-logo-concept-thumb{display:grid;grid-template-columns:82px 1fr;gap:12px;align-items:center;padding:10px;border:1px solid var(--portal-line);border-radius:16px;background:#fff;text-decoration:none;color:inherit}.portal-logo-concept-thumb:hover,.portal-logo-concept-thumb.active{border-color:#50d98b;box-shadow:0 8px 22px rgba(16,43,59,.07)}.portal-logo-concept-thumb.selected{background:#edfff4}.portal-logo-concept-thumb-image{width:82px;height:70px;border-radius:10px;background:#f4f7f8;display:grid;place-items:center;overflow:hidden}.portal-logo-concept-thumb-image img{width:100%;height:100%;object-fit:contain}.portal-logo-concept-thumb>div:last-child{display:grid;gap:3px}.portal-logo-concept-thumb span{font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--portal-muted)}.portal-logo-concept-thumb small{color:var(--portal-muted)}.portal-logo-focus{background:#fff;border:1px solid var(--portal-line);border-radius:24px;overflow:hidden;box-shadow:0 18px 44px rgba(16,43,59,.06)}.portal-logo-focus-image{min-height:420px;background:linear-gradient(135deg,#f8fbfa,#eef5f3);display:grid;place-items:center;padding:34px}.portal-logo-focus-image img{max-width:100%;max-height:520px;width:auto;height:auto;object-fit:contain}.portal-logo-focus-copy{padding:28px}.portal-logo-focus-copy h2{font-size:clamp(28px,4vw,42px);margin:7px 0 10px}.portal-logo-focus-copy>p{color:var(--portal-muted);max-width:760px}.portal-logo-select-form{margin-top:24px;border-top:1px solid var(--portal-line);padding-top:22px;display:grid;gap:14px}.portal-refinement-request{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px;padding:18px;border:1px solid var(--portal-line);border-radius:14px;background:#f8fbfa}.portal-refinement-request>label{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:5px;color:var(--portal-ink);font-size:14px;font-weight:800}.portal-refinement-request small{display:block;color:var(--portal-muted);font-size:12px;font-weight:500;line-height:1.5}.portal-refinement-request textarea{display:block;width:100%!important;max-width:none!important;box-sizing:border-box;resize:vertical;min-height:142px;border:1px solid var(--portal-line);border-radius:12px;background:#fff;color:var(--portal-ink);padding:13px 14px;font:inherit;line-height:1.55}.portal-refinement-request textarea:focus{outline:3px solid rgba(67,214,124,.16);border-color:#43d67c}.portal-confirm-choice{display:flex;align-items:flex-start;gap:10px;font-size:15px}.portal-confirm-choice input{margin-top:3px}.portal-logo-select-form>small{color:var(--portal-muted)}.portal-logo-selection-confirmed{display:flex;gap:14px;align-items:flex-start;margin-top:24px;padding:18px;border-radius:16px;background:#edfff4;border:1px solid #b8e8cb}.portal-logo-selection-confirmed>span{width:34px;height:34px;border-radius:50%;background:#43d67c;display:grid;place-items:center;font-weight:900;color:#082a1b;flex:0 0 auto}.portal-logo-selection-confirmed b{display:block;margin-bottom:4px}.portal-logo-selection-confirmed p{margin:0;color:var(--portal-muted)}.portal-logo-waiting{max-width:900px}.portal-logo-waiting h2{max-width:760px}.portal-logo-waiting p{color:var(--portal-muted);max-width:760px}
@media(max-width:900px){.portal-logo-review-layout{grid-template-columns:1fr}.portal-logo-concept-list{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.portal-logo-project-card{align-items:flex-start;flex-direction:column}}@media(max-width:620px){.portal-logo-concept-list{grid-template-columns:1fr}.portal-logo-focus-image{min-height:300px;padding:20px}.portal-logo-focus-copy{padding:22px}.portal-logo-project-card{padding:22px}}

/* dev-0.22.3.3 — Logo refinement, final approval and bounded Logo Project cleanup */
.portal-project-score.logo{min-width:118px}
.logo-ribbon{grid-template-columns:repeat(6,minmax(0,1fr))}
.logo-ribbon span{font-size:.68rem;text-align:center;white-space:normal}
.portal-logo-waiting{max-width:860px;background:linear-gradient(135deg,#f7fffa 0%,#fff 72%);border-color:#bcebd0}
.portal-logo-waiting h2{margin:.3rem 0 .55rem;color:#16364d}
.portal-refinement-focus{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.8fr);gap:1.15rem;align-items:start;max-width:1120px;margin:0 auto}
.portal-refinement-image,.portal-refinement-copy{background:#fff;border:1px solid #d7e4e8;border-radius:18px;box-shadow:0 12px 34px rgba(22,54,77,.07)}
.portal-refinement-image{padding:1rem;display:flex;align-items:center;justify-content:center;min-height:420px;background:#f6faf9}
.portal-refinement-image img{display:block;max-width:100%;max-height:720px;object-fit:contain;border-radius:10px}
.portal-refinement-copy{padding:1.35rem}
.portal-refinement-copy h2{margin:.35rem 0 .65rem}
.portal-refinement-response{margin-top:1.15rem;padding-top:1.1rem;border-top:1px solid #e2ebee}
.portal-refinement-response label{display:grid;gap:.45rem;font-weight:700;color:#16364d}
.portal-refinement-response label small{font-weight:500;color:#637782}
.portal-refinement-response textarea{width:100%;box-sizing:border-box;border:1px solid #c9d7dd;border-radius:10px;padding:.8rem;font:inherit;resize:vertical;background:#fff}
.portal-refinement-response>div{display:flex;gap:.65rem;flex-wrap:wrap;margin:.8rem 0 .55rem}
.portal-refinement-response>small{display:block;color:#637782;line-height:1.45}
.portal-refinement-history-list{display:grid;gap:.65rem;margin-top:1rem}
.portal-refinement-history{border:1px solid #dbe5e8;border-radius:12px;padding:.85rem 1rem;background:#fbfdfd}
.portal-refinement-history>span{display:flex;align-items:center;gap:.55rem;margin-bottom:.45rem}
.portal-refinement-history>span small{color:#637782}
.portal-refinement-history p{margin:.45rem 0 0;color:#435d69}
.portal-refinement-history.approved{border-color:#bcebd0;background:#f5fff8}
.portal-refinement-history.changes_requested{border-color:#eadcc5;background:#fffaf2}
.portal-logo-approved{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:960px;margin:0 auto;background:#f4fff8;border:1px solid #bcebd0;border-radius:16px;padding:1.05rem 1.15rem}
.portal-logo-approved>div{display:flex;align-items:center;gap:.8rem}
.portal-logo-approved>div>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#43d67c;color:#0d3a23;font-weight:900}
.portal-logo-approved b{display:block;color:#16364d}
.portal-logo-approved p{margin:.2rem 0 0;color:#526b76}
.portal-calm-state{font-weight:700;color:#3e5d69;background:#fff;border:1px solid #d7e4e8;border-radius:999px;padding:.55rem .8rem;white-space:nowrap}
.portal-brand-summary{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.portal-brand-summary h2{margin:.3rem 0 .45rem}
.portal-brand-summary p{max-width:720px;margin:0;color:#526b76}
.portal-brand-swatches{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}
.portal-brand-swatches span{display:flex;align-items:center;gap:.4rem;padding:.35rem .5rem;border:1px solid #d8e3e7;border-radius:999px;background:#fff;font-size:.75rem}
.portal-brand-swatches i{width:18px;height:18px;border-radius:50%;background:var(--brand-swatch);border:1px solid rgba(0,0,0,.12)}
.portal-brand-assets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin-top:1.25rem}
.portal-brand-asset{display:flex;align-items:center;gap:.75rem;padding:.85rem .95rem;border:1px solid #d7e4e8;border-radius:12px;background:#fbfdfd;text-decoration:none;color:#16364d;transition:.16s ease}
.portal-brand-asset:hover{transform:translateY(-1px);border-color:#9eddbb;background:#f5fff8}
.portal-brand-asset>span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#eaf8ef;font-weight:900;color:#197343}
.portal-brand-asset b,.portal-brand-asset small{display:block}.portal-brand-asset small{margin-top:.15rem;color:#637782}
@media(max-width:860px){.portal-refinement-focus{grid-template-columns:1fr}.portal-refinement-image{min-height:260px}.portal-logo-approved,.portal-brand-summary{align-items:stretch;flex-direction:column}.portal-calm-state{white-space:normal}.portal-brand-swatches{justify-content:flex-start}.portal-brand-assets{grid-template-columns:1fr}.logo-ribbon{grid-template-columns:repeat(3,minmax(0,1fr))}}


/* dev-0.22.3.4 — Client Overview motion */
.motion-reveal.motion-enter{opacity:0;transform:translateY(8px)}
.motion-reveal.motion-enter.motion-visible{opacity:1;transform:none;transition:opacity .42s ease var(--motion-delay,0ms),transform .42s cubic-bezier(.2,.75,.25,1) var(--motion-delay,0ms)}
@media(prefers-reduced-motion:reduce){.motion-reveal.motion-enter,.motion-reveal.motion-enter.motion-visible{opacity:1;transform:none;transition:none!important}}

.portal-project-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px;overflow-x:auto;scrollbar-width:thin}
.portal-project-tabs a{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:10px 13px;border:1px solid var(--line-strong);border-radius:10px;background:#fff;color:var(--navy);font-size:11px;font-weight:850}
.portal-project-tabs a.active{background:#f2fff7;border-color:#9adbb1;color:#176b43}
.portal-project-tabs a span{display:grid;place-items:center;min-width:21px;height:21px;border-radius:999px;background:#eef4f6;color:#58707c;font-size:9px}
[data-portal-project-section][hidden]{display:none!important}
@media(max-width:640px){.portal-project-tabs{flex-wrap:nowrap;padding-bottom:2px}.portal-project-tabs a{padding-inline:10px}}


/* dev-0.22.3.4.1 — Client Overview rotating showcase */
.portal-pulse-showcase{
  --pulse-accent:#65e5a5;
  --pulse-accent-rgb:101,229,165;
  --pulse-duration:3900ms;
  position:relative;
  margin:16px 0 30px;
  border:1px solid rgba(110,181,199,.24);
  border-radius:22px;
  overflow:hidden;
  background:#0d2c3d;
  box-shadow:0 22px 44px rgba(18,49,65,.14);
  isolation:isolate;
}
.portal-pulse-showcase[data-pulse-tone="blue"]{--pulse-accent:#68cfff;--pulse-accent-rgb:104,207,255}
.portal-pulse-showcase[data-pulse-tone="mint"]{--pulse-accent:#6ce7a7;--pulse-accent-rgb:108,231,167}
.portal-pulse-showcase[data-pulse-tone="amber"]{--pulse-accent:#ffd47a;--pulse-accent-rgb:255,212,122}
.portal-pulse-showcase[data-pulse-tone="violet"]{--pulse-accent:#c0adff;--pulse-accent-rgb:192,173,255}
.portal-pulse-stage{position:relative;min-height:226px;overflow:hidden;background:
  radial-gradient(circle at 82% 22%,rgba(var(--pulse-accent-rgb),.23),transparent 30%),
  radial-gradient(circle at 8% 118%,rgba(var(--pulse-accent-rgb),.14),transparent 34%),
  linear-gradient(135deg,#0d293a 0%,#12384b 58%,#0c2838 100%)}
.portal-pulse-stage:before{content:"";position:absolute;inset:-52%;background:conic-gradient(from 205deg at 50% 50%,transparent 0 25%,rgba(var(--pulse-accent-rgb),.12) 29%,transparent 35% 100%);filter:blur(24px);opacity:.95;pointer-events:none}
.portal-pulse-stage:after{content:"";position:absolute;top:-30%;bottom:-30%;left:-34%;width:24%;transform:skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.115),transparent);pointer-events:none}
.portal-pulse-showcase.pulse-running .portal-pulse-stage:after{animation:zhPortalPulseScan var(--pulse-duration) cubic-bezier(.2,.62,.35,1) infinite}
.portal-pulse-grid{position:absolute;inset:0;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(90deg,#000,rgba(0,0,0,.38),transparent)}
.portal-pulse-slide{position:absolute;inset:0;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 145px;align-items:center;gap:28px;padding:30px 34px;opacity:0;pointer-events:none;transform:translate3d(7%,0,0) scale(.977);filter:blur(7px);transition:opacity .42s ease,transform .55s cubic-bezier(.2,.75,.25,1),filter .42s ease}
.portal-pulse-slide.active{z-index:3;opacity:1;pointer-events:auto;transform:none;filter:none}
.portal-pulse-meta{display:flex;align-items:center;gap:9px;margin-bottom:12px;color:#c7dae3;font-size:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.portal-pulse-meta span{display:inline-flex;align-items:center;justify-content:center;min-width:54px;padding:5px 8px;border:1px solid rgba(255,255,255,.15);border-radius:999px;background:rgba(255,255,255,.05);color:#fff}
.portal-pulse-meta em{font-style:normal;color:var(--pulse-accent)}
.portal-pulse-label{display:block;margin-bottom:5px;color:#d9e8ee;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.portal-pulse-copy strong{display:block;color:#fff;font-size:clamp(40px,5vw,62px);line-height:.95;letter-spacing:-.035em}
.portal-pulse-copy p{margin:13px 0 0;max-width:650px;color:#abc5d0;font-size:11px;line-height:1.55}
.portal-pulse-orbit{position:relative;display:grid;place-items:center;width:116px;height:116px;justify-self:end;border:1px solid rgba(255,255,255,.09);border-radius:50%;background:radial-gradient(circle,rgba(var(--pulse-accent-rgb),.16),transparent 62%)}
.portal-pulse-orbit:before,.portal-pulse-orbit:after{content:"";position:absolute;border:1px solid rgba(var(--pulse-accent-rgb),.28);border-radius:50%}
.portal-pulse-orbit:before{inset:18px}.portal-pulse-orbit:after{inset:38px;background:var(--pulse-accent);box-shadow:0 0 30px rgba(var(--pulse-accent-rgb),.42)}
.portal-pulse-orbit i{position:absolute;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 14px rgba(var(--pulse-accent-rgb),.7);transform-origin:58px center}
.portal-pulse-orbit i:nth-child(1){transform:translateX(54px)}.portal-pulse-orbit i:nth-child(2){transform:rotate(120deg) translateX(54px)}.portal-pulse-orbit i:nth-child(3){transform:rotate(240deg) translateX(54px)}
.portal-pulse-slide.active .portal-pulse-orbit{animation:zhPortalOrbit 3.4s linear infinite}
.portal-pulse-footer{position:relative;z-index:5;padding:0 18px 12px;background:linear-gradient(180deg,#0d2c3d,#0a2433)}
.portal-pulse-progress{height:3px;margin:0 -18px 10px;background:rgba(255,255,255,.075);overflow:hidden}
.portal-pulse-progress i{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--pulse-accent),#fff);transform:scaleX(0);transform-origin:left;box-shadow:0 0 14px rgba(var(--pulse-accent-rgb),.42)}
.portal-pulse-showcase.pulse-running .portal-pulse-progress i{animation:zhPortalPulseProgress var(--pulse-duration) linear forwards}
.portal-pulse-controls{display:flex;align-items:center;justify-content:space-between;gap:14px}
.portal-pulse-dots{display:flex;gap:7px}
.portal-pulse-dots button{width:28px;height:12px;padding:0;border:0;background:transparent;cursor:pointer}
.portal-pulse-dots button span{display:block;width:100%;height:3px;border-radius:999px;background:#456576;transition:.18s ease}
.portal-pulse-dots button.active span{height:4px;background:var(--pulse-accent);box-shadow:0 0 12px rgba(var(--pulse-accent-rgb),.52)}
.portal-pulse-arrows{display:flex;gap:7px}
.portal-pulse-arrows button{display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(255,255,255,.14);border-radius:9px;background:rgba(255,255,255,.04);color:#e0edf2;cursor:pointer;font-weight:900;transition:.18s ease}
.portal-pulse-arrows button:hover,.portal-pulse-arrows button:focus-visible{border-color:rgba(var(--pulse-accent-rgb),.62);background:rgba(var(--pulse-accent-rgb),.1);color:#fff;outline:none;transform:translateY(-1px)}
@keyframes zhPortalPulseProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes zhPortalPulseScan{0%{left:-34%}72%,100%{left:118%}}
@keyframes zhPortalOrbit{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){
  .portal-pulse-showcase *{animation:none!important;transition:none!important}
  .portal-pulse-stage:after{display:none}
}
@media(max-width:640px){
  .portal-pulse-stage{min-height:250px}
  .portal-pulse-slide{grid-template-columns:1fr;padding:26px 22px}
  .portal-pulse-copy strong{font-size:46px}
  .portal-pulse-orbit{display:none}
}

/* dev-0.22.3.8 — public Client Portal journey showcase */
.portal-gateway-visual[data-gateway-showcase]{
  --gateway-accent:#65e5a5;
  --gateway-accent-rgb:101,229,165;
  isolation:isolate;
}
.portal-gateway-visual[data-gateway-tone="blue"]{--gateway-accent:#68cfff;--gateway-accent-rgb:104,207,255}
.portal-gateway-visual[data-gateway-tone="violet"]{--gateway-accent:#c0adff;--gateway-accent-rgb:192,173,255}
.portal-gateway-visual[data-gateway-tone="amber"]{--gateway-accent:#ffd47a;--gateway-accent-rgb:255,212,122}
.portal-gateway-visual[data-gateway-tone="mint"]{--gateway-accent:#65e5a5;--gateway-accent-rgb:101,229,165}
.gateway-showcase-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 4px 10px;color:#5f7782;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.gateway-showcase-meta span{display:inline-flex;align-items:center;justify-content:center;min-width:58px;padding:6px 9px;border:1px solid rgba(var(--gateway-accent-rgb),.42);border-radius:999px;background:rgba(var(--gateway-accent-rgb),.09);color:#254759;transition:.35s ease}
.gateway-showcase-meta b{color:#176b43;transition:.35s ease}
.portal-gateway-visual[data-gateway-showcase] .gateway-window{transform:rotate(.65deg);transition:border-color .4s ease,box-shadow .4s ease}
.portal-gateway-visual[data-gateway-showcase] .gateway-window{border-color:rgba(var(--gateway-accent-rgb),.34);box-shadow:0 28px 70px rgba(16,44,62,.14),0 0 0 1px rgba(var(--gateway-accent-rgb),.08)}
.gateway-showcase-stage{position:relative;min-height:365px;overflow:hidden;background:radial-gradient(circle at 92% 6%,rgba(var(--gateway-accent-rgb),.10),transparent 28%),#fff;transition:background .4s ease}
.gateway-moment{position:absolute;inset:0;opacity:0;pointer-events:none;transform:translate3d(7%,0,0) scale(.985);filter:blur(5px);transition:opacity .4s ease,transform .55s cubic-bezier(.2,.75,.25,1),filter .4s ease}
.gateway-moment.active{z-index:2;opacity:1;pointer-events:auto;transform:none;filter:none}
.gateway-event{display:flex;align-items:center;gap:12px;margin:0 16px 13px;padding:13px 14px;border:1px solid rgba(var(--gateway-accent-rgb),.33);border-radius:14px;background:linear-gradient(135deg,rgba(var(--gateway-accent-rgb),.10),#fbfdfd);box-shadow:0 12px 28px rgba(16,44,62,.055)}
.gateway-event>span{display:grid;place-items:center;flex:0 0 37px;width:37px;height:37px;border-radius:12px;background:var(--gateway-accent);color:#0d3445;font-size:16px;font-weight:950;box-shadow:0 0 22px rgba(var(--gateway-accent-rgb),.26)}
.gateway-event small{display:block;color:#657e89;font-size:8px;font-weight:950;letter-spacing:.12em}
.gateway-event b{display:block;margin:3px 0 2px;color:var(--navy);font-size:14px}.gateway-event p{margin:0;color:var(--slate);font-size:9.5px;line-height:1.45}
.gateway-event-clear{background:linear-gradient(135deg,#effcf4,#fff);border-color:#bce8cb}
.portal-gateway-visual[data-gateway-showcase] .gateway-progress i u{width:var(--gateway-progress,68%);transition:width .65s cubic-bezier(.2,.75,.25,1);background:linear-gradient(90deg,var(--gateway-accent),#51ee99);box-shadow:0 0 13px rgba(var(--gateway-accent-rgb),.3)}
.portal-gateway-visual[data-gateway-showcase] .gateway-mini-grid>div{transition:border-color .3s ease,background .3s ease,transform .3s ease,box-shadow .3s ease}
.portal-gateway-visual[data-gateway-showcase] .gateway-mini-grid>div.is-active{border-color:rgba(var(--gateway-accent-rgb),.62);background:rgba(var(--gateway-accent-rgb),.085);transform:translateY(-2px);box-shadow:0 8px 18px rgba(var(--gateway-accent-rgb),.10)}
.gateway-showcase-rail{display:flex;gap:7px;margin:11px 22px 0;padding-right:90px}
.gateway-showcase-rail i{display:block;flex:1;height:3px;border-radius:99px;background:#d8e4e8;overflow:hidden;transition:.25s ease}
.gateway-showcase-rail i.active{background:var(--gateway-accent);box-shadow:0 0 12px rgba(var(--gateway-accent-rgb),.38)}
.gateway-moment.active .gateway-event>span{animation:zhGatewayMomentPulse 1.5s ease-in-out infinite}
@keyframes zhGatewayMomentPulse{0%,100%{transform:scale(1);box-shadow:0 0 12px rgba(var(--gateway-accent-rgb),.18)}50%{transform:scale(1.07);box-shadow:0 0 26px rgba(var(--gateway-accent-rgb),.42)}}
@media(prefers-reduced-motion:reduce){
  .portal-gateway-visual[data-gateway-showcase] *{animation:none!important;transition:none!important}
  .gateway-moment{transform:none;filter:none}
}
@media(max-width:640px){
  .gateway-showcase-meta{margin-inline:0}
  .gateway-showcase-stage{min-height:590px}
  .gateway-event{margin-inline:12px}
  .gateway-showcase-rail{margin-inline:12px;padding-right:72px}
}

/* v1.0.1 — service-specific guided discovery for expansion requests. */
.portal-guided-request .portal-account-form{gap:18px}
.portal-service-intake-wrap{display:grid;gap:14px}
.portal-service-intake-wrap[hidden],.portal-service-intake[hidden]{display:none!important}
.portal-service-intake{border:1px solid #cfe2e7;border-radius:16px;background:linear-gradient(145deg,#f8fbfc,#fff);padding:22px}
.portal-service-intake-head{margin-bottom:18px}.portal-service-intake-head h2{font-size:22px;margin:5px 0 6px;color:var(--navy)}.portal-service-intake-head p{margin:0;max-width:760px;color:var(--slate);font-size:12px;line-height:1.65}
.portal-guided-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.portal-guided-fields .span-2{grid-column:1/-1}.portal-guided-fields label{align-content:start}.portal-guided-fields textarea{min-height:92px}.portal-additional-context{border-top:1px solid var(--line);padding-top:18px}
@media(max-width:700px){.portal-service-intake{padding:18px}.portal-guided-fields{grid-template-columns:1fr}.portal-guided-fields .span-2{grid-column:auto}.portal-service-intake-head h2{font-size:20px}}
