.portal-site{--portal-login-width:600px;background:#fff;color:#111625}.portal-header{display:flex;align-items:center;justify-content:space-between;padding-block:28px;border-bottom:1px solid #b9ccd8}.portal-main{padding-block:72px}.portal-intro{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:center;margin-bottom:64px}.portal-intro h1{font-size:clamp(36px,4vw,68px);font-weight:300;line-height:1.2;margin:28px 0 0}.portal-intro h1 span{color:#208ac1}.portal-intro p{color:#607184}.portal-intro .eyebrow{color:#087db2;font-size:13px;letter-spacing:.2em}.portal-site h2{font-weight:400;font-size:26px;margin:0 0 20px}.portal-site p{line-height:1.7}.portal-site [hidden]{display:none!important}.portal-fields{display:grid;grid-template-columns:1fr 1.4fr auto;gap:24px;align-items:end;margin:32px 0}.portal-fields label{display:grid;gap:12px;font-size:16px}.portal-fields input{font:inherit;font-size:18px;width:100%;min-width:0;height:60px;border:1px solid #b9ccd8;border-radius:0;background:#fff;color:#111625;padding:14px 18px;box-sizing:border-box}.portal-fields input:focus{outline:0;border-color:#168bc0;box-shadow:none}.portal-site .header-cta{display:inline-flex;height:60px;min-width:190px;cursor:pointer;white-space:nowrap}.portal-code{grid-template-columns:minmax(180px,380px) auto;justify-content:start}.portal-help,.portal-footer{color:#607184;font-size:14px}.portal-link{font:inherit;color:#087db2;border:0;border-bottom:1px solid #b9ccd8;background:transparent;padding:0 0 5px;text-decoration:none;cursor:pointer}.portal-link:hover{border-color:#087db2}.portal-site :focus-visible{outline:1px solid #087db2;outline-offset:4px}.portal-tools{display:flex;align-items:center;justify-content:flex-end;gap:28px;margin-bottom:28px}.portal-order{display:grid;grid-template-columns:1fr 1.2fr;gap:70px;padding:48px;background:#edf5f9;margin-bottom:28px}.portal-order h2{font-size:34px;font-weight:300;margin-top:16px}.portal-order .portal-number{font-size:13px;letter-spacing:.12em;color:#087db2;margin:0}.portal-order .portal-device{color:#607184}.portal-timeline{margin:0;padding:0;list-style:none}.portal-timeline li{position:relative;padding:0 0 34px 36px;border-left:1px solid #abc4d3}.portal-timeline li:last-child{border-left-color:transparent;padding-bottom:0}.portal-timeline li:before{content:'';position:absolute;left:-5px;top:7px;width:9px;height:9px;border-radius:50%;background:#087db2}.portal-timeline strong{display:block;font-size:22px;font-weight:400;line-height:1.4}.portal-timeline time,.portal-timeline p{display:block;color:#607184;margin:8px 0 0;font-size:16px}.portal-timeline li:last-child strong{color:#087db2}.portal-contact{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-top:50px;padding-top:28px;border-top:1px solid #b9ccd8}.portal-contact p{margin-right:auto}.portal-footer{display:flex;justify-content:space-between;gap:24px;padding-block:28px;border-top:1px solid #b9ccd8}.portal-demo{background:#f2f4f6;padding:24px 28px;margin-bottom:32px}.portal-demo p{margin:0 0 16px}.portal-states{display:flex;gap:12px;flex-wrap:wrap}.portal-states button{font:inherit;background:#fff;border:1px solid #b9ccd8;border-radius:0;padding:9px 16px;cursor:pointer}.portal-states button[aria-pressed=true]{background:#e4f3fa;border-color:#087db2;color:#087db2}#portal-message:empty{display:none}#portal-message{text-align:center;padding:16px;background:#f2f4f6}.portal-site button:disabled{opacity:.6;cursor:wait}
@media(max-width:760px){.portal-main{padding-block:40px}.portal-intro{grid-template-columns:1fr;gap:20px;margin-bottom:36px}.portal-intro br{display:none}.portal-header{padding-block:20px}.portal-header .brand{width:170px}.portal-fields{grid-template-columns:1fr;gap:20px}.portal-fields .header-cta{justify-self:start}.portal-order{grid-template-columns:1fr;gap:32px;padding:24px}.portal-order h2{font-size:28px}.portal-timeline strong{font-size:20px}.portal-tools{flex-wrap:wrap;gap:20px}.portal-tools p{flex-basis:100%;margin:0}.portal-contact{align-items:flex-start;flex-direction:column;gap:14px}.portal-footer{flex-direction:column;align-items:center;text-align:center}.portal-demo{padding:20px}.portal-states{gap:8px}.portal-states button{padding:8px 10px}}

.portal-site .portal-fields .header-cta{margin:0;justify-self:start;font-family:inherit;font-size:18px;font-weight:400}.portal-site .portal-fields .header-cta .cta-label{font-size:18px;font-weight:400}

.portal-legal{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:16px 32px}.portal-footer{align-items:center}.portal-legal a{position:relative;text-decoration:none;border:0;background:none;box-shadow:none}.portal-legal a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:0;border:0;border-bottom:1px solid #208ac1;background:none;box-shadow:none;transform:scaleX(0);transform-origin:left;transition:transform .2s ease}.portal-legal a:hover::after,.portal-legal a:focus-visible::after{transform:scaleX(1)}
.portal-intro{align-items:start;row-gap:28px}.portal-intro>div{display:contents}.portal-intro .eyebrow{grid-column:1;grid-row:1;margin:0}.portal-intro h1{grid-column:1;grid-row:2;margin:0}.portal-intro>p{grid-column:2;grid-row:2;margin:0;padding-top:clamp(4px,.5vw,8px)}
@media(max-width:760px){.portal-intro{row-gap:20px}.portal-intro>p{grid-column:1;grid-row:3;padding-top:0}}

/* Status palette matches ServiceOrderModel.ts in CRM. */
.portal-site [data-status="new"]{--status-color:#ffc107;--status-bg:#fff2cd}
.portal-site [data-status="scheduled"]{--status-color:#7c3aed;--status-bg:#e4d7fb}
.portal-site [data-status="in_progress"]{--status-color:#4caf50;--status-bg:#dbefdc}
.portal-site [data-status="waiting_parts"]{--status-color:#607d8b;--status-bg:#dfe5e8}
.portal-site [data-status="done"],.portal-site [data-status="cancelled"]{--status-color:#f44336;--status-bg:#fcd9d6}
.portal-site [data-status="deleted"]{--status-color:#607d8b;--status-bg:#dfe5e8}
.portal-header .portal-link{position:relative;border:0;color:inherit}
.portal-header .portal-link::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:#208ac1;transform:scaleX(0);transform-origin:left;transition:transform .2s ease}
.portal-header .portal-link:hover,.portal-header .portal-link:focus-visible{color:#208ac1}
.portal-header .portal-link:hover::after,.portal-header .portal-link:focus-visible::after{transform:scaleX(1)}
.portal-timeline li{border-left:0}
.portal-timeline li:before{left:-5px;top:11px;width:11px;height:11px;min-width:11px;min-height:11px;max-width:11px;max-height:11px;box-sizing:border-box;border:0;border-radius:50%;aspect-ratio:1;transform:none;background:var(--status-color);z-index:1}
.portal-timeline li:not(:last-child)::after{content:"";position:absolute;width:1px;background:#abc4d3;left:0;top:16px;bottom:-16px}
.portal-timeline strong,.portal-timeline li:last-child strong{display:inline-block;color:#111625;background:var(--status-bg);padding:1px 8px;margin-left:-8px}
.portal-states button[aria-pressed=true]{color:#111625;border-color:var(--status-color);background:var(--status-bg)}
@media(prefers-reduced-motion:reduce){.portal-header .portal-link::after{transition:none}}

.portal-actions{grid-column:1/-1;border-top:1px solid #abc4d3;padding-top:28px}.portal-actions h3{font-size:24px;font-weight:400;margin:0 0 20px}.portal-actions details+details{border-top:1px solid #abc4d3}.portal-actions summary{cursor:pointer;padding:18px 0;color:#087db2}.portal-actions fieldset{border:0;margin:0;padding:12px 0 0;min-width:0}.portal-actions label{display:grid;gap:12px}.portal-actions textarea{width:100%;box-sizing:border-box;font:inherit;color:inherit;background:#fff;border:1px solid #b9ccd8;border-radius:0;padding:16px;resize:vertical;min-height:120px}.portal-actions textarea:focus{outline:0;border-color:#168bc0}.portal-actions input[type=file]{font:inherit;max-width:100%;color:#607184}.portal-actions input::file-selector-button{font:inherit;color:#087db2;background:#fff;border:1px solid #b9ccd8;padding:12px 18px;margin-right:16px;cursor:pointer}.portal-actions input::file-selector-button:hover{border-color:#087db2}:is(.portal-actions,.portal-document-actions) .header-cta{margin-top:12px;font:inherit}.portal-action-feedback{margin:0 0 20px}.portal-action-feedback:empty{display:none}.portal-photo-previews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:20px 0}.portal-photo-previews:empty{display:none}.portal-photo-previews figure{margin:0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:12px}.portal-photo-previews img{display:block;width:100%;height:130px;object-fit:contain;background:#f0f5f8;border:1px solid #b9ccd8;box-sizing:border-box}.portal-actions fieldset:disabled{opacity:.65}@media(max-width:760px){.portal-actions h3{font-size:22px}.portal-photo-previews{grid-template-columns:1fr}:is(.portal-actions,.portal-document-actions) .header-cta{min-width:190px;width:auto;max-width:100%}}
.portal-actions{min-width:0}.portal-actions input[type=file]{min-width:0;width:100%;box-sizing:border-box}@media(max-width:760px){.portal-order{grid-template-columns:minmax(0,1fr)}}
.portal-actions label>.portal-link{justify-self:start}

/* Same label-relative arrow and control size as the service form. */
.portal-site :is(.portal-actions,.portal-document-actions) .header-cta{height:57px;min-height:57px;min-width:0;width:auto;max-width:100%;padding:15px 28px;font-size:16px;font-weight:400;box-sizing:border-box}
:is(.portal-actions,.portal-document-actions) .header-cta .cta-label{position:relative;display:inline-block}
:is(.portal-actions,.portal-document-actions) .header-cta .cta-hover-arrow{left:-24px;width:16px;height:16px}

.portal-actions form{margin-bottom:0}.portal-documents{grid-column:1/-1;border-top:1px solid #abc4d3;padding-top:28px;min-width:0}.portal-documents h3{font-size:24px;font-weight:400;margin:0 0 16px}.portal-documents a{overflow-wrap:anywhere}

/* The final child must not add a second bottom gutter. */
.portal-order>:last-child{margin-bottom:0}.portal-documents>p:last-child{margin-bottom:0}.portal-actions details:nth-last-child(1 of :not([hidden])):not([open]) summary{padding-bottom:0}.portal-actions form>:last-child{margin-bottom:0}

.portal-photo-remove{align-self:center;font-size:14px}
.portal-actions details[open]:has(~ details:not([hidden])) form{padding-bottom:28px}
/* Login card follows the offer portal: 600px card, 60px controls. */
.portal-site:has(#portal-login:not([hidden])) .portal-main{padding-block:64px}
.portal-site:has(#portal-login:not([hidden])) .portal-intro,.portal-site:has(#portal-login:not([hidden])) .portal-contact{display:none}
#portal-login{box-sizing:border-box;width:100%;max-width:var(--portal-login-width);margin:0 auto;padding:40px 28px 28px;background:#edf5f9;text-align:center}
#portal-login .portal-login-brand{margin:0 0 16px;color:#208ac1;font-size:13px;line-height:1.6;letter-spacing:.2em}
#portal-login .portal-login-heading{font-size:42px;font-weight:300;line-height:1.2;margin:0 0 40px}
#portal-login-title{font-size:16px;font-weight:400;margin:0 0 8px}
#portal-login-help{font-size:14px;color:#607184;margin:0}
#portal-login .portal-fields{grid-template-columns:minmax(0,1fr);gap:24px;margin:28px 0 24px}
#portal-login .portal-fields label{font-size:14px;color:#607184;gap:8px}
#portal-login .portal-fields input{text-align:center}
#portal-login .header-cta{width:100%;min-width:0;justify-self:stretch;justify-content:center;padding:14px 32px;font-size:16px}
#portal-login .header-cta .cta-label{position:relative;font-size:16px}
#portal-login .header-cta .cta-hover-arrow{left:-24px;width:16px;height:16px}
#portal-login .portal-help{margin:24px 0 0}
@media(max-width:600px){.portal-site:has(#portal-login:not([hidden])) .portal-main{padding-block:40px}#portal-login{padding:32px 20px 24px}#portal-login .portal-login-heading{font-size:36px}}


/* Fixed order prefix; field retains the shared login dimensions. */
#portal-login .portal-number-field{display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #b5cadb;min-height:60px;box-sizing:border-box;color:#101525;font-size:18px;gap:0}
#portal-login .portal-number-field:focus-within{border-color:#009fe3}
#portal-login .portal-number-field input{width:11ch;min-width:0;height:58px;padding:0;border:0;outline:0;box-shadow:none;text-align:left;background:transparent;font:inherit}

.portal-document-row{padding:16px 0;border-bottom:1px solid #abc4d3}.portal-document-row>p:first-child{overflow-wrap:anywhere}.portal-document-actions{display:flex;flex-wrap:wrap;gap:16px}.portal-document-row .portal-help:empty{display:none}

.portal-document-actions .header-cta{margin:0;font-family:inherit}.portal-document-actions .header-cta .cta-label{font:inherit}.portal-document-row:last-child{border-bottom:0;padding-bottom:0}

.portal-site:has(#portal-login:not([hidden])) #portal-message{box-sizing:border-box;width:100%;max-width:var(--portal-login-width);margin:24px auto 0}
