/* National Lumber's working desk: compact input, drawing photography, one result view. */
@import url("takeoff-floors.css?v=69ce962e5558");
.takeoff-workspace { --tx-paper:#faf9f5; --tx-line:#10244126; }
.takeoff-workspace .tk-workspace-intro { padding:22px 0 18px; align-items:center; gap:28px; }
.takeoff-workspace .tk-workspace-intro h1 { font-size:clamp(32px,3.3vw,46px); line-height:1.1; margin:0 0 10px; max-width:none; }
.takeoff-workspace .tk-workspace-intro p { max-width:67ch; font-size:15px; line-height:1.5; }
.takeoff-workspace .tk-workspace-intro .tk-watch { flex-shrink:0; font-size:14px; max-width:none; }
.takeoff-workspace #takeoff-progress { padding:14px 0; margin:0; gap:12px; }
.takeoff-workspace #takeoff-progress li { font:500 14px/1.3 var(--font-body); }
.takeoff-workspace #takeoff-progress b { width:26px; height:26px; font-size:12px; }
.tw-mobile-photo { display:none; }
.takeoff-workspace .est-tool { padding:20px 0 26px; }
.takeoff-workspace #ai .est-split { grid-template-columns:minmax(340px,.95fr) minmax(0,1.05fr); gap:24px; align-items:start; }
.takeoff-workspace[data-takeoff-state=prepare] #ai .est-form-col { padding:22px; border-radius:8px; background:var(--tx-paper); border:1px solid var(--tx-line); }
.takeoff-workspace #ai .ai-step { margin:0 0 10px; font-size:16px; }
.takeoff-workspace #ai #ai-step-2 { margin-top:16px; }
.takeoff-workspace #ai #ai-dropzone { display:grid; grid-template-columns:48px minmax(0,1fr); align-items:center; gap:2px 16px; min-height:126px; padding:22px; border-radius:4px; text-align:left; background:#eeeae0; }
.takeoff-workspace #ai-dropzone:before,.takeoff-workspace #ai-dropzone:after { display:none; }
.takeoff-workspace #ai-dropzone .dz-icon { grid-column:1; grid-row:1/4; margin:0; width:48px; height:48px; border-radius:8px; display:grid; place-items:center; }
.takeoff-workspace #ai-dropzone b { grid-column:2; font-size:20px; }
.takeoff-workspace #ai-dropzone .dz-mouse { grid-column:2; }
.takeoff-workspace #ai #ai-dropzone .dz-spec { display:none!important; }
.takeoff-workspace #ai .field { gap:5px; }
.takeoff-workspace #ai #ai-field-files { gap:0; }
.takeoff-workspace #ai-file-list:empty { display:none; }
.takeoff-workspace #ai .tw-upload-limits { font-size:12px; margin:10px 0 0; line-height:1.5; }
.takeoff-workspace #ai .vp-workspace-help { margin:6px 0 0; padding:0; border:0; }
.takeoff-workspace #ai .vp-workspace-help>summary { min-height:44px; padding:12px 0; font-size:13px; font-weight:500; }
.takeoff-workspace #ai .vp-workspace-help>div { display:block; padding:12px 0; }
.takeoff-workspace #ai .vp-workspace-help h2 { font-size:19px; margin:8px 0; }
.takeoff-workspace #ai .vp-workspace-help p { font-size:14px; line-height:1.5; margin:8px 0 16px; }
.takeoff-workspace #ai .form-grid { gap:12px; }
.takeoff-workspace #ai input:not([type=file]),.takeoff-workspace #ai select { min-height:44px; padding:10px 12px; border-radius:4px; }
.takeoff-workspace #ai label { margin-bottom:5px; }
.takeoff-workspace #ai #ai-notes-wrap { margin:10px 0; border:0; background:transparent; }
.takeoff-workspace #ai #ai-notes-wrap>summary { display:list-item; min-height:44px; padding:12px 0; font-size:14px; }
.takeoff-workspace #ai #ai-notes-wrap>summary:after { display:none; }
.takeoff-workspace #ai #ai-notes-wrap>.field { padding:8px 0 0; }
.takeoff-workspace #ai #ai-notes-wrap:not([open])>.field { display:none; }
.takeoff-workspace #ai #ai-notes-wrap[open]>.field { display:block; }
.takeoff-workspace #ai #ai-notes-wrap label { position:static; width:auto; height:auto; clip:auto; clip-path:none; white-space:normal; }
.takeoff-workspace #ai .est-consent { font-size:12px; line-height:1.5; margin:8px 0; }
.tw-pilot-caption { font-size:12px; line-height:1.5; color:#526070; margin:8px 0 0; }
.takeoff-workspace #ai-bar { margin-top:14px; padding-top:14px; }
.takeoff-workspace #ai #ai-bar .ai-bar-note { margin:7px 0 0; }
.takeoff-workspace #ai #ai-run { min-height:46px; border-radius:5px; }
.takeoff-workspace #ai-status:empty { display:none; }
.takeoff-workspace[data-takeoff-state=prepare] #ai-status { display:none; }
.takeoff-workspace #ai .takeoff-sheet { border-radius:8px; }
.takeoff-workspace #ai .ts-head { padding:14px 22px; }
.takeoff-workspace #ai .ts-foot { padding:10px 22px; }
.tw-visual-preview { background:var(--tx-paper); }
.tw-plan-photo { position:relative; margin:0; }
.tw-plan-photo img { display:block; width:100%; height:270px; object-fit:cover; }
.tw-plan-photo figcaption { background:#eeeae0; color:#526070; font:400 11px/1.5 var(--font-body); padding:8px 20px; }
.tw-visual-copy { padding:20px 22px 16px; }
.takeoff-workspace #ai .tw-visual-copy h3 { font:600 26px/1.2 var(--font-body); margin:0 0 9px; text-transform:none; letter-spacing:0; }
.tw-visual-copy p { font-size:15px; line-height:1.5; margin:0; color:#526070; }
.tw-framing-note { display:grid; grid-template-columns:96px minmax(0,1fr); gap:16px; margin:0; padding:18px 22px; border-top:1px solid var(--tx-line); align-items:center; }
.tw-framing-note img { width:96px; height:96px; display:block; object-fit:cover; border-radius:4px; }
.tw-framing-note strong { display:block; font-size:15px; margin-bottom:6px; }
.tw-framing-note span { display:block; font-size:13px; line-height:1.5; color:#526070; }
.takeoff-workspace:not([data-takeoff-state=prepare]) #ai .est-split { grid-template-columns:minmax(0,1fr); gap:12px; }
.takeoff-workspace:not([data-takeoff-state=prepare]) .tk-workspace-intro p { display:none; }
.takeoff-workspace:not([data-takeoff-state=prepare]) .tk-workspace-intro h1 { font-size:28px; margin:0; }
.takeoff-workspace:not([data-takeoff-state=prepare]) .tk-advanced { display:none; }
.takeoff-workspace .sr-review:has(.sr-panel-estimate) .sr-heading { display:none; }
.takeoff-workspace .sr-review:has(.sr-panel-estimate) .sr-metrics { padding-top:10px; }
.takeoff-workspace #ai .tw-price-notes { margin:8px 0 0; border:0; }
.takeoff-workspace #ai .tw-price-notes>summary { min-height:44px; padding:12px 0; cursor:pointer; font-size:13px; }
.takeoff-workspace #ai .tw-price-notes p { margin:10px 0; }
.takeoff-workspace:not([data-takeoff-state=prepare]) #ai .est-form-col { display:block; }
.takeoff-workspace #ai-input-panel>summary { padding:10px 0; min-height:44px; }
.takeoff-workspace .tw-result-overview { padding:18px 22px; }
.takeoff-workspace .tw-result-overview h3 { font-size:24px; margin:0 0 8px; max-width:none; }
.takeoff-workspace .tw-result-overview .tw-read-facts { margin:0; }
.takeoff-workspace #ai .tw-budget { padding:22px; }
.takeoff-workspace #ai .tw-budget .ai-price-sum b { font-size:38px; }
.takeoff-workspace #ai .tw-budget-scope { margin-bottom:14px; }
.takeoff-workspace #ai .ai-tier-note { margin-bottom:16px; }
.takeoff-workspace #ai .tw-materials-head { margin:18px 0 10px; }
.takeoff-workspace #ai #ai-handoff { padding:0; border-top:1px solid var(--tx-line); background:#eeeae0; }
.tw-contact-disclosure>summary { min-height:60px; padding:18px 22px; cursor:pointer; font:600 17px/1.4 var(--font-body); color:#102441; }
.tw-contact-content { padding:0 22px 22px; }
.takeoff-workspace #ai-handoff .tw-contact-content>h3 { font-size:22px; margin:0 0 8px; }
.takeoff-workspace #ai-handoff .tw-contact-content>p { font-size:14px; margin:0 0 16px; line-height:1.5; }
.takeoff-workspace #ai-handoff form { gap:12px; }
.takeoff-workspace #ai #ai-handoff.tw-received { padding:22px; }
.takeoff-workspace #ai-result-details>summary { padding:15px 22px; font-size:14px; min-height:48px; }
.takeoff-workspace #ai-actions { padding:14px 0; }
.takeoff-workspace .tw-compact-footer { padding:22px 0; margin-top:0; background:#102441; }
.tw-compact-footer>.tk-wrap { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 30px; }
.tw-compact-footer .brand-name { font-size:20px; }
.tw-compact-footer nav { display:flex; flex-wrap:wrap; gap:8px 20px; align-items:center; }
.tw-compact-footer nav a { min-height:44px; display:inline-flex; align-items:center; font-size:13px; }
.tw-compact-footer small { flex-basis:100%; font-size:11px; color:#c3cbd5; }
.takeoff-workspace .tk-advanced { margin-block:0 22px; padding-block:0; }
.takeoff-workspace .tk-advanced>summary { padding-block:16px; min-height:48px; }
@media(min-width:1024px) {
 .takeoff-workspace .tw-contact-content form { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .takeoff-workspace .tw-contact-content form button { grid-column:1/3; }
 .takeoff-workspace .tw-contact-content form>.hint { grid-column:3/-1; }
}
@media(max-width:1023px) {
 .takeoff-workspace #ai .est-split { grid-template-columns:minmax(0,1fr); }
 .takeoff-workspace[data-takeoff-state=prepare] #ai .est-aside { display:none; }
 .takeoff-workspace .tk-workspace-intro { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; }
 .tw-mobile-photo { display:block; grid-column:1/-1; position:relative; margin:0; height:110px; overflow:hidden; border-radius:4px; }
 .tw-mobile-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 60%; }
 .tw-mobile-photo figcaption { position:absolute; bottom:0; left:0; padding:8px 12px; color:#faf9f5; background:#102441; font-size:12px; }
 .takeoff-workspace:not([data-takeoff-state=prepare]) .tw-mobile-photo { display:none; }
}
@media(max-width:700px) {
 .takeoff-workspace .tk-workspace-intro { padding:16px 0 12px; gap:10px; }
 .takeoff-workspace .tk-workspace-intro>div { grid-column:1/-1; }
 .takeoff-workspace .tk-workspace-intro h1 { font-size:32px; margin-bottom:8px; max-width:none; }
 .takeoff-workspace:not([data-takeoff-state=prepare]) .tk-workspace-intro h1 { font-size:25px; }
 .takeoff-workspace .tk-workspace-intro p { font-size:14px; line-height:1.45; }
 .takeoff-workspace .tk-workspace-intro .tk-watch { min-height:44px; padding:0; margin:0; grid-column:1/-1; font-size:13px; }
 .takeoff-workspace .tk-workspace-intro .tk-watch>span { width:30px; height:30px; }
 .tw-mobile-photo { height:92px; }
 .takeoff-workspace #takeoff-progress { padding:12px 0; gap:8px; display:flex; align-items:center; }
 .takeoff-workspace #takeoff-progress li { display:flex; align-items:center; gap:7px; font-size:13px; min-width:0; }
 .takeoff-workspace #takeoff-progress li:not([aria-current]) { flex:0 0 auto; }
 .takeoff-workspace #takeoff-progress li[aria-current] { flex:1; }
 .takeoff-workspace #takeoff-progress li:not([aria-current])>span { position:absolute; width:1px; height:1px; clip:rect(0,0,0,0); overflow:hidden; }
 .takeoff-workspace #takeoff-progress b { margin:0; width:24px; height:24px; }
 .takeoff-workspace .est-tool { padding:14px 0 16px; }
 .takeoff-workspace[data-takeoff-state=prepare] #ai .est-form-col { padding:16px; border-radius:6px; }
 .takeoff-workspace #ai #ai-dropzone { display:none; }
 html.nl-mob body.takeoff-workspace { padding-bottom:var(--nl-bar-h,0px); }
 .takeoff-workspace #ai-capture { padding:12px; background:#eeeae0; border-radius:4px; }
 .takeoff-workspace #ai-cap-browse { min-height:48px; border-radius:4px; }
 .takeoff-workspace #ai-capture .ai-cap-row { gap:8px; margin-top:8px; }
 .takeoff-workspace #ai-capture .ai-cap-row .btn { min-height:44px; font-size:12px; padding:8px 6px; border-radius:4px; }
 .takeoff-workspace #ai-capture .ai-cap-note { display:none; }
 .takeoff-workspace #ai .form-grid { grid-template-columns:1fr; gap:10px; }
 .takeoff-workspace #ai #ai-step-2 { margin-top:12px; }
 .takeoff-workspace #ai-bar { padding:12px 20px calc(12px + env(safe-area-inset-bottom)); }
 .takeoff-workspace #ai .ts-head { padding:14px 16px; }
 .takeoff-workspace .tw-result-overview { padding:16px; }
 .takeoff-workspace .tw-result-overview h3 { font-size:23px; line-height:1.2; }
 .takeoff-workspace #ai .tw-budget { padding:16px; }
 .takeoff-workspace #ai .tw-budget .ai-price-sum b { font-size:34px; }
 .takeoff-workspace #ai .tw-budget .ai-price-sum span { font-size:15px; }
 .takeoff-workspace #ai .ai-tier { padding:10px 12px; }
 .tw-contact-disclosure>summary { padding:16px; font-size:16px; }
 .tw-contact-content { padding:0 16px 18px; }
 .takeoff-workspace #ai-result-details>summary { padding:14px 16px; }
 .takeoff-workspace #ai #ai-handoff.tw-received { padding:18px 16px; }
 .takeoff-workspace .tw-compact-footer { padding:18px 0; }
 .tw-compact-footer>.tk-wrap { gap:4px 16px; }
 .tw-compact-footer nav { gap:2px 18px; }
}
@media(prefers-reduced-motion:reduce) { .takeoff-workspace *, .takeoff-workspace *:before,.takeoff-workspace *:after { scroll-behavior:auto!important; } }

@media(prefers-reduced-motion:reduce) { .takeoff-workspace *, .takeoff-workspace *::before, .takeoff-workspace *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
#ai-scope-continuation .btn { margin:8px 8px 0 0; }

.tw-category-totals{display:grid;grid-template-columns:1fr auto;gap:8px 16px;font-size:15px}.tw-category-totals dd{margin:0;text-align:right}

/* ---------- Saved project: a placeholder sheet from the first frame (estimate.html head marks it) ----------
   No empty upload form first, no jump when the project arrives. */
.takeoff-workspace[data-takeoff-state=opening] #ai-idle,.takeoff-workspace[data-takeoff-state=opening] #ai-status,.takeoff-workspace[data-takeoff-state=opening] .tw-mobile-photo,.takeoff-workspace[data-takeoff-state=opening] #ai-bar,.takeoff-workspace[data-takeoff-state=opening] #ai-input-panel>:not(summary){display:none!important}
/* the project line above the sheet keeps its place (no shift when the project arrives) but waits unseen */
.takeoff-workspace[data-takeoff-state=opening] #ai .est-form-col{visibility:hidden}
html.nl-opening .ai-sheet{display:block}
.takeoff-workspace[data-takeoff-state=opening] #ai-out{position:relative;display:flow-root;min-height:calc(100vh - 200px)}
.takeoff-workspace[data-takeoff-state=opening] #ai-out::before{content:"";display:block;margin:26px 22px;height:max(380px,calc(100vh - 300px));
 background:linear-gradient(#10244117,#10244117) 0 0/min(46%,420px) 30px no-repeat,
  linear-gradient(#1024410f,#1024410f) 0 54px/min(72%,640px) 11px no-repeat,linear-gradient(#1024410f,#1024410f) 0 76px/min(64%,560px) 11px no-repeat,linear-gradient(#1024410f,#1024410f) 0 98px/min(58%,500px) 11px no-repeat,
  linear-gradient(#102441,#102441) 0 140px/100% 1.5px no-repeat,linear-gradient(#102441,#102441) 0 226px/100% 1.5px no-repeat,linear-gradient(#102441,#102441) 0 140px/1.5px 87.5px no-repeat,linear-gradient(#102441,#102441) 100% 140px/1.5px 87.5px no-repeat,
  linear-gradient(#10244124,#10244124) 25% 140px/1px 86px no-repeat,linear-gradient(#10244124,#10244124) 50% 140px/1px 86px no-repeat,linear-gradient(#10244124,#10244124) 75% 140px/1px 86px no-repeat,
  repeating-linear-gradient(to bottom,#10244114 0 1px,transparent 1px 58px) 0 268px/100% calc(100% - 268px) no-repeat,
  repeating-linear-gradient(to bottom,transparent 0 21px,#1024410f 21px 32px,transparent 32px 58px) 0 268px/min(42%,460px) calc(100% - 268px) no-repeat,
  repeating-linear-gradient(to bottom,transparent 0 21px,#10244117 21px 32px,transparent 32px 58px) 100% 268px/min(9%,90px) calc(100% - 268px) no-repeat}

/* ---------- Reading: message and steps beside the drawing-set register; one status, in the panel ---------- */
.takeoff-workspace .tw-reading{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.95fr);gap:24px clamp(28px,4vw,56px);max-width:none;align-items:start}
.tw-reading-main{min-width:0;max-width:640px}
.takeoff-workspace .tw-reading-cancel{margin-top:16px}
.takeoff-workspace[data-takeoff-state=reading] #ai-status,.takeoff-workspace[data-takeoff-state=error] #ai-status{position:absolute!important;width:1px;height:1px;margin:0;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.takeoff-workspace[data-takeoff-state=reading] #ai-out{display:flex;flex-direction:column;min-height:calc(100vh - 180px)}
.takeoff-workspace[data-takeoff-state=reading] #ai-out>.tw-reading{flex:1 0 auto}
@media(min-width:701px){.takeoff-workspace[data-takeoff-state=reading] #ai-bar{display:none}}
@media(max-width:900px){.takeoff-workspace .tw-reading{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){.takeoff-workspace .tw-reading-cancel{display:none!important}}
.tw-register{position:relative;min-width:0;margin:0;padding:18px 18px 16px;border:1.5px solid #102441;background:#fffefa}
.tw-register-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin:0 0 14px;font:500 11px/1.3 var(--font-mono,'IBM Plex Mono',ui-monospace,monospace);letter-spacing:.14em;text-transform:uppercase;color:#526070}
.tw-register-n{color:#102441;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.tw-register-grid{position:relative;display:grid;grid-template-columns:repeat(auto-fill,minmax(50px,1fr));gap:8px;overflow:hidden}
.tw-register-grid i{position:relative;display:block;aspect-ratio:3/2;border:1px solid #10244140;background:#faf9f5}
.tw-register-grid i::after{content:"";position:absolute;right:2px;bottom:2px;width:34%;height:30%;border-left:1px solid #10244140;border-top:1px solid #10244140}
.tw-register-grid.is-pending i{border-style:dashed}
.tw-register-grid i.is-indexed{background:#e6e9ee;border-color:#102441}
.tw-register-grid i.is-indexed::after{border-color:#102441}
.tw-register-grid i.is-read{background:#102441;border-color:#102441}
.tw-register-grid i.is-read::after{border-color:#BA8B37}
.tw-register-grid i.is-next{border:1.5px solid #BA8B37}
.tw-register-groups{display:flex;gap:3px;margin:14px 0 0}
.tw-register-groups[hidden]{display:flex;visibility:hidden}
.tw-register-groups i{flex:1 1 0;height:6px;background:#10244118}
.tw-register-groups i.is-done{background:#BA8B37}
.takeoff-workspace #ai .tw-register-stage{display:flex;align-items:center;gap:8px;margin:16px 0 0;font:500 11px/1.3 var(--font-mono,'IBM Plex Mono',ui-monospace,monospace);letter-spacing:.14em;text-transform:uppercase;color:#71521e}
.tw-register-stage::before{content:"";width:7px;height:7px;background:#BA8B37}
.takeoff-workspace #ai .tw-register-key{display:flex;flex-wrap:wrap;gap:6px 18px;margin:12px 0 0;padding-top:12px;border-top:1px solid #1024411a;font:400 12px/1.3 var(--font-body,sans-serif);color:#526070}
.tw-register-key span{display:inline-flex;align-items:center;gap:7px}
.tw-register-key i{display:inline-block;width:15px;height:10px;border:1px solid #102441;background:#e6e9ee}
.tw-register-key i.is-read{background:#102441}
@media(max-width:700px){.tw-register{padding:14px 14px 12px}.tw-register-grid{grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:6px}}

/* ---------- Result and error states ---------- */
.takeoff-workspace .tw-fallback{margin:0;padding:18px 22px 20px;border-top:1px solid #10244118}
.takeoff-workspace .tw-fallback .ai-note-sm{margin:10px 0 0;max-width:68ch}
.takeoff-workspace .ai-block>.tw-fallback{margin:18px 0 0;padding:16px 0 0}
.takeoff-workspace .tw-error-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0}
/* Error and cancel screens carry their own retry, so the run bar steps aside (no duplicate action, no phone overlap). */
.takeoff-workspace[data-takeoff-state=error] #ai-bar{display:none!important}
.takeoff-workspace .tw-pdf-option{display:inline-flex;flex:0 1 auto;align-items:center;gap:10px;min-height:44px;margin:0;font:500 14px/1.3 var(--font-body,sans-serif);color:#102441;cursor:pointer}
.takeoff-workspace #ai .tw-pdf-option input[type=checkbox],.takeoff-workspace .tw-pdf-option input[type=checkbox]{flex:0 0 auto;width:18px;height:18px;min-height:0;margin:0;padding:0;border-radius:2px;accent-color:#102441}
@media(min-width:701px){.takeoff-workspace .tw-pdf-option{white-space:nowrap}}

/* Callouts are flat tinted blocks, never a side stripe; brand colours only. */
.takeoff-workspace .tw-file-readiness{background:#efebe1;border:1px solid #10244118;border-left-width:1px;color:#102441}
.takeoff-workspace #ai-file-list li{border-left:1px solid var(--line,#10244124)}
.takeoff-workspace .tw-review-alert{border-left:0;background:#f3ead7;border:1px solid #ba8b3740}
.takeoff-workspace .ai-block.qs,.takeoff-workspace .ai-method{border-left:0}
.takeoff-workspace .ai-price-sum{border-left:0}
/* While a read runs or a saved project opens, the page is one task: the site footer and the sheet's
   bottom band wait, so nothing below the panel jumps when the result arrives (even when scrolled down). */
.takeoff-workspace:is([data-takeoff-state=reading],[data-takeoff-state=opening]) .site-foot,.takeoff-workspace:is([data-takeoff-state=reading],[data-takeoff-state=opening]) #ai .ai-sheet .ts-foot{display:none}

/* ---------- Preparation density (compact budget of 10/09: < 1650 px at 375, < 1500 px at 1440) ----------
   Removes inflated space only; every field, note and link stays on the page.
   - The privacy link sits inside a sentence, so it keeps the paragraph's line height (the 44 px
     rule is for standalone links; the phone target test exempts inline links).
   - The trade hint has no trailing paragraph margin inside its field.
   - The footer mark sits beside the name instead of above it, and its phone line has no paragraph margin. */
.takeoff-workspace #ai .est-consent a { display:inline; min-height:0; }
.takeoff-workspace #ai #ai-trade-help { margin-bottom:0; }
.takeoff-workspace .tw-compact-footer .brand-name { display:inline-block; line-height:44px; white-space:nowrap; }
.takeoff-workspace .tw-compact-footer .brand-name img { display:inline-block; vertical-align:middle; margin:-4px 4px 0 0; }
.takeoff-workspace .tw-compact-footer p { margin:0; }
@media(max-width:700px) {
 /* The phone padding this file meant for the takeoff section (14/16) lost to estimate.css's
    #main > .sec-tight (18/34); restate it with enough weight. */
 .takeoff-workspace #main > .est-tool.sec-tight { padding-block:14px 16px; }
 .takeoff-workspace .tk-workspace-intro { padding:14px 0 10px; gap:8px; }
 .takeoff-workspace #ai-capture { padding:10px; }
 .takeoff-workspace #ai #ai-trade-help { line-height:1.45; }
 .takeoff-workspace #ai #ai-notes-wrap { margin:6px 0; }
 .takeoff-workspace .tk-advanced { margin-bottom:0; }
 .takeoff-workspace .tk-advanced>summary { padding-block:10px; font-size:16px; line-height:1.35; }
 .takeoff-workspace .tw-compact-footer { padding:14px 0; }
 .takeoff-workspace .tw-compact-footer p { font-size:15px; line-height:1.4; }
}

/* ---------- Sign-in is checked before the workspace is usable (audit 07/10, F10) ----------
   estimate.html marks the page before the first paint; estimate-ai.js removes the mark once the account is
   confirmed (or shows why it is not). The form keeps its place, so nothing moves when it appears. */
html.nl-auth-pending .takeoff-workspace .est-form-col,html.nl-auth-pending .takeoff-workspace #ai-bar,html.nl-auth-pending .takeoff-workspace .tw-mobile-photo{visibility:hidden}
html.nl-auth-pending .takeoff-workspace #ai-status:empty::before{content:"Checking your sign-in…"}
