*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:#0b0b0f;color:#eee}a{color:#d4af37}
header{background:#2a0a4a;border-bottom:3px solid #d4af37;padding:10px 14px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}
header b{color:#d4af37;font-size:1.1em}header nav a{margin-right:12px;text-decoration:none}main{padding:12px;max-width:1000px;margin:auto}
.card{background:#1a1424;border:1px solid #3d2a5c;border-radius:10px;padding:12px;margin:10px 0}
input,select,textarea,button{width:100%;padding:11px;margin:5px 0;font-size:16px;border-radius:8px;border:1px solid #5b3d8a;background:#120d1a;color:#eee}
input[type=checkbox]{width:auto}
button,.btn{background:#6a2bb3;border:1px solid #d4af37;color:#fff;font-weight:600;cursor:pointer}
button.small,.btn{width:auto;padding:6px 10px;font-size:14px;border-radius:8px;text-decoration:none;display:inline-block;margin:3px 2px}
button.danger{background:#5a1a24;border-color:#e5484d}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row>*{flex:1;min-width:140px}.row>.btn,.row>button.small{flex:0}
.actions{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.actions form{margin:0}
.overdue{border-left:6px solid #e5484d;background:#2a1018}.soon{border-left:6px solid #d4af37}.done{opacity:.6;border-left:6px solid #3a9}.archived{opacity:.45;border-style:dashed}
.tag{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;background:#3d2a5c;margin-right:4px}.pri{background:#d4af37;color:#000}
.red{color:#ff6b6b;font-weight:700}img.ph{max-width:100%;max-height:260px;border-radius:8px}
table{width:100%;border-collapse:collapse;font-size:14px}td,th{padding:6px;border-bottom:1px solid #3d2a5c;text-align:left;vertical-align:top}
.scroll{overflow-x:auto}h1,h2{color:#d4af37}.err{color:#ff6b6b}.ok{color:#3c9}.muted{color:#999;font-size:13px}
button:disabled{opacity:.5;cursor:not-allowed}
.docs .doc{padding:8px 0;border-bottom:1px solid #3d2a5c}.docs .doc:last-of-type{border-bottom:0}.docname{font-weight:600;word-break:break-word}
.docform{margin-top:8px;padding-top:8px;border-top:1px dashed #5b3d8a}.docform small{display:block}
/* crew-link / approval flow */
.card.await{border:1px solid #d4af37;border-left:6px solid #d4af37;background:#1a1424;color:#f3f0f7}
.tag.st-crew_completed{background:#d4af37;color:#000;font-weight:bold}
.tag.st-scheduled{background:#1d2c55;color:#cfe0ff;border:1px solid #5b7bd0}
.tag.st-complete{background:#123a22;color:#bdf0cb;border:1px solid #3a9}
.awaitc{color:#f0c94a;font-weight:bold}
.vdone{background:#120d1a;border:1px solid #d4af37;border-left:4px solid #d4af37;border-radius:6px;padding:6px 8px;margin:6px 0;color:#f3f0f7}
.card.await .muted,.vdone .muted{color:#c9c2d4}
.actions.approve form.row{display:flex;gap:6px;flex-wrap:wrap}
.actions.approve input{flex:1;min-width:180px}
.vlink{width:100%;font-family:monospace;font-size:13px}
.vend .desc{white-space:pre-wrap;font-size:1.05em}
.tag.bc{background:#5c0f14;color:#ffd7d9;border:1px solid #e5484d;font-weight:bold}.tag.bc-settled{background:#123a22;color:#bdf0cb;border-color:#3a9}.tag.bc-waived{background:#333;color:#ddd;border-color:#777}
.bcform{margin:6px 0}.bcform summary{cursor:pointer;color:#ff9aa0;font-weight:600}
.resend{gap:4px}.resend input{flex:2;min-width:160px;margin:3px 0}.resend button{flex:0}
.completed>summary{cursor:pointer;list-style:none}.completed>summary h2{display:inline}.completed>summary::before{content:'▸ ';color:#d4af37}.completed[open]>summary::before{content:'▾ '}
.doneitem{border-left:6px solid #3a9}.facts{display:grid;grid-template-columns:max-content 1fr;gap:3px 10px;margin:6px 0;font-size:14px}.facts dt{color:#c9c2d4;font-weight:600}.facts dd{margin:0;color:#f3f0f7;word-break:break-word}
img.thumb{max-width:160px;max-height:120px;border-radius:6px;border:1px solid #3d2a5c}.timeline summary{cursor:pointer;color:#d4af37}.timeline ol{margin:6px 0;padding-left:20px;font-size:13px;color:#e6e1ee}
/* stages / board / field check (dark, phone-readable) */
.tag.sb-not_started,.bc-not_started{background:#2b2b33;color:#ddd}
.tag.sb-scheduled,.bc-scheduled{background:#1f5fbf;color:#fff}
.tag.sb-crew_completed,.bc-crew_completed{background:#d4af37;color:#1a1200}
.tag.sb-field_verified,.bc-field_verified{background:#0b6e75;color:#fff}
.tag.sb-approved,.bc-approved{background:#1e8e3e;color:#fff}
.tag.sb-failed,.bc-failed{background:#b3261e;color:#fff}
.tag.sb-rework,.bc-rework{background:#e8710a;color:#fff}
.tag.stg{background:#33204f;color:#e9d9ff;border:1px solid #6a2bb3}
.tag.st-inspection{background:#3949ab;color:#fff}.tag.st-fm{background:#0b6e75;color:#fff}
.stagerow{border-left:6px solid #444;padding:8px 10px;margin:6px 0;background:#15101d;border-radius:8px}
.stagerow.s-scheduled{border-color:#1f5fbf}.stagerow.s-crew_completed{border-color:#d4af37}.stagerow.s-field_verified{border-color:#0b6e75}.stagerow.s-approved{border-color:#1e8e3e}.stagerow.s-failed{border-color:#b3261e}
.board{border-collapse:collapse;font-size:14px}.board th,.board td{border:1px solid #3d2a5c;padding:6px;text-align:center;white-space:nowrap}
.board td[class^=bc-]{font-weight:600;min-width:44px}
.legend{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.insp{border-left:6px solid #888}.insp.r-pass{border-color:#1e8e3e}.insp.r-fail{border-color:#b3261e}.insp.r-partial{border-color:#e8710a}
.tag.ir-pass{background:#1e8e3e;color:#fff}.tag.ir-fail{background:#b3261e;color:#fff}.tag.ir-partial{background:#e8710a;color:#fff}
.suggest{background:#2a1a0a;border:1px solid #e8710a;border-radius:8px;padding:8px;margin:6px 0}
.fmform{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.fmform input{flex:1 1 180px}.fmform button{flex:0 0 auto;width:auto}
.checks label{display:inline-flex;align-items:center;gap:4px;margin:4px 10px 4px 0;width:auto}.checks input{width:auto}
.hiddentrade{opacity:.55}.tedit{display:flex;flex-wrap:wrap;gap:6px}.tedit input{flex:1 1 160px}
.coname{font-weight:600;color:#f3e3a6;font-size:.95em}
.coprompt{background:#2a2010;border:1px solid #d4af37;border-left:6px solid #d4af37;color:#f6e7b0;border-radius:8px;padding:10px 12px;font-size:16px}.coprompt a{color:#ffd54f;font-weight:700}
.reqfrom{background:#1a1424;border-left:5px solid #d4af37;padding:8px 10px;border-radius:8px;font-size:16px}
/* inspection gates */
.locked{color:#ffb4ab;font-weight:600;margin:4px 0}.stagerow.is-locked{border-color:#b3261e;background:#1d1013}
button[disabled]{opacity:.5;cursor:not-allowed;background:#2b2b33;border-color:#555}
.tag.overridden{background:#b3261e;color:#fff}
.bc-locked,.tag.sb-locked{background:#3a1216;color:#ffb4ab;border:1px dashed #b3261e}
.release{padding:8px 0;border-bottom:1px solid #3d2a5c;font-size:16px}.release:last-child{border-bottom:0}.release.done b{color:#7ee2a0}.release.wait{color:#ddd}
.waiting{border-left:6px solid #e8710a}.waiting ul{margin:6px 0;padding-left:18px}.waiting li{margin:4px 0}
/* inspection gates */
.locked{color:#ffb4ab;font-weight:600;margin:4px 0}.stagerow.is-locked{border-color:#b3261e;background:#1d1013}
button[disabled]{opacity:.5;cursor:not-allowed;background:#2b2b33;border-color:#555}
.tag.overridden{background:#b3261e;color:#fff}
.bc-locked,.tag.sb-locked{background:#3a1216;color:#ffb4ab;border:1px dashed #b3261e}
.release{padding:8px 0;border-bottom:1px solid #3d2a5c;font-size:16px}.release:last-child{border-bottom:0}.release.done b{color:#7ee2a0}.release.wait{color:#ddd}
.waiting{border-left:6px solid #e8710a}.waiting ul{margin:6px 0;padding-left:18px}.waiting li{margin:4px 0}
.invite{border-left:6px solid #d4af37}.invite input{font-family:monospace;font-size:14px}
/* vendor pilot: crews per community, crew table, role legend */
.crewcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.crewcards .crewcard{margin:0;border-left:6px solid #6a2bb3}
.crewtable a.tag{color:#e9d9ff;text-decoration:none}
.checks label.check{padding:6px 10px;border:1px solid #3d2a5c;border-radius:8px;background:#120d1a}
details.card>summary{cursor:pointer}
.rolelegend li{margin:4px 0}
@media (max-width:600px){.crewtable{font-size:13px}.checks label.check{width:100%}}
@media (max-width:600px){
  .crewtable,.crewtable tbody{display:block}
  .crewtable tr:first-child{display:none}
  .crewtable tr{display:block;border:1px solid #3a2a55;border-radius:10px;padding:8px 10px;margin:0 0 10px}
  .crewtable td{display:block;border:0;padding:2px 0;font-size:14px}
  .crewtable td:first-child{font-weight:700;font-size:16px}
  .crewtable td:nth-child(2):not(:empty)::before{content:"Lead: ";color:#aaa}
  .crewtable td:nth-child(4):empty,.crewtable td:nth-child(5):empty{display:none}
  .crewtable td:last-child{padding-top:6px}
}
/* builder requests + FM assignments */
.tag.wob,.tag.br-sent,.tag.br-acknowledged{background:#fde68a;color:#78350f}
.tag.br-approved{background:#bbf7d0;color:#14532d}.tag.br-declined{background:#fecaca;color:#7f1d1d}
.tag.br-resolved{background:#e5e7eb;color:#374151}.tag.br-draft{background:#e0e7ff;color:#3730a3}
.card.wob,.card.br-sent,.card.br-acknowledged{border-left:4px solid #f59e0b}.card.br-declined{border-left:4px solid #dc2626}
.wobline{background:#fffbeb;border:1px solid #fcd34d;border-radius:6px;padding:6px 8px;margin:6px 0}
.brphotos{display:flex;flex-wrap:wrap;gap:6px}.brphotos img{width:96px;height:96px;object-fit:cover;border-radius:6px}
.checks label{display:flex;gap:8px;align-items:center;font-weight:normal}.checks input[type=checkbox]{width:auto}
#fm-none{font-size:1.05em}
label.chk{display:flex;gap:8px;align-items:flex-start;margin:8px 0;font-weight:normal;flex-wrap:wrap}label.chk input[type=checkbox]{width:auto;margin-top:4px}
