/* aperture mock parts, lifted from the app's refresh.css + core.css */
  .scr .clist { background: var(--panel-bg); border: 1px solid var(--panel-border); border-radius: 4px; }
  .scr .clist-head, .scr .clist-row { display: grid; align-items: center; gap: 12px; padding: 8px 12px; }
  .scr .row-actions { flex-wrap: wrap; }
  .scr .clist-head { border-bottom: 1px solid var(--border); background: var(--panel-bar); border-radius: 3px 3px 0 0; font-size: 11px; letter-spacing: 0.6px; text-transform: uppercase; color: var(--text-muted); font-weight: 500; white-space: nowrap; }
  .scr .clist-head .sortable { display: inline-flex; align-items: center; gap: 4px; color: var(--text-primary); }
  .scr .clist-head .sortable::after { content: '\25B2'; font-size: 8px; color: var(--app); }
  .scr .clist-row { min-height: 44px; border-bottom: 1px solid var(--border); position: relative; }
  .scr .clist-row:last-child { border-bottom: none; }
  .scr .clist-row:hover { background: rgba(255,255,255,0.03); }
  .scr .avatar { width: 30px; height: 30px; border-radius: 4px; display: grid; place-items: center; font: 700 12px var(--mono); background: var(--accent-subtle); color: var(--app); border: 1px solid color-mix(in srgb, var(--app) 25%, transparent); }
  .scr .avatar.v-violet { background: rgba(167,139,250,0.14); color: #a78bfa; border-color: rgba(167,139,250,0.3); }
  .scr .primary { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
  .scr .primary .name { font-size: 13px; font-weight: 600; color: var(--text-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .scr .primary .slug { font: 11px var(--mono); color: var(--text-muted); letter-spacing: 0.02em; }
  .scr .cmeta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
  .scr .cmeta .val { font-size: 13px; color: var(--text-primary); font-weight: 500; overflow-wrap: anywhere; }
  .scr .cmeta .val.mono { font: 12px var(--mono); }
  .scr .cmeta .ago { font: 11px var(--mono); color: var(--text-muted); }
  .scr .status-pill { display: inline-flex; align-items: center; gap: 5px; padding: 2px 6px; border-radius: 3px; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; border: 1px solid transparent; white-space: nowrap; }
  .scr .status-pill .dot { width: 5px; height: 5px; border-radius: 50%; }
  .scr .status-pill.ok { background: var(--success-bg); color: var(--success); } .scr .status-pill.ok .dot { background: #10b981; }
  .scr .status-pill.err { background: var(--error-bg); color: var(--error); } .scr .status-pill.err .dot { background: #f43f5e; }
  .scr .status-pill.muted { background: rgba(255,255,255,0.04); color: var(--text-muted); border-color: var(--border); } .scr .status-pill.muted .dot { background: var(--text-muted); }
  .scr .row-actions { display: flex; gap: 4px; justify-content: flex-end; align-items: center; }
  .scr .icon-btn { width: 24px; height: 24px; display: grid; place-items: center; background: #1a2338; border: 1px solid rgba(255,255,255,0.12); border-radius: 3px; box-shadow: inset 0 1px 0 rgba(255,255,255,0.06); color: var(--text-secondary); cursor: pointer; padding: 0; }
  .scr .icon-btn svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; }
  .scr .icon-btn.danger:hover { background: #2a1d2c; color: #fb7185; border-color: rgba(251,113,133,0.4); }
  .scr .list-toolbar .btn { margin-left: auto; }
  .scr .list-toolbar .list-search { flex: 1; max-width: 420px; }
  .scr .empty-state.boxed { background: var(--panel-bg); border: 1px solid var(--panel-border); border-radius: 4px; }
  .scr .seg-toggle { display: inline-flex; background: var(--bg-surface); border: 1px solid var(--panel-border); border-radius: 4px; padding: 2px; gap: 2px; }
  .scr .seg-toggle .seg-btn { padding: 4px 14px; height: auto; background: transparent; border: 1px solid transparent; border-radius: 3px; color: var(--text-secondary); font: 600 12px var(--sans); cursor: pointer; }
  .scr .seg-toggle .seg-btn.active { background: #1a2338; border-color: rgba(255,255,255,0.14); box-shadow: inset 0 1px 0 rgba(255,255,255,0.06); color: var(--text-primary); }
  .scr .sp-row { margin-bottom: 12px; }
  .scr .sp-row > label { display: block; margin-bottom: 4px; font-size: 12px; font-weight: 500; color: var(--text-secondary); }
  .scr .sp-row .param-meta { font: 10px var(--mono); color: var(--text-muted); margin-left: 6px; }
  .scr .sp-row .req { color: var(--app); font-weight: 700; margin-left: 4px; }
  .scr .switch-row { display: flex; align-items: center; gap: 8px; padding: 7px 0; font-size: 12px; color: var(--text-secondary); }
  .scr .code-ed { width: 100%; min-height: 120px; padding: 10px 12px; background: var(--bg-surface); border: 1px solid var(--field-border); border-radius: 3px; font: 12px/1.6 var(--mono); color: var(--text-primary); white-space: pre-wrap; overflow-wrap: anywhere; }
  .scr .code-ed.ph { color: var(--text-muted); }
  .scr .code-ed .k { color: #93c5fd; } .scr .code-ed .v { color: #fdba74; } .scr .code-ed .s { color: #86efac; } .scr .code-ed .c { color: var(--text-muted); }
  .scr .cout { margin: 0; min-height: 240px; background: var(--bg-surface); border: 1px solid var(--panel-border); border-radius: 3px; padding: 10px 12px; font: 12px/1.6 var(--mono); color: var(--text-primary); white-space: pre-wrap; word-break: break-all; overflow: auto; }
  .scr .cout.short { min-height: 0; font-size: 11px; max-height: 300px; }
  .scr .cout .host-failed { color: var(--error); }
  .scr .hmeta { font: 11px var(--mono); color: var(--text-muted); margin-bottom: 8px; min-height: 14px; }
  .scr .picker { width: auto; min-width: 220px; height: 28px; font-size: 12px; }
  .scr .history-item { display: flex; align-items: center; gap: 12px; padding: 10px 16px; border-bottom: 1px solid var(--border); font-size: 12px; cursor: pointer; }
  .scr .history-item:last-child { border-bottom: none; }
  .scr .history-item:hover { background: color-mix(in srgb, var(--app) 3%, transparent); }
  .scr .hstat { width: 8px; height: 8px; border-radius: 50%; flex: none; }
  .scr .hstat.running { background: var(--warning); animation: apPulse 1.5s infinite; }
  .scr .hstat.completed { background: var(--success); }
  @keyframes apPulse { 0%,100% { opacity: 1; } 50% { opacity: 0.4; } }
  .scr .history-cmd { flex: 1; font-family: var(--mono); color: var(--text-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .scr .history-meta { color: var(--text-muted); font-size: 11px; white-space: nowrap; }
  .scr .cblist { max-height: 200px; overflow-y: auto; border: 1px solid var(--panel-border); border-radius: 3px; padding: 8px; }
  .scr .cblist label { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 4px; font-size: 13px; color: var(--text-primary); margin: 0; font-weight: 400; }
  .scr .cblist label:hover { background: rgba(255,255,255,0.04); }
  .scr .cblist label span.a { color: var(--text-muted); font-size: 11px; }
  .scr .cblist label.hid { display: none; }
  .scr .target-box { margin-bottom: 16px; padding: 10px; background: var(--bg-surface); border: 1px solid var(--panel-border); border-radius: 3px; font-size: 13px; }
  .scr .target-box span { color: var(--text-muted); margin-left: 8px; font-family: var(--mono); font-size: 12px; }
  .scr .modal-head-row { justify-content: space-between; }
  .scr .mclose { width: 24px; height: 24px; display: grid; place-items: center; padding: 0; background: #1a2338; border: 1px solid rgba(255,255,255,0.12); border-radius: 3px; box-shadow: inset 0 1px 0 rgba(255,255,255,0.06); color: var(--text-secondary); font-size: 16px; line-height: 1; cursor: pointer; }
  .scr .modal .form-actions { margin-top: 20px; }
  .scr .bh-head { display: flex; gap: 8px; margin-bottom: 4px; font-size: 11px; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.5px; }
  .scr .bh-row { display: flex; gap: 8px; align-items: center; margin-bottom: 6px; }
  .scr .bh-row .field { font-size: 12px; }
  .scr .bh-row .x { width: 34px; flex: none; height: 28px; padding: 0; }
  .scr .bh-row .sp { width: 34px; flex: none; }
  .scr .m-note { font-size: 11px; color: var(--text-muted); margin: 14px 0 0; line-height: 1.5; }
  .scr .m-status { margin-top: 10px; font-size: 13px; color: var(--text-muted); min-height: 18px; }
  .scr .help-h { margin: 22px 0 8px; font-size: 14px; font-weight: 600; color: var(--text-primary); }
  .scr .help-list { margin: 0; padding-left: 18px; color: var(--text-secondary); font-size: 13px; line-height: 1.7; }
  .scr .chk { display: flex; align-items: center; gap: 6px; height: 30px; font-size: 13px; color: var(--text-primary); }
  .scr .ttyd { background: #0b0e14; border-radius: 3px; height: 420px; padding: 10px 12px; font: 13px/1.45 var(--mono); color: #e6e6e6; white-space: pre-wrap; overflow: hidden; }
  .scr .ttyd .cur { display: inline-block; width: 8px; height: 15px; background: #e6e6e6; vertical-align: -2px; animation: apPulse 1s steps(1) infinite; }
  .scr .ttyd .y { color: #e5c07b; } .scr .ttyd .g { color: #98c379; }
  .scr .vt-pair { display: flex; gap: 8px; margin-bottom: 6px; }
  .scr .bk-text { color: var(--text-muted); font-size: 13px; line-height: 1.7; margin: 0 0 20px; }
  .scr .bk-text strong { color: var(--text-primary); }
  .scr .tour-note { margin-top: 14px; }
  /* doc-only */
  .pgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
  .pcard { background: var(--panel-bg); border: 1px solid var(--panel-border); border-radius: 4px; padding: 12px 14px; display: flex; flex-direction: column; gap: 4px; }
  .pcard b { color: var(--text-primary); font-size: 14px; }
  .pcard span { font-size: 13px; color: var(--text-secondary); }
  .scr.inl { display: inline-block; min-width: 0; background: none; overflow: visible; }
  .scr.inl::before { display: none; }
