:root{color-scheme:dark;--bg:#0b0c0f;--top:#0b0c0f;--panel:#121419;--panel2:#0e1014;--line:#252a33;--line2:#39404b;--text:#f3f5f7;--muted:#8f98a7;--soft:#c2c8d0;--button:#f2f4f7;--buttonText:#090a0c;--hover:#181b21;--ok:#55d79a;--warn:#eebd57;--danger:#f17070;--accent:#f3f5f7;--shadow:0 18px 60px rgba(0,0,0,.18)}
html[data-theme="light"]{color-scheme:light;--bg:#f4f5f7;--top:rgba(255,255,255,.9);--panel:#fff;--panel2:#f7f8fa;--line:#e1e5e9;--line2:#c6ccd4;--text:#17191d;--muted:#737b87;--soft:#4f5865;--button:#17191d;--buttonText:#fff;--hover:#eff1f4;--ok:#159b62;--warn:#9b6900;--danger:#cc3d3d;--accent:#17191d;--shadow:0 12px 42px rgba(24,32,44,.08)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}button,input,textarea,select{font:inherit}button{color:inherit}
.topbar{height:62px;padding:0 clamp(14px,2vw,30px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:var(--top);backdrop-filter:blur(18px);position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:11px}.logo{width:38px;height:38px;border:1px solid var(--line2);border-radius:11px;display:grid;place-items:center;font-size:18px;font-weight:850;background:var(--panel)}.brand-copy strong{display:block;font-size:15px}.brand-copy span{display:block;margin-top:1px;color:var(--muted);font-size:11px}.top-actions{display:flex;align-items:center;gap:8px}.npu-pill{height:36px;padding:0 11px;border:1px solid var(--line);border-radius:999px;display:flex;align-items:center;gap:7px;background:var(--panel);font-size:11px;color:var(--soft)}.npu-pill i{width:8px;height:8px;border-radius:50%;background:var(--warn)}.npu-pill.online i{background:var(--ok)}.npu-pill.offline i{background:var(--danger)}.icon-btn{width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:var(--panel);display:grid;place-items:center;cursor:pointer;font-size:16px}.icon-btn:hover{border-color:var(--line2);background:var(--hover)}
.page{width:min(1600px,100%);height:calc(100dvh - 62px);margin:auto;padding:12px;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,430px);grid-template-areas:"workspace settings";gap:12px;overflow:hidden}.panel{background:var(--panel);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}.workspace{grid-area:workspace;display:grid;grid-template-rows:minmax(0,1.65fr) minmax(180px,.55fr);gap:12px;min-width:0;min-height:0}.preview-panel{overflow:hidden}.settings-panel{grid-area:settings;padding:17px;overflow:auto;min-height:0;scrollbar-width:thin}.preview-panel,.queue-panel{padding:16px;min-height:0;display:flex;flex-direction:column}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.panel-head h1,.panel-head h2{margin:0;font-size:16px}.panel-head p{margin:3px 0 0;color:var(--muted);font-size:10px}.settings-title{align-items:flex-start;margin-bottom:13px}.preview-actions{display:flex;gap:6px}.preview-actions a{border:1px solid var(--line);border-radius:8px;padding:6px 9px;font-size:9px;color:var(--text);text-decoration:none;background:var(--panel2)}
.preview-body{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.video-shell{width:100%;height:100%;min-height:0;border:1px solid var(--line);border-radius:13px;background:radial-gradient(circle at 50% 32%,var(--hover),#07080b 70%);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.preview-canvas{width:100%;height:100%;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;padding:8px}.preview-canvas video{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;background:#000;border-radius:10px;box-shadow:0 12px 36px rgba(0,0,0,.3)}.preview-canvas video[data-orientation="landscape"]{width:100%;height:auto}.preview-canvas video[data-orientation="portrait"],.preview-canvas video[data-orientation="square"]{height:100%;width:auto}.empty-video{text-align:center;color:#68717f;display:grid;gap:5px}.play-mark{font-size:29px}.empty-video strong{font-size:11px}.empty-video span{font-size:9.5px}.queue-head{margin-bottom:8px}.text-btn{border:1px solid var(--line);border-radius:8px;background:var(--panel2);padding:6px 9px;font-size:10px;cursor:pointer}.jobs{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));align-content:start;gap:8px;scrollbar-width:thin}.empty-list{grid-column:1/-1;padding:28px;text-align:center;color:var(--muted);font-size:10px}
.job{border:1px solid var(--line);border-radius:11px;padding:10px;background:var(--panel2);cursor:default}.job:hover{border-color:var(--line2)}.job-top{display:flex;gap:9px;align-items:flex-start}.job-icon{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;flex:0 0 auto}.job-main{min-width:0;flex:1}.job-title{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:1px 0 5px}.job-meta{display:flex;gap:5px;flex-wrap:wrap;color:var(--muted);font-size:8.5px}.badge{font-size:9px;padding:3px 6px;border:1px solid var(--line);border-radius:999px;white-space:nowrap}.badge.completed{color:var(--ok)}.badge.running{color:var(--warn)}.badge.failed{color:var(--danger)}.badge.queued{color:#7d9cff}.job-info{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:8px}.metric{padding:6px;border-radius:7px;background:var(--panel)}.metric span{display:block;color:var(--muted);font-size:8px}.metric b{font-size:9.5px}.progress-wrap{margin-top:8px}.progress-label{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:8.5px;margin-bottom:5px}.progress-label b{color:var(--soft);font-weight:650}.progress-track{height:4px;background:var(--line);border-radius:999px;overflow:hidden}.progress-bar{height:100%;width:0;background:var(--accent);border-radius:999px;transition:width .5s ease}.error-box{margin-top:7px;color:var(--danger);font-size:9px;word-break:break-word}.job-actions{display:flex;gap:5px;margin-top:7px}.job-actions a,.job-actions button{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:7px;padding:5px 7px;font-size:9px;text-decoration:none;cursor:pointer}
.media-tabs{display:grid;grid-template-columns:1fr 1fr;padding:3px;background:var(--panel2);border:1px solid var(--line);border-radius:10px}.media-tabs button{height:34px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:10.5px;cursor:pointer}.media-tabs button.active{background:var(--panel);color:var(--text);box-shadow:0 1px 7px rgba(0,0,0,.12)}.field-title{display:flex;align-items:center;justify-content:space-between;margin:12px 0 7px;font-size:11px;font-weight:700}.field-title span{font-weight:500;color:var(--muted)}.dropzone{height:112px;border:1px dashed var(--line2);border-radius:12px;background:var(--panel2);display:grid;place-items:center;cursor:pointer}.dropzone:hover,.dropzone.drag{border-color:var(--soft);background:var(--hover)}.drop-copy{text-align:center}.drop-copy b{display:block;font-size:22px;line-height:1;color:var(--soft)}.drop-copy strong{display:block;margin-top:6px;font-size:11.5px}.drop-copy span{display:block;margin-top:4px;color:var(--muted);font-size:9px}.thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:7px}.thumb{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:var(--panel2)}.thumb img{width:100%;height:100%;object-fit:cover}.video-thumb{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:5px;color:var(--muted)}.video-thumb b{font-size:18px;color:var(--soft)}.video-thumb span{width:100%;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;font-size:7.5px}.thumb button{position:absolute;right:3px;top:3px;width:19px;height:19px;border:0;border-radius:50%;background:rgba(0,0,0,.68);color:#fff;cursor:pointer}
textarea,.input,.select{width:100%;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text);outline:none;padding:10px 11px}textarea{min-height:102px;max-height:180px;resize:vertical;line-height:1.5;font-size:11.5px}.select,.input{height:38px;font-size:11px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chips button{min-height:34px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);padding:7px 10px;color:var(--soft);font-size:10.5px;cursor:pointer}.chips button.active{background:var(--button);border-color:var(--button);color:var(--buttonText)}.resolution-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.resolution-card{min-height:60px;border:1px solid var(--line);border-radius:11px;background:var(--panel2);color:var(--text);padding:10px;text-align:left;cursor:pointer}.resolution-card.active{border-color:var(--text)}.resolution-main{display:block;font-size:12px;font-weight:750}.resolution-sub{display:block;color:var(--muted);font-size:9px;margin-top:3px}.resolution-note{margin:7px 2px 0;color:var(--muted);font-size:8.6px;line-height:1.45}.advanced{margin-top:13px;border:1px solid var(--line);border-radius:11px;background:var(--panel2);overflow:hidden}.advanced summary{list-style:none;cursor:pointer;padding:10px 11px;display:flex;align-items:center;justify-content:space-between;font-size:10.5px;font-weight:700}.advanced summary::-webkit-details-marker{display:none}.advanced summary:after{content:"⌄";font-size:14px;color:var(--muted)}.advanced[open] summary:after{transform:rotate(180deg)}.advanced summary small{margin-left:auto;margin-right:8px;color:var(--muted);font-size:8.5px;font-weight:500}.advanced-body{border-top:1px solid var(--line);padding:11px}.advanced-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:9.5px;font-weight:700}.advanced-label span{font-weight:500;color:var(--muted);font-size:8.5px}.chips.compact button{min-height:30px;padding:5px 9px}.advanced-two{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}.create-btn{width:100%;height:44px;margin-top:13px;border:0;border-radius:11px;background:var(--button);color:var(--buttonText);display:flex;align-items:center;justify-content:space-between;padding:0 14px;cursor:pointer;font-size:12px;font-weight:800}.create-btn small{font-size:9px;font-weight:600;opacity:.55}.form-msg{min-height:14px;margin-top:7px;color:var(--muted);font-size:9.5px}.form-msg.error{color:var(--danger)}
.upload-status{margin-top:8px;padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}.upload-status-line{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:8.8px;margin-bottom:6px}.upload-progress-track{height:5px;border-radius:999px;background:var(--line);overflow:hidden}.upload-progress-bar{height:100%;width:0;background:var(--accent);border-radius:999px;transition:width .18s ease}
@media(min-width:981px){.preview-panel{padding:14px}.preview-head{margin-bottom:8px}.preview-body{padding:0}.video-shell{min-height:0}.preview-canvas{padding:10px 12px}}
@media(max-width:980px){.page{height:auto;min-height:calc(100dvh - 62px);overflow:visible;grid-template-columns:1fr;grid-template-areas:"settings" "workspace";padding:8px}.settings-panel{overflow:visible}.workspace{grid-template-rows:auto auto}.preview-panel{height:min(65dvh,520px);min-height:300px}.queue-panel{min-height:220px}.jobs{overflow:visible;grid-template-columns:1fr}.video-shell{min-height:230px}}
@media(max-width:560px){.topbar{height:58px;padding:0 10px}.page{min-height:calc(100dvh - 58px);padding:6px;gap:7px}.panel{border-radius:12px}.settings-panel,.preview-panel,.queue-panel{padding:12px}.brand-copy span{display:none}.npu-pill{height:34px;padding:0 9px}.npu-pill span{font-size:9.5px}.icon-btn{width:34px;height:34px}.dropzone{height:100px}.thumbs{grid-template-columns:repeat(4,1fr)}.ratio-chips button{flex:1 0 calc(25% - 6px)}.preview-panel{height:360px;min-height:360px}.video-shell{min-height:250px}.advanced-two{grid-template-columns:1fr 1fr}}

.create-btn:disabled{opacity:.48;cursor:not-allowed;filter:saturate(.35)}

.key-btn{height:36px;padding:0 11px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--soft);display:flex;align-items:center;text-decoration:none;font-size:10px;cursor:pointer}
.hidden{display:none!important}
.queue-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.task-tabs{display:flex;gap:4px;background:var(--panel2);border:1px solid var(--line);padding:3px;border-radius:9px}
.task-tabs button{border:0;background:transparent;color:var(--muted);border-radius:6px;padding:6px 10px;font-size:10px;cursor:pointer}
.task-tabs button.active{background:var(--panel);color:var(--text)}
.queue-public.mine{border-color:var(--soft)}
.media-limit-note{margin:7px 2px 0;color:var(--muted);font-size:8.8px;line-height:1.45}
.media-limit-note.bad{color:var(--danger)}
.video-thumb small{font-size:7.5px;margin-top:3px;color:var(--muted)}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.52);display:grid;place-items:center;z-index:100;padding:14px}
.access-card{width:min(460px,100%);border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:18px;box-shadow:var(--shadow)}
.access-head{display:flex;justify-content:space-between;gap:16px}.access-head h2{margin:0;font-size:16px}.access-head p{margin:4px 0 0;color:var(--muted);font-size:10px}
.modal-close{border:0;background:transparent;color:var(--muted);font-size:23px;cursor:pointer}
.access-note{border:1px solid var(--line);background:var(--panel2);padding:10px;border-radius:10px;color:var(--soft);font-size:10px;line-height:1.6;margin:12px 0 8px}
.primary-small{width:100%;height:38px;border:0;background:var(--button);color:var(--buttonText);border-radius:9px;font-weight:750;cursor:pointer;margin-top:8px}
.access-divider{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:9px;margin:16px 0 8px}.access-divider:before,.access-divider:after{content:"";height:1px;background:var(--line);flex:1}
.claimed-box{margin-top:12px;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--panel2)}.claimed-box span,.claimed-box p{display:block;color:var(--muted);font-size:9px}.claimed-box code{display:block;margin:7px 0;word-break:break-all;font-size:11px}
.admin-page{width:min(1500px,100%);margin:auto;padding:14px;display:grid;gap:12px}.admin-summary,.admin-section{padding:16px}
.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.summary-card{border:1px solid var(--line);background:var(--panel2);border-radius:10px;padding:11px}.summary-card span{display:block;color:var(--muted);font-size:9px}.summary-card b{display:block;margin-top:4px;font-size:14px}
.admin-table-wrap{overflow:auto}.admin-table{width:100%;border-collapse:collapse;font-size:9.5px}.admin-table th,.admin-table td{text-align:left;padding:8px;border-bottom:1px solid var(--line);vertical-align:top}.admin-table th{color:var(--muted);font-weight:650}.admin-table button{border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:6px;padding:5px 7px;cursor:pointer;font-size:9px}.admin-table .danger-btn{color:var(--danger)}.prompt-cell{max-width:350px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-toast{position:fixed;right:18px;bottom:18px;background:var(--panel);border:1px solid var(--line);padding:10px 14px;border-radius:9px;box-shadow:var(--shadow);font-size:10px}
@media(max-width:560px){.key-btn{padding:0 8px;font-size:9px}.admin-link{display:none!important}.task-tabs button{padding:6px 8px}.modal-backdrop{align-items:end}.access-card{border-radius:16px 16px 8px 8px}}

.admin-detail-card{width:min(1180px,96vw);max-height:92vh;overflow:auto;border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:18px;box-shadow:var(--shadow)}
.admin-detail-body{display:grid;gap:14px;margin-top:14px}
.detail-section{border:1px solid var(--line);background:var(--panel2);border-radius:12px;padding:13px}
.detail-section h3{margin:0 0 10px;font-size:11px}
.detail-kv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:7px}
.detail-kv-grid>div{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:8px;min-width:0}
.detail-kv-grid span{display:block;color:var(--muted);font-size:8px;margin-bottom:4px}
.detail-kv-grid b{display:block;font-size:9.5px;word-break:break-all}
.detail-prompt{white-space:pre-wrap;line-height:1.65;font-size:10.5px;word-break:break-word}
.detail-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.detail-media-card{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel)}
.detail-media-card img,.detail-media-card video{display:block;width:100%;height:150px;object-fit:contain;background:#050608}
.detail-media-card>div:not(.file-placeholder){padding:7px 8px}
.detail-media-card b{display:block;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.detail-media-card span{display:block;margin-top:3px;color:var(--muted);font-size:8px}
.detail-media-card a{display:block;border-top:1px solid var(--line);padding:6px 8px;color:var(--text);text-decoration:none;font-size:8.5px}
.file-placeholder{height:150px;display:grid;place-items:center;color:var(--muted);font-size:16px}
.detail-output video{width:100%;max-height:520px;display:block;background:#000;border-radius:10px}
.detail-output-actions{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:9px}
.detail-output-actions a{border:1px solid var(--line);border-radius:7px;padding:6px 9px;text-decoration:none;color:var(--text)}
.detail-error{max-height:260px;overflow:auto;white-space:pre-wrap;word-break:break-word;color:var(--danger);font-size:9px}
.detail-empty,.detail-loading{padding:28px;text-align:center;color:var(--muted);font-size:10px}
.running-note{margin-left:6px;color:var(--warn);font-size:8.5px}
@media(max-width:560px){.admin-detail-card{width:100%;max-height:94vh;border-radius:14px 14px 8px 8px}.detail-media-grid{grid-template-columns:1fr 1fr}.detail-media-card img,.detail-media-card video,.file-placeholder{height:120px}}

.access-field-label{display:block;margin:10px 0 6px;font-size:9.5px;font-weight:700}
.admin-search{width:min(260px,45vw);height:32px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);padding:0 9px;font-size:9.5px;outline:none}
.admin-actions{white-space:nowrap}
.admin-actions button{margin:2px}
.detail-empty{display:grid;gap:6px}
.detail-empty b{color:var(--soft);font-size:10px}
.detail-empty span{font-size:9px;color:var(--muted)}
.detail-empty code{font-size:8px;color:var(--muted);word-break:break-all}

.access-field-label span{color:var(--muted);font-weight:500;font-size:8.5px;margin-left:4px}


/* V6.5 admin table alignment */
.admin-table{
  width:100%;
  table-layout:fixed;
  border-collapse:collapse;
}
.admin-table th,
.admin-table td{
  height:52px;
  padding:9px 10px;
  vertical-align:middle;
  line-height:1.35;
}
.admin-table th{
  white-space:nowrap;
}
.admin-table td{
  overflow:hidden;
  text-overflow:ellipsis;
}
.admin-table td code,
.admin-table td b{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  display:block;
}
.admin-table-jobs .prompt-cell{
  max-width:none;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.admin-action-row{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
  flex-wrap:nowrap;
  white-space:nowrap;
  min-width:0;
}
.admin-action-row button{
  flex:0 0 auto;
  margin:0;
}
.admin-action-row .running-note{
  flex:0 0 auto;
  margin:0;
}
.admin-table-wrap{
  width:100%;
  overflow-x:auto;
}
.admin-table-users{
  min-width:1180px;
}
.admin-table-jobs{
  min-width:1180px;
}

/* Keep every job on one visual row on desktop. */
@media (min-width:900px){
  .admin-table-jobs tbody tr,
  .admin-table-users tbody tr{
    height:52px;
  }
}

/* On narrow screens preserve alignment and allow horizontal scrolling. */
@media (max-width:899px){
  .admin-table th,
  .admin-table td{
    height:48px;
  }
}

.retry-btn:disabled{opacity:.5;cursor:not-allowed}

.audio-placeholder{
  height:96px;
  display:grid;
  place-items:center;
  background:var(--panel);
  font-size:28px;
  color:var(--soft);
}
.detail-media-card audio{
  display:block;
  width:calc(100% - 16px);
  margin:8px;
  height:34px;
}


/* V8.7.1 preview pre-buffering.  Keep the poster/last decoded frame visible;
   buffering is communicated by an overlay instead of blanking the video. */
.preview-canvas{position:relative}
.preview-canvas video{transition:opacity .16s ease}
.preview-buffer-overlay{
  display:none;position:absolute;inset:0;align-items:center;justify-content:center;
  pointer-events:none;padding:18px;background:rgba(0,0,0,.10);
}
.video-shell.video-prebuffering .preview-buffer-overlay,
.video-shell.video-rebuffering .preview-buffer-overlay{display:flex}
.preview-buffer-card{
  width:min(360px,78%);padding:12px 14px;border:1px solid rgba(255,255,255,.20);
  border-radius:12px;background:rgba(8,10,14,.82);backdrop-filter:blur(7px);
  box-shadow:0 10px 30px rgba(0,0,0,.28);color:#fff;
}
.preview-buffer-card b{display:block;font-size:11px;margin-bottom:8px}
.preview-buffer-card span{display:block;margin-top:7px;font-size:9px;color:rgba(255,255,255,.78)}
.preview-buffer-track{height:5px;border-radius:999px;background:rgba(255,255,255,.16);overflow:hidden}
.preview-buffer-track i{display:block;height:100%;width:0;border-radius:inherit;background:rgba(255,255,255,.88);transition:width .2s linear}
.video-shell.video-rebuffering .preview-buffer-overlay{align-items:flex-end;justify-content:center;padding-bottom:22px;background:transparent}
.video-shell.video-rebuffering .preview-buffer-card{width:auto;min-width:190px;padding:8px 10px;background:rgba(8,10,14,.78)}
.video-shell.video-rebuffering .preview-buffer-card b{margin-bottom:5px;font-size:9px}
.video-shell.video-rebuffering .preview-buffer-card span{margin-top:5px;font-size:8px}
@media(max-width:760px){
  .preview-buffer-card{width:min(330px,88%)}
}


/* V7.3 admin transfer mode switch */
.transfer-settings-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.transfer-setting-item{
  min-height:70px;
  border:1px solid var(--line);
  background:var(--panel2);
  border-radius:11px;
  padding:12px 13px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.transfer-setting-copy{
  min-width:0;
}
.transfer-setting-copy strong{
  display:block;
  font-size:11px;
}
.transfer-setting-copy span{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:9px;
  line-height:1.45;
}
.mode-pill{
  flex:0 0 auto;
  min-width:70px;
  height:28px;
  padding:0 9px;
  border:1px solid var(--line);
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--soft);
  background:var(--panel);
  font-size:9px;
  white-space:nowrap;
}
.mode-pill.ok{
  color:var(--ok);
}
.mode-pill.warn{
  color:var(--warn);
}
.admin-switch{
  position:relative;
  flex:0 0 auto;
  width:46px;
  height:26px;
  cursor:pointer;
}
.admin-switch input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.admin-switch-track{
  position:absolute;
  inset:0;
  border:1px solid var(--line2);
  border-radius:999px;
  background:var(--panel);
  transition:.18s ease;
}
.admin-switch-track i{
  position:absolute;
  width:18px;
  height:18px;
  left:3px;
  top:3px;
  border-radius:50%;
  background:var(--soft);
  transition:.18s ease;
}
.admin-switch input:checked + .admin-switch-track{
  background:var(--text);
  border-color:var(--text);
}
.admin-switch input:checked + .admin-switch-track i{
  transform:translateX(20px);
  background:var(--bg);
}
.admin-switch input:disabled + .admin-switch-track{
  opacity:.38;
  cursor:not-allowed;
}
.transfer-cost-note{
  margin-top:9px;
  padding:9px 11px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--panel2);
  color:var(--muted);
  font-size:9px;
  line-height:1.55;
}
.transfer-cost-note.active{
  color:var(--soft);
}
.transfer-cost-note.warn{
  color:var(--warn);
}
@media(max-width:760px){
  .transfer-settings-grid{
    grid-template-columns:1fr;
  }
}

/* V7.4 Key switcher */
.access-key-actions{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
  align-items:stretch;
}
.access-key-actions .primary-small{
  margin-top:8px;
}
.secondary-small{
  height:38px;
  margin-top:8px;
  padding:0 13px;
  border:1px solid var(--line);
  background:var(--panel2);
  color:var(--text);
  border-radius:9px;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap;
}
.key-value-input{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
@media(max-width:560px){
  .access-key-actions{
    grid-template-columns:1fr 92px;
  }
}

/* V8 generation gateway / true 2K */
.single-resolution{grid-template-columns:1fr}
.generation-mode-wrap.hidden,#referenceSection.hidden{display:none}
.job-actions button[disabled]{opacity:.5;cursor:default}
.two-k-btn{white-space:nowrap}
.detail-output-2k{margin-top:10px}

/* V8.1 task-level video regeneration */
.regen-card{
  width:min(860px,calc(100vw - 28px));
  max-height:min(88vh,900px);
  overflow:auto;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--panel);
  box-shadow:0 24px 80px rgba(0,0,0,.34);
  padding:16px;
}
.regen-source{
  margin-top:12px;padding:12px;border:1px solid var(--line);
  border-radius:12px;background:var(--panel2);
}
.regen-source-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.regen-source-actions{display:flex;gap:8px;align-items:center}
.regen-source-actions a{text-decoration:none}
.regen-prompt{
  margin-top:9px;padding:9px 10px;border:1px solid var(--line);
  border-radius:9px;background:var(--panel);font-size:10px;line-height:1.55;
  white-space:pre-wrap;max-height:110px;overflow:auto;
}
.regen-materials{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.regen-material-title{width:100%;color:var(--muted);font-size:9px}
.regen-material{
  display:flex;gap:7px;align-items:center;max-width:100%;padding:7px 9px;
  border:1px solid var(--line);border-radius:8px;color:var(--text);
  background:var(--panel);text-decoration:none;font-size:9px;
}
.regen-material span{color:var(--muted)}
.regen-material b{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.regen-material-empty{color:var(--muted);font-size:9px}
.regen-methods{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.regen-method{border:1px solid var(--line);border-radius:12px;padding:13px;background:var(--panel2)}
.regen-method-title{display:flex;align-items:center;gap:9px}
.regen-method-title strong{display:block;font-size:11px}
.regen-method-title small{display:block;margin-top:3px;color:var(--muted);font-size:9px}
.regen-method-no{
  width:25px;height:25px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;border:1px solid var(--line2);font-weight:800;font-size:10px;
}
.regen-steps{margin:12px 0 10px;padding-left:20px;color:var(--soft);font-size:9.5px;line-height:1.7}
.compact-steps{margin-bottom:8px}
.regen-primary-link{display:flex;text-decoration:none;align-items:center;justify-content:center}
.regen-doc-links{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:9px}
.regen-doc-links a{color:var(--soft);font-size:9px;text-decoration:underline;cursor:pointer}
.regen-price{padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--panel);margin-bottom:10px}
.regen-price strong,.regen-price span,.regen-price b,.regen-price small{display:block}
.regen-price strong{font-size:9.5px}
.regen-price span{margin-top:5px;color:var(--muted);font-size:8.8px;line-height:1.55}
.regen-price b{margin-top:7px;font-size:11px}
.regen-price small{margin-top:3px;color:var(--muted);font-size:8px}
.regen-key-row{display:grid;grid-template-columns:1fr auto;gap:7px}
.regen-key-row .secondary-small{margin-top:0;height:auto}
.regen-method #regenApiSubmit{width:100%;margin-top:8px}
.regen-key-note{margin-top:6px;color:var(--muted);font-size:8px}
.regen-result{
  display:flex;align-items:center;gap:9px;margin-top:10px;padding:10px 11px;
  border:1px solid var(--line);border-radius:10px;background:var(--panel2);font-size:9px;
}
.regen-result.hidden{display:none}
.regen-result span{color:var(--muted)}
.regen-result a{color:var(--text);text-decoration:none;border:1px solid var(--line);border-radius:7px;padding:6px 8px}
@media(max-width:760px){
  .regen-card{padding:12px}
  .regen-methods{grid-template-columns:1fr}
  .regen-source-head{align-items:flex-start;flex-direction:column}
}


/* V8.2 FINAL: user-supplied feather-wing application icon */
.logo{
  overflow:hidden;
  padding:0;
}
.logo .brand-icon{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:inherit;
}

/* V8.2 FINAL: API-only H3 video regeneration */
.regen-card-api-only{
  width:min(720px,calc(100vw - 28px));
}
.regen-api-only{
  margin-top:10px;
}
.regen-api-only .regen-method-no{
  width:36px;
  border-radius:8px;
}
.regen-api-only #regenApiSubmit{
  width:100%;
  margin-top:9px;
}


/* V8.3 task cancellation */
.badge.canceling{
  opacity:.82;
}
.badge.canceled{
  opacity:.62;
}
.job-actions button:disabled{
  opacity:.55;
  cursor:not-allowed;
}

.admin-more-row{display:flex;justify-content:center;padding:12px 0 2px}

/* V8.4.5 MiniMax dual-region API selector + readable raw errors */
.regen-region-switch{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:5px 0 6px}
.regen-region-switch button{height:34px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--soft);font-size:9.5px;font-weight:700;cursor:pointer}
.regen-region-switch button.active{background:var(--button);border-color:var(--button);color:var(--buttonText)}
.regen-region-switch button:disabled{opacity:.58;cursor:not-allowed}
.regen-region-note{margin:0 0 9px;color:var(--muted);font-size:8.2px;line-height:1.5}
#regenMsg{white-space:pre-wrap;word-break:break-word;line-height:1.55}
.regen-result span{white-space:pre-wrap;word-break:break-word}


/* V8.5.0 same-card 2K regeneration progress */
.progress-track{position:relative}
.progress-bar.regen-indeterminate{width:32%;position:absolute;left:-32%;animation:regen-progress-sweep 1.35s ease-in-out infinite}
@keyframes regen-progress-sweep{0%{left:-32%;width:28%}50%{left:38%;width:40%}100%{left:100%;width:28%}}

/* V8.5.0 desktop three-column workspace: tasks / preview / generation settings */
.task-sidebar{grid-area:tasks;min-width:0;overflow:hidden}
.queue-toolbar-actions{display:flex;align-items:center;gap:6px}

@media(min-width:1100px){
  .page{
    width:min(1800px,100%);
    grid-template-columns:clamp(340px,20vw,380px) minmax(430px,1fr) clamp(360px,23vw,430px);
    grid-template-areas:"tasks workspace settings";
    transition:grid-template-columns .2s ease;
  }
  .workspace{grid-area:workspace;display:grid;grid-template-rows:minmax(0,1fr);min-height:0}
  .preview-panel{height:100%;min-height:0}
  .queue-panel{height:100%;padding:12px;min-height:0}
  .queue-panel .jobs{grid-template-columns:1fr;overflow:auto;align-content:start;overflow-anchor:none;scrollbar-gutter:stable}
  .queue-panel .job{padding:9px}
  .queue-panel .job-info{grid-template-columns:1fr 1fr}
  .queue-panel .job-info .metric:nth-child(3){grid-column:1/-1}
}

@media(max-width:1099px){
  .page{
    height:auto;
    min-height:calc(100dvh - 62px);
    overflow:visible;
    grid-template-columns:1fr;
    grid-template-areas:"settings" "workspace" "tasks";
    padding:8px;
  }
  .settings-panel{overflow:visible}
  .workspace{grid-area:workspace;grid-template-rows:auto}
  .preview-panel{height:min(65dvh,560px);min-height:300px}
  .queue-panel{grid-area:tasks;min-height:260px;padding:12px}
  .queue-panel .jobs{overflow:visible;grid-template-columns:1fr}
}

/* V8.5.0 admin: group Keys created from the same public IP without exposing raw IP addresses. */
.ip-key-groups{display:grid;gap:10px}
.ip-key-group{border:1px solid var(--line);border-radius:11px;background:var(--panel2);overflow:hidden}
.ip-key-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--panel)}
.ip-key-group-title{display:flex;align-items:center;gap:8px;min-width:0}
.ip-key-group-title b{font-size:10.5px;white-space:nowrap}
.ip-key-group-title span{color:var(--muted);font-size:9px;white-space:nowrap}
.ip-key-group-stats{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end;color:var(--muted);font-size:8.5px}
.ip-key-group-badge{border:1px solid var(--line);border-radius:999px;padding:3px 7px;background:var(--panel2);white-space:nowrap}
.ip-key-group-badge.multi{color:var(--warn)}
.ip-key-group-badge.attention{color:var(--danger)}
.ip-key-group .admin-table-wrap{border:0}
.ip-key-group .admin-table{margin:0}
.ip-key-group .admin-table-users{min-width:1080px}
.ip-key-hint{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:8.5px}
@media(max-width:760px){
  .ip-key-group-head{align-items:flex-start;flex-direction:column}
  .ip-key-group-stats{justify-content:flex-start}
}

