/* ── AUTOMATION TAB ───────────────────────────────────────────────────────── */

.auto-table-card{
  margin-top:16px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface);
  box-shadow:var(--shadow);
  overflow:clip; /* clips rounded corners without breaking position:sticky */
  transition:box-shadow 0.2s,border-color 0.2s;
}
.auto-table-card:hover{
  box-shadow:var(--shadow-lg);
  border-color:var(--border2);
}
.auto-table-wrap{
  overflow-x:auto;
}
.auto-table{
  width:100%;
  table-layout:fixed;
  border-collapse:separate;
  border-spacing:0;
  font-size:12px;
  min-width:1120px;
}
.auto-table th{
  text-align:left;
  padding:8px 10px;
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--text3);
  border-bottom:1px solid var(--border);
  white-space:nowrap;
  overflow:hidden;
  position:sticky;
  top:0;
  background:var(--surface);
  z-index:1;
}
.auto-table td{
  padding:7px 10px;
  border-bottom:1px solid var(--border2);
  vertical-align:middle;
  white-space:nowrap;
  overflow:hidden;
}
.auto-table tr:hover td{
  background:var(--surface-hover);
}

/* Portfolio name column */
.auto-port-name{
  font-weight:500;
  color:var(--text);
  max-width:200px;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Reuse toggle switch from accounts.css */
.auto-toggle{position:relative;display:inline-block;width:38px;height:22px;flex-shrink:0;cursor:pointer}
.auto-toggle input{opacity:0;width:0;height:0;position:absolute}
.auto-toggle-slider{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--surface);border:1px solid var(--border);border-radius:22px;transition:background .18s,border-color .18s}
.auto-toggle-slider::before{content:'';position:absolute;width:16px;height:16px;left:2px;bottom:2px;background:var(--text3);border-radius:50%;transition:transform .18s,background .18s}
.auto-toggle input:checked + .auto-toggle-slider{background:var(--accent);border-color:var(--accent)}
.auto-toggle input:checked + .auto-toggle-slider::before{transform:translateX(16px);background:#fff}

/* Time input */
.auto-time-input{
  font-family:'DM Mono',monospace;
  font-size:11px;
  padding:3px 6px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface);
  color:var(--text);
  width:80px;
}
.auto-time-input:disabled{
  opacity:0.35;
  cursor:not-allowed;
}
.auto-time-input:focus{
  outline:none;
  border-color:var(--accent);
}

/* Select inputs */
.auto-select{
  font-family:'DM Mono',monospace;
  font-size:11px;
  padding:3px 6px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface);
  color:var(--text);
  cursor:pointer;
}
.auto-select:disabled{
  opacity:0.35;
  cursor:not-allowed;
}
.auto-select:focus{
  outline:none;
  border-color:var(--accent);
}

/* Status dot */
.auto-status{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:11px;
}
.auto-status-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  flex-shrink:0;
}
.auto-status-dot.ok{background:var(--green)}
.auto-status-dot.fail{background:var(--red)}
.auto-status-dot.never{background:var(--text3);opacity:0.4}

/* Window display */
.auto-window{
  display:inline-flex;
  align-items:center;
  gap:3px;
}
.auto-window-sep{
  color:var(--text3);
  font-size:10px;
}

/* Schedule preview — fixed width, truncates with ellipsis to prevent column jitter */
.auto-schedule-preview{
  font-family:'DM Mono',monospace;
  font-size:10px;
  color:var(--text3);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:220px;
  display:block;
}

/* ── BULK ROW ─────────────────────────────────────────────────────────────── */

.auto-bulk-row td{
  background:color-mix(in srgb, var(--accent) 6%, var(--surface));
  border-bottom:1px solid color-mix(in srgb, var(--accent) 18%, var(--border));
}
.auto-bulk-row:hover td{
  background:color-mix(in srgb, var(--accent) 10%, var(--surface));
}
.auto-bulk-label{
  font-size:11px;
  font-weight:600;
  color:var(--text);
}
.auto-bulk-count{
  font-size:10px;
  color:var(--text3);
  margin-top:1px;
  font-family:'DM Mono',monospace;
}

/* Indeterminate (mixed) toggle state */
.auto-toggle input:indeterminate + .auto-toggle-slider{
  background:rgba(var(--accent-ch),0.4);
  border-color:rgba(var(--accent-ch),0.5);
}
.auto-toggle input:indeterminate + .auto-toggle-slider::before{
  transform:translateX(8px);
  background:#fff;
}

/* ── SCHEDULER RUNS LOG ──────────────────────────────────────────────────── */

.auto-runs-toggle{
  margin-top:24px;
  font-size:12px;
  color:var(--accent);
  cursor:pointer;
  user-select:none;
  display:inline-flex;
  align-items:center;
  gap:4px;
}
.auto-runs-toggle:hover{
  color:color-mix(in srgb, var(--accent) 80%, var(--text));
}
.auto-runs-chevron{
  display:inline-block;
  transition:transform 0.2s ease;
  font-size:10px;
}
.auto-runs-toggle.open .auto-runs-chevron{
  transform:rotate(90deg);
}

.auto-runs-wrap{
  margin-top:12px;
}
.auto-runs-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  font-size:12px;
}
.auto-runs-table th{
  text-align:left;
  padding:6px 10px;
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--text3);
  border-bottom:1px solid var(--border);
}
.auto-runs-table td{
  padding:6px 10px;
  border-bottom:1px solid var(--border2);
  font-size:11px;
}
.auto-runs-table tr:hover td{
  background:var(--surface);
}

