/* Account entry points extend the existing navy / mint brand. */
.account-actions{display:flex;align-items:center;gap:18px;flex-shrink:0}.nav-inner{gap:24px}.site-header nav{gap:24px;margin-left:auto}.login-menu{position:relative;color:var(--navy)}.login-menu>summary{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:10px 16px;border:1px solid var(--line);border-radius:7px;font-size:.9rem;font-weight:600;cursor:pointer;list-style:none;transition:background .2s,border-color .2s}.login-menu>summary::-webkit-details-marker{display:none}.login-menu>summary:hover,.login-menu[open]>summary{background:#eef7f3;border-color:#a5c9be}.login-menu summary svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;transition:transform .2s}.login-menu[open] summary svg{transform:rotate(180deg)}.login-dropdown{position:absolute;top:calc(100% + 12px);right:0;width:306px;max-width:calc(100vw - 40px);padding:14px;background:#fff;border:1px solid var(--line);box-shadow:0 16px 42px #0d234b18;border-radius:12px;z-index:30;animation:portal-in .18s ease-out}.login-dropdown>p{padding:4px 10px 12px;font-size:.8rem;color:var(--muted)}.login-dropdown>a{display:flex;align-items:center;gap:13px;padding:14px 10px;border-radius:7px}.login-dropdown>a:hover{background:#f0f7f4}.login-dropdown>a+a{border-top:1px solid #edf1f0}.login-dropdown strong{display:block;font-size:.95rem;font-weight:600}.login-dropdown small{display:block;font-size:.8rem;color:var(--muted);margin-top:3px}.login-dropdown>a>span:last-child{margin-left:auto}.login-icon{font-size:.75rem;color:var(--teal);border:1px solid #dbeae3;background:#f4f9f6;border-radius:50%;display:grid;place-items:center;width:35px;height:35px;flex-shrink:0}
.portal-page{background:var(--paper)}.portal-page .site-header{background:#fff}.portal-page .nav-inner{min-height:96px}.portal-back{font-size:.9rem;color:var(--muted);display:flex;gap:10px;align-items:center}.portal-back:hover{color:var(--teal)}.portal-main{padding-block:40px}.portal-layout{display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid #e1e7e6;border-radius:18px;overflow:hidden;min-height:650px;box-shadow:0 10px 40px #0d234b04}.portal-story{position:relative;isolation:isolate;min-height:650px;display:flex;align-items:flex-end;background:var(--navy);overflow:hidden}.portal-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.portal-story:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#081a3026 0%,#081a3055 26%,#081a30eb 100%);z-index:-1}.portal-story-content{padding:48px;width:100%;color:#fff}.portal-story .eyebrow{color:#9ae0c7;letter-spacing:.15em;font-size:.8rem}.portal-story h1{color:#fff;font-size:clamp(2.6rem,3.6vw,3.7rem);letter-spacing:-.035em;line-height:1.17}.portal-story-content>p:not(.eyebrow){color:#e0e9ed;font-size:1rem;max-width:390px;margin-top:22px}.portal-story-rule{height:1px;background:#ffffff40;margin:32px 0 20px}.portal-story-content>span{font-size:.9rem;color:#d7e8e3}.portal-panel{padding:36px 48px 40px;min-width:0}.portal-tabs{display:flex;gap:4px;background:#f2f5f4;padding:5px;border-radius:9px}.portal-tabs>a{flex:1;text-align:center;padding:10px 12px;font-size:.9rem;color:var(--muted);border-radius:6px;transition:background .2s,color .2s}.portal-tabs>a[aria-current=page]{background:#fff;color:var(--navy);box-shadow:0 2px 7px #0d234b09;font-weight:600}.portal-tabs>a:hover{color:var(--teal)}.portal-form-content{max-width:390px;margin:38px auto 0}.portal-form-content>.eyebrow{font-size:.8rem;letter-spacing:.15em;margin-bottom:10px}.portal-panel h2{font-size:2.65rem;line-height:1.2}.portal-intro{font-size:1rem;margin-top:12px}.portal-notice{padding:14px 16px;margin:24px 0;border-left:3px solid var(--mint);border-radius:0 6px 6px 0;background:#f1f8f4;font-size:.875rem}.portal-notice strong{font-weight:600;color:var(--navy)}.portal-notice p{font-size:.875rem;margin-top:4px}.portal-notice a{text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.portal-form fieldset{border:0;padding:0;margin:0;min-width:0}.portal-form label{display:block;color:var(--navy);font-size:.875rem;font-weight:500;margin:16px 0 7px}.portal-form input{display:block;width:100%;min-width:0;height:51px;border:1px solid #d6dfe2;border-radius:7px;padding:12px 14px;background:#f8faf9;color:var(--muted);font-size:1rem;opacity:1;-webkit-text-fill-color:#75828b;cursor:not-allowed}.portal-form input::placeholder{opacity:1}.portal-form .button{width:100%;justify-content:space-between;margin-top:24px;opacity:.65;cursor:not-allowed}.portal-form .button:hover{transform:none;background:var(--navy)}.portal-help{text-align:center;padding-top:24px;margin-top:26px;border-top:1px solid var(--line);font-size:.9rem}.portal-help>a{display:inline-block;margin-top:4px;color:var(--navy);font-weight:500}.portal-help>a:hover{color:var(--teal)}.portal-help>a>span{margin-left:8px}.portal-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;padding-bottom:30px;font-size:.875rem;color:var(--muted)}.portal-footer a:hover{color:var(--teal)}@keyframes portal-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1150px){.site-header nav{gap:17px}.nav-inner{gap:18px}.nav-cta{display:none}.portal-panel{padding:30px}.portal-story-content{padding:36px}}
@media(max-width:800px){.nav-inner{gap:12px}.account-actions{gap:12px;margin-left:auto}.site-header nav{margin-left:0}.site-header nav>.nav-cta{display:flex}.portal-layout{grid-template-columns:.85fr 1fr}.portal-story-content{padding:26px}.portal-story h1{font-size:2.6rem}.portal-panel{padding:26px}.portal-tabs>a{padding:10px 6px}.portal-page .nav-inner{min-height:80px}.portal-back{font-size:.875rem}}
@media(max-width:650px){.portal-main{padding-block:22px}.portal-layout{grid-template-columns:1fr;border-radius:12px}.portal-panel{grid-row:1;padding:24px}.portal-form-content{margin-top:27px;max-width:none}.portal-panel h2{font-size:2.35rem}.portal-story{min-height:300px}.portal-story-content{padding:30px}.portal-story h1{font-size:2.4rem}.portal-story-content>p:not(.eyebrow){max-width:400px}.portal-story-rule,.portal-story-content>span{display:none}.portal-story .eyebrow{margin-bottom:12px}.portal-footer{flex-direction:column;gap:8px}.portal-back{display:none}.login-menu>summary{padding:10px 13px}.portal-notice{margin-block:20px}}
@media(max-width:360px){.brand img{width:120px}.account-actions{gap:8px}.login-menu>summary{padding-inline:10px}.nav-inner{gap:8px}}
@media(prefers-reduced-motion:reduce){.login-dropdown{animation:none}.login-menu summary svg,.login-menu>summary,.portal-tabs>a{transition:none}}

@media(max-width:800px){body:not(.portal-page) .login-dropdown{right:-57px}}
@media(max-width:360px){body:not(.portal-page) .login-dropdown{right:-53px}}

/* Working client login (texted code) inside the portal panel. */
.portal-form.is-live input{background:#fff;color:var(--ink);-webkit-text-fill-color:currentColor;cursor:text}
.portal-form.is-live .button{opacity:1;cursor:pointer}
.portal-form.is-live .button:disabled{opacity:.65;cursor:wait}
.portal-error{border-left-color:#c0463b;background:#fbefed}
.portal-links{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:18px}
/* A number we do not know is turned away with the way out attached, so the message is
   never a dead end. */
.portal-action{display:inline-block;margin-top:12px;padding:9px 16px;border-radius:8px;background:#12402f;color:#fff;font-size:.88rem;font-weight:600;text-decoration:none}
.portal-action:hover{background:#0d3324}
.portal-action:focus-visible{outline:3px solid #8ed3c0;outline-offset:2px}
.link-button{border:0;background:none;padding:4px 0;font:inherit;font-size:.875rem;color:var(--navy);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.link-button:hover{color:var(--teal)}
.portal-projects{margin-top:22px;border-top:1px solid var(--line)}
.portal-project{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 2px;border-bottom:1px solid var(--line);color:var(--navy)}
.portal-project>span:first-child{display:grid;gap:3px;min-width:0}
.portal-project strong{font-weight:600}
.portal-project small{font-size:.82rem;color:var(--muted)}
.portal-project:hover strong{color:var(--teal)}
.portal-status{flex-shrink:0;font-size:.75rem;padding:5px 11px;border-radius:20px;background:#eef7f3;color:#1f6a4d}
.portal-status.is-waiting{background:#fdf1dc;color:#8a5a12}
.portal-empty{margin-top:18px;font-size:.9rem;color:var(--muted)}
@media(max-width:650px){.portal-project{flex-direction:column;align-items:flex-start}}
.portal-tabs[hidden]{display:none}
.portal-tabs[hidden]+.portal-form-content{margin-top:6px}

/* Vendor portal: documents */
.portal-subtitle{font:500 1.55rem/1.2 var(--serif);margin:34px 0 6px;color:var(--navy)}
.portal-doc{padding:16px 0;border-bottom:1px solid var(--line)}
.portal-doc-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.portal-doc-head small{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}
.portal-doc-form{margin-top:4px}
.portal-doc-form label{margin-top:10px}
.portal-doc-form input[type=file]{height:auto;padding:10px}
.portal-doc-form .button{margin-top:12px}
.portal-status.is-bad{background:#fbe9e7;color:#8a2c22}
.portal-status.is-muted{background:#eef0f3;color:var(--muted)}
.portal-doc-msg{font-size:.85rem;margin-top:8px}
.portal-doc-msg.is-error{color:#a0322c}
