/* DishLab / client portal. Page-scoped presentation; no third-party fonts or trackers. */
.client-portal-page{background:var(--cream);--portal-muted:#66746d}
.client-portal-page .site-header{position:relative}
.portal-layout{display:grid;grid-template-columns:1fr 1fr;min-height:max(760px,calc(100svh - 164px))}
.portal-editorial{position:relative;isolation:isolate;overflow:hidden;min-height:760px;background:#163b32;color:#fffefa;display:flex;flex-direction:column;justify-content:space-between;padding:48px 56px 50px}
.portal-image{position:absolute;z-index:-3;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.portal-image-shade{position:absolute;z-index:-2;inset:0;background:linear-gradient(180deg,rgba(10,28,21,.34),rgba(11,28,22,.04) 28%,rgba(10,28,21,.12) 45%,rgba(10,28,21,.64) 73%,rgba(10,28,21,.94))}
.portal-editorial-label{display:flex;align-items:center;gap:12px;font-size:10px;font-weight:600;letter-spacing:.18em;line-height:1.5;text-shadow:0 1px 8px #13271d60}
.portal-mark{display:inline-block;width:26px;height:1px;background:#dfca97}
.portal-statement{font-size:clamp(3rem,5.1vw,5.6rem);font-weight:600;line-height:1.03;letter-spacing:-.055em;margin:0 0 35px}
.portal-statement span{color:#e5d2a4}
.portal-editorial-caption{border-top:1px solid #e5e2d657;padding-top:23px;display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:13px;letter-spacing:.015em;color:#f4f1e7}
.portal-editorial-caption svg{height:23px;width:23px;color:#dbc592;display:block}
.portal-signin{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:65px 60px 32px;background:var(--cream)}
.portal-form-wrap{width:100%;max-width:420px;margin:auto 0}
.portal-eyebrow{display:block;font-size:10px;font-weight:600;line-height:1.5;letter-spacing:.18em;color:#776747;margin-bottom:20px}
.portal-form-wrap h1{font-size:clamp(2.65rem,3.8vw,3.5rem);font-weight:600;line-height:1.08;letter-spacing:-.055em;margin:0 0 16px;color:var(--forest)}
.portal-intro{font-size:15px;line-height:1.6;color:var(--portal-muted);margin:0 0 38px}
.portal-field{margin-bottom:24px;min-width:0}
.portal-field>label{display:block;font-size:12px;line-height:1.5;font-weight:600;color:var(--forest);margin-bottom:10px}
.portal-field input{display:block;width:100%;min-width:0;border:1px solid #c4cbc2;border-radius:0;color:var(--forest);background:#fffefa;padding:16px 17px;height:58px;font-size:15px;line-height:1.5;box-shadow:none;appearance:none;transition:border-color .16s,background .16s}
.portal-field input::placeholder{color:#768078;opacity:1;font-size:14px}
.portal-field input:hover{border-color:#8c9c90}
.portal-field input:focus-visible{border-color:var(--forest);outline:2px solid var(--forest);outline-offset:2px}
.portal-password{position:relative}
.portal-password>input{padding-right:93px}
.portal-reveal{position:absolute;top:3px;right:3px;bottom:3px;display:flex;align-items:center;justify-content:center;gap:7px;width:81px;border:0;background:transparent;color:var(--forest);font-size:11px;font-weight:500;padding:0}
.portal-reveal svg{width:18px;height:18px;flex:none}
.portal-reveal:hover{background:#edf0e8}
.portal-form-help{display:flex;justify-content:flex-end;margin:-7px 0 25px}
.portal-help-link{border:0;border-bottom:1px solid #a3afa3;background:none;padding:3px 0;color:var(--forest);font-size:12px;line-height:1.6;letter-spacing:0}
.portal-help-link:hover{border-color:var(--forest)}
.portal-submit{display:flex;align-items:center;justify-content:space-between;width:100%;border:1px solid var(--forest);border-radius:0;background:var(--forest);color:var(--cream);padding:18px 22px;min-height:59px;font-size:14px;font-weight:500;transition:background .18s,border-color .18s}
.portal-submit svg{width:20px;height:20px;transition:transform .18s}
.portal-submit:hover{background:#285747;border-color:#285747}
.portal-submit:hover svg{transform:translate(2px,-2px)}
.portal-status{border-left:2px solid var(--gold);padding:16px 18px;margin:20px 0;background:#e9ede5;color:var(--forest);font-size:12px;line-height:1.6}
.portal-status strong{font-weight:600}.portal-status p{margin:7px 0 10px}.portal-status a{display:inline-flex;gap:12px;align-items:center;text-decoration:underline;text-underline-offset:3px;font-weight:600}.portal-status svg{width:16px;height:16px}
.portal-access{border-top:1px solid #d5dbd1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:34px;padding-top:24px;font-size:12px;line-height:1.6}
.portal-access>span{color:var(--portal-muted)}
.portal-access a{display:flex;align-items:center;gap:14px;font-size:12px;white-space:nowrap;color:var(--forest);font-weight:600}
.portal-access a:hover{text-decoration:underline;text-underline-offset:4px}
.portal-access svg{height:16px;width:16px}
.portal-footnote{font-size:11px;line-height:1.7;color:var(--portal-muted);margin:18px 0 0}
.portal-contact-line{width:100%;max-width:420px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--portal-muted);font-size:11px;line-height:1.6;margin-top:55px}
.portal-contact-line a{display:flex;align-items:center;gap:8px;white-space:nowrap;color:var(--forest);font-size:12px;font-weight:500;padding:8px 0}
.portal-contact-line svg{width:14px;height:14px}
.portal-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:64px;padding:16px 56px;font-size:10px;color:var(--portal-muted);background:var(--cream);border-top:1px solid #dfe2d8}
.portal-footer-tagline{letter-spacing:.03em}
.portal-footer nav{display:flex;gap:28px}.portal-footer a{padding:7px 0}.portal-footer a:hover{text-decoration:underline;text-underline-offset:4px}
.portal-dialog{border:0;background:var(--cream);color:var(--forest);width:min(520px,calc(100% - 36px));max-height:calc(100svh - 40px);padding:36px 38px;box-shadow:0 25px 90px #0c211960;overflow:auto}
.portal-dialog::backdrop{background:#0a231dbb;backdrop-filter:blur(4px)}
.portal-dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;gap:20px}.portal-dialog-top .portal-eyebrow{margin:0}
.portal-dialog-close{background:transparent;border:1px solid #b7c0b3;color:var(--forest);width:40px;height:40px;display:grid;place-items:center;padding:7px}.portal-dialog-close svg{width:22px;height:22px}
.portal-dialog h2{font-size:38px;margin-bottom:20px}.portal-dialog>p{font-size:14px;line-height:1.7;color:var(--portal-muted)}
.portal-dialog-primary,.portal-dialog-secondary{display:flex;align-items:center;justify-content:space-between;padding:16px 19px;gap:20px;margin-top:14px;font-size:13px;border:1px solid var(--forest)}
.portal-dialog-primary{background:var(--forest);color:var(--cream)}.portal-dialog-secondary:hover{background:#e9ede5}.portal-dialog-primary svg,.portal-dialog-secondary svg{width:18px;height:18px}
.portal-dialog .portal-dialog-note{font-size:11px;margin:25px 0 0}.portal-nojs{font-size:12px;margin-top:16px}.portal-nojs a{text-decoration:underline}
@media(min-width:1800px){.portal-editorial{padding:60px 80px}.portal-form-wrap,.portal-contact-line{max-width:460px}}
@media(max-width:1180px){.portal-editorial{padding:38px 38px 40px}.portal-signin{padding:50px 38px 28px}.portal-statement{font-size:clamp(2.9rem,5.2vw,4rem)}.portal-layout{min-height:max(720px,calc(100svh - 152px))}.portal-editorial{min-height:720px}.portal-form-wrap h1{font-size:2.8rem}.portal-contact-line{flex-wrap:wrap;gap:0}.portal-contact-line>span{flex-basis:100%}.portal-footer{padding-inline:38px}}
@media(max-width:860px){.portal-layout{display:flex;flex-direction:column;min-height:0}.portal-signin{order:0;padding:46px 28px 26px}.portal-form-wrap{max-width:460px}.portal-eyebrow{margin-bottom:17px}.portal-form-wrap h1{font-size:clamp(2.55rem,6.5vw,3.2rem)}.portal-intro{font-size:14px;margin-bottom:32px}.portal-contact-line{max-width:460px;flex-wrap:nowrap;gap:14px;margin-top:36px}.portal-contact-line>span{flex-basis:auto}.portal-editorial{order:1;min-height:400px;padding:30px 32px 34px}.portal-image{object-position:50% 48%}.portal-image-shade{background:linear-gradient(180deg,#0a1c1566,#0b1c161a 25%,#0a1c15b5 67%,#0a1c15ee)}.portal-statement{font-size:clamp(2.8rem,7.5vw,4rem);margin-bottom:25px}.portal-editorial-label{font-size:9px}.portal-editorial-caption{font-size:12px;padding-top:17px}.portal-footer{padding:18px 28px;flex-wrap:wrap;gap:7px 20px}.portal-footer-tagline{display:none}.portal-footer nav{margin-left:auto;gap:18px}.portal-access{margin-top:30px;padding-top:22px}.portal-footnote{font-size:10px}.portal-field input{font-size:16px}.portal-footer{font-size:9px}}
@media(max-width:380px){.portal-signin{padding-inline:22px}.portal-access{font-size:11px;gap:9px}.portal-access a{font-size:11px;gap:7px}.portal-contact-line{font-size:10px}.portal-contact-line a{font-size:11px}.portal-form-wrap h1{font-size:2.5rem}.portal-footer{padding-inline:22px}.portal-footer nav{gap:13px}.portal-dialog{padding:25px}.portal-dialog h2{font-size:32px}}
@media(prefers-reduced-motion:reduce){.portal-submit,.portal-submit svg,.portal-field input{transition:none}}
