body{margin:0}#root{min-height:100vh}:root{--bg: #000000;--card: #000000;--text: #ffffff;--muted: #808080;--muted2: #a0a1a280;--accent: #ffffff;--accent-hover: #e0e0e0;--border: rgba(255,255,255,.1);--danger: #ff4444;--success: #44ff44;--processing: #ffc107;--warning: #dfdba2;--shadow: rgba(0,0,0,.5)}[data-theme=light]{--bg: #ffffff;--card: #ffffff;--text: #16181d;--muted: #6b7280;--muted2: #adb3bd86;--accent: #000000;--accent-hover: #494949;--border: rgba(22, 24, 29, .1);--danger: #ff4444;--success: #16a34a;--processing: #ffc107;--shadow: rgba(226, 229, 235, .25)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,sans-serif;line-height:1.6;min-height:100vh;transition:background .3s ease,color .3s ease;user-select:text;-webkit-user-select:text;cursor:auto}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#fff3}[data-theme=light] ::-webkit-scrollbar-thumb{background:#0000001a}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#0003}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;box-shadow:0 4px 16px var(--shadow);display:flex;flex-direction:column;min-height:0;overflow:hidden}input,select,textarea{background:var(--card);border:1px solid var(--border);border-radius:6px;padding:8px 12px;color:var(--text);font-size:13px;transition:border-color .2s ease,background .2s ease;user-select:text;-webkit-user-select:text}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--text);background:#ffffff0d}select{cursor:pointer;appearance:none;background-color:var(--card);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%237a8194' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right 8px center;background-repeat:no-repeat;background-size:16px;padding:10px 36px 10px 12px;font-weight:500}select:hover{border-color:var(--text);background-color:var(--card)}select option{background:var(--card);color:var(--text);padding:10px;font-weight:500}button{background:none;border:none;color:var(--text);cursor:pointer;font-family:inherit;user-select:none;-webkit-user-select:none}.btn-primary{background:var(--text);color:var(--bg);padding:10px 20px;border-radius:6px;font-weight:500;transition:background .2s ease}.btn-primary:hover:not(:disabled){background:var(--muted)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{color:var(--text);border:1px solid var(--border);padding:8px 16px;border-radius:6px;font-weight:500;transition:all .2s ease}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary:hover:not(:disabled){background:var(--muted2);border-color:var(--muted)}.btn-danger{color:var(--text);border:1px solid var(--border);padding:8px 16px;border-radius:6px;font-weight:500;transition:all .2s ease}.btn-danger:hover:not(:disabled){background:var(--danger)}.app-layout{display:flex;height:100vh;max-height:100vh;overflow:hidden;background:var(--bg)}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.toast{position:fixed;bottom:32px;right:32px;background:var(--card);border:1px solid var(--border);padding:14px 24px;border-radius:10px;font-size:14px;font-weight:500;box-shadow:0 12px 40px #00000080;z-index:1000;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.toast{left:16px;right:16px}}.content-header{padding:20px 30px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.header-left{display:flex;align-items:center;gap:16px}.content-header h1{font-size:24px;font-weight:600;color:var(--text);margin:0}.project-info{display:flex;align-items:center;gap:12px}.project-actions{display:flex;align-items:center;gap:6px}.project-info .btn-icon{background:none;border:none;color:var(--muted);padding:6px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .15s ease}.project-info .btn-icon:hover{background:#ffffff1a;color:var(--text)}.project-info .btn-icon.btn-danger:hover{background:#f443;color:var(--danger)}.header-actions{display:flex;gap:8px;align-items:center}.extraction-content{flex:1;overflow:hidden;display:flex;flex-direction:column;padding:20px 30px}.content-grid{display:grid;grid-template-rows:auto 1fr;gap:20px;flex:1;min-height:0;overflow:hidden}.welcome-state{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--muted)}.welcome-state h2{font-size:20px;margin-bottom:8px}.welcome-state p{font-size:14px}.login-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.login-modal-content{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:0;max-width:400px!important;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 4px 16px var(--shadow)}.login-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 16px;border-bottom:1px solid var(--border)}.login-modal-header h2{margin:0;font-size:1.5rem;font-weight:600;color:var(--text)}.login-close-button{background:none;border:none;font-size:1.5rem;color:var(--muted);cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s}.login-close-button:hover{background-color:var(--muted2)}.login-auth-form{padding:24px}.login-form-group{margin-bottom:20px!important}.login-form-group label{display:block;margin-bottom:6px;font-weight:500;color:var(--text);font-size:13px}.login-form-group input{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--text);font-size:13px;transition:border-color .2s ease,background .2s ease}.login-form-group input:focus{outline:none;border-color:var(--text);background:#ffffff0d}.login-form-group input:disabled{opacity:.6;cursor:not-allowed}.login-field-error{color:var(--danger);font-size:12px;margin-top:4px}.login-error-message{background:#ff44441a;color:var(--danger);padding:12px;border-radius:6px;margin-bottom:16px;font-size:13px;border:1px solid rgba(255,68,68,.2)}.login-submit-button{width:100%;padding:10px 20px;background:var(--text);color:var(--bg);border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s ease}.login-submit-button:hover:not(:disabled){background:var(--muted)}.login-submit-button:disabled{opacity:.5;cursor:not-allowed}.login-auth-switch{padding:16px 24px 24px;border-top:1px solid var(--border);text-align:center}.login-auth-switch p{margin:0;color:var(--muted);font-size:13px}.login-switch-button{background:none;border:none;color:var(--text);cursor:pointer;font-size:13px;text-decoration:underline;padding:0;transition:color .2s ease}.login-switch-button:hover{color:var(--muted)}.icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}.icon-xs{font-size:12px;width:12px;height:12px}.icon-sm{font-size:16px;width:16px;height:16px}.icon-md{font-size:20px;width:20px;height:20px}.icon-lg{font-size:40px;width:40px;height:40px}.icon-img{width:100%;height:100%;display:block;filter:invert(1) brightness(1);transition:filter .3s ease}[data-theme=light] .icon-img{filter:invert(0) brightness(1)}.auth-loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg)}.auth-loading-content{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--muted);font-size:.85rem}.auth-loading-spinner{width:32px;height:32px;border:2px solid var(--border);border-top-color:var(--text);border-radius:50%;animation:spin .7s linear infinite}.auth-screen{min-height:100vh;background:var(--bg);display:grid;grid-template-columns:1fr 1fr}.auth-left{display:flex;align-items:center;justify-content:center;padding:3rem;position:relative;overflow:hidden;background:var(--card)}.auth-left-content{position:relative;z-index:10;max-width:480px}.auth-brand{margin-bottom:2rem}.auth-brand h1{font-size:3rem;font-weight:200;color:var(--text);letter-spacing:8px;margin:0 0 .25rem}.auth-brand-sub{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:4px}.auth-tagline{font-size:1.05rem;color:var(--muted);line-height:1.7;margin-bottom:3rem}.auth-features{display:flex;flex-direction:column;gap:1.25rem}.auth-feature{display:flex;align-items:flex-start;gap:1rem}.auth-feature-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg);border:1px solid var(--border);border-radius:10px;flex-shrink:0;color:var(--text)}.auth-feature-text{display:flex;flex-direction:column;gap:.15rem}.auth-feature-title{font-size:.9rem;font-weight:500;color:var(--text)}.auth-feature-desc{font-size:.75rem;color:var(--muted)}.auth-decoration{position:absolute;inset:0;pointer-events:none;overflow:hidden}.auth-grid{position:absolute;inset:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:40px 40px;opacity:.4;mask-image:radial-gradient(ellipse at 40% 50%,black 0%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 40% 50%,black 0%,transparent 70%);animation:gridPulse 8s ease-in-out infinite}@keyframes gridPulse{0%,to{opacity:.3}50%{opacity:.5}}.auth-glow{position:absolute;top:20%;left:15%;width:500px;height:500px;background:radial-gradient(circle,var(--text) 0%,transparent 60%);opacity:.15;filter:blur(80px);animation:glowPulse 6s ease-in-out infinite}[data-theme=light] .auth-glow{opacity:.08}@keyframes glowPulse{0%,to{opacity:.12;transform:scale(1)}50%{opacity:.1;transform:scale(1.1)}}[data-theme=light] .auth-glow{animation-name:glowPulseLight}@keyframes glowPulseLight{0%,to{opacity:.12;transform:scale(1)}50%{opacity:.1;transform:scale(1.1)}}.auth-right{display:flex;align-items:center;justify-content:center;padding:3rem;background:var(--bg)}.auth-right-content{max-width:360px;width:100%}.auth-right-content h2{font-size:1.75rem;font-weight:400;color:var(--text);margin:0 0 .5rem}.auth-right-content>p{font-size:.9rem;color:var(--muted);margin:0 0 2rem}.auth-cta{display:flex;flex-direction:column;gap:.75rem}.auth-cta-primary,.auth-cta-secondary{width:100%;padding:.875rem 1.5rem;font-size:.9rem;font-weight:500;border-radius:8px;cursor:pointer;transition:all .2s;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:.5rem}.auth-cta-primary{background:var(--text);color:var(--bg);border:none}.auth-cta-primary:hover{opacity:.85;transform:translateY(-1px);box-shadow:0 4px 12px var(--shadow)}.auth-cta-secondary{background:transparent;color:var(--text);border:1px solid var(--border)}.auth-cta-secondary:hover{background:var(--muted2);border-color:var(--muted)}.auth-divider{display:flex;align-items:center;gap:1rem;margin:2rem 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-divider span{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.auth-social-hint{text-align:center}.auth-social-hint p{font-size:.8rem;color:var(--muted);opacity:.7;margin:0}@media (max-width: 900px){.auth-screen{grid-template-columns:1fr;grid-template-rows:auto auto}.auth-left{padding:2rem;min-height:auto}.auth-left-content{max-width:100%}.auth-brand h1{font-size:2.5rem}.auth-features{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.auth-right{padding:2rem}}@media (max-width: 600px){.auth-left{padding:1.5rem}.auth-brand h1{font-size:2rem;letter-spacing:4px}.auth-tagline{font-size:.95rem;margin-bottom:2rem}.auth-features{grid-template-columns:1fr}.auth-right{padding:1.5rem}.auth-right-content h2{font-size:1.5rem}}.modal-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--card);border:1px solid var(--border);border-radius:12px;width:90%;max-width:480px;max-height:90vh;overflow:hidden}.modal-header{padding:20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0;color:var(--text);font-size:18px;font-weight:600}.modal-body{padding:20px;max-height:60vh;overflow-y:auto}.modal-footer{padding:16px 20px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;color:var(--text);font-weight:500;font-size:14px}.form-group input,.form-group textarea,.form-group select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--text);font-size:14px}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--accent);background:var(--card)}.form-group textarea{resize:vertical;min-height:80px}.modal-btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.modal-btn-cancel{background:transparent;color:var(--muted);border:1px solid var(--border)}.modal-btn-cancel:hover,.modal-btn-submit{background:var(--muted2);color:var(--text)}.modal-btn-submit:hover{background:var(--accent-hover);color:var(--card)}.modal-btn:disabled{opacity:.5;cursor:not-allowed}.sidebar{width:150px;background:var(--card);border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-header{padding:20px;border-bottom:1px solid var(--border)}.sidebar-header h2{margin:0;color:var(--text);font-size:16px;font-weight:600;transition:color .3s ease}.sidebar-actions{padding:12px;border-bottom:1px solid var(--border)}.sidebar-btn{background:none;color:var(--text);border:none;padding:10px 12px;border-radius:4px;text-decoration:none;font-size:14px;font-weight:500;transition:background .15s ease,color .3s ease;display:flex;width:100%;align-items:center;gap:10px;text-align:left;cursor:pointer;margin-bottom:4px}.sidebar-btn:hover{background:var(--muted2)}.sidebar-btn-icon{font-size:16px;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;width:20px}.sidebar-section{flex:1;overflow:hidden;display:flex;flex-direction:column;padding-top:12px}.sidebar-section h3{margin:0 0 8px;padding:0 20px;color:var(--muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px}.current-project{padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--bg);border-radius:6px;margin:0 12px}.current-project-name{color:var(--text);font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.current-project-switch{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:4px;transition:all .15s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.current-project-switch:hover{color:var(--text);background:var(--muted2)}.btn-icon{background:none;border:none;color:var(--muted);font-size:20px;cursor:pointer;padding:4px;transition:color .15s ease}.btn-icon:hover{color:var(--text)}.sidebar-footer{margin-top:auto;padding:12px;border-top:1px solid var(--border)}.user-info{display:flex;align-items:center;justify-content:space-between;gap:8px}.user-email{color:var(--text);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.logout-btn{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:4px;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.logout-btn:hover{color:var(--text);background:var(--muted2)}.home-page{padding:32px;width:100%;height:100%;overflow-y:auto}.home-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px;gap:24px}.home-header-content{flex:1}.home-header h1{margin:0 0 8px;font-size:32px;font-weight:700;color:var(--text)}.home-subtitle{margin:0;font-size:16px;color:var(--text-secondary)}.home-create-btn{display:flex;align-items:center;gap:8px;white-space:nowrap}.home-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 32px;text-align:center;min-height:400px}.home-empty-icon{margin-bottom:24px;opacity:.5}.home-empty-state h2{margin:0 0 12px;font-size:24px;font-weight:600;color:var(--text)}.home-empty-state p{margin:0 0 32px;font-size:16px;color:var(--text-secondary)}.home-projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.home-project-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;gap:16px;min-height:180px}.home-project-card:hover{border-color:var(--primary);box-shadow:0 4px 12px var(--shadow);transform:translateY(-2px)}.home-project-card.selected{border-color:var(--primary);background:var(--bg);box-shadow:0 4px 16px var(--shadow)}.home-project-card-header{display:flex;justify-content:space-between;align-items:flex-start}.home-project-card-icon{color:var(--primary);opacity:.8}.home-project-card-actions{display:flex;align-items:center;gap:4px}.home-project-card-action{background:transparent;border:none;padding:4px;cursor:pointer;color:var(--text-secondary);border-radius:4px;transition:all .2s;display:flex;align-items:center;justify-content:center}.home-project-card-action:hover{background:var(--bg);color:var(--text)}.home-project-card-action:last-child:hover{color:var(--error, #ef4444)}.home-project-card-body{flex:1;display:flex;flex-direction:column;gap:8px}.home-project-card-title{margin:0;font-size:18px;font-weight:600;color:var(--text);line-height:1.4}.home-project-card-description{margin:0;font-size:14px;color:var(--text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.home-project-card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid var(--border)}.home-project-card-stats{display:flex;align-items:center;gap:16px}.home-project-card-stat{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.home-project-card-stat svg{opacity:.6}.home-project-card-badge{font-size:12px;font-weight:500;color:var(--primary);background:var(--bg);padding:4px 8px;border-radius:4px;border:1px solid var(--primary)}@media (max-width: 1200px){.home-projects-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.home-page{padding:24px 16px}.home-header{flex-direction:column;align-items:stretch}.home-create-btn{width:100%;justify-content:center}.home-projects-grid{grid-template-columns:1fr}}.export-modal{max-width:650px;width:100%}.export-info{margin-bottom:1.25rem;padding:.875rem 1.125rem;background:var(--card);border-radius:8px;border-left:3px solid var(--text)}.export-info p{margin:0;color:var(--muted);font-size:.875rem;line-height:1.5}.export-format-options{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.format-option{padding:1rem;border:2px solid var(--border);border-radius:8px;cursor:pointer;transition:all .15s ease;background:var(--card);position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;min-height:120px}.format-option:hover{border-color:var(--text);background:var(--card);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow)}.format-option.selected{border-color:var(--text);background:var(--card)}.format-icon{margin-top:.5rem}.format-description{color:var(--muted);font-size:.8rem;line-height:1.4;margin-top:.25rem}.export-location-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.field-hint{margin-top:.5rem;font-size:.8125rem;color:var(--muted);line-height:1.4}.field-hint strong{color:var(--text);font-weight:600}.field-hint code{padding:.15rem .4rem;background:var(--card);border-radius:3px;font-family:Courier New,monospace;font-size:.85em;color:var(--text);font-weight:600}.folder-select{display:flex;gap:.5rem}.folder-input{flex:1;background:var(--card)!important}.btn-select-folder{padding:10px 20px;border:1px solid var(--border);border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;background:var(--card);color:var(--text)}.btn-select-folder:hover:not(:disabled){background:var(--accent-hover);border-color:var(--text)}.btn-select-folder:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 600px){.export-format-options{grid-template-columns:1fr}.format-option{min-height:auto}}.project-actions-toolbar{display:flex;align-items:center;gap:8px}.project-actions-card{display:flex;align-items:center;gap:4px}.project-action-btn{background:transparent;border:none;padding:4px;cursor:pointer;color:var(--text-secondary);border-radius:4px;transition:all .2s;display:flex;align-items:center;justify-content:center}.project-action-btn:hover{background:var(--bg);color:var(--text)}.project-action-btn-danger:hover{color:var(--error, #ef4444)}.custom-select-button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:14px;font-family:inherit;cursor:pointer;transition:all .2s;text-align:left;gap:8px}.custom-select-button:hover:not(:disabled){border-color:var(--primary)}.custom-select-button:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light)}.custom-select-button:disabled{opacity:.6;cursor:not-allowed}.custom-select-button.open{border-color:var(--primary)}.custom-select-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-select-arrow{flex-shrink:0;opacity:.6;transition:transform .2s}.custom-select-button.open .custom-select-arrow{opacity:1}.custom-select-menu{background:var(--card);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 16px var(--shadow);z-index:10000;overflow:hidden;max-height:300px;overflow-y:auto;animation:slideDown .15s ease}.custom-select-option{display:block;width:100%;padding:10px 12px;background:none;border:none;border-left:3px solid transparent;color:var(--text);font-size:14px;font-weight:500;text-align:left;cursor:pointer;transition:all .15s ease}.custom-select-option:hover{background:var(--muted2)}.custom-select-option.selected{border-left-color:var(--primary);background:var(--muted2);color:var(--text)}.custom-select-option.selected:hover{background:var(--muted2);border-left-color:var(--primary)}.custom-select-button.toolbar{height:40px;padding:6px 12px;font-size:13px;min-width:150px}.custom-select-button.toolbar .custom-select-arrow{margin-left:4px}.excel-header{display:flex;justify-content:space-between;align-items:center;padding:13px 20px;background:var(--bg);font-weight:500;flex-shrink:0}.header-left{display:flex;align-items:center;gap:18px}.project-title-group{display:flex;align-items:center;gap:10px}.project-title-group h2{margin:0;font-size:18px;font-weight:600;letter-spacing:.02em;color:var(--text)}.documents-count{font-size:13px;color:var(--muted);letter-spacing:.02em}.header-controls{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex:1}.header-actions-left{display:flex;align-items:center;gap:10px}.header-actions-right{display:flex;align-items:center;gap:10px;padding-left:16px;border-left:1px solid var(--border)}.btn-sm{padding:9px 16px;font-size:13px;border-radius:6px;display:flex;align-items:center;gap:8px}.btn-danger:disabled{background:var(--danger);opacity:.9;cursor:not-allowed}.btn-danger .spinner{width:16px;height:16px;border:2px solid transparent;border-top-color:var(--text);border-radius:50%;animation:spin .8s linear infinite}.spinner{display:inline-flex;align-items:center;justify-content:center}.spinner-ring{border:2px solid var(--border);border-top:2px solid var(--primary);border-radius:50%;animation:spin 1s linear infinite}.spinner-sm .spinner-ring{width:16px;height:16px;border-width:2px}.spinner-md .spinner-ring{width:24px;height:24px;border-width:2px}.spinner-lg .spinner-ring{width:32px;height:32px;border-width:3px}.btn .spinner{margin-right:8px}.btn:disabled .spinner{opacity:.7}.modal-overlay{position:fixed;inset:0;background:var(--shadow);display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.document-detail-modal{background:var(--card);border:1px solid var(--border);border-radius:12px;width:auto;min-width:80%;max-width:80%;height:80%;display:flex;flex-direction:column;overflow:hidden}.detail-header{display:flex;flex-direction:column;flex-shrink:0;border-bottom:1px solid var(--border);background:var(--card)}.detail-header-top{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;gap:16px}.detail-title{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.detail-header-actions-right{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.detail-tabs-header{display:flex;align-items:center;gap:4px;padding:0 20px;border-top:1px solid var(--border)}.detail-tab-header{display:flex;align-items:center;gap:6px;padding:12px 16px;border:none;background:transparent;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;margin-bottom:-1px}.detail-tab-header:hover:not(:disabled){color:var(--text);background:var(--bg)}.detail-tab-header.active{color:var(--primary);border-bottom-color:var(--primary)}.detail-tab-header:disabled{opacity:.5;cursor:not-allowed}.detail-actions{display:flex;gap:8px;align-items:center;flex-wrap:nowrap}.detail-title h2{margin:0;font-size:18px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-status{padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.detail-status.completed{background:none;border:1px solid var(--border);color:var(--success)}.detail-status.processing{background:none;border:1px solid var(--border);color:var(--processing)}.detail-status.failed{background:none;border:1px solid var(--border);color:var(--danger)}.detail-status.pending,.detail-status.cancelled{background:none;border:1px solid var(--border);color:var(--muted)}.detail-close{background:var(--card);border:1px solid var(--border);color:var(--text);width:32px;height:32px;border-radius:6px;font-size:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.detail-close:hover{border-color:var(--text)}.detail-body{display:flex;flex:1;overflow:hidden;min-height:0}.detail-sidebar{width:240px;border-right:1px solid var(--border);background:var(--bg);display:flex;flex-direction:column;overflow:hidden}.detail-sidebar-header{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:16px 12px 8px;flex-shrink:0;display:flex;justify-content:space-between;align-items:center}.detail-sidebar-hint{font-size:10px;font-weight:500;color:var(--muted);opacity:.7;background:var(--card);padding:2px 6px;border-radius:4px;text-transform:none;letter-spacing:normal}.detail-sidebar-list{flex:1;overflow-y:auto;padding:0 12px 16px;display:flex;flex-direction:column;gap:4px}.detail-sidebar-item{display:flex;align-items:center;padding:10px 12px;background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;transition:all .15s ease;text-align:left;color:var(--text);font-size:14px;width:100%}.detail-sidebar-item:hover{background:var(--card);border-color:var(--border)}.detail-sidebar-item.active{background:var(--card);border-color:var(--text)}.detail-sidebar-item:disabled{opacity:.5;cursor:not-allowed}.detail-sidebar-item-content{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.detail-sidebar-item-name{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.detail-sidebar-item-status{flex-shrink:0;display:flex;align-items:center;justify-content:center}.detail-sidebar-item-status.completed{color:var(--success)}.detail-sidebar-item-status.processing{color:var(--processing)}.detail-sidebar-item-status.failed{color:var(--danger)}.detail-sidebar-item-status.pending{color:var(--muted)}.detail-sidebar-item-status.queued{color:var(--processing)}.detail-sidebar-item-status.cancelled{color:var(--muted)}.detail-sidebar-item-status .spinner{width:12px;height:12px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}.detail-content{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:20px}.detail-field{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:12px}.detail-field-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.detail-field-header-left{display:flex;align-items:center;gap:12px;flex:1}.detail-field-name{font-weight:600;font-size:14px;color:var(--text)}.detail-field-type{font-size:11px;color:var(--muted);background:var(--card);padding:3px 8px;border-radius:4px;text-transform:lowercase;border:1px solid var(--border)}.detail-field-value{font-size:14px;line-height:1.6;color:var(--text);user-select:text;-webkit-user-select:text;cursor:text}.detail-text{display:block;word-break:break-word}.detail-placeholder{color:var(--muted);font-style:italic}.detail-object{display:flex;flex-direction:column;gap:8px}.detail-object-row{display:flex;gap:12px;align-items:baseline}.detail-object-key{font-weight:600;color:var(--muted);min-width:120px}.detail-object-value{flex:1;word-break:break-word}.detail-list{margin:0;padding-left:24px;display:flex;flex-direction:column;gap:4px}.detail-list li{word-break:break-word}.detail-table-wrapper{overflow-x:auto;border-radius:6px;border:1px solid var(--border)}.detail-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--card)}.detail-table th,.detail-table td{border:1px solid var(--border);padding:10px 12px;text-align:left;vertical-align:top}.detail-table th{font-weight:600;background:var(--bg);color:var(--text)}.detail-table td{background:var(--card);word-break:break-word}.detail-empty{text-align:center;padding:40px;color:var(--muted)}.detail-empty p{margin:0}.detail-content-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;height:calc(100vh - 200px);min-height:600px}.detail-extractions{display:flex;flex-direction:column;height:100%}.detail-extractions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.detail-tab-actions{display:flex;align-items:center;gap:8px}.detail-extractions-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text)}.summary-section{margin-bottom:24px}.summary-label{display:block;font-size:14px;font-weight:500;color:var(--text);margin-bottom:8px}.summary-hint{display:block;font-size:12px;font-weight:400;color:var(--text-secondary);margin-top:4px}.summary-generation-info{margin-top:12px;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:6px}.summary-generation-info strong{display:block;margin-bottom:8px;font-size:13px;color:var(--text)}.summary-generation-info p{margin:0;font-size:13px;color:var(--text-secondary);line-height:1.5;white-space:pre-wrap}.summary-generate-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px}.summary-display{margin-top:24px;padding:16px;background:var(--bg);border:1px solid var(--border);border-radius:8px}.summary-display-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.summary-display-header h4{margin:0;font-size:16px;font-weight:600;color:var(--text)}.summary-timestamp{font-size:12px;color:var(--text-secondary)}.summary-text{color:var(--text);line-height:1.6;white-space:pre-wrap}.summary-text p{margin:0 0 12px}.summary-text p:last-child{margin-bottom:0}.summary-instructions-used{margin-top:16px;padding-top:16px;border-top:1px solid var(--border);font-size:13px;color:var(--text-secondary)}.summary-instructions-used strong{color:var(--text);margin-right:8px}.summary-generating{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:var(--text-secondary);gap:16px}.summary-generating p{margin:0;font-size:14px}.detail-extractions-content{flex:1;overflow-y:auto;padding-right:8px}.detail-document-viewer{display:flex;flex-direction:column;height:100%}.detail-document-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.detail-document-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text)}.detail-document-filename{font-size:14px;color:var(--text-muted);font-family:monospace}.detail-document-content{flex:1;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg);min-height:400px}.document-viewer{position:relative;height:100%;min-height:500px;overflow-y:auto}.document-viewer-loading,.document-viewer-error,.document-viewer-unsupported{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--text-muted)}.document-viewer-loading p,.document-viewer-error p,.document-viewer-unsupported p{margin:12px 0 0;font-size:14px}.document-pdf-viewer,.document-text-viewer{width:100%;height:100%;border:none;background:var(--bg);display:block}.document-image-viewer{width:100%;height:auto;max-height:100%;object-fit:contain;background:var(--bg);display:block}.document-viewer-error button,.document-viewer-unsupported button{margin-top:16px}.document-xml-viewer{width:100%;height:100%;overflow:auto;background:var(--bg);border:1px solid var(--border);border-radius:4px}.xml-content{margin:0;padding:16px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.4;color:var(--text);background:var(--bg);white-space:pre-wrap;word-wrap:break-word;overflow-x:auto}.xml-content code{color:inherit;background:none;padding:0;font-family:inherit;font-size:inherit}.field-modal{background:var(--card);border:1px solid var(--border);border-radius:12px;width:90%;max-width:900px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.field-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border);flex-shrink:0}.field-modal-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text)}.field-modal-close{background:var(--card);border:1px solid var(--border);color:var(--text);width:32px;height:32px;border-radius:6px;font-size:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.field-modal-close:hover{border-color:var(--text)}.field-modal-body{display:flex;flex:1;overflow:hidden;min-height:0}.field-modal-sidebar{width:240px;border-right:1px solid var(--border);background:var(--bg);display:flex;flex-direction:column;overflow:hidden}.field-modal-add-btn{margin:16px 12px 12px;padding:10px 14px;background:var(--card);color:var(--text);border:1px solid var(--text);border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px;justify-content:center;flex-shrink:0}.field-modal-add-btn:hover:not(:disabled){background:var(--muted2)}.field-modal-add-btn.active{background:var(--muted2)}.field-modal-add-btn:disabled{opacity:.5;cursor:not-allowed}.field-modal-list{flex:1;overflow-y:auto;padding:0 12px 16px;display:flex;flex-direction:column;gap:4px}.field-modal-list-header{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:8px 8px 4px;margin-bottom:4px}.field-modal-list-item{display:flex;align-items:center;padding:10px 12px;background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;transition:all .15s ease;text-align:left;color:var(--text);font-size:14px}.field-modal-list-item:hover{background:var(--card);border-color:var(--border)}.field-modal-list-item.active{background:var(--card);border-color:var(--text)}.field-modal-list-item:disabled{opacity:.5;cursor:not-allowed}.field-modal-list-item-content{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.field-modal-list-item-name{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-modal-list-item-type{font-size:14px;opacity:.7;flex-shrink:0}.field-modal-list-empty{padding:24px 12px;text-align:center;color:var(--muted)}.field-modal-list-empty p{margin:0;font-size:13px}.field-modal-list-empty-hint{margin-top:8px;font-size:12px;opacity:.7}.field-modal-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.field-modal-form{flex:1;overflow-y:auto;padding:24px}.field-modal-form-header{margin-bottom:20px}.field-modal-form-header h4{margin:0;font-size:16px;font-weight:600;color:var(--text)}.field-modal-form .form-group{margin-bottom:20px}.field-modal-form .form-group:last-child{margin-bottom:0}.field-modal-form label{display:block;margin-bottom:8px;color:var(--text);font-weight:500;font-size:14px}.field-modal-form input,.field-modal-form textarea,.field-modal-form select{width:100%}.field-modal-form textarea{min-height:100px}.field-hint{display:block;margin-top:6px;font-size:12px;color:var(--muted);line-height:1.4}.field-modal-actions{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-top:1px solid var(--border);flex-shrink:0}.field-modal-actions-left{display:flex;gap:8px}.field-modal-actions-right{display:flex;gap:12px}@media (max-width: 768px){.field-modal{max-width:95%;max-height:90vh}.field-modal-sidebar{width:200px}.field-modal-form{padding:16px}.field-modal-actions{padding:12px 16px}}.actions-menu-dropdown{background:var(--card);border:1px solid var(--border);border-radius:6px;z-index:100000;overflow:hidden;animation:slideDown .15s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:none;border:none;color:var(--text);font-size:13px;text-align:left;cursor:pointer;transition:background .15s ease}.menu-item:hover:not(:disabled){background:var(--muted2)}.menu-item:disabled{opacity:.5;cursor:not-allowed}.menu-item-danger{color:var(--text)}.menu-item-danger:hover:not(:disabled){background:var(--danger)!important}.menu-icon{font-size:14px;width:16px;display:inline-flex;align-items:center;justify-content:center}.menu-separator{height:1px;background:var(--border);margin:4px 0}.excel-table-wrapper{flex:1;overflow:hidden;position:relative;min-height:0}.excel-table-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;gap:16px;color:var(--text-secondary)}.excel-table-loading p{margin:0;font-size:14px}.excel-table-container{height:100%;overflow:auto;position:relative}.excel-table{flex:1;font-size:14px;width:max-content;min-width:100%;position:relative}.excel-thead{position:sticky;top:0;z-index:100}.excel-thead th{background:var(--card);border-bottom:2px solid var(--border);font-weight:600;color:var(--text);position:sticky;top:0;z-index:100;padding:12px 16px;font-size:14px;letter-spacing:.025em;vertical-align:middle;height:52px}.actions-col{position:sticky;left:0;background:var(--card);z-index:10;width:auto;width:5%;text-align:left;border-right:2px solid var(--border)}.excel-thead .actions-col{z-index:110}.document-col{position:sticky;left:80px;background:var(--card);z-index:10;width:5%;max-width:200px;border-right:2px solid var(--border)}.excel-thead .document-col{z-index:110}.field-col{width:auto;min-width:120px}.add-field-col{width:250px;background:#ffffff05}.excel-table th,.excel-table td{border:1px solid var(--border);padding:8px 12px;text-align:left;vertical-align:top;background:var(--card);overflow:hidden}.field-header{display:flex;align-items:center;gap:8px;justify-content:space-between;min-height:28px}.field-header.clickable{cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .2s ease;background:transparent;width:100%;border:none;text-align:left;color:inherit;font:inherit;font-size:14px;font-weight:600}.field-header.clickable:hover{background:#ffffff1a}[data-theme=light] .field-header.clickable:hover{background:#0000000d}.edit-hint{opacity:0;transition:opacity .2s ease;font-size:12px;color:var(--muted);display:inline-flex;align-items:center}.field-header.clickable:hover .edit-hint{opacity:1}.field-name{font-weight:600;color:var(--text);flex:1;user-select:text;-webkit-user-select:text;font-size:14px;line-height:1.4}.excel-thead .field-name{display:inline-block;vertical-align:middle}.document-info{display:flex;align-items:center;gap:10px;width:100%;min-width:0}.document-status{display:flex;align-items:center;justify-content:flex-start}.document-meta{flex:1;min-width:0;overflow:hidden}.document-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.filename{font-weight:500;color:var(--text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;user-select:text;-webkit-user-select:text;cursor:text}.status-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-size:14px;font-weight:700;flex-shrink:0}.status-badge .spinner{width:14px;height:14px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}.status-badge.completed{background:#28a74533;color:#28a745}.status-badge.processing{background:#ffc10733;color:#ffc107}.status-badge.failed{background:#dc354533;color:#dc3545}.status-badge.pending{background:#787d6c33;color:#6c757d}.status-badge.queued{background:#ffc10733;color:#ffc107}.status-badge.cancelled{background:#787d6c33;color:#6c757d}.field-value{position:relative;min-height:20px;padding:4px 8px;background:none;border-radius:6px;font-size:13px;word-break:break-word;color:var(--text);white-space:normal;overflow-wrap:break-word;transition:background .2s ease,box-shadow .2s ease;user-select:text;-webkit-user-select:text;cursor:text}.field-value.collapsed{max-height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-value.expanded{background:none}.field-placeholder{color:var(--muted);font-style:italic}.field-text{display:inline-block}.field-structured-object{display:flex;flex-direction:column;gap:4px}.field-structured-row{display:flex;gap:8px;align-items:baseline}.field-structured-key{font-weight:600;color:var(--muted);min-width:90px}.field-structured-value{flex:1;word-break:break-word}.field-item-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:2px}.field-table-wrapper{overflow-x:auto}.field-table{width:100%;border-collapse:collapse;font-size:12px;background:var(--card);border-radius:6px;overflow:hidden}.field-table th,.field-table td{border:1px solid var(--border);padding:6px 8px;text-align:left;vertical-align:top}.add-field-form,.field-edit-form{display:flex;flex-direction:column;gap:6px;padding:8px;background:var(--card);border:1px solid var(--border);border-radius:4px}.field-edit-actions,.add-field-actions{display:flex;gap:4px;justify-content:left}.excel-input,.excel-select{padding:4px 8px;border:1px solid var(--border);border-radius:3px;font-size:12px;background:var(--card);color:var(--text)}.excel-input:focus,.excel-select:focus{outline:none;border-color:var(--text);box-shadow:0 0 0 2px #ffffff1a}.row-actions{display:flex;gap:4px;justify-content:left}.excel-row:hover{background:#ffffff05}.excel-row.processing{background:#ffc1070d}.excel-row.completed{background:#28a7450d}.excel-row.failed{background:#dc35450d}.excel-empty{padding:40px;text-align:center;color:var(--muted);background:#ffffff05}.excel-empty-cell{text-align:center;padding:40px;color:var(--muted);background:#ffffff05}.btn-xs{padding:4px 8px;font-size:11px;line-height:1.2;display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:24px}.excel-thead .btn-link{font-size:14px;font-weight:600;padding:4px 8px;display:inline-flex;align-items:center;gap:6px;border-radius:4px}.excel-thead .btn-link:hover{background:#ffffff1a}[data-theme=light] .excel-thead .btn-link:hover{background:#0000000d}.btn-link{background:none;border:none;color:var(--text);cursor:pointer;text-decoration:none;padding:2px 4px;border-radius:3px;transition:background .2s ease;display:inline-flex;align-items:center;gap:4px}.btn-link:hover{background:#ffffff1a}.btn-link.danger{color:var(--danger);background:#dc35451a}.btn-link.danger:hover{background:#dc354533}.generation-view{display:flex;flex-direction:column;height:100%;overflow:hidden}.generation-view-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border);background:var(--card);flex-shrink:0}.generation-view-header-left{display:flex;align-items:center;gap:12px}.generation-view-selector{display:flex;align-items:center;gap:8px}.generation-view-selector label{font-size:14px;color:var(--text);font-weight:500}.generation-select{padding:6px 32px 6px 10px;font-size:14px}.generation-view-actions{display:flex;align-items:center;gap:8px}.generation-view-content{flex:1;overflow-y:auto;padding:24px}.generation-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 32px;text-align:center;color:var(--muted);gap:16px}.generation-empty svg{opacity:.3;margin-bottom:16px}.generation-empty p{margin:0;font-size:16px;font-weight:500}.generation-empty span{font-size:14px}.generation-documents-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.generation-document-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:16px;cursor:pointer;transition:all .2s;position:relative;display:flex;flex-direction:column;gap:12px;min-height:180px}.generation-document-card:hover:not(.disabled){border-color:var(--text);box-shadow:0 2px 8px var(--shadow)}.generation-document-card.disabled{opacity:.6;cursor:not-allowed}.generation-document-card.expanded .generation-document-content{max-height:none}.generation-document-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.generation-document-title{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.generation-document-name{font-weight:500;font-size:14px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.generation-document-name:hover{color:var(--primary)}.generation-document-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.generation-document-checkbox{width:24px;height:24px;border:2px solid var(--border);border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.generation-document-checkbox:hover{border-color:var(--text)}.generation-document-checkbox.checked{background:var(--text);border-color:var(--text);color:var(--bg)}.generation-document-content{flex:1;display:flex;flex-direction:column;gap:8px;max-height:120px;overflow:hidden;transition:max-height .3s ease}.generation-document-text{color:var(--text);font-size:13px;line-height:1.5}.generation-document-text p{margin:0 0 4px}.generation-document-more{color:var(--muted);font-style:italic}.generation-document-meta{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:8px;border-top:1px solid var(--border)}.generation-document-timestamp{font-size:11px;color:var(--muted)}.generation-document-empty{display:flex;align-items:center;justify-content:center;padding:32px;text-align:center;color:var(--muted);font-size:13px;flex:1}.generation-document-pending{display:flex;align-items:center;justify-content:center;gap:8px;padding:32px;color:var(--muted);font-size:13px;flex:1}.bulk-generate-modal{background:var(--card);border:1px solid var(--border);border-radius:12px;width:90%;max-width:500px;display:flex;flex-direction:column;max-height:90vh;overflow:hidden}.bulk-generate-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border)}.bulk-generate-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text)}.bulk-generate-body{padding:24px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}.bulk-generate-info{margin:0;color:var(--muted);font-size:14px}.bulk-generate-generation-info{padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:6px;font-size:14px;color:var(--text)}.bulk-generate-generation-info strong{font-weight:600;margin-right:8px}.bulk-generate-select,.bulk-generate-input{width:100%;font-size:14px}.bulk-generate-input{resize:vertical;min-height:100px}.bulk-generate-hint{display:block;margin-top:4px;font-size:12px;color:var(--muted);font-weight:400}.bulk-generate-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--border)}.btn-icon{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-icon:hover:not(:disabled){background:var(--muted2);color:var(--text)}.btn-icon:disabled{opacity:.5;cursor:not-allowed}.documents-view{display:flex;flex-direction:column;height:100%;overflow:hidden}.documents-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 32px;text-align:center;color:var(--muted);gap:16px}.documents-empty svg{opacity:.3;margin-bottom:16px}.documents-empty p{margin:0;font-size:16px;font-weight:500}.documents-empty span{font-size:14px}.documents-table-container{flex:1;overflow-y:auto;padding:24px}.documents-table{width:100%;border-collapse:collapse;background:var(--card);border-radius:8px;overflow:hidden}.documents-table thead{background:var(--bg);border-bottom:2px solid var(--border)}.documents-table th{padding:12px 16px;text-align:left;font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;-webkit-user-select:none;user-select:none}.documents-table th:hover{background:var(--muted2)}.documents-sort-header{display:flex;align-items:center;gap:8px}.documents-table tbody tr{border-bottom:1px solid var(--border);transition:background .15s ease}.documents-table tbody tr:hover{background:var(--bg)}.documents-table tbody tr.selected{background:var(--primary-light)}.documents-table td{padding:12px 16px;font-size:14px;color:var(--text)}.documents-col-actions{width:10%;text-align:left}.documents-col-name{min-width:200px}.documents-name-cell{display:flex;align-items:center;gap:8px}.documents-name{cursor:pointer;color:var(--text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.documents-name:hover{color:var(--primary);text-decoration:underline}.documents-col-extraction{width:120px;text-align:center}.documents-col-generations{width:100px;text-align:center}.documents-info-cell{display:flex;align-items:center;justify-content:center;gap:6px}.documents-info-count{font-weight:600;color:var(--text);font-size:13px}.documents-info-empty{color:var(--muted);font-size:13px}.documents-col-date{width:120px;color:var(--text-secondary);font-size:13px}.documents-actions{display:flex;align-items:center;gap:4px}.chat-view{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--bg)}.chat-view-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--card);flex-shrink:0}.chat-view-header-content{display:flex;align-items:center;gap:12px}.chat-view-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text)}.chat-view-doc-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--muted2);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:13px;cursor:pointer;transition:background .2s}.chat-view-doc-btn:hover{background:var(--muted)}.chat-clear-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s}.chat-clear-btn:hover{background:var(--muted2);color:var(--text)}.chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 32px;text-align:center;color:var(--text-secondary);height:100%}.chat-empty svg{opacity:.3;margin-bottom:16px}.chat-empty p{margin:0 0 8px;font-size:20px;font-weight:500;color:var(--text)}.chat-empty span{font-size:14px;color:var(--text-secondary);max-width:400px}.chat-message{display:flex;gap:12px;max-width:80%}.chat-message-user{align-self:flex-end;flex-direction:row-reverse}.chat-message-assistant{align-self:flex-start}.chat-message-avatar{width:32px;height:32px;border-radius:50%;background:var(--muted2);display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-message-user .chat-message-avatar{background:var(--primary);color:var(--text)}.chat-message-content{flex:1}.chat-message-text{padding:12px 30px;border-radius:12px;background:var(--card);border:1px solid var(--border);color:var(--text);font-size:14px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.chat-message-text :global(h1),.chat-message-text :global(h2),.chat-message-text :global(h3),.chat-message-text :global(h4),.chat-message-text :global(h5),.chat-message-text :global(h6){margin:16px 0 8px;font-weight:600;line-height:1.3}.chat-message-text :global(h1){font-size:20px}.chat-message-text :global(h2){font-size:18px}.chat-message-text :global(h3){font-size:16px}.chat-message-text :global(p){margin:8px 0;line-height:1.6}.chat-message-text :global(strong){font-weight:600;color:var(--text)}.chat-message-text :global(em){font-style:italic}.chat-message-text :global(ul),.chat-message-text :global(ol){margin:8px 0;padding-left:24px}.chat-message-text :global(li){margin:4px 0;line-height:1.6}.chat-message-text :global(blockquote){margin:8px 0;padding:8px 16px;border-left:3px solid var(--primary);background:var(--muted);border-radius:4px;font-style:italic}.chat-message-text :global(code){padding:2px 6px;background:var(--muted);border-radius:4px;font-family:Courier New,monospace;font-size:13px}.chat-message-text :global(pre){margin:8px 0;padding:12px;background:var(--muted);border-radius:6px;overflow-x:auto}.chat-message-text :global(pre code){padding:0;background:transparent}.chat-message-text :global(hr){margin:16px 0;border:none;border-top:1px solid var(--border)}.chat-message-text :global(a){color:var(--primary);text-decoration:none}.chat-message-text :global(a:hover){text-decoration:underline}.chat-message-text :global(table){width:100%;border-collapse:collapse;margin:8px 0}.chat-message-text :global(th),.chat-message-text :global(td){padding:8px 12px;border:1px solid var(--border);text-align:left}.chat-message-text :global(th){background:var(--muted);font-weight:600}.chat-message-user .chat-message-text{background:var(--primary);border:1px solid var(--border);color:var(--text)}.chat-message-sources{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border);flex-wrap:wrap}.chat-sources-label{font-size:12px;font-weight:500;color:var(--text-secondary)}.chat-source-link{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--muted2);border:1px solid var(--border);border-radius:4px;font-size:12px;color:var(--text);cursor:pointer;transition:all .2s}.chat-source-link:hover{background:var(--muted);border-color:var(--primary);color:var(--primary)}.chat-streaming-indicator{opacity:.6;font-style:italic}.chat-error{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--error-bg);color:var(--error);border-radius:6px;margin-top:8px}.chat-input-container{display:flex;align-items:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border);background:var(--card);flex-shrink:0}.chat-input{flex:1;padding:12px 16px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-size:14px;font-family:inherit;resize:none;min-height:44px;max-height:120px;transition:border-color .2s}.chat-input:focus{outline:none;border-color:var(--primary)}.chat-input:disabled{opacity:.6;cursor:not-allowed}.chat-send-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--primary);color:var(--text);border:none;border-radius:8px;cursor:pointer;transition:background .2s;flex-shrink:0}.chat-send-btn:hover:not(:disabled){background:var(--primary-hover)}.chat-send-btn:disabled{opacity:.6;cursor:not-allowed}.search-view{display:flex;flex-direction:column;height:100%;overflow:hidden}.search-view-header{padding:20px;border-bottom:1px solid var(--border);background:var(--card);flex-shrink:0}.search-input-container{display:flex;align-items:center;gap:12px;max-width:800px;position:relative}.search-input{flex:1;padding:10px 16px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:14px;transition:border-color .2s}.search-input:focus{outline:none;border-color:var(--primary)}.search-input:disabled{opacity:.6;cursor:not-allowed}.search-loading-indicator{display:flex;align-items:center;padding:0 8px}.search-loading-indicator .spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .6s linear infinite}.search-view-content{flex:1;overflow-y:auto;padding:20px}.search-error{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--error-bg);color:var(--error);border-radius:6px;margin-bottom:20px}.search-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 32px;text-align:center;color:var(--text-secondary);height:100%}.search-empty svg{opacity:.3;margin-bottom:16px}.search-empty p{margin:0 0 8px;font-size:20px;font-weight:500;color:var(--text)}.search-empty span{font-size:14px;color:var(--text-secondary)}.search-results{display:flex;flex-direction:column;gap:16px}.search-results-header{padding:12px 0;font-size:14px;font-weight:500;color:var(--text-secondary);border-bottom:1px solid var(--border);margin-bottom:8px}.search-result-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:20px;transition:box-shadow .2s}.search-result-card:hover{box-shadow:0 2px 8px var(--shadow)}.search-result-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.search-result-filename{margin:0;font-size:18px;font-weight:600;color:var(--text)}.search-result-view-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--muted2);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:13px;cursor:pointer;transition:background .2s}.search-result-view-btn:hover{background:var(--muted)}.search-result-preview{margin-bottom:16px;padding:12px;background:var(--muted2);border-radius:6px}.search-result-preview strong{display:block;margin-bottom:8px;font-size:13px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.search-result-preview-fields{display:flex;flex-direction:column;gap:6px}.search-result-preview-field{display:flex;gap:8px;font-size:13px}.preview-field-name{font-weight:500;color:var(--text);min-width:120px}.preview-field-value{color:var(--text-secondary);flex:1}.search-result-matches{display:flex;flex-direction:column;gap:12px}.search-result-matches strong{display:block;margin-bottom:8px;font-size:13px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.search-result-match{padding:12px;background:var(--bg);border-left:3px solid var(--primary);border-radius:4px}.search-result-match-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.search-result-match-type{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--text-secondary)}.search-result-match-score{font-size:12px;color:var(--text-secondary)}.search-result-match-snippet{margin:0;font-size:14px;color:var(--text);line-height:1.5}.generation-modal{background:var(--card);border:1px solid var(--border);border-radius:12px;width:90%;max-width:900px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.generation-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border);flex-shrink:0}.generation-modal-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text)}.generation-modal-close{background:var(--card);border:1px solid var(--border);color:var(--text);width:32px;height:32px;border-radius:6px;font-size:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.generation-modal-close:hover{border-color:var(--text)}.generation-modal-body{display:flex;flex:1;overflow:hidden}.generation-modal-sidebar{width:240px;border-right:1px solid var(--border);background:var(--bg);display:flex;flex-direction:column;overflow:hidden}.generation-modal-add-btn{margin:16px 12px 12px;padding:10px 14px;background:var(--card);color:var(--text);border:1px solid var(--text);border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px;justify-content:center;flex-shrink:0}.generation-modal-add-btn:hover:not(:disabled){background:var(--muted2)}.generation-modal-add-btn.active{background:var(--muted2)}.generation-modal-add-btn:disabled{opacity:.5;cursor:not-allowed}.generation-modal-list{flex:1;overflow-y:auto;padding:0 12px 16px;display:flex;flex-direction:column;gap:4px}.generation-modal-list-header{padding:8px 16px;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--muted);letter-spacing:.5px}.generation-modal-list-item{display:flex;align-items:center;padding:10px 12px;background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;transition:all .15s ease;text-align:left;color:var(--text);font-size:14px}.generation-modal-list-item:hover:not(:disabled){background:var(--card);border-color:var(--border)}.generation-modal-list-item.active{background:var(--card);border-color:var(--text)}.generation-modal-list-item:disabled{opacity:.5;cursor:not-allowed}.generation-modal-list-item-content{display:flex;flex-direction:column;gap:.25rem}.generation-modal-list-item-name{font-weight:500;font-size:14px}.generation-modal-list-empty{padding:32px 16px;text-align:center;color:var(--muted)}.generation-modal-list-empty p{margin:8px 0;font-size:14px}.generation-modal-list-empty-hint{font-size:12px;color:var(--muted)}.generation-modal-content{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:24px;min-height:0}.generation-modal-form{flex:1}.generation-modal-form-header{margin-bottom:24px}.generation-modal-form-header h4{margin:0;font-size:16px;font-weight:600;color:var(--text)}.generation-modal-form .form-group{margin-bottom:20px}.generation-modal-form .form-group:last-child{margin-bottom:0}.generation-modal-form label{display:block;margin-bottom:8px;color:var(--text);font-weight:500;font-size:14px}.generation-modal-form input,.generation-modal-form textarea,.generation-modal-form select{width:100%}.generation-modal-form textarea{min-height:120px}.generation-hint{display:block;margin-top:6px;font-size:12px;color:var(--muted)}.generation-modal-actions{display:flex;justify-content:space-between;align-items:center;padding-top:20px;border-top:1px solid var(--border);margin-top:auto;flex-shrink:0}.generation-modal-actions-left,.generation-modal-actions-right{display:flex;gap:8px}.modal-overlay{position:fixed;inset:0;background:var(--shadow);display:flex;align-items:center;justify-content:center;z-index:1000}.excel-results{background:var(--bg);border:1px solid var(--border);border-radius:0;box-shadow:0 4px 16px var(--shadow);overflow:hidden;display:flex;flex-direction:column;flex:1;min-height:0}.welcome-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:48px}.welcome-state h2{margin:0 0 16px;font-size:24px;font-weight:600;color:var(--text)}.welcome-state p{margin:0;font-size:16px;color:var(--muted)}.project-view-switcher{display:flex;align-items:center;gap:4px;padding:0 20px;border-bottom:1px solid var(--border);background:var(--card);flex-shrink:0}.project-view-tab{display:flex;align-items:center;gap:6px;padding:12px 16px;border:none;background:transparent;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;margin-bottom:-1px}.project-view-tab:hover:not(:disabled){color:var(--text);background:var(--bg)}.project-view-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.project-view-tab:disabled{opacity:.5;cursor:not-allowed}.project-view-content{flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0}.project-view-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 32px;text-align:center;color:var(--text-secondary);flex:1}.project-view-placeholder svg{opacity:.3;margin-bottom:16px}.project-view-placeholder h3{margin:0 0 8px;font-size:20px;font-weight:600;color:var(--text)}.project-view-placeholder p{margin:0;font-size:14px}.job-history-table{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:24px;margin-top:32px}.table-container{overflow-x:auto}.job-table{width:100%;border-collapse:collapse;font-size:14px}.job-table th{background:var(--bg-secondary);color:var(--text);font-weight:600;padding:12px 16px;text-align:left;border-bottom:2px solid var(--border);font-size:13px;text-transform:uppercase;letter-spacing:.5px}.job-table td{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--text)}.job-table tr:hover{background:var(--bg-secondary)}.job-status{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600;text-transform:capitalize}.job-status-completed{background:#d4edda;color:#155724}.job-status-failed{background:#f8d7da;color:#721c24}.job-status-processing{background:#d1ecf1;color:#0c5460}.job-status-queued{background:#fff3cd;color:#856404}.job-status-cancelled{background:var(--warning);color:#721c24}.job-type{font-weight:600;color:var(--primary);text-transform:uppercase;font-size:12px}.job-document,.job-duration{font-family:monospace;font-size:12px;color:var(--text-muted)}.job-cost{font-weight:600;color:var(--text);font-family:monospace}.job-time{font-size:12px;color:var(--text-muted);white-space:nowrap}.table-empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-muted);font-size:16px}@media (max-width: 768px){.job-history-table{padding:16px}.job-table th,.job-table td{padding:8px 12px;font-size:12px}.job-table th{font-size:11px}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 20px 40px #00000026;width:100%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;border-bottom:1px solid var(--border);background:var(--bg)}.modal-header h2{margin:0;color:var(--text);font-size:1.25rem;font-weight:600}.modal-close{background:none;border:none;color:var(--muted);cursor:pointer;padding:.5rem;border-radius:6px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.modal-close:hover:not(:disabled){background:var(--muted2);color:var(--text)}.modal-close:disabled{opacity:.5;cursor:not-allowed}.modal-body{padding:2rem;flex:1;overflow-y:auto}.modal-description{margin:0 0 1.5rem;color:var(--muted);font-size:.9rem;line-height:1.5}.form-group{margin-bottom:0}.form-group label{display:block;margin-bottom:.5rem;color:var(--text);font-weight:500;font-size:.9rem}.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-size:.9rem;font-family:inherit;resize:vertical;min-height:100px;transition:all .2s ease}.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #667eea1a}.form-group textarea:disabled{opacity:.6;cursor:not-allowed}.modal-footer{display:flex;gap:1rem;padding:1.5rem 2rem;border-top:1px solid var(--border);background:var(--bg);justify-content:flex-end}.btn{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;min-width:120px;justify-content:center}@media (max-width: 768px){.modal-overlay{padding:.5rem}.modal-content{max-height:95vh}.modal-header,.modal-body,.modal-footer{padding:1rem 1.5rem}.modal-footer{flex-direction:column}.btn{width:100%}}.usage-metrics{margin-bottom:32px}.usage-metrics h2{font-size:1.5rem;font-weight:600;color:var(--text);margin:0 0 20px}.metrics-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.metric-group-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:24px;transition:all .2s ease}.metric-group-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px var(--shadow)}.card-header svg{font-size:24px;color:var(--primary)}.card-header h3{font-size:1.1rem;font-weight:600;color:var(--text);margin:0}.card-content{display:flex;flex-direction:column;gap:12px}.metric-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.metric-row.highlight{background:var(--bg-secondary);border-radius:8px;padding:12px 16px;margin:0 -16px}.metric-label{font-size:14px;font-weight:500;color:var(--muted)}.metric-value{font-size:16px;font-weight:600;color:var(--text)}.metric-value.success{color:var(--success)}.metric-value.error{color:var(--danger)}.metric-value.primary{color:var(--primary);font-weight:700}.credits-actions{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.btn{padding:.5rem 1rem;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed}.project-usage{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:24px;margin-bottom:24px}.project-usage h2{margin:0 0 20px;color:var(--text);font-size:20px;font-weight:600}.loading-state{display:flex;align-items:center;justify-content:center;gap:12px;padding:40px;color:var(--muted);font-size:14px}.usage-table-container{overflow-x:auto}.usage-table{width:100%;border-collapse:collapse;font-size:14px}.usage-table th{background:var(--bg-secondary);color:var(--text);font-weight:600;padding:12px 16px;text-align:left;border-bottom:1px solid var(--border);font-size:12px;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.usage-table td{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--text)}.usage-table tr:hover{background:var(--bg-secondary)}.project-name{font-weight:600;color:var(--text)}.stat-value{font-weight:600;text-align:left}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s ease}.sortable:hover,.sortable.active{color:var(--primary)}.usage-page{padding:24px;max-width:100%;margin:0;overflow:auto;background:var(--bg);min-height:100vh}.card.error{background:var(--danger);border:1px solid var(--text);border-radius:8px;padding:1rem;margin-bottom:1rem;color:var(--text)}.error-content{display:flex;align-items:center;justify-content:space-between;gap:1rem}.error-content p{margin:0;flex:1}.error-close{background:none;border:none;color:var(--error);cursor:pointer;padding:.25rem;border-radius:4px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.error-close:hover{background:var(--error);color:var(--text)}.page-header{margin-bottom:24px}.page-header-content{display:flex;justify-content:space-between;align-items:center}.header-actions{display:flex;align-items:center;gap:16px}.view-toggle{display:flex;background:var(--bg-secondary);border-radius:8px;padding:4px;border:1px solid var(--border)}.toggle-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border:none;background:transparent;color:var(--text);font-size:14px;font-weight:500;border-radius:6px;cursor:pointer;transition:all .2s ease}.toggle-btn:hover,.toggle-btn.active{background:var(--bg);color:var(--text)}.page-header h1{margin:0;color:var(--text);font-size:24px;font-weight:600}.usage-icon{font-size:28px;width:50px;height:50px;display:flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--border);color:var(--text);font-weight:400;flex-shrink:0}.usage-content{flex:1;min-width:0}.usage-label{color:var(--muted);font-size:12px;font-weight:600;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.usage-value{color:var(--text);font-size:24px;font-weight:600}.loading-state{display:flex;align-items:center;justify-content:center;gap:12px;padding:48px;color:var(--text-muted);font-size:16px}.loading-state .icon{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.account-page{padding:24px;margin:0 auto}.account-header{display:flex;align-items:center;gap:12px;margin-bottom:32px}.account-header h1{font-size:2rem;font-weight:700;color:var(--text);margin:0}.account-content{display:flex;flex-direction:column;gap:24px;max-width:600px;margin:0 auto}.account-content .card{display:flex;flex-direction:column;min-height:auto}.card-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border)}.card-header h2{font-size:1.25rem;font-weight:600;color:var(--text);margin:0}.profile-info{display:flex;flex-direction:column;gap:16px}.info-item{display:flex;flex-direction:column;gap:6px}.info-item label{font-size:12px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.info-value{font-size:14px;color:var(--text);font-family:SF Mono,Monaco,Menlo,Ubuntu Mono,monospace;background:var(--bg);padding:10px 12px;border-radius:6px;border:1px solid var(--border);word-break:break-all}.account-actions{display:flex;flex-direction:column;gap:12px}.account-actions button{display:flex;align-items:center;gap:8px;padding:12px 16px;font-size:14px;width:100%;justify-content:center}@media (max-width: 768px){.account-content{max-width:100%}.account-page{padding:16px}}.assistant-module-minimized{position:fixed;bottom:24px;right:24px;z-index:1000}.assistant-module-toggle-btn{width:56px;height:56px;border-radius:50%;background:var(--primary);color:var(--text);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px var(--shadow);transition:all .2s;position:relative}.assistant-module-toggle-btn:hover{transform:scale(1.05);box-shadow:0 6px 16px var(--shadow)}.assistant-module-badge{position:absolute;top:-4px;right:-4px;background:var(--error);color:#fff;border-radius:10px;min-width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;padding:0 6px}.assistant-module-expanded{position:fixed;bottom:24px;right:24px;width:420px;height:600px;max-height:calc(100vh - 48px);background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px var(--shadow);display:flex;flex-direction:column;overflow:hidden;z-index:1000}.assistant-module-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--card);flex-shrink:0}.assistant-module-tabs{display:flex;gap:4px;flex:1}.assistant-module-tab{display:flex;align-items:center;gap:6px;padding:6px 12px;background:transparent;color:var(--text-secondary);border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.assistant-module-tab:hover{background:var(--muted2);color:var(--text)}.assistant-module-tab.active{background:var(--muted2);color:var(--text);font-weight:600}.assistant-module-header-actions{display:flex;align-items:center;gap:8px}.assistant-clear-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s}.assistant-clear-btn:hover{background:var(--muted2);color:var(--text)}.assistant-module-minimize-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all .2s}.assistant-module-minimize-btn:hover{background:var(--muted2);color:var(--text)}.assistant-chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px;background:var(--bg)}.assistant-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;text-align:center;color:var(--text-secondary);height:100%}.assistant-empty svg{opacity:.3;margin-bottom:16px}.assistant-empty p{margin:0 0 8px;font-size:18px;font-weight:500;color:var(--text)}.assistant-empty span{font-size:13px;color:var(--text-secondary);max-width:300px}.assistant-message{display:flex;gap:12px;max-width:85%}.assistant-message-user{align-self:flex-end;flex-direction:row-reverse}.assistant-message-assistant{align-self:flex-start}.assistant-message-avatar{width:28px;height:28px;border-radius:50%;background:var(--muted2);display:flex;align-items:center;justify-content:center;flex-shrink:0}.assistant-message-user .assistant-message-avatar{background:var(--primary);color:var(--text)}.assistant-message-content{flex:1}.assistant-message-text{padding:10px 16px;border-radius:12px;background:var(--card);border:1px solid var(--border);color:var(--text);font-size:13px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.assistant-message-text :global(h1),.assistant-message-text :global(h2),.assistant-message-text :global(h3),.assistant-message-text :global(h4),.assistant-message-text :global(h5),.assistant-message-text :global(h6){margin:12px 0 6px;font-weight:600;line-height:1.3}.assistant-message-text :global(h1){font-size:18px}.assistant-message-text :global(h2){font-size:16px}.assistant-message-text :global(h3){font-size:15px}.assistant-message-text :global(p){margin:6px 0;line-height:1.5}.assistant-message-text :global(strong){font-weight:600;color:var(--text)}.assistant-message-text :global(em){font-style:italic}.assistant-message-text :global(ul),.assistant-message-text :global(ol){margin:6px 0;padding-left:20px}.assistant-message-text :global(li){margin:3px 0;line-height:1.5}.assistant-message-text :global(blockquote){margin:6px 0;padding:6px 12px;border-left:3px solid var(--primary);background:var(--muted);border-radius:4px;font-style:italic}.assistant-message-text :global(code){padding:2px 4px;background:var(--muted);border-radius:3px;font-family:Courier New,monospace;font-size:12px}.assistant-message-text :global(pre){margin:6px 0;padding:10px;background:var(--muted);border-radius:6px;overflow-x:auto}.assistant-message-text :global(pre code){padding:0;background:transparent}.assistant-message-user .assistant-message-text{background:var(--primary);border:1px solid var(--border);color:var(--text)}.assistant-message-sources{display:flex;align-items:center;gap:6px;margin-top:6px;padding-top:6px;border-top:1px solid var(--border);flex-wrap:wrap}.assistant-sources-label{font-size:11px;font-weight:500;color:var(--text-secondary)}.assistant-source-link{display:flex;align-items:center;gap:4px;padding:3px 6px;background:var(--muted2);border:1px solid var(--border);border-radius:4px;font-size:11px;color:var(--text);cursor:pointer;transition:all .2s}.assistant-source-link:hover{background:var(--muted);border-color:var(--primary);color:var(--primary)}.assistant-source-project{font-size:10px;opacity:.7}.assistant-streaming-indicator{opacity:.6;font-style:italic}.assistant-chat-input-container{display:flex;align-items:flex-end;gap:10px;padding:12px 16px;border-top:1px solid var(--border);background:var(--card);flex-shrink:0}.assistant-chat-input{flex:1;padding:10px 14px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-size:13px;font-family:inherit;resize:none;min-height:40px;max-height:100px;transition:border-color .2s}.assistant-chat-input:focus{outline:none;border-color:var(--primary)}.assistant-chat-input:disabled{opacity:.6;cursor:not-allowed}.assistant-chat-send-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--primary);color:var(--text);border:none;border-radius:8px;cursor:pointer;transition:background .2s;flex-shrink:0}.assistant-chat-send-btn:hover:not(:disabled){background:var(--primary-hover)}.assistant-chat-send-btn:disabled{opacity:.6;cursor:not-allowed}.assistant-search-container{display:flex;flex-direction:column;flex:1;overflow:hidden;background:var(--bg)}.assistant-search-input-container{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--card);flex-shrink:0}.assistant-search-input{flex:1;border:none;background:transparent;color:var(--text);font-size:13px;outline:none}.assistant-search-input::placeholder{color:var(--text-secondary)}.assistant-search-loading{display:flex;align-items:center;padding:0 4px}.assistant-search-loading .spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.assistant-search-clear{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:4px;transition:all .2s}.assistant-search-clear:hover{background:var(--muted2);color:var(--text)}.assistant-search-results{flex:1;overflow-y:auto;display:flex;flex-direction:column}.assistant-search-results-list{display:flex;flex-direction:column}.assistant-search-results-header{padding:12px 16px;font-size:12px;font-weight:500;color:var(--text-secondary);border-bottom:1px solid var(--border);background:var(--muted2);text-transform:uppercase;letter-spacing:.5px}.assistant-search-result-item{padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}.assistant-search-result-item:hover{background:var(--muted2)}.assistant-search-result-item:last-child{border-bottom:none}.assistant-search-result-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.assistant-search-result-title{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.assistant-search-result-filename{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assistant-search-result-project{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.assistant-search-result-snippet{font-size:13px;color:var(--text-secondary);line-height:1.4;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.assistant-search-result-view-btn{padding:4px 8px;background:var(--muted2);color:var(--text);border:1px solid var(--border);border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s}.assistant-search-result-view-btn:hover{background:var(--muted);border-color:var(--primary);color:var(--primary)}.assistant-error{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--error-bg);color:var(--error);border-radius:6px;margin:12px 16px;font-size:12px}.credit-alert{position:fixed;top:20px;right:20px;width:360px;background:var(--card);border:1px solid var(--danger);border-radius:12px;padding:16px;box-shadow:0 8px 32px #f443,0 4px 16px var(--shadow);z-index:10000;display:flex;gap:12px;transition:transform .3s ease,opacity .3s ease}.credit-alert--visible{transform:translate(0);opacity:1;animation:slideInRight .3s ease}.credit-alert--hidden{transform:translate(100%);opacity:0;pointer-events:none}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.credit-alert__icon{flex-shrink:0;width:40px;height:40px;background:#ff444426;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--danger)}.credit-alert__content{flex:1;min-width:0}.credit-alert__title{font-size:15px;font-weight:600;color:var(--danger);margin-bottom:4px}.credit-alert__message{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:12px}.credit-alert__message strong{color:var(--text);font-weight:600}.credit-alert__actions{display:flex;gap:8px}.credit-alert__btn{padding:8px 14px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.credit-alert__btn--primary{background:var(--danger);color:#fff}.credit-alert__btn--primary:hover{background:#f66}.credit-alert__btn--secondary{background:transparent;border:1px solid var(--border);color:var(--muted)}.credit-alert__btn--secondary:hover{background:var(--muted2);border-color:var(--muted);color:var(--text)}.credit-alert__close{position:absolute;top:10px;right:10px;background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.credit-alert__close:hover{background:var(--muted2);color:var(--text)}@media (max-width: 480px){.credit-alert{left:16px;right:16px;width:auto}}
