/* Banana pudding — local styles, no remote assets. */
.poster-crop-dialog .poster-crop-layout { display:grid; grid-template-columns:minmax(0,1fr) 170px; gap:var(--space-5); margin-block:var(--space-4); }
.poster-crop-canvas { display:block; width:100%; height:auto; border-radius:var(--radius-control); touch-action:none; cursor:move; }
.poster-crop-canvas:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.poster-crop-preview { display:block; width:100%; height:auto; border:1px solid var(--line); border-radius:var(--radius-control); }
.poster-crop-result h3 { margin-bottom:var(--space-3); }
.poster-crop-tools { flex-wrap:wrap; margin-top:var(--space-4); }
#detail-poster-actions { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-3); }
#detail-poster-actions:empty,#detail-site-actions:empty { display:none; }
.task-detail-secondary-actions { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-4) var(--space-3); min-width:0; }
.task-detail-secondary-actions:has(>div:not(:empty)) { margin-top:var(--space-5); padding-bottom:var(--space-1); }
@media (max-width:640px) { .poster-crop-dialog .poster-crop-layout { grid-template-columns:minmax(0,1fr); } .poster-crop-result { width:115px; justify-self:center; } }
:root {
  color-scheme: light;
  --bg:#fff9e3; --surface:#fffef7; --surface-raised:#fff0b8; --surface-hover:#ffefb0;
  --sidebar-bg:#ffe694; --text:#382819; --secondary:#594126; --muted:#6a5032;
  --line:#ddcda9; --outline:#b39864; --input-bg:#fffaf0;
  /* Dark accent for text/focus; banana fill for selected surfaces and actions. */
  --accent:#815417; --accent-dark:#6e4510; --accent-fill:#ffce3d; --accent-hover:#ffde78; --accent-wash:#fff0b8;
  --success:#386648; --success-bg:#edf5e9; --success-line:#9db795; --success-glow:#38664818;
  --info:#355f83; --info-bg:#edf3f9; --info-line:#9eb6cb;
  --danger:#a44238; --danger-bg:#fff0ec; --danger-line:#d6a39a;
  --amber:#805015; --warning-bg:#fff0cc; --warning-line:#c8a166;
  --neutral-bg:#f0ede5; --progress-track:#e3d9bc;
  --overlay:#49371966; --focus-glow:#98681626;
  --radius-panel:22px; --radius-control:14px; --radius-small:10px;
  --raised-shadow:3px 4px 0 #ddc995; --sidebar:224px; --shadow:0 24px 70px #49371930;
  /* Four-pixel rhythm; semantic gutters change together at breakpoints. */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-5:20px; --space-6:24px; --space-8:32px; --space-10:40px; --space-12:48px; --space-16:64px;
  --page-gutter:var(--space-8); --page-block:var(--space-8);
  --panel-padding:var(--space-6); --section-gap:var(--space-6); --field-gap:var(--space-5);
  --sidebar-padding:var(--space-4); --nav-inset:var(--space-3); --nav-symbol:40px;
  --dialog-edge:var(--space-6);
  /* Keep reading, labels and headings distinct on pale yellow surfaces. */
  --weight-body:500; --weight-label:600; --weight-heading:700;
  --mono:"Cascadia Code","SFMono-Regular",Consolas,"Liberation Mono",monospace;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  font-size:13px; font-weight:var(--weight-body); font-synthesis:weight; text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased;
}
* { box-sizing:border-box; scrollbar-width:thin; scrollbar-color:var(--outline) transparent; }
html { scrollbar-gutter:stable; }
body { margin:0; background:var(--bg); color:var(--text); }
[hidden] { display:none !important; }
/* Shared controls own their appearance across browsers. */
input[type="checkbox"].input,input[type="radio"].input { appearance:none; -webkit-appearance:none; display:inline-grid; place-content:center; width:18px; height:18px; min-width:18px; min-height:18px; padding:0; border:1.5px solid var(--outline); background:var(--input-bg); cursor:pointer; }
input[type="checkbox"].input::before { content:""; width:9px; height:5px; border:solid var(--text); border-width:0 0 2px 2px; transform:rotate(-45deg) scale(0); }
input[type="checkbox"].input:checked,input[type="checkbox"].input:indeterminate { background:var(--accent-fill); border-color:var(--accent); }
input[type="checkbox"].input:checked::before { transform:rotate(-45deg) scale(1); }
input[type="checkbox"].input:indeterminate::before { height:0; border-width:0 0 2px; transform:none; }
input[type="radio"].input { border-radius:50%; }
input[type="radio"].input::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--accent); transform:scale(0); }
input[type="radio"].input:checked::before { transform:scale(1); }
input[type="number"] { appearance:textfield; -moz-appearance:textfield; }
input::-webkit-inner-spin-button,input::-webkit-outer-spin-button,input::-webkit-search-cancel-button,input::-webkit-search-decoration { -webkit-appearance:none; margin:0; }
input:disabled::before { opacity:.5; }
button,input,select,textarea { font:inherit; }
button,select,summary { cursor:pointer; }
button { color:inherit; }
button:disabled { cursor:not-allowed; opacity:1; }
a { color:inherit; text-decoration:none; }
svg { display:block; flex-shrink:0; }
h1,h2,h3,p { margin:0; }
h1 { font-size:30px; line-height:1.3; letter-spacing:-.9px; font-weight:var(--weight-heading); }
h2 { font-size:15px; line-height:1.5; font-weight:var(--weight-heading); }
h3 { font-size:14px; font-weight:var(--weight-heading); }
::selection { background:var(--accent-fill); color:var(--text); }
:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
main:focus { outline:none; }

/* Shell */
.app-shell { min-height:100dvh; }
.sidebar { position:fixed; inset:0 auto 0 0; z-index:40; display:flex; flex-direction:column; width:var(--sidebar); padding:var(--space-6) var(--sidebar-padding); background:var(--sidebar-bg); border-right:1px solid var(--line); overflow-y:auto; scrollbar-gutter:stable; }
.brand { display:flex; gap:var(--space-3); align-items:center; padding:0 var(--nav-inset); font-size:24px; font-weight:750; letter-spacing:-1px; line-height:1.1; margin-bottom:var(--space-8); min-height:48px; flex-shrink:0; }
.brand-mark { display:grid; place-items:center; width:39px; height:39px; flex-shrink:0; }
.brand-mark img { display:block; width:39px; height:39px; object-fit:contain; }
.brand-caption { display:block; margin-top:var(--space-2); color:var(--muted); font-size:10px; letter-spacing:.8px; font-weight:var(--weight-body); }
#navigation { display:flex; flex-direction:column; gap:var(--space-1); flex-shrink:0; }
.nav-item { display:flex; align-items:center; gap:var(--space-3); min-height:48px; padding:var(--space-3) var(--nav-inset); border:1px solid transparent; border-radius:var(--radius-control); color:var(--secondary); transition:background .15s,color .15s,border-color .15s;  height:48px;  flex-shrink:0; font-weight:var(--weight-label); }
.nav-item:hover { background:var(--surface-raised); color:var(--text); }
.nav-item.active { color:var(--text); background:var(--accent-fill); border-color:var(--outline); box-shadow:var(--raised-shadow), inset 0 0 0 1px var(--outline); font-weight:var(--weight-heading); }
.nav-label { flex:1; }
.nav-index { font:10px var(--mono); opacity:1; color:var(--muted); }
.nav-item.active .nav-index { opacity:1; }
.sidebar-bottom { margin-top:auto; padding:var(--space-6) var(--nav-inset) 0; }
.version-row { display:flex; justify-content:space-between; gap:var(--space-2); border-top:1px solid var(--line); padding-top:var(--space-4); color:var(--muted); font-size:10px; }
.version { font-family:var(--mono); text-align:right; overflow-wrap:anywhere; }
.main-shell { display:flex; flex-direction:column; min-height:100dvh; margin-left:var(--sidebar); }
.topbar { background:var(--surface); height:72px; flex-shrink:0; display:flex; align-items:center; justify-content:space-between; gap:var(--space-4); padding:0 var(--page-gutter); border-bottom:1px solid var(--line); }
.breadcrumb { display:flex; align-items:center; gap:var(--space-4); color:var(--muted); font-size:12px; }
.breadcrumb strong { color:var(--secondary); font-weight:var(--weight-label); }
.breadcrumb-separator { color:var(--muted); }
.topbar-status { display:flex; align-items:center; gap:var(--space-5); }
.connection { display:flex; align-items:center; gap:var(--space-2); font-size:11px; color:var(--secondary); }
.status-dot,.live-dot { width:6px; height:6px; border-radius:50%; background:var(--muted); display:inline-block; flex-shrink:0; }
.connection.online .status-dot { background:var(--success); box-shadow:0 0 0 4px var(--success-glow); }
.connection.offline { color:var(--danger); }
.connection.offline .status-dot { background:var(--danger); }
.connection.degraded { color:var(--amber); }
.connection.degraded .status-dot { background:var(--amber); }
.mobile-menu { display:none!important; }

/* Account pages share the workbench palette and form controls. */
.auth-shell { min-height:100dvh; display:grid; grid-template-columns:minmax(0,1fr) minmax(400px,1fr); }
.auth-visual { display:flex; flex-direction:column; justify-content:space-between; gap:var(--space-12); padding:clamp(32px,6vw,96px); background:var(--sidebar-bg); border-right:1px solid var(--outline); }
.auth-wordmark,.auth-mobile-brand { display:flex; align-items:center; gap:var(--space-3); font-size:30px; font-weight:750; }
.auth-copy h2 { font-size:clamp(34px,4vw,60px); line-height:1.35; letter-spacing:-1px; margin:var(--space-5) 0; }
.auth-copy p { max-width:400px; color:var(--secondary); font-size:16px; line-height:1.9; }
.auth-features { display:flex; flex-wrap:wrap; gap:var(--space-3); }
.auth-features span { padding:var(--space-2) var(--space-3); border:1px solid var(--outline); border-radius:var(--radius-control); background:var(--surface-raised); }
.auth-panel { display:grid; align-items:center; padding:var(--space-12) var(--space-8) max(var(--space-12),env(safe-area-inset-bottom)); }
.auth-form { display:flex; flex-direction:column; gap:var(--space-5); width:100%; max-width:400px; margin:auto; }
.auth-form .field { gap:var(--space-2); }
.auth-form .page-description { margin-bottom:var(--space-3); }
.auth-submit { width:100%; min-height:46px; }
.auth-mobile-brand { display:none; }
.password-control { display:flex; align-items:center; gap:var(--space-2); }
.password-control input { min-width:0; flex:1; }
.password-control button { flex:none; }
.account-session { display:flex; align-items:center; justify-content:space-between; gap:var(--space-4); padding:var(--space-4) 0; border-bottom:1px solid var(--line); }
.account-button { max-width:160px; overflow:hidden; text-overflow:ellipsis; }
@media(max-width:760px) {
  .auth-shell { display:block; }
  .auth-visual { display:none; }
  .auth-panel { min-height:100dvh; padding:var(--space-8) var(--space-6) max(var(--space-8),env(safe-area-inset-bottom)); }
  .auth-mobile-brand { display:flex; margin-bottom:var(--space-4); }
  .topbar-status { gap:var(--space-2); }
  .topbar-status .account-button { max-width:90px; }
}
main { flex:1; width:100%; max-width:1616px; padding:var(--page-block) var(--page-gutter) var(--space-12); margin:0 auto; }
.page-heading { display:flex; justify-content:space-between; align-items:center; gap:var(--space-6); margin-bottom:var(--section-gap); }
.eyebrow { font:9px/1.5 var(--mono); color:var(--muted); letter-spacing:2px; margin-bottom:var(--space-3); }
.page-description { margin-top:var(--space-3); color:var(--muted); font-size:12px; line-height:1.8; }
.heading-actions,.button-group { display:flex; align-items:center; gap:var(--space-2); flex-wrap:wrap; }
.heading-actions { flex-shrink:0; }
.page-footer { display:flex; flex-shrink:0; justify-content:space-between; gap:var(--space-4); padding:var(--space-4) var(--page-gutter); border-top:1px solid var(--line); color:var(--muted); font-size:10px; }
.footer-separator { padding:0 var(--space-2); color:var(--muted); }

