:root{--bg:#f6f7f9;--surface:#fff;--surface-strong:#eef3f6;--text:#243141;--muted:#64748b;--border:#d9e1e8;--primary:#1f3a5f;--primary-hover:#172d49;--success:#1f8a5b;--danger:#b42318;--danger-soft:#fff1f0;--warning:#9a5b00;--warning-soft:#fff7e6;--shadow:0 16px 40px #1e30461c;--radius:8px;--font:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font:16px/1.5 var(--font);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}#root{min-height:100svh}.app-shell{width:min(1180px,100% - 32px);margin:0 auto;padding:28px 0 40px}.topbar{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:20px;display:flex}.eyebrow{color:var(--success);margin:0 0 6px;font-size:13px;font-weight:700}h1,h2,h3,p{margin:0}h1{color:var(--primary);font-size:34px;line-height:1.15}.subtitle{max-width:720px;color:var(--muted);margin-top:10px}.privacy-badge{border-radius:var(--radius);color:#135c3a;background:#edf8f2;border:1px solid #c6ded2;align-items:center;gap:8px;min-width:max-content;padding:10px 12px;font-size:14px;font-weight:700;display:inline-flex}.workspace{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:18px;display:grid}.panel,.summary-panel,.empty-state{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.panel{overflow:hidden}.upload-zone{border:0;border-bottom:1px solid var(--border);background:linear-gradient(#fff 0%,#f7fafc 100%);place-items:center;width:100%;min-height:190px;padding:28px;display:grid;position:relative}.upload-zone-button{cursor:pointer}.upload-zone-button:hover:not(:disabled) .upload-icon{background:#dfeaf2}.upload-zone input{opacity:0;cursor:pointer;position:absolute;inset:0}.upload-zone.disabled{color:var(--muted);cursor:not-allowed;background:#eef2f5}.upload-zone.disabled input{cursor:not-allowed}.upload-content{text-align:center;pointer-events:none;justify-items:center;gap:12px;display:grid}.upload-icon{width:54px;height:54px;color:var(--primary);background:var(--surface-strong);border-radius:50%;place-items:center;display:grid}.upload-title{color:var(--primary);font-size:20px;font-weight:800}.upload-hint{color:var(--muted);font-size:14px}.alert{color:var(--danger);background:var(--danger-soft);border-bottom:1px solid #f4cfbf;align-items:flex-start;gap:10px;padding:12px 16px;font-size:14px;display:flex}.alert.warning{color:var(--warning);background:var(--warning-soft);border-bottom-color:#efd79e}.list-header{border-bottom:1px solid var(--border);grid-template-columns:1fr auto;align-items:center;gap:12px;padding:16px 18px;display:grid}.list-header h2{color:var(--primary);font-size:18px}.list-header p{color:var(--muted);font-size:14px}.clear-button,.icon-button,.generate-button{border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:8px;transition:background .18s,border-color .18s,color .18s;display:inline-flex}.clear-button{color:var(--danger);background:#fff;border-color:#f1c8c3;padding:8px 10px}.clear-button:hover{background:var(--danger-soft)}.image-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;padding:18px;display:grid}.image-card{border:1px solid var(--border);border-radius:var(--radius);background:#fff;gap:12px;min-width:0;padding:12px;display:grid}.card-topline{justify-content:space-between;align-items:center;gap:10px;display:flex}.order{color:var(--muted);font-weight:800}.thumb{aspect-ratio:4/3;border:1px solid var(--border);background:#f8fafc;border-radius:7px;place-items:center;width:100%;display:grid;overflow:hidden}.thumb img{object-fit:contain;width:100%;height:100%}.file-meta{min-width:0}.file-name{color:#172033;text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.file-size{color:var(--muted);margin-top:4px;font-size:13px}.repeat-field{gap:6px;display:grid}.repeat-field label{color:var(--muted);font-size:13px;font-weight:700}.repeat-field input{border:1px solid var(--border);width:100%;min-height:42px;color:var(--primary);border-radius:7px;padding:8px 10px;font-weight:800}.repeat-field input:invalid,.repeat-field input.invalid{border-color:var(--danger);background:var(--danger-soft)}.row-actions{justify-content:flex-end;gap:6px;display:flex}.icon-button{width:36px;height:36px;color:var(--primary);border-color:var(--border);background:#fff}.icon-button:hover:not(:disabled){background:var(--surface-strong)}.icon-button.danger{color:var(--danger)}.icon-button:disabled{color:#9aa7b4;background:#f4f6f8}.empty-state{color:var(--muted);text-align:center;justify-items:center;gap:10px;padding:46px 22px;display:grid}.empty-state svg{color:var(--primary)}.summary-panel{gap:18px;padding:18px;display:grid;position:sticky;top:18px}.summary-title{color:var(--primary);align-items:center;gap:8px;font-size:18px;font-weight:800;display:flex}.stat-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stat{border:1px solid var(--border);border-radius:var(--radius);background:#fbfcfd;padding:12px}.stat-value{color:var(--primary);font-size:26px;font-weight:900;line-height:1.1;display:block}.stat-label{color:var(--muted);margin-top:4px;font-size:13px;display:block}.rules{border-radius:var(--radius);color:#344055;background:#f7fafc;gap:8px;padding:12px;font-size:14px;display:grid}.rules div{gap:8px;display:flex}.rules svg{color:var(--success);flex:none}.generate-button{color:#fff;background:var(--primary);min-height:48px;padding:12px 16px;font-weight:800}.generate-button:hover:not(:disabled){background:var(--primary-hover)}.generate-button:disabled{color:#e7edf2;background:#8fa0b3}.status{color:var(--muted);align-items:flex-start;gap:8px;font-size:14px;display:flex}.status.error{color:var(--danger)}.status.success{color:var(--success)}.status.warning{color:var(--warning)}@media (width<=980px){.topbar,.workspace{grid-template-columns:1fr}.topbar{display:grid}.privacy-badge{width:fit-content}.summary-panel{position:static}.image-list{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}}@media (width<=560px){.app-shell{width:min(100% - 20px,1180px);padding-top:18px}h1{font-size:26px}.upload-zone{min-height:160px;padding:22px 16px}.list-header{grid-template-columns:1fr}.image-list{grid-template-columns:1fr;padding:12px}.stat-grid{grid-template-columns:1fr}}
