*{box-sizing:border-box;margin:0;padding:0}:root{--bg:hsl(0 0% 6.5%);--fg:hsl(0 0% 87%);--card:hsl(0 0% 8.5%);--border:hsl(0 0% 14%);--input-bg:hsl(0 0% 10%);--muted:hsl(0 0% 12%);--muted-fg:hsl(0 0% 40%);--primary:hsl(226 70% 60%);--primary-fg:hsl(0 0% 100%);--destructive:hsl(0 62.8% 30.6%);--accent:hsl(0 0% 13%);--radius:6px;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:"JetBrains Mono","SF Mono","Fira Code",monospace}body{font-family:var(--font-sans);background:var(--bg);color:var(--fg);min-height:100vh;-webkit-font-smoothing:antialiased}.container{max-width:960px;margin:0 auto;padding:2rem 1.5rem}h1{font-size:1.8rem;font-weight:600;margin-bottom:.25rem;letter-spacing:-.02em}.subtitle{color:var(--muted-fg);margin-bottom:2rem;font-size:.95rem}.subtitle a{color:var(--primary);text-decoration:underline}.subtitle a:hover{color:hsl(226 80% 72%)}.config-card,.gallery-card,.progress-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.config-card h2,.gallery-card h2,.progress-card h2{font-size:.875rem;font-weight:600;margin-bottom:1rem;color:var(--fg);text-transform:uppercase;letter-spacing:.05em}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-group.full{grid-column:1/-1}label{font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-fg);font-weight:500}input,select{background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius);padding:.55rem .75rem;color:var(--fg);font-family:var(--font-sans);font-size:.875rem;outline:none;transition:border-color .15s}input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}select{cursor:pointer}.btn-row{display:flex;gap:.75rem;margin-top:1.25rem}button{padding:.55rem 1.25rem;border:1px solid transparent;border-radius:var(--radius);font-family:var(--font-sans);font-size:.875rem;font-weight:500;cursor:pointer;transition:box-shadow .15s,opacity .15s}button:hover{box-shadow:0 1px 3px rgba(0,0,0,.3)}button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.btn-primary{background:var(--primary);border-color:hsl(226 70% 50%);color:var(--primary-fg)}.btn-danger{background:var(--destructive);border-color:hsl(0 62% 25%);color:hsl(0 80% 85%)}.btn-secondary{background:var(--muted);border-color:var(--border);color:var(--muted-fg)}.progress-bar-container{background:var(--muted);border-radius:var(--radius);height:10px;overflow:hidden;margin-bottom:.75rem}.progress-bar{height:100%;background:linear-gradient(90deg,var(--primary),hsl(226 80% 72%));border-radius:var(--radius);transition:width .5s ease}.progress-stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1rem;gap:1rem;margin-bottom:.5rem}.stat{text-align:center}.stat-value{font-size:1.5rem;font-weight:600;color:var(--fg);font-family:var(--font-mono);letter-spacing:-.02em}.stat-label{font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-fg);margin-top:.15rem}.progress-detail{color:var(--muted-fg);font-size:.85rem;margin-top:.5rem}.gallery-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.gallery-header h2{margin-bottom:0}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:1rem;gap:1rem}.face-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:box-shadow .15s}.face-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.3)}.face-images{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:2px;gap:2px;padding:2px}.face-images img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:3px;cursor:pointer;transition:transform .15s}.face-images img:hover{transform:scale(1.03)}.face-images img:first-child{grid-column:1/-1;aspect-ratio:auto;max-height:280px}.face-info{padding:.6rem .75rem;font-size:.8rem;color:var(--muted-fg);display:flex;justify-content:space-between}.face-info .face-id{font-weight:600;color:var(--fg);font-family:var(--font-mono);font-size:.75rem}.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:1000;display:flex;align-items:center;justify-content:center;cursor:pointer}.lightbox img{max-width:90vw;max-height:90vh;border-radius:var(--radius)}.error-msg{background:hsl(0 50% 12%);border:1px solid hsl(0 50% 20%);color:hsl(0 80% 75%);padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.875rem}.estimate{background:var(--muted);border:1px solid var(--border);color:var(--muted-fg);padding:.6rem .9rem;border-radius:var(--radius);margin-top:.75rem;font-size:.8rem;font-family:var(--font-mono)}.prompt-section{margin-top:1.25rem;border-top:1px solid var(--border);padding-top:1rem}.prompt-toggle{background:none;border:none;color:var(--primary);cursor:pointer;font-size:.875rem;font-weight:500;padding:0;display:flex;align-items:center;gap:.4rem}.prompt-toggle:hover{opacity:.85}.prompt-toggle .arrow{transition:transform .2s;font-size:.7rem}.prompt-toggle .arrow.open{transform:rotate(90deg)}.prompt-fields textarea{width:100%;background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius);padding:.6rem .75rem;color:var(--fg);font-size:.8rem;font-family:var(--font-mono);line-height:1.5;resize:vertical;outline:none;transition:border-color .15s;margin-top:.35rem}.prompt-fields textarea:focus{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.prompt-hint{font-size:.75rem;color:var(--muted-fg);margin-top:.2rem}.btn-download{background:hsl(142 40% 20%);border:1px solid hsl(142 40% 28%);color:hsl(142 60% 70%);font-size:.8rem;padding:.45rem .9rem}.job-id-badge{background:var(--muted);border:1px solid var(--border);color:var(--muted-fg);padding:.4rem .75rem;border-radius:9999px;font-size:.75rem;font-family:var(--font-mono);margin-top:.75rem;display:inline-block}