/* Controls */
.button { box-shadow:var(--raised-shadow), inset 0 0 0 1px var(--outline); display:inline-flex; align-items:center; justify-content:center; gap:var(--space-2); padding:var(--space-2) var(--space-4); min-height:38px; border:1px solid var(--outline); background:var(--surface-raised); border-radius:var(--radius-control); font-size:12px; color:var(--text); line-height:1.5; white-space:nowrap; transition:background .15s,border-color .15s,color .15s; font-weight:var(--weight-label); }
.button:hover:not(:disabled) { border-color:var(--accent); background:var(--surface-hover); color:var(--text); }
.button.primary { background:var(--accent-fill); color:var(--text); border-color:var(--outline); font-weight:var(--weight-heading); }
.button.primary:hover:not(:disabled) { background:var(--accent-hover); border-color:var(--accent); color:var(--text); }
.button.small { min-height:30px; padding:var(--space-1) var(--space-3); font-size:11px; }
.button.directional { gap:var(--space-1); padding-inline:var(--space-3); }
.button:active:not(:disabled),.icon-button:active:not(:disabled) { transform:translate(1px,2px); box-shadow:1px 2px 0 #ddc995, inset 0 0 0 1px var(--outline); }
.button.ghost { background:var(--input-bg); color:var(--secondary); }
.button.ghost:hover:not(:disabled) { border-color:var(--line); background:var(--surface-hover); color:var(--accent); }
.button.danger { color:var(--danger); }
.button.danger:hover:not(:disabled) { border-color:var(--danger-line); background:var(--danger-bg); color:var(--danger); }
.icon-button { display:inline-flex; align-items:center; justify-content:center; height:30px; width:30px; padding:var(--space-1); border:1px solid var(--outline); border-radius:var(--radius-small); color:var(--secondary); background:var(--surface-raised); box-shadow:var(--raised-shadow), inset 0 0 0 1px var(--outline); flex-shrink:0; }
.icon-button:hover:not(:disabled) { color:var(--text); border-color:var(--outline); background:var(--surface-hover); }
.icon-button.danger:hover:not(:disabled) { color:var(--danger); border-color:var(--danger-line); background:var(--danger-bg); }
.input,select,textarea { width:100%; min-width:0; min-height:40px; border:1px solid var(--outline); border-radius:var(--radius-control); padding:var(--space-2) var(--space-3); background:var(--input-bg); color:var(--text); font-size:12px; line-height:1.6; transition:border-color .15s,box-shadow .15s; }
.input:focus,select:focus,textarea:focus { border-color:var(--accent); outline:none; box-shadow:0 0 0 3px var(--focus-glow); }
.input::placeholder,textarea::placeholder { color:var(--muted); opacity:1; font-weight:var(--weight-body); }
.category-rule-section { display:grid; gap:var(--space-4); padding-bottom:var(--space-6); border-bottom:1px solid var(--line); }
.category-rule-section > h4,.category-rule-section > p { margin:0; }
.input:disabled,select:disabled,textarea:disabled { opacity:1; cursor:not-allowed; background:var(--neutral-bg); color:var(--muted); -webkit-text-fill-color:var(--muted); }
textarea { display:block; resize:vertical; }
select { padding-right:var(--space-8); }
input[type="checkbox"].input { width:15px; height:15px; min-height:0; padding:0; margin:0; border-radius:3px; accent-color:var(--accent); flex-shrink:0; cursor:pointer; box-shadow:none; }
input[type="file"] { padding:var(--space-2); }
input::file-selector-button { border:1px solid var(--line); border-radius:var(--radius-small); padding:var(--space-1) var(--space-2); margin-right:var(--space-3); background:var(--surface-raised); color:var(--secondary); font:inherit; }
.muted { color:var(--muted); }
.small-text { font-size:11px; }
.mono { font-family:var(--mono); }
.nowrap { white-space:nowrap; }
strong.good { color:var(--success); }

/* Dashboard */
.stats-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); overflow:hidden; border:1px solid var(--outline); box-shadow:var(--raised-shadow), inset 0 0 0 1px var(--outline); border-radius:var(--radius-panel); background:var(--surface); margin-bottom:var(--section-gap); }
.stat-card { position:relative; min-height:154px; padding:var(--panel-padding); border-right:1px solid var(--line); }
.stat-card:last-child { border-right:0; }
.stat-label { font-size:12px; color:var(--secondary); }
.stat-value { font:42px/1.15 var(--mono); letter-spacing:-2px; margin:var(--space-3) 0 var(--space-2); }
.stat-detail { font-size:10px; line-height:1.6; color:var(--muted); }
.stat-icon { position:absolute; right:var(--panel-padding); top:var(--panel-padding); color:var(--muted); }
.stat-icon svg { width:16px; height:16px; }
.stat-card.teal .stat-icon,.stat-card.teal .stat-value { color:var(--success); }
.stat-card.rose .stat-icon { color:var(--amber); }
.overview-grid { display:grid; grid-template-columns:minmax(0,1fr) 322px; gap:var(--section-gap); align-items:stretch; }
.card { min-width:0; background:var(--surface); border:1px solid var(--outline); box-shadow:var(--raised-shadow), inset 0 0 0 1px var(--outline); border-radius:var(--radius-panel); overflow:hidden; }
.card-header { display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); min-height:76px; padding:var(--space-4) var(--panel-padding); border-bottom:1px solid var(--line); }
.card-header>svg { color:var(--muted); }
.card-subtitle { margin-top:var(--space-1); color:var(--muted); font-size:11px; line-height:1.5; }
.card-body { padding:var(--panel-padding); }
.card+.card { margin-top:var(--section-gap); }
.overview-grid>.card+.card { margin-top:0; }
.recent-panel { display:flex; flex-direction:column; }
#recent-tasks { flex:1; }
.table-note { display:flex; justify-content:space-between; gap:var(--space-2); padding:var(--space-3) var(--panel-padding); border-top:1px solid var(--line); color:var(--muted); font-size:10px; }
.table-note>span:first-child { display:inline-flex; align-items:center; gap:var(--space-2); }
.live-dot { width:4px; height:4px; background:var(--muted); }
.engine-state { display:flex; align-items:center; gap:var(--space-2); margin-bottom:var(--space-5); }
.engine-symbol { display:grid; place-items:center; width:36px; height:36px; color:var(--success); background:var(--success-bg); border:1px solid var(--success-line); border-radius:var(--radius-control); flex-shrink:0; }
.engine-state>div { flex:1; min-width:0; }
.engine-state strong { display:block; font-weight:var(--weight-label); font-size:12px; }
.engine-state>div>span { display:block; color:var(--muted); font-size:9px; margin-top:var(--space-2); }
.engine-state .button { padding:var(--space-1) var(--space-2); min-height:29px; font-size:10px; }
.engine-state .button svg { display:none; }
.engine-state.paused .engine-symbol { color:var(--amber); background:var(--warning-bg); border-color:var(--warning-line); }
.runtime-metrics { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-2); padding:0 0 var(--space-5); border-bottom:1px solid var(--line); }
.runtime-line { display:flex; flex-direction:column; gap:var(--space-2); color:var(--muted); font-size:10px; }
.runtime-line strong { color:var(--secondary); font:12px var(--mono); font-weight:var(--weight-body); }
.media-roots { margin-top:var(--space-4); }
.media-roots summary { display:flex; gap:var(--space-2); align-items:center; color:var(--secondary); font-size:11px; }
.media-roots summary::after { content:"+"; margin-left:auto; font:15px var(--mono); color:var(--muted); }
.media-roots[open] summary::after { content:"−"; }
.media-roots summary::-webkit-details-marker { display:none; }
.root-count { border:1px solid var(--line); padding:0 var(--space-1); border-radius:var(--radius-small); font:10px/1.5 var(--mono); color:var(--muted); }
.root-list { margin-top:var(--space-3); }
.root-chip { padding:var(--space-2) var(--space-2); margin-top:var(--space-1); border:1px solid var(--line); background:var(--input-bg); border-radius:var(--radius-small); font:10px/1.6 var(--mono); color:var(--secondary); overflow-wrap:anywhere; font-weight:var(--weight-body); }
.side-note { display:flex; gap:var(--space-2); align-items:flex-start; padding-top:var(--space-4); margin-top:var(--space-4); border-top:1px solid var(--line); font-size:10px; line-height:1.9; color:var(--muted); }
.side-note svg { margin-top:2px; }
.section-kicker { font-size:11px; color:var(--muted); margin:var(--space-5) 0 var(--space-3); }
.quick-section { margin-top:var(--section-gap); }
.section-heading { display:flex; align-items:baseline; gap:var(--space-3); margin-bottom:var(--space-4); }
.section-heading h2 { font-size:13px; }
.section-heading>span { font-size:10px; color:var(--muted); }
.quick-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-4); }
.quick-action { width:100%; display:flex; align-items:center; gap:var(--space-3); padding:var(--panel-padding); background:var(--surface); border:1px solid var(--outline); box-shadow:var(--raised-shadow), inset 0 0 0 1px var(--outline); border-radius:var(--radius-control); color:var(--secondary); text-align:left; transition:background .15s,border-color .15s; }
.quick-action:hover { background:var(--surface-hover); border-color:var(--accent); }
.quick-action>svg:first-child { box-sizing:content-box; padding:var(--space-2); border:1px solid var(--line); border-radius:var(--radius-control); background:var(--surface-raised); color:var(--secondary); }
.quick-action:hover>svg:first-child { color:var(--accent); }
.quick-action>svg:last-child { margin-left:auto; width:13px; color:var(--muted); }
.quick-action>div { min-width:0; }
.quick-action strong { display:block; color:var(--text); font-size:12px; font-weight:var(--weight-label); }
.quick-action span { display:block; color:var(--muted); font-size:10px; line-height:1.6; margin-top:var(--space-2); }

