/* Finished-job cards and the full job record dialog. */
#finishedList .fgrid{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:12px}
#finishedList .mold-card{position:relative;gap:0;padding:12px;background:#fff;border-color:#e2deea;
  cursor:pointer;box-shadow:0 1px 2px rgba(21,18,28,.03);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
#finishedList .mold-card:hover{transform:translateY(-2px);border-color:#cfc3e7;box-shadow:0 10px 30px rgba(47,28,76,.09)}
#finishedList .mold-card:focus-visible{outline:3px solid rgba(109,40,217,.25);outline-offset:3px}
#finishedList .mold-card.no-mold{cursor:default}
#finishedList .mold-card .top{gap:11px;align-items:center}
#finishedList .mold-source{flex-basis:72px;width:72px;height:72px;padding:6px;border-color:#e4dfeb;background:#fbfafd;cursor:pointer}
#finishedList .mold-source:hover{box-shadow:none}
#finishedList .mold-card-heading .nm{display:block;overflow:hidden;min-width:0;padding-top:0;
  font-size:14.5px;line-height:1.35;white-space:nowrap;text-overflow:ellipsis;word-break:normal}
.mold-card-kicker{display:flex;align-items:center;gap:5px;margin-bottom:3px;color:#7b7288;font-size:9px;
  font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.mold-state{display:inline-flex;align-items:center;gap:5px;margin-left:auto;padding:3px 7px;border-radius:999px;
  background:#e9f6ee;color:#14753a;font-size:9.5px;letter-spacing:.04em;white-space:nowrap}
.mold-state::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.mold-state.ready{background:#f4f0ff;color:#6d28d9}
#finishedList .mold-card .tm{margin:4px 0 0}
#finishedList .mold-card .tm time{font-size:10.5px;color:#81798c}
.mold-quick-specs{display:flex;align-items:center;gap:5px;margin-top:6px;min-width:0;color:#5f576d;font-size:10px}
.mold-quick-specs span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mold-quick-specs i{width:3px;height:3px;flex:none;border-radius:50%;background:#c2bacd}
#finishedList .mold-card-footer{display:grid;grid-template-columns:minmax(100px,1fr) minmax(80px,1fr) 38px;gap:7px;
  padding-top:9px;margin-top:10px;border-top:1px solid #eeeaf2}
#finishedList .mold-preview-action{justify-content:center;padding:0 6px;color:#4e3c64}
#finishedList .mold-preview-action:hover{background:#f7f4fb;color:#6d28d9}
#finishedList .mold-download{min-height:38px;box-shadow:0 4px 12px rgba(109,40,217,.16)}
#finishedList .mold-details-action{min-height:38px}
#finishedList .mold-delete{position:absolute;top:10px;right:10px;z-index:2;background:rgba(255,255,255,.9)}
.mold-version-count{display:inline-flex;align-items:center;margin-top:5px;padding:2px 6px;border-radius:6px;
  background:#f7f5fa;color:#70677e;font-size:10.5px;font-weight:600}

.job-details-overlay{position:fixed;inset:0;z-index:10012;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(20,16,27,.6);backdrop-filter:blur(6px);font-family:var(--font-ui,"Instrument Sans",sans-serif)}
.job-details-overlay *{box-sizing:border-box}
.job-details-dialog{width:min(1120px,100%);max-height:calc(100dvh - 48px);overflow:auto;background:#f8f7fa;
  color:#15121c;border:1px solid rgba(255,255,255,.35);border-radius:20px;box-shadow:0 30px 90px rgba(14,8,23,.32)}
.job-details-head{position:sticky;top:0;z-index:3;display:flex;align-items:flex-start;gap:18px;padding:22px 26px;
  background:rgba(255,255,255,.96);border-bottom:1px solid #e7e3eb;backdrop-filter:blur(10px)}
.job-details-title{min-width:0;flex:1}
.job-details-eyebrow{display:flex;align-items:center;gap:8px;margin-bottom:5px;color:#6d28d9;font-size:11px;
  font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.job-details-eyebrow .history-status{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;
  background:#e9f6ee;color:#14753a;letter-spacing:.04em}
.job-details-eyebrow .history-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.job-details-title h2{margin:0;color:#15121c;font-size:23px;line-height:1.2;overflow-wrap:anywhere}
.job-details-title p{margin:5px 0 0;color:#71697d;font:12px/1.45 "IBM Plex Mono",monospace}
.job-details-name-row{display:flex;align-items:center;gap:10px;min-width:0}
.job-details-name-row h2{min-width:0}
.job-details-rename{display:inline-flex;align-items:center;gap:5px;flex:none;padding:5px 8px;border:1px solid #ded9e4;
  border-radius:7px;background:#fff;color:#5d5468;font:600 11px/1 inherit;cursor:pointer}
.job-details-rename:hover{border-color:#bdaed2;background:#faf7ff;color:#6d28d9}
.job-details-rename svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.job-details-rename-form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;max-width:650px;margin-top:2px}
.job-details-rename-form[hidden]{display:none}
.job-details-rename-form input{min-width:0;padding:8px 10px;border:1px solid #bdaed2;border-radius:8px;background:#fff;
  color:#201a29;font:600 14px/1.25 inherit}
.job-details-rename-form button{padding:7px 10px;border:1px solid #d8d1e0;border-radius:8px;background:#fff;color:#554d61;
  font:600 11px/1 inherit;cursor:pointer}
.job-details-rename-form button[type="submit"]{border-color:#6d28d9;background:#6d28d9;color:#fff}
.job-details-rename-form button:disabled,.job-details-rename:disabled{opacity:.55;cursor:wait}
.job-details-close{display:grid;place-items:center;width:40px;height:40px;flex:none;padding:0;border:1px solid #ded9e4;
  border-radius:50%;background:#fff;color:#554d61;font-size:25px;line-height:1;cursor:pointer}
.job-details-close:hover{border-color:#bcb2c9;background:#f7f4fa}
.job-details-close:focus-visible,.job-details-dialog button:focus-visible,.job-details-dialog a:focus-visible{
  outline:2px solid #6d28d9;outline-offset:3px}
.job-details-body{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(270px,.75fr);gap:18px;padding:18px}
.job-details-main,.job-details-side{display:grid;align-content:start;gap:18px;min-width:0}
.job-detail-section{padding:20px;background:#fff;border:1px solid #e5e1e9;border-radius:15px}
.job-detail-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:14px}
.job-detail-section h3{margin:0;font-size:15px;letter-spacing:-.01em}
.job-detail-section-head p{margin:0;color:#827a8d;font-size:11.5px}
.artwork-journey{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.journey-card{position:relative;min-width:0;overflow:hidden;border:1px solid #e5e0e9;border-radius:12px;background:#faf9fb}
.journey-card figure{display:grid;place-items:center;aspect-ratio:1.12/1;margin:0;padding:12px;background:
  linear-gradient(45deg,#f2f0f5 25%,transparent 25%),linear-gradient(-45deg,#f2f0f5 25%,transparent 25%),
  linear-gradient(45deg,transparent 75%,#f2f0f5 75%),linear-gradient(-45deg,transparent 75%,#f2f0f5 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}
.journey-card img{width:100%;height:100%;max-height:230px;object-fit:contain;mix-blend-mode:multiply}
.journey-card figcaption{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#fff;border-top:1px solid #ece8ef;
  color:#5d5568;font-size:11.5px;font-weight:600}
.journey-step{display:grid;place-items:center;width:20px;height:20px;flex:none;border-radius:50%;background:#f0e8ff;color:#6d28d9;font-size:10px}
.journey-badge{position:absolute;top:9px;left:9px;z-index:1;padding:3px 7px;border:1px solid rgba(255,255,255,.75);
  border-radius:999px;background:rgba(255,255,255,.9);color:#6d28d9;font-size:9.5px;font-weight:700;text-transform:uppercase}
.journey-loading{display:grid;place-items:center;height:100%;min-height:150px;color:#7d7489;font-size:12px;text-align:center;padding:18px}
.job-settings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.job-setting{min-width:0;padding:12px;border:1px solid #ebe7ee;border-radius:10px;background:#fbfafc}
.job-setting dt{margin-bottom:4px;color:#81798c;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.job-setting dd{margin:0;color:#201a29;font-size:12.5px;font-weight:600;overflow-wrap:anywhere}
.job-setting dd small{display:block;margin-top:2px;color:#81798c;font-weight:400}
.history-list{position:relative;display:grid;gap:0;margin:0;padding:0;list-style:none}
.history-list::before{content:"";position:absolute;left:6px;top:10px;bottom:14px;width:1px;background:#ddd7e4}
.history-item{position:relative;padding:0 0 18px 24px}
.history-item:last-child{padding-bottom:0}
.history-item::before{content:"";position:absolute;left:1px;top:5px;width:11px;height:11px;border:3px solid #fff;border-radius:50%;background:#8b7d9b;box-shadow:0 0 0 1px #c9c0d4}
.history-item.done::before{background:#15803d;box-shadow:0 0 0 1px #88c49c}
.history-item strong{display:block;color:#332b3d;font-size:12.5px}
.history-item time,.history-item span{display:block;margin-top:2px;color:#81798c;font-size:10.5px;line-height:1.45}
.job-file-actions{display:grid;gap:8px}
.job-file-action{display:flex;align-items:center;gap:10px;width:100%;min-height:43px;padding:9px 11px;border:1px solid #ded8e5;
  border-radius:9px;background:#fff;color:#3d3449;text-align:left;font:600 12px/1.3 inherit;cursor:pointer}
.job-file-action:hover{border-color:#bdaed2;background:#faf7ff;color:#6d28d9}
.job-file-action.primary{justify-content:center;border-color:#6d28d9;background:#6d28d9;color:#fff;box-shadow:0 5px 14px rgba(109,40,217,.18)}
.job-file-action.primary:hover{background:#5b21b6}
.job-file-action.danger{margin-top:4px;border-color:#f0d2cd;background:#fffafa;color:#a92b1b}
.job-file-action.danger:hover{border-color:#dc8e82;background:#fdeeeb;color:#8f2114}
.job-file-action svg{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.job-file-action small{display:block;margin-left:auto;color:#8a8294;font-size:10px;font-weight:500}
.job-file-action.primary small{color:#e9ddff}
.job-support-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 11px;padding:16px;background:#f5f0ff;
  border:1px solid #dfd2f7;border-radius:15px;color:#302442}
.job-support-icon{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#fff;color:#6d28d9;
  box-shadow:0 1px 5px rgba(68,37,113,.1)}
.job-support-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.job-support-card h3{margin:1px 0 0;font-size:13px}
.job-support-card p{margin:1px 0 0;color:#766987;font-size:10.5px;line-height:1.45}
.job-support-button{grid-column:1/-1;margin-top:8px;min-height:38px;border:1px solid #c9b3ee;border-radius:9px;background:#fff;color:#5b21b6;
  font:600 11.5px/1 inherit;cursor:pointer}
.job-support-button:hover{border-color:#8b5fda;background:#fbf9ff}
.issue-report-overlay{position:fixed;inset:0;z-index:4;display:grid;place-items:center;padding:20px;background:rgba(20,16,27,.58);backdrop-filter:blur(5px)}
.issue-report-dialog{width:min(520px,100%);max-height:calc(100dvh - 40px);overflow:auto;border:1px solid #e2dce8;border-radius:17px;background:#fff;
  box-shadow:0 24px 70px rgba(14,8,23,.3)}
.issue-report-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 21px;border-bottom:1px solid #ece8ef}
.issue-report-head span{display:block;margin-bottom:3px;color:#6d28d9;font-size:9.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.issue-report-head h3{margin:0;font-size:19px}
.issue-report-close{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid #ded9e4;border-radius:50%;background:#fff;color:#554d61;
  font:22px/1 inherit;cursor:pointer}
.issue-report-form{padding:20px 21px}
.issue-report-intro{margin:0 0 18px;color:#6f667a;font-size:12.5px;line-height:1.55}
.issue-report-intro strong{color:#2f2739}
.issue-report-form label{display:block;margin:14px 0 6px;color:#41374d;font-size:11.5px;font-weight:650}
.issue-report-form select,.issue-report-form textarea{display:block;width:100%;border:1px solid #dcd6e2;border-radius:9px;background:#fbfafc;color:#26202e;
  font:12.5px/1.5 inherit}
.issue-report-form select{height:42px;padding:0 11px}
.issue-report-form textarea{min-height:140px;max-height:300px;padding:11px;resize:vertical}
.issue-report-form select:focus,.issue-report-form textarea:focus{outline:2px solid rgba(109,40,217,.2);border-color:#6d28d9;background:#fff}
.issue-report-meta{margin-top:9px;color:#8a8194;font-size:10.5px}
.issue-report-meta code{font:10px/1.4 "IBM Plex Mono",monospace;color:#655b70;overflow-wrap:anywhere}
.issue-report-status{min-height:18px;margin:10px 0 0;color:#15803d;font-size:11.5px}
.issue-report-status.error{color:#b52b1c}
.issue-report-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.issue-report-actions button,.issue-report-done{min-height:40px;padding:0 16px;border-radius:9px;font:600 12px/1 inherit;cursor:pointer}
.issue-report-cancel{border:1px solid #dcd6e2;background:#fff;color:#554d61}
.issue-report-submit,.issue-report-done{border:1px solid #6d28d9;background:#6d28d9;color:#fff}
.issue-report-submit:hover,.issue-report-done:hover{background:#5b21b6}
.issue-report-submit:disabled{opacity:.6;cursor:wait}
.issue-report-success{text-align:center;padding:13px 8px 4px}
.issue-report-success>svg{width:38px;height:38px;padding:9px;border-radius:50%;background:#eaf7ee;color:#15803d;fill:none;stroke:currentColor;stroke-width:1.8}
.issue-report-success h4{margin:12px 0 5px;font-size:18px}
.issue-report-success p{max-width:350px;margin:0 auto;color:#71687b;font-size:12.5px;line-height:1.55}
.issue-report-done{margin-top:18px;padding:0 24px}
.job-meta{display:grid;gap:9px}
.job-version-picker{display:grid;gap:6px;margin:-2px 0 14px;color:#81798c;font-size:10px;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase}
.job-version-picker select{width:100%;min-width:0;padding:9px 10px;border:1px solid #dcd6e2;border-radius:8px;
  background:#fbfafc;color:#332b3d;font:500 11px/1.35 var(--font-ui,"Instrument Sans",sans-serif);letter-spacing:0;text-transform:none}
.job-version-picker select:focus{outline:2px solid rgba(109,40,217,.25);border-color:#6d28d9}
.job-meta-row{display:grid;grid-template-columns:78px minmax(0,1fr);gap:10px;color:#7c7487;font-size:11px}
.job-meta-row b{color:#393142;font-weight:600;overflow-wrap:anywhere}
.job-details-error{padding:30px;text-align:center;color:#7c7487}
.job-details-error strong{display:block;color:#2a2331;margin-bottom:5px}
.job-details-skeleton{min-height:140px;border-radius:10px;background:linear-gradient(90deg,#f3f1f5 25%,#faf9fb 50%,#f3f1f5 75%);background-size:200% 100%;animation:jobShimmer 1.2s linear infinite}
@keyframes jobShimmer{to{background-position:-200% 0}}
@media(max-width:820px){
  .job-details-overlay{padding:0;align-items:flex-end}
  .job-details-dialog{max-height:94dvh;border-radius:20px 20px 0 0}
  .job-details-body{grid-template-columns:1fr;padding:12px}
  .job-details-head{padding:18px}
  .job-details-title h2{font-size:19px}
  .artwork-journey{grid-template-columns:repeat(2,minmax(0,1fr))}
  .journey-card:last-child{grid-column:1/-1}
  .journey-card:last-child figure{aspect-ratio:1.8/1}
}
@media(max-width:520px){
  #finishedList .mold-source{flex-basis:68px;width:68px;height:68px}
  .job-details-rename span{display:none}
  .job-details-rename-form{grid-template-columns:1fr 1fr}
  .job-details-rename-form input{grid-column:1/-1}
  .artwork-journey{grid-template-columns:1fr}
  .journey-card:last-child{grid-column:auto}
  .journey-card figure,.journey-card:last-child figure{aspect-ratio:1.45/1}
  .job-settings{grid-template-columns:repeat(2,minmax(0,1fr))}
  .job-detail-section{padding:16px}
  .issue-report-overlay{align-items:end;padding:0}
  .issue-report-dialog{max-height:94dvh;border-radius:17px 17px 0 0}
}
@media(prefers-reduced-motion:reduce){#finishedList .mold-card,.job-details-skeleton{transition:none;animation:none}}
