.photo-processor{
  --fp-blue:#315efb;--fp-blue-dark:#2447bd;--fp-green:#14a77b;--fp-text:#172033;--fp-muted:#667085;
  --fp-line:#dce3ee;--fp-soft:#eef3ff;--fp-bg:#f6f8fc;--fp-white:#fff;--fp-danger:#b42318;--fp-warn:#c25a0a;
  margin:0;color:var(--fp-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.photo-processor,.photo-processor *{box-sizing:border-box}
.photo-processor .wrap{width:100%;margin:0;padding:0}
.photo-processor .fp-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin:0 0 16px;padding:22px 24px;border:1px solid var(--fp-line);border-radius:20px;background:linear-gradient(135deg,#fff 0%,#f4f7ff 100%);box-shadow:0 12px 34px rgba(31,52,104,.07)}
.photo-processor .fp-intro{max-width:820px}.photo-processor .fp-badge{display:inline-flex;margin-bottom:8px;padding:5px 10px;border-radius:999px;background:#e9efff;color:var(--fp-blue-dark);font-size:12px;font-weight:800}
.photo-processor .fp-header h2{margin:0 0 6px;font-size:clamp(24px,2.5vw,34px);letter-spacing:-.025em;color:#10233f}.photo-processor .lead{margin:0;color:var(--fp-muted);line-height:1.55}
.photo-processor .fp-reset{flex:0 0 auto;border:1px solid #cbd6f2;border-radius:12px;padding:10px 14px;background:#fff;color:var(--fp-blue-dark);font-weight:800;cursor:pointer}.photo-processor .fp-reset:hover{border-color:var(--fp-blue);background:var(--fp-soft)}
.photo-processor .fp-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 16px}.photo-processor .fp-benefits>div{padding:13px 15px;border:1px solid var(--fp-line);border-radius:14px;background:#fff}.photo-processor .fp-benefits strong{display:block;color:#18324b;font-size:14px}.photo-processor .fp-benefits span{display:block;margin-top:2px;color:var(--fp-muted);font-size:12px}
.photo-processor .layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:16px;align-items:start}
.photo-processor .card{padding:20px;border:1px solid var(--fp-line);border-radius:20px;background:#fff;box-shadow:0 12px 36px rgba(31,52,104,.07)}
.photo-processor .card .card{padding:14px;border-radius:14px;box-shadow:none;background:var(--fp-bg)}
.photo-processor .fp-card-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.photo-processor .fp-card-heading h3{margin:0 0 3px;font-size:19px;color:#18324b}.photo-processor .fp-card-heading p{margin:0;color:var(--fp-muted);font-size:13px}
.photo-processor .drop{position:relative;padding:30px 20px;border:2px dashed #aebce1;border-radius:17px;background:#f8faff;text-align:center;cursor:pointer;transition:.18s ease}.photo-processor .drop:hover,.photo-processor .drop.drag{border-color:var(--fp-blue);background:#eef3ff;transform:translateY(-1px)}
.photo-processor .drop strong{display:block;margin-bottom:7px;font-size:18px;color:#18324b}.photo-processor .drop span{display:block;max-width:660px;margin:auto;color:var(--fp-muted);font-size:13px;line-height:1.5}.photo-processor input[type=file]{display:none}
.photo-processor .tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;padding:5px;border-radius:13px;background:#f1f4f9}.photo-processor .tab{flex:1 1 120px;padding:9px 12px;border:1px solid transparent;border-radius:10px;color:#52627a;font-size:13px;font-weight:800;text-align:center;cursor:pointer}.photo-processor .tab.active{border-color:#cad5f2;background:#fff;color:var(--fp-blue-dark);box-shadow:0 3px 10px rgba(31,52,104,.06)}
.photo-processor .panel{display:none;margin-top:14px}.photo-processor .panel.active{display:block}.photo-processor .controls{display:grid;grid-template-columns:repeat(12,1fr);gap:12px;margin-top:14px}.photo-processor .field{grid-column:span 3;display:flex;flex-direction:column;gap:6px;min-width:0}.photo-processor .field.span2{grid-column:span 2}.photo-processor .field.span3{grid-column:span 3}.photo-processor .field.span4{grid-column:span 4}.photo-processor .field.span5{grid-column:span 5}.photo-processor .field.span6{grid-column:span 6}.photo-processor .field.span8{grid-column:span 8}.photo-processor .field.span12{grid-column:1/-1}
.photo-processor label{color:#46556c;font-size:13px;font-weight:750}.photo-processor input,.photo-processor select,.photo-processor textarea{width:100%;min-height:42px;padding:10px 11px;border:1px solid #cbd5e8;border-radius:11px;background:#fff;color:var(--fp-text);font:inherit;font-size:14px;outline:none}.photo-processor input:focus,.photo-processor select:focus,.photo-processor textarea:focus{border-color:var(--fp-blue);box-shadow:0 0 0 3px rgba(49,94,251,.11)}
.photo-processor input[type=range]{height:32px;min-height:0;padding:0;border:0;background:transparent;box-shadow:none;accent-color:var(--fp-blue)}.photo-processor .range-row{display:grid;grid-template-columns:1fr 64px;gap:9px;align-items:center}.photo-processor .range-val{padding:7px 8px;border:1px solid #d4def4;border-radius:9px;background:#eef3ff;color:var(--fp-blue-dark);font-size:12px;text-align:center}.photo-processor .hint{color:var(--fp-muted);font-size:12px;line-height:1.4}
.photo-processor .split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.photo-processor .section-title{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:0 0 12px;color:#18324b;font-size:16px;font-weight:850}.photo-processor .note{margin-top:12px;padding:12px;border:1px solid #d4def4;border-radius:12px;background:#eef3ff;color:#2447bd;font-size:12px;line-height:1.5}.photo-processor .checkrow{display:flex;align-items:center;gap:8px;padding-top:24px;color:#46556c;font-size:13px}.photo-processor .checkrow input{width:auto;min-height:0}
.photo-processor .btns,.photo-processor .mini-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:15px}.photo-processor button,.photo-processor .download{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 14px;border:1px solid transparent;border-radius:11px;background:var(--fp-blue);color:#fff;font-weight:850;text-decoration:none;cursor:pointer;transition:.15s}.photo-processor button:hover,.photo-processor .download:hover{filter:brightness(1.03);transform:translateY(-1px)}.photo-processor button:disabled{opacity:.42;cursor:not-allowed;transform:none}.photo-processor button.secondary{border-color:#cdd8f2;background:#fff;color:var(--fp-blue-dark)}.photo-processor button.green,.photo-processor .download{background:var(--fp-green)}.photo-processor button.danger{border-color:#f3c9c5;background:#fff5f4;color:var(--fp-danger)}.photo-processor .download{display:none;width:100%;margin-top:12px}
.photo-processor .progress{height:10px;margin-top:16px;overflow:hidden;border-radius:999px;background:#e8edf6}.photo-processor .bar{height:100%;width:0;background:linear-gradient(90deg,var(--fp-blue),var(--fp-green));transition:width .15s}.photo-processor .status{min-height:18px;margin-top:9px;color:var(--fp-muted);font-size:13px}
.photo-processor .table-wrap{max-height:520px;margin-top:14px;overflow:auto;border:1px solid var(--fp-line);border-radius:14px}.photo-processor table{width:100%;min-width:900px;border-collapse:collapse;background:#fff}.photo-processor th,.photo-processor td{padding:9px;border-bottom:1px solid var(--fp-line);text-align:left;vertical-align:middle;font-size:12px}.photo-processor th{position:sticky;top:0;z-index:1;background:#18324b;color:#fff}.photo-processor .thumb{display:block;width:90px;height:70px;border-radius:9px;object-fit:cover;background:#f1f4f9}.photo-processor .name-input{min-width:280px}.photo-processor .pill{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef3ff;color:#46556c;font-size:11px}.photo-processor .ok{color:var(--fp-green)}.photo-processor .warn{color:var(--fp-warn)}.photo-processor .bad{color:var(--fp-danger)}
.photo-processor .preview-card{position:sticky;top:92px}.photo-processor .preview-shell{overflow:hidden;border:1px solid var(--fp-line);border-radius:15px;background:#f5f7fb}.photo-processor .preview-head{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid var(--fp-line);color:var(--fp-muted);font-size:12px}.photo-processor .preview-canvas-wrap{position:relative;display:grid;min-height:300px;place-items:center;background-color:#f2f4f8;background-image:linear-gradient(45deg,#e5e9f1 25%,transparent 25%),linear-gradient(-45deg,#e5e9f1 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e5e9f1 75%),linear-gradient(-45deg,transparent 75%,#e5e9f1 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px}.photo-processor #previewCanvas{display:block;width:100%;height:auto;max-height:560px;background:#fff}.photo-processor .preview-empty{padding:36px 18px;color:var(--fp-muted);font-size:13px;line-height:1.55;text-align:center}.photo-processor .compare-line{position:absolute;inset:0 auto 0 50%;display:none;width:2px;background:rgba(255,255,255,.8);pointer-events:none}.photo-processor .metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:11px}.photo-processor .metric{padding:10px;border:1px solid var(--fp-line);border-radius:12px;background:#fbfcfe}.photo-processor .metric small{display:block;margin-bottom:3px;color:var(--fp-muted);font-size:11px}.photo-processor .metric strong{font-size:15px;color:#18324b}
@media(max-width:1100px){.photo-processor .layout{grid-template-columns:1fr}.photo-processor .preview-card{position:static}.photo-processor .fp-benefits{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:820px){.photo-processor .field,.photo-processor .field.span2,.photo-processor .field.span3,.photo-processor .field.span4,.photo-processor .field.span5,.photo-processor .field.span6,.photo-processor .field.span8{grid-column:1/-1}.photo-processor .fp-header{padding:18px}.photo-processor .fp-benefits{grid-template-columns:1fr}.photo-processor .split{grid-template-columns:1fr}}
@media(max-width:600px){.photo-processor .fp-header{flex-direction:column}.photo-processor .fp-reset{width:100%}.photo-processor .card{padding:14px;border-radius:16px}.photo-processor .drop{padding:24px 12px}.photo-processor .tabs{display:grid;grid-template-columns:1fr}.photo-processor .tab{width:100%}.photo-processor .metrics{grid-template-columns:1fr}.photo-processor .btns button{width:100%}}
