:root{--bg: #0f0f0f;--surface: #1a1a1a;--surface-raised: #242424;--border: #333;--text: #e8e8e8;--text-muted: #888;--accent: #e05252;--accent-hover: #cc3a3a;--accent-dim: rgba(224, 82, 82, .15);--success: #52c07a;--radius: 8px;--font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{background:var(--bg);color:var(--text);font-family:var(--font);min-height:100dvh;display:flex;flex-direction:column;align-items:center}header{width:100%;padding:1.5rem 2rem;display:flex;align-items:center;gap:1rem;border-bottom:1px solid var(--border)}.logo{display:flex;align-items:center;gap:.5rem;text-decoration:none}.logo-icon{color:var(--accent)}.logo-text{font-size:1.4rem;font-weight:700;letter-spacing:-.02em;color:var(--text)}.logo-tld{color:var(--accent);font-weight:400}.logo-tagline{font-size:.8rem;color:var(--text-muted);margin-left:auto}main{width:100%;max-width:860px;padding:2rem 1.5rem;flex:1;display:flex;flex-direction:column;gap:1.5rem}.model-status-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;display:flex;align-items:center;gap:.75rem;font-size:.875rem}.model-status-icon{width:8px;height:8px;border-radius:50%;background:var(--text-muted);flex-shrink:0;animation:pulse 1.5s infinite}.model-status.ready~* .model-status-icon,.model-status-bar:has(.ready) .model-status-icon{background:var(--success);animation:none}.model-status{color:var(--text-muted);flex:1}.model-status.ready{color:var(--success)}.model-progress{height:3px;background:var(--border);border-radius:99px;overflow:hidden;margin-top:.5rem}.model-progress-bar{height:100%;background:var(--accent);border-radius:99px;transition:width .3s ease;width:0%}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.notice{background:var(--accent-dim);border:1px solid var(--accent);border-radius:var(--radius);padding:.75rem 1rem;font-size:.875rem;color:var(--accent)}.error-message{background:#e052521a;border:1px solid var(--accent);border-radius:var(--radius);padding:.75rem 1rem;font-size:.875rem;color:var(--accent)}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:4rem 2rem;display:flex;flex-direction:column;align-items:center;gap:1rem;cursor:pointer;transition:border-color .2s,background .2s;text-align:center}.dropzone:hover,.dropzone.drag-over{border-color:var(--accent);background:var(--accent-dim)}.dropzone-icon{color:var(--accent)}.dropzone-title{font-size:1.1rem;font-weight:600}.dropzone-subtitle{color:var(--text-muted);font-size:.875rem}.dropzone-input{display:none}.dropzone-input-label{background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:.6rem 1.25rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .2s}.dropzone-input-label:hover{background:var(--accent-hover)}.image-preview-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;position:relative}.image-preview-panel:hover{border-color:var(--accent)}.image-preview-replace-hint{position:absolute;inset:0 0 auto;display:flex;align-items:center;justify-content:center;background:#00000080;color:#fff;font-size:.875rem;font-weight:500;letter-spacing:.02em;opacity:0;transition:opacity .15s;pointer-events:none}.image-preview-panel:hover .image-preview-replace-hint{opacity:1}.image-preview-input{display:none}.image-preview-canvas{width:100%;height:auto;display:block;max-height:420px;object-fit:contain;background:#000}.image-preview-meta{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-top:1px solid var(--border);gap:1rem}.image-preview-filename{font-size:.8rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.image-preview-dimensions{font-size:.8rem;color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-variant-numeric:tabular-nums}.configure-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.panel-title{font-size:1rem;font-weight:600;margin-bottom:.25rem}.field{display:flex;flex-direction:column;gap:.4rem}.field label{font-size:.8rem;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.field select,.field input[type=text]{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font);font-size:.9rem;padding:.6rem .8rem;width:100%;transition:border-color .2s}.field select:focus,.field input[type=text]:focus{outline:none;border-color:var(--accent)}.concept-custom-fields{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.range-group{display:flex;align-items:center;gap:.75rem}.range-group input[type=range]{flex:1;accent-color:var(--accent);cursor:pointer}.range-value{font-size:.875rem;font-variant-numeric:tabular-nums;color:var(--text);min-width:2.5rem;text-align:right}.advanced-toggle{background:none;border:none;color:var(--text-muted);font-size:.8rem;cursor:pointer;padding:0;text-decoration:underline;font-family:var(--font)}.advanced-toggle:hover{color:var(--text)}.advanced-settings{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:1rem}.checkbox-label{display:flex;align-items:flex-start;gap:.5rem;font-size:.8rem;color:var(--text-muted);cursor:pointer;line-height:1.4}.checkbox-label input[type=checkbox]{flex-shrink:0;margin-top:.1rem;accent-color:var(--accent);cursor:pointer}.action-row{display:flex;gap:.75rem;justify-content:flex-end}.poison-btn{background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:.75rem 2rem;font-size:1rem;font-weight:700;cursor:pointer;transition:background .2s,opacity .2s}.poison-btn:hover:not(:disabled){background:var(--accent-hover)}.poison-btn:disabled{opacity:.45;cursor:not-allowed}.new-image-btn{background:var(--surface-raised);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1.25rem;font-size:.9rem;cursor:pointer;font-family:var(--font);transition:color .2s,border-color .2s}.new-image-btn:hover{color:var(--text);border-color:var(--text-muted)}.processing-panel{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:2rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.progress-container{display:flex;flex-direction:column;align-items:center;gap:.75rem}.progress-ring{transform:rotate(-90deg)}.progress-ring-track{fill:none;stroke:var(--border);stroke-width:6}.progress-ring-fill{fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round;stroke-dasharray:283;stroke-dashoffset:283;transition:stroke-dashoffset .4s ease}.progress-labels{text-align:center}.progress-similarity{font-size:1.5rem;font-weight:700;color:var(--accent)}.progress-step{font-size:.875rem;color:var(--text-muted)}.progress-poisoned,.progress-eta{font-size:.8rem;color:var(--text-muted)}.cancel-btn{background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);padding:.5rem 1.25rem;font-size:.875rem;cursor:pointer;font-family:var(--font);transition:color .2s,border-color .2s}.cancel-btn:hover{color:var(--text);border-color:var(--text)}.result-panel{display:flex;flex-direction:column;gap:1.25rem}.result-header{display:flex;align-items:center;gap:1rem}.result-title{font-size:1rem;font-weight:600}.final-similarity{font-size:.875rem;color:var(--accent);font-weight:600}.canvas-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.canvas-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.canvas-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:.5rem .75rem;border-bottom:1px solid var(--border)}.canvas-panel canvas{width:100%;height:auto;display:block}.download-btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--success);color:#0f0f0f;border-radius:var(--radius);padding:.75rem 1.5rem;font-size:.9rem;font-weight:700;text-decoration:none;transition:opacity .2s;align-self:flex-start}.download-btn:hover{opacity:.85}footer{width:100%;padding:1.25rem 2rem;border-top:1px solid var(--border);font-size:.8rem;color:var(--text-muted);text-align:center}footer a{color:var(--text-muted)}footer a:hover{color:var(--text)}
