.ampt-message{background:#F59E0B;color:#111;border:2px solid #12355B;border-radius:14px;padding:24px;width:min(520px,92vw);max-height:85vh;overflow:auto}.ampt-message h2,.ampt-message p{color:#111}.ampt-message::backdrop{background:#10233b66}.ampt-message button{background:#fff;color:#111;border:1px solid #111;min-height:44px}.ampt-message .primary{background:#12355B;color:#fff}.ampt-message input{width:100%;background:#fff;color:#111}.v53-dialog{width:min(780px,94vw);max-height:90vh;overflow:auto;border:1px solid #cdd7e5;border-radius:16px;padding:24px;color:#12355B}.v53-dialog::backdrop{background:#10233b66}.v53-dialog label{display:block;margin:12px 0}.v53-dialog input:not([type=checkbox]),.v53-dialog select,.v53-dialog textarea{width:100%;box-sizing:border-box;padding:10px;border:1px solid #becddd;border-radius:7px}.v53-dialog table{width:100%;border-collapse:collapse}.v53-dialog td,.v53-dialog th{text-align:left;padding:10px;border-bottom:1px solid #dce5ee}.v53-dialog [role=status]{white-space:pre-wrap}.v53-tax-card .form-grid{align-items:end}.v53-table-wrap{overflow:auto}.v53-duplicate{color:#a84900!important;font-weight:bold}.v53-status-bad{color:#9c2727}.v53-cert-row{border-bottom:1px solid #dce5ee;padding:14px 0}.v53-actions{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}.v53-choice{border:2px solid #cdd7e5;background:white;color:#12355B;border-radius:9px;padding:12px;min-height:44px}.v53-choice[aria-pressed=true]{border-color:#1d4f7b;background:#edf4ff}.ampt-select-card{position:relative;padding-left:48px!important}.ampt-select-card:before{content:'';position:absolute;left:16px;top:24px;width:18px;height:18px;border:2px solid #7890a8;border-radius:50%;background:#fff}.ampt-select-card.selected:before{border-color:#1d4f7b;background:radial-gradient(circle,#1d4f7b 0 5px,#fff 6px)}.ampt-select-card.selected{border:2px solid #1d4f7b!important}.ampt-select-card .estimate-select-circle{display:none}.ampt-trial-banner>button{display:none}.v53-spinner{display:inline-block;width:18px;height:18px;border:3px solid #d6e0ec;border-top-color:#1d4f7b;border-radius:50%;animation:v53-spin 1s linear infinite;margin-right:9px;vertical-align:middle}@keyframes v53-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.v53-spinner{animation:none;border-top-color:#f59e0b}}
#invoiceDocument>.ampt-page-actions>h2{flex-basis:100%;order:-2;margin:0}#invoiceDocument>.ampt-page-actions>button:first-child{order:-1}#invoiceDocument>.ampt-page-actions>#sendInvoiceEmail{display:none}#invoicePreview>.actions,#invoicePreview>p.notice{display:none}.ampt-v53-admin{width:min(1200px,96vw);max-height:94vh}.ampt-v53-admin #amptV51Body{min-height:65vh}#accountPanel>#accountOrg{order:0}#accountPanel>#accountUser{order:1}#accountPanel{display:none;flex-direction:column}#accountPanel.open{display:flex}#accountPanel>button,#accountPanel>a{min-height:44px}
@media(max-width:720px){header .nav,header nav,.nav{flex-wrap:wrap;gap:12px}header .nav-actions,.nav-actions{flex:1 1 100%;width:100%;justify-content:flex-start;gap:8px;position:static}header .brand{min-width:0;max-width:100%;overflow-wrap:anywhere}.nav-actions>*{max-width:100%}.v53-dialog{padding:16px}.v53-tax-card .form-grid{grid-template-columns:1fr}}
@media print{.v53-dialog,.ampt-message,.v53-tax-card{display:none!important}}
.v53-loading:before{content:'';display:inline-block;width:16px;height:16px;border:3px solid #ffffff77;border-top-color:#fff;border-radius:50%;animation:v53-spin 1s linear infinite;vertical-align:middle;margin-right:10px}#wizard>.ampt-v51-tax{display:none}#v53AdminPage{max-width:1200px;margin:0 auto}.v53-email-dialog{max-width:560px}
@media(max-width:720px){.navbar,.nav-inner{flex-wrap:wrap}.nav-brand,.logo-link{max-width:100%}}

.estimate-select-card input[type=radio]{appearance:none;width:20px;height:20px;min-width:20px;border:2px solid #7890a8;border-radius:50%;background:#fff}.estimate-select-card input[type=radio]:checked{border-color:#1d4f7b;background:radial-gradient(circle,#1d4f7b 0 5px,#fff 6px)}
@media(max-width:720px){.header .header-inner{grid-template-columns:minmax(0,1fr);gap:14px;padding-top:16px;padding-bottom:16px;min-height:0}.header .header-inner .brand{grid-column:1;justify-self:start}.header .header-inner .nav-actions{grid-column:1;justify-self:start;flex-wrap:wrap;width:100%;margin:0}.header .header-inner>*{min-width:0}.header .header-inner .nav-links{grid-column:1;flex-wrap:wrap}.header .header-inner .language-choice{max-width:130px}}

/* Administration page: full-width structure survives the move out of its dialog. */
#v53AdminPage{width:100%;max-width:1200px;padding:28px 24px 40px;box-sizing:border-box;background:#fff;border-radius:12px;margin:24px auto}
#v53AdminPage>h2{font-size:26px;line-height:1.3;margin:24px 0 0;padding:0 0 18px;border-bottom:2px solid #cbd6e3;width:100%}
#v53AdminPage #amptV51Body{width:100%;min-width:0}
#v53AdminPage .ampt-v51-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:0;padding:26px 0}
#v53AdminPage .ampt-v51-stats>div{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0}
#v53AdminPage .v53-admin-stat-label{font-size:14px;font-weight:600;color:#53667e;line-height:1.4}
#v53AdminPage .ampt-v51-stats b{font-size:34px;font-weight:700;color:#12355b;line-height:1.15}
#v53AdminPage .v53-admin-payment-note{border-top:1px solid #cbd6e3;padding:18px 0 0;margin:0 0 22px;font-size:14px;color:#53667e;line-height:1.6}
#v53AdminPage .ampt-v51-scroll{width:100%;overflow-x:auto;border:1px solid #dce5ee;border-radius:8px}
#v53AdminPage .v53-admin-table{width:100%;min-width:820px;table-layout:fixed;border-collapse:collapse;margin:0}
#v53AdminPage .v53-admin-table thead{background:#121e35;color:#fff}
#v53AdminPage .v53-admin-table th{background:#121e35;color:#fff;text-align:left;font-size:14px;font-weight:650;padding:17px 18px;border:0;line-height:1.4}
#v53AdminPage .v53-admin-table td{text-align:left;vertical-align:top;padding:18px;font-size:14px;line-height:1.55;border:0;border-bottom:1px solid #e1e8f0;overflow-wrap:anywhere;color:#17324f}
#v53AdminPage .v53-admin-table tbody tr:nth-child(even){background:#f4f7fb}
#v53AdminPage .v53-admin-table tbody tr:last-child td{border-bottom:0}
#v53AdminPage .ampt-v51-scroll+p{font-size:12px;color:#5e7185;margin-top:16px;line-height:1.5}
@media(max-width:700px){#v53AdminPage{padding:20px 16px;margin:16px auto}#v53AdminPage .ampt-v51-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px}#v53AdminPage>h2{font-size:23px}#v53AdminPage .ampt-v51-stats b{font-size:30px}}


/* AMP-T brand accents. Keep existing button fills, text and status colors. */
@media screen {
  :root {
    --ampt-button-accent: #d97706;
    --ampt-button-accent-strong: #b45309;
    --ampt-button-accent-glow: rgb(245 158 11 / 20%);
  }
  :is(button, input[type="button"], input[type="submit"], input[type="reset"], a.button, a.btn, [role="button"]):not(.topnav *):where(:not(.danger, .destructive, .success, .warning, .error, .btn-danger, .btn-success, .btn-warning, [data-variant="danger"], [data-variant="success"], [data-variant="warning"], [aria-busy="true"], [aria-disabled="true"], :disabled)) {
    border-color: var(--ampt-button-accent) !important;
    box-shadow: inset 0 0 0 1px var(--ampt-button-accent) !important;
    transition: border-color 140ms ease, box-shadow 140ms ease;
  }

  :is(button, input[type="button"], input[type="submit"], input[type="reset"], a.button, a.btn, [role="button"]):not(.topnav *):where(:not(.danger, .destructive, .success, .warning, .error, .btn-danger, .btn-success, .btn-warning, [data-variant="danger"], [data-variant="success"], [data-variant="warning"], [aria-busy="true"], [aria-disabled="true"], :disabled)):focus-visible {
    outline: 3px solid var(--ampt-button-accent-strong) !important;
    outline-offset: 3px;
  }
}

@media screen and (hover: hover) and (pointer: fine) {
  :is(button, input[type="button"], input[type="submit"], input[type="reset"], a.button, a.btn, [role="button"]):not(.topnav *):where(:not(.danger, .destructive, .success, .warning, .error, .btn-danger, .btn-success, .btn-warning, [data-variant="danger"], [data-variant="success"], [data-variant="warning"], [aria-busy="true"], [aria-disabled="true"], :disabled)):hover {
    border-color: var(--ampt-button-accent-strong) !important;
    box-shadow: inset 0 0 0 1px var(--ampt-button-accent-strong), 0 0 0 3px var(--ampt-button-accent-glow) !important;
  }
  :is(button.secondary, .button.light, a.btn.light):not(.topnav *):where(:not(.primary, .danger, .destructive, .success, .warning, .error, .btn-danger, .btn-success, .btn-warning, [data-variant="danger"], [data-variant="success"], [data-variant="warning"], [aria-busy="true"], [aria-disabled="true"], :disabled)):hover {
    background: #fff7ed !important;
    color: #12355b !important;
  }
  html body button.back:not(.topnav *):where(:not(.danger, .destructive, .success, .warning, .error, [aria-busy="true"], [aria-disabled="true"], :disabled)):hover {
    background: #fff7ed !important;
    color: var(--blue) !important;
  }
}

@media screen and (prefers-reduced-motion: reduce) {
  :is(button, input[type="button"], input[type="submit"], input[type="reset"], a.button, a.btn, [role="button"]):not(.topnav *):where(:not([aria-busy="true"])) {
    transition: none;
  }
}

/* Navigation stays blue; each dropdown shares its parent tab's edges. */
@media screen {
  .topnav .menu > .nav { border-color: transparent; box-shadow: none; }
  .topnav .menu > .nav.active { border-color: transparent; box-shadow: inset 0 -2px #9dc4ef; }
  .topnav .nav.active::after { display: none; }
  .topnav :is(button, a, summary):focus-visible { outline: 2px solid #9dc4ef; outline-offset: -2px; }
  .topnav .menu > .menu-panel {
    position: absolute !important;
    left: 0 !important; right: auto !important; top: 100% !important;
    transform: none !important; width: 100% !important;
    min-width: 0 !important; max-width: 100% !important;
    box-sizing: border-box; margin: 0; padding: 0;
    border-radius: 0 0 6px 6px; overflow-x: hidden; overflow-y: auto;
    max-height: min(70vh, 600px);
  }
  .topnav .menu-panel button,
  .topnav .menu-panel .settings-display-menu > summary {
    box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%;
    margin: 0; border-radius: 0; white-space: normal;
    overflow-wrap: anywhere; text-align: left;
  }
  /* Display choices expand vertically inside Settings, within the same width. */
  .topnav .settings-display-menu > .settings-display-submenu {
    position: static !important; inset: auto !important;
    transform: none !important; width: 100% !important;
    min-width: 0 !important; max-width: 100% !important;
    box-sizing: border-box; padding: 0; margin: 0;
    border: 0; border-radius: 0; box-shadow: none;
    max-height: none !important; overflow: visible;
  }
}

/* Customer card actions share a full-size target; retain brand accents. */
@media screen {
  #customerList .row {
    display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch;
  }
  #customerList .row > button {
    box-sizing: border-box; display: inline-flex; align-items: center;
    justify-content: center; min-height: 48px; min-width: 120px;
    padding: 14px 18px; border: 1px solid var(--line, #ccd7e4);
    border-radius: 12px; font-family: inherit; font-size: 14px;
    line-height: 1.25; font-weight: 700; cursor: pointer;
    background: #fff; color: var(--ink, #12355b); box-shadow: none;
  }
  #customerList .row > button.primary {
    background: var(--blue, #1267d6); color: #fff;
    border-color: var(--blue, #1267d6);
  }
  #customerList .row > button:hover { background: #edf4ff; border-color: #7890a8; }
  #customerList .row > button.primary:hover { background: var(--blue2, #0b55b8); }
  #customerList .row > button:focus-visible {
    outline: 3px solid #1267d6; outline-offset: 3px;
  }
}
@media screen and (max-width: 600px) {
  #customerList .row > button { flex: 1 1 140px; min-width: 0; }
}

/* Consistent action controls — 2026-10-23. Links used as buttons share the same rules.
   Card selectors, calendar dates, icon controls and the blue navigation retain their layout. */
@media screen {
  :root {
    --ampt-control-height: 48px;
    --ampt-control-border: 2px;
    --ampt-control-radius: 8px;
  }
  html body :is(button, input[type="button"], input[type="submit"], input[type="reset"], a.button, a.btn, a.primary, a.secondary, a.pill, a.back):not(.topnav *):not(.card, .ampt-select-card, .ampt-recent-estimate, .display-choice, .background-choice *, .cal-day, .close, .icon-button, .icon-btn, .tour-progress *, [aria-label="Previous month"], [aria-label="Next month"]) {
    box-sizing: border-box !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--ampt-control-height) !important;
    padding: 12px 16px !important;
    border-width: var(--ampt-control-border) !important;
    border-style: solid !important;
    border-radius: var(--ampt-control-radius) !important;
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 20px !important;
    text-decoration: none;
    vertical-align: middle;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    gap: 8px;
  }
  html body :is(button, input[type="button"], input[type="submit"], input[type="reset"], a.button, a.btn, a.primary, a.secondary, a.pill, a.back):not(.topnav *):where(:not(.danger, .destructive, .success, .warning, .error, .btn-danger, .btn-success, .btn-warning, [data-variant="danger"], [data-variant="success"], [data-variant="warning"], [aria-busy="true"], [aria-disabled="true"], :disabled)) {
    border: var(--ampt-control-border) solid var(--ampt-button-accent) !important;
    box-shadow: none !important;
  }
  /* A complete column of equal-width actions in Company Access and team tables. */
  #amptTeamDialog .ampt-v51-scroll td:last-child { min-width: 200px; }
  #amptTeamDialog .ampt-v51-scroll td:last-child > button {
    display: flex;
    width: 100%;
    margin: 6px 0;
  }
  /* Account links such as All workspaces and Change password match other actions. */
  .top #accountPanel > :is(button, a) {
    display: flex;
    width: 100%;
    margin: 8px 0 0 !important;
  }
  /* A visual action style must never make a hidden control visible. */
  html body :is(button, input, a)[hidden] { display: none !important; }
}
@media screen and (hover: hover) and (pointer: fine) {
  html body :is(button, input[type="button"], input[type="submit"], input[type="reset"], a.button, a.btn, a.primary, a.secondary, a.pill, a.back):not(.topnav *):where(:not(.danger, .destructive, .success, .warning, .error, .btn-danger, .btn-success, .btn-warning, [data-variant="danger"], [data-variant="success"], [data-variant="warning"], [aria-busy="true"], [aria-disabled="true"], :disabled)):hover {
    border-color: var(--ampt-button-accent-strong) !important;
    box-shadow: 0 0 0 3px var(--ampt-button-accent-glow) !important;
  }
}

/* Shared form accents cover dynamically rendered customer, pricing and account fields. */
@media screen {
  html body :is(#customerForm, #wizard .ampt-city-customer-columns, #settingsPanel, #amptTeamDialog, .qb-connections, #qbOnline) :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="range"]):not([type="color"]), select, textarea),
  html body :is(#customerSearch, #estimateSearch, #invoiceSearch, #newsState, #amptProjectName) {
    box-sizing: border-box;
    border: 2px solid var(--ampt-button-accent) !important;
    border-radius: 8px;
  }
  html body :is(#customerForm, #wizard .ampt-city-customer-columns, #settingsPanel, #amptTeamDialog, .qb-connections, #qbOnline) :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="range"]):not([type="color"]), select),
  html body :is(#customerSearch, #estimateSearch, #invoiceSearch, #newsState) {
    min-height: 48px;
    padding: 10px 12px;
    font: inherit;
  }
  html body :is(#customerForm, #wizard .ampt-city-customer-columns, #settingsPanel, #amptTeamDialog, .qb-connections, #qbOnline) input[type="checkbox"] {
    accent-color: var(--ampt-button-accent);
    outline: 2px solid var(--ampt-button-accent);
    outline-offset: 1px;
  }
  /* Stable, matching rows in Settings > General, including Payments and Display. */
  #settingsPanel .settings-list > .card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 200px;
    align-items: center;
    gap: 16px;
    min-height: 104px;
    padding: 20px;
    box-sizing: border-box;
  }
  #settingsPanel .settings-list > .card > div { min-width: 0; }
  #settingsPanel .settings-list > .card > div > :is(span,p) { display: block; margin: 6px 0 0; }
  #settingsPanel .settings-list > .card > button { width: 100%; margin: 0; }
  #newsState {
    width: 288px !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
}
@media screen and (max-width: 600px) {
  #settingsPanel .settings-list > .card { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 16px; }
  #settingsPanel .settings-list > .card > button { justify-self: stretch; }
}

/* Account links can arrive with an inline display style; center them consistently. */
@media screen {
  html body .top #accountPanel > :is(button, a) {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
  }
  /* Edit Estimate does not need the new-estimate progress strip under AI actions. */
  #estimate.ampt-edit-estimate > #steps { display: none !important; }
}

/* Question / takeoff scope in Parts AI — Receipts and Plans. */
@media screen {
  html body .ampt-parts-doc textarea[maxlength="1200"] {
    box-sizing: border-box;
    border: 2px solid var(--ampt-button-accent, #d97706) !important;
    border-radius: 8px;
  }
  html body .ampt-parts-doc textarea[maxlength="1200"]:focus-visible {
    outline: 3px solid var(--ampt-button-accent-strong, #b45309);
    outline-offset: 2px;
  }
}

/* V68: Back-button text uses the site's dark navy in every state. */
html body button.back:not(.topnav *) { color: #12355b !important; }
html body button.back:not(.topnav *):hover { color: #12355b !important; }

/* V69: uniform dark-navy Back control at the top of General subpages. */
html body #settingsPanel button[data-ampt-general-back], html body #materials > button.back, html body #amptAccountPage .ampt-account-page-back { color: #12355b !important; }
html body #settingsPanel button[data-ampt-general-back]:hover, html body #materials > button.back:hover, html body #amptAccountPage .ampt-account-page-back:hover { color: #12355b !important; }