/* Lists and status */
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; text-align:left; }
th { padding:var(--space-3) var(--panel-padding); background:var(--surface-raised); border-bottom:1px solid var(--line); color:var(--secondary); font-weight:var(--weight-label); font-size:10px; white-space:nowrap; }
td { padding:var(--space-4) var(--panel-padding); border-bottom:1px solid var(--line); font-size:12px; }
tbody tr:last-child td { border-bottom:none; }
tbody tr { transition:background .12s; }
tbody tr:hover { background:var(--surface-hover); }
.check-cell { width:44px; padding-right:0; }
.task-table .task-column-center { text-align:center; vertical-align:middle; padding-inline:var(--space-3); }
.task-status { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:var(--space-1); }
.task-status .mini-label { margin-left:0; }
.task-table .row-actions { justify-content:center; }
.task-table .progress-track { margin-inline:auto; }
.task-name { display:flex; align-items:center; gap:var(--space-3); min-width:0; }
.file-icon { display:grid; place-items:center; width:34px; height:40px; border:1px solid var(--line); border-radius:var(--radius-small); color:var(--secondary); background:var(--surface-raised); flex-shrink:0; }
.task-thumbnail { width:var(--space-10); height:60px; overflow:hidden; }
.task-thumbnail img { display:block; width:100%; height:100%; min-width:0; min-height:0; object-fit:contain; }
.task-copy { min-width:0; align-self:center; }
.task-name button { display:block; max-width:280px; padding:0; border:0; text-align:left; background:transparent; color:var(--text); font-size:12px; font-weight:var(--weight-heading); line-height:1.6; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.task-name button:hover { color:var(--accent); }
.task-path { display:block; max-width:280px; margin-top:var(--space-1); color:var(--muted); font:10px/1.5 var(--mono); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:var(--weight-body); }
.task-original-title { font-family:inherit; }
.badge { display:inline-flex; align-items:center; gap:var(--space-1); padding:var(--space-1) var(--space-2); border:1px solid var(--outline); border-radius:var(--radius-small); color:var(--secondary); background:var(--surface-raised); font-size:10px; line-height:1.5; white-space:nowrap; font-weight:var(--weight-label); }
.badge::before { content:""; width:4px; height:4px; border-radius:50%; background:currentColor; }
.badge.finished { background:var(--success-bg); border-color:var(--success-line); color:var(--success); }
.badge.running { background:var(--info-bg); border-color:var(--info-line); color:var(--info); }
.badge.waiting { background:var(--warning-bg); border-color:var(--warning-line); color:var(--amber); }
.badge.failed { background:var(--danger-bg); border-color:var(--danger-line); color:var(--danger); }
.badge.canceled { background:var(--neutral-bg); border-color:var(--line); color:var(--muted); }
.mini-label { display:inline-block; margin-left:var(--space-1); padding:2px var(--space-1); border:1px solid var(--line); border-radius:3px; color:var(--secondary); font-size:9px; white-space:nowrap; }
.row-actions { display:flex; justify-content:flex-end; gap:var(--space-1); }
.row-actions .icon-button { width:27px; height:28px; }
.stage-text { font-size:11px; color:var(--muted); white-space:nowrap; }
.progress-track { height:3px; width:88px; margin-top:var(--space-2); border-radius:2px; overflow:hidden; background:var(--progress-track); }
.progress-fill { height:100%; background:var(--accent-fill); }
.recent-panel th,.recent-panel td { padding-left:var(--panel-padding); padding-right:var(--space-3); }
.recent-panel .task-name button,.recent-panel .task-path { max-width:200px; }
.recent-panel th:nth-last-child(2),.recent-panel td:nth-last-child(2) { display:none; }
.toolbar { display:flex; align-items:center; justify-content:space-between; gap:var(--space-4); padding:var(--space-4) var(--panel-padding); border-bottom:1px solid var(--line); flex-wrap:wrap; }
.filters { display:flex; gap:var(--space-2); align-items:center; min-width:0; }
.filters>.choice-control { width:130px; flex-shrink:0; }
.filters .choice-trigger { font-size:11px; }
.search-field { display:flex; align-items:center; gap:var(--space-2); padding:0 var(--space-3); border:1px solid var(--outline); background:var(--input-bg); border-radius:var(--radius-control); color:var(--muted); }
.search-field:focus-within { border-color:var(--accent); }
.search-field input { width:270px; border:0; background:transparent; padding-left:0; box-shadow:none; }
.search-field input:focus { box-shadow:none; }
.pagination { display:flex; justify-content:space-between; align-items:center; gap:var(--space-3); padding:var(--space-3) var(--panel-padding); border-top:1px solid var(--line); color:var(--muted); font-size:11px; }
.pagination-controls { display:flex; align-items:center; gap:var(--space-3); font:11px var(--mono); font-weight:var(--weight-body); }
.pagination-controls .icon-button { background:var(--surface-raised); border-color:var(--line); }
.selection-bar { display:flex; align-items:center; gap:var(--space-2); padding:var(--space-3) var(--panel-padding); background:var(--accent-wash); border-bottom:1px solid var(--line); color:var(--accent); font-size:12px; flex-wrap:wrap; }
.selection-bar>span { margin-right:auto; }
.batch-summary { display:flex; gap:var(--space-2); flex-wrap:wrap; }
.job-id { font:12px var(--mono); color:var(--text); font-weight:var(--weight-body); }
.job-path { max-width:430px; font:11px/1.7 var(--mono); color:var(--secondary); text-overflow:ellipsis; overflow:hidden; white-space:nowrap; font-weight:var(--weight-body); }

/* Rules and settings */
.provider-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--section-gap); }
.provider-card { min-width:0; padding:var(--panel-padding); background:var(--surface); border:1px solid var(--outline); box-shadow:var(--raised-shadow), inset 0 0 0 1px var(--outline); border-radius:var(--radius-panel); transition:border-color .15s; }
.provider-card:hover { border-color:var(--accent); }
.provider-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:var(--field-gap); }
.provider-logo { width:39px; height:39px; display:grid; place-items:center; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--surface-raised); color:var(--secondary); font:18px var(--mono); }
.provider-card:nth-child(3n+2) .provider-logo { background:var(--info-bg); color:var(--info); border-color:var(--info-line); }
.provider-card:nth-child(3n) .provider-logo { background:var(--surface-raised); color:var(--secondary); border-color:var(--line); }
.provider-card h2 { font-size:15px; }
.provider-url { color:var(--muted); font:10px/1.6 var(--mono); margin-top:var(--space-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-weight:var(--weight-body); }
.provider-footer { display:flex; justify-content:space-between; align-items:center; gap:var(--space-2); margin-top:var(--field-gap); padding-top:var(--field-gap); border-top:1px solid var(--line); }
.provider-footer>span { font-size:10px; color:var(--muted); }
.settings-grid { display:grid; grid-template-columns:178px minmax(0,1fr); gap:var(--section-gap); align-items:start; }
.settings-nav { display:flex; flex-direction:column; gap:var(--space-1); min-width:0; }
.settings-tab { flex-shrink:0; padding:var(--space-3) var(--nav-inset); background:transparent; text-align:left; color:var(--muted); font-size:12px; border:1px solid transparent; border-radius:var(--radius-control); height:48px; min-height:48px; font-weight:var(--weight-label); }
.settings-tab:hover { color:var(--text); background:var(--surface); }
.settings-tab.active { background:var(--accent-wash); color:var(--text); border-color:var(--line); font-weight:var(--weight-heading); }
.settings-form { padding:var(--panel-padding); }
.settings-search { margin-bottom:var(--field-gap); flex-shrink:0; }
.settings-search-results { display:flex; flex-wrap:wrap; gap:var(--space-2); margin-top:var(--space-2); }
.settings-search-results[hidden] { display:none; }
.settings-intro { color:var(--muted); margin:var(--space-2) 0 var(--section-gap); line-height:1.8; }
.settings-tab.has-draft::after { content:" ●"; color:var(--amber); }
.settings-save-status { margin-right:auto; align-self:center; color:var(--muted); font-size:12px; }
.settings-save-status.pending { color:var(--amber); font-weight:var(--weight-label); }
.settings-form>.form-actions { position:sticky; bottom:calc(-1 * var(--panel-padding)); background:var(--surface); padding:var(--field-gap) 0; z-index:2; flex-wrap:wrap; }
.settings-form>.form-actions>.field-help { flex-basis:100%; }
.naming-live-preview { padding:var(--space-5); border:1px solid var(--outline); border-radius:var(--radius-control); background:var(--accent-wash); }
.naming-live-preview.has-error { border-color:var(--danger); }
.naming-live-preview .section-heading,.naming-assistant .section-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--space-2); margin-bottom:var(--space-3); }
.naming-live-preview h4,.naming-editors h4,.naming-assistant h4,.naming-tail h4 { margin:0; font-size:13px; line-height:1.7; }
.naming-preview-status { color:var(--muted); font-size:11px; }
.naming-live-preview.has-error .naming-preview-status { color:var(--danger); }
.naming-insert-targets { display:flex; flex-wrap:wrap; gap:var(--space-2); }
.naming-sample-info { margin:var(--space-3) 0; overflow-wrap:anywhere; }
.naming-live-result { display:grid; gap:var(--space-2); padding:var(--space-4); border:1px solid var(--line); border-radius:var(--radius-small); background:var(--surface); min-width:0; }
.naming-live-result>div { display:flex; align-items:flex-start; gap:var(--space-2); min-width:0; }
.naming-live-result>div>svg { flex-shrink:0; margin-top:var(--space-1); color:var(--accent); }
.naming-live-result>div>div { display:grid; grid-template-columns:72px minmax(0,1fr); align-items:baseline; gap:var(--space-2); min-width:0; flex:1; }
.naming-live-result strong { display:block; font:var(--weight-label) 13px/1.8 var(--mono); overflow-wrap:anywhere; }
.naming-live-result .field-help { display:block; }
.naming-live-result .naming-final-file { margin-left:var(--space-5); }
.naming-live-result .naming-final-title { display:grid; grid-template-columns:98px minmax(0,1fr); align-items:baseline; gap:var(--space-2); padding-top:var(--space-2); border-top:1px solid var(--line); }
.naming-final-title strong { font-family:inherit; }
.naming-live-preview>.field-help { margin:var(--space-3) 0 0; }
.naming-editors { display:grid; gap:var(--space-3); }
.naming-editor { padding:var(--space-3); border:1px solid var(--line); border-radius:var(--radius-control); background:var(--surface); min-width:0; }
.naming-editor.active { border-color:var(--outline); background:var(--accent-wash); }
.naming-editor-heading { display:flex; justify-content:space-between; align-items:center; gap:var(--space-2); flex-wrap:wrap; margin-bottom:var(--space-2); }
.naming-editor-heading>.button-group { display:flex; flex-wrap:wrap; gap:var(--space-2); }
.naming-editor>.field { margin-top:var(--space-3); }
.naming-token-list { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-2); min-height:36px; }
.naming-token { display:inline-flex; align-items:center; gap:var(--space-2); padding:var(--space-1) var(--space-2); border:1px solid var(--outline); border-radius:var(--radius-small); background:var(--surface); max-width:100%; min-width:0; }
.naming-token>span { overflow-wrap:anywhere; min-width:0; font-size:12px; }
.naming-token>.icon-button { width:26px; height:26px; min-width:26px; flex-shrink:0; }
.naming-token-separator { color:var(--muted); font:13px var(--mono); overflow-wrap:anywhere; }
.naming-assistant { padding:var(--space-2); border:1px solid var(--line); border-radius:var(--radius-control); background:var(--surface); }
.naming-assistant .section-heading { margin-bottom:var(--space-2); }
.naming-variable-grid { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:var(--space-1); margin:var(--space-2) 0; }
.button.naming-variable { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--space-1); white-space:normal; text-align:center; min-width:0; padding:var(--space-1); height:auto; }
.naming-variable strong { font-size:11px; overflow-wrap:anywhere; }
.naming-variable strong>span { font-size:inherit; }
.naming-variable code { color:var(--muted); font:10px/1.5 var(--mono); overflow-wrap:normal; }
.naming-variable>span { font-size:10px; overflow-wrap:anywhere; }
.naming-insert-tools { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-2); }
.naming-insert-tools>input { flex:1 1 180px; min-width:0; width:auto; }
.naming-tail { display:grid; gap:var(--space-3); }
.naming-insert-targets [aria-pressed="true"] { background:var(--accent-fill); border-color:var(--outline); color:var(--text); }
@media(max-width:1200px) {
  .naming-variable-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(max-width:540px) {
  .naming-live-preview { padding:var(--space-3); }
  .naming-live-result { padding:var(--space-3); }
  .naming-variable-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .naming-live-result .naming-final-file { margin-left:var(--space-3); }
  .naming-live-result strong { font-size:12px; }
  .naming-live-result>div>div { grid-template-columns:minmax(0,1fr); gap:0; }
  .naming-live-result .naming-final-title { grid-template-columns:minmax(0,1fr); gap:0; }
  .naming-insert-tools>input { flex-basis:100%; }
  .naming-editor-heading>.button-group { gap:var(--space-1); }
}

.naming-section:not(details) { border-top:1px solid var(--line); padding-top:var(--space-5); }
.naming-section-title { margin:0; font-size:13px; font-weight:var(--weight-heading); line-height:1.7; }
.naming-section-help { margin:var(--space-2) 0 var(--space-4); color:var(--muted); font-size:12px; line-height:1.8; overflow-wrap:anywhere; }
.naming-marker-scopes,.naming-marker-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-3) var(--field-gap); }
.naming-marker-scopes { font-size:12px; line-height:1.8; color:var(--muted); }
.naming-marker-scopes strong { display:block; color:var(--text); }
.naming-marker-row { border-top:1px solid var(--line); padding-top:var(--space-3); }
.naming-marker-variable { grid-column:1/-1; color:var(--muted); font:11px var(--mono); }
.naming-fixed-marker { align-self:center; }
@media(max-width:540px) {
  .naming-marker-scopes,.naming-marker-row { grid-template-columns:minmax(0,1fr); }
  .naming-section.settings-group { padding:var(--space-3); }
}
.provider-filter { display:flex; align-items:center; gap:var(--space-3); flex-wrap:wrap; margin-bottom:var(--field-gap); }
.provider-filter>input { flex:1 1 200px; }
.provider-filter>select { width:auto; }
.provider-filter>.field-help { flex-basis:100%; }
.provider-test-state { margin-top:var(--space-3); color:var(--muted); font-size:12px; overflow-wrap:anywhere; }
.provider-test-state.success { color:var(--success); }
.provider-test-state.failure,.task-error { color:var(--danger); }
.native-provider-test { display:grid; gap:var(--section-gap); }
.native-provider-test .code-editor { margin-top:var(--field-gap); }
.task-source { display:block; color:var(--muted); font-size:11px; margin-top:var(--space-1); }
.task-error { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; white-space:normal; overflow-wrap:anywhere; font-size:12px; margin-top:var(--space-2); max-width:520px; }
button.stat-card { border-top:0; border-bottom:0; border-left:0; background:transparent; color:var(--text); text-align:left; font:inherit; }
button.stat-card:hover { background:var(--accent-wash); }
button.stat-card .stat-label,button.stat-card .stat-value,button.stat-card .stat-detail { display:block; }
.priority-controls { border:0; padding:0; margin:0; min-width:0; }
.priority-controls>.form-grid { grid-template-columns:minmax(0,1fr); }
.priority-table { display:grid; min-width:0; }
.priority-setting-row { display:grid; grid-template-columns:150px minmax(0,1fr); gap:var(--space-5); padding:var(--space-4) 0; border-bottom:1px solid var(--line); align-items:start; }
.priority-setting-row:first-child { padding-top:0; }
.priority-setting-row:last-child { border-bottom:0; }
.priority-row-label { display:flex; flex-direction:column; gap:var(--space-1); padding-top:var(--space-3); overflow-wrap:anywhere; }
.priority-row-label>span { font-size:12px; color:var(--muted); }
.priority-row-editor { min-width:0; }
.priority-row-tools { display:flex; justify-content:space-between; gap:var(--space-3); margin-top:var(--space-2); align-items:start; }
.priority-row-tools>.button { margin-left:auto; padding:var(--space-1) var(--space-2); min-height:28px; font-size:11px; border-color:transparent; background:transparent; box-shadow:none; color:var(--muted); }
.priority-row-tools>details { flex:1; min-width:0; }
.priority-row-tools summary { cursor:pointer; padding:var(--space-1) 0; width:fit-content; }
.priority-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--space-3); }
.priority-toolbar>.search-control { flex:1 1 200px; max-width:380px; }
.source-choice { display:flex; align-items:center; gap:var(--space-1); padding:var(--space-2); min-height:48px; min-width:0; border:1px solid var(--outline); border-radius:var(--radius-control); background:var(--input-bg); }
.source-choice:focus-within { border-color:var(--accent); box-shadow:0 0 0 3px var(--focus-glow); }
.source-chips { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-2); min-width:0; flex:1; }
.source-chips:empty { display:none; }
.source-chip { display:flex; max-width:100%; align-items:stretch; border:1px solid var(--line); border-radius:var(--radius-small); background:var(--accent-wash); overflow:hidden; }
.source-chip-handle.button { display:flex; gap:var(--space-1); padding:5px 6px; min-height:30px; min-width:0; border:0; border-radius:0; box-shadow:none; background:transparent; font-size:12px; cursor:grab; touch-action:none; user-select:none; text-align:left; white-space:normal; }
.source-chip-handle>span:last-child { min-width:0; overflow-wrap:anywhere; }
.source-grip { color:var(--muted); flex-shrink:0; }
.source-chip-remove.icon-button { width:26px; min-width:26px; min-height:30px; height:auto; padding:4px; border:0; border-radius:0; box-shadow:none; color:var(--muted); background:transparent; }
.source-chip-handle.button:hover,.source-chip-remove.icon-button:hover { background:var(--accent-hover); color:var(--text); }
.source-chip-handle.button:active:not(:disabled),.source-chip-remove.icon-button:active:not(:disabled) { transform:none; box-shadow:none; }
.source-chip-handle:focus-visible,.source-chip-remove:focus-visible { outline:2px solid var(--accent); outline-offset:-3px; }
.source-choice-toggle.button { flex-shrink:0; gap:var(--space-2); min-height:30px; padding:var(--space-1) var(--space-2); border:0; background:transparent; box-shadow:none; color:var(--muted); font-size:12px; }
.source-chips:empty+.source-choice-toggle { justify-content:space-between; flex:1; flex-shrink:1; text-align:left; }
.source-choice-toggle>span { min-width:0; overflow-wrap:anywhere; }
.source-choice-menu { position:fixed; z-index:1500; display:flex; flex-direction:column; padding:var(--space-3); gap:var(--space-3); border:1px solid var(--outline); border-radius:var(--radius-control); background:var(--surface); box-shadow:var(--shadow); overflow:hidden; }
.source-choice-search { display:flex; align-items:center; gap:var(--space-2); flex-shrink:0; }
.source-choice-search>.search-control { min-width:0; flex:1; }
.source-choice-options { display:grid; gap:var(--space-1); min-height:0; overflow-y:auto; overscroll-behavior:contain; }
.source-choice-options .checkbox-label { margin:0; padding:var(--space-2); border-radius:var(--radius-small); overflow-wrap:anywhere; }
.source-choice-options .checkbox-label:hover,.source-choice-options .checkbox-label:has(:checked) { background:var(--accent-wash); }
.source-choice-hint { margin:0; flex-shrink:0; font-size:11px; }
.source-dragging .source-chip-handle { cursor:grabbing; }
.source-chip.drag-source { opacity:.45; }
.source-chip.drag-target { outline:2px solid var(--accent); outline-offset:2px; background:var(--accent-fill); }
.source-drag-ghost { position:fixed; z-index:1800; pointer-events:none; max-width:240px; overflow-wrap:anywhere; padding:var(--space-2) var(--space-3); border:1px solid var(--accent); border-radius:var(--radius-small); background:var(--accent-fill); box-shadow:var(--shadow); }
@media(max-width:700px) {
  .priority-setting-row { grid-template-columns:minmax(0,1fr); gap:var(--space-2); }
  .priority-row-label { flex-direction:row; align-items:baseline; padding-top:0; gap:var(--space-2); }
  .priority-toolbar>.search-control { max-width:none; }
  .source-choice { padding:var(--space-1); }
  .source-chip-handle.button,.source-chip-remove.icon-button { min-height:38px; }
  .source-chip-remove.icon-button { width:30px; min-width:30px; }
  .source-choice-toggle.button { padding:var(--space-1); }
}
.settings-group { padding:var(--panel-padding); border:1px solid var(--line); border-radius:var(--radius-control); }
.settings-group>summary { margin-bottom:0; }
.settings-group[open]>summary { margin-bottom:var(--field-gap); }
.structured-fields { display:grid; gap:var(--space-3); padding:var(--space-3); border:1px solid var(--line); border-radius:var(--radius-control); }
.metadata-form { min-width:0; }
.priority-editor { display:grid; gap:var(--space-4); }
.priority-heading,.priority-name,.priority-actions,.priority-add { display:flex; align-items:center; gap:var(--space-2); min-width:0; }
.priority-heading { justify-content:space-between; flex-wrap:wrap; }
.priority-heading h4 { margin:0; font-size:13px; }
.priority-list { display:grid; gap:var(--space-2); padding:0; margin:0; list-style:none; }
.priority-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--space-3); padding:var(--space-3); border:1px solid var(--line); border-radius:var(--radius-control); background:var(--surface-raised); }
.priority-name { overflow-wrap:anywhere; flex:1 1 160px; }
.priority-rank { flex-shrink:0; color:var(--accent); font:12px var(--mono); }
.priority-actions { flex-wrap:wrap; }
.priority-add select { flex:1; min-width:0; }
.priority-exclusions { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr)); gap:var(--space-3); padding-top:var(--space-2); }
.priority-save { align-items:center; flex-wrap:wrap; }
.priority-save .field-help { flex:1 1 180px; margin:0; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--field-gap); }
.field { min-width:0; }
.field.wide { grid-column:1/-1; }
.field-label { display:block; margin-bottom:var(--space-2); font-size:12px; color:var(--text); line-height:1.6; font-weight:var(--weight-label); }
summary.field-label { display:list-item; }
.field-help { display:block; margin-top:var(--space-2); font-size:11px; line-height:1.85; color:var(--muted); overflow-wrap:anywhere; font-weight:var(--weight-body); }
.list-input { display:flex; flex-wrap:wrap; align-items:flex-start; gap:var(--space-2); min-width:0; }
.list-item { display:flex; align-items:center; max-width:100%; min-width:0; min-height:40px; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--surface-raised); }
.list-item:focus-within { border-color:var(--accent); }
.list-item-edit { min-width:0; padding:var(--space-2) var(--space-3); border:0; background:transparent; text-align:left; font-size:12px; line-height:1.8; overflow-wrap:anywhere; white-space:pre-wrap; }
.list-item>.icon-button { margin-right:var(--space-1); }
.list-add { display:grid; place-items:center; flex:0 0 40px; width:40px; height:40px; padding:var(--space-2); border:1px dashed var(--accent); border-radius:var(--radius-control); background:var(--accent-wash); color:var(--accent); }
.list-add:hover { border-color:var(--accent); background:var(--surface-hover); }
.list-batch.button { min-height:40px; }
.watch-source-picker { min-width:0; }
.form-section h3 { margin:0 0 var(--field-gap); padding-bottom:var(--field-gap); border-bottom:1px solid var(--line); font-size:16px; }
.checkbox-label { display:flex; align-items:flex-start; gap:var(--space-2); color:var(--text); font-size:12px; line-height:1.8; cursor:pointer; font-weight:var(--weight-label); }
.checkbox-label input[type="checkbox"] { margin-top:var(--space-1); }
.checkbox-label+.checkbox-label { margin-top:var(--space-4); }
.checkbox-label .field-help { margin-top:var(--space-1); font-weight:var(--weight-body); }
.priority-exclusions .checkbox-label { margin:0; overflow-wrap:anywhere; }
.form-actions { display:flex; justify-content:flex-end; gap:var(--space-2); padding-top:var(--field-gap); margin-top:var(--section-gap); border-top:1px solid var(--line); }
.code-editor,.code-output { border:1px solid var(--line); border-radius:var(--radius-control); background:var(--input-bg); color:var(--secondary); font:12px/1.85 var(--mono); tab-size:2; font-weight:var(--weight-body); }
.code-editor { padding:var(--space-4); min-height:330px; resize:vertical; white-space:pre; overflow-wrap:normal; overflow:auto; }
.code-output { padding:var(--space-4); margin:var(--space-4) 0 0; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; max-height:560px; }
.split-rule { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:var(--section-gap); }
.split-rule>div { min-width:0; }
.test-panel { padding:0; }
.test-panel h3 { margin-bottom:var(--space-3); }
.test-panel .field { margin-bottom:var(--field-gap); }
.dirty-marker { display:block; margin-top:var(--space-2); font-size:11px; color:var(--amber); line-height:1.7; }
.subtle-divider { height:1px; background:var(--line); margin:var(--space-6) 0; }
.preview-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:var(--section-gap); align-items:start; }
.preview-form .field { margin-bottom:var(--field-gap); }
.preview-result { min-width:0; padding:var(--panel-padding); border:1px solid var(--line); border-radius:var(--radius-control); background:var(--surface); }
.preview-result .detail-grid { margin:var(--space-4) 0 var(--space-6); }
.preview-result .empty { padding:var(--space-12) var(--space-2); }
.preview-nfo { margin-top:var(--space-6); }

