.images-photo-repair-wrap{width:100%;max-width:100%;box-sizing:border-box;container-type:inline-size;}
.images-photo-repair-layout{display:grid;grid-template-columns:3fr 1fr;gap:14px;align-items:start;}
.images-photo-repair-main{min-width:0;display:flex;flex-direction:column;gap:12px;}
.images-photo-repair-side{min-width:0;display:flex;flex-direction:column;gap:12px;}
@container (max-width:860px){.images-photo-repair-layout{grid-template-columns:1fr;}}
.images-photo-repair-panel{background:var(--bg-card,#fff);border:1px solid var(--border,#e5e7eb);
border-radius:var(--radius,10px);padding:14px;min-width:0;}
.images-photo-repair-head{display:flex;align-items:baseline;gap:8px;margin-bottom:10px;flex-wrap:wrap;}
.images-photo-repair-headt{font-size:14px;font-weight:600;color:var(--text,#333);}
.images-photo-repair-heads{font-size:12px;color:var(--text-secondary,#6b7281);}
.images-photo-repair-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;}
.images-photo-repair-cell{display:flex;flex-direction:column;gap:4px;min-width:0;}
.images-photo-repair-cell.images-photo-repair-wide{grid-column:1/-1;}
.images-photo-repair-lbl{display:block;font-size:12px;color:var(--text-secondary,#6b7281);}
.images-photo-repair-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.images-photo-repair-btn{padding:7px 14px;font-size:13px;font-family:inherit;cursor:pointer;
color:var(--text,#333);background:var(--bg-btn,#f3f4f6);
border:1px solid var(--border,#e5e7eb);border-radius:var(--radius-sm,6px);}
.images-photo-repair-btn:hover{background:var(--bg-btn-hover,#e5e7eb);}
.images-photo-repair-btn.images-photo-repair-primary{color:var(--text-on-accent,#fff);background:var(--primary,#2563eb);
border-color:var(--primary,#2563eb);}
.images-photo-repair-btn.images-photo-repair-primary:hover{background:var(--primary-hover,#1d4ed8);}
.images-photo-repair-btn:disabled{opacity:.5;cursor:not-allowed;}
.images-photo-repair-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--primary-shadow,rgba(37,99,235,.15));}
.images-photo-repair-checks{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;}
.images-photo-repair-chk{display:flex;align-items:center;gap:5px;font-size:12px;
color:var(--text-secondary,#6b7281);cursor:pointer;}
.images-photo-repair-msg{margin:8px 0 0;font-size:12px;min-height:16px;color:var(--text-secondary,#6b7281);
overflow-wrap:anywhere;}
.images-photo-repair-msg.ok{color:var(--success,#16a34a);}
.images-photo-repair-msg.err{color:var(--danger,#dc2626);}
.images-photo-repair-msg.warn{color:var(--warning-fg,#92400e);}
.images-photo-repair-empty{margin:0;font-size:12px;color:var(--text-secondary,#6b7281);}
.images-photo-repair-res{display:flex;flex-direction:column;gap:8px;max-height:620px;overflow:auto;}
.images-photo-repair-big{font-size:26px;font-weight:700;line-height:1.2;color:var(--primary,#2563eb);
overflow-wrap:anywhere;}
.images-photo-repair-bigsub{font-size:12px;color:var(--text-secondary,#6b7281);}
.images-photo-repair-card{background:var(--bg-page,#f7f8fa);border-radius:var(--radius-sm,6px);
padding:10px;min-width:0;}
.images-photo-repair-cardt{font-size:12px;font-weight:600;color:var(--text,#333);margin-bottom:6px;}
.images-photo-repair-kv{display:flex;justify-content:space-between;gap:10px;font-size:12px;
padding:3px 0;border-bottom:1px dashed var(--border,#e5e7eb);}
.images-photo-repair-kv:last-child{border-bottom:0;}
.images-photo-repair-kv span:first-child{color:var(--text-secondary,#6b7281);}
.images-photo-repair-kv span:last-child{font-weight:600;color:var(--text,#333);overflow-wrap:anywhere;
text-align:right;}
.images-photo-repair-note{margin:8px 0 0;font-size:11px;line-height:1.6;
color:var(--text-secondary,#6b7281);}
.images-photo-repair-tbl{width:100%;border-collapse:collapse;font-size:12px;}
.images-photo-repair-tbl th,.images-photo-repair-tbl td{padding:5px 6px;text-align:left;
border-bottom:1px solid var(--border,#e5e7eb);overflow-wrap:anywhere;}
.images-photo-repair-tbl th{color:var(--text-secondary,#6b7280);font-weight:600;}
.images-photo-repair-tag{display:inline-block;padding:2px 7px;font-size:11px;border-radius:var(--radius,10px);
background:var(--bg-btn,#f3f4f6);color:var(--text-secondary,#6b7281);}
.images-photo-repair-tag.ok{color:var(--success,#16a34a);}
.images-photo-repair-tag.warn{color:var(--warning-fg,#92400e);}
.images-photo-repair-cmp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
@container (max-width:520px){.images-photo-repair-cmp{grid-template-columns:minmax(0,1fr);}}
.images-photo-repair-cmpc{background:var(--bg-page,#f7f8fa);border-radius:var(--radius-sm,6px);
padding:10px;text-align:center;border:2px solid transparent;box-sizing:border-box;min-width:0;}
.images-photo-repair-cmpc.images-photo-repair-best{border-color:var(--primary,#2563eb);}
.images-photo-repair-cmpt{font-size:11px;color:var(--text-secondary,#6b7281);overflow-wrap:anywhere;}
.images-photo-repair-cmpv{font-size:20px;font-weight:700;color:var(--text,#333);margin:4px 0;overflow-wrap:anywhere;}
.images-photo-repair-cmpv.images-photo-repair-best{color:var(--primary,#2563eb);}

/* ===== 控件样式（V3.9 补全） ===== */
.images-photo-repair-in,.images-photo-repair-sel,.images-photo-repair-ta{
  width:100%;box-sizing:border-box;padding:7px 9px;font-size:13px;line-height:1.4;
  font-family:inherit;color:var(--text,#333);background:var(--bg-input,#fff);
  border:1px solid var(--border,#e5e7eb);border-radius:var(--radius-sm,6px);
  transition:border-color .15s,box-shadow .15s;
}
.images-photo-repair-ta{resize:vertical;min-height:96px;line-height:1.6;
font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;}
.images-photo-repair-sel{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  padding-right:26px;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--text-secondary,#6b7281) 50%),
    linear-gradient(135deg,var(--text-secondary,#6b7281) 50%,transparent 50%);
  background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;
}
.images-photo-repair-in:hover,.images-photo-repair-sel:hover,.images-photo-repair-ta:hover{border-color:var(--primary,#2563eb);}
.images-photo-repair-in:focus,.images-photo-repair-sel:focus,.images-photo-repair-ta:focus{
  outline:none;border-color:var(--primary,#2563eb);
  box-shadow:0 0 0 3px var(--primary-shadow,rgba(37,99,235,.15));
}
.images-photo-repair-in:focus-visible,.images-photo-repair-sel:focus-visible,.images-photo-repair-ta:focus-visible{
  outline:none;border-color:var(--primary,#2563eb);
  box-shadow:0 0 0 3px var(--primary-shadow,rgba(37,99,235,.15));
}
.images-photo-repair-in::placeholder,.images-photo-repair-ta::placeholder{color:var(--text-secondary,#9ca3af);}
.images-photo-repair-in:disabled,.images-photo-repair-sel:disabled,.images-photo-repair-ta:disabled{
  opacity:.55;cursor:not-allowed;background:var(--bg-btn,#f3f4f6);
}
.images-photo-repair-in[type=number]{-moz-appearance:textfield;}
.images-photo-repair-in[type=number]::-webkit-outer-spin-button,
.images-photo-repair-in[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.images-photo-repair-cbx{
  width:14px;height:14px;flex:0 0 auto;margin:0;cursor:pointer;accent-color:var(--primary,#2563eb);
}
.images-photo-repair-cbx:focus-visible{outline:2px solid var(--primary,#2563eb);outline-offset:2px;}
.images-photo-repair-cbx:disabled{opacity:.5;cursor:not-allowed;}

/* ===== 代码输出区 ===== */
.images-photo-repair-code{margin:0;padding:10px;font-size:12px;line-height:1.6;white-space:pre-wrap;
overflow-wrap:anywhere;background:var(--bg-page,#f7f8fa);
border-radius:var(--radius-sm,6px);color:var(--text,#333);
font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
max-height:340px;overflow:auto;}
.images-photo-repair-seg{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;}
.images-photo-repair-segb{padding:5px 11px;font-size:12px;font-family:inherit;cursor:pointer;
color:var(--text-secondary,#6b7281);background:var(--bg-btn,#f3f4f6);
border:1px solid var(--border,#e5e7eb);border-radius:var(--radius-sm,6px);}
.images-photo-repair-segb.images-photo-repair-on{color:var(--text-on-accent,#fff);background:var(--primary,#2563eb);
border-color:var(--primary,#2563eb);}
.images-photo-repair-segb:focus-visible{outline:none;box-shadow:0 0 0 3px var(--primary-shadow,rgba(37,99,235,.15));}
.images-photo-repair-hl{background:var(--primary-shadow,rgba(37,99,235,.15));border-radius:var(--radius-sm,2px);}
.images-photo-repair-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
overflow-wrap:anywhere;}

.images-photo-repair-ok{color:var(--success,#16a34a);}
.images-photo-repair-bad{color:var(--danger,#dc2626);text-decoration:underline;}
.images-photo-repair-cur{background:var(--primary-shadow,rgba(37,99,235,.15));border-radius:var(--radius-sm,2px);}

.images-photo-repair-canvasbox{width:100%;min-width:0;overflow:auto;background:var(--bg-page,#f7f8fa);
border-radius:var(--radius-sm,6px);padding:8px;}
.images-photo-repair-canvasbox svg{max-width:100%;height:auto;display:block;}
.images-photo-repair-src{width:100%;box-sizing:border-box;min-height:170px;resize:vertical;
font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.6;}

.images-photo-repair-prev{width:100%;min-width:0;overflow:auto;background:var(--bg-page,#f7f8fa);
border-radius:var(--radius-sm,6px);padding:8px;box-sizing:border-box;}
.images-photo-repair-prev img{max-width:100%;height:auto;display:block;}
.images-photo-repair-prev svg{max-width:100%;height:auto;display:block;}
.images-photo-repair-prev canvas{max-width:100%;height:auto;display:block;}
.images-photo-repair-thumbs{display:flex;gap:6px;flex-wrap:wrap;}
.images-photo-repair-thumb{width:48px;height:48px;object-fit:contain;background:var(--bg-page,#f7f8fa);
border-radius:var(--radius-sm,4px);padding:2px;box-sizing:border-box;}
.images-photo-repair-bar{height:8px;border-radius:var(--radius-sm,4px);background:var(--bg-btn,#f3f4f6);overflow:hidden;}
.images-photo-repair-bari{height:100%;background:var(--primary,#2563eb);}
.images-photo-repair-sub{font-size:12px;color:var(--text-secondary,#6b7281);margin:2px 0 0;overflow-wrap:anywhere;}
.images-photo-repair-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere;}
.images-photo-repair-diff{display:flex;flex-direction:column;gap:6px;max-height:420px;overflow:auto;}
.images-photo-repair-drow{font-size:12px;padding:6px 8px;border-radius:var(--radius-sm,4px);background:var(--bg-page,#f7f8fa);}
.images-photo-repair-drow b{color:var(--text,#333);}
.images-photo-repair-old{color:var(--danger,#dc2626);text-decoration:line-through;}
.images-photo-repair-new{color:var(--success,#16a34a);font-weight:600;}

/* ===== 分组标题 ===== */
.images-photo-repair-grp{margin:14px 0 7px;font-size:12px;font-weight:600;color:var(--text,#333);
letter-spacing:.02em;}
.images-photo-repair-panel > .images-photo-repair-grp:first-of-type{margin-top:2px;}

/* ===== 文件选择区（美化） ===== */
.images-photo-repair-drop{position:relative;width:100%;box-sizing:border-box;}
.images-photo-repair-filein{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.images-photo-repair-file{display:flex;flex-direction:column;align-items:center;justify-content:center;
gap:6px;width:100%;box-sizing:border-box;padding:20px 16px;cursor:pointer;
text-align:center;user-select:none;
background:var(--bg-page,#f7f8fa);color:var(--text-secondary,#6b7281);
border:2px dashed var(--border,#e5e7eb);border-radius:var(--radius,10px);
transition:border-color .18s,background .18s,box-shadow .18s,transform .18s;}
.images-photo-repair-file:hover{border-color:var(--primary,#2563eb);
background:var(--primary-shadow,rgba(37,99,235,.06));color:var(--primary,#2563eb);}
.images-photo-repair-file:active{transform:scale(.995);}
.images-photo-repair-drop:focus-within .images-photo-repair-file{border-color:var(--primary,#2563eb);
box-shadow:0 0 0 3px var(--primary-shadow,rgba(37,99,235,.15));}
.images-photo-repair-drop.images-photo-repair-over .images-photo-repair-file{border-style:solid;
border-color:var(--primary,#2563eb);background:var(--primary-shadow,rgba(37,99,235,.1));
color:var(--primary,#2563eb);}
.images-photo-repair-fileico{display:flex;align-items:center;justify-content:center;
width:52px;height:52px;flex:0 0 auto;border-radius:50%;
background:var(--bg-card,#fff);border:1px solid var(--border,#e5e7eb);
color:var(--primary,#2563eb);box-shadow:0 1px 3px rgba(0,0,0,.06);}
.images-photo-repair-fileico svg{display:block;}
.images-photo-repair-filet{font-size:14px;font-weight:600;line-height:1.4;
color:var(--text,#333);overflow-wrap:anywhere;max-width:100%;}
.images-photo-repair-files{font-size:12px;line-height:1.5;color:var(--text-secondary,#6b7281);}
.images-photo-repair-drop.images-photo-repair-hasfile .images-photo-repair-file{border-style:solid;
border-color:var(--success,#16a34a);background:var(--bg-page,#f7f8fa);}
.images-photo-repair-drop.images-photo-repair-hasfile .images-photo-repair-fileico{border-color:var(--success,#16a34a);
color:var(--success,#16a34a);}
.images-photo-repair-drop.images-photo-repair-hasfile .images-photo-repair-filet{color:var(--success,#16a34a);}
@media (prefers-reduced-motion:reduce){
  .images-photo-repair-file{transition:none;}
  .images-photo-repair-file:active{transform:none;}
}

/* ===== 滑块 ===== */
.images-photo-repair-range{-webkit-appearance:none;appearance:none;width:100%;height:20px;
margin:0;background:transparent;cursor:pointer;}
.images-photo-repair-range::-webkit-slider-runnable-track{height:6px;border-radius:var(--radius-sm,3px);
background:var(--bg-btn,#f3f4f6);border:1px solid var(--border,#e5e7eb);box-sizing:border-box;}
.images-photo-repair-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;
width:16px;height:16px;margin-top:-6px;border-radius:50%;border:2px solid var(--bg-card,#fff);
background:var(--primary,#2563eb);box-shadow:0 1px 3px rgba(0,0,0,.25);}
.images-photo-repair-range::-moz-range-track{height:6px;border-radius:var(--radius-sm,3px);
background:var(--bg-btn,#f3f4f6);border:1px solid var(--border,#e5e7eb);box-sizing:border-box;}
.images-photo-repair-range::-moz-range-thumb{width:16px;height:16px;border-radius:50%;
border:2px solid var(--bg-card,#fff);background:var(--primary,#2563eb);
box-shadow:0 1px 3px rgba(0,0,0,.25);}
.images-photo-repair-range:hover::-webkit-slider-thumb{background:var(--primary-hover,#1d4ed8);}
.images-photo-repair-range:hover::-moz-range-thumb{background:var(--primary-hover,#1d4ed8);}
.images-photo-repair-range:focus-visible{outline:none;}
.images-photo-repair-range:focus-visible::-webkit-slider-thumb{
box-shadow:0 0 0 3px var(--primary-shadow,rgba(37,99,235,.35));}
.images-photo-repair-range:focus-visible::-moz-range-thumb{
box-shadow:0 0 0 3px var(--primary-shadow,rgba(37,99,235,.35));}
.images-photo-repair-range:disabled{opacity:.5;cursor:not-allowed;}

/* ===== 画布 ===== */
.images-photo-repair-canvas{display:block;max-width:100%;height:auto;background:#fff;
border:1px solid var(--border,#e5e7eb);border-radius:var(--radius-sm,4px);
box-shadow:0 1px 4px rgba(0,0,0,.08);cursor:crosshair;touch-action:none;}
.images-photo-repair-canvas.images-photo-repair-cpan{cursor:grab;}
.images-photo-repair-canvas.images-photo-repair-cpan:active{cursor:grabbing;}
.images-photo-repair-canvas.images-photo-repair-czoom{cursor:zoom-in;}
.images-photo-repair-canvas.images-photo-repair-cnone{cursor:default;}
