/* Portal account pages: shared Precision Teal palette; logical spacing supports RTL/LTR. */
body { min-height:100vh; }
.main-content { padding-block:2rem 4rem; }
.company-name { color:#082b36;text-decoration:none; }
.skip-link { position:absolute;inset-inline-start:1rem;top:-6rem;z-index:10;padding:.7rem 1rem;background:#fff;color:#005968;border:2px solid #007f90;border-radius:.4rem; }
.skip-link:focus { top:.6rem; }
.account-context { display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;background:#e5f2f3;border:1px solid #c8e1e4;border-radius:.75rem; }
.account-context>div { display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .8rem;min-width:0; }
.account-context strong,.account-code { overflow-wrap:anywhere; }
.context-label { flex-basis:100%;color:#48616a;font-size:.8rem; }
.account-code { color:#48616a;font-size:.9rem; }
.account-context>a { flex-shrink:0; }
.account-navigation { display:flex;flex-wrap:wrap;gap:.35rem;margin-block:1rem 2rem;border-bottom:1px solid #ccdcdf;padding-block-end:.75rem; }
.account-navigation a { text-decoration:none;padding:.6rem 1rem;border-radius:.4rem;color:#36545e; }
.account-navigation a[aria-current=page] { background:#006b7b;color:#fff;font-weight:700; }
.account-navigation a:hover:not([aria-current=page]) { background:#e4eff0;color:#003d48; }
.portal-heading { margin-block-end:1.75rem;max-width:52rem; }
.portal-heading h1 { font-size:clamp(1.8rem,4vw,2.6rem); }
.portal-heading .description { font-size:1rem; }
.account-choice { display:flex;flex-direction:column;gap:.65rem;min-width:0; }
.account-choice .eyebrow { margin:0;font-size:.85rem;overflow-wrap:anywhere; }
.account-choice h2 { margin:0;overflow-wrap:anywhere; }
.choice-action { color:#006575;font-size:.92rem; }
.account-choice .choice-action { margin-block-start:auto;padding-block-start:.5rem; }
.portal-summary { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-block:1.5rem; }
.summary-card { display:flex;flex-direction:column;gap:.5rem;padding:1.5rem;background:#fff;border:1px solid #ccdfe2;border-radius:.75rem;text-decoration:none;color:#18343e; }
.summary-card>strong { font-size:2.5rem;line-height:1.2;font-weight:700;overflow-wrap:anywhere; }
.summary-card:hover { border-color:#007e90; }
.portal-panel { min-width:0;background:#fff;border:1px solid #d6e3e5;border-radius:.75rem;padding:1.5rem; }
.portal-panel h2 { font-size:1.2rem;margin:0 0 .8rem;overflow-wrap:anywhere; }
.portal-panel p { color:#53656a; }
.account-profile-link { display:flex;align-items:center;justify-content:space-between;gap:1.5rem; }
.account-profile-link p { margin:0; }
.account-profile-link .primary-button { flex-shrink:0;text-decoration:none;background:#006b7b; }
.portal-records { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem; }
.portal-records .account-detail { grid-template-columns:1fr;gap:.15rem;margin:1rem 0 0; }
.portal-records .account-detail dt { font-size:.8rem;color:#53656a; }
.portal-records .account-detail dd { margin-block-end:.65rem;white-space:pre-line; }
.record-subtitle { margin:0;overflow-wrap:anywhere; }
.result-count { color:#53656a;font-size:.9rem; }
.portal-empty { padding:1.25rem;background:#fff;border:1px dashed #abc9ce;border-radius:.65rem;color:#48616a; }
.portal-pagination { display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-block:1.5rem; }
.portal-pagination a { padding:.4rem; }
.portal-footer { padding-block:1.5rem;border-top:1px solid #dce7e8;color:#53656a;font-size:.85rem; }
@media(max-width:680px) {
    .portal-records,.portal-summary { grid-template-columns:1fr; }
    .account-context,.account-profile-link { align-items:flex-start;flex-direction:column; }
    .account-navigation a { padding:.5rem .65rem; }
    .customer-grid { grid-template-columns:minmax(0,1fr); }
    .header-content { flex-wrap:wrap;padding-block:.75rem; }
    .main-content { padding-block-start:1.25rem; }
}

.product-search { display:flex;align-items:flex-end;flex-wrap:wrap;gap:1rem;margin-block:1.5rem; }
.product-search>div { flex:1 1 18rem;min-width:0; }
.product-search label { display:block;font-weight:700;margin-block-end:.4rem; }
.product-search input { width:100%;padding:.65rem .8rem;border:1px solid #a3bdc2;border-radius:.4rem;font:inherit;color:#18343e;background:#fff; }
.product-search .primary-button { background:#006b7b; }
.product-search>a { padding-block:.6rem; }
.product-card .eyebrow { color:#48616a;font-size:.9rem;margin-block-end:.6rem; }
.product-card h2 a { color:#006575;text-underline-offset:.25rem; }
.product-badge { display:inline-block;padding:.25rem .7rem;background:#e5f2ed;border:1px solid #bfd8cb;border-radius:1rem;color:#235e43;font-size:.8rem; }
.product-note { padding-block-start:1rem;border-top:1px solid #e0eaec;font-size:.9rem; }
.product-specifications { margin-block-start:2rem; }
.product-specifications>h2 { font-size:1.35rem; }
.specification-list { margin:0;border:1px solid #d6e3e5;border-radius:.75rem;background:#fff;overflow:hidden; }
.specification-row { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:1rem;padding:1rem 1.25rem; }
.specification-row+.specification-row { border-top:1px solid #e0eaec; }
.specification-row dt { font-weight:700;overflow-wrap:anywhere; }
.specification-row dd { margin:0;white-space:pre-wrap;overflow-wrap:anywhere;min-width:0; }
.specification-unit { color:#53656a;font-size:.9rem; }
@media(max-width:680px) { .specification-row { grid-template-columns:minmax(0,1fr);gap:.4rem; } }

.profile-editor { max-width:42rem; }
.profile-fields { display:grid;gap:1.25rem;border:0;padding:0;margin:0;min-width:0; }
.visually-hidden { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.profile-form select { width:100%;padding:.8rem;border:1px solid #adc6c9;border-radius:.4rem;font:inherit;color:#182b30;background:#fff; }
.profile-form select:focus-visible { outline:3px solid #0099a8;outline-offset:3px; }
.profile-actions { display:flex;align-items:center;flex-wrap:wrap;gap:1rem; }
.profile-actions .primary-button { background:#006b7b; }
.profile-status { display:block;color:#53656a;font-size:.85rem; }
.profile-success { padding:.8rem 1rem;background:#e5f2ed;border:1px solid #bfd8cb;border-radius:.4rem;color:#235e43; }
.profile-editor .auth-error p { margin-block-start:0;color:inherit; }

.request-card h2 a { color:#006575;text-underline-offset:.25rem; }
.request-card .eyebrow { margin-block-end:.5rem; }
.request-history { margin-block-start:2rem; }
.request-history>h2 { font-size:1.35rem;margin-block-end:.5rem; }
.request-events { list-style:none;padding:0;margin:1rem 0;display:grid;gap:1rem; }
.request-event { border-inline-start:4px solid #007f90; }
.request-event-heading { display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1rem; }
.request-event-heading h3 { font-size:1.1rem;margin:0;overflow-wrap:anywhere; }
.request-event-heading time { font-size:.85rem;color:#53656a; }
.request-event .request-message { white-space:pre-wrap;overflow-wrap:anywhere;color:#18343e;margin-block-end:0; }
.request-overview-link { margin-block-start:1rem; }

/* Customer request submission and immutable revision history. */
.request-actions { display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-block:1rem; }
.request-actions .primary-button,.request-editor a.primary-button { display:inline-block;text-decoration:none;background:#006b7b; }
.request-editor { max-width:960px;margin-inline:auto; }
.request-form { margin-block-start:1.5rem; }
.request-form-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem; }
.request-form select,.request-form textarea { width:100%;border:1px solid #adc6c9;border-radius:.4rem;padding:.8rem;font:inherit;color:#182b30;background:#fff; }
.request-form textarea { resize:vertical; }
.request-form :is(input,select,textarea):focus-visible { outline:3px solid #0099a8;outline-offset:3px; }
.request-spec-fields { border:0;padding:0;margin:0;min-width:0; }
.request-spec-fields legend { font-size:1.2rem;font-weight:700;margin-block-end:1rem; }
.request-form .request-confirm { display:flex;align-items:flex-start;gap:.65rem;font-weight:400; }
.request-form .request-confirm input[type=checkbox] { width:1.15rem;height:1.15rem;flex:0 0 auto;margin-block-start:.3rem;accent-color:#006b7b; }
.request-form .primary-button { background:#006b7b; }
.request-form .request-danger { background:#963c30; }
.request-message { overflow-wrap:anywhere; }
@media(max-width:640px) { .request-form-grid { grid-template-columns:1fr; } .request-actions { align-items:flex-start; } }