/* Dialogs and file browser */
.modal-backdrop,.drawer-backdrop { position:fixed; inset:0; z-index:80; background:var(--overlay); backdrop-filter:blur(5px); display:flex; align-items:center; justify-content:center; padding:var(--dialog-edge); }
.modal { outline:1px solid var(--outline); display:flex; flex-direction:column; width:650px; max-width:100%; max-height:calc(100dvh - 2 * var(--dialog-edge)); background:var(--surface); border:1px solid var(--outline); border-radius:var(--radius-panel); overflow:hidden; box-shadow:var(--shadow); animation:enter .18s ease-out; }
.modal.large { width:1080px; }
.modal-header,.drawer-header { background:var(--accent-wash); display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); padding:var(--space-4) var(--panel-padding); border-bottom:1px solid var(--line); flex-shrink:0; }
.modal-header h2 { font-size:16px; }
.modal-header .icon-button,.drawer-header .icon-button { background:var(--surface-raised); border-color:var(--line); }
.modal-body { padding:var(--panel-padding); overflow:auto; overscroll-behavior:contain; min-height:0; }
.modal-footer { display:flex; justify-content:flex-end; gap:var(--space-2); padding:var(--space-4) var(--panel-padding); border-top:1px solid var(--line); background:var(--surface-raised); flex-shrink:0; flex-wrap:wrap; }
.modal-description { font-size:12px; line-height:1.9; color:var(--muted); margin-bottom:var(--space-6); }
.drawer-backdrop { z-index:60; }
.drawer-heading-meta { display:flex; align-items:center; gap:var(--space-2); margin:var(--space-1) 0 var(--space-5); }
.detail-grid { display:grid; grid-template-columns:95px minmax(0,1fr); gap:var(--space-3) var(--space-4); font-size:12px; line-height:1.8; margin:var(--space-6) 0; }
.detail-grid dt { color:var(--muted); }
.detail-grid dd { margin:0; color:var(--secondary); overflow-wrap:anywhere; }
.tabs { display:flex; flex-wrap:wrap; gap:var(--space-1) var(--space-5); border-bottom:1px solid var(--line); margin:var(--space-8) 0 var(--space-5); }
.tab { border:0; border-bottom:2px solid transparent; padding:var(--space-3) 1px; font-size:12px; background:transparent; color:var(--muted); font-weight:var(--weight-label); }
.tab:hover { color:var(--text); }
.tab.active { color:var(--accent); border-bottom-color:var(--accent); }
.log-line { display:flex; align-items:flex-start; gap:var(--space-3); padding:var(--space-2) 0; border-bottom:1px solid var(--line); font:11px/1.8 var(--mono); font-weight:var(--weight-body); }
.log-time { color:var(--muted); white-space:nowrap; }
.log-level { width:35px; flex-shrink:0; color:var(--success); }
.log-level.error { color:var(--danger); }
.log-level.warning { color:var(--amber); }
.log-message { min-width:0; overflow-wrap:anywhere; color:var(--secondary); }
.log-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-3); }
.log-actions { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--space-3); margin:var(--space-4) 0 var(--space-3); }
.log-summary { margin-bottom:var(--space-3); }
.log-viewport { max-height:420px; min-height:180px; overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; border:1px solid var(--line); border-radius:var(--radius-control); padding:0 var(--space-3); }
.log-viewport .empty { padding:var(--space-8) var(--space-3); }
.log-stage { color:var(--muted); flex-shrink:0; font-size:10px; }
.log-viewport .log-line { flex-wrap:wrap; gap:var(--space-1) var(--space-3); }
.log-viewport .log-level { width:auto; min-width:56px; }
.log-viewport .log-message { flex-basis:100%; white-space:pre-wrap; }
.source-selection-summary { margin-bottom:var(--space-5); }
.source-fields { display:grid; gap:var(--space-4); }
.source-field { min-width:0; padding:var(--space-4); border:1px solid var(--line); border-radius:var(--radius-control); background:var(--surface-raised); }
.source-field h3 { display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--space-2); font-size:13px; margin:0 0 var(--space-3); }
.source-field h3 .small-text { font:10px var(--mono); }
.source-current { border-left:2px solid var(--line); padding:1px 0 1px var(--space-3); margin-bottom:var(--space-3); }
.source-current .field-help { margin:0 0 var(--space-1); }
.source-value { display:block; font-size:12px; line-height:1.8; white-space:pre-wrap; overflow-wrap:anywhere; min-width:0; max-height:180px; overflow:auto; }
.source-option { display:flex; align-items:flex-start; gap:var(--space-2); padding:var(--space-3) var(--space-2); margin-top:var(--space-2); border:1px solid var(--line); border-radius:var(--radius-control); cursor:pointer; font-size:11px; }
.source-option:has(input:checked) { border-color:var(--accent); background:var(--accent-wash); }
.source-option input[type="radio"] { width:15px; height:15px; min-width:15px; min-height:15px; padding:0; flex-shrink:0; margin-top:var(--space-1); accent-color:var(--accent); }
.source-option-body { min-width:0; }
.source-option strong { display:block; font-size:11px; color:var(--accent); margin-bottom:var(--space-1); }
.source-keep { color:var(--muted); }
.source-actions { position:sticky; bottom:calc(-1 * var(--panel-padding)); margin-top:var(--space-5); padding:var(--space-4) 0; background:var(--surface); }
.provider-results { display:grid; gap:var(--space-3); margin-top:var(--space-4); }
.provider-result { min-width:0; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--surface-raised); overflow:hidden; }
.provider-result>summary { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-2); padding:var(--space-4); cursor:pointer; }
.provider-result>summary::before { content:"+"; color:var(--muted); }
.provider-result[open]>summary::before { content:"−"; }
.provider-result-name { min-width:0; overflow-wrap:anywhere; font-size:12px; margin-right:auto; }
.provider-result-body { padding:0 var(--space-4) var(--space-4); border-top:1px solid var(--line); }
.provider-result-body h4 { font-size:11px; color:var(--muted); margin:var(--space-4) 0 var(--space-2); }
.provider-result-body .notice { margin-top:var(--space-3); }
.field-trace { min-width:0; padding:var(--space-2) 0; border-bottom:1px solid var(--line); }
.field-trace summary { cursor:pointer; font-size:11px; color:var(--secondary); overflow-wrap:anywhere; }
.field-trace-preview { display:block; margin:var(--space-1) 0 0 var(--space-3); max-height:48px; overflow:hidden; color:var(--muted); white-space:pre-wrap; }
.field-trace .code-output { max-height:280px; font-size:10px; }
@media (max-width:600px) {
  .tabs { gap:0 var(--space-3); }
  .tab { font-size:11px; padding:var(--space-3) 0; }
  .log-filters { gap:var(--space-3); }
  .log-viewport { max-height:360px; padding:0 var(--space-2); }
  .source-field { padding:var(--space-3); }
  .source-actions {  flex-wrap:wrap; }
  .provider-result>summary { padding:var(--space-3); gap:var(--space-2); }
  .provider-result-body { padding:0 var(--space-3) var(--space-3); }
}
.path-control { display:flex; gap:var(--space-2); align-items:flex-start; }
.path-control>.input,.path-control>textarea { flex:1; min-width:0; }
.path-control .button { flex-shrink:0; }
.file-browser-top { display:flex; gap:var(--space-2); align-items:center; margin-bottom:var(--space-3); }
.file-browser-path { flex:1; min-width:0; overflow-wrap:anywhere; color:var(--secondary); font:11px/1.8 var(--mono); font-weight:var(--weight-body); }
.file-browser-roots { display:flex; gap:var(--space-2); flex-wrap:wrap; margin-bottom:var(--space-4); }
.file-browser-roots .button { white-space:normal; overflow-wrap:anywhere; text-align:left; }
.file-list { border:1px solid var(--line); border-radius:var(--radius-control); overflow:auto; max-height:330px; }
.file-row { display:flex; align-items:center; gap:var(--space-3); width:100%; padding:var(--space-3) var(--space-4); background:var(--surface); border:0; border-bottom:1px solid var(--line); color:var(--secondary); text-align:left; font-size:12px; }
.file-row:last-child { border-bottom:0; }
.file-row:hover { background:var(--surface-raised); }
.file-row>span { flex:1; min-width:0; overflow-wrap:anywhere; }
.file-row>small { font-size:10px; color:var(--muted); }
.file-row.selected { background:var(--accent-wash); color:var(--accent); }

