/* Builder Assist architectural workspace theme.
   Load after gen1-operational.css, growify-ui.css and portal-shell.css.
   Colors target real chrome/surface selectors; semantic state colors remain intact. */
:root {
  --pt-ink: #081f43;
  --pt-paper: #f2f7ff;
  --pt-white: #ffffff;
  --pt-soft: #eaf2ff;
  --pt-line: #d8e3f2;
  --pt-muted: #61708a;
  --pt-accent: #1268e7;
  --pt-accent-hover: #0b4fd3;
  --pt-accent-soft: #e8f2ff;
  --pt-on-dark: #f2f7ff;
  --pt-muted-dark: #bdcce1;
  --pt-cyan: #77e4ff;
  --pt-radius: 3px;
  --pt-font: Arial, Helvetica, sans-serif;
  --pt-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.g1o-page {
  --g1-ink: var(--pt-ink); --g1-navy: var(--pt-ink);
  --g1-blue: var(--pt-accent); --g1-cyan: var(--pt-cyan);
  --g1-bg: var(--pt-paper); --g1-line: var(--pt-line);
  --g1-muted: var(--pt-muted); --g1-white: var(--pt-white);
}
.ba-portal {
  --navy: var(--pt-ink); --blue: var(--pt-accent); --cyan: var(--pt-cyan);
  --ink: var(--pt-ink); --muted: var(--pt-muted); --line: var(--pt-line); --soft: var(--pt-soft);
  background: var(--pt-paper);
}
.gw-root {
  --gw-ink: var(--pt-ink); --gw-navy: var(--pt-ink);
  --gw-blue: var(--pt-accent); --gw-blue-dark: var(--pt-accent-hover);
  --gw-cyan: var(--pt-cyan); --gw-bg: var(--pt-paper);
  --gw-line: var(--pt-line); --gw-muted: var(--pt-muted); --gw-white: var(--pt-white);
  border-radius: var(--pt-radius); padding: clamp(12px, 2vw, 24px);
}
:is(.g1o-page, .ba-portal, .phxg-page, .gw-root, .auth-shell) {
  font-family: var(--pt-font); font-size: 16px; line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
:is(.g1o-page, .ba-portal, .phxg-page, .gw-root, .auth-shell) :is(h1,h2,h3) {
  text-wrap: balance;
}
:is(.g1o-page, .ba-portal, .phxg-page, .gw-root, .auth-shell) :is(button,a,input,select,textarea,summary):focus-visible {
  outline: 3px solid var(--pt-accent); outline-offset: 4px;
}
:is(.g1o-page, .ba-portal, .phxg-page, .gw-root, .auth-shell) :is(button,input,select,textarea) {
  border-radius: var(--pt-radius);
}
:is(.g1o-page, .ba-portal, .phxg-page, .gw-root, .auth-shell) :is(button,select,input:not([type=checkbox]):not([type=radio]):not([type=file])) {
  min-height: 44px;
}
:is(.g1o-page, .ba-portal, .phxg-page, .gw-root, .auth-shell) :is(input,select,textarea) {
  accent-color: var(--pt-accent);
}

/* Persistent navigation: ink band, architectural rule, warm active state. */
.g1o-page .g1o-top, .g1o-page .g1o-rail, .ba-portal .ba-topbar {
  background: var(--pt-ink); color: var(--pt-on-dark); backdrop-filter: none;
}
.g1o-page .g1o-top { border-bottom: 1px solid #ffffff2b; gap: 18px; }
.g1o-page .g1o-rail { border-right: 1px solid #ffffff21; padding: 26px 14px; }
.g1o-page .g1o-rail-title, .g1o-page .g1o-top>span,
.g1o-page .g1o-top .portal-brand-lockup small,
.ba-portal .ba-logo small, .ba-portal .ba-topbar>div small {
  color: var(--pt-cyan); letter-spacing: .1em;
}
.g1o-page .g1o-top .portal-account span small,
.g1o-page .g1o-projects small, .g1o-page .g1o-rail-proof small,
.g1o-page .g1o-new-house small, .ba-portal .ba-topbar nav a {
  color: var(--pt-muted-dark);
}
.g1o-page .g1o-top .g1o-back, .g1o-page .g1o-top .portal-sign-out {
  background: transparent; border-color: #ffffff55; border-radius: var(--pt-radius);
  min-height: 44px; color: var(--pt-on-dark);
}
.g1o-page .g1o-top .g1o-back:hover, .g1o-page .g1o-top .portal-sign-out:hover {
  background: #ffffff12; border-color: var(--pt-cyan);
}
.g1o-page .g1o-top :focus-visible, .g1o-page .g1o-rail :focus-visible,
.ba-portal .ba-topbar :focus-visible { outline-color: var(--pt-cyan); }
.g1o-page .g1o-new-house {
  border: 1px solid #77e4ff80; border-radius: var(--pt-radius);
  background: #ffffff08; padding: 16px 12px;
}
.g1o-page .g1o-new-house:hover { background: #ffffff10; transform: none; }
.g1o-page .g1o-new-house i { background: var(--pt-accent); border-radius: var(--pt-radius); }
.g1o-page .g1o-projects .g1o-project-select {
  color: var(--pt-on-dark); border-radius: var(--pt-radius); padding-bottom: 48px;
}
.g1o-page .g1o-projects .g1o-project-select.active {
  background: #ffffff0b; border-color: #77e4ff80; box-shadow: inset 3px 0 var(--pt-cyan);
}
.g1o-page .g1o-projects em { color: var(--pt-cyan); border-radius: 2px; }
.g1o-page .g1o-projects .g1o-project-remove { min-height: 40px; bottom: 2px; }
.ba-portal .ba-logo>b { color: var(--pt-on-dark); background: var(--pt-accent); }
.ba-portal .ba-topbar nav a { display: inline-flex; align-items: center; min-height: 44px; border-radius: 2px; }

/* Gen1 and Assistify: paper work surface and clear project hierarchy. */
.g1o-page .g1o-main { padding-top: 28px; }
.g1o-page .g1o-work-head { margin-top: 30px; margin-bottom: 28px; padding-bottom: 24px; border-bottom: 1px solid var(--pt-line); }
.g1o-page .g1o-work-head h1 { font-size: clamp(36px, 4.4vw, 64px); line-height: 1; letter-spacing: -.055em; }
.g1o-page .g1o-work-head>div:first-child>span,
.g1o-page .g1o-card-head>div>span, .g1o-page .g1o-module-title>div>span,
.g1o-page .g1o-house-chip small, .g1o-page .g1o-file-strip>span,
.g1o-page .g1o-no-projects>span { color: var(--pt-accent); letter-spacing: .1em; }
.g1o-page .g1o-products a { border-radius: var(--pt-radius); box-shadow: none; padding: 15px; }
.g1o-page .g1o-products a:hover { transform: none; border-color: var(--pt-accent); }
.g1o-page .g1o-products a.active { background: var(--pt-ink); border-color: var(--pt-ink); box-shadow: none; }
.g1o-page .g1o-products i { background: var(--pt-soft); color: var(--pt-accent); border-radius: 2px; }
.g1o-page .g1o-products a.active i { color: var(--pt-cyan); }
.g1o-page .g1o-products a.active small { color: var(--pt-muted-dark); }
.g1o-page :is(.g1o-card,.g1o-house-chip,.g1o-module-catalog,.g1o-record,.g1o-bundle,.g1o-loading) {
  border-color: var(--pt-line); border-radius: var(--pt-radius); background: var(--pt-white); box-shadow: none;
}
.g1o-page :is(.g1o-card-head h2,.g1o-module-title h2) { letter-spacing: -.035em; line-height: 1.15; }
.g1o-page :is(.g1o-summary,.g1o-order-summary)>span {
  border-color: var(--pt-line); border-radius: var(--pt-radius); background: var(--pt-white); box-shadow: none;
}
.g1o-page :is(.g1o-summary,.g1o-order-summary)>span.strong {
  background: var(--pt-ink); border-color: var(--pt-ink); color: var(--pt-on-dark);
}
.g1o-page :is(.g1o-summary,.g1o-order-summary) .strong small { color: var(--pt-cyan); }
.g1o-page :is(.g1o-summary,.g1o-order-summary) .strong em { color: var(--pt-muted-dark); }
.g1o-page :is(.g1o-subnav,.g1o-assist-primary,.g1o-assist-secondary,.g1o-file-strip) {
  border-color: var(--pt-line); border-radius: var(--pt-radius); background: var(--pt-white); padding: 6px;
}
.g1o-page .g1o-assist-secondary { background: var(--pt-soft); }
.g1o-page .g1o-grow-nav a,
.g1o-page :is(.g1o-subnav,.g1o-assist-primary,.g1o-assist-secondary,.g1o-grow-nav,.g1o-chips,.g1o-module-groups) button {
  border-radius: 2px; min-height: 44px; color: var(--pt-muted);
}
.g1o-page :is(.g1o-subnav,.g1o-assist-primary,.g1o-assist-secondary,.g1o-grow-nav,.g1o-chips,.g1o-module-groups) button.active {
  background: var(--pt-ink); border-color: var(--pt-ink); color: var(--pt-on-dark);
}
.g1o-page .g1o-assist-primary button.active span { color: var(--pt-cyan); }
.g1o-page :is(.g1o-form-grid,.g1o-record-form,.g1o-finish-form,.g1o-order-totals,.g1o-quote-format,.g1o-fact-review,.g1o-quote-approve) {
  background: var(--pt-soft); border-color: var(--pt-line); border-radius: var(--pt-radius);
}
.g1o-page :is(.g1o-form-grid,.g1o-record-form,.g1o-finish-form,.g1o-search,.g1o-record-controls,.g1o-grow-edit,.g1o-quote-approve,.g1o-fact-review) :is(input,select,textarea),
.g1o-page .g1o-table :is(input:not([type=checkbox]),select) {
  background: var(--pt-white); color: var(--pt-ink); border-color: #b7c7df; border-radius: 2px;
}
.g1o-page .g1o-table { font-variant-numeric: tabular-nums; }
.g1o-page .g1o-table th { background: var(--pt-soft); color: var(--pt-muted); letter-spacing: .05em; padding: 14px 12px; }
.g1o-page .g1o-table td { color: #415675; border-bottom-color: var(--pt-line); padding: 14px 12px; }
.g1o-page .g1o-table td b { color: var(--pt-ink); }
.g1o-page :is(.g1o-table td small,.g1o-file-strip i,.g1o-house-chip span,.g1o-assumptions summary small) { color: var(--pt-muted); }
.g1o-page :is(.g1o-table button,.g1o-est-actions button,.g1o-order-pay button.secondary,.g1o-evidence-head label) {
  background: var(--pt-white); border-color: var(--pt-accent); color: var(--pt-accent);
}
.g1o-page .g1o-card-head>button, .g1o-page .g1o-record-form>button,
.g1o-page .g1o-form-grid button, .g1o-page .g1o-finish-form button,
.g1o-page .g1o-record button:not(.danger), .g1o-page .g1o-grow-edit button:not(.danger),
.g1o-page .g1o-row-actions button:not(.danger), .g1o-page .g1o-order-pay button:not(.secondary),
.g1o-page .g1o-calendar-export, .g1o-page .g1o-plan-viewer>.g1o-card-head a,
.g1o-page .g1o-quote-upload, .g1o-page .g1o-loading button {
  background: var(--pt-accent); border-color: var(--pt-accent); color: #fff; border-radius: 2px;
}
.g1o-page .g1o-card-head>button:hover, .g1o-page .g1o-record-form>button:hover,
.g1o-page .g1o-order-pay button:not(.secondary):hover { background: var(--pt-accent-hover); }
.g1o-page .g1o-link-btn, .g1o-page .g1o-ledger-list button,
.g1o-page .g1o-questions:not(.bad) summary, .g1o-page .g1o-assumptions summary em,
.g1o-page .g1o-accept a { color: var(--pt-accent); }
.g1o-page :is(.g1o-module-card,.g1o-quick-tools button,.g1o-flow-steps>span,.g1o-compare-summary>span,.g1o-kpis span,.g1o-report-grid span) {
  border-color: var(--pt-line); border-radius: var(--pt-radius); background: var(--pt-soft);
}
.g1o-page .g1o-module-card.active { border-color: var(--pt-accent); background: var(--pt-accent-soft); }
.g1o-page :is(.g1o-module-card>i,.g1o-phase summary>i,.g1o-opportunities>div>i) { background: var(--pt-white); color: var(--pt-accent); border-radius: 2px; }
.g1o-page :is(.g1o-module-title>i,.g1o-quick-tools i,.g1o-sync-strip>div,.g1o-calendar-list time) { background: var(--pt-ink); color: var(--pt-on-dark); border-radius: 2px; }
.g1o-page .g1o-sync-strip { background: var(--pt-soft); border-color: var(--pt-line); border-radius: var(--pt-radius); }
.g1o-page .g1o-sync-strip>a { border-color: var(--pt-line); background: var(--pt-white); }
.g1o-page .g1o-sync-strip>a>i { background: var(--pt-accent-soft); color: var(--pt-accent); border-radius: 2px; }
.g1o-page .g1o-market-bar>i>em, .g1o-page .g1o-funnel i { background: var(--pt-accent); }
.g1o-page .g1o-read-log, .g1o-page .g1o-quote-format pre { background: var(--pt-ink); color: var(--pt-on-dark); }
.g1o-page .g1o-plan-read .g1o-read-block:not(.bad) { background: var(--pt-soft); border-color: var(--pt-line); }
.g1o-page .g1o-plan-read .g1o-read-block.live { border-left: 4px solid var(--pt-accent); }
.g1o-page .g1o-toast:not(.bad) { background: var(--pt-ink); color: var(--pt-on-dark); border-radius: 2px; }

/* Shared Admin, Phoenician and supervisor frames. */
.ba-portal .ba-portal-hero { background: var(--pt-paper); border-bottom-color: var(--pt-line); padding-top: clamp(40px,6vw,76px); }
.ba-portal .ba-portal-hero h1 { letter-spacing: -.065em; line-height: .98; }
.ba-portal .ba-portal-hero>aside { border-color: var(--pt-line); background: var(--pt-white); box-shadow: 8px 8px 0 var(--pt-soft); }
.ba-portal .ba-tabs, .phxg-page .phxg-tabs { background: var(--pt-white); border-bottom-color: var(--pt-line); }
.ba-portal .ba-tabs button, .phxg-page .phxg-tabs button { color: var(--pt-muted); padding: 16px; letter-spacing: .05em; }
.ba-portal .ba-tabs button.active, .phxg-page .phxg-tabs button.active { color: var(--pt-accent); border-bottom-color: var(--pt-accent); }
.ba-portal .ba-card, .ba-portal .ba-stat-grid article, .ba-portal .ba-agent-grid .ba-card {
  background: var(--pt-white); border-color: var(--pt-line); border-radius: var(--pt-radius); box-shadow: none;
}
.ba-portal .ba-stat-grid article.accent { background: var(--pt-ink); color: var(--pt-on-dark); border-color: var(--pt-ink); }
.ba-portal .ba-stat-grid .accent span { color: var(--pt-muted-dark); }
.ba-portal .ba-stat-grid .accent small { color: var(--pt-cyan); }
.ba-portal .ba-card header h2, .ba-portal .ba-form header h2 { font-size: 28px; line-height: 1.1; }
.ba-portal .ba-table>div { border-bottom-color: var(--pt-line); padding-block: 14px; }
.ba-portal .ba-table .head { background: var(--pt-soft); color: var(--pt-muted); }
.ba-portal .ba-table :is(input,select), .ba-portal .ba-form :is(input,select,textarea),
.ba-portal .ba-members :is(input,select), .ba-portal .ba-access-filters :is(input,select),
.ba-portal .ba-inline-form :is(input,select) { border-color: #b7c7df; background: var(--pt-white); color: var(--pt-ink); }
.ba-portal .ba-agent-grid aside, .ba-portal .ba-period-controls>div>span,
.ba-portal .ba-boundary-note, .ba-portal .ba-assignment-list>span,
.ba-portal .ba-inline-form, .ba-portal .ba-ledger-table>div.reversal {
  background: var(--pt-soft); border-color: var(--pt-line); color: var(--pt-ink);
}
.ba-portal .ba-card>button:hover, .ba-portal .ba-form>button:hover,
.ba-portal .ba-agent-grid footer button:hover { background: var(--pt-accent-hover); }
.ba-portal .ba-invite-form button, .ba-portal .ba-provider-test button, .ba-portal .ba-inline-form button:not(.text) {
  background: var(--pt-accent); color: white; border-radius: 2px;
}
.ba-portal .ba-inline-form button.text { background: transparent; color: var(--pt-accent); }
.ba-portal .ba-access-gate, .ba-portal .sup-boundary, .ba-portal .sup-hero, .ba-portal .sup-cycle {
  background: var(--pt-ink); color: var(--pt-on-dark);
}
.ba-portal .ba-access-gate span, .ba-portal .sup-hero p { color: var(--pt-muted-dark); }
.ba-portal .sup-hero aside { background: #ffffff08; border-color: #ffffff33; }
.ba-portal .sup-detail aside { background: var(--pt-soft); }
.ba-portal .ba-tool-grid article { background: var(--pt-white); border-color: var(--pt-line); box-shadow: none; }
.ba-portal .ba-tool-grid article::after { background: var(--pt-accent-soft); }
.ba-portal .ba-tool-grid>a:nth-child(2) article { background: var(--pt-ink); }
.ba-portal .ba-tool-grid>a:nth-child(2) article::after { background: #77e4ff12; }
.ba-portal .ba-reset-link input { background: var(--pt-ink); }
.ba-portal .ba-provider-facts code { background: var(--pt-soft); }
.ba-load { background: var(--pt-ink); font-family: var(--pt-font); font-size: 16px; }
.ba-load p { color: var(--pt-muted-dark); }
.ba-load button { background: var(--pt-accent); min-height: 44px; }
.ba-load i { border-top-color: var(--pt-cyan); }

/* Growify CRM: same materials, preserving colored business statuses. */
.gw-root :is(.gw-card,.gw-tiles article,.gw-tabs,.gw-toolbar,.gw-table,.gw-form,.gw-detail-head,.gw-empty,.gw-messages li) {
  border-color: var(--pt-line); border-radius: var(--pt-radius); box-shadow: none;
}
.gw-root :is(.gw-kpis div,.gw-row.head,.gw-row.campaign-report.total) { background: var(--pt-soft); border-color: var(--pt-line); }
.gw-root :is(.gw-tabs button,.gw-subnav button) { border-radius: 2px; }
.gw-root .gw-tabs button:not(.active), .gw-root .gw-subnav button:not(.active) { background: var(--pt-white); color: var(--pt-muted); }
.gw-root .gw-tabs button.active, .gw-root .gw-subnav button.active { background: var(--pt-ink); color: var(--pt-on-dark); }
.gw-root button.secondary, .gw-root .gw-button.secondary { background: var(--pt-soft); color: var(--pt-ink); }
.gw-root .gw-link:not(.danger):hover { background: var(--pt-accent-soft); }
.gw-root .gw-link, .gw-root .gw-button { min-height: 44px; }
.gw-root .gw-note:not(.good):not(.warn), .gw-root .gw-tag { background: var(--pt-accent-soft); color: #0b4fd3; border-radius: 2px; }
.gw-root :is(input:not([type=checkbox]):not([type=radio]),select,textarea) {
  min-height: 44px; border-color: #b7c7df; border-radius: 2px; background: var(--pt-white);
}
.gw-root .gw-row, .gw-root .gw-list li, .gw-root .gw-timeline li { border-bottom-color: var(--pt-line); }
.gw-root .gw-messages li.out { background: var(--pt-soft); border-color: var(--pt-line); }
.gw-root .gw-bars i { background: var(--pt-accent); border-radius: 2px; }
.gw-root .gw-form { border-color: #b7c7df; }
.gw-root .gw-badge { border-radius: 2px; }
.gw-root .gw-skeleton { border-radius: 2px; background: linear-gradient(90deg,#e6eefb,#f2f7ff,#e6eefb); background-size: 200% 100%; }

/* Phoenician Growify uses its own route stylesheet. */
.phxg-page { background: var(--pt-paper); color: var(--pt-ink); }
.phxg-page .phxg-top nav a.active { background: var(--pt-cyan); color: var(--pt-ink); }
.phxg-page .phxg-hero { background: var(--pt-ink); color: var(--pt-on-dark); }
.phxg-page .phxg-hero h1 { line-height: .98; letter-spacing: -.065em; }
.phxg-page .phxg-hero h1 em, .phxg-page .phxg-hero>div>span, .phxg-page .phxg-hero aside b { color: var(--pt-cyan); }
.phxg-page .phxg-hero p, .phxg-page .phxg-hero aside small, .phxg-page .phxg-hero aside span { color: var(--pt-muted-dark); }
.phxg-page .phxg-hero aside { border-color: #ffffff33; background: #ffffff08; }
.phxg-page .phxg-card, .phxg-page .phxg-summary article { border-color: var(--pt-line); background: var(--pt-white); box-shadow: none; border-radius: 2px; }
.phxg-page .phxg-summary article.accent { background: var(--pt-ink); color: var(--pt-on-dark); border-color: var(--pt-ink); }
.phxg-page .phxg-summary .accent span { color: var(--pt-muted-dark); }
.phxg-page .phxg-card header>span { color: var(--pt-accent); }
.phxg-page .phxg-card>button, .phxg-page .phxg-form>button,
.phxg-page .phxg-records button, .phxg-page .phxg-inline-form button:not(.phxg-text) {
  background: var(--pt-accent); border-radius: 2px;
}
.phxg-page .phxg-inline-form button.phxg-text { color: var(--pt-accent); }
.phxg-page :is(.phxg-form,.phxg-records,.phxg-inline-form) :is(input,select,textarea) {
  border-color: #b7c7df; background: var(--pt-white); color: var(--pt-ink); border-radius: 2px;
}
.phxg-page .phxg-report span, .phxg-page .phxg-inline-form, .phxg-page .phxg-ledger-live>div.reversal {
  background: var(--pt-soft); border-color: var(--pt-line);
}

/* Native sign-in, setup and password forms share AuthShell's actual classes.
   The extra shell prefix outranks its inline component stylesheet. */
.auth-shell.auth-shell {
  min-height: 100vh; padding: clamp(24px, 6vw, 80px);
  background-color: var(--pt-ink);
  background-image: linear-gradient(#ffffff0b 1px,transparent 1px),linear-gradient(90deg,#ffffff0b 1px,transparent 1px);
  background-size: 80px 80px;
}
.auth-shell .auth-card {
  width: min(520px,100%); padding: clamp(26px,5vw,48px); gap: 20px;
  color: var(--pt-ink); background: var(--pt-paper); border: 1px solid var(--pt-line);
  border-top: 5px solid var(--pt-accent); border-radius: 0; box-shadow: 16px 16px 0 #00000030;
}
.auth-shell .auth-card h1 { font-size: clamp(32px,4vw,46px); line-height: 1; letter-spacing: -.055em; }
.auth-shell .auth-eyebrow { color: var(--pt-accent); font-family: var(--pt-mono); font-size: 14px; letter-spacing: .08em; }
.auth-shell .auth-lede { color: var(--pt-muted); font-size: 16px; line-height: 1.65; }
.auth-shell .auth-card label { gap: 8px; font-size: 14px; }
.auth-shell .auth-card input { min-height: 50px; background: var(--pt-white); border-color: #b7c7df; border-radius: 2px; font-size: 16px; }
.auth-shell .auth-card button, .auth-shell .auth-button-link { min-height: 50px; background: var(--pt-accent); border-radius: 2px; font-size: 16px; }
.auth-shell .auth-card button:hover:not(:disabled), .auth-shell .auth-button-link:hover { background: var(--pt-accent-hover); }
.auth-shell .auth-switch, .auth-shell .auth-card small { color: var(--pt-muted); font-size: 14px; line-height: 1.6; }
.auth-shell .auth-switch a, .auth-shell .auth-row a { color: var(--pt-accent); font-size: 14px; padding-block: 8px; }
.auth-shell .auth-error, .auth-shell .auth-notice { border-radius: 2px; padding: 14px; font-size: 14px; line-height: 1.6; }
.auth-shell .auth-card :focus-visible { outline: 3px solid var(--pt-accent); outline-offset: 4px; }

/* Legacy portal-entry states share the public document. */
.portal-auth-page, .gen1-page { background: var(--pt-paper); color: var(--pt-ink); }
.portal-auth-header, .portal-auth-card { border-color: var(--pt-line); background: var(--pt-white); box-shadow: none; }
.portal-auth-story { background: var(--pt-ink); }
.portal-auth-story>span, .portal-auth-story h1 em { color: var(--pt-cyan); }
.portal-auth-story>p { color: var(--pt-muted-dark); }
.portal-auth-card>span, .portal-auth-card>small a { color: var(--pt-accent); }
.portal-auth-card>p { color: var(--pt-muted); font-size: 16px; }
.portal-auth-card>small, .portal-auth-header>a:last-child, .portal-auth-story>span, .portal-auth-story>div strong { font-size: 14px; }
.gen1-page .portal-header { background: var(--pt-ink); }
.gen1-page .portal-header .portal-brand-lockup small { color: var(--pt-cyan); }
.portal-header .portal-sign-out { min-height: 44px; font-size: 14px; }

/* Responsive adjustments preserve navigation and table access. */
@media (max-width: 1100px) {
  .g1o-page .g1o-body { grid-template-columns: 240px minmax(0,1fr); }
  .g1o-page .g1o-top { flex-wrap: wrap; }
  .g1o-page .g1o-work-head { align-items: flex-start; flex-wrap: wrap; }
  .g1o-page .g1o-house-chip { min-width: min(100%,280px); }
}
@media (max-width: 900px) {
  .g1o-page .g1o-top { position: relative; }
  .g1o-page .g1o-rail { position: relative; top: auto; height: auto; max-height: none; }
  .g1o-page .g1o-assist-primary { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .ba-portal .ba-topbar { flex-wrap: wrap; height: auto; min-height: 72px; padding-block: 12px; }
  .ba-portal .ba-topbar nav { order: 3; width: 100%; overflow-x: auto; margin-left: 0; }
}
@media (max-width: 720px) {
  .g1o-page .g1o-body { display: block; }
  .g1o-page .g1o-top { position: relative; padding: 14px; gap: 12px; }
  .g1o-page .g1o-top .portal-account { width: 100%; flex-wrap: wrap; justify-content: space-between; }
  .g1o-page .g1o-top .portal-account span { min-width: 0; overflow-wrap: anywhere; }
  .g1o-page .g1o-rail { position: relative; top: auto; height: auto; max-height: none; padding: 16px; }
  .g1o-page .g1o-projects { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(220px,100%),1fr)); overflow: visible; }
  .g1o-page .g1o-main { padding: 24px 14px 56px; }
  .g1o-page .g1o-work-head { margin-top: 24px; }
  .g1o-page .g1o-work-head h1 { font-size: clamp(34px,9vw,48px); }
  .g1o-page .g1o-products { grid-template-columns: 1fr; }
  .g1o-page .g1o-assist-primary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .g1o-page .g1o-card { padding: 18px; }
  .g1o-page .g1o-table-wrap { margin-inline: -18px; margin-bottom: -18px; }
  .g1o-page .g1o-card-head { flex-wrap: wrap; }
  .g1o-page .g1o-card-head>button { width: 100%; }
  .ba-portal .ba-topbar nav { display: flex; }
  .ba-portal .ba-logo>span { display: flex; }
  .ba-portal .ba-topbar>div { max-width: 100%; }
  .ba-portal .ba-content { padding: 24px 14px 56px; }
  .ba-portal .ba-table>div { min-width: 720px; }
  .ba-portal .ba-table { overflow-x: auto; }
  .gw-root .gw-line { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .gw-root .gw-line>button { min-width: 44px; }
  .auth-shell.auth-shell { padding: 22px 16px; }
  .auth-shell .auth-card { padding: 28px 22px; box-shadow: 7px 7px 0 #00000030; }
  .auth-shell .auth-row { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  :is(.g1o-page,.ba-portal,.gw-root,.phxg-page,.auth-shell) { scroll-behavior: auto; }
  :is(.g1o-page,.ba-portal,.gw-root,.phxg-page,.auth-shell) :is(a,button,input,select,textarea) { transition: none; }
}

/* Text floor: explicit selectors from the existing route styles.
   No colors or display states are changed in this compatibility block. */
.g1o-page .g1o-top>span,
.g1o-page .g1o-top .g1o-back,
.g1o-page .g1o-top .portal-account span small,
.g1o-page .g1o-top .portal-account span strong,
.g1o-page .g1o-top .portal-sign-out,
.g1o-page .g1o-rail-title,
.g1o-page .g1o-rail-title b,
.g1o-page .g1o-new-house strong,
.g1o-page .g1o-new-house small,
.g1o-page .g1o-projects span,
.g1o-page .g1o-projects small,
.g1o-page .g1o-projects em,
.g1o-page .g1o-projects .g1o-project-remove,
.g1o-page .g1o-no-projects>span,
.g1o-page .g1o-remove-confirm p,
.g1o-page .g1o-remove-confirm label,
.g1o-page .g1o-remove-confirm input,
.g1o-page .g1o-remove-actions button,
.g1o-page .g1o-rail-proof b,
.g1o-page .g1o-rail-proof small,
.g1o-page .g1o-products i,
.g1o-page .g1o-products b,
.g1o-page .g1o-products small,
.g1o-page .g1o-work-head>div:first-child>span,
.g1o-page .g1o-card-head>div>span,
.g1o-page .g1o-module-title>div>span,
.g1o-page .g1o-work-head p,
.g1o-page .g1o-house-chip small,
.g1o-page .g1o-house-chip b,
.g1o-page .g1o-house-chip span,
.g1o-page .g1o-card-head p,
.g1o-page .g1o-card-head>button,
.g1o-page .g1o-record-form>button,
.g1o-page .g1o-status,
.g1o-page .g1o-assumptions summary b,
.g1o-page .g1o-assumptions summary small,
.g1o-page .g1o-assumptions summary em,
.g1o-page .g1o-form-grid label,
.g1o-page .g1o-record-form label,
.g1o-page .g1o-form-grid input,
.g1o-page .g1o-form-grid select,
.g1o-page .g1o-record-form input,
.g1o-page .g1o-record-form select,
.g1o-page .g1o-record-form textarea,
.g1o-page .g1o-form-grid button,
.g1o-page .g1o-summary small,
.g1o-page .g1o-summary em,
.g1o-page .g1o-file-strip>span,
.g1o-page .g1o-file-strip i,
.g1o-page .g1o-file-strip i small,
.g1o-page .g1o-table th,
.g1o-page .g1o-table td,
.g1o-page .g1o-table td b,
.g1o-page .g1o-table td small,
.g1o-page .g1o-table input:not([type=checkbox]),
.g1o-page .g1o-table button,
.g1o-page .g1o-search input,
.g1o-page .g1o-search b,
.g1o-page .g1o-chips button,
.g1o-page .g1o-compare-row>div:first-child>span,
.g1o-page .g1o-compare-row>div:first-child>b,
.g1o-page .g1o-compare-row>div:first-child>small,
.g1o-page .g1o-rate-grid small,
.g1o-page .g1o-rate-grid b,
.g1o-page .g1o-rate-grid em,
.g1o-page .g1o-kpis small,
.g1o-page .g1o-market-bar span,
.g1o-page .g1o-market-bar b,
.g1o-page .g1o-opportunities h3,
.g1o-page .g1o-opportunities>div>i,
.g1o-page .g1o-opportunities span b,
.g1o-page .g1o-opportunities span small,
.g1o-page .g1o-opportunities strong,
.g1o-page .g1o-finish-total small,
.g1o-page .g1o-subnav button,
.g1o-page .g1o-assist-primary button,
.g1o-page .g1o-assist-secondary button,
.g1o-page .g1o-assist-primary button span,
.g1o-page .g1o-phase-line>i,
.g1o-page .g1o-phase-line span b,
.g1o-page .g1o-phase-line strong,
.g1o-page .g1o-phase summary>i,
.g1o-page .g1o-phase summary span b,
.g1o-page .g1o-phase summary span small,
.g1o-page .g1o-phase summary>em,
.g1o-page .g1o-phase-body>p,
.g1o-page .g1o-phase-body label,
.g1o-page .g1o-phase-body label em,
.g1o-page .g1o-module-card>i,
.g1o-page .g1o-module-card span b,
.g1o-page .g1o-module-card span small,
.g1o-page .g1o-module-card>em,
.g1o-page .g1o-module-title p,
.g1o-page .g1o-capabilities span,
.g1o-page .g1o-record-form h3,
.g1o-page .g1o-record-list h3,
.g1o-page .g1o-record>div b,
.g1o-page .g1o-record>div small,
.g1o-page .g1o-record input,
.g1o-page .g1o-record select,
.g1o-page .g1o-record textarea,
.g1o-page .g1o-grow-edit input,
.g1o-page .g1o-grow-edit select,
.g1o-page .g1o-grow-edit textarea,
.g1o-page .g1o-record button,
.g1o-page .g1o-grow-edit button,
.g1o-page .g1o-sync-strip>div span,
.g1o-page .g1o-sync-strip>div b,
.g1o-page .g1o-sync-strip>div small,
.g1o-page .g1o-sync-strip>a>i,
.g1o-page .g1o-sync-strip>a b,
.g1o-page .g1o-sync-strip>a small,
.g1o-page .g1o-file-strip a,
.g1o-page .g1o-file-strip a small,
.g1o-page .g1o-quick-tools i,
.g1o-page .g1o-quick-tools span b,
.g1o-page .g1o-quick-tools span small,
.g1o-page .g1o-quick-tools em,
.g1o-page .g1o-flow-steps>span i,
.g1o-page .g1o-flow-steps>span b,
.g1o-page .g1o-flow-steps>span small,
.g1o-page .g1o-module-groups button,
.g1o-page .g1o-source-callout b,
.g1o-page .g1o-source-callout small,
.g1o-page .g1o-record header>div b,
.g1o-page .g1o-record header>div small,
.g1o-page .g1o-record header>span b,
.g1o-page .g1o-record header>span small,
.g1o-page .g1o-record-controls label,
.g1o-page .g1o-record-controls input,
.g1o-page .g1o-record-controls select,
.g1o-page .g1o-record-controls textarea,
.g1o-page .g1o-category-select,
.g1o-page .g1o-category-select select,
.g1o-page .g1o-compare-summary small,
.g1o-page .g1o-compare-summary b,
.g1o-page .g1o-live-pill,
.g1o-page .g1o-finish-form label,
.g1o-page .g1o-finish-form input,
.g1o-page .g1o-finish-form button,
.g1o-page .g1o-row-actions button,
.g1o-page .g1o-photo-upload small,
.g1o-page .g1o-evidence-head span b,
.g1o-page .g1o-evidence-head span small,
.g1o-page .g1o-evidence-head label,
.g1o-page .g1o-evidence-grid small,
.g1o-page .g1o-evidence-grid p,
.g1o-page .g1o-calendar-export,
.g1o-page .g1o-plan-viewer>.g1o-card-head a,
.g1o-page .g1o-calendar-ready>i,
.g1o-page .g1o-calendar-ready b,
.g1o-page .g1o-calendar-ready small,
.g1o-page .g1o-calendar-list time small,
.g1o-page .g1o-calendar-list>button>span i,
.g1o-page .g1o-calendar-list>button>span b,
.g1o-page .g1o-calendar-list>button>span small,
.g1o-page .g1o-calendar-list>button>em,
.g1o-page .g1o-plan-pane>header b,
.g1o-page .g1o-spatial-pane>header b,
.g1o-page .g1o-plan-pane>header small,
.g1o-page .g1o-spatial-pane>header small,
.g1o-page .g1o-plan-pane>header label,
.g1o-page .g1o-spatial-pane>header span,
.g1o-page .g1o-spatial-facts small,
.g1o-page .g1o-spatial-facts b,
.g1o-page .g1o-model-pending span,
.g1o-page .g1o-events span b,
.g1o-page .g1o-events span small,
.g1o-page .g1o-events>div>em,
.g1o-page .g1o-action-list b,
.g1o-page .g1o-action-list small,
.g1o-page .g1o-lead div b,
.g1o-page .g1o-lead div small,
.g1o-page .g1o-lead>span,
.g1o-page .g1o-lead>em,
.g1o-page .g1o-grow-record-head b,
.g1o-page .g1o-grow-record-head small,
.g1o-page .g1o-grow-record-head strong,
.g1o-page .g1o-report-grid small,
.g1o-page .g1o-funnel span,
.g1o-page .g1o-funnel b,
.g1o-page .g1o-connection-steps small,
.g1o-page .g1o-empty,
.g1o-page .g1o-toast,
.g1o-page .g1o-busy:after,
.g1o-page .g1o-quote-upload,
.g1o-page .g1o-quote-state small,
.g1o-page .g1o-quote-state b,
.g1o-page .g1o-quote-state em,
.g1o-page .g1o-quote-state>a,
.g1o-page .g1o-quote-list span b,
.g1o-page .g1o-quote-list span small,
.g1o-page .g1o-quote-list em,
.g1o-page .g1o-quote-list a,
.g1o-page .g1o-quote-list button,
.g1o-page .g1o-quote-format summary,
.g1o-page .g1o-quote-format pre,
.g1o-page .g1o-ledger-note,
.g1o-page .g1o-ledger-list span b,
.g1o-page .g1o-ledger-list span small,
.g1o-page .g1o-ledger-list em,
.g1o-page .g1o-ledger-list strong,
.g1o-page .g1o-ledger-list button,
.g1o-page .g1o-ledger-head a,
.g1o-page .g1o-ledger-head span,
.g1o-page .g1o-create-drawer>summary,
.g1o-page .g1o-quote-list>div>details summary,
.g1o-page .g1o-quote-facts>span b,
.g1o-page .g1o-quote-facts>span small,
.g1o-page .g1o-quote-facts>span em,
.g1o-page .g1o-quote-facts>p,
.g1o-page .g1o-fact-review>p,
.g1o-page .g1o-quote-approve>p,
.g1o-page .g1o-fact-review label,
.g1o-page .g1o-quote-approve label,
.g1o-page .g1o-fact-review textarea,
.g1o-page .g1o-quote-approve textarea,
.g1o-page .g1o-quote-list .g1o-fact-decision button,
.g1o-page .g1o-quote-list .g1o-fact-actions button,
.g1o-page .g1o-quote-list .g1o-quote-approve-actions button,
.g1o-page .g1o-plan-read .g1o-read-block p,
.g1o-page .g1o-plan-read .g1o-read-block button,
.g1o-page .g1o-plan-read .g1o-read-block code,
.g1o-page .g1o-read-log,
.g1o-page .g1o-read-facts small,
.g1o-page .g1o-sheet-thumb,
.g1o-page .g1o-questions,
.g1o-page .g1o-fine,
.g1o-page .g1o-link-btn,
.g1o-page .g1o-group-head,
.g1o-page .g1o-est-actions button,
.g1o-page .g1o-conf,
.g1o-page .g1o-verify,
.g1o-page .g1o-est-table td small,
.g1o-page .g1o-grow-nav button,
.g1o-page .g1o-grow-nav a,
.g1o-page .g1o-order-summary small,
.g1o-page .g1o-order-summary em,
.g1o-page .g1o-bundle>header span,
.g1o-page .g1o-bundle>p,
.g1o-page .g1o-order-table select,
.g1o-page .g1o-order-totals>div,
.g1o-page .g1o-order-totals>p,
.g1o-page .g1o-order-pay button,
.g1o-page .g1o-order-pay small,
.g1o-page .g1o-order-pay em,
.gw-root .gw-tabs button,
.gw-root .gw-scope,
.gw-root .gw-loading,
.gw-root .gw-alert,
.gw-root .gw-alert button,
.gw-root .gw-note,
.gw-root .gw-muted,
.gw-root .gw-card>header span,
.gw-root .gw-tiles small,
.gw-root .gw-tiles span,
.gw-root .gw-kpis small,
.gw-root .gw-kpis span,
.gw-root .gw-bars li,
.gw-root .gw-bars b,
.gw-root .gw-list li,
.gw-root .gw-list li span,
.gw-root .gw-empty span,
.gw-root .gw-search span,
.gw-root .gw-select span,
.gw-root .gw-form label>span,
.gw-root .gw-check,
.gw-root button:not(.gw-link),
.gw-root .gw-button,
.gw-root .gw-link,
.gw-root .gw-form-error,
.gw-root .gw-row,
.gw-root .gw-row.head,
.gw-root .gw-row>span small,
.gw-root .gw-row select,
.gw-root .gw-tag,
.gw-root .gw-chip,
.gw-root .gw-badge,
.gw-root .gw-pager,
.gw-root .gw-detail-head span,
.gw-root .gw-timeline li,
.gw-root .gw-timeline li span,
.gw-root .gw-threads span,
.gw-root .gw-threads small,
.gw-root .gw-messages header,
.gw-root .gw-messages footer,
.gw-root .gw-proposal-lines table,
.ba-portal .ba-logo small,
.ba-portal .ba-topbar nav a,
.ba-portal .ba-topbar>div small,
.ba-portal .ba-topbar>div strong,
.ba-portal-hero>div>span,
.ba-portal .ba-card header>span,
.ba-portal .ba-form header>span,
.ba-portal-hero>aside small,
.ba-portal-hero>aside span,
.ba-portal .ba-tabs button,
.ba-portal .ba-stat-grid small,
.ba-portal .ba-stat-grid span,
.ba-portal .ba-form label,
.ba-portal .ba-alert,
.ba-portal .ba-table>div,
.ba-portal .ba-table .head,
.ba-portal .ba-table select,
.ba-portal .ba-table button.text,
.ba-portal .ba-list span small,
.ba-portal .ba-list strong small,
.ba-portal .ba-list select,
.ba-portal .ba-list em,
.ba-portal .ba-agent-grid ul,
.ba-portal .ba-agent-grid aside,
.ba-portal .ba-agent-grid footer,
.ba-portal .ba-agent-grid footer button,
.ba-portal .ba-access-gate small,
.ba-portal .ba-access-gate span,
.ba-portal .ba-access-gate em,
.ba-portal .ba-access-filters label,
.ba-portal .ba-access-filters>span,
.ba-portal .ba-access-evidence dl div,
.ba-portal .ba-project-context span b,
.ba-portal .ba-project-context a,
.ba-portal .ba-project-context button,
.ba-portal .ba-period-controls label,
.ba-portal .ba-period-controls>div>span small,
.ba-portal .ba-period-grid article em,
.ba-portal .ba-members>section>div span,
.ba-portal .ba-members>section>div em,
.ba-portal .ba-assignment-list small,
.ba-portal .sup-hero>div>span,
.ba-portal .sup-section-head span,
.ba-portal .sup-hero aside small,
.ba-portal .sup-hero aside span,
.ba-portal .sup-hero aside i,
.ba-portal .sup-cycle b,
.ba-portal .sup-cycle span,
.ba-portal .sup-plan label,
.ba-portal .sup-boundary dl div,
.ba-portal .sup-records summary span small,
.ba-portal .sup-detail li span small,
.ba-portal .sup-detail aside span,
.ba-portal .sup-status,
.ba-portal .sup-section-head p,
.ba-portal .sup-registry-grid .ba-card>p,
.ba-portal .sup-load span,
.ba-portal .sup-catalog p span,
.ba-portal .sup-budget-grid small,
.ba-portal .sup-budget-grid span,
.ba-portal .sup-budget-grid em,
.ba-portal .ba-tool-grid span,
.ba-portal .ba-tool-grid ul,
.ba-portal .ba-tool-grid article>b,
.ba-portal .ba-boundary-note span,
.ba-portal .ba-boundary-note p,
.ba-portal .ba-invite-form label,
.ba-portal .ba-row-actions button,
.ba-portal .ba-reset-link input,
.ba-portal .ba-provider-state,
.ba-portal .ba-provider-facts,
.ba-portal .ba-provider-facts code,
.ba-portal .ba-provider-test label,
.ba-portal .ba-provider-result,
.ba-portal .ba-ledger-table>div>span:nth-child(2) small,
.ba-portal .ba-status,
.ba-portal .ba-ledger-controls small,
.ba-portal .ba-inline-form label,
.ba-portal .ba-inline-form button,
.ba-portal .ba-inline-form small,
.phxg-page .phxg-hero>div>span,
.phxg-page .phxg-hero aside small,
.phxg-page .phxg-hero aside span,
.phxg-page .phxg-tabs button,
.phxg-page .phxg-summary small,
.phxg-page .phxg-summary span,
.phxg-page .phxg-card header>span,
.phxg-page .phxg-card header p,
.phxg-page .phxg-card>p,
.phxg-page .phxg-switch a,
.phxg-page .phxg-form label,
.phxg-page .phxg-records label,
.phxg-page .phxg-form input,
.phxg-page .phxg-form select,
.phxg-page .phxg-form textarea,
.phxg-page .phxg-records input,
.phxg-page .phxg-records select,
.phxg-page .phxg-records textarea,
.phxg-page .phxg-leads span small,
.phxg-page .phxg-ledger span small,
.phxg-page .phxg-leads em,
.phxg-page .phxg-ledger em,
.phxg-page .phxg-ledger button,
.phxg-page .phxg-report small,
.phxg-page .phxg-empty,
.phxg-page .phxg-accounting li,
.phxg-page .phxg-readiness b,
.phxg-page .phxg-readiness em,
.phxg-page .phxg-ledger-controls small,
.phxg-page .phxg-ledger-controls button,
.phxg-page .phxg-inline-form label,
.phxg-page .phxg-inline-form small,
.phxg-page .phxg-download { font-size: 14px; }

/* Body copy and inputs stay comfortable while captions retain the 14px floor. */
.g1o-page .g1o-work-head p, .g1o-page .g1o-card-head p,
.g1o-page .g1o-no-projects p, .g1o-page .g1o-plan-read .g1o-read-block p,
.g1o-page .g1o-record p, .g1o-page .g1o-order-totals>p,
.g1o-page .g1o-fact-review>p, .g1o-page .g1o-quote-approve>p,
.ba-portal .ba-card>p, .ba-portal .ba-agent-grid ul,
.ba-portal .ba-portal-hero p, .ba-portal .sup-hero p,
.phxg-page .phxg-card header p, .phxg-page .phxg-card>p,
.phxg-page .phxg-hero p, .gw-root .gw-messages p,
.gw-root .gw-empty span { font-size: 16px; line-height: 1.65; }
.g1o-page.g1o-page input:not([type=checkbox]):not([type=radio]):not([type=file]),
.g1o-page.g1o-page select, .g1o-page.g1o-page textarea,
.ba-portal.ba-portal input:not([type=checkbox]):not([type=radio]):not([type=file]),
.ba-portal.ba-portal select, .ba-portal.ba-portal textarea,
.phxg-page.phxg-page input:not([type=checkbox]):not([type=radio]):not([type=file]),
.phxg-page.phxg-page select, .phxg-page.phxg-page textarea,
.gw-root.gw-root input:not([type=checkbox]):not([type=radio]):not([type=file]),
.gw-root.gw-root select, .gw-root.gw-root textarea { font-size: 16px; line-height: 1.4; }
:is(.g1o-page,.ba-portal,.phxg-page,.gw-root,.auth-shell) button { min-width: 44px; }
@media (min-width: 901px) {
  .gw-root .gw-line { grid-template-columns: minmax(0,2fr) 90px 90px 120px 44px; }
  .gw-root .gw-conditions .gw-line { grid-template-columns: minmax(0,1.4fr) 120px minmax(0,1.4fr) 44px; }
}
/* Continuous blue edges give the working cards a clear hierarchy. */
.g1o-page:not([data-workspace-tool="growify"]) .g1o-main > .g1o-card,
.g1o-page [data-build-section] > .g1o-card:not(.g1o-partner-callout),
.g1o-page [data-build-section] > .g1o-assumptions,
.g1o-page [data-build-section] > :is([data-estimate-zone],[data-order-zone],[data-plan-read-zone]) > .g1o-card{border-top:3px solid #2563eb;border-left:3px solid #2563eb;box-shadow:0 7px 22px #081f430b;border-radius:10px}
.g1o-page .g1o-inline-catalog iframe{height:500px;max-height:none;min-height:0}
.g1o-page .g1o-rail-title{font-size:15px;letter-spacing:.1em;margin:0 0 18px}.g1o-page .g1o-rail-title b{font-size:13px;min-width:28px;line-height:28px;height:28px}
.g1o-page .g1o-upload-card{padding:17px;border:1px solid #2c507b;border-top:3px solid #3880ff;border-left:3px solid #3880ff;border-radius:13px;background:linear-gradient(135deg,#142f56,#0d2548);box-shadow:0 9px 25px #0002;margin-bottom:20px}
.g1o-page .g1o-upload-plan{display:block;font-size:13px;font-weight:700;color:#77e4ff;margin-bottom:14px}
.g1o-page .g1o-new-house{display:grid;grid-template-columns:35px 1fr;align-items:center;gap:2px 10px;width:100%;padding:13px;border:0;border-radius:9px;background:#1765e8;text-align:left;color:white}.g1o-page .g1o-new-house i{grid-row:1/3;font-size:28px;width:32px;height:32px;background:none;display:flex;align-items:center}.g1o-page .g1o-new-house strong{font-size:16px;line-height:1.3}.g1o-page .g1o-new-house small{grid-column:2;font-size:12px;line-height:1.5;color:#e6efff;margin:0}
.g1o-allowances{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.g1o-allowances>div{display:grid;gap:6px;padding:12px 9px;background:#061a34;border-radius:8px;border:1px solid #28476b}.g1o-allowances strong{font-size:24px;color:white;line-height:1.2}.g1o-allowances strong small{font-size:14px}.g1o-allowances span{font-size:12px;color:#d9e8fb;font-weight:700}.g1o-allowances small{font-size:10px;color:#a6bddb;line-height:1.4}
.g1o-page .g1o-project-summary{border:1px solid #2c507b;border-radius:12px;overflow:hidden;background:#102b4e}.g1o-page .g1o-projects .g1o-project-select{padding:17px;border:0;border-left:3px solid transparent;border-radius:0;display:grid;gap:8px;background:transparent}.g1o-page .g1o-projects .g1o-project-select.active{border-color:#60d6ff;background:#18385f;box-shadow:none}.g1o-page .g1o-project-select>span{font-size:16px;line-height:1.35;padding:0}.g1o-page .g1o-project-select small{font-size:12px;line-height:1.5;color:#b6cbe5}.g1o-page .g1o-project-select em{position:static;justify-self:start;font-size:9px;font-weight:700;letter-spacing:.07em;padding:5px 8px;border-radius:5px;background:#244c76}.g1o-page .g1o-project-remove{font-size:11px;padding:9px 17px;color:#edb7c0;text-transform:none;letter-spacing:0}.g1o-page .g1o-rail-proof{font-size:13px;padding-top:18px}.g1o-page .g1o-rail-proof small{font-size:12px;line-height:1.7}
.g1o-page .g1o-package-products{margin:0 0 24px;border:1px solid #c5d8f3;border-radius:10px;overflow:hidden}.g1o-package-products>iframe{display:block;width:100%;height:500px;border:0;background:white}
.g1o-package-products{padding:18px}.g1o-package-item{display:grid;grid-template-columns:110px minmax(0,1fr);gap:20px;padding:18px 0;border-bottom:1px solid #d8e4f7}.g1o-package-photo{width:110px;min-height:100px;background:#f5f8fc;border-radius:9px;display:grid;place-items:center;overflow:hidden}.g1o-package-photo img{display:block;width:100%;height:110px;object-fit:contain}.g1o-package-photo span{font-size:11px;color:#597394;text-align:center;padding:10px}.g1o-package-item h4{margin:5px 0;font-size:17px}.g1o-package-item p{font-size:13px;line-height:1.5;margin:5px 0}.g1o-package-item small{font-size:11px;line-height:1.5;color:#557197}.g1o-package-products>button{margin:18px 0 0;border-radius:7px}@media(max-width:550px){.g1o-package-item{grid-template-columns:80px minmax(0,1fr);gap:12px}.g1o-package-photo{width:80px}}

/* Keep the project title and actions separate, without duplicate metadata. */
.g1o-page .g1o-project-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 14px 14px;min-width:0}
.g1o-page .g1o-project-footer em{position:static;font-size:14px;line-height:1.4;font-style:normal;font-weight:600;text-transform:capitalize;letter-spacing:0;padding:0;background:none;color:#9bdfff}
.g1o-page .g1o-projects .g1o-project-remove{position:static;flex-shrink:0;width:auto;min-height:36px;padding:7px 10px;border:1px solid #edb3b3;border-radius:7px;background:#ffe5e5;color:#8b2028;font-size:14px;line-height:1.4;text-transform:none;letter-spacing:0}
.g1o-page .g1o-projects .g1o-project-remove:hover{background:#ffd0d0;color:#6e1620;text-decoration:none}
.ba-portal:is(.ba-phoenician,.ba-gen1-entry) > .ba-topbar{height:auto;min-height:104px;padding-block:20px;gap:24px;flex-wrap:wrap}
.ba-portal:is(.ba-phoenician,.ba-gen1-entry) > .ba-topbar > .ba-entry-account{display:flex;flex-direction:row;align-items:center;gap:18px;min-width:0;max-width:100%;margin-left:auto}
.ba-entry-account > span{display:grid;gap:4px;min-width:0;text-align:right}
.ba-entry-account small{color:#77e4ff;font-size:14px;letter-spacing:.06em}
.ba-entry-account strong{color:white;font-size:16px;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
.ba-entry-account .ba-signout-form{flex-shrink:0}
.ba-entry-account .ba-signout-form button{white-space:nowrap}
.ba-phoenician.ba-portal .ba-portal-hero h1{line-height:1.08;letter-spacing:-.045em}
@media(max-width:720px){.ba-portal:is(.ba-phoenician,.ba-gen1-entry) > .ba-topbar{padding-block:18px}.ba-portal:is(.ba-phoenician,.ba-gen1-entry) > .ba-topbar > .ba-entry-account{width:100%;justify-content:space-between;margin:0}.ba-entry-account > span{text-align:left}}
