.code-table-uploader[data-v-8bdb7bb9]{display:flex;flex-direction:column;gap:var(--spacing-lg)}.builtin-selector[data-v-8bdb7bb9]{border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);background:var(--color-bg-secondary)}.builtin-label[data-v-8bdb7bb9]{display:block;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.builtin-content[data-v-8bdb7bb9]{display:flex;flex-direction:column;gap:var(--spacing-md)}.builtin-select[data-v-8bdb7bb9]{padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:var(--font-size-base);min-height:44px;font-family:inherit}.builtin-select[data-v-8bdb7bb9]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.builtin-select[data-v-8bdb7bb9]:disabled{opacity:.6;cursor:not-allowed}.load-builtin-btn[data-v-8bdb7bb9]{align-self:flex-start}.divider[data-v-8bdb7bb9]{position:relative;text-align:center;margin:var(--spacing-md) 0}.divider[data-v-8bdb7bb9]:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--color-border)}.divider-text[data-v-8bdb7bb9]{background:var(--color-bg-primary);padding:0 var(--spacing-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);position:relative;z-index:1}.format-selector[data-v-8bdb7bb9]{display:flex;flex-direction:column;gap:var(--spacing-md)}.format-label[data-v-8bdb7bb9]{font-weight:600;color:var(--color-text-primary)}.format-options[data-v-8bdb7bb9]{display:flex;gap:var(--spacing-lg);flex-wrap:wrap}.format-option[data-v-8bdb7bb9]{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;padding:var(--spacing-sm);border-radius:var(--radius-md);transition:background-color .2s ease-in-out}.format-option[data-v-8bdb7bb9]:hover{background-color:var(--color-bg-tertiary)}.format-option input[type=radio][data-v-8bdb7bb9]{margin:0}.format-text[data-v-8bdb7bb9]{font-weight:500;color:var(--color-text-primary)}.format-example[data-v-8bdb7bb9]{font-size:.8rem;color:var(--color-text-tertiary);font-family:var(--font-mono)}.upload-area[data-v-8bdb7bb9]{border:2px dashed var(--color-border-primary);border-radius:var(--radius-lg);padding:var(--spacing-2xl);text-align:center;cursor:pointer;transition:all .2s ease-in-out;background-color:var(--color-bg-secondary)}.upload-area[data-v-8bdb7bb9]:hover{border-color:var(--color-primary);background-color:var(--color-primary-light)}.upload-area.drag-over[data-v-8bdb7bb9]{border-color:var(--color-primary);background-color:var(--color-primary-light);transform:scale(1.02)}.upload-area.has-file[data-v-8bdb7bb9]{border-color:var(--color-success);background-color:var(--color-bg-primary)}.upload-area.uploading[data-v-8bdb7bb9]{border-color:var(--color-primary);cursor:not-allowed}.upload-content[data-v-8bdb7bb9]{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.upload-icon[data-v-8bdb7bb9]{font-size:3rem;margin-bottom:var(--spacing-md)}.upload-title[data-v-8bdb7bb9]{font-size:1.25rem;font-weight:600;color:var(--color-text-primary)}.upload-subtitle[data-v-8bdb7bb9]{color:var(--color-text-secondary)}.upload-note[data-v-8bdb7bb9]{font-size:.875rem;color:var(--color-text-tertiary);max-width:400px}.file-selected[data-v-8bdb7bb9]{display:flex;align-items:center;gap:var(--spacing-md);background-color:var(--color-bg-tertiary);padding:var(--spacing-lg);border-radius:var(--radius-md);width:100%;max-width:400px}.file-icon[data-v-8bdb7bb9]{font-size:2rem}.file-info[data-v-8bdb7bb9]{flex:1;text-align:left}.file-name[data-v-8bdb7bb9]{font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.file-size[data-v-8bdb7bb9]{font-size:.875rem;color:var(--color-text-secondary)}.remove-file[data-v-8bdb7bb9]{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;font-size:1.2rem}.uploading-state[data-v-8bdb7bb9]{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.spinner[data-v-8bdb7bb9]{width:40px;height:40px;border:4px solid var(--color-border-primary);border-top:4px solid var(--color-primary);border-radius:50%;animation:spin-8bdb7bb9 1s linear infinite}@keyframes spin-8bdb7bb9{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.upload-actions[data-v-8bdb7bb9]{display:flex;gap:var(--spacing-md);justify-content:center;flex-wrap:wrap}.upload-btn[data-v-8bdb7bb9]{min-width:120px}.preview-section[data-v-8bdb7bb9]{background-color:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-lg)}.preview-title[data-v-8bdb7bb9]{font-size:1.1rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.preview-content[data-v-8bdb7bb9]{font-family:var(--font-mono);font-size:.875rem}.preview-line[data-v-8bdb7bb9]{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xs) 0;border-bottom:1px solid var(--color-border-primary)}.preview-line[data-v-8bdb7bb9]:last-child{border-bottom:none}.preview-line.invalid[data-v-8bdb7bb9]{opacity:.6}.line-number[data-v-8bdb7bb9]{width:30px;color:var(--color-text-tertiary);font-size:.8rem}.line-content[data-v-8bdb7bb9]{flex:1;color:var(--color-text-secondary)}.line-parsed[data-v-8bdb7bb9]{color:var(--color-success);font-weight:500}.line-error[data-v-8bdb7bb9]{color:var(--color-error);font-weight:500}@media (max-width: 768px){.format-options[data-v-8bdb7bb9]{flex-direction:column;gap:var(--spacing-sm)}.upload-area[data-v-8bdb7bb9]{padding:var(--spacing-xl)}.upload-actions[data-v-8bdb7bb9]{flex-direction:column}.upload-btn[data-v-8bdb7bb9]{width:100%}}.key-button[data-v-91a8d1dd]{position:relative;display:flex;align-items:center;justify-content:center;border:2px solid var(--heatmap-key-border);border-radius:var(--radius-md);background-color:var(--heatmap-key-bg);color:var(--heatmap-key-text);cursor:pointer;transition:all var(--transition-base);-webkit-user-select:none;user-select:none;overflow:hidden;font-family:var(--font-mono)}.key-button[data-v-91a8d1dd]:hover{border-color:var(--heatmap-key-active);transform:translateY(-2px);box-shadow:var(--shadow-md);z-index:10}.key-button.key-active[data-v-91a8d1dd]{border-color:var(--heatmap-key-active);box-shadow:var(--shadow-lg)}.key-content[data-v-91a8d1dd]{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:2px}.key-label[data-v-91a8d1dd]{font-size:.875rem;font-weight:600;color:var(--color-text-primary);text-transform:uppercase;font-family:var(--font-mono)}.key-value[data-v-91a8d1dd]{font-size:.75rem;font-weight:500;color:var(--color-text-secondary);font-family:var(--font-mono);line-height:1}.key-heatmap-overlay[data-v-91a8d1dd]{position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;border-radius:calc(var(--radius-md) - 2px);transition:all .3s ease}.key-button.mode-frequency .key-heatmap-overlay[data-v-91a8d1dd]{background-color:rgba(59,130,246,calc(var(--intensity, 0) * .8 + .1))}[data-theme=dark] .key-button.mode-frequency .key-heatmap-overlay[data-v-91a8d1dd]{background-color:rgba(0,188,212,calc(var(--intensity, 0) * .8 + .1))}.key-button.mode-load .key-heatmap-overlay[data-v-91a8d1dd]{background-color:rgba(59,130,246,calc(var(--intensity, 0) * .8 + .1))}[data-theme=dark] .key-button.mode-load .key-heatmap-overlay[data-v-91a8d1dd]{background-color:rgba(0,188,212,calc(var(--intensity, 0) * .8 + .1))}.key-button.mode-finger .key-heatmap-overlay[data-v-91a8d1dd]{background-color:rgba(34,197,94,calc(var(--intensity, 0) * .8 + .1))}.key-button.key-space[data-v-91a8d1dd]{width:200px}.key-button.key-tab[data-v-91a8d1dd]{width:75px}.key-button.key-caps[data-v-91a8d1dd]{width:90px}.key-button.key-shift[data-v-91a8d1dd]{width:110px}.key-button.key-ctrl[data-v-91a8d1dd],.key-button.key-alt[data-v-91a8d1dd],.key-button.key-cmd[data-v-91a8d1dd]{width:70px}.key-button.key-1[data-v-91a8d1dd],.key-button.key-2[data-v-91a8d1dd],.key-button.key-3[data-v-91a8d1dd],.key-button.key-4[data-v-91a8d1dd],.key-button.key-5[data-v-91a8d1dd],.key-button.key-6[data-v-91a8d1dd],.key-button.key-7[data-v-91a8d1dd],.key-button.key-8[data-v-91a8d1dd],.key-button.key-9[data-v-91a8d1dd],.key-button.key-0[data-v-91a8d1dd],.key-button.key-semicolon[data-v-91a8d1dd],.key-button.key-comma[data-v-91a8d1dd],.key-button.key-period[data-v-91a8d1dd],.key-button.key-slash[data-v-91a8d1dd]{background-color:var(--color-bg-tertiary)}@media (max-width: 768px){.key-button[data-v-91a8d1dd]{border-width:1px}.key-label[data-v-91a8d1dd]{font-size:.8rem}.key-value[data-v-91a8d1dd]{font-size:.7rem}}@keyframes keyPress-91a8d1dd{0%{transform:scale(1)}50%{transform:scale(.95)}to{transform:scale(1)}}.key-button[data-v-91a8d1dd]:active{animation:keyPress-91a8d1dd .1s ease-in-out}.key-button[data-v-91a8d1dd]:focus{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-contrast: high){.key-button[data-v-91a8d1dd]{border-width:3px}.key-label[data-v-91a8d1dd]{font-weight:700}}.keyboard-heatmap[data-v-3f86e79b]{width:100%;max-width:1200px;margin:0 auto;padding:var(--spacing-lg)}.analysis-placeholder[data-v-3f86e79b]{text-align:center;padding:var(--spacing-xxl);background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);color:var(--color-text-secondary);box-shadow:0 4px 6px -1px #0000001a}.placeholder-icon[data-v-3f86e79b]{font-size:4rem;margin-bottom:var(--spacing-lg);opacity:.6}.placeholder-title[data-v-3f86e79b]{font-size:1.5rem;font-weight:600;margin-bottom:var(--spacing-sm);color:var(--color-text-primary)}.placeholder-subtitle[data-v-3f86e79b]{font-size:1rem;opacity:.8}.module-container[data-v-3f86e79b]{display:flex;flex-direction:column;gap:var(--spacing-lg);width:100%}.global-controls[data-v-3f86e79b]{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);box-shadow:0 2px 4px #0000001a;border:1px solid var(--color-border-primary);margin-bottom:var(--spacing-md)}.controls-left[data-v-3f86e79b]{flex:1}.page-title[data-v-3f86e79b]{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);margin:0}.controls-right[data-v-3f86e79b]{flex-shrink:0}.global-toggle-btn[data-v-3f86e79b]{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.global-toggle-btn[data-v-3f86e79b]:hover{background-color:var(--color-primary-dark);transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.global-toggle-btn[data-v-3f86e79b]:active{transform:translateY(0);box-shadow:0 2px 4px #0000001a}.btn-icon[data-v-3f86e79b]{font-size:1rem}.btn-text[data-v-3f86e79b]{font-size:.9rem}.module-card[data-v-3f86e79b]{background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;border:1px solid var(--color-border-primary);overflow:hidden;transition:all .3s ease;width:100%}.module-card[data-v-3f86e79b]:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;transform:translateY(-2px)}.module-header[data-v-3f86e79b]{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);background-color:var(--color-bg-primary);border-bottom:1px solid var(--color-border-primary)}.module-title[data-v-3f86e79b]{font-size:1.2rem;font-weight:600;color:var(--color-text-primary);margin:0}.toggle-button[data-v-3f86e79b]{background:none;border:none;cursor:pointer;padding:var(--spacing-sm);border-radius:var(--radius-md);transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:32px;min-height:32px}.toggle-button[data-v-3f86e79b]:hover{background-color:var(--color-bg-secondary)}.toggle-icon[data-v-3f86e79b]{font-size:.9rem;color:var(--color-text-secondary);transition:transform .3s ease;transform-origin:center}.toggle-icon.collapsed[data-v-3f86e79b]{transform:rotate(-90deg)}.module-content[data-v-3f86e79b]{padding:var(--spacing-lg);animation:fadeIn-3f86e79b .3s ease}@keyframes fadeIn-3f86e79b{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.keyboard-wrapper[data-v-3f86e79b]{display:flex;justify-content:center;overflow-x:auto;padding:var(--spacing-md) 0}.keyboard-layout[data-v-3f86e79b]{background-color:var(--color-bg-primary);border-radius:var(--radius-md);padding:var(--spacing-lg);transform-origin:center top;min-width:800px;border:1px solid var(--color-border-secondary)}.keyboard-row[data-v-3f86e79b]{display:flex;justify-content:center;gap:4px;margin-bottom:8px}.number-row[data-v-3f86e79b]{margin-left:0}.first-row[data-v-3f86e79b]{margin-left:25px}.second-row[data-v-3f86e79b]{margin-left:40px}.third-row[data-v-3f86e79b]{margin-left:60px}.space-row[data-v-3f86e79b]{margin-top:8px}.stats-grid[data-v-3f86e79b]{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--spacing-md)}.stats-section[data-v-3f86e79b]{border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.stats-section[data-v-3f86e79b]:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.section-title[data-v-3f86e79b]{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-md);border-left:3px solid var(--color-primary);padding-left:var(--spacing-sm)}.stat-item[data-v-3f86e79b]{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background-color:var(--color-bg-primary);border-radius:var(--radius-md);border:1px solid var(--color-border-secondary);transition:all .2s ease}.stat-item[data-v-3f86e79b]:hover{background-color:var(--color-bg-secondary);transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.stat-label[data-v-3f86e79b]{color:var(--color-text-secondary);font-size:.9rem;font-weight:500}.stat-value[data-v-3f86e79b]{font-weight:600;color:var(--color-text-primary);font-size:.95rem;text-align:right}@media (max-width: 768px){.keyboard-heatmap[data-v-3f86e79b]{padding:var(--spacing-md)}.module-container[data-v-3f86e79b]{gap:var(--spacing-md)}.global-controls[data-v-3f86e79b]{padding:var(--spacing-md);flex-direction:column;gap:var(--spacing-md);text-align:center}.page-title[data-v-3f86e79b]{font-size:1.3rem}.module-header[data-v-3f86e79b],.module-content[data-v-3f86e79b]{padding:var(--spacing-md)}.module-title[data-v-3f86e79b]{font-size:1.1rem}.keyboard-layout[data-v-3f86e79b]{padding:var(--spacing-md);min-width:600px}.stats-grid[data-v-3f86e79b]{grid-template-columns:1fr}.stat-item[data-v-3f86e79b]{padding:var(--spacing-sm) var(--spacing-md)}}@media (max-width: 480px){.keyboard-heatmap[data-v-3f86e79b],.global-controls[data-v-3f86e79b]{padding:var(--spacing-sm)}.page-title[data-v-3f86e79b]{font-size:1.2rem}.global-toggle-btn[data-v-3f86e79b]{padding:var(--spacing-xs) var(--spacing-sm);font-size:.8rem}.btn-text[data-v-3f86e79b]{display:none}.module-title[data-v-3f86e79b]{font-size:1rem}.keyboard-layout[data-v-3f86e79b]{min-width:400px;padding:var(--spacing-sm)}.keyboard-row[data-v-3f86e79b]{gap:2px;margin-bottom:4px}}.keyboard-wrapper[data-v-3f86e79b]::-webkit-scrollbar{height:6px}.keyboard-wrapper[data-v-3f86e79b]::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:3px}.keyboard-wrapper[data-v-3f86e79b]::-webkit-scrollbar-thumb{background:var(--color-border-primary);border-radius:3px}.keyboard-wrapper[data-v-3f86e79b]::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.code-table-viewer[data-v-4b2e2666]{background:#fff;border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:var(--spacing-xl)}.viewer-title[data-v-4b2e2666]{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-lg)}.no-data[data-v-4b2e2666]{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-secondary)}.analysis-content[data-v-4b2e2666]{display:flex;flex-direction:column;gap:var(--spacing-xl)}.stats-grid[data-v-4b2e2666]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-lg)}.stat-item[data-v-4b2e2666]{background:var(--color-bg-secondary);padding:var(--spacing-lg);border-radius:var(--radius-md);text-align:center}.stat-label[data-v-4b2e2666]{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-xs)}.stat-value[data-v-4b2e2666]{font-size:1.5rem;font-weight:600;color:var(--color-primary)}.top-entries h4[data-v-4b2e2666]{font-size:1.125rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.entries-list[data-v-4b2e2666]{display:flex;flex-direction:column;gap:var(--spacing-md)}.entry-item[data-v-4b2e2666]{display:flex;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-md)}.entry-char[data-v-4b2e2666]{font-size:1.5rem;font-weight:600;color:var(--color-primary);min-width:40px;text-align:center}.entry-codes[data-v-4b2e2666]{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.entry-code[data-v-4b2e2666]{padding:var(--spacing-xs) var(--spacing-sm);background:#fff;border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);font-family:monospace;font-size:.875rem;color:var(--color-text-primary)}@media (max-width: 768px){.stats-grid[data-v-4b2e2666]{grid-template-columns:repeat(2,1fr)}.cjk-grid[data-v-4b2e2666]{grid-template-columns:1fr}.entry-item[data-v-4b2e2666]{flex-direction:column;align-items:flex-start}.entry-char[data-v-4b2e2666]{min-width:auto}}.duplicate-analysis-card[data-v-ad737f0e]{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000001a;overflow:hidden;margin-bottom:20px}.card-header[data-v-ad737f0e]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:15px}.card-header h3[data-v-ad737f0e]{margin:0;font-size:1.5rem;font-weight:600}.controls[data-v-ad737f0e]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.calculate-btn[data-v-ad737f0e]{padding:8px 16px;background:#fffffff2;color:#333;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:all .3s ease}.calculate-btn[data-v-ad737f0e]:hover:not(:disabled){background:#fff;transform:translateY(-1px)}.calculate-btn[data-v-ad737f0e]:disabled{opacity:.7;cursor:not-allowed}.card-content[data-v-ad737f0e]{padding:25px}.loading[data-v-ad737f0e]{display:flex;flex-direction:column;align-items:center;padding:40px 20px;color:#666}.spinner[data-v-ad737f0e]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin-ad737f0e 1s linear infinite;margin-bottom:15px}@keyframes spin-ad737f0e{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.analysis-results[data-v-ad737f0e]{width:100%}.metrics-table[data-v-ad737f0e]{width:100%;border-collapse:collapse;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.metrics-table th[data-v-ad737f0e],.metrics-table td[data-v-ad737f0e]{padding:12px 16px;text-align:left;border-bottom:1px solid #e5e7eb}.metrics-table th[data-v-ad737f0e]{background:#f8fafc;font-weight:600;color:#374151;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.metrics-table tbody tr[data-v-ad737f0e]:hover{background:#f9fafb}.metrics-table tbody tr:last-child td[data-v-ad737f0e]{border-bottom:none}.metric-value[data-v-ad737f0e]{font-weight:600;color:#059669;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace}.metric-desc[data-v-ad737f0e]{color:#6b7280;font-size:.875rem;margin:0}.empty-state[data-v-ad737f0e]{text-align:center;padding:40px 20px;color:#9ca3af}.empty-state p[data-v-ad737f0e]{margin:0;font-size:1.1rem}@media (max-width: 768px){.card-header[data-v-ad737f0e]{flex-direction:column;align-items:stretch}.controls[data-v-ad737f0e]{justify-content:center}.metrics-table[data-v-ad737f0e]{font-size:.875rem}.metrics-table th[data-v-ad737f0e],.metrics-table td[data-v-ad737f0e]{padding:8px 12px}}.header[data-v-d99abd9b]{background-color:var(--color-bg-primary);border-bottom:1px solid var(--color-border-primary);padding:var(--spacing-lg) 0;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header-content[data-v-d99abd9b]{display:flex;justify-content:space-between;align-items:center}.logo h1[data-v-d99abd9b]{font-size:1.75rem;font-weight:700;color:var(--color-primary);margin-bottom:var(--spacing-xs)}.subtitle[data-v-d99abd9b]{font-size:.875rem;color:var(--color-text-secondary)}.nav[data-v-d99abd9b]{display:flex;gap:var(--spacing-lg)}.nav-link[data-v-d99abd9b]{color:var(--color-text-secondary);text-decoration:none;font-weight:500;transition:color .2s ease-in-out}.nav-link[data-v-d99abd9b]:hover{color:var(--color-primary)}.main[data-v-d99abd9b]{padding:var(--spacing-2xl) 0;min-height:calc(100vh - 200px)}.global-controls[data-v-d99abd9b]{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xl);background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);box-shadow:0 4px 6px -1px #0000001a;border:1px solid var(--color-border-primary);margin-bottom:var(--spacing-xl)}.controls-left[data-v-d99abd9b]{flex:1}.page-title[data-v-d99abd9b]{font-size:1.8rem;font-weight:700;color:var(--color-text-primary);margin:0}.controls-right[data-v-d99abd9b]{flex-shrink:0}.global-toggle-btn[data-v-d99abd9b]{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.global-toggle-btn[data-v-d99abd9b]:hover{background-color:var(--color-primary-dark);transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.global-toggle-btn[data-v-d99abd9b]:active{transform:translateY(0);box-shadow:0 2px 4px #0000001a}.btn-icon[data-v-d99abd9b]{font-size:1.1rem}.btn-text[data-v-d99abd9b]{font-size:.9rem}.module-container[data-v-d99abd9b]{display:flex;flex-direction:column;gap:var(--spacing-xl);width:100%}.module-card[data-v-d99abd9b]{background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;border:1px solid var(--color-border-primary);overflow:hidden;transition:all .3s ease;width:100%}.module-card[data-v-d99abd9b]:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;transform:translateY(-2px)}.module-header[data-v-d99abd9b]{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xl);background-color:var(--color-bg-primary);border-bottom:1px solid var(--color-border-primary)}.module-title[data-v-d99abd9b]{font-size:1.3rem;font-weight:600;color:var(--color-text-primary);margin:0}.toggle-button[data-v-d99abd9b]{background:none;border:none;cursor:pointer;padding:var(--spacing-sm);border-radius:var(--radius-md);transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:36px;min-height:36px}.toggle-button[data-v-d99abd9b]:hover{background-color:var(--color-bg-secondary)}.toggle-icon[data-v-d99abd9b]{font-size:1rem;color:var(--color-text-secondary);transition:transform .3s ease;transform-origin:center}.toggle-icon.collapsed[data-v-d99abd9b]{transform:rotate(-90deg)}.module-content[data-v-d99abd9b]{padding:var(--spacing-xl);animation:fadeIn-d99abd9b .3s ease}@keyframes fadeIn-d99abd9b{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.module-description[data-v-d99abd9b]{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);line-height:1.6;font-size:.95rem}.upload-status[data-v-d99abd9b]{margin-top:var(--spacing-lg);padding:var(--spacing-md);border-radius:var(--radius-md);display:flex;align-items:center;gap:var(--spacing-sm);font-weight:500;animation:slideIn-d99abd9b .3s ease-out}.upload-status.success[data-v-d99abd9b]{background-color:#dcfce7;color:#166534;border:1px solid #bbf7d0}.upload-status.error[data-v-d99abd9b]{background-color:#fef2f2;color:#991b1b;border:1px solid #fecaca}.status-icon[data-v-d99abd9b]{font-weight:700;font-size:1.1rem}.footer[data-v-d99abd9b]{background-color:var(--color-bg-primary);border-top:1px solid var(--color-border-primary);padding:var(--spacing-xl) 0;margin-top:var(--spacing-2xl)}.footer-content[data-v-d99abd9b]{text-align:center;color:var(--color-text-secondary)}.footer-links[data-v-d99abd9b]{margin-top:var(--spacing-sm)}.footer-links a[data-v-d99abd9b]{color:var(--color-text-secondary);text-decoration:none;transition:color .2s ease-in-out}.footer-links a[data-v-d99abd9b]:hover{color:var(--color-primary)}.footer-links span[data-v-d99abd9b]{margin:0 var(--spacing-sm)}@keyframes slideIn-d99abd9b{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.main[data-v-d99abd9b]{padding:var(--spacing-lg) 0}.global-controls[data-v-d99abd9b]{padding:var(--spacing-lg);flex-direction:column;gap:var(--spacing-lg);text-align:center}.page-title[data-v-d99abd9b]{font-size:1.5rem}.global-toggle-btn[data-v-d99abd9b]{padding:var(--spacing-sm) var(--spacing-md)}.module-container[data-v-d99abd9b]{gap:var(--spacing-lg)}.module-header[data-v-d99abd9b],.module-content[data-v-d99abd9b]{padding:var(--spacing-lg)}.module-title[data-v-d99abd9b]{font-size:1.2rem}.header-content[data-v-d99abd9b]{flex-direction:column;gap:var(--spacing-md);text-align:center}.logo h1[data-v-d99abd9b]{font-size:1.5rem}.nav[data-v-d99abd9b]{justify-content:center}}@media (max-width: 480px){.global-controls[data-v-d99abd9b]{padding:var(--spacing-md)}.page-title[data-v-d99abd9b]{font-size:1.3rem}.btn-text[data-v-d99abd9b]{display:none}.module-header[data-v-d99abd9b],.module-content[data-v-d99abd9b]{padding:var(--spacing-md)}.module-title[data-v-d99abd9b]{font-size:1.1rem}}*{margin:0;padding:0;box-sizing:border-box}:root{--color-primary: #007acc;--color-primary-hover: #005a9e;--color-primary-light: #e6f3ff;--color-secondary: #6b7280;--color-success: #22c55e;--color-warning: #f59e0b;--color-error: #ef4444;--color-bg-primary: #ffffff;--color-bg-secondary: #f8f9fa;--color-bg-tertiary: #e9ecef;--color-bg-card: #ffffff;--color-bg-overlay: rgba(0, 0, 0, .05);--color-text-primary: #212529;--color-text-secondary: #6c757d;--color-text-tertiary: #adb5bd;--color-text-inverse: #ffffff;--color-border-primary: #dee2e6;--color-border-secondary: #e9ecef;--color-border-focus: #007acc;--heatmap-bg: #f8f9fa;--heatmap-key-bg: #ffffff;--heatmap-key-border: #dee2e6;--heatmap-key-text: #495057;--heatmap-key-active: #007acc;--heatmap-low: #e3f2fd;--heatmap-medium: #90caf9;--heatmap-high: #42a5f5;--heatmap-very-high: #1976d2;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .1);--shadow-card: 0 2px 8px rgba(0, 0, 0, .08);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono: "SF Mono", Monaco, "Inconsolata", "Roboto Mono", "Source Code Pro", monospace;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}[data-theme=dark]{--color-bg-primary: #1a1a1a;--color-bg-secondary: #2d2d2d;--color-bg-tertiary: #404040;--color-bg-card: #2d2d2d;--color-bg-overlay: rgba(255, 255, 255, .05);--color-text-primary: #f8f9fa;--color-text-secondary: #adb5bd;--color-text-tertiary: #6c757d;--color-text-inverse: #212529;--color-border-primary: #404040;--color-border-secondary: #2d2d2d;--color-border-focus: #0ea5e9;--heatmap-bg: #1a1a1a;--heatmap-key-bg: #2d2d2d;--heatmap-key-border: #404040;--heatmap-key-text: #f8f9fa;--heatmap-key-active: #0ea5e9;--heatmap-low: #0f172a;--heatmap-medium: #1e293b;--heatmap-high: #334155;--heatmap-very-high: #0ea5e9;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .3);--shadow-card: 0 2px 8px rgba(0, 0, 0, .2)}body{font-family:var(--font-sans);color:var(--color-text-primary);background-color:var(--color-bg-secondary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-base),color var(--transition-base)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.card{background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--spacing-xl);border:1px solid var(--color-border-primary);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-base);font-weight:500;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-fast);text-decoration:none;min-height:44px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-primary);border-color:var(--color-border-focus)}input,select,textarea{font-family:inherit;font-size:var(--font-size-base);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-primary);transition:all var(--transition-fast)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px #007acc1a}.theme-toggle{position:fixed;top:var(--spacing-lg);right:var(--spacing-lg);z-index:1000;background:var(--color-bg-card);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-lg);transition:all var(--transition-base);box-shadow:var(--shadow-card)}.theme-toggle:hover{transform:scale(1.05);box-shadow:var(--shadow-md)}@media (max-width: 768px){.container{padding:0 var(--spacing-md)}.card{padding:var(--spacing-lg)}.theme-toggle{top:var(--spacing-sm);right:var(--spacing-sm)}}.btn-secondary{background-color:var(--color-bg-primary);color:var(--color-text-primary);border:1px solid var(--color-border-primary)}.btn-secondary:hover{background-color:var(--color-bg-tertiary);border-color:var(--color-border-secondary)}.card{background-color:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-primary);padding:var(--spacing-xl);transition:all .2s ease-in-out}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.grid{display:grid;gap:var(--spacing-lg)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width: 768px){.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 768px){.container{padding:0 var(--spacing-md)}.card{padding:var(--spacing-lg)}}
