:root{--navy:#0b2a55;--blue:#245ec7;--light:#f5f8fc;--line:#d9e3ef;--text:#172235;--muted:#65758b;--orange:#cfd7df;--cyan:#aebbc8;--rpc:#5c7088;--ok:#23833d;--warn:#b46a09}
*{box-sizing:border-box}body{margin:0;background:#f2f5f9;color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif}.app-shell{max-width:1120px;margin:0 auto;padding:18px}.brand-bar{background:linear-gradient(135deg,#0b2a55,#164782);color:#fff;padding:24px;border-radius:16px;display:flex;justify-content:space-between;gap:24px;align-items:center;box-shadow:0 8px 26px rgba(11,42,85,.12)}.eyebrow{font-size:.84rem;letter-spacing:.08em;text-transform:uppercase;opacity:.82}.brand-bar h1{margin:4px 0 6px;font-size:clamp(1.65rem,4vw,2.5rem)}.brand-bar p{margin:0;max-width:760px;opacity:.88;line-height:1.5}.step-badge{white-space:nowrap;padding:10px 14px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(255,255,255,.1)}.wizard-card{background:#fff;border:1px solid var(--line);border-radius:16px;margin-top:18px;padding:22px;box-shadow:0 4px 18px rgba(30,55,90,.05)}.hidden{display:none}.section-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px}.section-head h2{margin:0 0 3px;font-size:1.35rem}.section-head p{margin:0;color:var(--muted)}.step-number{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:700;flex:0 0 auto}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid.compact{margin-top:14px}.form-grid label,.optional-box label{display:flex;flex-direction:column;gap:6px;font-weight:650;font-size:.92rem}.optional{font-weight:400;color:var(--muted)}input,select{width:100%;padding:11px 12px;border:1px solid #cbd8e6;border-radius:9px;background:#fff;font:inherit;color:var(--text)}input:focus,select:focus{outline:2px solid rgba(36,94,199,.18);border-color:var(--blue)}.optional-box{margin-top:16px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fbfcfe}.optional-box summary{cursor:pointer;font-weight:700;color:var(--navy)}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin-top:14px}.check-grid label{flex-direction:row;align-items:center;font-weight:500}.check-grid input{width:auto}.actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.primary-actions{justify-content:flex-end}.split-actions{justify-content:space-between}button{border:0;border-radius:9px;padding:12px 16px;font:inherit;font-weight:700;cursor:pointer}.primary{background:var(--blue);color:#fff}.secondary{background:#e8eef6;color:var(--navy)}button:hover{filter:brightness(.98)}.message{margin-top:12px;color:#a33}.summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.summary{border:1px solid var(--line);border-radius:10px;padding:13px;background:#fbfcfe}.summary span{display:block;color:var(--muted);font-size:.82rem;margin-bottom:5px}.summary strong{font-size:1.05rem;color:var(--navy)}.summary strong.pass{color:var(--ok)}.summary strong.fail{color:#b42a2a}.engineering-note{margin:14px 0;padding:11px 13px;background:#fff7ed;border-left:4px solid #f3a32b;border-radius:6px;color:#4a3a24}.layout-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:18px 0 8px}.layout-head h3{margin:0}.legend{font-size:.82rem;color:var(--muted);display:flex;gap:7px;align-items:center;flex-wrap:wrap}.swatch{display:inline-block;width:16px;height:10px;border:1px solid #5c7088}.s40{background:var(--orange)}.s20{background:var(--cyan)}.ibeam-icon{color:var(--rpc);font-weight:900;font-family:serif}.layout-canvas{border:1px solid var(--line);border-radius:12px;padding:8px;overflow:auto;background:#fff}.layout-canvas svg{width:100%;min-width:650px;height:auto;display:block}.pontoon{stroke:#5c7088;stroke-width:1;shape-rendering:geometricPrecision}.p40{fill:var(--orange)}.p20{fill:var(--cyan)}.rpc-ibeam{stroke:var(--rpc);stroke-linecap:square}.svg-title{font-weight:700;fill:var(--navy);font-size:14px}.svg-subtitle,.svg-dim,.svg-legend,.svg-row{fill:#60728a;font-size:10px}.svg-module{font-weight:700;fill:#18344f;font-size:10px}.dim{stroke:#5f7390;stroke-width:1}.disclaimer{margin-top:12px;color:#5e6b7b;font-size:.85rem;line-height:1.45}.review-box{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:15px;line-height:1.55}.review-box strong{color:var(--navy)}
@media(max-width:780px){.app-shell{padding:10px}.brand-bar{padding:18px;align-items:flex-start}.step-badge{display:none}.wizard-card{padding:16px}.form-grid,.check-grid{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-head{align-items:flex-start;flex-direction:column}.split-actions{justify-content:stretch}.split-actions button,.primary-actions button{width:100%}}


/* v1.2 RFQ-context and required-field additions */
.required-star{color:#c62828;font-weight:800}
.field-note{display:block;margin-top:5px;color:#6f8192;font-size:12px;line-height:1.35;font-weight:400}
input[readonly]{background:#f3f7fa;color:#455d71;cursor:not-allowed}
.hidden{display:none!important}

#summaryDownloadBtn{margin-left:10px}
@media(max-width:760px){#summaryDownloadBtn{margin-left:0;margin-top:10px;width:100%}}

/* v1.2.6: Platform Type is inherited from RFQ Level 2; drawing must remain fully visible on mobile. */
#platformType[readonly]{background:#f3f7fa;color:#17324d;font-weight:700}
.layout-canvas svg{min-width:0!important;width:100%!important;height:auto!important}
@media(max-width:780px){
  .layout-canvas{overflow-x:hidden}
  .layout-canvas svg{min-width:0!important;width:100%!important;max-width:100%!important}
}

/* v1.2.7: PDF download button and drawing readability refinements */
#summaryDownloadBtn{background:#e8eef6;color:var(--navy)}
.layout-canvas{padding:10px}
@media(max-width:780px){
  .layout-canvas{padding:6px;overflow-x:hidden}
  .layout-canvas svg{width:100%!important;max-width:100%!important;height:auto!important;min-width:0!important}
}

/* v1.2.9: web layout tuned toward PDF drawing style */
.layout-canvas{padding:14px 16px 12px;background:#fff;border-color:#cfd9e3}
.layout-head{margin-top:20px;margin-bottom:10px}
.layout-head h3{font-size:1.28rem;color:#17324d}
.legend{font-size:.84rem;gap:10px}
@media(max-width:780px){
  .layout-canvas{padding:8px 6px 6px}
  .layout-head h3{font-size:1.18rem}
  .legend{font-size:.78rem}
}

/* v1.2.12 UI cleanup
   Restore approved neutral marine palette and prevent old orange warning styling from returning. */
.form-grid > label,
.optional-box .form-grid > label{
  color:#17324d;
}
.form-grid select,
.optional-box select{
  color:#17324d;
  background:#fff;
}
.form-grid select option,
.optional-box select option{
  color:#17324d;
  background:#fff;
}

/* Keep any remaining informational engineering note neutral, never orange. */
.engineering-note{
  background:#f3f7fa;
  border-left-color:#5c7088;
  color:#455d71;
}

/* Approved legend / pontoon palette: light marine grey + navy-grey RPC. */
.s40{background:#cfd7df!important}
.s20{background:#aebbc8!important}
.ibeam-icon{color:#5c7088!important}
.swatch{border-color:#5c7088!important}
