body{font-size:15px}
.hdr{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:16px 32px;border-bottom:1px solid var(--line)}
.mark.big{font-size:18px}
.page{max-width:1200px;margin:0 auto;padding:28px 32px 48px}
.head{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}
.jobname{font-size:28px!important;font-weight:700;background:transparent!important;border:none!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;padding:4px 0!important}
.cols{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
.left{flex:1 1 360px;min-width:0;border-radius:20px;padding:16px 18px;gap:12px}
.left textarea{font-size:15px;min-height:260px}
.right{flex:1 1 520px;min-width:0;display:flex;flex-direction:column;gap:16px}
.right .panel{padding:14px 18px;border-radius:18px}
.stats{display:flex;flex-wrap:wrap;gap:12px}
.stat{flex:1 1 200px}
.num{font-size:32px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.15}
.items{display:flex;flex-direction:column}
.line{display:grid;grid-template-columns:64px 1fr auto 32px;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.line input[type=number]{padding:5px 6px;text-align:center}
.line .lbl{min-width:0}
.line .lbl input{background:transparent;border:none;padding:0;font-size:15px}
.line .hrs{font-family:var(--mono);font-size:12px;color:var(--muted);text-align:right;white-space:nowrap}
.line .note{color:var(--muted);font-size:13px}
.line.off{opacity:.4}
.rushrow{flex-direction:row!important;align-items:center;gap:10px!important;cursor:pointer;font-weight:600}
.rushrow .small{font-weight:400;margin-left:auto}
.ask{border:1.5px solid var(--amber)!important;background:rgba(255,204,51,.06)!important}
.ask h3{color:var(--t-amber)}
.flag{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.flag .dot{margin-top:7px}
.row.end{justify-content:flex-end;flex-wrap:wrap}
.btn.big{min-height:46px;padding:0 18px;font-size:15px}
.btn.primary.auto{width:auto;padding:0 22px;min-height:46px;font-size:15px}
.settings{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin-bottom:16px}
.set-row{display:grid;grid-template-columns:1fr 72px 12px 72px;gap:6px;align-items:center;font-size:14px}
.set-row.one{grid-template-columns:1fr 100px}
.set-row span.d{color:var(--muted);text-align:center}
.printout{display:none}
@media (max-width:640px){.hdr,.page{padding-left:16px;padding-right:16px}.jobname{font-size:22px!important}.line{grid-template-columns:52px 1fr 32px}.line .hrs{grid-column:2}}
@media print{
  body{background:#fff;color:#111}
  .hdr,.page,.toast{display:none!important}
  .printout{display:block;font-family:Figtree,system-ui,sans-serif;color:#111;padding:24px}
  .printout h1{font-size:24px;margin:0 0 4px}
  .printout table{width:100%;border-collapse:collapse;margin:16px 0}
  .printout td,.printout th{text-align:left;padding:8px 6px;border-bottom:1px solid #ddd;font-size:13px}
  .printout .tot{font-size:18px;font-weight:700}
}

.big-empty{padding:40px 24px;font-size:15px;line-height:1.6}
.spinner{width:16px;height:16px;border-radius:999px;border:2px solid rgba(0,229,255,.25);border-top-color:var(--cyan);animation:spin .8s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
#qStage{display:flex;flex-direction:column;gap:16px}
#qStage.hidden,#quoteStage.hidden{display:none}
#quoteStage{display:flex;flex-direction:column;gap:16px}
.summary{font-size:16px;line-height:1.55}
.scope-list{display:flex;flex-wrap:wrap;gap:6px}
.sources{display:flex;flex-direction:column;gap:4px;font-size:13px}
.sources a{color:var(--t-cyan);text-decoration:none}
.questions{display:flex;flex-direction:column;gap:14px}
.q{display:flex;flex-direction:column;gap:6px;padding-top:12px;border-top:1px solid var(--line)}
.q:first-child{border-top:none;padding-top:0}
.q .qt{font-weight:600}
.q .why{font-size:13px;color:var(--muted)}
.q .other{max-width:320px}
.quickqs{border:1.5px solid var(--cyan)!important;background:rgba(0,229,255,.05)!important}
.assume{display:flex;gap:10px;font-size:14px}
.assume .dot{margin-top:7px;background:var(--violet);box-shadow:0 0 8px rgba(177,77,255,.6)}
@media (prefers-reduced-motion:reduce){.spinner{animation:none}}

.tiers{display:flex;flex-direction:column;gap:6px}
.tier-row{display:grid;grid-template-columns:minmax(120px,1.4fr) repeat(3,minmax(70px,1fr)) 34px;gap:8px;align-items:center}
.tier-row.head{font-size:12px;color:var(--muted);font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em}
.left .seg button{height:34px}