/* V8.5.0 regeneration key security note */
.regen-key-note strong{font-weight:750}
.regen-key-note{line-height:1.55}


/* V8.6.0 global showcase */
.showcase-list{grid-template-columns:1fr!important}
.showcase-card{border:1px solid var(--line);border-radius:11px;background:var(--panel2);overflow:hidden;display:grid;gap:0}
.showcase-card>video{width:100%;aspect-ratio:16/9;object-fit:contain;background:#050608;display:block}
.showcase-card-body{display:grid;gap:7px;padding:9px}
.showcase-card-title{font-size:10px;font-weight:650;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.showcase-card .text-btn{justify-self:start}
.showcase-detail-card{width:min(1080px,96vw)}
.job-actions button[data-showcase-request],.job-actions button[data-showcase-cancel]{white-space:nowrap}

/* V8.6.0 categorized administrator workspace */
.admin-nav{padding:7px;display:flex;align-items:center;gap:5px;overflow:auto;position:sticky;top:70px;z-index:8}
.admin-nav button{border:0;background:transparent;color:var(--muted);border-radius:8px;padding:8px 12px;font-size:10px;font-weight:650;cursor:pointer;white-space:nowrap}
.admin-nav button.active{background:var(--panel2);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}
.admin-tab-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:4px;border-radius:999px;background:var(--danger);color:#fff;font-size:8px}
.admin-showcase-filter{width:130px;height:34px;margin:0}
.admin-table-showcase{min-width:1000px}
.admin-table-showcase .approve-btn{color:var(--ok)}
@media(max-width:760px){.admin-nav{top:60px}.showcase-detail-card{width:100%}.admin-showcase-filter{width:120px}}

.admin-nav .admin-nav-refresh{margin-left:auto;border:1px solid var(--line);background:var(--panel2);color:var(--text)}

/* V8.6.1 desktop task list readability: fixed sidebar, no collapse, no horizontal overflow */
@media(min-width:1100px){
  .queue-toolbar{gap:8px}
  .task-tabs{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-width:0}
  .task-tabs button{min-width:0;white-space:nowrap;padding:7px 6px}
  .queue-toolbar-actions{flex:0 0 auto}
  #refreshBtn{white-space:nowrap;padding:6px 9px}
  .queue-panel .jobs{overflow-x:hidden}
  .queue-panel .job{min-width:0;overflow:hidden}
  .queue-panel .job-top,.queue-panel .job-main{min-width:0}
  .queue-panel .job-title{max-width:100%}
  .queue-panel .job-info{grid-template-columns:1fr 1fr}
  .queue-panel .job-info .metric:nth-child(3){grid-column:1/-1}
  .queue-panel .job-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%}
  .queue-panel .job-actions a,.queue-panel .job-actions button{display:flex;align-items:center;justify-content:center;min-width:0;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
.showcase-state-btn{opacity:.8}


/* V8.6.2 task-card action visibility + admin showcase filter readability */
@media(min-width:1100px){
  .queue-panel .job{overflow:visible;display:block}
  .queue-panel .job-actions{margin-top:8px;margin-bottom:0;position:relative;z-index:2}
  .queue-panel .job-actions a,.queue-panel .job-actions button{min-height:30px;padding:6px 7px;font-size:9px}
  .queue-panel .job-info{margin-top:7px}
  .queue-panel .jobs{grid-auto-rows:max-content;align-items:start}
}
.admin-showcase-filter{
  width:180px;
  min-width:180px;
  flex:0 0 180px;
  padding-left:12px;
  padding-right:34px;
  white-space:nowrap;
  overflow:visible;
  text-overflow:clip;
}
@media(max-width:760px){
  .admin-showcase-filter{width:150px;min-width:150px;flex-basis:150px;padding-right:30px}
}

/* V8.6.3 explicit task actions: cards no longer trigger preview */
.queue-panel .job-detail-btn{font-weight:650}
@media(min-width:1100px){
  .queue-panel .job-actions .job-detail-btn:last-child:nth-child(odd){grid-column:1/-1}
}

/* V8.6.4 detail reuse + task generated time */
.job-generated-at{margin-top:5px;color:var(--muted);font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.detail-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.detail-section-head h3{margin:0}
.detail-copy-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:7px;padding:5px 8px;font-size:8.5px;cursor:pointer;white-space:nowrap}
.detail-copy-btn:hover,.detail-media-download:hover{border-color:var(--line2)}
.detail-media-download{text-align:center;font-weight:650}

/* V8.6.5 fixed completed-task action matrix */
.queue-panel .job-actions-completed{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
  width:100%;
}
.queue-panel .job-actions-completed>a,
.queue-panel .job-actions-completed>button,
.queue-panel .job-actions-completed>.job-action-placeholder{
  min-width:0;
  width:100%;
  min-height:30px;
}
.queue-panel .job-actions-completed>.job-action-placeholder{
  display:block;
  visibility:hidden;
  pointer-events:none;
}
.queue-panel .job-actions-completed .job-detail-btn:last-child:nth-child(odd){grid-column:auto}
.detail-secondary-actions{display:flex;gap:8px;margin-top:10px}
.detail-secondary-actions button{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:8px;padding:7px 12px;font-size:9px;font-weight:650;cursor:pointer}


/* V8.6.6 showcase preview controls + fixed six-button task matrix */
.showcase-card>video{display:none}
.showcase-preview-card{cursor:pointer}
.showcase-preview-card:hover{border-color:var(--line2)}
.showcase-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:2px}
.showcase-actions button{display:flex;align-items:center;justify-content:center;min-width:0;width:100%;min-height:30px;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:7px;padding:6px 7px;font-size:9px;cursor:pointer;white-space:nowrap}
.showcase-actions button:disabled{opacity:.42;cursor:default}
.showcase-actions .showcase-detail-btn{grid-column:1/-1;justify-self:stretch}
.queue-panel .job-actions-completed>button:disabled{opacity:.42;background:var(--panel);color:var(--muted)}

/* V8.6.7 showcase thumbnail: keep the visual card, play only from explicit controls */
.showcase-thumb{position:relative;width:100%;aspect-ratio:16/9;background:#050608;overflow:hidden}
.showcase-thumb img{width:100%;height:100%;display:block;object-fit:contain;background:#050608;pointer-events:none}
.showcase-thumb-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:999px;border:1px solid rgba(255,255,255,.42);background:rgba(8,10,14,.72);color:#fff;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(5px);box-shadow:0 6px 18px rgba(0,0,0,.28)}
.showcase-thumb-play:hover{background:rgba(20,24,31,.9);border-color:rgba(255,255,255,.72)}
.showcase-preview-card{cursor:default}


/* V8.6.8 showcase cards load JPEG covers only; video bytes start on explicit playback. */
.showcase-thumb img{user-select:none;-webkit-user-drag:none}

/* V8.7.2 advanced settings: remove the cramped summary subtitle and make Steps editable. */
.advanced summary{min-height:44px;padding:11px 12px}
.advanced summary:after{margin-left:auto;flex:0 0 auto}
.advanced summary small{display:none!important}
.steps-input{font-variant-numeric:tabular-nums}
.step-presets{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:7px}
.step-presets button{width:100%;min-width:0}
@media(max-width:560px){
  .advanced summary{min-height:46px;padding:12px}
  .advanced-body{padding:12px}
  .step-presets{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* V8.7.5: Advanced Settings header matches the Generate Duration select. */
.advanced{
  margin-top:13px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel2);
  overflow:hidden;
}
.advanced summary{
  width:100%;
  height:38px;
  min-height:38px;
  padding:10px 11px;
  border:0;
  border-radius:10px;
  background:var(--panel2);
  color:var(--text);
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:11px;
  font-weight:500;
  line-height:1;
  cursor:pointer;
}
.advanced summary:after{
  content:"⌄";
  margin-left:auto;
  flex:0 0 auto;
  font-size:14px;
  line-height:1;
  color:var(--text);
}
.advanced[open] summary{
  border-radius:10px 10px 0 0;
}
.advanced[open] summary:after{transform:rotate(180deg)}
.advanced-body{border-top:1px solid var(--line);padding:11px}
@media(max-width:560px){
  .advanced summary{height:38px;min-height:38px;padding:10px 11px;font-size:11px}
}

/* V8.7.6: make Advanced Settings use the exact same visual control shell as .select. */
.advanced{
  margin-top:13px;
  border:0;
  border-radius:0;
  background:transparent;
  overflow:visible;
}
.advanced summary{
  list-style:none;
  width:100%;
  height:38px;
  min-height:38px;
  margin:0;
  padding:10px 11px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel2);
  color:var(--text);
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:11px;
  font-weight:400;
  line-height:1;
  cursor:pointer;
  outline:none;
}
.advanced summary::-webkit-details-marker{display:none}
.advanced summary::marker{display:none;content:""}
.advanced summary:after{
  content:"";
  width:6px;
  height:6px;
  margin-left:auto;
  margin-right:2px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-1px);
  transform-origin:center;
  color:var(--text);
  flex:0 0 auto;
}
.advanced[open] summary{
  border-radius:10px;
}
.advanced[open] summary:after{
  transform:rotate(225deg) translate(-1px,-1px);
}
.advanced-body{
  margin-top:7px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel2);
  padding:11px;
}
@media(max-width:560px){
  .advanced summary{
    height:38px;
    min-height:38px;
    padding:10px 11px;
    font-size:11px;
  }
}


/* V8.7.8 mobile action alignment + native preview streaming.
   Keep the poster/last decoded frame visible while the browser buffers. */
.queue-panel .job-actions-completed>a,
.queue-panel .job-actions-completed>button{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.2;
}
.video-shell.video-native-loading .preview-native-loader{
  display:flex;
  background:transparent;
}
.video-shell.video-native-loading .preview-canvas video{
  opacity:1;
  pointer-events:auto;
}
.preview-native-loader i{
  width:30px;
  height:30px;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.6));
}


