/* Lugoda Sentinel — Forms runner, asset-detail, submission summary, launcher + toast.
   Dark theme, red accent. Builds on .scrim/.modal/.btn/.pill/.chip from components.css. */

/* ====================  RUNNER LAYOUT  ==================== */
.fm-modal .fm-sub{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px}
.fm-modal .fm-ctx{font-size:12px;color:var(--muted)}
.fm-body{display:flex;gap:0;padding:0}
.fm-rail{flex:0 0 200px;border-right:1px solid var(--line);padding:14px 10px;background:var(--panel2)}
.fm-pane{flex:1;padding:18px 20px;min-width:0;max-height:58vh;overflow:auto}
@media(max-width:680px){
  .fm-body{flex-direction:column}
  .fm-rail{flex:none;border-right:none;border-bottom:1px solid var(--line);display:flex;gap:8px;overflow-x:auto}
}

/* ----  section rail  ---- */
.fm-railchip{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:9px;cursor:pointer;
  color:var(--muted);font-size:13px;transition:.15s;white-space:nowrap}
.fm-railchip:hover{background:var(--panel)}
.fm-railchip .fm-railn{flex:0 0 22px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  font-size:11px;font-weight:700;background:#33333c;color:#bbb}
.fm-railchip.active{background:var(--red);color:#fff}
.fm-railchip.active .fm-railn{background:#fff;color:var(--red)}
.fm-railchip.done{color:var(--green)}
.fm-railchip.done .fm-railn{background:#13362a;color:var(--green)}
.fm-railchip.done .fm-railn::after{content:'✔';font-size:11px}
.fm-railchip.done .fm-railt{opacity:.85}

.fm-sectitle{font-size:15px;margin:0 0 14px;color:var(--txt)}

/* ----  field row  ---- */
.fm-field{margin-bottom:16px}
.fm-label{display:block;font-size:13px;color:var(--txt);margin-bottom:7px;font-weight:500}
.fm-req{color:var(--red);font-style:normal;margin-left:2px}
.fm-ctrl{display:block}
.fm-err{font-size:11px;color:#ff8b8b;margin-top:5px;display:none}
.fm-err.on{display:block}

.fm-input{width:100%;max-width:420px;background:var(--ink);border:1px solid var(--line);color:var(--txt);
  border-radius:9px;padding:9px 11px;font-size:13px;font-family:inherit}
.fm-input:focus{outline:none;border-color:var(--red)}
.fm-textarea{max-width:100%;resize:vertical;min-height:64px}
select.fm-input{max-width:260px;cursor:pointer}

.fm-numwrap{display:inline-flex;align-items:center;gap:8px}
.fm-numwrap .fm-input{max-width:160px}
.fm-unit{font-size:12px;color:var(--muted)}

/* ----  segmented controls (passfailna / score / boolean)  ---- */
.fm-seg{display:inline-flex;gap:6px;flex-wrap:wrap}
.fm-segb{background:var(--panel2);border:1px solid var(--line);color:var(--muted);
  border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:.12s;min-width:44px;text-align:center}
.fm-segb:hover{border-color:#50505c;color:var(--txt)}
.fm-score .fm-segb{min-width:40px}

/* selected states — colour-coded */
.fm-segb.sel{color:#fff;border-color:transparent}
.fm-pfn .fm-segb.green.sel{background:#13362a;border-color:var(--green);color:var(--green)}
.fm-pfn .fm-segb.red.sel{background:#3a1416;border-color:var(--red);color:#ff8b8b}
.fm-pfn .fm-segb.grey.sel{background:#2c2c34;border-color:var(--grey);color:#b9b9c2}
.fm-bool .fm-segb.green.sel{background:#13362a;border-color:var(--green);color:var(--green)}
.fm-bool .fm-segb.grey.sel{background:#2c2c34;border-color:var(--grey);color:#b9b9c2}
.fm-score .fm-segb.sel{background:var(--red);border-color:var(--red);color:#fff}

/* ----  photo  ---- */
.fm-photobar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.fm-file{display:none}
.fm-thumb{margin-top:10px}
.fm-thumb img{max-width:200px;max-height:150px;border-radius:8px;border:1px solid var(--line)}

/* ----  signature  ---- */
.fm-sigbox{display:inline-block}
.fm-sig{display:block;width:min(420px,100%);height:110px;background:var(--ink);
  border:1px dashed var(--line);border-radius:9px;touch-action:none;cursor:crosshair}
.fm-sigbar{display:flex;align-items:center;gap:10px;margin-top:6px}
.fm-sighint{font-size:11px;color:var(--muted);flex:1}

/* ----  footer / progress bar  ---- */
.fm-foot{align-items:center}
.fm-summary{font-size:12px;color:#ff8b8b;display:none}
.fm-summary.on{display:block}

/* ====================  ASSET DETAIL  ==================== */
.fm-asset .fm-pchips{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 16px}
.fm-pchip{font-size:11px;font-weight:700;padding:5px 12px;border-radius:999px;border:1px solid var(--line)}
.fm-pchip.on{background:#13362a;color:var(--green);border-color:#1e5a44}
.fm-pchip.off{background:#3a1416;color:#ff8b8b;border-color:var(--red-dark)}
.fm-lastsub{margin:4px 0 16px}
.fm-lasthd{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin-bottom:6px}
.fm-lastsub .lrow{border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.fm-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}

/* ====================  LAUNCHER (forms view)  ==================== */
.fm-linegroup{margin-bottom:22px}
.fm-linehd{margin-bottom:12px}
.fm-formgrid{align-items:stretch}
.fm-formcard{display:flex;flex-direction:column}
.fm-formcard .cbody{display:flex;flex-direction:column;height:100%}
.fm-fctop{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.fm-ftitle{font-size:15px;margin:0 0 6px}
.fm-fblurb{font-size:12px;flex:1}
.fm-frefs{margin:10px 0 4px}
.fm-start{align-self:flex-start;margin-top:12px}
.fm-histtbl td:first-child{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px}

/* ====================  SUBMISSION SUMMARY  ==================== */
.fm-summodal{width:min(620px,100%)}
.fm-sumtbl td{vertical-align:top}
.fm-sumk{color:var(--muted);width:46%;font-size:12px}
.fm-sumimg{max-width:180px;max-height:130px;border-radius:8px;border:1px solid var(--line)}
.fm-sumsig{max-width:200px;height:60px;background:var(--ink);border:1px solid var(--line);border-radius:8px;padding:4px}

/* ====================  TOAST  ==================== */
.fm-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(0);
  background:#13362a;border:1px solid var(--green);color:var(--green);font-weight:600;font-size:13px;
  padding:11px 20px;border-radius:999px;z-index:90;box-shadow:var(--shadow);
  animation:fm-toastin .3s ease;white-space:nowrap}
.fm-toast.out{opacity:0;transform:translateX(-50%) translateY(10px);transition:.5s ease}
@keyframes fm-toastin{from{opacity:0;transform:translateX(-50%) translateY(14px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}

/* ====================  CAPTURE TIME + SOURCE BADGE (history)  ==================== */
.fm-when{display:flex;flex-direction:column;line-height:1.3;white-space:nowrap}
.fm-when b{font-size:12.5px;font-variant-numeric:tabular-nums;font-weight:600}
.fm-when .fm-ago{font-size:10.5px;color:var(--muted)}
.fm-src{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;
  padding:3px 9px;border-radius:999px;white-space:nowrap;border:1px solid transparent}
.fm-src.mobile{background:#102536;color:#9fd0ff;border-color:#15405e}
.fm-src.web{background:#2c2c34;color:#b9b9c2;border-color:var(--line)}
