/* AAX visual roles: neutral information, restrained gold actions.
   Loaded last on every HTML page. Business rules and permissions are independent. */
:root {
  --ui-text:#f2f2f2; --ui-secondary:#d2d2d2; --ui-meta:#c2c2c2;
  --ui-action:#d5b27d; --ui-action-hover:#ecd2a8; --ui-border:#ffffff29;
  --ui-surface:#111111; --ui-control:#ffffff04;
  --type-hero:clamp(32px,3.2vw,44px); --type-section:clamp(28px,2.6vw,36px);
  --type-feature:24px; --type-card:18px; --type-lead:17px; --type-body:16px;
  --type-control:15px; --type-meta:14px; --type-small:14px; --type-label:12px;
}
body,button,input,select,textarea {font-family:Arial,Helvetica,sans-serif}
body {color:var(--ui-text);-webkit-font-smoothing:antialiased}
/* Gold text signals a destination or a control; neither underline nor shine is needed. */
body a,body button,body summary {text-decoration:none!important}
body a:not(.brand),body button,body summary {text-underline-offset:initial}
body .text-link::after {display:none}
body :is(.help-link,.text-link,.inline-button,.email-link,.header-account) {border-bottom:0}
body :is(a,button,summary):focus-visible {outline:2px solid var(--ui-action);outline-offset:4px}
body :is(button,a):disabled,body [aria-disabled=true] {opacity:.5}