/* V8.7.9 manual task refresh feedback */
#refreshBtn{min-width:48px;transition:opacity .15s ease,background .15s ease,border-color .15s ease,color .15s ease}
#refreshBtn.is-refreshing{cursor:wait;opacity:.72}
#refreshBtn.is-refreshed{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,var(--line));background:color-mix(in srgb,var(--ok) 8%,var(--panel2))}
#refreshBtn.is-refresh-error{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--line));background:color-mix(in srgb,var(--danger) 8%,var(--panel2))}


/* V8.8.2 batch showcase review */
.showcase-bulk-bar{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 12px;
  margin:0 0 10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel2);
}
.showcase-bulk-select-all{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;cursor:pointer;font-size:10px}
.showcase-bulk-select-all input,.showcase-row-check{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.showcase-selected-count{color:var(--muted);font-size:9px;white-space:nowrap}
.showcase-bulk-actions{display:flex;align-items:center;gap:7px;margin-left:auto}
.showcase-bulk-actions button{min-height:32px;padding:6px 12px;white-space:nowrap}
.showcase-bulk-actions .approve-btn{color:var(--ok)}
.showcase-select-col{width:52px;min-width:52px;text-align:center!important}
.showcase-row-check-placeholder{color:var(--muted)}
@media(max-width:760px){
  .showcase-bulk-bar{flex-wrap:wrap;gap:8px}
  .showcase-bulk-actions{width:100%;margin-left:0;display:grid;grid-template-columns:1fr 1fr}
  .showcase-bulk-actions button{width:100%}
}

/* V8.8.27 per-Key active task limit */
.ip-key-group .admin-table-users{min-width:1380px}
.key-job-limit-cell{overflow:visible!important}
.key-job-limit-control{display:flex;align-items:center;gap:5px;white-space:nowrap}
.key-job-limit-control>input[type="number"]{width:58px;height:28px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);padding:0 6px;font-size:9px;outline:none}
.key-job-limit-control>input[type="number"]:disabled{opacity:.45;cursor:not-allowed}
.key-job-limit-control>label{display:inline-flex;align-items:center;gap:3px;color:var(--muted);font-size:8.5px;cursor:pointer}
.key-job-limit-control>label input{width:14px;height:14px;margin:0;accent-color:var(--accent)}
.key-job-limit-control>button:disabled{opacity:.5;cursor:default}