/* Feedback */
.empty { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:var(--space-12) var(--space-6); text-align:center; min-height:240px; }
.empty-icon { display:grid; place-items:center; width:52px; height:52px; margin-bottom:var(--space-4); border:1px dashed var(--outline); border-radius:var(--radius-panel); background:var(--surface-raised); color:var(--secondary); }
.empty h3 { font-size:14px; color:var(--secondary); }
.empty p { max-width:360px; color:var(--muted); font-size:12px; line-height:1.9; margin:var(--space-2) 0 var(--space-5); }
.loading-page,.loading-inline { text-align:center; color:var(--muted); font-size:12px; padding:var(--space-16) var(--space-6); }
.loading-inline { padding:var(--space-10) var(--space-6); }
.notice { padding:var(--space-3) var(--space-4); margin-bottom:var(--space-5); border:1px solid var(--success-line); border-radius:var(--radius-control); background:var(--success-bg); color:var(--success); font-size:11px; line-height:1.9; overflow-wrap:anywhere; }
.notice.warning { background:var(--warning-bg); border-color:var(--warning-line); color:var(--amber); }
.notice.error { background:var(--danger-bg); border-color:var(--danger-line); color:var(--danger); }
.completion-notice { margin-bottom:var(--section-gap); }
.completion-notice .field-help { color:inherit; }
.field.notice { margin-bottom:0; }
.inline-error { margin-top:var(--space-3); color:var(--danger); font-size:11px; line-height:1.8; }
.toast-region { position:fixed; bottom:24px; right:24px; display:flex; flex-direction:column; gap:var(--space-2); max-width:430px; z-index:110; }
body:has(main[data-view="settings"]) .toast-region { top:84px; bottom:auto; pointer-events:none; }
.toast { padding:var(--space-4) var(--space-5); border:1px solid var(--success-line); border-radius:var(--radius-control); background:var(--success-bg); color:var(--success); box-shadow:var(--shadow); font-size:12px; line-height:1.8; overflow-wrap:anywhere; animation:enter .18s ease-out; }
.toast.error { border-color:var(--danger-line); background:var(--danger-bg); color:var(--danger); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@keyframes enter { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:translateY(0); } }
@keyframes slide { from { opacity:0; transform:translateX(24px); } to { opacity:1; transform:translateX(0); } }

