/* Compact signed-in workspace, using the public site's palette and system type. */
.account-page { --ink:#1d1d1f; --secondary:#6e6e73; --brand:#f5df4d; --grey:#f5f5f7; --line:#e5e5ea; --blue:#0066cc; --header-height:64px; background:var(--grey); color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:14px; line-height:1.45; }
.account-page :where(h1,h2,h3,h4,p,div,span,a,button,input,select,textarea,label,th,td) { font-family:inherit; }
.account-page h1 { font-size:28px; line-height:1.15; letter-spacing:-.8px; }
.account-page h2 { font-size:23px; line-height:1.2; letter-spacing:-.6px; font-weight:650; }
.account-page h3 { font-size:18px; letter-spacing:-.3px; }
.account-page .main-body-wrapper { width:calc(100% - 48px); max-width:1320px; margin:84px auto 24px; padding:0; }
.account-page .h-100 { height:auto !important; }
.account-page .mb-br { margin-bottom:16px; }
.account-page .blue-link { color:var(--blue); }
.account-page :is(button,a,input):focus-visible { outline:3px solid #0066cc66; outline-offset:3px; }
/* Preserve the existing authenticated header actions and notification basket. */
.signed-in-header.header { max-width:none; height:64px; background:rgba(255,255,255,.97); border-bottom:1px solid #e5e5ea; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.signed-in-header .header-content { max-width:1368px; padding:0 24px; }
.signed-in-header .nav-links { gap:22px; justify-content:flex-end; }
.signed-in-header .nav-links > li:first-child { margin-right:auto; }
.signed-in-header .logo { display:flex; align-items:center; gap:8px; font-size:19px; font-weight:700; letter-spacing:-.7px; color:#1d1d1f; }
.signed-in-header .nav-link { font-size:13px; font-weight:500; padding:8px 0; color:#515154; border-radius:0; }
.signed-in-header .active-link { color:#1d1d1f; border-bottom:2px solid #f5df4d; background:transparent; }
.signed-in-header .basket-img { width:23px; height:23px; filter:grayscale(1); }
.signed-in-header .submit-btn, .account-page :is(.submit-btn,.login-btn,.submit) { background:#f5df4d; color:#1d1d1f; border:0; border-radius:100px; padding:10px 20px; min-height:38px; font-size:13px; font-weight:600; box-shadow:none; line-height:1.3; }
.account-page :is(.submit-btn,.login-btn):hover { background:#ecd53d; }
.account-page.estimate-detail-page button.estimate-add-sum-btn,
.account-page.estimate-detail-page button.estimate-add-sum-btn:hover {
  background:#f7d72b;
  color:var(--ink);
}
.account-page .login-btn { margin:8px 0; }
.account-page .btn-disabled, .account-page button:disabled { opacity:.5; cursor:not-allowed; }
/* Dashboard navigation and content. */
.account-page .account-workspace { display:flex; align-items:flex-start; gap:18px; position:relative; min-height:calc(100dvh - 190px); }
.account-page .account-sidebar { flex:0 0 190px; border:1px solid var(--line); border-radius:18px; background:#fff; overflow:hidden; }
.account-page .dashboard-card-grid { width:100%; height:auto; padding:12px !important; gap:4px; }
.account-page .workspace-label { font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:var(--secondary); padding:6px 10px 10px; font-weight:600; }
.account-page .dashboard-service-card { position:relative; display:flex; align-items:center; justify-content:flex-start; gap:6px; min-height:42px; height:auto; width:100%; padding:11px 10px; margin:0; border:0; border-radius:10px; box-shadow:none; font-size:13px; font-weight:550; color:var(--ink); background:transparent; cursor:pointer; }
.account-page .dashboard-service-card:hover { background:var(--grey); }
.account-page .dashboard-service-card.service-card-active { background:#faf2bd; color:var(--ink); }
.account-page .dashboard-card-number { top:9px; right:8px; width:auto; min-width:22px; height:22px; padding:0 5px; display:flex; justify-content:center; align-items:center; border-radius:7px; background:#bd3d32; }
.account-page .dashboard-card-number p { font-size:10px; line-height:1; }
.account-page .dashboard-card-number.bg-eol-blue { background:#edf2fa; color:#0066cc; }
.account-page .dashboard-menu-item { padding:9px 12px; min-height:34px; font-size:12px; border:0; border-radius:8px; margin:2px 0; color:var(--secondary); }
.account-page .dashboard-menu-item-active { background:#faf2bd; color:var(--ink); font-weight:600; }
.account-page .dashboard-content-panel { height:auto !important; overflow:visible !important; }
.account-page .pricing-dashboard-content-parent { min-width:0; }
.account-page .pricing-dashboard-content-wrapper { height:auto; overflow:visible; padding:0; }
.account-page .account-overview { flex:1; min-width:0; background:#fff; border:1px solid var(--line); border-radius:18px; padding:28px; }
.account-page .overview-heading p { color:var(--secondary); margin:8px 0 20px; }
.account-page .overview-actions { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.account-page .overview-actions button { text-align:left; padding:18px; border:1px solid var(--line); background:var(--grey); border-radius:14px; color:var(--ink); cursor:pointer; }
.account-page .overview-actions strong { display:block; font-size:26px; letter-spacing:-1px; margin-bottom:6px; }
.account-page .overview-actions span { font-size:13px; }
/* Dense, readable tables with native horizontal overflow at narrow sizes. */
.account-page :is(.estimates-component-table,.accounts-component-table) { background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; }
.account-page .account-table-toolbar { margin:0 !important; padding:18px 20px; gap:14px; align-items:center; border-bottom:1px solid var(--line); }
.account-page .account-table-toolbar p { font-size:12px; color:var(--secondary); margin-top:4px; }
.account-page .v-table { --v-table-header-height:40px; --v-table-row-height:52px; font-size:13px; color:var(--ink); }
.account-page .v-table th { background:#f7f7f9; font-size:11px; color:#6e6e73; font-weight:600 !important; white-space:normal; }
.account-page .v-table td { padding:9px 14px !important; border-color:#eeeef1 !important; line-height:1.45; }
.account-page .v-table tbody tr:hover { background:#fafafc; }
.account-page .v-table td p { font-size:inherit; }
.account-page .v-table .v-table__wrapper { overflow:auto; }
.account-page .v-data-table__tr--mobile { height:auto; }
.account-page .v-data-table-footer { padding:8px 16px; font-size:12px; }
/* Profile sections and Vuetify controls. */
.account-page .associated-choice { width:100%; max-width:none; min-height:0; margin:0; padding:22px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.account-page .profile-details-row { gap:20px !important; }
.account-page .profile-details-panel { --profile-details-inset:12px; }
.account-page .profile-details-label { display:block; padding-inline:var(--profile-details-inset); margin-bottom:2px; font-size:13px; line-height:1.4; font-weight:700; color:var(--ink); }
.account-page .profile-details-panel .v-field { --v-field-padding-start:var(--profile-details-inset); --v-field-padding-end:var(--profile-details-inset); }
.account-page .v-field { border-radius:8px; font-size:13px; --v-field-padding-start:12px; --v-field-padding-end:12px; }
.account-page .v-field__outline { --v-field-border-opacity:.18; }
/* Keep normal input borders steady when hovered or focused. */
.account-page .v-field:not(.v-field--error):not(.v-field--disabled):is(:hover,.v-field--focused) .v-field__outline {
  --v-field-border-opacity:.18;
  --v-field-border-width:1px;
  color:var(--ink);
}
.account-page .v-input { font-size:13px; }
.account-page .v-label { font-size:13px; }
.account-page .v-input__details { min-height:16px; padding-top:3px; }
.account-page .profile-input { margin-bottom:10px; }
.account-page .grid-container { gap:0; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.account-page .grid-item { padding:8px 12px; min-height:42px; font-size:13px; background:#fff; border-bottom:1px solid var(--line); }
.account-page .grid-header { background:var(--grey); font-size:12px; font-weight:600; }
.account-page .pricing-menu-wrapper.profile-menu-wrapper { width:190px; background:#fff; border:1px solid var(--line); border-radius:16px; margin-right:18px; padding:10px; }
.account-page .v-card { border-radius:18px; }
.account-page .v-btn { text-transform:none; letter-spacing:0; border-radius:9px; font-size:13px; }
.account-page .back-button { color:var(--blue); margin:0 0 12px; }
/* Seven-step drawing submission. */
.account-page .drawing-flow { max-width:1100px; margin:0 auto; }
.account-page .drawing-heading { margin:0 0 18px; }
.account-page .drawing-heading p { color:var(--secondary); margin-top:6px; }
.account-page .breadcrumb-wrapper { background:#fff; border:1px solid var(--line); border-radius:14px; padding:10px 14px; }
.account-page .breadcrumb { gap:8px; padding:0; }
.account-page .breadcrumb-item { display:flex; align-items:center; gap:7px; font-size:12px; padding:7px 10px; border-radius:9px; }
.account-page .breadcrumb-item.active { background:#faf2bd; color:var(--ink); font-weight:600; }
.account-page .step-number { width:21px; height:21px; border-radius:50%; background:var(--grey); display:inline-flex; align-items:center; justify-content:center; font-size:11px; }
.account-page .breadcrumb-item.active .step-number { background:var(--brand); }
.account-page .upload-info { margin:16px 0; padding:24px; background:#fff; border:1px solid var(--line); border-radius:18px; }
.account-page .upload-info__title { font-size:19px; line-height:1.3; letter-spacing:-.4px; }
.account-page .upload-info p { max-width:850px; }
.account-page .upload-checkbox { color:var(--ink); }
.account-page .upload-info .v-selection-control { min-height:40px; }
.account-page .date-grid { gap:10px; }
.account-page .date-card { border-radius:12px; padding:14px; }
.account-page .footer.custom-footer { position:static; background:transparent; border-top:1px solid var(--line); padding:12px 24px; margin-top:24px; }
.account-page .footer-container { max-width:1320px; padding:0; }
.account-page .footer-copyright, .account-page .footer-link { font-size:11px; color:var(--secondary); }
.account-page .footer-logo { max-width:160px; max-height:35px; }
@media (max-width:1000px) {
 .signed-in-header .nav-links { gap:14px; }
 .signed-in-header .logo { font-size:17px; }
 .account-page .main-body-wrapper { width:calc(100% - 32px); }
 .account-page .account-sidebar { flex-basis:166px; }
 .account-page .account-table-toolbar { flex-wrap:wrap; }
}
@media (max-width:768px) {
 .signed-in-header .header-content { padding:0 16px; }
 .signed-in-header .nav-links { top:64px; padding:16px; border-bottom:1px solid #e5e5ea; background:#fff; gap:12px; }
 .signed-in-header .nav-links > li:first-child { margin-right:0; }
 .signed-in-header .nav { width:auto; }
 .signed-in-header .submit-btn { padding:9px 12px; font-size:11px; }
 .account-page .main-body-wrapper { width:calc(100% - 24px); margin-top:80px; }
 .account-page .account-workspace { display:block; }
 .account-page .account-sidebar { border:0; background:transparent; margin-bottom:12px; }
 .account-page .dashboard-card-grid { position:static; transform:none; padding:0 !important; background:transparent; }
 .account-page .dashboard-card-grid.hidden { display:none; }
 .account-page .dashboard-content-panel { display:none; position:static; transform:none; width:100%; background:transparent; }
 .account-page .dashboard-content-panel.visible { display:block; transform:none; }
 .account-page .account-overview { padding:20px; }
 .account-page .overview-actions { grid-template-columns:1fr; }
 .account-page .account-table-toolbar { padding:16px; }
 .account-page .account-table-toolbar > .d-flex { flex-wrap:wrap; width:100%; }
 .account-page .associated-choice, .account-page .upload-info { padding:18px; }
 .account-page .profile-details-row { flex-direction:column; }
 .account-page .profile-details-col { min-width:0 !important; }
 .account-page .pricing-dashboard-content-parent.visible { position:static; height:auto; transform:none; padding:0; }
 .account-page .drawing-heading h1 { font-size:25px; }
 .account-page .footer-right { display:none; }
}
.account-page :is(h1,h2,h3,h4) { color:var(--ink); }
@media (min-width:769px) { .signed-in-header .logo.mobile-only { display:none; } }
.account-page .profile-input { max-width:none; }
.account-page .v-input--disabled { opacity:1; }
.account-page .v-field--disabled { opacity:1; color:var(--secondary); background:#f7f7f9; }
.account-page .v-field--disabled .v-field__outline { --v-field-border-opacity:.1; }
.account-page .overview-submit { display:inline-block; margin-top:20px; }
.account-page .drawing-flow #vue-pricing-app { margin-top:16px; gap:16px; }
.account-page .drawing-flow .pricing-menu-wrapper { width:200px; flex-shrink:0; border:1px solid var(--line); border-radius:16px; background:#fff; padding:10px; }
.account-page .drawing-flow .pricing-menu-wrapper > div { width:100%; }
.account-page .drawing-flow .confirmation-card__title { font-size:22px; line-height:1.25; }
.account-page .drawing-flow .associated-choice { min-height:0; }
@media (max-width:768px) {
 .account-page .drawing-flow #vue-pricing-app { flex-direction:column; }
 .account-page .drawing-flow .pricing-menu-wrapper { width:100%; }
}
.account-page .v-field input:focus-visible { outline:none; }
@media (max-width:768px) {
 .account-page :is(.estimates-component-table,.accounts-component-table) .v-table table { min-width:740px; }
 .account-page .account-table-toolbar .v-input { width:100%; min-width:0 !important; max-width:none !important; margin:0 !important; }
 .account-page .account-table-toolbar > .d-flex > div { width:100%; }
 .account-page .account-table-toolbar .ga-2 { gap:12px !important; }
}
.account-page .drawing-flow .dashboard-menu-wrapper { width:100%; height:auto; overflow:visible; }
.account-page .drawing-flow .dashboard-menu-item { width:100%; text-align:left; }
.account-page .drawing-flow .dashboard-category-item-active { background:var(--grey); color:var(--ink); }
.account-page .date-grid { max-width:none; grid-template-columns:repeat(5,minmax(0,1fr)); }
.account-page .date-card { min-height:70px; border:1px solid var(--line); padding:12px 8px; font-size:13px; }
.account-page .date-card > div:last-child { font-size:11px; color:var(--secondary); margin-top:4px; }
.account-page .date-card-selected { background:#faf2bd; border-color:#bda419; }
@media (max-width:768px) { .account-page .date-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.account-page .my-dropzone { border-radius:14px; border:1px dashed #c8c8ce; background:#fafafc; padding:24px; }
.account-page .my-dropzone-label { color:var(--ink); font-size:16px; }
.account-page .payment-card-element { padding:16px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.account-page .checkout-button { background:var(--brand); color:var(--ink); border-radius:100px; padding:11px 24px; font-weight:600; font-size:13px; }
@media (min-width:769px) { .signed-in-header .header-content > a { display:none; } }
@media (max-width:768px) {
 .account-page .breadcrumb { gap:3px; justify-content:space-between; min-width:0; }
 .account-page .breadcrumb-separator { display:none; }
 .account-page .breadcrumb-item { padding:6px 4px; gap:4px; font-size:11px; }
 .account-page .breadcrumb-item:not(.active) { font-size:0; gap:0; }
}
.account-page .notes-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 24px; }
@media (max-width:768px) { .account-page .notes-options { grid-template-columns:1fr; } }
@media (min-width:769px) {
 .account-page .account-sidebar { position:sticky; top:84px; max-height:calc(100dvh - 104px); overflow-y:auto; }
}
.account-page .v-field--disabled .v-label { opacity:1; color:var(--secondary); }
/* Compact workspace menus without reducing form or table legibility. */
.account-page .dashboard-card-grid { padding:8px !important; gap:2px; }
.account-page .dashboard-service-card { min-height:34px; padding:8px 10px; font-size:12px; }
.account-page .dashboard-card-number { top:6px; min-width:20px; height:20px; }
.account-page .dashboard-menu-item { min-height:28px; padding:6px 10px; margin:1px 0; }
.account-page .workspace-label { padding:5px 10px 8px; }
.signed-in-header .nav-links { gap:16px; }
/* Shared sticky header occupies its own space in document flow. */
.account-page .main-body-wrapper { margin-top:20px; }
.news-content { max-width:1100px;margin:0 auto;padding:12px 0 32px; }
.news-content h1 { margin:0 0 24px;font-size:36px;letter-spacing:-1.2px; }
.news-list { display:grid;gap:10px; }
.news-item { display:grid;grid-template-columns:140px 1fr auto;align-items:center;gap:24px;padding:24px;background:#fff;border:1px solid #e5e5ea;border-radius:20px; }
.news-item p { margin:0;color:#6e6e73;font-size:13px; }
.news-item h2 { margin:0;font-size:20px;letter-spacing:-.5px; }
.news-item button { padding:8px 0;color:#0066cc;background:none;border:0;font-size:14px;cursor:pointer; }
@media(max-width:650px) { .news-item { grid-template-columns:1fr auto;gap:10px;padding:20px; }.news-item p { grid-column:1 / -1; }.news-item h2 { font-size:18px; } }
/* Account layout refinements. */
.account-page .dashboard-menu-item { color:#1d1d1f; }
.account-page .dashboard-menu-item.bg-direct2,
.account-page .dashboard-menu-item.bg-direct2 :is(p,span,div) { color:#fff; }
.account-page :is(.account-sidebar,.profile-menu-wrapper) .red-dot-count { position:static;display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:7px;background:#bd3d32;color:#fff;font-size:10px;font-weight:500;line-height:1;flex-shrink:0; }
.account-page .drawing-flow .drawing-acknowledgment .v-label { font-size:16px;line-height:1.4;opacity:1; }
.estimate-detail-page .main-body-wrapper { margin-top:0;margin-bottom:0;min-height:0; }
.estimate-detail-page .footer.custom-footer { margin-top:0; }
.estimate-detail-page #vue-estimate-update-app .associated-choice { margin:0;padding:14px; }
.estimate-detail-page .pricing-menu-wrapper:not(.sidebar-collapsed) { width:205px;flex:0 0 205px; }
.estimate-detail-page .dashboard-menu-wrapper:not(.sidebar-collapsed) { width:100%; }
.estimate-detail-page .dashboard-menu-item { white-space:nowrap;font-size:12px;padding:6px 8px; }
.estimate-detail-page .estimate-value-summary h2 { font-size:18px;line-height:1.35; }
.account-page .profile-workspace { min-width:0;align-items:flex-start; }
.account-page .profile-workspace .pricing-dashboard-content-wrapper { padding:0;background:#fff; }
.account-page #vue-profile-app .pricing-dashboard-content-wrapper { background:#fff; }
.account-page .profile-section { margin:0;padding:16px;max-width:none; }
.account-page .profile-section .grid-container { margin:0;max-width:none;max-height:calc(100dvh - 240px);overflow:auto;grid-template-columns:minmax(230px,2.5fr) minmax(110px,1fr) minmax(110px,1fr) minmax(160px,1fr); }
.account-page .profile-section .grid-header { position:sticky;top:0;z-index:2;white-space:nowrap;background:#f5f5f7;color:#1d1d1f;font-size:12px;font-weight:600; }
.account-page .profile-section .v-table__wrapper { max-height:calc(100dvh - 270px);overflow:auto; }
.account-page .profile-section .v-table th { position:sticky;top:0;z-index:2;background:#f5f5f7;color:#1d1d1f;white-space:nowrap;height:42px !important;padding:8px 12px !important; }
.account-page .profile-section .v-table th :is(span,div) { font-size:12px;white-space:nowrap;color:#1d1d1f; }
.account-page .profile-section .materials-header { padding:0 0 12px;gap:16px;align-items:center;flex-wrap:wrap; }
.account-page .profile-section .materials-header .v-text-field { height:auto !important;min-height:44px !important;flex:1 1 200px; }
.account-page .profile-section .materials-header :is(.v-field,.v-input__control,.v-field__field,.v-field__input) { height:40px !important;min-height:40px !important; }
.account-page .profile-section .materials-header input { height:auto !important;min-height:0 !important; }
@media(max-width:768px) {
 .estimate-detail-page .pricing-menu-wrapper:not(.sidebar-collapsed) { width:100%;flex-basis:auto; }
 .account-page .profile-section .grid-container { display:grid; }
 .account-page .profile-section .grid-container .grid-header { display:flex; }
 .account-page .profile-section .grid-container .grid-item::before { display:none; }
 .account-page .profile-section .grid-container .grid-item { grid-column:auto; }
}
.account-page .profile-section .v-table > .v-table__wrapper > table > thead > tr > th { background:#f5f5f7 !important;box-shadow:inset 0 -1px #e5e5ea; }
.account-page .drawing-flow .upload-checkbox .v-label { font-size:16px;line-height:1.4;opacity:1; }

/* Keep the Quotes count blue on its white badge. */
.account-page.estimate-detail-page .dashboard-menu-item.bg-direct2 .direct2-dot-count { color:#1a73e8; }
/* Compact materials toolbar in profile and estimate detail views. */
.account-page .profile-section .materials-header { gap:10px;padding-bottom:6px; }
.account-page .profile-section .materials-header h2 { font-size:23px;font-weight:650;line-height:1.2;letter-spacing:-.6px;margin:0; }
.account-page .profile-section .materials-header .my-tooltip { margin:0 !important; }
.account-page .profile-section .materials-header .v-text-field { min-height:32px !important;flex-basis:180px;max-width:180px !important; }
.account-page .profile-section .materials-header :is(.v-field,.v-input__control,.v-field__field,.v-field__input) { height:32px !important;min-height:32px !important; }
.account-page .profile-section .materials-header :is(input,.v-label) { font-size:13px !important; }
.account-page .profile-section .materials-header :is(.v-field__prepend-inner,.v-field__append-inner) { align-items:center;padding-top:0; }
.account-page .profile-section .materials-header .v-icon { font-size:19px; }
/* Equipment Hire uses six aligned columns, with a control inside its own cell. */
.account-page .profile-section .equipment-hire-grid { grid-template-columns:minmax(240px,2fr) minmax(90px,.7fr) minmax(110px,.8fr) minmax(110px,.8fr) minmax(180px,1.2fr) minmax(80px,.6fr);gap:0;margin:0;max-width:none;min-width:0;padding:0;border:1px solid #e5e5ea;border-radius:12px;overflow:auto; }
.account-page .equipment-hire-grid > .grid-item { width:auto !important;max-width:none !important;min-width:0;min-height:42px;padding:8px 12px;display:flex;align-items:center;justify-content:flex-start;text-align:left;border-bottom:1px solid #e5e5ea; }
.account-page .equipment-hire-grid > .grid-header { min-height:42px;white-space:nowrap;background:#f5f5f7; }
.account-page .equipment-profile-toggle { display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:1px solid #b8b8bf;border-radius:5px;background:#fff;color:#1d1d1f;cursor:pointer; }
.account-page .equipment-profile-toggle[aria-pressed=true] { background:#f7d72b;border-color:#c2a817; }
.account-page .equipment-profile-toggle:disabled { opacity:.5;cursor:default; }
/* Match materials headings to the other estimate-detail sections. */
.estimate-detail-page .estimate-materials-section { padding-top:6px; }
.estimate-detail-page .estimate-materials-section .materials-header h2 { font-size:23px;font-weight:650;line-height:1.2;letter-spacing:-.6px; }
/* Shared compact estimate tables, without stretched tracks or detached cells. */
.estimate-detail-page .profile-section :is(.labour-rate-6-cols,.prelim-grid-5-cols,.sum-grid-6-cols,.sum-grid-5-cols) { width:max-content;max-width:100%;min-width:0;margin:0;padding:0;gap:0 !important;border:1px solid #e5e5ea;border-radius:10px;overflow:auto;align-content:start; }
.estimate-detail-page .profile-section .labour-rate-6-cols { grid-template-columns:240px 90px 105px 110px 165px 80px; }
.estimate-detail-page .profile-section .prelim-grid-5-cols { grid-template-columns:260px 90px 125px 125px 100px; }
.estimate-detail-page .profile-section .sum-grid-6-cols { grid-template-columns:240px 125px 90px 100px 100px 125px; }
.estimate-detail-page .profile-section .sum-grid-5-cols { grid-template-columns:240px 125px 90px 100px 125px; }
.estimate-detail-page .profile-section :is(.labour-rate-6-cols,.prelim-grid-5-cols,.sum-grid-6-cols,.sum-grid-5-cols) > .grid-item { width:auto !important;max-width:none !important;min-width:0;min-height:38px;padding:6px 10px;display:flex;align-items:center;justify-content:flex-start;text-align:left;border-bottom:1px solid #e5e5ea; }
.estimate-detail-page .profile-section .grid-header { min-height:38px;white-space:nowrap; }
.estimate-detail-page .estimate-materials-section .v-table { width:fit-content;max-width:100%;border:1px solid #e5e5ea;border-radius:10px; }
.estimate-detail-page .estimate-materials-section .v-table table { width:max-content !important;min-width:0; }
.estimate-detail-page .estimate-materials-section .v-table :is(th,td) { padding:6px 10px !important; }
.estimate-detail-page .estimate-materials-section .v-table td:first-child { min-width:240px;max-width:280px;white-space:normal; }
.estimate-detail-page .estimate-materials-section .v-table th:first-child { width:280px !important; }
.account-page .equipment-profile-toggle:hover:not(:disabled),
.account-page .equipment-profile-toggle:focus-visible { background:#f7d72b;border-color:#c2a817; }
/* One sidebar treatment across the dashboard and estimate detail. */
.account-page .account-workspace { gap:0; }
.account-page .account-sidebar { flex:0 0 205px;background:#fff;border:0;border-right:1px solid #e5e5ea;border-radius:0; }
.account-page .account-sidebar .dashboard-card-grid { padding:5px 0 !important;gap:0; }
.account-page .account-sidebar .dashboard-service-card,
.estimate-detail-page .dashboard-menu-item { min-height:30px;padding:6px 8px;margin:1px 0;border-radius:8px;font-size:12px;font-weight:400;color:#1d1d1f; }
.account-page .account-sidebar .dashboard-service-card.service-card-active,
.estimate-detail-page .dashboard-menu-item-active { font-weight:600;background:#faf2bd; }
.account-page .account-sidebar .dashboard-menu-item { padding:6px 8px; }
.account-page:has(.account-workspace) .main-body-wrapper { margin-top:0; }
.estimate-detail-page :is(.red-dot-count,.blue-dot-count,.direct2-dot-count) { display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:20px;height:20px;padding:0 5px;border-radius:7px;font-size:10px;font-weight:500;line-height:1;flex-shrink:0; }
.estimate-detail-page .blue-dot-count { background:#edf2fa;color:#0066cc; }
.estimate-detail-page .red-dot-count { background:#bd3d32;color:#fff; }
.estimate-detail-page .direct2-dot-count { background:#fff;color:#1a73e8; }
@media(min-width:769px) { .account-page .account-sidebar { top:64px;min-height:calc(100dvh - 128px);max-height:calc(100dvh - 64px); } }
@media(max-width:768px) { .account-page .account-sidebar { border:0;min-height:0; }.account-page .account-workspace { gap:0; } }
/* Two-line labels allow narrower material and equipment columns. */
.estimate-detail-page .estimate-materials-section .v-table th,
.estimate-detail-page .estimate-materials-section .v-table th :is(span,div) { white-space:normal;line-height:1.2; }
.estimate-detail-page .estimate-materials-section .v-table th:not(:first-child) { max-width:88px; }
.estimate-detail-page .estimate-materials-section .v-table .v-data-table-header__content { min-width:0; }
.estimate-detail-page .estimate-materials-section .v-table th:not(:first-child) .v-data-table-header__content > span { max-width:68px; }
.estimate-detail-page .estimate-materials-section .v-table :is(th,td) { padding:6px 8px !important; }
.estimate-detail-page .estimate-materials-section .v-table td:first-child { min-width:220px;max-width:250px; }
.estimate-detail-page .estimate-materials-section .v-table th:first-child { width:250px !important; }
.estimate-detail-page .profile-section .equipment-hire-grid { grid-template-columns:220px 75px 90px 70px 95px 65px; }
.estimate-detail-page .profile-section .equipment-hire-grid > .grid-header { white-space:normal;line-height:1.2;min-height:44px; }
/* Fit the estimate workspace and footer inside the viewport below the header. */
body.estimate-detail-page { overflow:hidden; }
.estimate-detail-page #app { height:calc(100dvh - 64px);min-height:0; }
.estimate-detail-page .main-body-wrapper { flex:1 1 0;min-height:0;margin-block:0;overflow:hidden; }
.estimate-detail-page #vue-estimate-update-app,
.estimate-detail-page #vue-estimate-update-app > .h-100 { height:100% !important;min-height:0; }
.estimate-detail-page #vue-estimate-update-app > .h-100 > .pricing-menu-wrapper { height:100% !important;min-height:0; }
.estimate-detail-page #sidebar-with-scroll { height:100%;overflow-y:auto; }
.estimate-detail-page #estimate-dashboard-content { height:100%;min-height:0;overflow-y:auto; }
.estimate-detail-page #vue-footer-app { flex:0 0 auto; }
.estimate-detail-page .footer.custom-footer { margin:0;padding:8px 24px;background:#fff; }
@media(max-width:768px) { .estimate-detail-page #vue-footer-app { display:none; } }
.estimate-detail-page .main-body-wrapper { background:transparent; }
@media(max-width:768px) {
 .estimate-detail-page #vue-estimate-update-app > .h-100 > .pricing-menu-wrapper { position:absolute;inset:0;width:100%; }
 .estimate-detail-page #vue-estimate-update-app .pricing-dashboard-content-parent { position:absolute;inset:0;width:100%;height:100% !important;transform:translateX(100%); }
 .estimate-detail-page #vue-estimate-update-app .pricing-dashboard-content-parent.visible { transform:none; }
}
.estimate-detail-page #vue-estimate-update-app .h-100 { height:100% !important;min-height:0; }
/* Keep related numeric columns close across Materials, Admin and Key Elements. */
.estimate-detail-page .estimate-materials-section .v-table .estimate-col-uom { width:52px !important;min-width:52px;max-width:52px; }
.estimate-detail-page .estimate-materials-section .v-table .estimate-col-quantity { width:68px !important;min-width:68px;max-width:68px;text-align:left !important; }
.estimate-detail-page .estimate-materials-section .v-table .estimate-col-quantity .v-data-table-header__content { justify-content:flex-start; }
.estimate-detail-page .estimate-materials-section .v-table :is(.estimate-col-unitPrice,.estimate-col-updateProfile,.estimate-col-lineTotal,.estimate-col-marketPrice,.estimate-col-history,.estimate-col-foreignCode) { width:80px !important;min-width:80px;max-width:80px; }
.estimate-detail-page .estimate-materials-section .v-table .estimate-col-lineTotal { text-align:left !important; }
.estimate-detail-page .estimate-materials-section .v-table .estimate-col-lineTotal .v-data-table-header__content { justify-content:flex-start; }
/* Menu labels share one size; count badges keep their smaller type. */
body.account-page :is(.account-sidebar,.profile-menu-wrapper,#sidebar-with-scroll) :is(.dashboard-menu-item,.dashboard-service-card) { font-size:13px; }
body.account-page :is(.account-sidebar,.profile-menu-wrapper,#sidebar-with-scroll) :is(.dashboard-menu-item,.dashboard-service-card) > p { font-size:13px; }
body.estimate-detail-page .dashboard-menu-item { font-size:13px; }
body.account-page :is(.account-sidebar,.profile-menu-wrapper,#sidebar-with-scroll) .dashboard-menu-item p { font-size:inherit; }
@media(min-width:769px) {
 .account-page .account-sidebar { flex-basis:220px; }
 .estimate-detail-page .pricing-menu-wrapper:not(.sidebar-collapsed) { width:220px;flex-basis:220px; }
}
/* Identical count typography in dashboard and estimate-detail navigation. */
.account-page :is(.dashboard-card-number,.red-dot-count,.blue-dot-count,.direct2-dot-count),
.account-page :is(.account-sidebar,.profile-menu-wrapper,#sidebar-with-scroll) :is(.dashboard-card-number,.red-dot-count,.blue-dot-count,.direct2-dot-count) { font-family:Arial,sans-serif;font-size:10px;font-weight:600;font-style:normal;line-height:1;letter-spacing:normal; }
.account-page .dashboard-card-number p { font-weight:600;font-style:normal;letter-spacing:normal; }

/* Align material totals with their labels and keep adjacent prices compact. */
.estimate-detail-page .estimate-materials-section .v-table :is(.estimate-col-lineTotal,.estimate-col-marketPrice,.estimate-col-history) { width:68px !important;min-width:68px;max-width:68px; }
.estimate-detail-page .estimate-materials-section .v-table .estimate-col-livePrice { width:100px !important;min-width:100px;max-width:100px;text-align:left !important; }
.estimate-detail-page .estimate-materials-section .v-table :is(.estimate-col-lineTotal,.estimate-col-marketPrice,.estimate-col-history,.estimate-col-livePrice) .v-data-table-header__content { flex-direction:row;justify-content:flex-start; }
.estimate-detail-page .estimate-materials-section .estimate-col-livePrice img { max-width:84px;height:auto !important;max-height:28px;object-fit:contain;vertical-align:middle; }

/* Flat workspace sections; keep borders on inputs and table row dividers. */
.account-page :is(.account-overview,.estimates-component-table,.accounts-component-table,.associated-choice,.grid-container,.profile-menu-wrapper,.upload-info,.breadcrumb-wrapper),
.account-page .profile-section :is(.v-table,.equipment-hire-grid,.labour-rate-6-cols,.prelim-grid-5-cols,.sum-grid-6-cols,.sum-grid-5-cols),
.account-page .dashboard-content-panel .v-card,
.account-page .overview-actions button { border:0;border-radius:0;box-shadow:none; }
/* The dashboard fills the space between the shared header and footer. */
body.dashboard-page { overflow:hidden; }
.dashboard-page #app { height:calc(100dvh - 64px);min-height:0; }
.dashboard-page .main-body-wrapper { flex:1 1 0;min-height:0;margin-block:0;overflow:hidden;background:#fff; }
.dashboard-page #vue-info-dashboard-app,
.dashboard-page #vue-info-dashboard-app > .h-100 { height:100% !important;min-height:0; }
.dashboard-page .account-workspace { height:100%;min-height:0;align-items:stretch; }
.dashboard-page .account-sidebar { position:static;height:100%;min-height:0;max-height:none;margin-bottom:0;overflow-y:auto; }
.dashboard-page .account-workspace > :is(.dashboard-content-panel,.profile-workspace,.account-overview) { height:100% !important;min-height:0;overflow-y:auto !important;overscroll-behavior:auto; }
.dashboard-page #vue-footer-app { flex:0 0 auto; }
.dashboard-page .footer.custom-footer { margin:0;padding:8px 24px;background:#fff; }
@media(max-width:768px) {
 .dashboard-page .account-sidebar:has(.dashboard-card-grid.hidden) { display:none; }
 .dashboard-page .account-workspace:has(.dashboard-card-grid:not(.hidden)) .account-overview { display:none; }
}
/* Pricing-style menu rhythm across both account workspaces. */
.dashboard-page .account-sidebar,
.estimate-detail-page .pricing-menu-wrapper { background:#fff;border:0;border-radius:0;box-shadow:none; }
.dashboard-page .account-sidebar .dashboard-card-grid,
.estimate-detail-page #sidebar-with-scroll:not(.sidebar-collapsed) { padding:8px !important;gap:0; }
.dashboard-page .account-sidebar :is(.dashboard-service-card,.dashboard-menu-item),
.estimate-detail-page #sidebar-with-scroll:not(.sidebar-collapsed) .dashboard-menu-item { width:100%;min-height:28px;padding:6px 10px;margin:1px 0;border:0;border-radius:8px;background:transparent;color:#1d1d1f;font-size:13px;font-weight:400;line-height:1.35;text-align:left;align-items:center;transition:background-color .15s ease,color .15s ease; }
.dashboard-page .account-sidebar :is(.dashboard-service-card,.dashboard-menu-item) p,
.estimate-detail-page #sidebar-with-scroll:not(.sidebar-collapsed) .dashboard-menu-item p { margin:0;font-size:inherit;line-height:inherit; }
.dashboard-page .account-sidebar :is(.dashboard-service-card,.dashboard-menu-item):hover,
.estimate-detail-page #sidebar-with-scroll:not(.sidebar-collapsed) .dashboard-menu-item:hover { background:#f5f5f7; }
.dashboard-page .account-sidebar :is(.service-card-active,.dashboard-menu-item-active),
.estimate-detail-page #sidebar-with-scroll:not(.sidebar-collapsed) .dashboard-menu-item-active { background:#faf2bd;font-weight:600; }
.dashboard-page .account-sidebar .dashboard-category-item-active,
.estimate-detail-page #sidebar-with-scroll:not(.sidebar-collapsed) .dashboard-category-item-active { background:#f5f5f7;font-weight:600; }
.estimate-detail-page #sidebar-with-scroll:not(.sidebar-collapsed) .dashboard-menu-item.bg-direct2 { background:#1a73e8;color:#fff; }
.dashboard-page .account-sidebar .dashboard-card-number { top:50%;transform:translateY(-50%); }

/* Keep list headings visible inside the dashboard's available content height. */
.dashboard-page .account-workspace > .dashboard-content-panel:has(.account-list-table) { display:flex;flex-direction:column;overflow:hidden !important; }
.dashboard-page .dashboard-content-panel > :is(.estimates-component-table,.accounts-component-table) { display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:hidden; }
.dashboard-page .account-table-toolbar { flex-shrink:0; }
.dashboard-page .account-list-table { flex:1 1 0;min-height:0; }
.dashboard-page .account-list-table > .v-table__wrapper { flex:1 1 0;min-height:0;overflow:auto; }
.account-page .account-list-table thead > tr > th { position:sticky;top:0;z-index:2;background:#f7f7f9; }
@media(max-width:768px) {
 .dashboard-page .account-workspace > .dashboard-content-panel:not(.visible):has(.account-list-table) { display:none; }
}

/* Compact profile pagination and reserve a visible row for saving changes. */
.account-page .profile-section .v-data-table-footer { min-height:40px;padding:4px 8px;gap:8px;font-size:12px; }
.account-page .profile-section .v-data-table-footer__items-per-page { gap:6px; }
.account-page .profile-section .v-data-table-footer__items-per-page .v-input { width:76px; }
.account-page .profile-section .v-data-table-footer :is(.v-field,.v-field__field,.v-field__input) { min-height:30px;height:30px;font-size:12px; }
.account-page .profile-section .v-data-table-footer .v-field__input { padding-block:3px; }
.account-page .profile-section .v-data-table-footer .v-btn { width:30px;height:30px;min-width:30px; }
.account-page .profile-section .v-data-table-footer__pagination { margin:0; }
body.dashboard-page .account-workspace > .profile-workspace { overflow:hidden !important; }
.dashboard-page .profile-workspace > .pricing-dashboard-content-wrapper { display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden; }
.dashboard-page .profile-scroll-content { flex:1 1 0;min-height:0;overflow:auto; }
.dashboard-page .profile-scroll-content .profile-section { height:auto;max-height:none;overflow:visible; }
.dashboard-page .profile-scroll-content .profile-section :is(.grid-container,.v-table__wrapper) { height:auto;max-height:none;overflow:visible; }
.account-page .profile-equipment-grid > [data-label="UOM:"] { white-space:nowrap;word-break:normal;overflow-wrap:normal; }
.dashboard-page .profile-save-actions { flex:0 0 auto;padding:8px 16px;margin:0;background:#fff;border-top:0; }
.dashboard-page .profile-save-actions .save-btn { margin:0;min-height:34px;padding:8px 18px; }

/* The outer sidebar owns its surface so square inner layers do not show through. */
.estimate-detail-page #sidebar-with-scroll { background:transparent; }
/* Grid sections use the estimate content pane as their only scroll container. */
.estimate-detail-page #estimate-dashboard-content > .profile-section:has(:is(.labour-rate-6-cols,.prelim-grid-5-cols,.sum-grid-6-cols,.sum-grid-5-cols,.contract-value-grid-3-cols)) { height:auto !important;max-height:none;overflow:visible !important;flex-shrink:0; }
.estimate-detail-page .profile-section :is(.labour-rate-6-cols,.prelim-grid-5-cols,.sum-grid-6-cols,.sum-grid-5-cols,.contract-value-grid-3-cols) { height:auto !important;max-height:none;overflow:visible !important; }
.estimate-detail-page #estimate-content-header-id { flex-shrink:0; }
/* Pin grid column labels to the single estimate-content scrollport. */
.estimate-detail-page #estimate-dashboard-content .profile-section :is(.labour-rate-6-cols,.prelim-grid-5-cols,.sum-grid-6-cols,.sum-grid-5-cols,.contract-value-grid-3-cols) > .grid-header { position:sticky;top:0;z-index:5;align-self:start;background:#f5f5f7;box-shadow:inset 0 -1px #e5e5ea; }

/* Fit material columns to the available desktop pane rather than intrinsic widths. */
@media(min-width:1024px) {
 .estimate-detail-page .estimate-materials-section .v-table { width:100%;max-width:900px; }
 .estimate-detail-page .estimate-materials-section .v-table table { width:100% !important;table-layout:fixed; }
 .estimate-detail-page .estimate-materials-section .v-table :is(th,td) { padding:6px 4px !important;min-width:0 !important;max-width:none !important;font-size:12px;overflow-wrap:anywhere; }
 .estimate-detail-page .estimate-materials-section .v-table :is(th,td):first-child { width:auto !important;min-width:0;max-width:none; }
 .estimate-detail-page .estimate-materials-section .v-table .estimate-col-uom { width:6% !important;min-width:0;max-width:none; }
 .estimate-detail-page .estimate-materials-section .v-table .estimate-col-quantity { width:8% !important;min-width:0;max-width:none; }
 .estimate-detail-page .estimate-materials-section .v-table .estimate-col-unitPrice { width:9% !important;min-width:0;max-width:none; }
 .estimate-detail-page .estimate-materials-section .v-table .estimate-col-updateProfile { width:7% !important;min-width:0;max-width:none; }
 .estimate-detail-page .estimate-materials-section .v-table .estimate-col-lineTotal { width:9% !important;min-width:0;max-width:none; }
 .estimate-detail-page .estimate-materials-section .v-table .estimate-col-marketPrice { width:8% !important;min-width:0;max-width:none; }
 .estimate-detail-page .estimate-materials-section .v-table .estimate-col-history { width:7% !important;min-width:0;max-width:none; }
 .estimate-detail-page .estimate-materials-section .v-table .estimate-col-foreignCode { width:9% !important;min-width:0;max-width:none; }
 .estimate-detail-page .estimate-materials-section .v-table .estimate-col-livePrice { width:10% !important;min-width:0;max-width:none; }
 .estimate-detail-page .estimate-materials-section .v-table .v-text-field { width:100%;min-width:0; }
 .estimate-detail-page .estimate-materials-section .v-table .v-data-table-header__content { gap:2px; }
 .estimate-detail-page .estimate-materials-section .v-table .v-data-table-header__sort-icon { font-size:14px; }
 .estimate-detail-page .estimate-materials-section .estimate-col-livePrice img { max-width:100%; }
 .estimate-detail-page .estimate-materials-section th.estimate-col-livePrice .d-flex { min-width:0 !important; }
}
/* Wrap column labels between words, never within a word. */
.estimate-detail-page .estimate-materials-section .v-table th,
.estimate-detail-page .estimate-materials-section .v-table th :is(span,div) { overflow-wrap:normal;word-break:normal;hyphens:none;white-space:normal; }
/* Preserve change indicators above the shared sidebar's default/selected surfaces. */
body.estimate-detail-page #sidebar-with-scroll .dashboard-menu-item.sidebar-changed-bg { background-color:#c6ebfc !important; }
body.estimate-detail-page #sidebar-with-scroll .dashboard-menu-item.sidebar-changed-bg:hover { background-color:#c1e4f5 !important; }

/* News opens inline, with native keyboard-accessible disclosure controls. */
.news-accordion { background:#fff;border:1px solid #e5e5ea;border-radius:14px;overflow:hidden; }
.news-accordion-summary { display:grid;grid-template-columns:140px 1fr 24px;align-items:center;gap:20px;padding:20px 24px;list-style:none;cursor:pointer; }
.news-accordion-summary::-webkit-details-marker { display:none; }
.news-accordion-summary .news-date { color:#6e6e73;font-size:13px; }
.news-accordion-summary h2 { margin:0;font-size:20px;line-height:1.3;letter-spacing:-.5px; }
.news-accordion-summary:hover { background:#f5f5f7; }
.news-accordion-summary:focus-visible { outline:2px solid #0066cc;outline-offset:-3px; }
.news-accordion-icon { width:10px;height:10px;border-right:2px solid #3b3b3d;border-bottom:2px solid #3b3b3d;transform:rotate(45deg);justify-self:center; }
.news-accordion[open] .news-accordion-icon { transform:rotate(225deg); }
.news-accordion[open] .news-accordion-summary { border-bottom:1px solid #e5e5ea; }
.news-accordion-body { padding:24px;line-height:1.6;color:#1d1d1f; }
.news-accordion-body > :not(.modal-footer-wrapper) { max-width:850px; }
.news-accordion-body img { max-width:100%;height:auto; }
.news-accordion-body .contact-logo-wrapper img { max-width:320px; }
@media(max-width:650px) {
 .news-accordion-summary { grid-template-columns:1fr 24px;gap:8px;padding:16px; }
 .news-accordion-summary .news-date { grid-column:1 / -1; }
 .news-accordion-summary h2 { font-size:18px; }
 .news-accordion-body { padding:16px; }
}

/* Anchor opened stories below the header and normalize former modal layouts. */
.news-accordion { scroll-margin-top:76px;overflow-anchor:none; }
.news-accordion-body { max-width:900px;margin:0 auto;text-align:left; }
.news-accordion-body .dashboard-article-wrapper { width:100%;max-width:none;margin:0;padding:0 !important;height:auto; }
.news-accordion-body .text-center { text-align:left !important; }
.news-accordion-body { text-align:justify; }
.news-accordion-body :is(p,li,.text-justify) { text-align:justify !important; }
.news-accordion-body :is(.modal-content-title,.dashboard-article-wrapper > div:first-child p) { text-align:left !important; }
.news-accordion-body :is(.mb-br,.mb-2,.mb-3,.mb-4,.mb-8,.mb-10,.my-mb-14) { margin-bottom:16px !important; }
.news-accordion-body :is(h2,h3,.modal-content-title) { text-align:left;margin-top:20px;line-height:1.35; }
.news-accordion-body .dashboard-article-wrapper > div:first-child h2 { margin-top:0; }
.news-accordion-body :is(ul,ol) { margin-left:0 !important;padding-left:24px; }
.news-accordion-body .modal-footer-wrapper { max-width:none;margin-top:20px;align-items:center;justify-content:space-between;flex-wrap:wrap; }
.news-accordion-body .contact-logo-wrapper { width:auto;margin:0;justify-content:flex-start; }
.news-accordion-body .dashboard-article-wrapper > .justify-end { justify-content:flex-start !important; }
/* Titles and article text share the same left edge. */
.news-accordion-summary { grid-template-columns:1fr 24px;gap:8px 20px; }
.news-accordion-summary .news-date { grid-column:1; }
.news-accordion-summary h2 { grid-column:1; }
.news-accordion-summary .news-accordion-icon { grid-column:2;grid-row:1 / 3; }
.news-accordion-body { max-width:none;margin:0; }
.news-accordion-body > :not(.modal-footer-wrapper) { max-width:none; }
/* Keep an open article's heading visible below the sticky site navigation. */
.news-accordion { overflow:visible; }
.news-accordion[open] > .news-accordion-summary { position:sticky;top:64px;z-index:10;background:#fff;border-radius:14px 14px 0 0;box-shadow:0 2px 4px #00000008; }
.news-accordion:not([open]) > .news-accordion-summary { border-radius:14px; }
/* Long news articles must extend the sticky site's containing block. */
.news-page #app { height:auto;min-height:calc(100dvh - 64px); }

/* Keep the admin live-price action compact within the shared materials header. */
.estimate-detail-page .materials-live-price-edit { display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;height:22px;padding:0;border:0;border-radius:5px;background:transparent;color:#0066cc;cursor:pointer; }
.estimate-detail-page .materials-live-price-edit:hover,
.estimate-detail-page .materials-live-price-edit:focus-visible { background:#edf2fa; }

/* Align estimate numbers within the existing compact tracks; do not widen columns. */
.estimate-detail-page .estimate-materials-section .v-table td:is(.estimate-col-quantity,.estimate-col-unitPrice,.estimate-col-lineTotal,.estimate-col-marketPrice,.estimate-col-history) {
  text-align:right !important;
  font-variant-numeric:tabular-nums;
}
.estimate-detail-page .estimate-materials-section .estimate-col-unitPrice .v-input { margin-left:auto; }
.estimate-detail-page .estimate-materials-section .estimate-col-unitPrice input,
.estimate-detail-page .profile-section :is(.input-to-right,.contract-value-input) input,
.estimate-detail-page .profile-section .grid-item[data-label] .labour-rate-input input {
  text-align:right;
  font-variant-numeric:tabular-nums;
}
.estimate-detail-page .profile-section .grid-item:not(.grid-header):is([data-label="Quantity:"],[data-label="Rate:"],[data-label="Your Rate:"],[data-label="Original Estimate Rate:"],[data-label="Total:"],[data-label="History:"]),
.estimate-detail-page .profile-section :is(.sum-grid-6-cols,.sum-grid-5-cols) > .grid-item:not(.grid-header):has(> span) {
  justify-content:flex-end;
  text-align:right;
  font-variant-numeric:tabular-nums;
}

/* Preliminaries reserve the same history slot for editable and static values. */
.estimate-detail-page .prelim-grid-5-cols .prelim-value-control { display:grid;grid-template-columns:minmax(0,1fr) 18px;gap:4px;align-items:center;width:100%;min-width:0; }
.estimate-detail-page .prelim-value-control .v-input { width:100%;min-width:0; }
.estimate-detail-page .prelim-value-control input { padding-inline:12px;text-align:right;font-variant-numeric:tabular-nums; }
.estimate-detail-page .prelim-history { display:flex;align-items:center;justify-content:center;width:18px; }
.estimate-detail-page .prelim-static-value { margin-right:34px;font-variant-numeric:tabular-nums; }
.estimate-detail-page .profile-section .prelim-grid-5-cols > .grid-header:nth-child(3),
.estimate-detail-page .profile-section .prelim-grid-5-cols > .grid-header:nth-child(4) { justify-content:flex-end;text-align:right;padding-right:44px; }
.estimate-detail-page .profile-section .prelim-grid-5-cols > .grid-header:nth-child(5) { justify-content:flex-end;text-align:right; }

/* Put numeric header labels on the values' right edge, with sort icons to the left. */
.estimate-detail-page .estimate-materials-section .v-table th:is(.estimate-col-lineTotal,.estimate-col-marketPrice) { text-align:right !important; }
.estimate-detail-page .estimate-materials-section .v-table th:is(.estimate-col-lineTotal,.estimate-col-marketPrice) .v-data-table-header__content { flex-direction:row-reverse;justify-content:flex-start; }

/* Keep equipment profile controls close to the original rate column. */
.estimate-detail-page .profile-section .equipment-hire-grid > .grid-item:nth-child(6n + 4) { justify-content:center;text-align:center;padding-inline:6px; }
.estimate-detail-page .profile-section .equipment-hire-grid > .grid-item:nth-child(6n + 5) { padding-inline:6px; }
.estimate-detail-page .profile-section .equipment-hire-grid > .grid-header:nth-child(5) { justify-content:flex-end;text-align:right !important; }

/* Compact the materials profile control beside its right-aligned line total. */
.estimate-detail-page .estimate-materials-section .v-table .estimate-col-updateProfile { width:60px !important;min-width:60px;max-width:60px;text-align:center; }
.estimate-detail-page .estimate-materials-section .estimate-col-updateProfile .equipment-profile-toggle { margin-inline:auto; }
.estimate-detail-page .estimate-materials-section .estimate-col-updateProfile .v-data-table-header__content { justify-content:center; }
@media(min-width:1024px) {
 .estimate-detail-page .estimate-materials-section .v-table .estimate-col-updateProfile { width:6% !important;min-width:0;max-width:none; }
 .estimate-detail-page .estimate-materials-section .v-table .estimate-col-lineTotal { width:7% !important; }
}

/* Consistent rate headers: compact columns and two lines. */
.estimate-detail-page .profile-section .labour-rate-6-cols {
  grid-template-columns:220px 75px 90px 70px 125px 65px;
}
.estimate-detail-page .profile-section .labour-rate-6-cols > .grid-header {
  white-space:nowrap;line-height:1.2;min-height:44px;
}
.estimate-detail-page #estimate-dashboard-content .profile-section .grid-header {
  align-self:stretch;
}
.estimate-detail-page .profile-section .labour-rate-6-cols > .grid-item:nth-child(6n + 4) {
  justify-content:center;text-align:center;padding-inline:6px;
}
.estimate-detail-page .profile-section .labour-rate-6-cols > .grid-item:nth-child(6n + 5) { padding-inline:6px; }
.estimate-detail-page .profile-section .labour-rate-6-cols > .grid-header:nth-child(5) {
  justify-content:flex-end;text-align:right !important;
}

/* Table inputs inherit their cell's type size, including the compact materials table. */
.account-page :is(.grid-item,.v-table td) :is(.v-input,.v-field,.v-field__field,.v-field__input,input,select,textarea) {
  font-size:inherit !important;
}

/* Borderless table cells, with white first rows and light gray alternate rows. */
.account-page .v-table table { border-collapse:collapse; }
.account-page .v-table table :is(th,td) { border:0 !important;box-shadow:none !important; }
.account-page .v-table tbody > tr:nth-child(odd) > td { background:#fff; }
.account-page .v-table tbody > tr:nth-child(even) > td { background:#f5f5f7; }
.account-page .profile-section :is(.grid-container,.labour-rate-6-cols,.sum-grid-6-cols,.prelim-grid-5-cols,.sum-grid-5-cols,.contract-value-grid-3-cols) { border:1px solid #e5e5ea; }
.account-page .profile-section :is(.grid-container,.labour-rate-6-cols,.sum-grid-6-cols,.prelim-grid-5-cols,.sum-grid-5-cols,.contract-value-grid-3-cols) .grid-item { border:0 !important;box-shadow:none !important; }
.account-page .profile-section :is(.grid-container) > :nth-child(n + 5) { background:#fff; }
.account-page .profile-section :is(.grid-container) > :nth-child(n + 5):is(:nth-child(8n + 1),:nth-child(8n + 2),:nth-child(8n + 3),:nth-child(8n + 4)) { background:#f5f5f7; }
.account-page .profile-section :is(.labour-rate-6-cols,.sum-grid-6-cols) > :nth-child(n + 7) { background:#fff; }
.account-page .profile-section :is(.labour-rate-6-cols,.sum-grid-6-cols) > :nth-child(n + 7):is(:nth-child(12n + 1),:nth-child(12n + 2),:nth-child(12n + 3),:nth-child(12n + 4),:nth-child(12n + 5),:nth-child(12n + 6)) { background:#f5f5f7; }
.account-page .profile-section :is(.prelim-grid-5-cols,.sum-grid-5-cols) > :nth-child(n + 6) { background:#fff; }
.account-page .profile-section :is(.prelim-grid-5-cols,.sum-grid-5-cols) > :nth-child(n + 6):is(:nth-child(10n + 1),:nth-child(10n + 2),:nth-child(10n + 3),:nth-child(10n + 4),:nth-child(10n + 5)) { background:#f5f5f7; }
.account-page .profile-section :is(.contract-value-grid-3-cols) > :nth-child(n + 4) { background:#fff; }
.account-page .profile-section :is(.contract-value-grid-3-cols) > :nth-child(n + 4):is(:nth-child(6n + 1),:nth-child(6n + 2),:nth-child(6n + 3)) { background:#f5f5f7; }
/* Virtual tables include spacer rows; only real data rows count toward striping. */
.account-page .v-data-table tbody > tr:nth-child(odd of .v-data-table__tr) > td { background:#fff; }
.account-page .v-data-table tbody > tr:nth-child(even of .v-data-table__tr) > td { background:#f5f5f7; }
/* Virtual spacer cells retain their computed height, but need no cell padding. */
.account-page .v-data-table tbody > tr:not(.v-data-table__tr) > td[colspan][style] { border:0 !important;padding:0 !important; }

/* Frame material tables without adding borders to their cells or spacer rows. */
.account-page .estimate-materials-section .v-table,
.account-page #profile-materials-id .v-table { border:1px solid #e5e5ea; }

/* Pin whole header cells, including tooltip wrappers, to the content scrollport. */
.estimate-detail-page #estimate-dashboard-content .profile-section :is(.labour-rate-6-cols,.prelim-grid-5-cols,.sum-grid-6-cols,.sum-grid-5-cols,.contract-value-grid-3-cols) > :is(.grid-header,:has(> .grid-header)) {
  position:sticky;top:0;z-index:5;align-self:stretch;background:#f5f5f7;box-shadow:none;
}
.estimate-detail-page #estimate-dashboard-content .profile-section :is(.prelim-grid-5-cols,.sum-grid-6-cols,.sum-grid-5-cols,.contract-value-grid-3-cols) > :has(> .grid-header) > .grid-header {
  position:static;height:100%;width:auto !important;max-width:none !important;
}

/* Profile rate cells fill their tracks, including the striped market-rate column. */
.account-page .profile-section .grid-container > .grid-item {
  width:auto;max-width:none !important;min-width:0;
  margin:0;padding:8px 12px;align-self:stretch;
}
.account-page .profile-section .grid-container > .grid-item:nth-child(4n) {
  justify-content:flex-end !important;text-align:right;
}
.account-page .profile-section .grid-container > .grid-header {
  white-space:normal;line-height:1.2;
}

/* Compact profile tables use content-sized tracks rather than filling the pane. */
.account-page .profile-section .grid-container {
  width:max-content;max-width:100%;grid-template-columns:220px 60px 84px 112px;
}
.account-page .profile-section .profile-equipment-grid { grid-template-columns:220px 84px 60px 112px; }
.account-page .profile-section .profile-preliminaries-grid { grid-template-columns:250px 60px 84px 112px; }
.account-page .profile-section .grid-container > .grid-item { padding:6px 4px; }
.account-page .profile-section .grid-container > .grid-header { white-space:nowrap; }
.account-page #profile-materials-id .v-table { width:fit-content;max-width:100%; }
.account-page #profile-materials-id .v-table table { width:684px !important;table-layout:fixed; }
.account-page #profile-materials-id .v-table table:has(th:nth-child(6)) { width:768px !important; }
.account-page #profile-materials-id .v-table :is(th,td) { padding:6px 4px !important;font-size:12px; }
.account-page #profile-materials-id .v-table th:first-child { width:380px !important; }
.account-page #profile-materials-id .v-table th:nth-child(2) { width:48px !important; }
.account-page #profile-materials-id .v-table th:nth-child(3) { width:84px !important; }
.account-page #profile-materials-id .v-table th:nth-child(4) { width:112px !important; }
.account-page #profile-materials-id .v-table th:nth-child(5):not(:last-child) { width:84px !important; }
.account-page #profile-materials-id .v-table th:last-child { width:60px !important; }
.account-page #profile-materials-id .v-table th :is(span,div) { white-space:normal;line-height:1.2; }
.account-page #profile-materials-id .v-table td:first-child { white-space:normal;overflow-wrap:anywhere; }
.account-page #profile-materials-id .v-table td:nth-child(4) { padding-right:4px !important; }

/* Align profile material values within compact columns beside their neighbours. */
.account-page #profile-materials-id .v-table :is(th,td):not(:first-child) { text-align:right !important;font-variant-numeric:tabular-nums; }
.account-page #profile-materials-id .v-table th:not(:first-child) .v-data-table-header__content { flex-direction:row-reverse;justify-content:flex-start;gap:2px; }
.account-page #profile-materials-id .v-table td:not(:first-child) .v-input { margin-left:auto; }
.account-page #profile-materials-id .v-table td:not(:first-child) input { text-align:right; }

/* Give labels two deliberate lines without pushing their values to the far edge. */
.account-page #profile-materials-id .v-table th .profile-material-heading { white-space:nowrap;flex-shrink:0; }
.account-page #profile-materials-id .profile-material-value { display:block;width:72px;max-width:100%;text-align:right; }
.account-page #profile-materials-id .v-table td:not(:first-child) .v-input { margin-left:0; }

/* Apply the materials value alignment to all profile rate grids. */
.account-page .profile-section .grid-container > .grid-item[data-label="Local Market Rate:"] {
  justify-content:flex-start !important;
}
.account-page .profile-section .grid-container > .grid-item[data-label="Local Market Rate:"] > div {
  width:72px;max-width:100%;text-align:right;font-variant-numeric:tabular-nums;
}
.account-page .profile-section .grid-container > .grid-item[data-label="Your Rate:"] { justify-content:flex-start; }
.account-page .profile-section .grid-container .v-input { width:76px;max-width:100%;margin-left:0; }
.account-page .profile-section .grid-container input { text-align:right;font-variant-numeric:tabular-nums; }

/* Keep estimate metadata anchored while wide tables scroll beneath it. */
@media (max-width:768px) {
 .estimate-detail-page #estimate-content-header-id { left:0; }
}

/* A stacked toolbar needs natural heights, not the desktop field's flex basis. */
@media (max-width:860px) {
 .account-page .profile-section .materials-header { align-items:stretch;flex-wrap:nowrap; }
 .account-page .profile-section .materials-header > div { min-width:0; }
 .account-page .profile-section .materials-header .v-text-field {
  flex:0 0 auto;
  width:100%;
  max-width:100% !important;
 }
}

/* Keep estimate material searches next to their headings at every width. */
.account-page .estimate-materials-section .materials-header {
 flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:8px;
}
.account-page .estimate-materials-section .materials-header > div:not(.v-input) { min-width:0; }
.account-page .estimate-materials-section .materials-header .v-text-field {
 flex:0 0 180px;width:180px;max-width:180px !important;
}
@media(max-width:860px) {
 .account-page .estimate-materials-section .materials-header h2 { font-size:20px; }
 .account-page .estimate-materials-section .materials-header .v-text-field {
  flex-basis:clamp(100px, 28vw, 180px);width:clamp(100px, 28vw, 180px);
 }
}