/* V8.8.3 top-bar administrator attention badge */
.admin-link{gap:6px}
.admin-notice-badge{
  display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;
  border-radius:999px;background:var(--danger);color:#fff;font-size:8px;font-weight:800;
  line-height:1;box-sizing:border-box;
}
.admin-notice-badge.hidden{display:none!important}
.admin-link.has-admin-notice{border-color:color-mix(in srgb,var(--danger) 48%,var(--line));color:var(--text)}

/* V8.8.4 keeps completed preview blobs in a bounded per-page LRU memory cache. */

/* V8.8.12 mobile detail scroll isolation + My Tasks JPEG covers */
html.detail-modal-open,
body.detail-modal-open{
  overscroll-behavior:none;
}
.modal-backdrop{
  overscroll-behavior:none;
}
.admin-detail-card{
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.my-task-thumb{
  position:relative;
  width:auto;
  aspect-ratio:16/9;
  margin:-10px -10px 10px;
  border-bottom:1px solid var(--line);
  border-radius:10px 10px 0 0;
  overflow:hidden;
  background:#050608;
}
.my-task-thumb img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  background:#050608;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
}
.my-task-thumb-play{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:46px;
  height:46px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.42);
  background:rgba(8,10,14,.72);
  color:#fff;
  font-size:18px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  backdrop-filter:blur(5px);
  box-shadow:0 6px 18px rgba(0,0,0,.28);
}
.my-task-thumb-play:hover{
  background:rgba(20,24,31,.9);
  border-color:rgba(255,255,255,.72);
}
@media(min-width:1100px){
  .queue-panel .job-with-thumb{overflow:hidden;}
  .queue-panel .job-with-thumb .job-actions{z-index:2;}
  .queue-panel .job-with-thumb .my-task-thumb{margin:-9px -9px 9px;}
}
@media(max-width:560px){
  #jobDetailModal,
  #showcaseDetailModal{
    overflow:hidden;
    overscroll-behavior:none;
  }
  #jobDetailModal .admin-detail-card,
  #showcaseDetailModal .admin-detail-card{
    height:min(94dvh,94vh);
    max-height:min(94dvh,94vh);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    overscroll-behavior:none;
  }
  #jobDetailModal .access-head,
  #showcaseDetailModal .access-head{
    flex:0 0 auto;
  }
  #jobDetailModal .admin-detail-body,
  #showcaseDetailModal .admin-detail-body{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior-y:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
    padding-bottom:max(18px,env(safe-area-inset-bottom));
  }
  .my-task-thumb{aspect-ratio:16/9;}
}


