.bid-extractor[data-v-b627efce]{width:100%}.extractor-layout[data-v-b627efce]{display:grid;grid-template-columns:340px 1fr;gap:2rem;align-items:start}@media(max-width:900px){.extractor-layout[data-v-b627efce]{grid-template-columns:1fr}}.extractor-sidebar[data-v-b627efce]{display:flex;flex-direction:column;gap:1.2rem}.panel[data-v-b627efce]{border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem;background:var(--bg-elevated)}.panel h3[data-v-b627efce]{margin:0 0 .8rem;font-size:.95rem;color:var(--fg)}.drop-zone[data-v-b627efce]{border:2px dashed var(--border-strong);border-radius:var(--radius);padding:1.5rem 1rem;text-align:center;cursor:pointer;transition:border-color var(--transition),background var(--transition)}.drop-zone[data-v-b627efce]:hover,.drop-zone.drag-over[data-v-b627efce]{border-color:var(--accent);background:var(--accent-soft)}.drop-hint p[data-v-b627efce]{margin:.3rem 0;color:var(--fg-muted);font-size:.9rem}.drop-icon[data-v-b627efce]{font-size:2rem;display:block;margin-bottom:.5rem}.drop-formats[data-v-b627efce]{font-size:.8rem!important;color:var(--fg-subtle)!important}.file-info[data-v-b627efce]{color:var(--fg)}.file-icon[data-v-b627efce]{font-size:1.5rem}.file-name[data-v-b627efce]{font-weight:500;margin:.3rem 0 0;font-size:.9rem;word-break:break-all}.file-size[data-v-b627efce]{color:var(--fg-subtle);font-size:.8rem;margin:.2rem 0 0}.privacy-note[data-v-b627efce]{font-size:.78rem;color:var(--fg-subtle);background:var(--accent-soft);padding:.4rem .6rem;border-radius:var(--radius);margin-bottom:.8rem;line-height:1.5}.field-label[data-v-b627efce]{display:block;font-size:.82rem;color:var(--fg-muted);margin:.7rem 0 .25rem}.model-label-row[data-v-b627efce]{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.model-label-row .field-label[data-v-b627efce]{margin-bottom:.25rem}.refresh-models[data-v-b627efce]{border:0;padding:0;background:transparent;color:var(--accent);font:inherit;font-size:.75rem;cursor:pointer}.refresh-models[data-v-b627efce]:disabled{color:var(--fg-subtle);cursor:not-allowed}.model-help[data-v-b627efce]{margin:.35rem 0 0;color:var(--fg-subtle);font-size:.72rem;line-height:1.45}.model-help.error[data-v-b627efce]{color:var(--warning)}.panel select[data-v-b627efce],.panel input[type=text][data-v-b627efce],.panel input[data-v-b627efce]:not([type]),.panel input[type=password][data-v-b627efce]{width:100%;padding:.45rem .6rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--fg);font-size:.88rem;font-family:inherit}.panel select[data-v-b627efce]:focus,.panel input[data-v-b627efce]:focus{outline:2px solid var(--accent);outline-offset:-1px}.key-input-wrap[data-v-b627efce]{display:flex;gap:.4rem}.key-input-wrap input[data-v-b627efce]{flex:1}.toggle-key[data-v-b627efce]{padding:.4rem .6rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-alt);color:var(--fg-muted);font-size:.78rem;cursor:pointer;white-space:nowrap}.toggle-key[data-v-b627efce]:hover{color:var(--fg)}.btn-extract[data-v-b627efce]{width:100%;padding:.7rem;border:none;border-radius:var(--radius);background:var(--accent);color:var(--accent-fg);font-size:.95rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:opacity var(--transition)}.btn-extract[data-v-b627efce]:disabled{opacity:.5;cursor:not-allowed}.btn-extract[data-v-b627efce]:not(:disabled):hover{opacity:.9}.spinner[data-v-b627efce]{width:14px;height:14px;border:2px solid var(--accent-fg);border-top-color:transparent;border-radius:50%;animation:spin-b627efce .6s linear infinite}@keyframes spin-b627efce{to{transform:rotate(360deg)}}.error-msg[data-v-b627efce]{color:#dc2626;font-size:.85rem;padding:.6rem;background:#dc262614;border-radius:var(--radius);border:1px solid rgba(220,38,38,.2)}.extractor-main[data-v-b627efce]{min-width:0}.empty-state[data-v-b627efce]{padding:3rem 1.5rem;text-align:center;color:var(--fg-muted);border:1px dashed var(--border);border-radius:var(--radius)}.loading-state[data-v-b627efce]{padding:2rem 1.5rem;text-align:center}.progress-bar[data-v-b627efce]{height:4px;background:var(--bg-alt);border-radius:2px;overflow:hidden;margin-bottom:1rem}.progress-fill[data-v-b627efce]{height:100%;background:var(--accent);transition:width .3s ease}.status-text[data-v-b627efce]{color:var(--fg-muted);font-size:.9rem}.result-panel[data-v-b627efce]{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);overflow:hidden}.result-actions[data-v-b627efce]{display:flex;gap:.6rem;padding:1rem 1.2rem;border-bottom:1px solid var(--border);flex-wrap:wrap}.btn-action[data-v-b627efce]{padding:.4rem .8rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--fg);font-size:.82rem;cursor:pointer;transition:border-color var(--transition)}.btn-action[data-v-b627efce]:hover{border-color:var(--accent);color:var(--accent)}.field-group[data-v-b627efce]{border-bottom:1px solid var(--border)}.field-group[data-v-b627efce]:last-child{border-bottom:none}.group-title[data-v-b627efce]{margin:0;padding:.8rem 1.2rem;font-size:.9rem;font-weight:600;color:var(--fg);cursor:pointer;display:flex;align-items:center;gap:.5rem;user-select:none;background:var(--bg-alt)}.group-title[data-v-b627efce]:hover{color:var(--accent)}.group-arrow[data-v-b627efce]{font-size:.65rem;transition:transform .2s;display:inline-block}.group-arrow.open[data-v-b627efce]{transform:rotate(90deg)}.group-fields[data-v-b627efce]{padding:.4rem 0}.field-row[data-v-b627efce]{display:grid;grid-template-columns:140px 1fr auto;gap:.8rem;padding:.55rem 1.2rem;align-items:baseline;border-bottom:1px solid var(--border);font-size:.88rem}.field-row[data-v-b627efce]:last-child{border-bottom:none}.field-row.missing[data-v-b627efce]{opacity:.55}.field-row.missing .field-value[data-v-b627efce]:before{content:"⚠️"}.field-name[data-v-b627efce]{color:var(--fg-muted);font-weight:500;white-space:nowrap}.field-value[data-v-b627efce]{color:var(--fg);line-height:1.5;word-break:break-all}.btn-copy[data-v-b627efce]{background:none;border:none;cursor:pointer;font-size:.85rem;padding:.2rem;opacity:.4;transition:opacity var(--transition)}.btn-copy[data-v-b627efce]:hover{opacity:1}
