/* Operations (was OperationsView.svelte and BrowserPool.svelte). */
.operations-view .operations-mail{margin-top:0}
.operations-job .operations-redirect-chain{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:6px 0 0;padding:0;font-size:.7rem}
.operations-job .operations-redirect-chain li{display:inline-flex;gap:5px;align-items:center;padding:2px 7px;border:1px solid var(--line-strong);border-radius:999px}
.operations-job .operations-redirect-chain li:not(:last-child)::after{content:'→';margin-left:4px;color:var(--muted)}
.operations-job .operations-redirect-chain b{font-weight:500;color:var(--accent)}
.operations-job .operations-redirect-chain li.blocked{border-color:color-mix(in srgb,var(--danger) 60%,transparent)}
.operations-job .operations-redirect-chain li.blocked b{color:var(--danger)}
.operations-job .event-subject.alert{color:var(--danger)}
.operations-job dl .status{margin-top:0}

/* Browser pool. */
.operations-pool{padding:22px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);margin-bottom:18px}
.operations-pool-head{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:flex-start}
.operations-pool-head h2{margin:0}
.operations-pool-head p{margin:6px 0 0;color:var(--muted);font-size:.85rem}
.operations-pool-stats{display:grid;grid-template-columns:repeat(5,auto);gap:8px;margin:0}
.operations-pool-stats div{padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);min-width:78px}
.operations-pool-stats dt{color:var(--muted);font-size:.68rem;letter-spacing:0}
.operations-pool-stats dd{margin:2px 0 0;font-size:1.2rem;font-variant-numeric:tabular-nums}
.operations-pool-stats .hot{border-color:color-mix(in srgb,var(--accent) 55%,transparent)}
.operations-pool-stats .hot dd{color:var(--accent)}
.operations-pool-stats .warm dd{color:var(--warn)}
.operations-pool-stats .bad dd{color:var(--danger)}

.operations-windows{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin-top:20px}
.operations-window{border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden;background:var(--surface-2);transition:border-color .3s,box-shadow .3s}
.operations-window.busy{border-color:color-mix(in srgb,var(--accent) 60%,transparent)}
.operations-window.offline{opacity:.55;filter:grayscale(.6)}
.operations-window:not(.offline) .operations-when-offline,.operations-window.offline .operations-when-online{display:none}
.operations-chrome{display:flex;align-items:center;gap:5px;padding:8px 10px;background:var(--surface-3)}
.operations-chrome i{width:8px;height:8px;border-radius:50%;background:var(--line-strong)}
.operations-window.busy .operations-chrome i:nth-child(1){background:#e8766b}
.operations-window.busy .operations-chrome i:nth-child(2){background:#e9c46a}
.operations-window.busy .operations-chrome i:nth-child(3){background:var(--accent)}
.operations-tab{margin-left:8px;font-size:.72rem;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.operations-led{width:7px;height:7px;border-radius:50%;background:var(--faint)}
.operations-window.busy .operations-led{background:var(--accent);animation:operations-blink 1s steps(2) infinite}
.operations-address{display:flex;gap:6px;align-items:center;margin:6px 8px;padding:4px 8px;border-radius:6px;background:var(--bg);font-size:.72rem;color:var(--muted)}
.operations-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono,ui-monospace,monospace)}
.operations-window.busy .operations-url{color:var(--text)}
.operations-viewport{position:relative;height:132px;margin:0 8px 8px;border-radius:6px;background:var(--bg);overflow:hidden}
.operations-progress{position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);background-size:50% 100%;background-repeat:no-repeat;animation:operations-sweep 1.4s ease-in-out infinite}
.operations-page{display:grid;gap:7px;padding:14px 12px;animation:operations-scroll-page 6s ease-in-out infinite alternate}
.operations-page span{height:7px;border-radius:4px;background:linear-gradient(90deg,var(--surface-3) 25%,color-mix(in srgb,var(--accent) 18%,var(--surface-3)) 50%,var(--surface-3) 75%);background-size:200% 100%;animation:operations-shimmer 1.8s linear infinite}
.operations-page .hero{height:26px}
.operations-page .short{width:60%}
.operations-cursor{position:absolute;width:10px;height:10px;border-radius:50%;border:2px solid var(--accent);left:20%;top:40%;animation:operations-roam 5s ease-in-out infinite}
.operations-job-chip{position:absolute;left:8px;right:8px;bottom:8px;display:flex;justify-content:space-between;gap:8px;padding:6px 10px;border:1px solid var(--line-strong);border-radius:6px;background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--text);font-size:.75rem}
.operations-job-chip span{font-variant-numeric:tabular-nums;color:var(--accent)}
.operations-idle{height:100%;display:grid;place-content:center;justify-items:center;gap:4px;color:var(--muted);font-size:.8rem}
.operations-idle small{font-size:.7rem}
.operations-sprout{width:18px;height:18px;border-radius:50% 0;background:color-mix(in srgb,var(--accent) 40%,transparent);transform:rotate(45deg);animation:operations-breathe 3.2s ease-in-out infinite;margin-bottom:4px}
.operations-window.offline .operations-sprout{animation:none;background:var(--line-strong)}
.operations-window footer{display:flex;justify-content:space-between;padding:0 10px 8px;font-size:.68rem;color:var(--muted)}