/* Responsive layouts */
@media (min-width:1650px) {

  .overview-grid { grid-template-columns:minmax(0,1fr) 350px; }
  .recent-panel th:nth-last-child(2),.recent-panel td:nth-last-child(2) { display:table-cell; }

}
@media (max-width:1250px) {
  :root { --sidebar:224px; --page-gutter:var(--space-6); --page-block:var(--space-6); --panel-padding:var(--space-5); --section-gap:var(--space-5); }




  .overview-grid { grid-template-columns:minmax(0,1fr) 300px;  }
  .recent-panel .optional-column { display:none; }
  .recent-panel .task-name button,.recent-panel .task-path { max-width:175px; }


  .quick-action>svg:first-child { padding:var(--space-2); width:17px; height:17px; }
  .quick-action>svg:last-child { display:none; }
  .task-name button,.task-path { max-width:225px; }
  .job-path { max-width:300px; }


  .provider-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }

}
@media (max-width:1050px) {
  .overview-grid { grid-template-columns:minmax(0,1fr); }
  .runtime-panel .card-body { display:grid; grid-template-columns:1.1fr 1fr; gap:var(--space-2) var(--space-6); }
  .engine-state { margin-bottom:0; }
  .runtime-metrics { padding-bottom:0; border-bottom:0; }
  .media-roots { margin-top:var(--space-3); padding-top:var(--space-4); border-top:1px solid var(--line); }
  .side-note { margin-top:var(--space-3); padding-top:var(--space-4); }
  .recent-panel .optional-column { display:table-cell; }
  .recent-panel th:nth-last-child(2),.recent-panel td:nth-last-child(2) { display:none; }


  .quick-action>svg:first-child { display:none; }
  .stat-value { font-size:36px; }
  .stat-card {  min-height:147px; }

  .stat-detail { font-size:9px; }
  .settings-grid { grid-template-columns:145px minmax(0,1fr);  }

  .split-rule { grid-template-columns:1fr; }
  .preview-grid { grid-template-columns:1fr; }
  [data-view="tasks"] .optional-column { display:none; }
}
@media (max-width:780px) {
  :root { --sidebar:240px; }
  .sidebar { transform:translateX(-100%); transition:transform .2s; padding-top:var(--space-6); box-shadow:var(--shadow); }
  .sidebar.open { transform:translateX(0); }
  .main-shell { margin-left:0; }
  .mobile-menu { display:inline-flex!important; }
  .topbar { height:60px;  }
  .breadcrumb { gap:var(--space-3); }
  .topbar-status { gap:var(--space-3); }


  .page-heading h1 { font-size:27px; }
  .page-description { font-size:11px; }
  .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr));  }
  .stat-card { min-height:143px;  }
  .stat-card:nth-child(2) { border-right:0; }
  .stat-card:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .stat-value { font-size:36px; }
  .stat-detail { font-size:10px; }

  .recent-panel .task-name button,.recent-panel .task-path { max-width:215px; }
  .quick-action>svg:first-child { display:block; }
  .quick-action { align-items:flex-start; flex-direction:column;   }
  .quick-action span { margin-top:var(--space-1); font-size:10px; }


  .settings-grid { grid-template-columns:1fr;  }
  .settings-nav { flex-direction:row; overflow-x:auto;  padding:0 0 var(--space-1); }
  .settings-tab { white-space:nowrap; }

  .job-path { max-width:260px; }
}
/* Desktop scroll belongs to the content, so page length never moves navigation. */
@media (min-width:781px) {
  html { overflow:hidden; scrollbar-gutter:auto; }
  .main-shell { height:100dvh; min-height:0; }
  main { min-height:0; overflow:auto; scrollbar-gutter:stable; overscroll-behavior:contain; }
  main[data-view="settings"] { display:flex; flex-direction:column; overflow:hidden; }
  main[data-view="settings"]>.page-heading { flex-shrink:0; }
  .settings-grid { flex:1; min-height:0; grid-template-rows:minmax(0,1fr); align-items:stretch; }
  .settings-nav { overflow-y:auto; scrollbar-gutter:stable; }
  /* Keep native scrollbar buttons on the straight edge, clear of the card corners. */
  .settings-panel { display:flex; flex-direction:column; min-height:0; padding-block:var(--radius-panel); }
  #settings-body { flex:1; min-height:0; overflow-y:auto; scrollbar-gutter:stable; overscroll-behavior:contain; }
  #settings-body>.settings-form { padding-block:var(--space-2); }
  .settings-form>.form-actions { bottom:calc(-1 * var(--space-2)); }
}
@media (max-width:540px) {
  :root { --page-gutter:var(--space-4); --panel-padding:var(--space-4); --section-gap:var(--space-4); --field-gap:var(--space-4); --dialog-edge:var(--space-2); }


  .breadcrumb-home,.breadcrumb-separator { display:none; }
  .connection { font-size:10px; }
  .page-heading { flex-direction:column; align-items:flex-start;  }
  .page-heading h1 { font-size:27px; }
  .eyebrow { font-size:8px; letter-spacing:1.7px; margin-bottom:var(--space-2); }
  .heading-actions { width:100%; }
  [data-view="overview"] .heading-actions>.primary { width:100%; }
  .button { min-height:39px; font-size:12px; }


  .stat-label { font-size:11px; }
  .stat-value { margin-top:var(--space-3); font-size:34px; }
  .stat-detail { font-size:9px; }
  .card-header { min-height:70px;  }
  .card-header h2 { font-size:14px; }
  .card-subtitle { font-size:10px; }

  .recent-panel .optional-column { display:none; }
  .recent-panel .task-name button,.recent-panel .task-path { max-width:135px; }

  .recent-panel .file-icon { display:none; }
  .recent-panel .task-name { gap:0; }

  .task-name button,.task-path { max-width:180px; }
  .row-actions { gap:1px; }
  .row-actions .icon-button { width:25px; height:32px; }
  .table-note {  font-size:9px; }
  .runtime-panel .card-body { display:block; }
  .engine-state { margin-bottom:var(--space-5); }
  .runtime-metrics { padding-bottom:var(--space-5); border-bottom:1px solid var(--line); }
  .media-roots { border-top:0; padding-top:0; margin-top:var(--space-4); }
  .side-note { margin-top:var(--space-4); padding-top:var(--space-4); }

  .quick-grid { grid-template-columns:1fr;  }
  .quick-action { flex-direction:row; align-items:center;   }
  .quick-action>svg:last-child { display:block; }
  .toolbar {  gap:var(--space-3); }
  .filters { width:100%; gap:var(--space-2); }
  .search-field { min-width:0; flex:1; padding:0 var(--space-2); }
  .search-field input { width:100%; font-size:11px; }
  .filters>.choice-control { width:106px; }
  .filters .choice-trigger { padding-left:var(--space-2); }

  .selection-bar>span { width:100%; }
  .pagination {  font-size:10px; }
  .pagination-controls { gap:var(--space-2); }
  .provider-grid { grid-template-columns:1fr; }


  .form-grid { grid-template-columns:1fr;  }
  .form-grid .wide { grid-column:1; }


  .modal {  border-radius:var(--radius-panel); }

  .modal-header h2 { font-size:14px; }

  .modal-description { font-size:11px; }

  .drawer-header h2 { font-size:13px; }

  .detail-grid { grid-template-columns:72px minmax(0,1fr); gap:var(--space-3) var(--space-2); font-size:11px; }
  .log-line { flex-wrap:wrap; gap:var(--space-1) var(--space-2); font-size:10px; }
  .log-message { flex-basis:100%; }
  .code-editor,.code-output { font-size:11px; padding:var(--space-3); }
  .code-editor { min-height:280px; }
  .path-control { gap:var(--space-2); }
  .path-control .button { padding:var(--space-2); }
  .path-control .button svg { display:none; }
  .toast-region { left:15px; right:15px; bottom:15px; }
  body:has(main[data-view="settings"]) .toast-region { top:72px; bottom:auto; }
  .page-footer {  font-size:9px; }
  .page-footer>span:last-child { display:none; }
}
@media (max-width:380px) {
  .recent-panel .task-name button,.recent-panel .task-path { max-width:120px; }
  .recent-panel .row-actions .icon-button:not(:first-child) { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}

/* Shared layout helpers replace one-off inline spacing in view renderers. */
.brand-copy { min-width:0; }
.nav-symbol { display:grid; place-items:center; flex:0 0 var(--nav-symbol); }
.brand-mark { width:var(--nav-symbol); }
.nav-label { min-width:0; white-space:nowrap; }
.nav-item { gap:var(--space-3); }
.text-right { text-align:right; }
.flow-gap { display:flex; flex-direction:column; gap:var(--field-gap); }
.flow-gap>.checkbox-label+.checkbox-label { margin-top:0; }
.field-intro { margin-bottom:var(--field-gap); }
.section-spaced { margin-top:var(--section-gap); }
.detail-grid.flush { margin-top:0; }
.code-editor.compact { min-height:132px; }
.code-editor.import-editor { min-height:220px; }
.modal-body>.field+.code-editor { margin-top:var(--field-gap); }
.metadata-advanced>.field-label { margin-bottom:var(--space-3); }
body:has(.modal-backdrop,.drawer-backdrop,.sidebar.open) { overflow:hidden; }
@media (max-width:540px) {
  .modal-footer { padding-bottom:max(var(--space-4), env(safe-area-inset-bottom)); }
  .drawer-body { padding-bottom:max(var(--panel-padding), env(safe-area-inset-bottom)); }
}

/* Disabled controls remain legible; neutral fill and no elevation signal inactivity. */
button:disabled,input:disabled,select:disabled,textarea:disabled { cursor:not-allowed; }
.button:disabled,.button:disabled:hover,.icon-button:disabled,.icon-button:disabled:hover {
  color:var(--muted); background:var(--neutral-bg); border-color:var(--line); box-shadow:none;
}
.settings-tab:disabled,.settings-tab:disabled:hover,.tab:disabled,.tab:disabled:hover {
  color:var(--muted); background:var(--neutral-bg); border-color:transparent; box-shadow:none;
}
.image-results { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-5); }
.image-result { min-width:0; padding:var(--space-4); border:1px solid var(--line); border-radius:var(--radius-control); background:var(--surface); }
.image-result-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--space-2); }
.image-result-heading h3 { margin:0; }
.image-path,.scan-files .checkbox-label span { overflow-wrap:anywhere; }
.image-path { font-size:12px; color:var(--muted); }
.image-preview { display:grid; place-items:center; background:var(--input-bg); border-radius:var(--radius-small); margin:var(--space-3) 0; padding:var(--space-3); min-height:100px; }
.image-preview img { max-width:100%; max-height:260px; object-fit:contain; }
.image-preview.large img { max-height:65dvh; }
.image-attempt { padding:var(--space-3) 0; border-top:1px solid var(--line); }
.scan-files { display:grid; gap:var(--space-3); }
.scan-files > .checkbox-label { padding:var(--space-3); border:1px solid var(--line); border-radius:var(--radius-small); }
.global-log-search-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; grid-column:1/-1; gap:var(--space-3); min-width:0; }
.global-log-search-row>.checkbox-label { align-items:center; min-height:40px; white-space:nowrap; }
.global-log-search-row>.checkbox-label input { margin-top:0; }
.global-log-list { display:grid; gap:var(--space-3); }
.global-log-row { padding:var(--space-4); border:1px solid var(--line); border-radius:var(--radius-small); min-width:0; }
.global-log-row p { margin:var(--space-2) 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.global-log-group-summary { display:flex; align-items:flex-start; gap:var(--space-2); }
.global-log-group-summary::before { flex-shrink:0; }
.global-log-group-main { flex:1; min-width:0; }
.global-log-group-meta { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-2) var(--space-3); }
.global-log-group-title { overflow-wrap:anywhere; }
.global-log-group-meta .field-help { margin:0; }
.global-log-group-meta .log-level { width:auto; }
.global-log-preview { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.global-log-group-content { margin-top:var(--space-3); padding-top:var(--space-3); border-top:1px solid var(--line); }
.global-log-group-actions { display:flex; justify-content:flex-end; margin-bottom:var(--space-3); }
.global-log-group .log-viewport { min-height:0; overflow-anchor:none; }

.choice-control { min-width:0; width:100%; }
.search-control { position:relative; min-width:0; width:100%; }
.search-control>.input { padding-right:40px; }
.search-control>.icon-button { position:absolute; top:50%; right:var(--space-2); transform:translateY(-50%); width:26px; height:26px; background:transparent; }
.choice-trigger { display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); width:100%; min-height:40px; padding:var(--space-2) var(--space-3); background:var(--input-bg); border:1px solid var(--outline); border-radius:var(--radius-control); font-size:12px; line-height:1.6; text-align:left; }
.choice-value { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.choice-trigger>svg { transform:rotate(90deg); }
.choice-trigger:hover:not(:disabled) { background:var(--surface-hover); }
.choice-trigger[aria-expanded="true"] { border-color:var(--accent); box-shadow:0 0 0 3px var(--focus-glow); }
.choice-trigger:disabled,fieldset:disabled .choice-trigger { color:var(--muted); background:var(--neutral-bg); cursor:not-allowed; }
.choice-menu { position:fixed; z-index:125; overflow:auto; overscroll-behavior:contain; padding:var(--space-1); background:var(--surface); border:1px solid var(--outline); border-radius:var(--radius-control); box-shadow:var(--shadow); }
.choice-option { display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); min-height:38px; padding:var(--space-2) var(--space-3); border-radius:var(--radius-small); color:var(--text); cursor:pointer; font-size:12px; overflow-wrap:anywhere; }
.choice-option.active,.choice-option:hover { background:var(--surface-hover); }
.choice-option[aria-selected="true"] { color:var(--accent-dark); font-weight:var(--weight-label); }
.choice-option[aria-disabled="true"] { color:var(--muted); background:var(--neutral-bg); cursor:not-allowed; }
.confirmation-card { width:460px; }
.confirmation-card .modal-body { display:grid; grid-template-columns:48px minmax(0,1fr); gap:var(--space-4); align-items:start; }
.confirmation-symbol { width:48px; height:48px; display:grid; place-items:center; color:var(--amber); background:var(--warning-bg); border:1px solid var(--warning-line); border-radius:var(--radius-control); }
.confirmation-symbol.danger { color:var(--danger); background:var(--danger-bg); border-color:var(--danger-line); }
.confirmation-message { line-height:1.9; white-space:pre-wrap; overflow-wrap:anywhere; }
.field-error { margin:var(--space-2) 0 0; padding:var(--space-2) var(--space-3); color:var(--danger); background:var(--danger-bg); border-left:3px solid var(--danger); border-radius:var(--radius-small); font-size:12px; line-height:1.7; }
[aria-invalid="true"] { border-color:var(--danger) !important; }
.file-choice { display:flex; align-items:center; gap:var(--space-3); flex-wrap:wrap; padding:var(--space-4); border:1px dashed var(--outline); border-radius:var(--radius-control); background:var(--input-bg); }
.file-choice-name { overflow-wrap:anywhere; min-width:0; color:var(--secondary); }
.ui-tooltip { position:fixed; z-index:140; width:max-content; max-width:min(360px,calc(100vw - 16px)); max-height:180px; overflow:hidden; white-space:pre-wrap; overflow-wrap:anywhere; pointer-events:none; padding:var(--space-2) var(--space-3); border:1px solid var(--outline); border-radius:var(--radius-small); box-shadow:var(--shadow); background:var(--surface-raised); color:var(--text); font-size:12px; line-height:1.7; }
.toast { display:flex; align-items:flex-start; gap:var(--space-3); pointer-events:auto; }
.toast-symbol { margin-top:var(--space-1); }
.toast-content { flex:1; min-width:0; }
.toast-content strong { display:block; margin-bottom:var(--space-1); }
.toast-content p { white-space:pre-wrap; }
.toast .icon-button { flex-shrink:0; width:28px; height:28px; color:inherit; }
input[type="checkbox"].input,input[type="radio"].input { width:18px; height:18px; min-width:18px; min-height:18px; }
summary { list-style:none; }
summary::-webkit-details-marker { display:none; }
details:not(.media-roots):not(.provider-result)>summary::before { content:"›"; display:inline-block; margin-right:var(--space-2); font-weight:700; transition:transform .15s; }
details[open]:not(.media-roots):not(.provider-result)>summary::before { transform:rotate(90deg); }
.watch-profiles { display:grid; gap:var(--space-3); }
.directory-setting { min-width:0; padding:var(--space-4); border:1px solid var(--outline); border-radius:var(--radius-control); background:var(--input-bg); align-content:start; }
.directory-setting>.button { margin-top:var(--space-3); }
.watch-profile { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:var(--space-3) var(--space-5); padding:var(--space-4); background:var(--input-bg); border:1px solid var(--outline); border-radius:var(--radius-control); }
.watch-profile>div { min-width:0; }
.watch-directory-actions>.list-item { display:none; }
.watch-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2); }
.watch-toolbar>.field-label { margin:0 auto 0 0; }
.watch-toolbar>.field-help { flex-basis:100%; margin:0; }
.watch-toolbar .list-input { align-items:center; }
.watch-profile-actions { grid-column:1/-1; display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-2) var(--space-4); padding-top:var(--space-3); border-top:1px solid var(--line); }
.watch-profile-actions .field-help { margin:0; }
.watch-profile-actions .checkbox-label { margin:0; align-items:center; }
.watch-profile-actions .checkbox-label input { margin:0; }
.watch-profile-tools { display:flex; align-items:center; gap:var(--space-2); margin-left:auto; }
.watch-profile .path-control { align-items:center; }
.watch-profile .path-control>.input { min-width:0; font-size:12px; }
.watch-profile .path-control>.button { min-height:40px; box-shadow:none; }
.watch-source .input[readonly] { color:var(--secondary); }
.watch-path { overflow-wrap:anywhere; }
.watch-group { margin:var(--space-4) 0; }
.watch-option { padding-bottom:var(--space-4); border-bottom:1px solid var(--outline); }
.watch-value { min-width:0; margin:0; padding:var(--space-2) 0 0; }
.watch-value:disabled { opacity:.72; }
.watch-value .priority-row>span { min-width:0; overflow-wrap:anywhere; }
@media(max-width:540px) {
  .watch-profile { grid-template-columns:minmax(0,1fr); }
  .global-log-row { padding:var(--space-3); }
}

