:root{--bg:#17130f;--bg-2:#1f1913;--surface:#241d16;--surface-2:#2c241c;--surface-3:#362c22;--border:#3d3226;--border-soft:#2e2519;--text:#f3ebde;--text-2:#d3c6b4;--muted:#9c8d7a;--accent:#dd7a4f;--accent-2:#eca079;--accent-soft:#dd7a4f24;--ok:#8bb894;--err:#e0796f;--radius:14px;--radius-lg:22px;--font-body:"Hanken Grotesk", system-ui, sans-serif;--font-heading:"Space Grotesk", system-ui, sans-serif;--font-mono:"Space Mono", ui-monospace, monospace}*{box-sizing:border-box}body{font-family:var(--font-body);background:var(--bg);color:var(--text);margin:0}.app-shell{flex-direction:column;min-height:100vh;display:flex}a{color:var(--accent)}::selection{background:#dd7a4f4d}@keyframes pm-pop{0%{opacity:0;transform:scale(.94)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}.header{border-bottom:1px solid var(--border-soft);z-index:20;background:linear-gradient(#211a13,#1b150f);justify-content:space-between;align-items:center;padding:16px 28px;display:flex;position:sticky;top:0}.header .logo{align-items:center;gap:12px;display:flex}.header .logo-mark{background:linear-gradient(145deg, var(--accent), #b8552f);border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:0 4px 14px #dd7a4f59}.header .logo-mark span{border:2.5px solid #fff;border-radius:5px;width:14px;height:14px}.header .logo-text{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--text);font-size:20px;font-weight:700}.header .logo-text span{color:var(--accent)}.header nav{align-items:center;gap:8px;display:flex}.nav-btn{color:var(--text-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:11px;padding:9px 16px;font-family:inherit;font-size:14px;font-weight:600}.nav-btn.active{background:var(--accent-soft);color:var(--accent);border:1px solid #dd7a4f66}.nav-btn:disabled{opacity:.4;cursor:not-allowed}.nav-divider{background:var(--border);width:1px;height:22px;margin:0 6px}.header button.esci{border:1px solid var(--border);color:var(--text-2);cursor:pointer;background:0 0;border-radius:11px;align-items:center;gap:7px;padding:9px 16px;font-family:inherit;font-size:14px;font-weight:600;display:flex}.header button.esci:hover{border-color:var(--accent);color:var(--text)}.page{box-sizing:border-box;flex:1;width:100%;max-width:1320px;margin:0 auto;padding:26px}.page-eyebrow{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 6px;font-size:12px}.page-title{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--text);margin:0;font-size:28px;font-weight:700}.page-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:22px;display:flex}.layout-two-col{grid-template-columns:1fr 340px;align-items:start;gap:22px;display:grid}@media (width<=900px){.layout-two-col{grid-template-columns:1fr}}.left-col{flex-direction:column;gap:18px;display:flex}.right-col{flex-direction:column;gap:16px;display:flex;position:sticky;top:90px}.card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:18px 20px}.card h2{color:var(--text);font-size:15px;font-weight:600;font-family:var(--font-body);margin:0 0 12px}.card-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 9px;font-size:12px;font-weight:600}button{font-family:inherit}button.primary{background:linear-gradient(145deg, var(--accent), #c9633a);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;gap:10px;width:100%;padding:17px;font-size:17px;font-weight:700;transition:box-shadow .18s,transform .18s;display:flex;box-shadow:0 10px 28px #dd7a4f66}button.primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 34px #dd7a4f80}button.primary:disabled{background:var(--surface-3);color:var(--muted);box-shadow:none;cursor:not-allowed}button.secondary{background:var(--surface-3);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:10px 16px;font-size:14px;font-weight:600}button.secondary:hover{border-color:var(--accent)}button.secondary.danger:hover{color:#e08a83;border-color:#a5514a}button.zip-btn{background:linear-gradient(145deg, var(--accent), #c9633a);color:#fff;cursor:pointer;border:none;border-radius:11px;align-items:center;gap:9px;padding:10px 18px;font-size:14px;font-weight:700;display:flex;box-shadow:0 6px 16px #dd7a4f4d}button.zip-btn:hover{box-shadow:0 8px 20px #dd7a4f66}input[type=text],input[type=email],input[type=password],input[type=number],select{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);outline:none;padding:11px 14px;font-family:inherit;font-size:14px}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input:disabled{opacity:.5}.switch{cursor:pointer;background:var(--surface-3);border:none;border-radius:999px;flex-shrink:0;align-items:center;width:52px;height:30px;padding:3px;transition:background .2s;display:flex}.switch.on{background:var(--accent);justify-content:flex-end}.switch .knob{background:#fff;border-radius:50%;width:24px;height:24px;box-shadow:0 2px 5px #0000004d}.pill-group{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);gap:2px;padding:4px;display:flex}.pill-group button{color:var(--muted);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;padding:8px 6px;font-size:12.5px;font-weight:700}.pill-group button.active{background:var(--accent);color:#fff}.aspect-grid{grid-template-columns:repeat(4,1fr);gap:9px;display:grid}.aspect-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:7px;padding:12px 6px;display:flex}.aspect-btn.active{background:var(--accent-soft);border:1px solid var(--accent);color:var(--accent)}.aspect-btn .box{border:2px solid;border-radius:3px;display:block}.aspect-btn .label{font-family:var(--font-mono);font-size:13px}.error-text{color:var(--err);margin-top:8px;font-size:13px}.dropzone{text-align:center;background:var(--surface);border-radius:var(--radius-lg);cursor:pointer;border:2px dashed #4a3d2e;flex-direction:column;align-items:center;gap:14px;padding:34px 24px;transition:all .18s;display:flex}.dropzone:hover,.dropzone.dragover{border-color:var(--accent);background:var(--surface-2)}.dropzone.has-files{border-style:solid;border-color:var(--border)}.dropzone-icon{background:var(--accent-soft);border-radius:16px;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.dropzone-icon svg{color:var(--accent)}.dropzone-title{color:var(--text);margin:0 0 4px;font-size:16px;font-weight:600}.dropzone-sub{color:var(--muted);margin:0;font-size:13px}.dropzone-pill{background:var(--surface-3);border:1px solid var(--border);border-radius:999px;align-items:center;gap:9px;padding:8px 14px;display:flex}.dropzone-pill .dot{background:var(--ok);border-radius:50%;width:8px;height:8px}.dropzone-pill span.count{color:var(--text);font-size:13px;font-weight:600}.dropzone-pill button{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:13px;text-decoration:underline}.crop-preview{border-radius:var(--radius);background:#0f0b08;position:relative;overflow:hidden}.crop-preview .stripe-pattern{opacity:.5;background-image:repeating-linear-gradient(45deg,#2a221a 0 12px,#241d16 12px 24px);position:absolute;inset:0}.crop-preview .placeholder{color:#6b5c4a;font-family:var(--font-mono);letter-spacing:.1em;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex;position:absolute;inset:0}.crop-box{border:2px solid var(--accent);background:#dd7a4f0a;border-radius:6px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0f0b0880}.crop-box .corner{border-color:var(--accent);width:16px;height:16px;position:absolute}.crop-box .ai-tag{font-family:var(--font-mono);color:var(--accent);letter-spacing:.08em;background:#0f0b08b3;border-radius:5px;padding:2px 6px;font-size:10px;position:absolute;top:8px;left:8px}.ai-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;color:inherit;background:0 0;border:none;align-items:center;gap:9px;padding:0;font-family:inherit;display:flex}.ai-toggle .box{border:2px solid var(--border);background:0 0;border-radius:6px;justify-content:center;align-items:center;width:20px;height:20px;transition:all .15s;display:flex}.ai-toggle.on .box{border-color:var(--accent);background:var(--accent)}.ai-toggle .tick{border:2.5px solid #fff;border-width:0 2.5px 2.5px 0;width:5px;height:9px;display:none;transform:rotate(45deg)translate(-1px,-1px)}.ai-toggle.on .tick{display:block}.ai-toggle .label{color:var(--text-2);font-size:13px;font-weight:600}.zoom-row{align-items:center;gap:14px;margin-top:16px;display:flex}.zoom-row input[type=range]{accent-color:var(--accent);flex:1;height:4px}.zoom-row .zoom-value{font-family:var(--font-mono);color:var(--text-2);text-align:right;min-width:44px;font-size:13px}.manual-hint{color:var(--muted);align-items:center;gap:7px;margin:12px 0 0;font-size:12.5px;display:flex}.manual-hint .dot{background:var(--accent);border-radius:50%;width:6px;height:6px}.summary-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(160deg,#2c241c,#211a13);padding:24px 22px;box-shadow:0 20px 50px #00000059}.summary-panel .title{font-family:var(--font-heading);letter-spacing:-.01em;color:var(--text);margin:0 0 4px;font-size:19px;font-weight:700}.summary-panel .sub{color:var(--muted);margin:0 0 20px;font-size:13.5px;line-height:1.5}.summary-rows{flex-direction:column;gap:10px;margin-bottom:22px;display:flex}.summary-rows .row{justify-content:space-between;font-size:13.5px;display:flex}.summary-rows .row .k{color:var(--muted)}.summary-rows .row .v{font-family:var(--font-mono);color:var(--text)}.tip-card p:first-child{margin:0 0 10px}.tip-card p{color:var(--text-2);margin:0;font-size:13.5px;line-height:1.55}.progress-card{margin-bottom:20px}.progress-head{justify-content:space-between;align-items:baseline;margin-bottom:14px;display:flex}.progress-head .count{font-family:var(--font-heading);font-size:22px;font-weight:700}.progress-head .count .of{color:var(--muted);font-weight:500}.progress-head .count .label{color:var(--muted);font-size:15px;font-weight:500;font-family:var(--font-body)}.progress-head .pct{font-family:var(--font-mono);color:var(--accent);font-size:15px}.progress-bar-track{background:var(--surface-3);border-radius:999px;height:10px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:999px;height:100%;transition:width .4s}.job-grid{grid-template-columns:1fr 1.35fr;align-items:start;gap:20px;display:grid}@media (width<=900px){.job-grid{grid-template-columns:1fr}}.terminal{border:1px solid var(--border);border-radius:var(--radius-lg);background:#0f0b08;overflow:hidden}.terminal-bar{border-bottom:1px solid var(--border-soft);background:#140f0a;align-items:center;gap:8px;padding:12px 16px;display:flex}.terminal-bar .dot{border-radius:50%;width:11px;height:11px}.terminal-bar .title{font-family:var(--font-mono);color:var(--muted);margin-left:8px;font-size:12px}.log-box{height:420px;font-family:var(--font-mono);color:var(--text-2);white-space:pre-wrap;padding:16px;font-size:12.5px;line-height:1.85;overflow-y:auto}.log-box .line.ok{color:var(--text-2)}.log-box .line.done{color:var(--ok);font-weight:700}.log-box .line.err{color:var(--err)}.log-box .time{color:#5c4f40}.results-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;max-height:420px;display:grid;overflow-y:auto}.result-item{animation:.3s both pm-pop}.result-thumb{aspect-ratio:4/5;border:1px solid var(--border);background:#faf7f2;border-radius:12px;position:relative;overflow:hidden}.result-thumb img{object-fit:cover;width:100%;height:100%;display:block}.result-thumb .placeholder{font-family:var(--font-mono);color:#b3a898;text-align:center;justify-content:center;align-items:center;padding:8px;font-size:10px;display:flex;position:absolute;inset:0}.result-thumb .placeholder.error{color:var(--err)}.result-thumb .download-overlay{opacity:0;background:linear-gradient(#0000 40%,#0f0b088c);justify-content:center;align-items:flex-end;padding-bottom:8px;text-decoration:none;transition:opacity .15s;display:flex;position:absolute;inset:0}.result-thumb:hover .download-overlay{opacity:1}.result-thumb .download-overlay span{font-family:var(--font-body);color:#fff;background:var(--accent);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600}.result-filename{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:6px;font-size:11px;overflow:hidden}.login-page{background:radial-gradient(1200px 600px at 80% -10%,#dd7a4f1a,#0000 60%),#1a140e;flex:1;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-page .stripes{pointer-events:none;background-image:repeating-linear-gradient(115deg,#dd7a4f0d 0 2px,#0000 2px 22px);position:absolute;inset:0}.login-page .login-logo{align-items:center;gap:12px;padding:48px 56px;display:flex;position:relative}.login-page .login-body{flex:1;justify-content:center;align-items:center;padding:0 56px 60px;display:flex}.login-box{width:100%;max-width:400px}.login-eyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 14px;font-size:12px}.login-box h1{font-family:var(--font-heading);letter-spacing:-.03em;color:var(--text);margin:0 0 10px;font-size:38px;font-weight:700;line-height:1.05}.login-box .sub{color:var(--muted);margin:0 0 32px;font-size:15px;line-height:1.5}.login-box form{flex-direction:column;gap:16px;display:flex}.login-box label{flex-direction:column;gap:7px;display:flex}.login-box label span.field-label{color:var(--text-2);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.login-box label span.field-label .req-tag{font-family:var(--font-mono);color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:2px 7px;font-size:11px}.login-box input{padding:14px 16px;font-size:15px}.login-box button.primary{letter-spacing:.01em;margin-top:6px;box-shadow:0 8px 22px #dd7a4f47}.login-box button.primary:hover:not(:disabled){box-shadow:0 10px 28px #dd7a4f6b}.login-switch{border-top:1px solid var(--border-soft);color:var(--muted);margin-top:26px;padding-top:22px;font-size:14px}.login-switch button{color:var(--accent);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;margin-left:4px;padding:0;font-size:14px;font-weight:700;text-decoration:underline}
