/* Source Instances subtab ("Instances/VMs") -- ported from the former
   Source Inventory page. Only the classes not already defined in
   import_styles.html / base_styles.html are included here. */
.id-hint { font-family:"JetBrains Mono", monospace; color:var(--dim); cursor:help; }
.import-images-table th.col-volumes, .import-images-table td.col-volumes { text-align:center; }
.vol-num { font-family:"JetBrains Mono", monospace; font-size:13px; font-weight:600; color:var(--ink); }
.vol-num.zero { font-weight:500; color:var(--dim); }
.build-progress { display:flex; flex-direction:column; gap:6px; min-width:180px; }
.build-progress .label { display:flex; justify-content:space-between; gap:10px; font-family:"JetBrains Mono", monospace; font-size:10.5px; letter-spacing:.06em; color:var(--ink); }
.build-progress .label .pct { color:var(--dim); }
.build-progress .bar { position:relative; height:7px; background:var(--gray-soft); border-radius:var(--radius-sm); overflow:hidden; }
.build-progress .bar > .fill { position:absolute; inset:0 auto 0 0; background:var(--amber); transition:width .25s ease; }
.build-progress.in-flight .bar > .fill::after { content:""; position:absolute; inset:0; background-image:linear-gradient(45deg, rgba(255,255,255,.22) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.22) 50%, rgba(255,255,255,.22) 75%, transparent 75%, transparent); background-size:14px 14px; animation: barber-pole 1.1s linear infinite; }
.build-progress.failed .bar > .fill { background:var(--red); }
@keyframes barber-pole { 0% { background-position:0 0; } 100% { background-position:28px 0; } }

/* Migration row treatments: no row tint (redundant with the chips). The
   Converted stage column carries the converted signal now. */
tr.baremetal-row,
tr.rescue-appliance-row { opacity:0.55; }

/* Stacked Instance cell + pipeline stage cells. */
.row-uuid { font-family:"JetBrains Mono", monospace; font-size:10.5px; color:var(--dim); margin-top:2px; }
.row-image { font-size:11px; color:var(--body); margin-top:3px; }
.row-image .lbl, .row-importedas .lbl { color:var(--faint); }
.row-importedas { font-size:11px; color:var(--green); margin-top:1px; }
.row-importedas.disk { color:var(--body); margin-top:1px; }
.import-images-table th.stage-head, .import-images-table td.stage-cell { text-align:center; white-space:nowrap; }
.stage-yes { color:var(--green); font-size:15px; font-weight:700; line-height:1; }
.stage-no { color:var(--line-strong); font-size:13px; line-height:1; }
.stage-pending { color:var(--dot-amber); font-size:10.5px; font-weight:600; }
.stage-partial { color:var(--amber); font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; }

/* Filter toolstrip above the instance table (mockup style: a single row
   with a search box, inline State:/OS: labels, and compact .btn buttons). */
.rescue-instances-toolstrip { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:0; padding:12px 18px; border-bottom:1px solid var(--line); }
.rescue-instances-toolstrip input[type="search"] { padding:6px 10px; border:1px solid var(--line-strong); border-radius:var(--radius-sm); background:var(--surface); color:var(--ink); font:inherit; font-size:12px; min-width:180px; }
.toolstrip-label { font-size:12px; color:var(--dim); margin-left:8px; }
.toolstrip-group { display:inline-flex; gap:6px; flex-wrap:wrap; }
.rescue-instances-toolstrip .btn.small.active { border-color:var(--red); color:var(--red); }

.paginator { display:flex; align-items:center; gap:12px; padding:10px 16px; border-top:1px solid var(--line); font-family:"JetBrains Mono", monospace; font-size:11px; color:var(--dim); }
.paginator .right { margin-left:auto; display:flex; gap:8px; }
.paginator button { padding:5px 10px; font-size:10px; }
.paginator button:disabled { opacity:.45; }
#rescue-instances-table,
#rescueInstanceRows,
#rescueInstancePaginator { overflow-anchor:none; }

