/* Additions for the live portal only. app.css is the prototype's CSS, copied unchanged. */
.sync.off i{background:var(--ink3)}
.lform{border:0;padding:0;margin:14px 0 8px;max-width:380px}
.lform .btn{align-self:flex-start}
.lerr{color:var(--red);font-size:14px;font-weight:600;margin:0}
.notyet{background:var(--panel);border:1px dashed var(--line);border-radius:8px;padding:18px 20px;color:var(--ink2);max-width:640px}
.notyet b{color:var(--ink)}
.aout{font-size:12px;color:var(--ink3);font-weight:600;margin-left:6px}
.aout.refused,.aout.failed{color:var(--red)}
.vuln{margin:10px 0 0;font-size:14px;color:var(--ink2)}
.vuln b{color:var(--ink)}
.vuln.yes{background:color-mix(in srgb,var(--red) 12%,transparent);border:1px solid var(--red);border-radius:6px;padding:8px 10px;color:var(--red)}
.vuln.yes b{color:var(--red)}
tr.valert td{color:var(--red);font-weight:700;background:color-mix(in srgb,var(--red) 10%,transparent)}
/* Phones and tablets (quality pass, Dan 2026-11-09): grid columns may shrink below their content, tab rows wrap. */
.cols > *, .mdgrid > *, .rgrid > *, .formcard .frow > *{min-width:0}
.formcard input, .formcard select, .formcard textarea{max-width:100%;box-sizing:border-box}
@media (max-width:860px){
  .seg{display:flex;flex-wrap:wrap;max-width:100%}
  .seg button{flex:1 1 auto}
}
@media (max-width:480px){ .formcard .frow{grid-template-columns:1fr} }
@media (max-width:860px){ .nav .navg{display:none} }   /* the menu runs sideways on phones: section headings would stack */