/* V8.8.14: keep desktop task-list viewport stable while 1.5 s polling refreshes card data. */


/* V8.8.18 administrator download-only video policy */
.showcase-download-only{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:18px;text-align:center;color:rgba(255,255,255,.82);background:linear-gradient(145deg,#080a0e,#131820)}
.showcase-download-only b{font-size:12px;color:#fff}
.showcase-download-only span{font-size:9px;color:rgba(255,255,255,.58)}
.showcase-actions .showcase-download-btn{display:flex;align-items:center;justify-content:center;min-width:0;width:100%;min-height:30px;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:7px;padding:6px 7px;font-size:9px;text-decoration:none;white-space:nowrap}
.showcase-actions .showcase-download-btn:hover{border-color:var(--line2)}
.detail-download-only{min-height:110px;display:flex;flex-direction:column;justify-content:center}
.detail-preview-disabled{padding:18px 12px;text-align:center;color:var(--muted);font-size:10px;background:var(--panel2);border-bottom:1px solid var(--line)}
.admin-preview-state{margin-top:4px;font-size:8px;color:var(--muted)}
.admin-preview-state.blocked{font-weight:700;color:var(--warn)}


/* V8.8.19 showcase review action layout: keep every control fully visible. */
.admin-table-showcase{min-width:1180px}
.admin-table-showcase th:last-child,.admin-table-showcase td:last-child{width:240px}
.admin-table-showcase td:last-child{overflow:visible}
.admin-table-showcase .admin-action-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
  white-space:normal;
  min-width:150px;
}
.admin-table-showcase .admin-action-row button{
  width:100%;
  min-width:0;
  min-height:30px;
  padding:5px 6px;
  white-space:nowrap;
}
@media(max-width:1050px){
  .admin-table-showcase{min-width:1080px}
  .admin-table-showcase th:last-child,.admin-table-showcase td:last-child{width:170px}
  .admin-table-showcase .admin-action-row{grid-template-columns:1fr;min-width:120px}
}


/* V8.8.21 administrator-controlled durable global queue */
.admin-jobs-section{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.admin-jobs-section.hidden{display:none!important}
.admin-queue-panel,.admin-jobs-list-panel{margin:0}
.admin-queue-head{align-items:center}
.admin-queue-table{min-width:1360px}
.admin-queue-table th:nth-child(1),.admin-queue-table td:nth-child(1){width:80px}
.admin-queue-table th:nth-child(2),.admin-queue-table td:nth-child(2){width:110px}
.admin-queue-table th:nth-child(3),.admin-queue-table td:nth-child(3){width:165px}
.admin-queue-table th:nth-child(4),.admin-queue-table td:nth-child(4){width:180px;white-space:nowrap}
.admin-queue-table th:nth-child(6),.admin-queue-table td:nth-child(6){width:190px;white-space:nowrap}
.admin-queue-table th:nth-child(7),.admin-queue-table td:nth-child(7){width:410px}
.admin-queue-table .prompt-cell{max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.queue-position-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:54px;
  padding:5px 8px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--panel2);
  font-weight:700;
  white-space:nowrap;
}
.queue-admin-controls{display:flex;align-items:center;gap:6px;white-space:nowrap}
.queue-admin-controls>button{flex:0 0 auto}
.queue-position-control{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding-left:4px;
}
.queue-position-control input{
  width:62px;
  height:32px;
  padding:0 6px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--panel2);
  color:var(--text);
  text-align:center;
}
.queue-position-control input:focus{outline:1px solid var(--accent);border-color:var(--accent)}
.queue-admin-controls button:disabled{opacity:.35;cursor:not-allowed}
.admin-queue-inline{margin-top:3px;color:var(--muted);font-size:10px;white-space:nowrap}
.admin-queue-empty{min-height:76px;display:flex;align-items:center;justify-content:center}
@media(max-width:899px){
  .admin-queue-head{align-items:flex-start}
  .admin-queue-table{min-width:1180px}
}

/* V8.8.22 task-management status categories */
.admin-jobs-section{display:block}
.admin-jobs-list-panel{margin:0;overflow:hidden}
.admin-job-status-bar{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-bottom:1px solid var(--line);
  min-width:0;
}
.admin-job-status-tabs{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  flex:1 1 auto;
  overflow-x:auto;
  scrollbar-width:thin;
  padding:1px 0 3px;
}
.admin-job-status-tabs button{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:30px;
  padding:5px 9px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--panel2);
  color:var(--muted);
  font-size:9px;
  font-weight:650;
  cursor:pointer;
  white-space:nowrap;
}
.admin-job-status-tabs button:hover{border-color:var(--line2);color:var(--text)}
.admin-job-status-tabs button.active{
  color:var(--text);
  border-color:var(--line2);
  background:var(--panel);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025);
}
.admin-job-status-tabs button span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  height:18px;
  padding:0 5px;
  border-radius:999px;
  background:rgba(255,255,255,.055);
  color:var(--muted);
  font-size:8px;
  line-height:1;
}
.admin-job-status-tabs button.active span{color:var(--text);background:rgba(255,255,255,.09)}
.admin-jobs-refresh{flex:0 0 auto;margin-left:auto}
.admin-job-category-view{min-width:0}
.admin-category-note{
  padding:8px 12px;
  border-bottom:1px solid var(--line);
  color:var(--muted);
  font-size:9px;
}
.admin-category-empty{min-height:92px;display:flex;align-items:center;justify-content:center}
@media(max-width:699px){
  .admin-job-status-bar{align-items:stretch;gap:7px;padding:8px}
  .admin-job-status-tabs{gap:5px}
  .admin-job-status-tabs button{min-height:29px;padding:5px 8px}
  .admin-jobs-refresh{padding-inline:8px}
  .admin-category-note{padding:7px 9px}
}

/* V8.8.23 administrator moderation access */
.admin-queue-table [data-queue-detail]{white-space:nowrap}

/* V8.8.24 one-click queued cancellation */
.admin-queue-row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.admin-queue-row-actions button{white-space:nowrap}