/* Public pages: keep the established dark/light surfaces with readable neutral text. */
body.site-ui {--tone-title:#f2f2f2;--tone-subtitle:#dedede;--tone-body:#d2d2d2;--tone-meta:#c2c2c2}
.site-ui :is(.projects-section,.statement-section) {--tone-title:#242424;--tone-subtitle:#444;--tone-body:#484848;--tone-meta:#555}
.site-ui :is(.section-label,.eyebrow,.hero-kicker,.section-label .index,.service-number,.commitments article>span,.statement-mark,.statement-signature,.reference-box span,.field-error,.form-feedback,.form-result p,.copy-status,.success-mark) {color:var(--tone-title)}
.site-ui :is(.site-header,.mobile-nav,.service-tabs,.contact-form,.reference-box,.form-result,.gallery-link) {border-color:var(--ui-border);box-shadow:none}
.site-ui :is(.button,.header-cta,.icon-button,.menu-toggle,.back-to-top,.step-plus) {background:var(--ui-control);color:var(--tone-accent);border-color:var(--ui-border);box-shadow:none;min-height:44px;font-size:15px}
.site-ui .button {padding:12px 20px;gap:16px}
.site-ui .button.button-light:not(.landing-cta):is(:hover,:active,.is-pressed),
.site-ui .service-tabs button[aria-selected=true]:is(:hover,:active,.is-pressed),
.site-ui .service-tabs button[aria-selected=true] {background:#ffffff0c;color:var(--tone-accent);border-color:var(--ui-border);box-shadow:none}
.site-ui .service-tabs {gap:8px;border-radius:14px}
.site-ui .service-tabs button {min-height:44px;padding:12px 20px;border-radius:9px;font-size:15px}
.site-ui .button.landing-cta {background:var(--action-fill);color:#15120d;border-color:#d5b27d;box-shadow:none}
.site-ui .button.landing-cta:hover {background:var(--action-fill-hover);color:#15120d}
.site-ui .button.landing-cta:is(:active,.is-pressed) {background:var(--action-fill-press);color:#15120d}
.site-ui :is(.desktop-nav,.desktop-nav a,.header-account,.document-nav .text-link) {font-size:14px;line-height:1.5}
.site-ui .mobile-nav a {font-size:20px;line-height:1.45;padding-block:12px}
.site-ui :is(.hero-title-last) {font-size:1em}
.site-ui :is(.info-dialog,.email-dialog,.project-dialog) h2 {font-size:24px;line-height:1.3}
.site-ui :is(.info-dialog,.email-dialog,.project-dialog) h3 {font-size:18px;line-height:1.4}
.site-ui .estimate-home-note {font-size:14px!important}
.site-ui :is(.field input,.field select,.field textarea,.inquiry-field select) {border-color:var(--ui-border)}
.site-ui .contact-form .select-caption {font-size:12px;color:var(--ui-meta)}
.site-ui .privacy-ack input:checked {background-color:var(--ui-action)}

/* Account, calculator and administration use one compact reading scale. */
body.portal-ui {--ink:var(--ui-text);--muted:var(--ui-secondary);--workspace-muted:var(--ui-secondary);--line:var(--ui-border);font-size:15px;line-height:1.6;background:#050505}
.portal-ui :is(h1,h2,h3,h4,p,label,legend,dt,dd,th,td,small) {color:var(--ui-text)}
.portal-ui :is(.eyebrow,.result-kicker,.metric,.price,.amount,.money,.material-price strong,.report-metrics strong,.totals div,.line-item span,.followup-status,.badge,.toast,.feedback,.error,.portal-error,.pending h3,.portal-alert strong,.company-worksite strong,.company-item legend,.promises span,.workspace-identity strong) {color:var(--ui-text)!important}
.portal-ui :is(.small,small,.lead,.step-intro,.hint,.price-caption,.footer-note,.allowance-note,.portal-alert,.workspace-section-description,.message-card pre,.pending>p,.company-result .price small) {color:var(--ui-secondary)}
.portal-ui :is(.badge,.hint,.pending,.totals,.allowance-note,.portal-alert,.company-worksite,.photos,.account-dialog,.topbar,.company-actions,.company-item,.edit-line) {border-color:var(--ui-border);background-color:var(--ui-control)}
.portal-ui :is(.badge,.hint,.pending,.totals,.allowance-note,.portal-alert) {background-image:none}
.portal-ui .bar-fill,.portal-ui .phase-track i {background:#b7b7b7}
.portal-ui progress::-webkit-progress-value {background:#b7b7b7}
.portal-ui progress::-moz-progress-bar {background:#b7b7b7}
.portal-ui :is(h1,.account-shell h1,.admin-shell h1),.portal-ui.aax-workspace #portal h1 {font-size:clamp(28px,2.5vw,32px);line-height:1.25;letter-spacing:-.025em;margin:0 0 12px}
.portal-ui :is(h2,.account-dialog h2,.admin-dialog h2),.portal-ui.aax-workspace #portal h2 {font-size:22px;line-height:1.35;letter-spacing:-.02em;margin:0 0 16px}
.portal-ui :is(h3,.admin-dialog [data-profile-section]>h3),.portal-ui.aax-workspace #portal h3 {font-size:18px;line-height:1.4;letter-spacing:-.01em}
.portal-ui :is(.small,small,.footer-note,.price-caption,.result-reference,.panel-meta,.badge,.bar-label,.audit-row,.list-toolbar,.pagination,.team-project-tools p,.quote-card p,.metric-card p,.quota-card p,.draft-tools,.review-list div,.line-item small,.admin-table td small,.planning-warnings li) {font-size:14px;line-height:1.6}
.portal-ui :is(.eyebrow,.result-kicker),.portal-ui.aax-workspace #portal .eyebrow {font-size:12px;line-height:1.5;letter-spacing:.09em;margin-bottom:12px}
.portal-ui :is(label,legend,.company-fields small,.admin-table th),.portal-ui.aax-workspace #portal label {font-size:14px;line-height:1.5;color:var(--ui-text)}
.portal-ui :is(.admin-table,.line-item,.message-card p,.message-card pre,.report-metrics span,.checkline,.conditions) {font-size:15px;line-height:1.6}
.portal-ui .admin-table th {letter-spacing:0;background:#ffffff04}
.portal-ui .admin-table :is(th,td) {padding:16px}
.portal-ui .admin-table td small {font-size:13px}
.portal-ui :is(.price,.metric,.quota-card .metric,.metric-card .metric,.metric-card .metric.compact,.material-price strong,.report-metrics strong),.portal-ui.aax-workspace #portal p.metric {font-size:28px;font-weight:500;line-height:1.3;letter-spacing:-.02em;overflow-wrap:anywhere}
.portal-ui :is(.material-price strong,.report-metrics strong,.quote-card .amount) {font-size:22px}
.portal-ui .attention-grid strong {color:var(--ui-text);font-size:26px;min-width:30px}
.portal-ui .attention-grid button {background:#ffffff03;border-color:var(--ui-border);padding:18px;gap:16px;box-shadow:none}
.portal-ui .attention-grid span {color:var(--ui-text);font-size:15px}
.portal-ui.aax-workspace #portal :is(.small,small,.team-project-tools p) {font-size:14px;line-height:1.6;color:var(--ui-secondary)}
.portal-ui.aax-workspace #portal :is(input:not([type=checkbox]):not([type=radio]),select,textarea),.portal-ui :is(.account-form input:not([type=checkbox]):not([type=radio]),.account-form select,.account-form textarea) {font-size:16px;line-height:1.5;color:var(--ui-text);border-color:#ffffff35;min-height:46px}
.portal-ui :is(input,select,textarea)::placeholder {color:#c2c2c2}

/* All portal actions are outlined or text-only. Filled gold belongs only on the home page. */
.portal-ui :is(a:not(.brand),button,summary) {color:var(--ui-action)}
.portal-ui :is(.primary,.secondary,.small-button),.portal-ui.aax-workspace :is(.primary,.secondary,.small-button) {font-size:15px;line-height:1.4;min-height:44px;padding:11px 16px;border-radius:10px;border:1px solid #ffffff38;background:#ffffff03;color:var(--ui-action);box-shadow:none;gap:12px;transform:none}
.portal-ui .primary,.portal-ui.aax-workspace .primary {border-color:#d5b27d70;background:#ffffff05}
.portal-ui :is(.primary,.secondary,.small-button):hover {background:#ffffff0b;border-color:var(--ui-action);box-shadow:none;transform:none}
.portal-ui :is(.help-link,.email-link,.dialog-close,.reveal-password),.portal-ui.aax-workspace .help-link {color:var(--ui-action);font-size:15px;line-height:1.5;min-height:44px;padding-block:10px;text-decoration:none!important;border-bottom:0}
.portal-ui :is(.help-link,.email-link,a):hover {color:var(--ui-action-hover)}
.portal-ui .reveal-password {font-size:14px;min-height:40px;padding-block:5px;top:4px}
.portal-ui .dialog-close {margin-bottom:12px;padding:8px}
.portal-ui :is(.admin-tabs,.profile-tabs,.access-tabs) {gap:8px}
.portal-ui :is(.admin-tabs button,.profile-tabs button,.access-tabs button,.admin-dialog .counter-tools button) {min-height:44px;padding:10px 14px;font-size:14px;color:var(--ui-action);border:1px solid var(--ui-border);background:transparent;border-radius:9px}
.portal-ui :is(.admin-tabs button,.profile-tabs button,.access-tabs button)[aria-pressed=true] {background:#ffffff0d;border-color:#ffffff55;color:var(--ui-action-hover)}
.portal-ui :is(.link-row,.editor-toolbar,.report-actions,.project-actions,.inline-actions) {gap:12px 16px}
.portal-ui .link-row {row-gap:12px}
.portal-ui .admin-dialog .link-row {display:flex;flex-wrap:wrap}
.portal-ui .admin-table .help-link {min-height:44px;padding:10px 0;font-size:14px;white-space:normal}
.portal-ui.aax-workspace #portal .project-actions :is(.help-link,.secondary) {font-size:14px;padding:10px 14px;min-height:44px}
.portal-ui .admin-dialog .counter-tools {gap:8px;flex-wrap:wrap}
.portal-ui :is(.account-dialog,.admin-dialog) {padding:28px;border-radius:18px}
.portal-ui :is(.account-dialog,.admin-dialog) .actions {gap:12px;margin-top:24px;padding-top:20px}
.portal-ui .account-dialog .inline-actions button {font-size:14px}
.portal-ui :is(.company-item summary,.company-result summary,.address-manual summary,.settings-box summary,.audit-list summary) {color:var(--ui-action);font-size:16px;line-height:1.5;min-height:44px;padding-block:8px}
.portal-ui .company-item summary small {color:var(--ui-secondary);font-size:14px;padding-top:4px}
.portal-ui .edit-line summary strong {color:var(--ui-text)}
.portal-ui .address-results small {color:var(--ui-secondary)}
.portal-ui .company-item {padding:18px;margin:16px 0}
.portal-ui .company-fields,.portal-ui .price-fields,.portal-ui .line-fields {gap:20px}
.portal-ui .account-heading .link-row {margin-top:0}
.portal-ui.aax-workspace #portal>.account-heading {margin-bottom:24px;padding-bottom:24px}
.portal-ui .workspace-identity>span,.portal-ui .workspace-group>p {color:var(--ui-secondary);font-size:12px;letter-spacing:.05em;line-height:1.5}
.portal-ui .workspace-identity strong {font-size:16px;font-weight:600}
.portal-ui .workspace-menu :is(a,button) {font-size:14px;line-height:1.5;color:var(--ui-action);padding:11px 12px;min-height:44px}
.portal-ui .workspace-menu a[aria-current=page] {color:var(--ui-action-hover);border-color:#ffffff35;background:#ffffff08;font-weight:600}
.portal-ui .workspace-menu a:hover {background:#ffffff0c;color:var(--ui-action-hover)}
.portal-ui .workspace-group {margin-bottom:20px}
.portal-ui .workspace-group>p {margin-bottom:8px}
.portal-ui .workspace-account a,.portal-ui .workspace-account button {font-size:14px}
.portal-ui .workspace-menu-toggle {font-size:15px;min-height:48px;padding:14px 16px}
.portal-ui .workspace-section-links {gap:8px;padding:12px;border-color:var(--ui-border)}
.portal-ui .workspace-section-links a {font-size:14px;padding:10px 12px;min-height:44px;color:var(--ui-action)}
.portal-ui .workspace-layout {grid-template-columns:236px minmax(0,1fr);gap:32px}
.portal-ui .workspace-menu {padding-right:16px}
.portal-ui .panel-meta {gap:16px}
.portal-ui .panel-meta .help-link {font-size:14px}
.portal-ui .topbar {border-color:var(--ui-border);box-shadow:none}
.portal-ui .account-nav {gap:20px}
.portal-ui .account-nav a {font-size:14px;min-height:44px}
.portal-ui .bottom {font-size:13px;letter-spacing:0}
.portal-ui .bottom nav {gap:20px;flex-wrap:wrap}
.portal-ui .bottom a {padding-block:10px;min-height:44px;display:inline-flex}
.portal-ui .totals div {font-size:15px}
.portal-ui .totals div:last-child {font-size:18px}
.portal-ui .choice {border-color:var(--ui-border)}
.portal-ui .choice :is(strong,small) {color:var(--ui-text)}
.portal-ui .choice strong {font-size:16px}
.portal-ui :is(.scopes legend,.quick-choice legend,.number-field>label,.select-field.has-value .select-prompt,.measurement .select-field.has-value .select-prompt) {font-size:13px;color:var(--ui-secondary)}
.portal-ui .step-top {font-size:12px;line-height:1.5;color:var(--ui-secondary)}
.portal-ui .scopes {gap:12px}
.portal-ui .draft-tools {gap:16px;margin-bottom:20px}
.portal-ui .draft-tools .help-link {font-size:14px;white-space:normal}
.portal-ui .map-attribution,.portal-ui .map-attribution a {color:#222;font-size:12px}
.portal-ui .map-controls button {color:#222}
.portal-ui .map-pin {color:white}

@media(max-width:1100px){
  .portal-ui .workspace-layout {gap:24px;grid-template-columns:220px minmax(0,1fr)}
  .portal-ui .attention-grid {grid-template-columns:1fr}
}
@media(max-width:1000px){.portal-ui .workspace-layout{display:block}.portal-ui .workspace-menu{padding:0}.portal-ui.aax-workspace .topbar{max-width:none;margin-inline:20px}}
@media(max-width:650px){
  .portal-ui.aax-workspace .topbar{margin-inline:16px}
  .portal-ui.aax-workspace #portal :is(h1){font-size:28px}
  .portal-ui.aax-workspace #portal :is(h2){font-size:21px}
  .portal-ui :is(.account-dialog,.admin-dialog){padding:22px 18px}
  .portal-ui .account-nav{gap:14px}.portal-ui .account-nav a{font-size:14px}
  .portal-ui .metric-card .metric.compact{font-size:23px}
  .portal-ui .admin-table td{padding:0}.portal-ui .admin-table td:before{font-size:13px}
  .portal-ui .company-actions{gap:12px}.portal-ui .company-actions button{width:100%}
  .portal-ui .workspace-section-links{padding:8px;gap:4px}
  .portal-ui .field-grid{gap:16px}.portal-ui .quick-choice{gap:12px}
  .portal-ui .draft-tools p{max-width:none}.portal-ui .draft-tools{flex-wrap:wrap}
  .site-ui .header-inner{gap:14px}.site-ui .header-account{font-size:14px}
}
@media(prefers-reduced-motion:reduce){body :is(a,button){transition:none!important}}
@media print{body.portal-ui{background:white;color:#111}.portal-ui :is(h1,h2,h3,p,small,.price,.metric){color:#111!important}}