/* Status badges for runs log */
.auto-run-badge{
  display:inline-block;
  padding:1px 7px;
  border-radius:10px;
  font-size:10px;
  font-weight:600;
  letter-spacing:0.02em;
}
.auto-run-badge.completed{background:rgba(var(--green-ch),0.15);color:var(--green)}
.auto-run-badge.partial{background:rgba(var(--amber-ch),0.15);color:var(--amber)}
.auto-run-badge.failed{background:rgba(var(--red-ch),0.15);color:var(--red)}
.auto-run-badge.running{background:rgba(var(--accent-ch),0.15);color:var(--accent)}

/* ── OPS STATUS PANEL ────────────────────────────────────────────────────── */

.aop-wrap{
  margin-top:16px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface);
  box-shadow:var(--shadow);
  padding:14px 16px 12px;
  transition:box-shadow 0.2s,border-color 0.2s;
}
.aop-wrap:hover{
  box-shadow:var(--shadow-lg);
  border-color:var(--border2);
}
.aop-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:12px;
}
.aop-title{
  font-size:11px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--text3);
}
.aop-refreshed{
  font-size:10px;
  color:var(--text3);
  opacity:0.6;
}
.aop-cards{
  display:flex;
  gap:0;
}
.aop-card{
  flex:1;
  min-width:0;
  padding:0 16px;
  border-left:1px solid var(--border);
}
.aop-card:first-child{
  padding-left:0;
  border-left:none;
}
.aop-card-label{
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.05em;
  color:var(--text3);
  margin-bottom:6px;
  white-space:nowrap;
}
.aop-card-sub{
  font-size:10px;
  color:var(--text3);
  margin-top:2px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Scheduler state */
.aop-state{
  display:flex;
  align-items:center;
  gap:6px;
}
.aop-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  flex-shrink:0;
  transition:box-shadow 0.3s;
}
.aop-state-name{
  font-size:13px;
  font-weight:600;
  color:var(--text);
}

/* Run cards */
.aop-run-time{
  font-size:13px;
  font-weight:600;
  color:var(--text);
  white-space:nowrap;
}
.aop-run-meta{
  display:flex;
  align-items:center;
  gap:4px;
  margin-top:3px;
  font-size:10px;
  color:var(--text3);
  white-space:nowrap;
}
.aop-run-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  flex-shrink:0;
}
.aop-run-status{
  text-transform:capitalize;
}
.aop-run-sep{
  color:var(--border);
}
.aop-never{
  color:var(--text3);
  font-weight:400;
  font-size:12px;
}

/* Freshness card */
.aop-freshness-list{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.aop-freshness-row{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:11px;
  color:var(--text2);
}
.aop-freshness-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  flex-shrink:0;
}
.aop-freshness-age{
  font-size:10px;
  color:var(--text3);
}

/* Failures banner */
.aop-failures{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:10px;
  padding:6px 10px;
  border-radius:10px;
  background:rgba(var(--red-ch),0.08);
  color:var(--red);
  font-size:11px;
  font-weight:500;
}

/* Loading skeleton */
.aop-loading{
  height:90px;
  margin-top:16px;
  border-radius:10px;
  background:var(--surface);
  border:1px solid var(--border);
  animation:aopPulse 1.4s ease-in-out infinite;
}
@keyframes aopPulse{
  0%,100%{opacity:0.5}
  50%{opacity:1}
}

/* Empty state */
.auto-empty{
  text-align:center;
  padding:48px 20px;
  color:var(--text3);
  font-size:13px;
}

/* ── Automation paused banner ─────────────────────────────────────────── */
.automation-paused-banner {
  display:flex; align-items:flex-start; gap:14px;
  padding:14px 18px; margin:0 0 16px 0;
  background:color-mix(in srgb, var(--red) 10%, transparent);
  border:1px solid color-mix(in srgb, var(--red) 35%, transparent);
  border-radius:var(--radius-lg);
  color:var(--text);
}
.apb-icon { color:var(--red); flex-shrink:0; margin-top:2px; }
.apb-text { flex:1; min-width:0; }
.apb-title { font-weight:600; font-size:14px; margin-bottom:2px; color:var(--red); }
.apb-body { font-size:12.5px; color:var(--text2); line-height:1.45; }
.apb-cta { flex-shrink:0; align-self:center; }

/* ── Paused pane (Automation tab) ────────────────────────────────────── */
.aut-paused-pane {
  display:flex; flex-direction:column; gap:14px;
  padding:20px 22px; margin:0 0 18px 0;
  background:var(--bg2);
  border:1px solid color-mix(in srgb, var(--red) 30%, var(--border));
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
}
.aut-paused-pane.is-auto { border-color:color-mix(in srgb, var(--amber) 40%, var(--border)); }
.aut-paused-header { display:flex; align-items:center; gap:10px; }
.aut-paused-title { font-weight:600; font-size:15px; }
.aut-paused-badge {
  font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:0.5px;
  padding:3px 8px; border-radius:999px;
  background:color-mix(in srgb, var(--red) 18%, transparent);
  color:var(--red);
}
.aut-paused-pane.is-auto .aut-paused-badge {
  background:color-mix(in srgb, var(--amber) 18%, transparent);
  color:var(--amber);
}
.aut-paused-meta { font-size:12px; color:var(--text3); }
.aut-paused-list { font-size:12.5px; color:var(--text2); line-height:1.5; }
.aut-paused-list strong { color:var(--text); }
.aut-paused-actions { display:flex; gap:10px; margin-top:6px; }

/* Resume confirmation modal */
.aut-resume-modal { max-width:480px; }
.aut-resume-modal label {
  display:flex; align-items:flex-start; gap:10px;
  padding:12px; margin:14px 0;
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:var(--radius);
  font-size:13px; cursor:pointer;
}
.aut-resume-modal label input { margin-top:2px; }