/* Task result: one reading flow, summary, horizontal gallery, metadata and logs. */
.task-detail { width:min(1920px,94vw); height:92dvh; max-height:min(92dvh,calc(100dvh - 2 * var(--dialog-edge))); font-size:14px; min-width:0; }
.task-detail-header { gap:var(--space-4); }
.task-detail-header h2 { flex:1; min-width:0; overflow-wrap:anywhere; }
.task-detail-nav { display:flex; align-items:center; gap:var(--space-3); flex-shrink:0; }
.task-detail-position { white-space:nowrap; color:var(--secondary); }
.task-detail-body { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; padding:var(--space-6); }
.task-detail-hero { --detail-poster-width:clamp(240px,20vw,300px); display:grid; grid-template-columns:var(--detail-poster-width) minmax(0,1fr); gap:var(--space-6); align-items:stretch; }
.task-detail-heading { min-width:0; display:flex; flex-direction:column; }
.task-detail-identity { display:flex; align-items:center; gap:var(--space-3); flex-wrap:wrap; margin-bottom:var(--space-2); }
.task-detail #detail-number { font-size:14px; color:var(--secondary); overflow-wrap:anywhere; }
.task-detail .drawer-heading-meta { flex-wrap:wrap; margin:0; }
.task-detail #detail-poster { width:var(--detail-poster-width); min-width:0; align-self:start; }
.task-detail #detail-poster .image-preview { position:relative; width:100%; height:calc(var(--detail-poster-width) * 1.5); min-height:0; min-width:0; margin:0; padding:0; overflow:hidden; }
.task-detail #detail-poster img { position:absolute; inset:0; width:100%; height:100%; max-width:100%; max-height:100%; min-width:0; min-height:0; object-fit:contain; object-position:center; display:block; }
.task-poster-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--space-3); aspect-ratio:2/3; padding:var(--space-4); background:var(--input-bg); border:1px dashed var(--line); border-radius:var(--radius-control); color:var(--muted); text-align:center; }
.task-detail-summary h2 { font-size:21px; line-height:1.5; overflow-wrap:anywhere; white-space:pre-wrap; }
.task-detail-byline { color:var(--secondary); margin-top:var(--space-2); overflow-wrap:anywhere; }
.task-detail-tags { display:flex; flex-wrap:wrap; gap:var(--space-2); margin-top:var(--space-3); }
.task-detail-tags span { background:var(--accent-wash); border:2px solid var(--outline); border-radius:999px; padding:var(--space-1) var(--space-3); line-height:1.6; overflow-wrap:anywhere; }
.task-synopsis { margin-top:var(--space-3); }
.task-synopsis>p { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; line-height:1.8; white-space:pre-wrap; overflow-wrap:anywhere; }
.task-synopsis.expanded>p { display:block; }
.task-synopsis-controls { display:flex; align-items:center; gap:var(--space-2); margin-top:var(--space-1); }
.task-detail .task-synopsis-controls .button { padding:2px var(--space-2); }
.task-detail #drawer-info { display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--space-2); margin:var(--space-3) 0; font-size:14px; }
.task-detail #drawer-info dt { color:var(--muted); }
.task-detail #drawer-info dd { margin:0 var(--space-4) 0 0; overflow-wrap:anywhere; }
.task-detail-actions { display:flex; flex-wrap:wrap; gap:var(--space-2); margin-top:var(--space-3); }
.task-detail #drawer-error:empty { display:none; }
.task-detail #drawer-error { margin-top:var(--space-2); }
.task-detail .task-site-warning { color:var(--amber); white-space:normal; text-align:left; }
.task-detail-content { min-width:0; }
.task-detail .tabs { flex-wrap:nowrap; overflow-x:auto; margin:var(--space-5) 0; gap:var(--space-5); }
.task-detail .tab { flex:none; font-size:14px; }
.task-detail .field-help,.task-detail .field-label,.task-detail .input,.task-detail textarea,.task-detail .button,.task-detail .small-text,.task-detail .notice,.task-detail .log-line,.task-detail .source-value,.task-detail .code-output { font-size:14px; }
.task-detail h3 { font-size:16px; }
.task-detail .notice { margin-bottom:var(--space-3); }
.task-detail .section-heading { flex-wrap:wrap; margin-bottom:var(--space-3); gap:var(--space-3); }
.task-detail .section-heading>span { font-size:13px; }
.task-detail .section-heading>.button { margin-left:auto; }
.task-detail-gallery { margin-bottom:var(--space-6); }
.task-gallery-strip { display:flex; align-items:start; gap:var(--space-3); overflow-x:auto; overscroll-behavior-x:contain; padding:var(--space-1) var(--space-1) var(--space-3); scrollbar-gutter:stable; }
.task-detail .task-gallery-item { flex:0 0 166px; display:flex; flex-direction:column; gap:var(--space-2); min-width:0; padding:var(--space-2); border:1px solid var(--line); border-radius:var(--radius-small); background:var(--input-bg); box-shadow:none; white-space:normal; }
.task-detail .task-gallery-item:hover { background:var(--accent-wash); border-color:var(--outline); }
.task-gallery-item .image-preview { display:flex; align-items:center; justify-content:center; width:100%; height:106px; min-height:0; min-width:0; margin:0; padding:0; overflow:hidden; border-radius:var(--radius-small); }
.task-gallery-item .image-preview img { display:block; width:100%; height:100%; min-width:0; min-height:0; max-height:100%; object-fit:contain; }
.task-gallery-caption { line-height:1.5; overflow-wrap:anywhere; }
.task-reading-grid { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,1fr); gap:var(--space-6); align-items:start; }
.task-reading-grid>section { min-width:0; }
.task-metadata-values { margin:var(--space-3) 0 0; }
.task-metadata-row { display:grid; grid-template-columns:96px minmax(0,1fr); gap:var(--space-3); padding:var(--space-3) 0; border-bottom:1px solid var(--line); line-height:1.8; }
.task-metadata-row dt { color:var(--muted); overflow-wrap:anywhere; }
.task-metadata-row dd { display:flex; align-items:flex-start; gap:var(--space-2); margin:0; min-width:0; }
.task-metadata-value { flex:1; overflow-wrap:anywhere; white-space:pre-wrap; min-width:0; }
.task-field-source { display:inline-block; flex:none; background:var(--neutral-bg); color:var(--secondary); border-radius:var(--radius-small); padding:var(--space-1) var(--space-2); font-size:12px; overflow-wrap:anywhere; max-width:90px; }
.task-original-addresses { margin-top:var(--space-4); }
.task-log-overview .field-help { line-height:1.6; }
.task-log-stage { margin:var(--space-4) 0 0 var(--space-2); padding:0 0 var(--space-3) var(--space-4); border-left:2px solid var(--line); }
.task-log-stage h4 { margin:0 0 var(--space-2); font-size:14px; }
.task-log-message { margin:var(--space-2) 0; line-height:1.7; overflow-wrap:anywhere; white-space:pre-wrap; }
.task-log-message time { display:block; font-size:12px; color:var(--muted); }
.task-log-warning { color:var(--amber); }
.task-detail-files { margin-top:var(--space-6); }
.task-detail .task-file-facts { font-size:14px; grid-template-columns:72px minmax(0,1fr); gap:var(--space-2) var(--space-3); margin:var(--space-4) 0; }
.task-detail-footer { justify-content:space-between; }
.task-detail-footer .field-help { margin:0; flex:1; min-width:0; }
.image-viewer-position { align-self:center; color:var(--muted); }
.task-detail .log-line { grid-template-columns:110px 55px 80px minmax(0,1fr); }
.task-detail .log-viewport { max-height:55dvh; }
@media(max-width:800px) {
  .task-detail-header { flex-wrap:wrap; gap:var(--space-2); }
  .task-detail-header h2 { order:0; flex:1; }
  .task-detail-header>.icon-button { order:1; }
  .task-detail-nav { order:2; justify-content:center; width:100%; }
  .task-detail-body { padding:var(--space-4); padding-bottom:max(var(--space-4),env(safe-area-inset-bottom)); }
  .task-detail-hero { --detail-poster-width:124px; gap:var(--space-4); }
  .task-detail-summary h2 { font-size:18px; }
  .task-detail .tabs { gap:var(--space-4); }
  .task-reading-grid { grid-template-columns:minmax(0,1fr); }
  .task-detail .log-line { grid-template-columns:minmax(0,1fr) auto; }
  .task-detail .log-message { grid-column:1/-1; }
  .task-detail .input,.task-detail textarea { font-size:16px; }
  .task-metadata-row dd { flex-wrap:wrap; }
  .task-metadata-value { flex-basis:100%; }
}
@media(max-width:540px) {
  .task-detail-hero { --detail-poster-width:104px; display:block; }
  .task-detail-heading { display:block; }
  .task-detail-secondary-actions { clear:both; }
  .task-detail #detail-poster { float:left; margin:0 var(--space-3) var(--space-3) 0; }
  .task-metadata-row { grid-template-columns:80px minmax(0,1fr); }
  .task-detail-identity { display:block; }
  .task-detail .drawer-heading-meta { margin-top:var(--space-2); }
  .task-detail-summary h2 { font-size:17px; }
  .task-detail-tags,.task-synopsis { clear:both; }
  .task-detail-hero::after { content:""; display:block; clear:both; }
  .task-detail .task-gallery-item { flex-basis:146px; }
  .task-gallery-item .image-preview { height:94px; }
}
