:root{font-family:Inter,Arial,sans-serif;color:#172b31;background:#f4f7f8;font-synthesis:none;--accent:#157d6b;--border:#dce5e8;--muted:#73838d;--danger:#b33f37}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}h1,h2,p{margin-top:0}h1{font-size:30px;letter-spacing:-.8px;margin-bottom:10px}h2{font-size:18px;letter-spacing:-.2px;margin-bottom:0}p{line-height:1.6}button,input,select{font:inherit}button,.button{min-height:40px;border:1px solid var(--border);border-radius:9px;background:#fff;color:#203d43;padding:9px 13px;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}button:hover,.button:hover{border-color:#9abbb4;background:#f2f8f6}button:disabled{opacity:.5;cursor:default}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.primary:hover{background:#116b5b;color:#fff}.primary:disabled{background:var(--accent)}button:focus-visible,.button:focus-visible,input:focus-visible,select:focus-visible,.file-label:focus-within{outline:3px solid #83c7ef;outline-offset:3px}input:not([type=checkbox]),select{width:100%;border:1px solid #cfdbdf;border-radius:8px;min-height:44px;padding:10px 12px;background:#fff;color:#203d43}label:not(.check):not(.file-label){display:block;font-size:13px;font-weight:600;margin-bottom:7px}input[type=checkbox]{width:17px;height:17px;flex:none;accent-color:var(--accent);margin:1px 0 0}.muted{color:var(--muted)}.small{font-size:12px;line-height:1.55}.full{width:100%}.app{max-width:1540px;margin:auto;padding:0 28px}.topbar{height:85px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.brand{display:inline-flex;align-items:center;gap:17px;font-size:28px;letter-spacing:1px;font-weight:700;color:#3f9287;text-decoration:none}.brand span{font-size:12px;letter-spacing:.1px;font-weight:600;color:#6b8288;border-left:1px solid #b5cdca;padding-left:17px}.quiet{background:transparent}.page-heading{padding:29px 0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.page-heading p:last-child{margin-bottom:0}.eyebrow{font-size:10px;letter-spacing:1.2px;font-weight:700;color:#7c939a;margin-bottom:8px}.pill{font-size:12px;border-radius:20px;background:#e8f4ee;color:#267d67;padding:9px 13px;white-space:nowrap}.workspace{display:grid;grid-template-columns:338px minmax(0,1fr);gap:22px;align-items:start}.sidebar,.results{min-width:0}.card{border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:0 3px 15px #29494b03}.upload-panel,.history-panel{padding:21px}.section-title{display:flex;align-items:center;gap:10px;margin-bottom:18px}.step{width:25px;height:25px;border-radius:8px;background:#e8f4ee;color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.drop-zone{border:1px dashed #9bbdb5;border-radius:10px;background:#f5fbf8;padding:19px 10px;display:flex;align-items:center;flex-direction:column;gap:8px;text-align:center;transition:background .15s}.drop-zone.over{background:#dff3eb;border-color:var(--accent)}.drop-zone strong{font-size:14px}.upload-symbol{color:var(--accent);font-size:25px;line-height:1}.file-actions{display:flex;gap:8px;margin-top:5px;flex-wrap:wrap;justify-content:center}.file-label{position:relative;overflow:hidden}.file-label input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-panel>p.small{margin-top:10px;margin-bottom:16px}.selection{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:5px;margin:13px 0;padding:11px;border:1px solid #dcebe5;border-radius:8px;background:#f7faf8;font-size:12px}.selection strong,.selection-size{display:block}.selection-list{flex-basis:100%;margin:4px 0 0;padding-left:17px;font-size:11px;color:var(--muted);max-height:75px;overflow:auto;overflow-wrap:anywhere}.text-button{border:0;min-height:30px;padding:3px 4px;color:var(--accent);background:transparent;font-size:12px}.text-button:hover{background:transparent;text-decoration:underline}.options{border:0;margin:19px 0 14px;padding:0}.options legend{font-size:13px;font-weight:600;margin-bottom:13px}.check{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.5;cursor:pointer}.options .check{margin-bottom:14px}.check strong{font-size:13px;display:block}.check small{display:block;font-size:11px;color:var(--muted);margin-top:2px}.rights{border-top:1px solid #edf0f2;padding-top:16px;color:#65777e}.error-text{font-size:13px;color:var(--danger);line-height:1.5;margin:12px 0;overflow-wrap:anywhere}.notice{padding:14px 17px;border-radius:9px;font-size:13px;line-height:1.5}.error{background:#fff3f0;border:1px solid #efd4cd;color:var(--danger)}.history-panel{margin-top:17px}.history-title{justify-content:space-between;margin-bottom:9px}.history-title h2{font-size:15px}.history-list{display:flex;flex-direction:column;gap:7px}.history-item{display:flex;flex-direction:column;align-items:stretch;gap:6px;text-align:left;font-weight:400;font-size:11px;padding:10px;background:#fafcfc}.history-item.active{background:#eef7f3;border-color:#8db6a9}.history-item-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.history-item strong{font-size:12px}.history-item .status{font-size:10px;padding:3px 7px}.empty-state{padding:90px 35px;text-align:center;min-height:500px}.empty-state>p{max-width:440px;margin:14px auto}.empty-image{height:130px;width:130px;display:flex;align-items:center;justify-content:center;margin:0 auto 26px;border:1px solid var(--border);border-radius:28px;transform:rotate(-5deg)}.empty-image span{padding:15px 12px;background:#fff;box-shadow:0 4px 20px #26383715;border-radius:10px;letter-spacing:2px;color:#44897a;font-weight:700}.batch-panel,.preview-panel,.items-panel{padding:22px;margin-bottom:18px}.batch-header,.preview-heading,.items-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.batch-header .eyebrow{margin-bottom:6px}.status{border-radius:15px;background:#eef1f4;color:#62747c;padding:6px 10px;white-space:nowrap;font-size:11px}.status.done{background:#e5f5ec;color:#257c53}.status.running{background:#eaf3fd;color:#34749e}.status.failed{background:#fcebe8;color:var(--danger)}.status.cancelled{background:#f3f2ed;color:#85764b}.progress-line{display:flex;gap:15px;align-items:center;margin-top:21px}.progress-line strong{font-size:12px;white-space:nowrap}progress{width:100%;height:9px;appearance:none;border:0;overflow:hidden;border-radius:6px;background:#ecf1f2}progress::-webkit-progress-bar{background:#ecf1f2}progress::-webkit-progress-value{background:#228b76;border-radius:6px}progress::-moz-progress-bar{background:#228b76;border-radius:6px}.counts{display:flex;gap:14px;flex-wrap:wrap;margin:12px 0;color:var(--muted);font-size:12px}.counts b{color:#2b454b;font-weight:600}.batch-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px}.batch-actions .small{flex-basis:100%}.filename{overflow-wrap:anywhere;word-break:break-word;margin:6px 0 0}.preview-heading{align-items:flex-start;margin-bottom:18px}.preview-heading>div{min-width:0}.preview-heading>a{flex:none}.compare{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}figure{margin:0;min-width:0}figcaption{font-size:12px;font-weight:600;margin-bottom:8px;color:#5c747c}.checker{background-color:#fff;background-image:linear-gradient(45deg,#edf0f1 25%,transparent 25%),linear-gradient(-45deg,#edf0f1 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#edf0f1 75%),linear-gradient(-45deg,transparent 75%,#edf0f1 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}.image-stage{border:1px solid var(--border);border-radius:10px;height:330px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:10px;text-align:center}.image-stage img{display:block;max-width:100%;max-height:100%;object-fit:contain}.image-stage span{padding:10px;border-radius:7px;background:#ffffffdb}.preview-info{margin:13px 0 0;color:#56756d}.preview-info.warning{color:#986716}.items-heading{margin-bottom:16px;flex-wrap:wrap}.filters{display:flex;gap:3px;padding:3px;border-radius:8px;background:#f0f4f5;flex-wrap:wrap}.filters button{min-height:29px;padding:5px 9px;border:0;background:transparent;font-size:11px;color:#6c828a}.filters button.active{background:#fff;box-shadow:0 1px 4px #1c333510;color:var(--accent)}.items-list{display:flex;flex-direction:column;gap:8px;max-height:650px;overflow:auto}.photo-row{border:1px solid #e3eaec;border-radius:9px;display:flex;gap:12px;align-items:center;padding:9px;background:#fff}.photo-row.selected{border-color:#8fbbad;background:#f5faf7}.photo-select{border:0;background:transparent;display:flex;gap:12px;align-items:center;min-width:0;flex:1;justify-content:flex-start;padding:0;text-align:left;font-weight:400;min-height:55px}.photo-select:hover{background:transparent;border-color:transparent}.photo-thumb{width:58px;height:53px;object-fit:contain;border:1px solid #e4e9eb;border-radius:6px;flex:none;background-color:#fff}.thumb-placeholder{display:flex;align-items:center;justify-content:center;font-size:10px;color:#81949c}.photo-details{min-width:0;flex:1}.photo-name{display:block;font-size:12px;font-weight:600;overflow-wrap:anywhere;word-break:break-word}.photo-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:6px;font-size:10px;color:var(--muted)}.photo-meta .status{font-size:10px;padding:3px 7px}.review-tag{color:#92651c;background:#fff3da;border-radius:5px;padding:3px 6px}.photo-actions{display:flex;gap:5px;flex:none}.photo-actions .button,.photo-actions button{padding:6px 9px;min-height:34px;font-size:11px}.photo-error{font-size:10px;color:var(--danger);margin-top:5px;overflow-wrap:anywhere}footer{color:#81959d;font-size:11px;text-align:center;padding:25px 0 30px;line-height:1.6}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:25px}.login-card{width:440px;max-width:100%;background:#fff;border:1px solid var(--border);border-radius:18px;padding:34px;box-shadow:0 12px 50px #25423e08}.login-card .brand{margin-bottom:29px}.login-card h1{font-size:24px;line-height:1.25}.login-card>p{font-size:13px}.login-card button{width:100%;margin-top:15px}.login-card>p:last-child{font-size:11px;margin:20px 0 0}
#password-confirmation{margin-top:16px}#password-confirmation p{margin:8px 0 0}
@media(min-width:1600px){.image-stage{height:410px}}@media(max-width:1100px){.workspace{grid-template-columns:300px minmax(0,1fr);gap:16px}.app{padding:0 18px}.upload-panel,.history-panel,.batch-panel,.preview-panel,.items-panel{padding:17px}.image-stage{height:250px}.compare{gap:10px}.page-heading .pill{display:none}}@media(max-width:800px){.workspace{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.history-panel{margin-top:0}.image-stage{height:300px}.empty-state{min-height:300px;padding:35px 20px}.topbar{height:73px}.page-heading{padding:23px 0}h1{font-size:26px}}@media(max-width:540px){.app{padding:0 12px}.sidebar{display:block}.history-panel{margin-top:15px}.history-list{max-height:200px;overflow:auto}.compare{grid-template-columns:1fr}.image-stage{height:280px}.preview-heading{flex-wrap:wrap;gap:10px}.batch-header{align-items:flex-start}.brand{font-size:24px;gap:11px}.brand span{padding-left:11px;font-size:10px}.page-heading p{font-size:13px}.upload-panel,.history-panel,.batch-panel,.preview-panel,.items-panel{padding:16px}.photo-row{gap:6px;padding:8px}.photo-select{gap:8px}.photo-thumb{width:46px;height:46px}.photo-actions{flex-direction:column}.photo-actions .button,.photo-actions button{padding:6px;min-height:30px}.filters{width:100%;justify-content:space-between}.filters button{padding:6px}.counts{gap:9px}.login-wrap{padding:14px}.login-card{padding:25px 20px}.progress-line{gap:9px}.batch-header h2{font-size:16px}.batch-header .status{max-width:120px;white-space:normal;text-align:center}.preview-info{overflow-wrap:anywhere}}