/* Action cells. */
.row-actions button, .row-actions a { display:inline-block; margin:0 6px 4px 0; vertical-align:middle; }
.row-actions button { padding:5px 9px; font-size:10px; letter-spacing:.06em; }
.row-actions button:last-child, .row-actions a:last-child { margin-right:0; }
.row-actions button.state-pill[disabled] { opacity:.68; cursor:default; }
.row-actions .action-menu { display:flex; gap:6px; align-items:center; flex-wrap:nowrap; margin-bottom:4px; }
.row-actions .action-menu select { min-width:210px; padding:6px 10px; border:1px solid var(--line); background:var(--surface); color:var(--ink); font:inherit; font-size:11px; }
.row-actions .action-menu button { margin:0; min-width:0; padding:6px 10px; }
.row-actions .action-menu.dimmed { opacity:.45; }
.row-actions .action-menu.dimmed select, .row-actions .action-menu.dimmed button { cursor:not-allowed; }
.row-actions .action-progress { min-width:220px; margin-bottom:4px; }
.row-actions .action-progress .bar { height:6px; }
.row-actions .action-progress .label { font-size:10px; }

/* Already-imported disks in the snapshot-import picker. */
#snapshot-import-overlay tr.already-imported { opacity:.6; }
#snapshot-import-overlay tr.already-imported .disk-sub { color:var(--amber); }

/* Worker-busy note + rescue-trigger overlay (ported from the former
   Source Inventory page). */
.banner { padding:10px 12px; border-left:2px solid var(--amber); border-radius:0 var(--radius-sm) var(--radius-sm) 0; background:var(--amber-soft); color:var(--amber); font-size:12px; line-height:1.5; }
.banner.info { border-left-color:var(--line-strong); background:var(--surface-2); color:var(--dim); }
.banner.success { border-left-color:var(--green); background:var(--green-soft); color:var(--green); }
.form-frame { width:min(720px, 100%); background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 10px 40px rgba(14, 11, 12, 0.25); }
.form-head { display:flex; align-items:baseline; gap:14px; padding:18px 18px 14px; border-bottom:1px solid var(--line); background:var(--surface-2); border-radius:var(--radius) var(--radius) 0 0; }
.form-head h3 { margin:0; font-size:16px; color:var(--ink); }
.form-head .sub { font-size:12px; color:var(--dim); }
.form-head .right { margin-left:auto; }
.form-body { padding:18px; }
.form-body label { display:block; margin:12px 0 6px; font-family:Inter, system-ui, -apple-system, sans-serif; font-size:12px; font-weight:600; color:var(--ink); }
.form-body select { width:100%; padding:8px 10px; border:1px solid var(--line-strong); border-radius:var(--radius-sm); background:var(--surface); color:var(--ink); font:inherit; font-size:12px; }
.form-actions { display:flex; gap:10px; justify-content:flex-end; padding:14px 18px 18px; border-top:1px solid var(--line); background:var(--surface-2); border-radius:0 0 var(--radius) var(--radius); }
#reimport-confirm-overlay input[type="text"] { width:160px; padding:7px 10px; border:1px solid var(--line-strong); border-radius:var(--radius-sm); font:inherit; font-size:13px; }
.reimport-artifacts { display:flex; flex-direction:column; gap:8px; margin:12px 0; }
.reimport-artifact { display:flex; align-items:center; gap:10px; padding:8px 10px; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--surface-2); }
.reimport-kind { font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--dim); min-width:90px; }

@media (max-width:1100px) {
  .rescue-instances-toolstrip input[type="search"] { flex:1 1 100%; min-width:0; }
}

/* Opt-in modifier: title row on top, sub on its own line beneath. The base
   .form-head is a baseline-aligned row shared by several overlays, so a long
   sub crowds the title there; this leaves those alone. */
