/* MODEL / SERIAL NUMBER card (checkout/ms_card.tpl + rv_models.js), staff AND customers, on the cart AND on My Account. Scoped to the card's own root (.rv-ms), so any page that includes the card gets the look (re-theme rule 20: one copy; it was in rv_cart.css). In the style of the dashboard order page's tool, new code: tabs "Assigned to Order" and the customer's stored list by make, rows with
   model / serial / date code / the quarter built, "A" to assign a stored machine, x to remove, hints under a row. Theme tokens only. */
.rv-ms .rv-ms-help { margin:0 0 12px; color:var(--muted); font-size:13px; line-height:1.5; }
.rv-ms .rv-ms-tabs { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:0 0 12px; }
.rvtheme .rv-ms .rv-ms-tab { width:auto; flex:0 0 auto; display:inline-flex; align-items:center; gap:7px; padding:7px 13px; border:1px solid var(--line2); border-radius:999px; background:var(--panel); color:var(--txt); font-family:inherit; font-size:13px; font-weight:600; line-height:1.2; cursor:pointer; }
.rvtheme .rv-ms .rv-ms-tab:hover { border-color:var(--accent); }
.rvtheme .rv-ms .rv-ms-tab[aria-selected="true"] { background:rgba(99,102,241,.2); border-color:var(--accent); }
.rvtheme .rv-ms .rv-ms-tab[data-pane="assigned"][aria-selected="true"] { background:rgba(52,211,153,.14); border-color:var(--good); }
.rv-ms .rv-ms-tab[hidden] { display:none; }
.rvtheme .rv-ms .rv-ms-tab, .rvtheme .rv-ms .rv-ms-btns button, .rvtheme .rv-ms .rv-ms-chip { text-transform:none; letter-spacing:0; box-shadow:none; text-shadow:none; }   /* the site's button look is uppercase with a glow; these are small tools, sentence case, flat */
.rv-ms .rv-ms-n { font-style:normal; min-width:20px; padding:1px 6px; border-radius:999px; background:rgba(2,6,18,.45); color:var(--muted); font-size:11.5px; font-weight:700; text-align:center; }
.rv-ms .rv-ms-tab.is-flash .rv-ms-n { animation:rv-ms-flash .9s ease-out; }
@keyframes rv-ms-flash { 0% { background:var(--good); color:#06281d; } 100% { background:rgba(2,6,18,.45); } }
.rv-ms .rv-ms-sep { color:var(--muted); font-size:12.5px; margin:0 2px 0 8px; }
.rv-ms .rv-ms-pane { display:grid; gap:10px; margin:0 0 10px; }
.rv-ms .rv-ms-pane[hidden], .rv-ms .rv-ms-pane:not(:has(.rv-ms-row:not([hidden]))) { display:none; }
.rv-ms .rv-ms-row { display:grid; grid-template-columns:minmax(190px,1.7fr) minmax(130px,1fr) 88px auto; align-items:end; gap:8px 12px; padding:12px; border:1px solid var(--line); border-radius:12px; background:rgba(2,6,18,.25); transition:background .2s, border-color .2s; }
.rv-ms .rv-ms-row[data-pane="assigned"] { border-color:rgba(52,211,153,.35); background:rgba(52,211,153,.06); }
.rv-ms .rv-ms-row[hidden] { display:none; }
.rv-ms .rv-ms-row.is-assigned { border-color:var(--good); background:rgba(52,211,153,.14); }
.rv-ms .rv-ms-f { display:block; margin:0; min-width:0; }
.rv-ms .rv-ms-f > span { display:block; margin:0 0 4px; color:var(--muted); font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.rvtheme .rv-ms .rv-ms-row select, .rvtheme .rv-ms .rv-ms-row input[type=text] { width:100%; height:40px; padding:0 10px; box-sizing:border-box; background:#0a1020; border:1px solid var(--line2); border-radius:8px; color:var(--txt); font-family:inherit; font-size:14px; font-weight:500; }
.rvtheme .rv-ms .rv-ms-row select:focus, .rvtheme .rv-ms .rv-ms-row input[type=text]:focus { outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent); }
.rvtheme .rv-ms .rv-ms-row input[disabled] { background:rgba(2,6,18,.35); border-style:dashed; color:var(--faint); }
.rv-ms .rv-ms-btns { display:flex; gap:6px; align-items:center; justify-content:flex-end; }
.rvtheme .rv-ms .rv-ms-btns button { width:auto; height:36px; min-width:36px; padding:0 11px; border:1px solid var(--line2); border-radius:8px; background:var(--panel); color:var(--txt); font-family:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.rvtheme .rv-ms .rv-ms-btns .rv-ms-assign { background:var(--good); border-color:var(--good); color:#06281d; }
.rvtheme .rv-ms .rv-ms-btns .rv-ms-assign:hover { filter:brightness(1.1); }
.rv-ms .rv-ms-row[data-pane="assigned"] .rv-ms-assign { display:none; }
.rvtheme .rv-ms .rv-ms-btns .rv-ms-remove { background:rgba(248,113,113,.12); border-color:rgba(248,113,113,.4); color:var(--bad); font-size:18px; }
.rvtheme .rv-ms .rv-ms-btns .rv-ms-remove:hover { background:rgba(248,113,113,.4); color:#fff; }
.rvtheme .rv-ms .rv-ms-btns .rv-ms-ns[aria-pressed="true"] { background:rgba(248,113,113,.12); border-color:rgba(248,113,113,.65); color:var(--bad); }
.rv-ms .rv-ms-note { grid-column:1 / -1; }
.rv-ms .rv-ms-note:empty { display:none; }
.rv-ms .rv-ms-warn { margin:2px 0 0; padding:8px 11px; border:1px solid rgba(245,158,11,.4); border-radius:8px; background:rgba(245,158,11,.1); color:var(--warn); font-size:12.5px; line-height:1.5; }
.rv-ms .rv-ms-warn.is-bad { border-color:rgba(248,113,113,.45); background:rgba(248,113,113,.1); color:#fca5a5; }
.rv-ms .rv-ms-chips { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:8px; }
.rv-ms .rv-ms-chiplbl { color:var(--muted); font-size:12px; font-weight:600; }
.rvtheme .rv-ms .rv-ms-chip { width:auto; padding:5px 11px; border:1px solid var(--accent); border-radius:999px; background:rgba(99,102,241,.12); color:var(--txt); font-family:inherit; font-size:12.5px; font-weight:600; cursor:pointer; }
.rvtheme .rv-ms .rv-ms-chip:hover { background:var(--accent-ink); border-color:var(--accent-ink); color:#fff; }
.rv-ms .rv-ms-none { color:var(--muted); font-size:13px; font-style:italic; padding:4px 0 10px; }
.rv-ms .rv-ms-none[hidden] { display:none; }
.rv-ms .rv-ms-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.rvtheme .rv-ms .rv-ms-actions .btn { width:auto; flex:0 0 auto; }
.rv-ms .rv-ms-add { background:transparent; border:2px solid var(--good); color:var(--good); font-weight:700; }
.rv-ms .rv-ms-save { background:var(--good); border:2px solid var(--good); color:#06281d; font-weight:700; }   /* READY: solid green, like Confirm Order */
.rv-ms .rv-ms-save.rv-incomplete { background:transparent; color:var(--good); }   /* nothing to save yet, or a row still needs its model: green stroke only */
.rv-ms .rv-ms-save[disabled] { opacity:.6; cursor:default; }
.rv-ms .rv-ms-save.rv-incomplete:not([disabled]):hover { background:rgba(52,211,153,.12); }
.rv-ms .rv-ms-ok { flex:none; margin-left:-4px; }   /* the green check of a field that accepts its data, shown when the card can be saved */
.rv-ms .rv-ms-ok[hidden] { display:none; }
.rv-ms .rv-ms-hint { color:var(--muted); font-size:12.5px; font-weight:600; }
.rv-ms .rv-ms-hint:empty { display:none; }
.rv-ms .rv-ms-hint.is-bad { color:#fca5a5; }
.rvtheme .rv-ms .rv-ms-row select.rv-ok { border-color:var(--good); }
.rv-ms .rv-ms-row .err { display:block; margin-top:4px; color:#fca5a5; font-size:12px; font-weight:600; }
@media (max-width:760px) {
  .rv-ms .rv-ms-row { grid-template-columns:minmax(0,1fr) 92px; }
  .rv-ms .rv-ms-model { grid-column:1 / -1; }
    .rv-ms .rv-ms-btns { grid-column:1 / -1; justify-content:flex-start; }
}
/* My Account: the card sits inside the page's form; the tabs row has no Assigned tab and the buttons row only Add */
.rv-ms[data-mode="account"] .rv-ms-actions { margin-top:2px; }
