.job-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.job-detail-grid .panel:last-child { grid-column:1 / -1; }
.detail-list { display:grid; grid-template-columns:minmax(9rem,14rem) 1fr; gap:.55rem 1rem; margin:0; }
.detail-list dt { font-weight:700; color:var(--gg-muted); }
.detail-list dd { margin:0; }
.job-status-panel { margin-bottom:1rem; }
.status-form { display:flex; align-items:end; gap:.75rem; flex-wrap:wrap; }
.status-form label { display:flex; flex-direction:column; gap:.35rem; min-width:14rem; }
.status-form select { padding:.7rem; border:1px solid var(--gg-border); border-radius:6px; background:#fff; }
.crew-brief { display:grid; gap:1rem; margin:1rem 0; }
.crew-brief .panel { margin:0; min-width:0; }
.crew-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem 2rem; }
.crew-brief h3 { font-size:1.1rem; margin:1rem 0 .4rem; }
.crew-text { white-space:pre-wrap; overflow-wrap:anywhere; }
.crew-tasks { padding-left:1.5rem; }
.crew-tasks li { padding:.8rem .3rem; border-bottom:1px solid var(--gg-border,#ddd); break-inside:avoid; }
.crew-tasks li>div { display:flex; justify-content:space-between; gap:1rem; }
.crew-tasks small { color:var(--gg-muted,#666); }
.crew-form { display:grid; gap:1rem; margin-top:1rem; }
.crew-form label { display:grid; gap:.4rem; }
.crew-form textarea { width:100%; font-weight:400; }
.crew-form button { justify-self:start; }
.handover-checks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.crew-form .handover-check { display:flex; align-items:flex-start; gap:.75rem; margin:0; padding:1rem; border:1px solid var(--gg-border); border-radius:8px; background:#fff; cursor:pointer; }
.crew-form .handover-check input { width:1.2rem; height:1.2rem; flex:0 0 1.2rem; margin:.2rem 0 0; }
.handover-check span { display:grid; gap:.15rem; font-weight:400; }
.handover-check small { line-height:1.35; }
.invoice-next-action { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-top:1.25rem; padding-top:1rem; border-top:1px solid var(--gg-border); }
.invoice-next-action button { margin:0; }
.invoice-next-action span { color:var(--gg-muted); }
.crew-brief summary { cursor:pointer; font-weight:700; padding:.5rem 0; }
.crew-print-signoff { display:none; }
.crew-optional { padding:.5rem 0; }
.crew-actions { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.visit-history { margin-bottom:1rem; }
.visit-history h3 { font-size:1.1rem; margin-top:1.5rem; }
.visit-date-links { display:flex; gap:.75rem; flex-wrap:wrap; margin:.75rem 0; }
.visit-date-links a { border:1px solid var(--gg-border); padding:.5rem .75rem; border-radius:6px; }
.visit-record-list { list-style:none; padding:0; }
.visit-record-list li { display:flex; flex-wrap:wrap; gap:.5rem 1rem; padding:.8rem 0; border-bottom:1px solid var(--gg-border); }
.visit-record-list span { flex-basis:100%; white-space:pre-wrap; }
.visit-fields { border:0; padding:0; display:grid; gap:1rem; min-width:0; }
.crew-form .validation-summary-valid { display:none; }
.variation-document .invoice-totals{padding-bottom:0}.variation-create .validation-summary-valid,.variation-decision .validation-summary-valid{display:none}
.visit-fields label { display:grid; gap:.4rem; }
.visit-fields button { justify-self:start; }
.visit-guidance { display:grid; gap:.25rem; padding:1rem; margin:1rem 0; border-left:5px solid #718064; border-radius:6px; background:#eef2ea; }
.start-early-form { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; margin-top:.75rem; }
.start-early-form small { flex-basis:100%; color:var(--gg-muted); }
.visit-input-row { display:flex; align-items:stretch; gap:.5rem; }
.visit-input-row input { min-width:0; flex:1; }
.visit-input-row .visit-now { white-space:nowrap; padding:.65rem .8rem; }
.visit-fields small { color:var(--gg-muted); font-weight:400; }
.visit-inline-error { padding:.8rem 1rem; border-left:5px solid #a44435; border-radius:6px; background:#f8e9e5; color:#762d22; }
.visit-fields [aria-invalid="true"] { border-color:#a44435; outline:2px solid rgba(164,68,53,.15); }
.visit-photos { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1rem; }
.visit-photos img { max-width:100%; width:100%; height:200px; object-fit:cover; border-radius:8px; }
.before-camera-slots{display:grid;gap:.75rem}.add-before-photo{margin:.75rem 0 0}.add-before-photo+small{display:block;margin-top:.5rem}
.crew-workflow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;margin:0 0 1rem}.crew-workflow a{padding:.7rem .55rem;border:1px solid var(--gg-border);border-radius:7px;background:var(--gg-surface);font-size:.9rem;font-weight:700;text-align:center}.visit-milestones{display:flex;gap:.75rem;flex-wrap:wrap;margin:1rem 0}.visit-milestones form{margin:0}.visit-milestones button{margin:0}
@media(max-width:800px) {
  .job-detail-grid,.crew-grid,.handover-checks { grid-template-columns:1fr; }
  .job-detail-grid .panel:last-child { grid-column:auto; }
  .crew-destination .panel-heading { align-items:flex-start; flex-direction:column; }
  .visit-input-row { align-items:stretch; flex-direction:column; }
  .crew-workflow{grid-template-columns:1fr 1fr}.crew-workflow a:last-child{grid-column:1/-1}
  .panel-heading{align-items:flex-start;flex-direction:column;gap:1rem}
  .panel-heading>.secondary-button{box-sizing:border-box;width:100%;white-space:normal;text-align:center}
}
@media print {
  body:has(.crew-brief) .navbar,
  body:has(.crew-brief) footer,
  body:has(.crew-brief) #cookie-banner,
  body:has(.crew-brief) main>p,
  body:has(.crew-brief) .job-status-panel,
  body:has(.crew-brief) .job-detail-grid,
  body:has(.crew-brief) .activity-panel,
  body:has(.crew-brief) .print-hide { display:none!important; }
  body:has(.crew-brief) { font-size:10pt; background:white; color:#111; }
  body:has(.crew-brief) .main,body:has(.crew-brief) main { max-width:none!important; padding:0!important; margin:0!important; }
  body:has(.crew-brief) .page-heading { margin:0 0 1rem; }
  body:has(.crew-brief) h1 { font-size:22pt; }
  body:has(.crew-brief) h2 { font-size:15pt; break-after:avoid; }
  body:has(.crew-brief) h3 { break-after:avoid; }
  .crew-brief .panel,body:has(.crew-brief) .job-scope { border:0; border-bottom:1px solid #aaa; border-radius:0; box-shadow:none; padding:10pt 0; break-inside:auto; }
  .crew-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8pt 20pt; }
  .crew-grid>div { break-inside:avoid; }
  .crew-print-signoff { display:block; }
  .crew-optional { display:none; }
}
.variation-list{display:grid;gap:.75rem;margin:1rem 0}.variation-list article{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--gg-border)}.variation-list article>div{display:grid;gap:.25rem}.variation-list small{color:var(--gg-muted)}.variation-create{margin-top:1rem}.variation-create form,.variation-decision{display:grid;gap:1rem;margin-top:1rem}.variation-document{max-width:1100px}.variation-document .invoice-line{grid-template-columns:minmax(260px,1fr) 90px 110px 110px auto}.variation-issue{display:flex;align-items:center;gap:1rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--gg-border)}.variation-issue form{margin:0}.variation-lines{display:grid;margin:1rem 0}.variation-lines>div{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--gg-border)}.variation-lines span{display:grid}.variation-lines small{color:var(--gg-muted)}
@media(max-width:760px){.variation-list article,.variation-issue{align-items:flex-start;flex-direction:column}.variation-list .secondary-button{width:100%;text-align:center}}
.internal-cost-link{display:flex;align-items:center;justify-content:space-between;gap:1rem}.internal-cost-link h2,.internal-cost-link p{margin-block:.15rem}.job-cost-warning{display:grid;gap:.15rem;margin-top:.85rem;padding:.65rem .8rem;border-left:4px solid #a44435;border-radius:5px;background:#f8e9e5;color:#762d22}.job-cost-warning span{font-size:.9rem}.cost-summary{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:1.5rem}.cost-summary small{display:block;color:#dce5df}.cost-workspace{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem}.cost-workspace .panel{margin:0}.cost-ledger,.profit-table{display:grid}.cost-ledger-head,.cost-ledger article{display:grid;grid-template-columns:120px minmax(240px,2fr) 120px 110px 110px minmax(80px,auto);gap:1rem;align-items:start;padding:.8rem 0;border-top:1px solid var(--gg-border)}.cost-ledger-head,.profit-head{font-size:.75rem;font-weight:800;text-transform:uppercase;color:var(--gg-muted)}.cost-ledger article>span:nth-child(2),.profit-table article>span:first-child,.profit-table article>strong{display:grid}.cost-ledger .is-void{opacity:.6;text-decoration:line-through}.cost-ledger details summary{cursor:pointer;color:var(--gg-primary);font-weight:700}.cost-ledger details form{min-width:220px}.profit-head,.profit-table article{display:grid;grid-template-columns:minmax(220px,2fr) 100px repeat(4,110px) auto;gap:1rem;align-items:center;padding:.85rem 0;border-top:1px solid var(--gg-border)}.profit-table small{display:block}.negative-margin{color:#922f2f}@media(max-width:900px){.cost-workspace{grid-template-columns:1fr}.cost-ledger-head,.profit-head{display:none}.cost-ledger article,.profit-table article{grid-template-columns:1fr 1fr}.internal-cost-link{align-items:flex-start;flex-direction:column}.cost-summary{grid-template-columns:1fr 1fr}}
.supplier-order-list{display:grid}.supplier-order-head,.supplier-order-list article{display:grid;grid-template-columns:minmax(140px,1.1fr) minmax(280px,3fr) minmax(110px,1fr) minmax(120px,1fr) minmax(110px,1fr) 172px;gap:1rem;align-items:start;padding:.8rem 0;border-top:1px solid var(--gg-border)}.supplier-order-head{font-size:.75rem;font-weight:800;text-transform:uppercase;color:var(--gg-muted)}.supplier-order-list article>span,.supplier-order-list article>strong{display:grid}.supplier-order-list article form{display:grid;gap:.5rem}.supplier-order-list small{color:var(--gg-muted)}@media(max-width:900px){.supplier-order-head{display:none}.supplier-order-list article{grid-template-columns:1fr 1fr}.supplier-order-list article>span,.supplier-order-list article>strong,.supplier-order-list article>form{min-width:0}}
.profitability-table{min-width:1050px}.profitability-table th.numeric,.profitability-table td.numeric{text-align:right;font-variant-numeric:tabular-nums}.profitability-table td{vertical-align:middle}.profitability-table td:first-child small,.profitability-table td.numeric small{display:block;margin-top:.15rem}.profitability-table td:last-child{text-align:right}
.profit-head,.profit-table article{grid-template-columns:minmax(200px,2.2fr) minmax(0,.75fr) repeat(5,minmax(0,.8fr)) minmax(110px,1.15fr) auto}.profit-head>span,.profit-table article>span,.profit-table article>strong{min-width:0;justify-self:stretch;text-align:left}.profit-table article>a{justify-self:end}.profit-attention{display:inline-block;padding:.2rem .5rem;border-radius:99px;font-size:.78rem;font-weight:750;white-space:nowrap}.profit-attention.is-on-track{background:#e8eee8;color:var(--gg-primary)}.profit-attention.is-low-margin{background:#fff1da;color:#805312}.profit-attention.is-over-budget,.summary-attention{background:#f5e4e1!important;color:#922f2f}.summary-attention span,.summary-attention strong,.summary-attention small{color:#922f2f!important;opacity:1}.profitability-summary{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:900px){.profitability-summary{grid-template-columns:1fr 1fr}.profit-head{display:none}.profit-table article{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem 1rem;align-items:start}.profit-table article>span:nth-child(1){grid-column:1;grid-row:1}.profit-table article>a{grid-column:2;grid-row:1;justify-self:end}.profit-table article>span:nth-child(2),.profit-table article>span:nth-child(4),.profit-table article>strong:nth-child(6){display:none}.profit-table article>span:nth-child(3){grid-column:1;grid-row:2}.profit-table article>span:nth-child(5){grid-column:2;grid-row:2}.profit-table article>strong:nth-child(7){grid-column:1;grid-row:3}.profit-table article>span:nth-child(8){grid-column:2;grid-row:3}.profit-table article>span:nth-child(3)::before{content:"Revenue"}.profit-table article>span:nth-child(5)::before{content:"Actual cost"}.profit-table article>strong:nth-child(7)::before{content:"Margin"}.profit-table article>span:nth-child(8)::before{content:"Attention"}.profit-table article>span:nth-child(3)::before,.profit-table article>span:nth-child(5)::before,.profit-table article>strong:nth-child(7)::before,.profit-table article>span:nth-child(8)::before{display:block;margin-bottom:.15rem;font-size:.72rem;font-weight:800;text-transform:uppercase;color:var(--gg-muted)}}