.operations-queue{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px}
.operations-queue-label{font-size:.7rem;letter-spacing:0;color:var(--warn)}
.operations-queue-chip{display:inline-flex;gap:8px;align-items:baseline;padding:6px 10px;border:1px dashed color-mix(in srgb,var(--warn) 60%,transparent);border-radius:999px;background:transparent;color:var(--text-2);font-size:.75rem}
.operations-queue-chip small{color:var(--muted);font-variant-numeric:tabular-nums}

.operations-feed-title{margin:24px 0 8px}
.operations-feed{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.operations-feed-row{width:100%;display:grid;grid-template-columns:10px minmax(140px,1.2fr) minmax(120px,1fr) auto 90px;gap:14px;align-items:center;padding:10px 12px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text);text-align:left}
.operations-feed-row:hover{border-color:var(--line-strong);background:var(--surface-2)}
.operations-dot{width:9px;height:9px;border-radius:50%}
.operations-dot.ok{background:var(--accent)}
.operations-dot.warn{background:var(--warn)}
.operations-dot.bad{background:var(--danger)}
.operations-what,.operations-timing{display:grid;gap:2px;min-width:0}
.operations-what small,.operations-timing small{color:var(--muted);font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.operations-timing{text-align:right;font-variant-numeric:tabular-nums}
.operations-steps{display:flex;flex-wrap:wrap;gap:4px}
.operations-step{padding:2px 8px;border-radius:999px;font-size:.68rem;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.operations-step.failed{background:color-mix(in srgb,var(--danger) 18%,transparent);color:var(--danger);text-decoration:line-through}
.operations-step.none{background:transparent;color:var(--muted)}
.operations-status-text{font-size:.75rem;white-space:nowrap}
.operations-status-text.ok{color:var(--text-2)}
.operations-status-text.warn{color:var(--warn)}
.operations-status-text.bad{color:var(--danger)}

@keyframes operations-sweep{from{background-position:-50% 0}to{background-position:150% 0}}
@keyframes operations-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@keyframes operations-scroll-page{from{transform:translateY(0)}to{transform:translateY(-18px)}}
@keyframes operations-roam{0%{left:18%;top:30%}30%{left:70%;top:45%}55%{left:45%;top:70%;transform:scale(1)}60%{transform:scale(.6)}65%{transform:scale(1)}100%{left:18%;top:30%}}
@keyframes operations-breathe{0%,100%{opacity:.45;transform:rotate(45deg) scale(.92)}50%{opacity:1;transform:rotate(45deg) scale(1.05)}}
@keyframes operations-blink{to{opacity:.2}}
@media (prefers-reduced-motion:reduce){
  .operations-progress,.operations-page,.operations-page span,.operations-cursor,.operations-sprout,.operations-window.busy .operations-led{animation:none}
}
@media (max-width:820px){
  .operations-pool{padding:16px 12px}
  .operations-pool-stats{grid-template-columns:repeat(3,1fr);width:100%}
  .operations-feed-row{grid-template-columns:10px 1fr auto}
  .operations-feed-row .operations-steps,.operations-feed-row .operations-status-text{grid-column:2/-1}
}
