:root{--primary-color: #4472c4;--primary-dark: #3461b3;--primary-light: #e8f0fe;--secondary-color: #28a745;--secondary-dark: #218838;--danger-color: #dc3545;--warning-color: #ffc107;--warning-bg: #fff3cd;--warning-border: #ffeeba;--warning-text: #856404;--background-light: #f5f5f5;--background-white: #ffffff;--border-color: #e0e0e0;--border-light: #ddd;--border-dark: #bbb;--text-primary: #333;--text-secondary: #666;--text-muted: #999;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}body{min-width:320px;min-height:100vh;background-color:var(--background-light);color:var(--text-primary)}#root{width:100%}button{font-family:inherit}.ag-theme-alpine .ag-header-cell-label{justify-content:center}.home-page{min-height:100vh;display:flex;flex-direction:column;background:#f9f5f0}.home-header{text-align:center;padding:3rem 1rem 2rem;color:#2d3748}.home-header h1{font-size:2.5rem;font-weight:700;margin:0 0 .5rem}.tagline{font-size:1.1rem;color:#718096;margin:0}.tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;padding:2rem;max-width:900px;margin:0 auto;width:100%;box-sizing:border-box}.tool-card{background:#fff;border-radius:16px;padding:2rem;text-decoration:none;color:inherit;box-shadow:0 4px 20px #0000001a;transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative}.tool-card:hover{transform:translateY(-4px);box-shadow:0 8px 30px #00000026}.new-badge{position:absolute;top:1rem;right:1rem;background:#ff6b6b;color:#fff;font-size:.75rem;font-weight:600;padding:.25rem .5rem;border-radius:4px}.tool-icon{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem}.icon-badge{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem}.icon-badge.icon-from{font-size:.9rem}.icon-arrow{color:#9ca3af}.tool-title{font-size:1.25rem;font-weight:600;margin:0 0 .75rem;color:#1f2937}.tool-description{font-size:.9rem;color:#6b7280;margin:0;line-height:1.5}.home-footer{text-align:center;padding:1.5rem;color:#718096;font-size:.9rem}.home-footer p{margin:0}@media(max-width:640px){.home-header h1{font-size:1.75rem}.tools-grid{padding:1rem;gap:1rem}.tool-card{padding:1.5rem}}body:has(.excel-to-word-page){overflow:hidden}.excel-to-word-page{height:calc(100vh - 56px);overflow-y:scroll;scroll-snap-type:y mandatory;scroll-behavior:smooth;background:#f9f5f0;scrollbar-width:none;-ms-overflow-style:none}.excel-to-word-page::-webkit-scrollbar{display:none}.etw-page-hint-overlay{position:fixed;inset:56px 0 0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:200;opacity:1;transition:opacity .3s ease;pointer-events:none}.etw-page-hint-overlay.fading{opacity:0}.etw-page-hint-text{font-size:2.5rem;font-weight:600;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.3);text-align:center;padding:1rem 2rem}.etw-page-section{height:calc(100vh - 56px);min-height:calc(100vh - 56px);max-height:calc(100vh - 56px);scroll-snap-align:start;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:60px 2rem 80px;box-sizing:border-box;position:relative;overflow:hidden;scrollbar-width:none;-ms-overflow-style:none}.etw-page-section::-webkit-scrollbar{display:none}.etw-page-section-content{width:100%;max-width:1000px;display:flex;flex-direction:column;align-items:center;padding:0 2rem}.etw-page-section-title{font-size:2.5rem;font-weight:600;color:#333;margin:0 0 3rem;text-align:center}.etw-page-section.upload-page{justify-content:flex-start;padding-top:80px}.etw-page-section.upload-page .etw-page-section-content{max-width:1100px;width:calc(90% - var(--etw-panel-width, 0px));margin-left:var(--etw-panel-width, 0px);transition:margin-left .2s ease,width .2s ease;max-height:calc(100vh - 180px);overflow-y:auto;scrollbar-width:thin}.etw-page-section.upload-page .etw-page-section-title{flex-shrink:0}.etw-page-section.viewer-page .etw-page-section-content{max-width:1400px;width:calc(100% - 100px - var(--etw-panel-width, 0px));height:calc(100% - 140px);max-height:calc(100% - 140px);margin-bottom:0;margin-left:var(--etw-panel-width, 0px);overflow:hidden;display:flex;flex-direction:column;scrollbar-width:none;-ms-overflow-style:none;transition:margin-left .2s ease,width .2s ease}.etw-page-section.viewer-page .etw-page-section-content::-webkit-scrollbar{display:none}.etw-page-section.viewer-page .etw-page-section-title{flex-shrink:0;margin-bottom:1rem}.etw-page-section.no-title{padding-top:14px;padding-bottom:40px}.etw-page-section.no-title .etw-page-section-content{height:100%;max-height:100%;padding-top:0;width:calc(100% - 60px - var(--etw-panel-width, 0px));max-width:1800px}.etw-page-section.review-page{justify-content:flex-start;padding-top:14px;padding-bottom:0}.etw-page-section.review-page .etw-page-section-content{max-width:1200px;width:calc(100% - 60px - var(--etw-panel-width, 0px));height:calc(100% - 14px);max-height:calc(100% - 14px);margin-left:var(--etw-panel-width, 0px);transition:margin-left .2s ease,width .2s ease;overflow:hidden;display:flex;flex-direction:column;box-sizing:border-box}.etw-page-section.review-page .etw-page-section-title{margin-bottom:1.5rem}.etw-nav-arrow{position:fixed;right:30px;z-index:100;cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000001a;transition:all .2s ease}.etw-nav-arrow:hover:not(.disabled){background:#f5f5f5;box-shadow:0 4px 12px #00000026}.etw-nav-arrow.up{top:calc(50% - 130px);transform:translate(6px)}.etw-nav-arrow.down{bottom:calc(50% - 130px);transform:translate(6px)}.etw-nav-arrow.disabled{opacity:.3;pointer-events:none}.etw-nav-arrow.hidden{display:none}.etw-nav-arrow svg{width:20px;height:20px;color:#333}.etw-progress-dots{position:fixed;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;z-index:100}.etw-progress-dot{width:12px;height:12px;border-radius:50%;background:#e0e0e0;border:2px solid #ccc;cursor:pointer;transition:all .2s ease;position:relative;display:flex;align-items:center;justify-content:center}.etw-progress-dot:hover{transform:scale(1.2)}.etw-progress-dot.active{background:#4a90d9;border-color:#4a90d9;width:28px;height:28px;transform:none;color:#fff}.etw-progress-dot.active:hover{transform:scale(1.1)}.etw-progress-dot.completed{background:#4a9;border-color:#4a9}.etw-progress-dot-label{position:absolute;right:24px;top:50%;transform:translateY(-50%);background:#333;color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}.etw-progress-dot:hover .etw-progress-dot-label{opacity:1}.etw-mapping-side-panel{position:fixed;left:12px;top:70px;bottom:40px;height:auto;background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:2px 0 16px #0000001a;z-index:90;display:flex;flex-direction:column;transition:width .2s ease;overflow:visible}.etw-mapping-side-panel.collapsed{width:48px;cursor:pointer}.etw-mapping-side-panel.resizing{transition:none;-webkit-user-select:none;user-select:none}.etw-panel-collapse-btn{position:absolute;right:-1px;top:50%;transform:translate(100%,-50%);width:22px;height:64px;background:#fff;border:1px solid #e0e0e0;border-left:none;border-radius:0 10px 10px 0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#999;box-shadow:3px 0 10px #00000014;transition:all .2s ease;z-index:10}.etw-panel-collapse-btn:hover{background:#f8f8f8;color:#666;width:26px}.etw-panel-collapse-btn svg{transition:transform .2s}.etw-panel-collapsed-content{display:flex;flex-direction:column;align-items:center;height:100%;padding:1rem 0;cursor:pointer}.etw-panel-collapsed-header{display:flex;flex-direction:column;align-items:center;gap:.5rem}.etw-panel-icon-wrap{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:#4a9;border-radius:50%;color:#fff}.etw-panel-collapsed-title{writing-mode:vertical-rl;text-orientation:mixed;font-size:1rem;font-weight:600;color:#333;letter-spacing:.3px}.etw-panel-collapsed-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem}.etw-panel-badge{background:#4a9;color:#fff;font-size:.75rem;font-weight:600;min-width:22px;height:22px;border-radius:11px;display:flex;align-items:center;justify-content:center}.etw-mapping-side-panel-inner{display:flex;flex-direction:column;height:100%;overflow:hidden;border-radius:12px}.etw-panel-scroll-content{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.etw-panel-header{display:flex;align-items:center;padding:1rem;border-bottom:1px solid #eee;flex-shrink:0}.etw-panel-header-title{display:flex;align-items:center;gap:.5rem}.etw-panel-header-icon-wrap{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:#4a9;border-radius:50%}.etw-panel-header-icon{color:#fff}.etw-panel-title{font-weight:600;font-size:.9rem;color:#333}.etw-panel-section{padding:1rem;border-bottom:1px solid #f0f0f0;flex-shrink:0}.etw-panel-section-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.etw-panel-section-icon-wrap{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:#4a9;border-radius:50%;flex-shrink:0}.etw-panel-section-icon{color:#fff}.etw-panel-section-title{font-size:.75rem;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px}.etw-panel-section-count{font-size:.75rem;color:#aaa}.etw-panel-section-content{display:flex;flex-direction:column;gap:.5rem}.etw-panel-empty-state{padding:1rem;text-align:center;color:#aaa;font-size:.8rem;border:1px dashed #ddd;border-radius:6px}.etw-panel-source-info{display:flex;flex-direction:column;gap:.5rem}.etw-panel-source-sheet{font-size:.75rem;color:#666;font-weight:500;padding:4px 8px;background:#f5f5f5;border-radius:4px}.etw-panel-source-range-item{display:flex;align-items:center;gap:.5rem}.etw-panel-source-range{font-family:monospace;font-size:.95rem;color:#4a9;font-weight:500}.etw-panel-source-dimensions{font-size:.7rem;color:#888;background:#f0f0f0;padding:2px 6px;border-radius:3px}.etw-panel-target-card{display:flex;flex-direction:column;gap:4px;padding:8px 10px;background:#f5f5f5;border-radius:4px;border:1px solid #e8e8e8;min-width:0}.etw-panel-target-label{font-size:.8rem;color:#4a90d9;font-weight:600}.etw-panel-target-preview{font-size:.75rem;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.etw-panel-actions{display:flex;flex-direction:column;gap:.5rem;padding:1rem;border-bottom:1px solid #f0f0f0}.etw-panel-actions-row{display:flex;gap:.5rem}.etw-panel-confirm-btn{flex:1;padding:.6rem 1rem;background:#4a9;color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s}.etw-panel-confirm-btn:hover:not(:disabled){background:#3a8}.etw-panel-confirm-btn:disabled{background:#ccc;cursor:not-allowed}.etw-panel-confirm-btn.editing{background:#4a90d9}.etw-panel-confirm-btn.editing:hover:not(:disabled){background:#3a80c9}.etw-panel-clear-btn{padding:.6rem .75rem;background:transparent;color:#888;border:1px solid #ddd;border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .15s}.etw-panel-clear-btn:hover:not(:disabled){background:#f5f5f5;color:#666}.etw-panel-clear-btn:disabled{opacity:.5;cursor:not-allowed}.etw-panel-automap-toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.etw-panel-automap-toggle input[type=checkbox]{width:16px;height:16px;accent-color:#4a9;cursor:pointer}.etw-panel-automap-label{font-size:.8rem;color:#666}.etw-panel-mappings-section{display:flex;flex-direction:column}.etw-panel-generate-section{padding:1rem;border-top:1px solid #e8e8e8;background:#fafafa;flex-shrink:0;margin-top:auto}.etw-panel-generate-section .generate-btn{width:100%;background:#009688}.etw-panel-generate-section .generate-btn:hover:not(.disabled):not(.generating){background:#00796b;box-shadow:0 4px 12px #0096884d}.etw-panel-generate-section .generate-btn.generating{background:#00897b}.etw-panel-mappings-list{display:flex;flex-direction:column;gap:8px}.etw-panel-clear-all-btn{margin-left:auto;background:none;border:none;color:#e57373;font-size:.7rem;cursor:pointer;padding:2px 6px}.etw-panel-clear-all-btn:hover{text-decoration:underline}.etw-panel-mapping-item{display:flex;flex-direction:column;gap:4px;padding:6px 8px;border-radius:4px;cursor:pointer;transition:all .15s ease;background:#f8f8f8;border:1px solid #e8e8e8}.etw-panel-mapping-item:hover{background:#f0f0f0;border-color:#ddd}.etw-panel-mapping-item.editing{background:#e8f4fd;border-color:#4a90d9}.etw-panel-mapping-row{display:flex;align-items:center;gap:6px}.etw-panel-mapping-index{font-size:.7rem;color:#888;font-weight:600;flex-shrink:0}.etw-panel-mapping-sheet{font-size:.7rem;color:#666;font-weight:500;flex-shrink:0}.etw-panel-mapping-range{color:#4a9;font-family:Consolas,monospace;font-weight:600;font-size:.8rem;flex-shrink:0}.etw-panel-mapping-dimensions{font-size:.65rem;color:#999;background:#eee;padding:1px 4px;border-radius:2px;flex-shrink:0}.etw-panel-mapping-arrow{color:#bbb;flex-shrink:0}.etw-panel-mapping-para{color:#4a90d9;font-family:Consolas,monospace;font-weight:600;font-size:.8rem;flex-shrink:0}.etw-panel-mapping-remove{margin-left:auto;padding:2px;background:none;border:none;color:#ccc;cursor:pointer;border-radius:3px;transition:all .15s ease;flex-shrink:0;opacity:0}.etw-panel-mapping-item:hover .etw-panel-mapping-remove{opacity:1}.etw-panel-mapping-remove:hover{color:#dc3545;background:#fee}.etw-panel-mapping-preview{font-size:.7rem;color:#777;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:18px}.etw-panel-resize-handle{position:absolute;right:0;top:0;bottom:0;width:4px;cursor:ew-resize;background:transparent;transition:background .2s ease}.etw-panel-resize-handle:hover,.etw-mapping-side-panel.resizing .etw-panel-resize-handle{background:#4a90d9}.etw-panel-resize-overlay{position:fixed;inset:0;z-index:1000;cursor:ew-resize}.etw-review-content{display:flex;flex-direction:column;height:100%;width:100%;max-width:100%;gap:.5rem;overflow:hidden}.etw-mappings-review{flex:1;overflow:hidden;display:flex;flex-direction:column}.etw-mappings-review h3{margin:0 0 1rem;font-size:1.1rem;color:#333}.etw-generate-review{flex-shrink:0;padding-top:1rem;border-top:1px solid #e0e0e0}.etw-review-tabs{display:flex;gap:8px;margin-bottom:0}.etw-review-tab{padding:8px 16px;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s ease}.etw-review-tab:hover{background:#eee}.etw-review-tab.active{background:#4a90d9;color:#fff;border-color:#4a90d9}.etw-review-tab-content{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden}.etw-review-tab-content .preview-tab-wrapper{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;overflow:hidden}.etw-review-tab-content .preview-tab-container{flex:1;min-height:0;min-width:0;overflow:auto;display:flex;flex-direction:column;gap:.5rem}.etw-review-tab-content .preview-warning{margin-bottom:0;flex-shrink:0}.etw-review-tab-content .preview-container{flex:1;min-height:0!important;max-width:100%;overflow:auto}.etw-review-tab-content .preview-container .docx-wrapper{max-width:100%;transform-origin:top center}.etw-review-tab-content .preview-pagination{display:flex;justify-content:center;align-items:center;padding:12px 0;background:transparent;flex-shrink:0;position:relative}.etw-review-tab-content .pagination-nav{display:flex;align-items:center;gap:12px}.etw-review-tab-content .pagination-btn{width:32px;height:32px;border-radius:50%;border:1px solid #ccc;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;padding:0;color:#666}.etw-review-tab-content .pagination-btn svg{display:block}.etw-review-tab-content .pagination-btn:hover:not(:disabled){border-color:#4a90d9;color:#4a90d9}.etw-review-tab-content .pagination-btn:disabled{opacity:.4;cursor:not-allowed}.etw-review-tab-content .pagination-info{font-size:.9rem;color:#666;min-width:50px;text-align:center}.etw-review-tab-content .pagination-refresh{position:absolute;right:0}.etw-page-download-btn{position:fixed;bottom:24px;right:24px;z-index:100;width:56px;height:56px;border-radius:50%;background:#009688;border:none;box-shadow:0 4px 12px #00968866;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:#fff}.etw-page-download-btn:hover:not(:disabled){background:#00796b;box-shadow:0 6px 16px #00968880;transform:translateY(-2px)}.etw-page-download-btn:disabled{background:#b0bec5;cursor:not-allowed;box-shadow:0 2px 8px #0000001a}.etw-page-download-btn svg{stroke:#fff}.etw-page-download-btn .spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.etw-page-section.viewer-page .excel-grid-container{flex:1;display:flex;flex-direction:column;min-height:0}.etw-page-section.viewer-page .ag-theme-alpine{flex:1;min-height:0}.etw-page-section.viewer-page .paragraph-list-container{flex:1;display:flex;flex-direction:column;min-height:0;width:100%;max-width:900px;margin:0 auto;background:#fff;border-radius:12px;padding:1rem;box-shadow:0 2px 8px #00000014;overflow:hidden}.etw-page-section.viewer-page .paragraph-list{flex:1;min-height:0;max-height:none;overflow-y:auto}.etw-page-section.viewer-page .paragraph-list-header{display:flex;justify-content:space-between;align-items:center}.etw-page-section.viewer-page .paragraph-list-title{font-weight:700;font-size:1rem;color:#333}.etw-page-section.viewer-page .paragraph-list-hint{padding:8px 12px;background:#e3f2fd;border-radius:6px;font-size:.85rem;color:#1565c0;margin-bottom:8px}.etw-page-section.upload-page .drop-zone,.etw-page-section.upload-page .excel-uploader,.etw-page-section.upload-page .word-uploader{width:100%}.etw-review-tab-content .mapping-list-container{flex:1;min-height:0;overflow-y:auto}.etw-config-manager{padding:10px 12px;border-bottom:1px solid #e8e8e8;background:#fafafa}.etw-config-manager-signed-out{padding:8px 12px}.etw-config-manager-message{display:flex;align-items:center;gap:6px;font-size:.75rem;color:#888}.etw-config-manager-header{margin-bottom:8px}.etw-config-name{display:flex;align-items:center;gap:6px}.etw-config-name-text{font-size:.85rem;font-weight:500;color:#333;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.etw-config-name-empty{color:#999;font-style:italic}.etw-config-unsaved-dot{width:6px;height:6px;border-radius:50%;background:#f59e0b;flex-shrink:0}.etw-config-manager-actions{display:flex;gap:6px}.etw-config-action-btn{display:flex;align-items:center;gap:4px;padding:4px 8px;font-size:.7rem;border-radius:4px;cursor:pointer;transition:all .15s ease;border:1px solid #ddd;background:#fff;color:#555}.etw-config-action-btn:hover:not(:disabled){background:#f5f5f5;color:#333}.etw-config-action-btn:disabled{opacity:.5;cursor:not-allowed}.etw-config-save-btn:hover:not(:disabled){border-color:#4a90d9;color:#4a90d9}.etw-config-load-btn:hover:not(:disabled){border-color:#4a9;color:#4a9}.etw-config-dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.etw-config-dialog{background:#fff;border-radius:8px;width:100%;max-width:400px;box-shadow:0 4px 24px #0003}.etw-config-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e8e8e8}.etw-config-dialog-header h3{margin:0;font-size:16px;font-weight:600;color:#333}.etw-config-dialog-close{padding:4px;border:none;background:none;cursor:pointer;color:#888;border-radius:4px}.etw-config-dialog-close:hover{background:#f5f5f5;color:#333}.etw-config-dialog-body{padding:20px}.etw-config-dialog-label{display:flex;flex-direction:column;gap:8px;font-size:.85rem;font-weight:500;color:#555}.etw-config-dialog-input{padding:10px 12px;font-size:14px;border:1px solid #ddd;border-radius:6px;outline:none}.etw-config-dialog-input:focus{border-color:#4a90d9;box-shadow:0 0 0 3px #4a90d91a}.etw-config-dialog-error{margin-top:12px;padding:8px 12px;background:#fee;border:1px solid #fcc;border-radius:4px;font-size:.8rem;color:#c33}.etw-config-dialog-info{margin-top:16px;padding:12px;background:#f8f8f8;border-radius:6px}.etw-config-dialog-info-item{display:flex;justify-content:space-between;font-size:.8rem}.etw-config-dialog-info-item span:first-child{color:#888}.etw-config-dialog-info-item span:last-child{color:#333;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.etw-config-dialog-info-item+.etw-config-dialog-info-item{margin-top:6px}.etw-config-dialog-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid #e8e8e8}.etw-config-dialog-btn{padding:8px 16px;font-size:13px;font-weight:500;border-radius:6px;cursor:pointer;transition:all .15s ease}.etw-config-dialog-cancel{border:1px solid #ddd;background:#fff;color:#555}.etw-config-dialog-cancel:hover:not(:disabled){background:#f5f5f5}.etw-config-dialog-save{border:none;background:#4a90d9;color:#fff}.etw-config-dialog-save:hover:not(:disabled){background:#3a80c9}.etw-config-dialog-save:disabled{opacity:.6;cursor:not-allowed}.etw-config-drawer-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:flex-end;z-index:1000}.etw-config-drawer{background:#fff;width:100%;max-width:360px;height:100%;display:flex;flex-direction:column;box-shadow:-4px 0 24px #00000026}.etw-config-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e8e8e8}.etw-config-drawer-header h3{margin:0;font-size:16px;font-weight:600;color:#333}.etw-config-drawer-close{padding:4px;border:none;background:none;cursor:pointer;color:#888;border-radius:4px}.etw-config-drawer-close:hover{background:#f5f5f5;color:#333}.etw-config-drawer-body{flex:1;overflow-y:auto;padding:0}.etw-config-drawer-loading,.etw-config-drawer-error,.etw-config-drawer-empty{padding:40px 20px;text-align:center;color:#888}.etw-config-drawer-error{color:#dc2626}.etw-config-drawer-empty p{margin:0 0 8px}.etw-config-list{list-style:none;margin:0;padding:0}.etw-config-list-item{position:relative;border-bottom:1px solid #e8e8e8}.etw-config-list-item-main{width:100%;padding:14px 48px 14px 16px;border:none;background:none;text-align:left;cursor:pointer;transition:background .15s ease}.etw-config-list-item-main:hover:not(:disabled){background:#f8f8f8}.etw-config-list-item-main:disabled{opacity:.6;cursor:not-allowed}.etw-config-list-item-name{font-size:.9rem;font-weight:500;color:#333;margin-bottom:4px}.etw-config-list-item-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:.75rem;color:#888}.etw-config-list-item-date{font-size:.7rem;color:#aaa;margin-top:4px}.etw-config-list-item-delete{position:absolute;right:12px;top:50%;transform:translateY(-50%);padding:6px;border:none;background:none;cursor:pointer;color:#ccc;border-radius:4px;transition:all .15s ease}.etw-config-list-item-delete:hover{color:#dc3545;background:#fee}.etw-config-list-item-loading{position:absolute;inset:0;background:#ffffffe6;display:flex;align-items:center;justify-content:center;font-size:.8rem;color:#4a90d9}@media(max-width:1024px){.etw-mapping-side-panel{left:8px;top:66px;bottom:32px}.etw-progress-dots,.etw-nav-arrow{right:20px}}@media(max-width:768px){.etw-page-section-title{font-size:2rem}.etw-page-section{padding:40px 1rem 60px}.etw-page-section-content{padding:0 1rem}}@media(max-width:500px){.etw-mapping-side-panel{inset:auto 4px 4px;height:auto;max-height:50vh;border-radius:12px 12px 0 0}.etw-mapping-side-panel.collapsed{width:auto;height:48px}.etw-panel-collapse-btn{right:50%;top:-1px;bottom:auto;transform:translate(-50%,-100%);width:64px;height:22px;border-radius:10px 10px 0 0;border:1px solid #e0e0e0;border-bottom:none;box-shadow:0 -3px 10px #00000014}.etw-panel-collapse-btn:hover{height:26px;width:64px}.etw-progress-dots{right:12px;gap:8px}.etw-progress-dot.active{width:24px;height:24px}.etw-nav-arrow{right:12px;width:32px;height:32px}.etw-page-section-title{font-size:1.5rem}}.etw-excel-viewer{display:flex;flex-direction:column;gap:.5rem;flex:1;width:100%;min-height:0;max-height:100%;background:#fff;border-radius:12px;padding:1rem;box-shadow:0 2px 8px #00000014;overflow:hidden}.etw-excel-viewer-empty{flex:1;display:flex;align-items:center;justify-content:center;color:#666}.etw-edit-mode-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#e3f2fd;border-bottom:1px solid #90caf9;flex-shrink:0}.etw-edit-mode-hint{font-size:.85rem;color:#1565c0}.etw-edit-mode-actions{display:flex;gap:8px}.etw-confirm-edit-btn{padding:6px 12px;background:#4a9;color:#fff;border:none;border-radius:4px;font-size:.8rem;cursor:pointer;transition:background .2s ease}.etw-confirm-edit-btn:hover:not(:disabled){background:#3a8}.etw-confirm-edit-btn:disabled{background:#ccc;cursor:not-allowed}.etw-cancel-edit-btn{padding:6px 12px;background:#f5f5f5;color:#666;border:1px solid #ddd;border-radius:4px;font-size:.8rem;cursor:pointer;transition:all .2s ease}.etw-cancel-edit-btn:hover{background:#eee;color:#333}.etw-sheet-tabs{display:flex;align-items:center;gap:.25rem;margin-bottom:.5rem;overflow-x:auto;overflow-y:hidden;padding-bottom:.5rem;flex-shrink:0;flex-wrap:nowrap!important;max-width:100%;border-bottom:1px solid #ccc}.etw-sheet-tabs::-webkit-scrollbar{height:4px}.etw-sheet-tabs::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.etw-sheet-tab{padding:.375rem .75rem;background:#f0f0f0;border:1px solid #ccc;border-radius:4px 4px 0 0;color:#666;font-size:.75rem;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.etw-sheet-tab:hover{background:#e0e0e0;color:#333}.etw-sheet-tab.active{background:#fff;color:#4a90d9;border-bottom-color:#fff}.etw-grid-wrapper{flex:1;min-height:300px;width:100%;border-radius:4px;overflow:hidden}.etw-excel-viewer .ag-theme-alpine{--ag-background-color: #fff;--ag-header-background-color: #f5f5f5;--ag-odd-row-background-color: #fafafa;--ag-row-hover-color: #f0f7ff;--ag-selected-row-background-color: transparent;--ag-border-color: #e0e0e0;--ag-header-foreground-color: #555;--ag-foreground-color: #333;--ag-font-size: 12px;--ag-font-family: "Consolas", "Monaco", monospace;--ag-header-height: 32px;--ag-row-height: 28px}.etw-selection-info{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;font-size:.85rem;flex-shrink:0}.etw-selection-label{font-weight:500;color:#333}.etw-selection-hint{color:#888;font-style:italic}.etw-range-item{display:inline-flex;align-items:center;gap:4px}.etw-range{font-family:monospace;color:#4a9;font-weight:500}.etw-sheet{color:#888;font-size:.8rem}.etw-dimensions{color:#666;font-size:.75rem;background:#f0f0f0;padding:2px 4px;border-radius:3px}.etw-separator{color:#ccc}.etw-selection-help{padding:2px 0;font-size:.75rem;color:#666;flex-shrink:0}.etw-selection-help strong{color:#333}.etw-row-number-cell{background:#f5f5f5!important;color:#888;font-size:.75rem;text-align:center}.etw-cell-selected{background:#4a999933!important;border:1px solid #4a9!important}.etw-excel-viewer.edit-mode{border-color:#4a90d9;box-shadow:0 0 0 2px #4a90d933}body:has(.text-to-excel-page){overflow:hidden}.text-to-excel-page{height:calc(100vh - 56px);overflow-y:scroll;scroll-snap-type:y mandatory;scroll-behavior:smooth;background:#f9f5f0;scrollbar-width:none;-ms-overflow-style:none}.text-to-excel-page::-webkit-scrollbar{display:none}.page-hint-overlay{position:fixed;inset:56px 0 0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:200;opacity:1;transition:opacity .3s ease;pointer-events:none}.page-hint-overlay.fading{opacity:0}.page-hint-text{font-size:2.5rem;font-weight:600;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.3);text-align:center;padding:1rem 2rem}.page-section{height:calc(100vh - 56px);min-height:calc(100vh - 56px);max-height:calc(100vh - 56px);scroll-snap-align:start;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:60px 2rem 80px;box-sizing:border-box;position:relative;overflow:hidden;scrollbar-width:none;-ms-overflow-style:none}.page-section::-webkit-scrollbar{display:none}.page-section-content{width:100%;max-width:1000px;display:flex;flex-direction:column;align-items:center;padding:0 2rem}.page-section-title{font-size:2.5rem;font-weight:600;color:#333;margin:0 0 3rem;text-align:center}.page-section.upload-page{justify-content:flex-start;padding-top:20px}.page-section.upload-page .page-section-content{max-width:1100px;width:calc(90% - var(--mapping-panel-width, 0px));margin-left:var(--mapping-panel-width, 0px);transition:margin-left .2s ease,width .2s ease;max-height:calc(100vh - 180px);overflow-y:auto;scrollbar-width:thin}.page-section.upload-page .page-section-title{flex-shrink:0}.page-section.viewer-page .page-section-content{max-width:1400px;width:calc(100% - 100px - var(--mapping-panel-width, 0px));height:calc(100vh - 256px);max-height:calc(100vh - 256px);margin-bottom:0;margin-left:var(--mapping-panel-width, 0px);overflow:hidden;display:flex;flex-direction:column;scrollbar-width:none;-ms-overflow-style:none;transition:margin-left .2s ease,width .2s ease}.page-section.viewer-page .page-section-content::-webkit-scrollbar{display:none}.page-section.viewer-page .page-section-title{flex-shrink:0;margin-bottom:1rem}.page-section.no-title{padding-bottom:30px;padding-top:20px}.page-section.no-title .page-section-content{height:calc(100vh - 80px);max-height:calc(100vh - 80px);padding-top:.25rem;width:calc(100% - 60px - var(--mapping-panel-width, 0px));max-width:1800px}.page-section.review-page{justify-content:flex-start;padding-top:60px;padding-bottom:40px}.page-section.review-page .page-section-content{max-width:1000px;width:calc(100% - 100px - var(--mapping-panel-width, 0px));height:calc(100vh - 160px);max-height:calc(100vh - 160px);margin-left:var(--mapping-panel-width, 0px);transition:margin-left .2s ease,width .2s ease;overflow:hidden;display:flex;flex-direction:column}.page-section.review-page .page-section-title{margin-bottom:1.5rem}.nav-arrow{position:fixed;right:30px;z-index:100;cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000001a;transition:all .2s ease}.nav-arrow:hover:not(.disabled){background:#f5f5f5;box-shadow:0 4px 12px #00000026}.nav-arrow.up{top:calc(50% - 130px);transform:translate(6px)}.nav-arrow.down{bottom:calc(50% - 130px);transform:translate(6px)}.nav-arrow.disabled{opacity:.3;pointer-events:none}.nav-arrow.hidden{display:none}.nav-arrow svg{width:20px;height:20px;color:#333}.progress-dots{position:fixed;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;z-index:100}.progress-dot{width:12px;height:12px;border-radius:50%;background:#e0e0e0;border:2px solid #ccc;cursor:pointer;transition:all .2s ease;position:relative;display:flex;align-items:center;justify-content:center}.progress-dot:hover{transform:scale(1.2)}.progress-dot.active{background:#4a90d9;border-color:#4a90d9;width:28px;height:28px;transform:none;color:#fff}.progress-dot.active:hover{transform:scale(1.1)}.progress-dot.completed{background:#4a9;border-color:#4a9}.progress-dot-label{position:absolute;right:24px;top:50%;transform:translateY(-50%);background:#333;color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}.progress-dot:hover .progress-dot-label{opacity:1}.floating-mapping-bar{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;padding:20px 40px;z-index:100;width:fit-content;max-width:calc(100% - 100px);display:flex;align-items:center;gap:24px;border:1px solid #e0e0e0}.floating-mapping-bar.hidden{display:none}.mapping-bar-content{display:flex;align-items:center;gap:20px}.mapping-bar-source{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.mapping-bar-target{display:flex;flex-direction:column;gap:4px}.mapping-bar-label{font-size:.75rem;color:#888;text-transform:uppercase;font-weight:500}.mapping-bar-value{font-family:monospace;font-size:1.1rem;white-space:nowrap}.mapping-bar-source .mapping-bar-value{color:#4a9}.mapping-bar-target .mapping-bar-value{color:#4a90d9;overflow:hidden;text-overflow:ellipsis}.mapping-bar-meta{font-size:.8rem;color:#888;margin-top:2px;white-space:nowrap}.mapping-bar-target .mapping-bar-meta{overflow:hidden;text-overflow:ellipsis}.mapping-bar-arrow{color:#999;font-size:1.5rem;font-weight:300;padding:0 8px}.mapping-bar-values-list{display:flex;flex-wrap:wrap;gap:6px;max-width:400px}.mapping-bar-value-item{font-family:monospace;font-size:.9rem;color:#4a9;background:#e8f5e9;padding:2px 8px;border-radius:4px;white-space:nowrap}.mapping-bar-total{font-family:monospace;font-size:1.1rem;font-weight:600;color:#2e7d32;margin-top:4px}.mapping-bar-placeholder{color:#888;font-style:italic;font-size:.875rem}.mapping-bar-actions{display:flex;gap:12px;margin-left:24px}.confirm-mapping-btn{padding:.75rem 1.5rem;background:#4a9;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;transition:background .2s}.confirm-mapping-btn:hover:not(:disabled){background:#3a8}.confirm-mapping-btn:disabled{opacity:.5;cursor:not-allowed}.clear-bar-btn{padding:.75rem 1.25rem;background:transparent;color:#888;border:1px solid #ccc;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .2s}.clear-bar-btn:hover{background:#f5f5f5;color:#666}@media(max-width:640px){.floating-mapping-bar{min-width:auto;max-width:calc(100% - 40px);flex-direction:column;padding:12px 16px}.mapping-bar-content{width:100%}.mapping-bar-actions{width:100%;justify-content:stretch}.confirm-mapping-btn,.clear-bar-btn{flex:1}}.mapping-side-panel{position:fixed;left:12px;top:70px;bottom:40px;height:auto;background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:2px 0 16px #0000001a;z-index:90;display:flex;flex-direction:column;transition:width .2s ease;overflow:visible}.mapping-side-panel-inner{display:flex;flex-direction:column;height:100%;overflow:hidden;border-radius:12px}.panel-scroll-content{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.mapping-side-panel.resizing{transition:none;-webkit-user-select:none;user-select:none}.mapping-side-panel.collapsed{cursor:pointer;border-radius:12px}.panel-collapsed-content{display:flex;flex-direction:column;align-items:center;height:100%;padding:1rem 0}.panel-collapsed-header{display:flex;flex-direction:column;align-items:center;gap:.5rem}.panel-icon-wrap{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:#4a9;border-radius:50%;color:#fff}.panel-collapsed-title{writing-mode:vertical-rl;text-orientation:mixed;font-size:1rem;font-weight:600;color:#333;letter-spacing:.3px}.panel-collapsed-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem}.panel-badge{background:#4a9;color:#fff;font-size:.75rem;font-weight:600;min-width:22px;height:22px;border-radius:11px;display:flex;align-items:center;justify-content:center;padding:0 6px}.panel-collapsed-label{writing-mode:vertical-rl;text-orientation:mixed;font-size:.85rem;color:#888;letter-spacing:.5px}.panel-header{display:flex;align-items:center;padding:1rem;border-bottom:1px solid #eee;flex-shrink:0}.panel-header-title{display:flex;align-items:center;gap:.5rem}.panel-header-icon-wrap{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:#4a9;border-radius:50%}.panel-header-icon{color:#fff}.panel-title{font-weight:600;font-size:.9rem;color:#333}.panel-collapse-btn{position:absolute;right:-1px;top:50%;transform:translate(100%,-50%);width:22px;height:64px;background:#fff;border:1px solid #e0e0e0;border-left:none;border-radius:0 10px 10px 0;cursor:pointer;color:#999;display:flex;align-items:center;justify-content:center;box-shadow:3px 0 10px #00000014;transition:all .2s;z-index:10}.panel-collapse-btn:hover{background:#f8f8f8;color:#666;width:26px}.panel-collapse-btn svg{transition:transform .2s}.panel-section{padding:1rem;border-bottom:1px solid #f0f0f0;flex-shrink:0}.panel-section-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.panel-section-icon-wrap{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:#4a9;border-radius:50%;flex-shrink:0}.panel-section-icon{color:#fff}.panel-section-title{font-size:.75rem;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px}.panel-section-count{font-size:.75rem;color:#aaa}.panel-section-content{display:flex;flex-direction:column;gap:.5rem}.panel-empty-state{padding:1rem;text-align:center;color:#aaa;font-size:.8rem;border:1px dashed #ddd;border-radius:6px}.panel-values-list{display:flex;flex-wrap:wrap;gap:6px}.panel-value-item{background:#e8f5e9;border-radius:4px;padding:4px 8px;display:flex;align-items:center;gap:6px}.panel-value-text{font-family:monospace;font-size:.85rem;color:#2e7d32}.panel-total{display:flex;align-items:center;gap:.5rem;padding-top:.5rem;border-top:1px dashed #e0e0e0;margin-top:.5rem}.panel-total-label{font-size:.75rem;color:#666}.panel-total-value{font-family:monospace;font-size:.95rem;font-weight:600;color:#2e7d32}.panel-source-file{font-size:.75rem;color:#666;font-weight:500;margin-bottom:.5rem;padding:4px 8px;background:#f5f5f5;border-radius:4px}.panel-target-info{display:flex;flex-direction:column;gap:.25rem}.panel-target-cell{font-family:monospace;font-size:.95rem;color:#4a90d9;font-weight:500}.panel-target-meta{font-size:.7rem;color:#999;word-break:break-all;line-height:1.4}.panel-target-coltype{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #f0f0f0}.panel-target-coltype-label{font-size:.75rem;color:#666;flex-shrink:0}.panel-target-coltype-toggle{display:flex;gap:0;border-radius:4px;overflow:hidden;border:1px solid #ddd}.panel-coltype-btn{padding:.3rem .6rem;font-size:.7rem;font-weight:500;border:none;background:#f5f5f5;color:#666;cursor:pointer;transition:all .15s ease}.panel-coltype-btn:first-child{border-right:1px solid #ddd}.panel-coltype-btn:hover:not(.active){background:#eee}.panel-coltype-btn.active{background:#4a90d9;color:#fff}.panel-actions{display:flex;flex-direction:column;gap:.5rem;padding:1rem;border-bottom:1px solid #f0f0f0}.panel-actions-buttons{display:flex;gap:.5rem}.panel-automap-toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.panel-automap-toggle input[type=checkbox]{width:16px;height:16px;accent-color:#4a9;cursor:pointer}.panel-automap-label{font-size:.8rem;color:#666}.panel-confirm-btn{flex:1;padding:.6rem 1rem;background:#4a9;color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s}.panel-confirm-btn:hover:not(:disabled){background:#3a8}.panel-confirm-btn:disabled{background:#ccc;cursor:not-allowed}.panel-clear-btn{padding:.6rem .75rem;background:transparent;color:#888;border:1px solid #ddd;border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .15s}.panel-clear-btn:hover:not(:disabled){background:#f5f5f5;color:#666}.panel-clear-btn:disabled{opacity:.5;cursor:not-allowed}.panel-generate-section{padding:1rem;border-top:1px solid #e8e8e8;background:#fafafa;flex-shrink:0;margin-top:auto}.panel-generate-section .generate-btn{width:100%;background:#4a9}.panel-generate-section .generate-btn:hover:not(:disabled){background:#3a8;box-shadow:0 4px 12px #44aa994d}.panel-generate-section .generate-section{display:flex;flex-direction:column;gap:.5rem}.panel-generate-section .generate-requirements{font-size:.7rem;color:#888}.panel-generate-section .generate-requirements ul{margin:.25rem 0 0 1rem;padding:0}.panel-generate-section .generate-stats{font-size:.7rem;display:flex;gap:.5rem}.panel-generate-section .error-message{font-size:.7rem;color:#dc3545}.panel-mappings-section{flex-shrink:0;display:flex;flex-direction:column}.panel-clear-all-btn{margin-left:auto;background:none;border:none;color:#e57373;font-size:.7rem;cursor:pointer;padding:2px 6px}.panel-clear-all-btn:hover{text-decoration:underline}.panel-mappings-list{display:flex;flex-direction:column;gap:4px}.panel-mapping-item{display:flex;align-items:flex-start;gap:.5rem;padding:.6rem .5rem;background:#fafafa;border-radius:6px;font-size:.75rem;border:1px solid #f0f0f0}.panel-mapping-index{color:#bbb;font-size:.7rem;min-width:1rem;padding-top:2px}.panel-mapping-content{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;overflow:hidden;line-height:1.4}.panel-mapping-file{color:#666;font-size:.7rem;font-weight:500;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-mapping-value{color:#2e7d32;font-family:monospace;font-size:.75rem;font-weight:500;background:#e8f5e9;padding:1px 6px;border-radius:3px}.panel-mapping-arrow{color:#999;display:flex;align-items:center}.panel-mapping-target{color:#4a90d9;font-family:monospace;font-size:.75rem;font-weight:500}.panel-mapping-remove{background:none;border:none;color:#ccc;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.panel-mapping-remove:hover{background:#fee;color:#e57373}.panel-resize-handle{position:absolute;right:0;top:12px;width:4px;height:calc(100% - 24px);cursor:col-resize;background:transparent;transition:background .15s;border-radius:2px}.panel-resize-handle:hover,.mapping-side-panel.resizing .panel-resize-handle{background:#4a90d9}.panel-resize-overlay{position:fixed;inset:0;z-index:1000;cursor:col-resize}.review-content{width:100%;display:flex;flex-direction:column;gap:1rem;flex:1;min-height:0;overflow:hidden}.mappings-review{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #00000014;flex:1;min-height:300px;display:flex;flex-direction:column;overflow:hidden}.mappings-review h3{margin:0 0 .75rem;font-size:1rem;color:#555;flex-shrink:0}.generate-review{display:flex;justify-content:center;flex-shrink:0;padding-top:.5rem}.add-more-link{display:inline-block;margin-top:1rem;padding:.5rem 1rem;color:#4a90d9;text-decoration:none;font-size:.875rem;cursor:pointer}.add-more-link:hover{text-decoration:underline}.upload-hero{width:100%;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.hero-dropzone{width:100%;border:2px dashed #ccc;border-radius:16px;padding:3rem 2rem;text-align:center;background:#fff;cursor:pointer;transition:all .2s}.hero-dropzone:hover{border-color:#4a90d9;background:#f8faff}.hero-dropzone.has-file{border-style:solid;border-color:#4a9;background:#f0fff4}.hero-icon{font-size:3rem;margin-bottom:1rem}.hero-text{color:#666;margin:0 0 .5rem}.hero-hint{color:#888;font-size:.85rem;margin:0}.hero-select-btn{margin-top:1rem;padding:.75rem 2rem;background:#4a90d9;color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:background .2s}.hero-select-btn:hover{background:#3a80c9}.hero-file-info{display:flex;flex-direction:column;align-items:center;gap:.5rem}.hero-file-name{font-weight:600;color:#333;font-size:1.1rem}.hero-file-meta{color:#666;font-size:.9rem}.hero-change-btn{margin-top:.5rem;padding:.5rem 1rem;background:transparent;color:#4a90d9;border:1px solid #4a90d9;border-radius:6px;cursor:pointer;font-size:.875rem}.hero-change-btn:hover{background:#f0f7ff}.hero-file-list{width:100%;max-width:400px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #00000014;overflow:hidden}.hero-file-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid #f0f0f0}.hero-file-item:last-child{border-bottom:none}.hero-file-item-info{display:flex;align-items:center;gap:.5rem}.hero-file-item-name{font-size:.875rem;color:#333}.hero-file-item-lines{font-size:.75rem;color:#888}.hero-file-item-remove{background:none;border:none;color:#ccc;cursor:pointer;padding:.25rem;font-size:1.1rem}.hero-file-item-remove:hover{color:#f66}.text-to-excel-page-legacy{min-height:100vh;display:flex;flex-direction:column}.page-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:#fff;border-bottom:1px solid #e0e0e0}.page-header h1{margin:0;font-size:1.5rem;color:#333}.detected-month-badge{background:#4a90d9;color:#fff;padding:.25rem .75rem;border-radius:4px;font-size:.875rem}.page-main{flex:1;padding:1rem 2rem;display:flex;flex-direction:column;gap:1.5rem}.upload-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.upload-section{background:#fff;border-radius:8px;padding:1rem;border:1px solid #e0e0e0}.upload-section h2{margin:0 0 1rem;font-size:1rem;color:#555}.data-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;min-height:400px}.data-section{background:#fff;border-radius:8px;padding:1rem;display:flex;flex-direction:column;border:1px solid #e0e0e0}.data-section h2{margin:0 0 1rem;font-size:1rem;color:#555}.mappings-section{background:#fff;border-radius:8px;padding:1rem;border:1px solid #e0e0e0}.mappings-section h2{margin:0 0 1rem;font-size:1rem;color:#555}.generate-row{background:#fff;border-radius:8px;padding:1rem;border:1px solid #e0e0e0}.generate-row h2{margin:0 0 1rem;font-size:1rem;color:#555}.summary-bar{display:flex;gap:2rem;padding:.75rem 1rem;background:#f5f5f5;border-radius:4px;font-size:.875rem;color:#666}.text-file-uploader{display:flex;flex-direction:column;gap:1.5rem;width:100%}.drop-zone{border:3px dashed #ccc;border-radius:16px;padding:4rem 3rem;text-align:center;transition:all .2s;background:#fff;cursor:pointer;width:100%}.drop-zone:hover{border-color:#4a90d9;background:#f8faff}.drop-zone.loading{border-color:#4a90d9;background:#f8faff;cursor:wait}.drop-zone.compact{padding:.75rem 1.5rem;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.5rem;border-width:2px;border-style:dashed;border-color:#ddd;background:#fafafa}.drop-zone.compact:hover{border-color:#4a90d9;background:#f8faff}.drop-zone .compact-text{color:#666;font-size:.9rem;margin:0}.file-input-label.compact{padding:.35rem .75rem;font-size:.85rem;margin:0}.drop-zone p{margin:0 0 .75rem;color:#555;font-size:1.25rem}.drop-zone .file-types{font-size:1rem;color:#888}.drop-zone .file-info{display:flex;flex-direction:column;align-items:center;gap:.75rem}.drop-zone .file-name{font-weight:600;color:#333;font-size:1.25rem}.drop-zone .file-meta{font-size:1rem;color:#666}.select-file-btn{margin-top:1.5rem;padding:1rem 2.5rem;background:#4a90d9;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1.125rem;font-weight:500;transition:background .2s}.select-file-btn:hover{background:#3a7fc9}.change-file-btn{margin-top:1rem;padding:.75rem 1.5rem;background:transparent;color:#4a90d9;border:2px solid #4a90d9;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .2s}.change-file-btn:hover{background:#f0f7ff}.file-actions{display:flex;gap:.75rem;align-items:center;margin-top:1rem}.file-actions .change-file-btn{margin-top:0}.remove-file-btn{width:32px;height:32px;padding:0;background:transparent;color:#999;border:1px solid #ddd;border-radius:50%;cursor:pointer;font-size:1rem;font-weight:400;transition:all .2s;display:flex;align-items:center;justify-content:center}.remove-file-btn:hover{background:#fee;color:#c44;border-color:#fcc}.drop-hint{font-size:.875rem}.file-input-label{display:inline-block;padding:.5rem 1rem;background:#4a90d9;color:#fff;border-radius:4px;cursor:pointer;margin-top:.5rem}.file-input-label:hover{background:#3a80c9}.uploaded-files{width:100%;margin-top:2rem}.uploaded-files h4{margin:0 0 1rem;color:#555;font-size:1.125rem;font-weight:500}.file-list{list-style:none;padding:0;margin:0 0 1.5rem;max-height:40vh;overflow-y:auto;width:100%}.file-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:#fff;border-radius:8px;margin-bottom:.5rem;border:1px solid #e0e0e0}.file-name{font-size:1rem;color:#333}.remove-btn{background:none;border:none;color:#ccc;cursor:pointer;padding:.5rem;font-size:1.25rem;transition:color .2s}.remove-btn:hover{color:#f44}.file-lines{font-size:.9rem;color:#888;margin-left:.75rem}.parse-btn{width:100%;padding:.75rem;background:#4a90d9;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.parse-btn:hover:not(:disabled){background:#3a80c9}.parse-btn:disabled{opacity:.6;cursor:not-allowed}.error-message{padding:.75rem;background:#3e1e1e;border:1px solid #f66;border-radius:4px;color:#f88;font-size:.875rem}.template-uploader{display:flex;flex-direction:column;gap:1.5rem;width:100%}.upload-area{border:2px dashed #444;border-radius:8px;padding:2rem;text-align:center}.upload-label{display:flex;flex-direction:column;align-items:center;gap:.5rem;cursor:pointer;color:#888}.upload-label:hover{color:#4a90d9}.upload-hint{font-size:.75rem;color:#666}.template-info{background:#f8f8f8;border-radius:8px;padding:1rem}.template-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.template-name{color:#4a90d9;font-weight:500}.template-sheets{font-size:.875rem;color:#888}.parsed-data-viewer{flex:1;display:flex;flex-direction:column;overflow:hidden}.parsed-data-viewer.empty{justify-content:center;align-items:center;color:#666}.viewer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.viewer-header h3{margin:0;font-size:1rem;color:#ccc}.viewer-summary{display:flex;gap:1rem;margin-bottom:.75rem;font-size:.875rem;color:#888}.search-input{width:100%;padding:.5rem;background:#fff;border:1px solid #ccc;border-radius:4px;color:#333;margin-bottom:.75rem}.search-input:focus{outline:none;border-color:#4a90d9}.pattern-list{flex:1;overflow-y:auto}.pattern-group{margin-bottom:.5rem}.pattern-header{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#f5f5f5;border-radius:4px;cursor:pointer}.pattern-header:hover{background:#e8e8e8}.expand-icon{color:#4a90d9;font-family:monospace}.pattern-name{flex:1;font-weight:500;color:#333}.pattern-count{color:#888;font-size:.875rem}.item-list{padding:.25rem 0 .25rem 1rem}.item{padding:.5rem;border-radius:4px;margin-bottom:.25rem;cursor:pointer;border:1px solid transparent}.item:hover{background:#f0f0f0}.item.selected{background:#e3f2fd;border-color:#4a90d9}.item.mapped{border-left:3px solid #4a9}.item-identifier{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.mapped-indicator{color:#4a9;font-size:.875rem}.item-code{color:#4a90d9;font-weight:500;font-size:.875rem}.item-desc{color:#666;font-size:.875rem}.item-values{display:flex;flex-wrap:wrap;gap:.25rem}.value-chip{font-size:.75rem;padding:.125rem .375rem;background:#e8e8e8;border-radius:3px;color:#555}.value-chip.more{color:#666}.mapping-builder{display:flex;flex-direction:column;gap:1rem}.mapping-builder h3{margin:0;font-size:1rem;color:#ccc}.mapping-form{display:flex;flex-direction:column;gap:1rem}.form-section{background:#f8f8f8;padding:1rem;border-radius:8px}.form-section>label{display:block;margin-bottom:.5rem;color:#888;font-size:.875rem}.source-display{display:flex;flex-direction:column;gap:.5rem}.source-display .placeholder{color:#666;font-style:italic}.selected-item{display:flex;flex-direction:column;gap:.25rem}.item-pattern{color:#4a90d9;font-size:.75rem;text-transform:uppercase}.item-identifier{color:#ccc;font-size:.875rem}.column-select{display:flex;align-items:center;gap:.5rem}.column-select label{color:#888;font-size:.875rem}.column-select select{flex:1;padding:.375rem;background:#fff;border:1px solid #ccc;border-radius:4px;color:#333}.preview-value{font-size:.875rem;color:#4a9}.target-inputs{display:flex;gap:1rem}.sheet-select,.cell-input{flex:1;display:flex;flex-direction:column;gap:.25rem}.sheet-select label,.cell-input label{color:#888;font-size:.875rem}.sheet-select select,.cell-input input{padding:.375rem;background:#fff;border:1px solid #ccc;border-radius:4px;color:#333}.target-preview{margin-top:.5rem;font-size:.875rem;color:#4a90d9}.add-mapping-btn{padding:.75rem;background:#4a90d9;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.add-mapping-btn:hover:not(:disabled){background:#3a80c9}.add-mapping-btn:disabled{opacity:.6;cursor:not-allowed}.mapping-list{display:flex;flex-direction:column;gap:.5rem}.mapping-list.empty{padding:2rem;text-align:center;color:#666}.mapping-list.empty .hint{font-size:.875rem;margin-top:.5rem}.list-header{display:flex;justify-content:space-between;align-items:center}.list-header h3{margin:0;font-size:1rem;color:#ccc}.clear-btn{padding:.375rem .75rem;background:#3e1e1e;color:#f88;border:1px solid #f66;border-radius:4px;cursor:pointer;font-size:.875rem}.clear-btn:hover{background:#4e2e2e}.mappings-container{max-height:300px;overflow-y:auto}.mapping-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#f8f8f8;border-radius:4px;margin-bottom:.25rem}.mapping-index{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#e0e0e0;border-radius:50%;font-size:.75rem;color:#666}.mapping-content{flex:1;display:flex;align-items:center;gap:.5rem;font-size:.875rem}.mapping-source{display:flex;align-items:center;gap:.5rem}.mapping-source .pattern{color:#4a90d9;font-size:.75rem}.mapping-source .identifier{color:#333}.mapping-source .column{color:#888;font-size:.75rem}.mapping-arrow{color:#666}.mapping-target{display:flex;align-items:center}.mapping-target .sheet{color:#4a9}.mapping-target .cell{color:#333}.generate-section{display:flex;flex-direction:column;gap:1rem}.generate-btn{padding:1rem 2rem;background:#4a9;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1.125rem;font-weight:500}.generate-btn:hover:not(:disabled){background:#3a8}.generate-btn:disabled{opacity:.6;cursor:not-allowed}.generate-requirements{padding:1rem;background:#f8f8f8;border-radius:4px}.generate-requirements p{margin:0 0 .5rem;color:#888}.generate-requirements ul{margin:0;padding-left:1.5rem;color:#f88}.generate-stats{display:flex;gap:1rem}.generate-stats .stat{padding:.5rem 1rem;border-radius:4px;font-size:.875rem}.generate-stats .stat.found{background:#1a3a2a;color:#4a9}.generate-stats .stat.missing{background:#3a2a1a;color:#fa6}.mapping-status{display:flex;align-items:center;gap:1rem}.step-indicator{padding:.375rem .75rem;background:#f0f0f0;border-radius:4px;font-size:.875rem;color:#666}.step-indicator.active{background:#e3f2fd;color:#4a90d9;border:1px solid #4a90d9}.visual-mapping-container{display:flex;flex-direction:column;gap:1rem}.viewer-section{background:#fff;border-radius:8px;padding:1rem;border:1px solid #e0e0e0}.viewer-section .section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.viewer-section .section-header h2{margin:0;font-size:1rem;color:#555}.selection-badge{padding:.25rem .75rem;border-radius:4px;font-size:.875rem;font-family:monospace}.selection-badge.source{background:#1a3a2a;color:#4a9;border:1px solid #4a9}.selection-badge.target{background:#1a3a5e;color:#4a90d9;border:1px solid #4a90d9}.text-file-viewer{display:flex;flex-direction:column;flex:1;width:100%;min-height:0;max-height:100%;overflow:hidden;background:#fff;border-radius:12px;padding:1rem;box-sizing:border-box;box-shadow:0 2px 8px #00000014;scrollbar-width:none;-ms-overflow-style:none}.text-file-viewer::-webkit-scrollbar{display:none}.text-file-viewer.empty{justify-content:center;align-items:center;color:#666}.file-tabs{display:flex;gap:.25rem;margin-bottom:.5rem;overflow-x:auto;padding-bottom:.25rem;flex-shrink:0}.file-tab{padding:.375rem .75rem;background:#f0f0f0;border:none;border-radius:4px 4px 0 0;color:#666;cursor:pointer;font-size:.75rem;white-space:nowrap}.file-tab:hover{background:#e0e0e0;color:#333}.file-tab.active{background:#fff;color:#333;border:1px solid #ccc;border-bottom:none}.text-content{display:flex;flex:1;min-height:0;overflow:auto;background:#fafafa;border:1px solid #e0e0e0;border-radius:4px;font-family:Consolas,Monaco,monospace;font-size:.8125rem;line-height:1.4}.line-numbers{display:flex;flex-direction:column;padding:.5rem;background:#f0f0f0;color:#888;text-align:right;-webkit-user-select:none;user-select:none;min-width:40px}.line-number{padding:0 .5rem}.lines{flex:1;padding:.5rem;white-space:pre}.line{min-height:1.4em}.clickable-number{cursor:pointer;padding:0 2px;border-radius:2px;transition:background-color .15s}.clickable-number:hover{background:#e3f2fd}.clickable-number.selected{background:#c8e6c9;color:#2e7d32;outline:1px solid #4a9}.clickable-number.mapped{background:#e3f2fd;color:#1565c0;border-bottom:1px dashed #4a90d9}.text-file-viewer .selection-info{display:flex;gap:1rem;padding:.5rem;background:#f5f5f5;border-radius:4px;margin-top:.5rem;font-size:.875rem}.selection-value{color:#4a9;font-family:monospace}.selection-anchor{color:#888}.load-more-btn{width:100%;padding:.5rem;margin-top:.5rem;background:#f5f5f5;border:1px solid #4a90d9;border-radius:4px;color:#4a90d9;cursor:pointer;font-size:.875rem;flex-shrink:0}.load-more-btn:hover{background:#e3f2fd}.lines-info{text-align:center;padding:.25rem;font-size:.75rem;color:#666;flex-shrink:0}.file-type-badge{font-size:.625rem;padding:.125rem .375rem;margin-left:.375rem;background:#e0e0e0;border-radius:3px;color:#666;text-transform:uppercase}.file-tab.active .file-type-badge{background:#4a90d9;color:#fff}.view-mode-toggle{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;flex-shrink:0}.view-mode-buttons{display:flex;gap:.25rem}.view-mode-toggle button{padding:.25rem .75rem;background:#f0f0f0;border:1px solid #ddd;border-radius:4px;font-size:.75rem;cursor:pointer;color:#666}.view-mode-toggle button:hover{background:#e0e0e0}.view-mode-toggle button.active{background:#4a90d9;border-color:#4a90d9;color:#fff}.showing-info{flex:1;text-align:center;font-size:.75rem;color:#666}.parsed-info{font-size:.75rem;color:#888}.parsed-table-container{flex:1;overflow:auto;background:#fafafa;border:1px solid #e0e0e0;border-radius:4px;min-height:0}.parsed-table{width:100%;border-collapse:collapse;font-family:Consolas,Monaco,monospace;font-size:.8125rem}.parsed-table thead{position:sticky;top:0;z-index:10;background:#f5f5f5}.parsed-table th{padding:.5rem .75rem;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #ddd;white-space:nowrap}.parsed-table th.row-num-header{width:50px;text-align:center}.parsed-table th.identifier-header{min-width:200px;max-width:350px}.parsed-table th.value-header{min-width:100px;text-align:right}.parsed-table td{padding:.375rem .75rem;border-bottom:1px solid #eee;vertical-align:middle}.parsed-table td.row-num{text-align:center;color:#888;font-size:.75rem}.parsed-table td.identifier{max-width:350px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#333}.parsed-table td.value-cell{text-align:right;font-variant-numeric:tabular-nums}.parsed-table td.value-cell.clickable{cursor:pointer;transition:background-color .15s}.parsed-table td.value-cell.clickable:hover{background:#e3f2fd}.parsed-table td.value-cell.selected{background:#c8e6c9;color:#2e7d32;font-weight:600}.parsed-table td.value-cell.mapped{background:#e3f2fd;color:#1565c0}.parsed-row.total td{font-weight:600;background:#f9f9f9}.parsed-row.subtotal td{font-weight:500;background:#fafafa}.parsed-row.header td{font-weight:600;color:#666;background:#f5f5f5}.parse-error{padding:1rem;text-align:center;color:#666}.parse-error p{margin-bottom:1rem;color:#d32f2f}.excel-template-viewer{display:flex;flex-direction:column;gap:.5rem;flex:1;width:100%;min-height:0;max-height:100%;background:#fff;border-radius:12px;padding:1rem;box-shadow:0 2px 8px #00000014;overflow:hidden}.excel-template-viewer.empty{justify-content:center;align-items:center;color:#666}.sheet-selector{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.sheet-selector label{color:#888;font-size:.875rem}.sheet-selector select{padding:.375rem .75rem;background:#fff;border:1px solid #ccc;border-radius:4px;color:#333;font-size:.875rem}.sheet-info{margin-left:1rem;color:#666;font-size:.75rem}.loading-indicator{display:flex;align-items:center;gap:1rem}.cancel-btn{padding:.25rem .5rem;background:#3e1e1e;color:#f88;border:1px solid #f66;border-radius:4px;cursor:pointer;font-size:.75rem}.loading-state{padding:2rem;text-align:center;color:#888}.excel-grid-wrapper{flex:1;min-height:300px;width:100%;border-radius:4px;overflow:hidden}.excel-template-viewer .ag-theme-alpine{--ag-background-color: #fff;--ag-header-background-color: #f5f5f5;--ag-odd-row-background-color: #fafafa;--ag-row-hover-color: #f0f7ff;--ag-selected-row-background-color: transparent;--ag-border-color: #e0e0e0;--ag-header-foreground-color: #555;--ag-foreground-color: #333;--ag-font-size: 12px;--ag-font-family: "Consolas", "Monaco", monospace}.excel-template-viewer .ag-cell{cursor:pointer}.excel-template-viewer .row-number-cell{background:#f5f5f5!important;color:#888!important;cursor:default!important;text-align:center}.excel-template-viewer .cell-selected{background:#e3f2fd!important;outline:2px solid #4a90d9;outline-offset:-2px}.excel-template-viewer .cell-mapped{background:#e8f5e9!important;border-left:3px solid #4a9!important}.excel-template-viewer .cell-formula{color:#e65100!important;font-style:italic}.excel-template-viewer .sheet-tabs{display:flex;align-items:center;gap:.25rem;margin-bottom:.5rem;overflow-x:auto;overflow-y:hidden;padding-bottom:.25rem;flex-shrink:0;flex-wrap:nowrap!important;max-width:100%}.excel-template-viewer .sheet-tab{padding:.375rem .75rem;background:#f0f0f0;border:1px solid #ccc;border-radius:4px 4px 0 0;color:#666;cursor:pointer;font-size:.75rem;transition:all .15s;white-space:nowrap;flex-shrink:0}.excel-template-viewer .sheet-info{flex-shrink:0;white-space:nowrap}.excel-template-viewer .sheet-tab:hover{background:#e0e0e0;color:#333}.excel-template-viewer .sheet-tab.active{background:#fff;color:#4a90d9;border-bottom-color:#fff}.excel-template-viewer .selection-info{padding:.75rem;background:#f5f5f5;border-radius:4px;margin-top:.5rem;font-size:.875rem;flex-shrink:0}.excel-template-viewer .selection-info.enhanced{display:flex;flex-direction:column;gap:.5rem}.excel-template-viewer .selection-info .selection-row{display:flex;gap:.5rem;align-items:flex-start}.excel-template-viewer .selection-info .selection-label{color:#888;font-size:.8rem;min-width:60px;flex-shrink:0}.excel-template-viewer .selection-info .selection-value{color:#333;font-family:Consolas,Monaco,monospace;font-size:.9rem}.excel-template-viewer .selection-info .selection-value.formula{color:#e65100;font-size:.85rem;word-break:break-all;background:#fff3e0;padding:.25rem .5rem;border-radius:3px;border-left:3px solid #ff9800}.excel-template-viewer .selection-info .formula-row{padding-top:.5rem;border-top:1px solid #e0e0e0;margin-top:.25rem}.selection-cell{color:#4a90d9;font-family:monospace}.selection-current{color:#888}.mapping-builder-section{background:#fff;border-radius:8px;padding:1rem;border:1px solid #e0e0e0}.mapping-builder-section h2{margin:0 0 1rem;font-size:1rem;color:#555}.visual-mapping-builder{display:flex;flex-direction:column;gap:1rem}.mapping-preview{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f8f8f8;border-radius:8px}.mapping-source-preview,.mapping-target-preview{flex:1;padding:.75rem;background:#fff;border-radius:4px;border:1px solid #e0e0e0}.mapping-source-preview h4,.mapping-target-preview h4{margin:0 0 .5rem;font-size:.75rem;color:#666;text-transform:uppercase}.mapping-source-preview .value,.mapping-target-preview .value{font-family:monospace;font-size:1rem}.mapping-source-preview .value{color:#4a9}.mapping-target-preview .value{color:#4a90d9}.mapping-arrow{font-size:1.5rem;color:#666}.no-selection{color:#666;font-style:italic}.mapping-actions{display:flex;gap:.5rem}.add-mapping-btn{flex:1;padding:.75rem;background:#4a9;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.add-mapping-btn:hover:not(:disabled){background:#3a8}.add-mapping-btn:disabled{opacity:.5;cursor:not-allowed}.clear-selection-btn{padding:.75rem 1rem;background:#3e1e1e;color:#f88;border:1px solid #f66;border-radius:4px;cursor:pointer}.clear-selection-btn:hover{background:#4e2e2e}.uploaded-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.uploaded-header h4{margin:0;color:#aaa;font-size:.875rem}.clear-all-btn{padding:.25rem .5rem;background:#3e1e1e;color:#f88;border:1px solid #f66;border-radius:4px;cursor:pointer;font-size:.75rem}.clear-all-btn:hover{background:#4e2e2e}.file-lines{font-size:.75rem;color:#666;margin-left:.5rem}.mapping-source .value{color:#4a9;font-family:monospace;font-weight:500}.mapping-source .anchor{color:#4a90d9;font-size:.75rem;margin-left:.5rem}.mapping-source .file{color:#666;font-size:.75rem;margin-left:.5rem}.mapping-source .sum-indicator{background:#e8f5e9;color:#2e7d32;font-family:monospace;font-weight:600;font-size:.75rem;padding:2px 6px;border-radius:3px}.mapping-source .value-count{color:#4a9;font-family:monospace;font-size:.875rem;margin-left:.25rem}.anchor-info{font-size:.75rem;color:#888;margin-top:.25rem}.current-value{font-size:.75rem;color:#666;margin-top:.25rem}.review-mapping-list{display:flex;flex-direction:column;gap:1rem;flex:1;min-height:0;overflow:hidden}.review-mapping-list.empty{padding:3rem 2rem;text-align:center;background:#fafafa;border-radius:12px;border:2px dashed #e0e0e0}.review-empty-icon{color:#ccc;margin-bottom:1rem}.review-empty-title{font-size:1.1rem;font-weight:500;color:#666;margin:0 0 .5rem}.review-empty-hint{font-size:.875rem;color:#999;margin:0}.review-list-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.75rem;border-bottom:1px solid #eee;flex-shrink:0}.review-list-title{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#555;font-size:.95rem}.review-list-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#4a9;border-radius:50%;color:#fff}.review-clear-btn{padding:.375rem .75rem;background:transparent;border:1px solid #e57373;border-radius:4px;color:#e57373;font-size:.8rem;cursor:pointer;transition:all .15s}.review-clear-btn:hover{background:#ffebee}.review-mappings-container{display:flex;flex-direction:column;gap:.75rem;flex:1;min-height:0;overflow-y:auto}.review-mapping-card{background:#fff;border:1px solid #e8e8e8;border-radius:10px;overflow:hidden;box-shadow:0 1px 4px #0000000d;transition:box-shadow .15s;flex-shrink:0}.review-mapping-card:hover{box-shadow:0 2px 8px #0000001a}.review-card-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#f8f9fa;border-bottom:1px solid #eee}.review-card-index{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:#4a9;color:#fff;border-radius:50%;font-size:.8rem;font-weight:600;flex-shrink:0}.review-card-file{flex:1;display:flex;align-items:center;gap:.5rem;color:#666;font-size:.85rem;overflow:hidden}.review-card-file svg{flex-shrink:0;color:#888}.review-card-file span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.review-card-remove{background:none;border:none;padding:.375rem;border-radius:4px;color:#ccc;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.review-card-remove:hover{background:#ffebee;color:#e57373}.review-card-body{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 3rem;gap:1rem}.review-card-source{flex:1;display:flex;flex-direction:column;gap:.5rem;min-width:0}.review-card-label{font-size:.7rem;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.5px}.review-card-values{display:flex;flex-wrap:wrap;gap:.375rem}.review-value-chip{display:inline-flex;align-items:center;gap:.375rem;background:#e8f5e9;border-radius:4px;padding:.25rem .5rem}.review-value-text{font-family:Consolas,Monaco,monospace;font-size:.85rem;color:#2e7d32;font-weight:500}.review-value-line{font-size:.65rem;color:#81c784;background:#c8e6c9;padding:.125rem .25rem;border-radius:2px}.review-card-total{display:flex;align-items:center;gap:.5rem;padding-top:.5rem;border-top:1px dashed #c8e6c9;margin-top:.25rem}.review-total-label{font-size:.75rem;color:#666}.review-total-value{font-family:Consolas,Monaco,monospace;font-size:.95rem;font-weight:600;color:#2e7d32;background:#c8e6c9;padding:.25rem .5rem;border-radius:4px}.review-card-single{display:flex;align-items:center;gap:.75rem}.review-single-value{font-family:Consolas,Monaco,monospace;font-size:1rem;color:#2e7d32;font-weight:500;background:#e8f5e9;padding:.375rem .75rem;border-radius:4px}.review-single-line{font-size:.75rem;color:#888}.review-card-arrow{display:flex;align-items:center;justify-content:center;padding:0 .5rem;color:#bbb;flex-shrink:0}.review-card-target{display:flex;flex-direction:column;gap:.5rem;align-items:flex-end}.review-target-cell{display:flex;align-items:center;gap:.5rem;font-family:Consolas,Monaco,monospace;font-size:1rem;color:#4a90d9;font-weight:500;background:#e3f2fd;padding:.375rem .75rem;border-radius:4px;width:fit-content}.review-target-cell svg{color:#64b5f6;flex-shrink:0}.review-card-coltype{display:flex;align-items:center;justify-content:flex-end;padding-top:.5rem;margin-top:.5rem;border-top:1px solid #f0f0f0}.review-coltype-toggle{display:flex;border-radius:4px;overflow:hidden;border:1px solid #ddd}.review-coltype-btn{padding:.25rem .5rem;font-size:.7rem;font-weight:500;border:none;background:#f5f5f5;color:#666;cursor:pointer;transition:all .15s ease}.review-coltype-btn:first-child{border-right:1px solid #ddd}.review-coltype-btn:hover:not(.active){background:#eee}.review-coltype-btn.active{background:#4a90d9;color:#fff}.review-mapping-card{cursor:pointer}.review-mapping-card.editing{border-color:#4a90d9;box-shadow:0 0 0 2px #4a90d933}.review-mapping-card.editing .review-card-header{background:#e3f2fd}.review-mapping-card.editing .review-card-index{background:#4a90d9}.panel-mapping-item{cursor:pointer;transition:all .15s}.panel-mapping-item:hover{background:#f0f0f0}.panel-mapping-item.editing{background:#e3f2fd;border-color:#4a90d9}.panel-confirm-btn.editing{background:#4a90d9}.panel-confirm-btn.editing:hover:not(:disabled){background:#3a80c9}.config-manager{padding:10px 12px;border-bottom:1px solid #e5e0d8;background:#fdfcfa}.config-manager-signed-out{padding:8px 12px}.config-manager-message{display:flex;align-items:center;gap:6px;color:#8a8580;font-size:11px}.config-manager-header{margin-bottom:8px}.config-name{display:flex;align-items:center;gap:6px}.config-name-text{font-size:12px;font-weight:500;color:#3a3530;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-name-empty{color:#8a8580;font-style:italic}.config-unsaved-dot{width:6px;height:6px;background:#e67e22;border-radius:50%;flex-shrink:0}.config-manager-actions{display:flex;gap:6px}.config-action-btn{display:flex;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:500;border:1px solid #d5d0c8;border-radius:4px;background:#fff;color:#5a5550;cursor:pointer;transition:all .15s}.config-action-btn:hover:not(:disabled){background:#f5f0e8;border-color:#c5c0b8}.config-action-btn:disabled{opacity:.5;cursor:not-allowed}.config-save-btn:hover:not(:disabled){border-color:#4a90d9;color:#4a90d9}.config-dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.config-dialog{background:#fff;border-radius:8px;width:100%;max-width:400px;box-shadow:0 4px 24px #0003}.config-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e5e0d8}.config-dialog-header h3{margin:0;font-size:16px;font-weight:600;color:#3a3530}.config-dialog-close{padding:4px;border:none;background:none;color:#8a8580;cursor:pointer;border-radius:4px}.config-dialog-close:hover{background:#f5f0e8;color:#5a5550}.config-dialog-body{padding:20px}.config-dialog-label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;color:#5a5550}.config-dialog-input{padding:10px 12px;font-size:14px;border:1px solid #d5d0c8;border-radius:6px;outline:none}.config-dialog-input:focus{border-color:#4a90d9;box-shadow:0 0 0 3px #4a90d91a}.config-dialog-error{margin-top:12px;padding:8px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:12px}.config-dialog-info{margin-top:16px;padding:12px;background:#f9f5f0;border-radius:6px}.config-dialog-info-item{display:flex;justify-content:space-between;font-size:12px;color:#5a5550}.config-dialog-info-item+.config-dialog-info-item{margin-top:6px}.config-dialog-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid #e5e0d8}.config-dialog-btn{padding:8px 16px;font-size:13px;font-weight:500;border-radius:6px;cursor:pointer;transition:all .15s}.config-dialog-cancel{border:1px solid #d5d0c8;background:#fff;color:#5a5550}.config-dialog-cancel:hover:not(:disabled){background:#f5f0e8}.config-dialog-save{border:none;background:#4a90d9;color:#fff}.config-dialog-save:hover:not(:disabled){background:#3a80c9}.config-dialog-save:disabled{opacity:.6;cursor:not-allowed}.config-drawer-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:flex-end;z-index:1000}.config-drawer{background:#fff;width:100%;max-width:360px;height:100%;display:flex;flex-direction:column;box-shadow:-4px 0 24px #00000026}.config-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e5e0d8;flex-shrink:0}.config-drawer-header h3{margin:0;font-size:16px;font-weight:600;color:#3a3530}.config-drawer-close{padding:4px;border:none;background:none;color:#8a8580;cursor:pointer;border-radius:4px}.config-drawer-close:hover{background:#f5f0e8;color:#5a5550}.config-drawer-body{flex:1;overflow-y:auto;padding:12px}.config-drawer-loading,.config-drawer-error,.config-drawer-empty{padding:40px 20px;text-align:center;color:#8a8580;font-size:13px}.config-drawer-error{color:#dc2626}.config-drawer-empty p{margin:0 0 8px}.config-list{list-style:none;margin:0;padding:0}.config-list-item{position:relative;margin-bottom:8px}.config-list-item-main{display:block;width:100%;padding:12px;text-align:left;border:1px solid #e5e0d8;border-radius:8px;background:#fff;cursor:pointer;transition:all .15s}.config-list-item-main:hover:not(:disabled){background:#f9f5f0;border-color:#d5d0c8}.config-list-item-main:disabled{opacity:.6;cursor:not-allowed}.config-list-item-name{font-size:14px;font-weight:500;color:#3a3530;margin-bottom:6px}.config-list-item-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:#8a8580}.config-list-item-meta span{background:#f5f0e8;padding:2px 6px;border-radius:4px}.config-list-item-date{margin-top:6px;font-size:11px;color:#a5a0a0}.config-list-item-delete{position:absolute;top:8px;right:8px;padding:6px;border:none;background:none;color:#a5a0a0;cursor:pointer;border-radius:4px;opacity:0;transition:all .15s}.config-list-item:hover .config-list-item-delete{opacity:1}.config-list-item-delete:hover{background:#fef2f2;color:#dc2626}.config-list-item-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#ffffffe6;border-radius:8px;font-size:12px;color:#5a5550}.parsed-table th.type-header{width:40px;text-align:center}.parsed-table td.row-type{text-align:center;font-size:.7rem;font-weight:600;color:#888}.parsed-row.section td{background:#e8f4fc;font-weight:600;color:#1565c0;border-bottom:2px solid #90caf9}.parsed-row.section td.section-cell{padding-left:1rem;font-size:.85rem}.parsed-row.section td.row-type{color:#1565c0}.parsed-row.separator td{background:#f0f0f0;color:#999;font-style:italic;padding:.25rem .75rem;border-bottom:1px dashed #ccc}.parsed-row.separator td.separator-cell{text-align:center;color:#aaa}.parsed-row.header td{background:#fff8e1;color:#f57f17;font-weight:500}.parsed-row.header td.header-cell{font-size:.75rem}.parsed-row.data td.row-type{color:#4a9}.parsed-row.total td.row-type{color:#c62828}.parsed-row.subtotal td.row-type{color:#ef6c00}.line-span{font-size:.6rem;color:#4a90d9;background:#e3f2fd;padding:0 3px;border-radius:2px;margin-left:2px;vertical-align:super}.parsed-row.has-context td.identifier{border-left:3px solid #90caf9;padding-left:calc(.75rem - 3px)}.parsed-table td.value-cell.empty{color:#ccc}.tte-page-download-btn{position:fixed;bottom:24px;right:24px;z-index:100;width:56px;height:56px;border-radius:50%;background:#4a9;border:none;box-shadow:0 4px 12px #4a96;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:#fff}.tte-page-download-btn:hover:not(:disabled){background:#3a8;box-shadow:0 6px 16px #44aa9980;transform:translateY(-2px)}.tte-page-download-btn:disabled{background:#b0bec5;cursor:not-allowed;box-shadow:0 2px 8px #0000001a}.tte-page-download-btn svg{stroke:#fff}.tte-page-download-btn .spinning{animation:tte-spin 1s linear infinite}@keyframes tte-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-container{min-height:100vh;display:flex;flex-direction:column}.main-nav{display:flex;align-items:center;justify-content:space-between;padding:0 2rem;height:56px;background:#1a1a2e;border-bottom:1px solid #333;flex-shrink:0}.nav-brand{font-size:.9rem;font-weight:500;color:#fff;background:#4a90d9;padding:.5rem 1rem;border-radius:4px;text-decoration:none;transition:all .2s}.nav-brand:hover{background:#3a80c9}.nav-links{display:flex;gap:.5rem;margin-left:auto}.nav-link{padding:.5rem 1rem;color:#aaa;text-decoration:none;border-radius:4px;font-size:.9rem;transition:all .2s}.nav-link:hover{color:#fff;background:#ffffff1a}.nav-link.active{color:#fff;background:#4a90d9}.nav-auth{display:flex;align-items:center;margin-left:1.5rem}.nav-sign-in-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#fff;border:none;border-radius:4px;font-size:.85rem;font-weight:500;color:#333;cursor:pointer;transition:all .2s}.nav-sign-in-btn:hover{background:#f0f0f0;box-shadow:0 2px 4px #0000001a}.nav-user-profile{display:flex;align-items:center;gap:10px}.nav-user-avatar{width:32px;height:32px;border-radius:50%;border:2px solid rgba(255,255,255,.3)}.nav-user-name{color:#fff;font-size:.85rem;font-weight:500;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-sign-out-btn{padding:6px 12px;background:transparent;border:1px solid rgba(255,255,255,.3);border-radius:4px;color:#ccc;font-size:.8rem;cursor:pointer;transition:all .2s}.nav-sign-out-btn:hover{background:#ffffff1a;border-color:#ffffff80;color:#fff}.nav-loading{color:#aaa;font-size:.85rem}.page-content{flex:1;background:#f5f5f5}.app{max-width:1400px;margin:0 auto;padding:clamp(10px,3vw,20px);min-height:100vh}.app-header{text-align:center;margin-bottom:clamp(15px,4vw,30px)}.app-header h1{font-size:clamp(1.25rem,4vw,2rem);margin:0 0 clamp(4px,1vw,8px) 0;color:#1a1a2e}.app-header .subtitle{color:var(--text-secondary);font-size:clamp(.85rem,2.5vw,1rem)}.app-main{display:flex;flex-direction:column;gap:clamp(15px,4vw,30px)}section{background:var(--background-white);border-radius:clamp(4px,1vw,8px);padding:clamp(12px,3vw,20px);box-shadow:0 2px 8px #0000001a}section h2{font-size:clamp(1rem,2.5vw,1.2rem);margin:0 0 clamp(10px,2vw,16px) 0;color:var(--text-primary);border-bottom:2px solid var(--primary-color);padding-bottom:clamp(4px,1vw,8px)}.upload-row{display:flex;flex-wrap:wrap;gap:clamp(12px,3vw,20px)}.upload-row>section{flex:1 1 300px;min-width:280px}.excel-uploader{width:100%}.drop-zone{border:2px dashed var(--border-light);border-radius:clamp(4px,1vw,8px);padding:clamp(20px,5vw,40px) clamp(12px,3vw,20px);text-align:center;cursor:pointer;transition:all .2s;background:#fafafa}.drop-zone:hover{border-color:var(--primary-color);background:#f0f4ff}.drop-zone.loading{border-color:var(--primary-color);background:#f0f4ff;cursor:wait}.drop-zone p{margin:0 0 clamp(4px,1vw,8px) 0;color:var(--text-secondary);font-size:clamp(.85rem,2.5vw,1rem)}.drop-zone .file-types{font-size:clamp(.75rem,2vw,.85rem);color:var(--text-muted)}.loading-indicator{color:var(--primary-color);font-weight:500;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(6px,1.5vw,10px);font-size:clamp(.85rem,2.5vw,1rem)}.loading-indicator:before{content:"";width:clamp(16px,3vw,20px);height:clamp(16px,3vw,20px);border:3px solid #e0e0e0;border-top-color:var(--primary-color);border-radius:50%;animation:spinner .8s linear infinite}@keyframes spinner{to{transform:rotate(360deg)}}.upload-progress{display:flex;flex-direction:column;align-items:center;gap:clamp(6px,1.5vw,10px);width:100%;padding:0 clamp(12px,3vw,20px)}.upload-progress span{color:var(--primary-color);font-weight:500;font-size:clamp(.85rem,2.5vw,1rem)}.progress-bar{width:100%;max-width:300px;height:clamp(6px,1vw,8px);background:#e0e0e0;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-color),var(--primary-dark));border-radius:4px;transition:width .2s ease-out}.file-info{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(8px,2vw,16px)}.file-name{font-weight:500;color:var(--text-primary);background:var(--primary-light);padding:clamp(6px,1.5vw,8px) clamp(10px,2vw,16px);border-radius:4px;font-size:clamp(.85rem,2.5vw,1rem);word-break:break-all}.select-file-btn,.change-file-btn{background:var(--primary-color);color:#fff;border:none;padding:clamp(8px,2vw,10px) clamp(14px,3vw,20px);border-radius:4px;cursor:pointer;font-weight:500;font-size:clamp(.85rem,2.5vw,1rem);transition:background .2s}.select-file-btn:hover,.change-file-btn:hover{background:var(--primary-dark)}.change-file-btn{background:var(--text-secondary)}.change-file-btn:hover{background:#555}.cancel-upload-btn{margin-top:clamp(6px,1.5vw,10px);padding:clamp(4px,1vw,6px) clamp(10px,2vw,16px);border:1px solid var(--danger-color);border-radius:4px;background:var(--background-white);color:var(--danger-color);cursor:pointer;font-size:clamp(.75rem,2vw,.85rem);font-weight:500;transition:all .15s}.cancel-upload-btn:hover{background:var(--danger-color);color:var(--background-white)}.excel-grid-container{display:flex;flex-direction:column;gap:clamp(8px,2vw,12px)}.excel-grid-placeholder{border:2px dashed var(--border-light);border-radius:clamp(4px,1vw,8px);padding:clamp(30px,8vw,60px) clamp(12px,3vw,20px);text-align:center;color:var(--text-muted);font-size:clamp(.85rem,2.5vw,1rem)}.sheet-tabs{display:flex;align-items:center;gap:.25rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-light);overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;max-width:100%;flex-shrink:0;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.sheet-tabs::-webkit-scrollbar{height:6px}.sheet-tabs::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.sheet-tabs::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.sheet-tabs::-webkit-scrollbar-thumb:hover{background:#aaa}.sheet-tab{padding:.375rem .75rem;border:1px solid var(--border-light);border-bottom:none;border-radius:4px 4px 0 0;background:var(--background-light);cursor:pointer;white-space:nowrap;font-size:.75rem;color:var(--text-secondary);transition:all .15s;flex-shrink:0}.sheet-tab:hover{background:var(--primary-light);color:var(--primary-color)}.sheet-tab.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.grid-wrapper{height:clamp(300px,50vw,500px);width:100%}.ag-theme-alpine{--ag-header-background-color: #f0f4ff;--ag-odd-row-background-color: #fafbfc;--ag-row-hover-color: transparent;--ag-selected-row-background-color: transparent;--ag-range-selection-background-color: transparent;--ag-range-selection-border-color: transparent;--ag-font-size: clamp(11px, 2vw, 14px)}.ag-theme-alpine .ag-row-hover,.ag-theme-alpine .ag-row-selected,.ag-theme-alpine .ag-row-focus{background-color:inherit!important}.ag-theme-alpine .ag-cell-focus{border:none!important;outline:none!important}.ag-theme-alpine .ag-cell-range-selected:not(.cell-selected){background-color:transparent!important}.row-number-cell{background:var(--background-light)!important;color:var(--text-muted);font-size:clamp(.75rem,2vw,.85rem);text-align:center}.selection-info{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(4px,1vw,8px);padding:clamp(8px,2vw,12px);background:#f8f9fa;border-radius:4px;font-size:clamp(.8rem,2vw,.9rem)}.selection-info .hint{color:var(--text-muted);font-style:italic}.selection-info .label{color:var(--text-secondary)}.selection-info .range{font-family:monospace;font-weight:600;color:var(--primary-color);background:var(--primary-light);padding:2px clamp(4px,1vw,8px);border-radius:4px}.selection-info .sheet{color:var(--text-muted);font-size:clamp(.75rem,2vw,.85rem)}.selection-info .dimensions{color:var(--text-secondary);font-size:clamp(.75rem,2vw,.85rem);margin-left:clamp(4px,1vw,8px);padding-left:clamp(4px,1vw,8px);border-left:1px solid var(--border-light)}.cell-selected{background-color:#4472c440!important;border:1px solid var(--primary-color)!important}.selection-help{font-size:clamp(.75rem,2vw,.85rem);color:var(--text-secondary);padding:clamp(6px,1.5vw,8px) clamp(8px,2vw,12px);background:#f0f4ff;border-radius:4px;border-left:3px solid var(--primary-color)}.selection-help strong{color:var(--primary-color)}.data-section{background:var(--background-white);border-radius:clamp(4px,1vw,8px);padding:clamp(12px,3vw,20px);box-shadow:0 2px 8px #0000001a}.word-uploader{width:100%}.paragraph-list-container{display:flex;flex-direction:column;gap:clamp(8px,2vw,12px)}.paragraph-list-placeholder{border:2px dashed var(--border-light);border-radius:clamp(4px,1vw,8px);padding:clamp(30px,8vw,60px) clamp(12px,3vw,20px);text-align:center;color:var(--text-muted);font-size:clamp(.85rem,2.5vw,1rem)}.paragraph-list-placeholder .hint{font-size:clamp(.75rem,2vw,.85rem);margin-top:clamp(4px,1vw,8px)}.paragraph-list-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:clamp(4px,1vw,8px);padding-bottom:clamp(4px,1vw,8px);border-bottom:1px solid var(--border-light)}.paragraph-list-header .count{font-weight:500;color:var(--text-secondary);font-size:clamp(.85rem,2vw,1rem)}.paragraph-list-header .hint{font-size:clamp(.75rem,2vw,.85rem);color:var(--primary-color);font-weight:500}.paragraph-list{max-height:clamp(250px,50vw,400px);overflow-y:auto;display:flex;flex-direction:column;gap:clamp(2px,.5vw,4px)}.paragraph-item{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(4px,1vw,8px);padding:clamp(8px,2vw,10px) clamp(8px,2vw,12px);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;transition:all .15s}.paragraph-item:hover{border-color:var(--primary-color);background:#f8faff}.paragraph-item.selected{border-color:var(--primary-color);background:var(--primary-light)}.paragraph-item.heading{border-left:3px solid var(--primary-color)}.paragraph-type-badge{width:clamp(20px,4vw,24px);height:clamp(20px,4vw,24px);display:flex;align-items:center;justify-content:center;border-radius:4px;font-size:clamp(.65rem,1.5vw,.75rem);font-weight:600;flex-shrink:0}.paragraph-item.heading .paragraph-type-badge{background:var(--primary-color);color:#fff}.paragraph-item.paragraph .paragraph-type-badge{background:#e0e0e0;color:var(--text-secondary)}.paragraph-text{flex:1;min-width:0;font-size:clamp(.8rem,2vw,.9rem);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.paragraph-style{font-size:clamp(.65rem,1.5vw,.75rem);color:var(--text-muted);background:var(--background-light);padding:2px clamp(4px,1vw,6px);border-radius:3px;flex-shrink:0}.paragraph-list-container.edit-mode{border:2px solid var(--primary-color);border-radius:clamp(4px,1vw,8px);padding:clamp(8px,2vw,12px);background:#f8faff}.paragraph-item.clickable:hover{border-color:var(--secondary-color);background:#e8f5e9}.paragraph-item.current-edit{border-color:var(--warning-color);background:var(--warning-bg);border-width:2px}.mapping-list-container{display:flex;flex-direction:column;gap:clamp(8px,2vw,12px)}.mapping-list-placeholder{border:2px dashed var(--border-light);border-radius:clamp(4px,1vw,8px);padding:clamp(20px,5vw,40px) clamp(12px,3vw,20px);text-align:center;color:var(--text-muted);font-size:clamp(.85rem,2.5vw,1rem)}.mapping-list-placeholder .hint{font-size:clamp(.75rem,2vw,.85rem);margin-top:clamp(4px,1vw,8px)}.mapping-list-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:clamp(4px,1vw,8px);padding-bottom:clamp(4px,1vw,8px);border-bottom:1px solid var(--border-light)}.mapping-list-header .count{font-weight:500;color:var(--text-secondary);font-size:clamp(.85rem,2vw,1rem)}.mapping-list{display:flex;flex-direction:column;gap:6px}.mapping-item{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:6px 8px;border:1px solid #e8e8e8;border-radius:4px;background:#f8f8f8;transition:all .15s ease}.mapping-item:hover{background:#f0f0f0;border-color:#ddd}.mapping-item.editing{background:#e8f4fd;border-color:#4a90d9}.mapping-row{display:flex;align-items:center;justify-content:flex-start;gap:6px}.mapping-index{width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:.65rem;color:#fff;font-weight:600;flex-shrink:0;background:#4a90d9;border-radius:50%}.mapping-sheet{font-size:.7rem;color:#666;font-weight:500;flex-shrink:0}.mapping-range{color:#4a9;font-family:Consolas,monospace;font-weight:600;font-size:.8rem;flex-shrink:0}.mapping-dimensions{font-size:.65rem;color:#999;background:#eee;padding:1px 4px;border-radius:2px;flex-shrink:0}.mapping-arrow{color:#bbb;flex-shrink:0}.mapping-para{color:#4a90d9;font-family:Consolas,monospace;font-weight:600;font-size:.8rem;flex-shrink:0}.mapping-preview{font-size:.7rem;color:#777;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:24px}.mapping-controls{display:flex;align-items:center;gap:6px;flex-shrink:0;margin-left:auto}.output-type-toggle-group{display:flex;border:1px solid #ddd;border-radius:3px;overflow:hidden}.output-type-btn{padding:0 5px;height:18px;border:none;background:#f5f5f5;color:#999;font-size:.6rem;font-weight:500;cursor:pointer;transition:all .15s}.output-type-btn:first-child{border-right:1px solid #ddd}.output-type-btn:hover:not(.active){background:#eee;color:#666}.output-type-btn.active{background:#4a90d9;color:#fff}.mapping-preview.highlight{background:#fff3cd;border:1px dashed #ffc107;padding:2px 4px;border-radius:3px}.mapping-remove{padding:3px 6px;background:#fff;border:1px solid #ff6b6b;color:#ff6b6b;cursor:pointer;border-radius:3px;transition:all .15s ease;flex-shrink:0}.mapping-remove:hover{color:#fff;background:#ff6b6b}.drag-handle{cursor:grab;padding:clamp(2px,.5vw,4px) clamp(4px,1vw,8px);color:var(--text-muted);-webkit-user-select:none;user-select:none;flex-shrink:0}.drag-handle:active{cursor:grabbing}.drag-icon{font-size:clamp(1rem,2vw,1.2rem);font-weight:700;letter-spacing:2px}.mapping-item.dragging{box-shadow:0 4px 12px #00000026;background:var(--background-white)}.mapping-item.editing{border-color:var(--primary-color);background:#f0f7ff}.mapping-list-header .edit-hint{color:var(--primary-color);font-size:clamp(.75rem,2vw,.85rem);font-weight:500}.mapping-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.edit-dropdown{position:relative}.edit-mapping-btn{padding:0 6px;height:18px;border:1px solid #ddd;border-radius:3px;background:#fff;color:#888;cursor:pointer;font-size:.6rem;transition:all .15s}.edit-mapping-btn:hover{background:#f0f0f0;border-color:#ccc;color:#666}.edit-menu{position:absolute;top:100%;right:0;margin-top:4px;background:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 4px 12px #00000026;z-index:100;min-width:130px}.edit-menu button{display:block;width:100%;padding:6px 10px;border:none;background:none;text-align:left;cursor:pointer;font-size:.75rem;color:#333}.edit-menu button:hover{background:#f5f5f5}.edit-menu button:first-child{border-radius:4px 4px 0 0}.edit-menu button:last-child{border-radius:0 0 4px 4px}.cancel-edit-btn{padding:3px 8px;border:1px solid #ff6b6b;border-radius:3px;background:#fff;color:#ff6b6b;font-size:.7rem;cursor:pointer;transition:all .15s}.cancel-edit-btn:hover{background:#ff6b6b;color:#fff}.mapping-item .range.highlight{background:#fff3cd;border:1px dashed #ffc107}.excel-grid-container.edit-mode{border:2px solid var(--primary-color);border-radius:clamp(4px,1vw,8px);padding:clamp(8px,2vw,12px);background:#f8faff}.edit-mode-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:clamp(8px,2vw,12px);background:var(--warning-bg);padding:clamp(8px,2vw,10px) clamp(10px,2vw,14px);border-radius:4px;border:1px solid var(--warning-border);margin-bottom:clamp(8px,2vw,12px)}.edit-mode-hint{color:var(--warning-text);font-size:clamp(.8rem,2vw,.9rem);font-weight:500}.edit-mode-actions{display:flex;flex-wrap:wrap;gap:clamp(4px,1vw,8px)}.confirm-edit-btn{padding:clamp(4px,1vw,6px) clamp(10px,2vw,16px);border:none;border-radius:4px;background:var(--secondary-color);color:#fff;cursor:pointer;font-size:clamp(.75rem,2vw,.85rem);font-weight:500;transition:background .15s}.confirm-edit-btn:hover:not(:disabled){background:var(--secondary-dark)}.confirm-edit-btn:disabled{background:#ccc;cursor:not-allowed}.edit-mode-actions .cancel-edit-btn{padding:clamp(4px,1vw,6px) clamp(10px,2vw,16px);border:1px solid var(--danger-color);border-radius:4px;background:#fff;color:var(--danger-color);cursor:pointer;font-size:clamp(.75rem,2vw,.85rem);font-weight:500;transition:all .15s}.edit-mode-actions .cancel-edit-btn:hover{background:var(--danger-color);color:#fff}.generate-section{text-align:center}.generate-button-container{display:flex;flex-direction:column;align-items:center;gap:clamp(8px,2vw,12px)}.generate-btn{background:var(--secondary-color);color:#fff;border:none;padding:clamp(12px,3vw,16px) clamp(30px,6vw,48px);border-radius:clamp(4px,1vw,8px);font-size:clamp(.95rem,2.5vw,1.1rem);font-weight:600;cursor:pointer;transition:all .2s}.generate-btn:hover:not(.disabled):not(.generating){background:var(--secondary-dark);transform:translateY(-1px);box-shadow:0 4px 12px #28a7454d}.generate-btn.disabled{background:#ccc;cursor:not-allowed}.generate-btn.generating{background:#17a2b8;cursor:wait;display:flex;align-items:center;justify-content:center;gap:clamp(6px,1.5vw,10px)}.generate-btn.generating:before{content:"";width:clamp(14px,3vw,18px);height:clamp(14px,3vw,18px);border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spinner .8s linear infinite}.generate-btn.uploading{background:#6c757d;cursor:wait}.generate-btn.uploading:before{display:none}.generate-progress{margin-top:clamp(6px,1.5vw,10px);width:100%}.generate-progress .progress-bar{max-width:100%;height:clamp(4px,.8vw,6px)}.generate-progress .progress-fill{background:linear-gradient(90deg,var(--secondary-color),var(--secondary-dark))}.generate-hint{color:var(--text-secondary);font-size:clamp(.8rem,2vw,.9rem)}.generate-error{color:var(--danger-color);font-size:clamp(.8rem,2vw,.9rem);padding:clamp(6px,1.5vw,8px) clamp(10px,2vw,16px);background:#f8d7da;border-radius:4px}.section-header-with-tabs{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:clamp(8px,2vw,12px);margin-bottom:clamp(10px,2vw,16px);border-bottom:2px solid var(--primary-color);padding-bottom:clamp(4px,1vw,8px)}.section-header-with-tabs h2{margin:0;border-bottom:none;padding-bottom:0}.mapping-tabs{display:flex;flex-wrap:wrap;gap:clamp(2px,.5vw,4px)}.mapping-tab{padding:clamp(6px,1.5vw,8px) clamp(10px,2vw,16px);border:1px solid var(--border-light);border-radius:4px 4px 0 0;background:var(--background-light);cursor:pointer;white-space:nowrap;font-size:clamp(.8rem,2vw,.9rem);color:var(--text-secondary);transition:all .2s}.mapping-tab:hover{background:var(--primary-light);color:var(--primary-color)}.mapping-tab.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.preview-tab-container{display:flex;flex-direction:column;gap:clamp(8px,2vw,12px)}.preview-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:clamp(8px,2vw,12px);padding-bottom:clamp(4px,1vw,8px);border-bottom:1px solid var(--border-light)}.preview-title{font-weight:500;color:var(--text-primary);font-size:clamp(.85rem,2vw,1rem)}.refresh-preview-btn{padding:clamp(6px,1.5vw,8px) clamp(10px,2vw,16px);border:1px solid var(--primary-color);border-radius:4px;background:var(--background-white);color:var(--primary-color);cursor:pointer;font-size:clamp(.75rem,2vw,.85rem);font-weight:500;transition:all .15s}.refresh-preview-btn:hover:not(.disabled){background:var(--primary-color);color:#fff}.refresh-preview-btn.disabled{border-color:#ccc;color:var(--text-muted);cursor:not-allowed}.preview-loading{display:flex;justify-content:center;padding:clamp(12px,3vw,20px)}.processing-indicator{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(6px,1.5vw,10px);color:var(--primary-color);font-weight:500;font-size:clamp(.85rem,2vw,1rem)}.processing-indicator:before{content:"";width:clamp(16px,3vw,20px);height:clamp(16px,3vw,20px);border:3px solid #e0e0e0;border-top-color:var(--primary-color);border-radius:50%;animation:spinner .8s linear infinite}.preview-error{display:flex;flex-direction:column;align-items:center;gap:clamp(8px,2vw,12px);padding:clamp(12px,3vw,20px);background:#f8d7da;border-radius:4px;color:var(--danger-color);font-size:clamp(.85rem,2vw,1rem)}.preview-error button{padding:clamp(6px,1.5vw,8px) clamp(10px,2vw,16px);border:1px solid var(--danger-color);border-radius:4px;background:var(--background-white);color:var(--danger-color);cursor:pointer;font-weight:500;font-size:clamp(.8rem,2vw,.9rem);transition:all .15s}.preview-error button:hover{background:var(--danger-color);color:var(--background-white)}.preview-placeholder{border:2px dashed var(--border-light);border-radius:clamp(4px,1vw,8px);padding:clamp(30px,8vw,60px) clamp(12px,3vw,20px);text-align:center;color:var(--text-muted);font-size:clamp(.85rem,2.5vw,1rem)}.preview-placeholder .hint{font-size:clamp(.75rem,2vw,.85rem);margin-top:clamp(4px,1vw,8px)}.preview-container{min-height:clamp(400px,60vw,600px);border:1px solid var(--border-light);border-radius:4px;background:var(--background-light);overflow:auto;padding:clamp(10px,3vw,20px)}.preview-container.loading{opacity:.5}.preview-container .docx-wrapper{background:#fff;box-shadow:0 2px 8px #0000001a;margin:0 auto}.preview-warning{background:var(--warning-bg);border:1px solid var(--warning-border);border-left:4px solid var(--warning-color);color:var(--warning-text);padding:clamp(8px,2vw,10px) clamp(10px,2vw,14px);border-radius:4px;font-size:clamp(.75rem,2vw,.85rem);margin-bottom:clamp(8px,2vw,12px)}.preview-pagination{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(8px,2vw,16px);padding:clamp(8px,2vw,12px);background:#f8f9fa;border-radius:4px;margin-bottom:clamp(8px,2vw,12px)}.pagination-btn{padding:clamp(6px,1.5vw,8px) clamp(10px,2vw,16px);border:1px solid var(--primary-color);border-radius:4px;background:var(--background-white);color:var(--primary-color);cursor:pointer;font-size:clamp(.8rem,2vw,.9rem);font-weight:500;transition:all .15s}.pagination-btn:hover:not(:disabled){background:var(--primary-color);color:#fff}.pagination-btn:disabled{border-color:#ccc;color:var(--text-muted);cursor:not-allowed;background:var(--background-light)}.pagination-info{font-size:clamp(.8rem,2vw,.9rem);color:var(--text-secondary);font-weight:500;min-width:100px;text-align:center}@media(max-width:500px){.upload-row{flex-direction:column}.upload-row>section{flex:1 1 auto;min-width:100%}.file-info{flex-direction:column}.selection-info{flex-direction:column;align-items:flex-start}.selection-info .dimensions{margin-left:0;padding-left:0;border-left:none;padding-top:clamp(4px,1vw,8px);border-top:1px solid var(--border-light);width:100%}.mapping-item{flex-direction:column;align-items:flex-start}.mapping-actions{width:100%;justify-content:flex-end}.edit-mode-bar{flex-direction:column;align-items:stretch}.edit-mode-actions{justify-content:flex-end}.section-header-with-tabs{flex-direction:column;align-items:flex-start}.mapping-tabs{width:100%}.mapping-tab{flex:1;text-align:center}.preview-header{flex-direction:column;align-items:stretch}.refresh-preview-btn{width:100%}.preview-pagination{flex-direction:column}.pagination-btn{width:100%}}.app-layout{display:flex;min-height:100vh}.app-layout .app{flex:1;min-width:0;transition:margin-left .3s ease}.app-layout.sidebar-open .app{margin-left:clamp(240px,20vw,280px)}.config-sidebar{position:fixed;top:0;left:0;width:clamp(240px,20vw,280px);height:100vh;background:var(--background-white);border-right:1px solid var(--border-light);box-shadow:2px 0 8px #0000001a;display:flex;flex-direction:column;z-index:1000;transform:translate(0);transition:transform .3s ease}.config-sidebar.closed{transform:translate(-100%)}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:clamp(12px,2vw,16px);border-bottom:1px solid var(--border-light);background:var(--primary-color);color:#fff}.sidebar-header h2{margin:0;font-size:clamp(1rem,2vw,1.1rem);font-weight:600;border-bottom:none;padding-bottom:0;color:#fff}.sidebar-close-btn{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .15s}.sidebar-close-btn:hover{background:#fff3}.sidebar-error{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:clamp(8px,1.5vw,10px) clamp(12px,2vw,16px);background:var(--danger-color);color:#fff;font-size:clamp(.75rem,1.3vw,.85rem)}.sidebar-error button{background:none;border:none;color:#fff;font-size:1.2rem;cursor:pointer;padding:0;opacity:.8}.sidebar-error button:hover{opacity:1}.sidebar-toggle{position:fixed;top:50%;left:0;transform:translateY(-50%);background:var(--primary-color);color:#fff;border:none;padding:clamp(8px,1.5vw,12px) clamp(4px,1vw,8px);border-radius:0 4px 4px 0;cursor:pointer;z-index:999;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:clamp(.7rem,1.5vw,.8rem);font-weight:500;box-shadow:2px 0 8px #0000001a;transition:background .15s}.sidebar-toggle:hover{background:var(--primary-dark)}.toggle-icon{font-size:clamp(.9rem,1.5vw,1rem);font-weight:700}.toggle-label{writing-mode:vertical-rl;text-orientation:mixed}.current-config-info{display:flex;align-items:center;gap:clamp(4px,1vw,8px);padding:clamp(8px,1.5vw,12px) clamp(12px,2vw,16px);background:var(--primary-light);border-bottom:1px solid var(--border-light);font-size:clamp(.8rem,1.5vw,.9rem)}.current-config-label{color:var(--text-secondary)}.current-config-name{font-weight:500;color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unsaved-indicator{color:var(--warning-color);font-weight:700;font-size:1.2em}.sidebar-actions{padding:clamp(12px,2vw,16px);display:flex;flex-direction:column;gap:clamp(8px,1.5vw,12px);border-bottom:1px solid var(--border-light)}.sidebar-btn{padding:clamp(8px,1.5vw,10px) clamp(12px,2vw,16px);border-radius:4px;font-size:clamp(.8rem,1.5vw,.9rem);font-weight:500;cursor:pointer;transition:all .15s;border:1px solid var(--border-light);background:var(--background-white);color:var(--text-primary)}.sidebar-btn:hover:not(:disabled){background:var(--background-light)}.sidebar-btn:disabled{opacity:.5;cursor:not-allowed}.sidebar-btn-primary{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.sidebar-btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.save-buttons{display:flex;gap:clamp(4px,1vw,8px)}.save-buttons .sidebar-btn{flex:1}.config-list-container{flex:1;overflow:hidden;display:flex;flex-direction:column}.config-list-header{display:flex;justify-content:space-between;align-items:center;padding:clamp(8px,1.5vw,12px) clamp(12px,2vw,16px);background:var(--background-light);border-bottom:1px solid var(--border-light)}.config-list-title{font-size:clamp(.75rem,1.5vw,.85rem);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.config-list-count{background:var(--primary-color);color:#fff;font-size:clamp(.65rem,1.2vw,.75rem);padding:2px 8px;border-radius:10px;font-weight:600}.config-list{flex:1;overflow-y:auto;padding:clamp(8px,1.5vw,12px)}.config-list-empty{padding:clamp(20px,4vw,40px) clamp(12px,2vw,16px);text-align:center;color:var(--text-muted);font-size:clamp(.85rem,1.5vw,.9rem)}.config-list-empty .hint{font-size:clamp(.75rem,1.3vw,.8rem);margin-top:clamp(4px,1vw,8px)}.config-list-item{display:flex;align-items:center;gap:clamp(8px,1.5vw,12px);padding:clamp(10px,2vw,12px);border:1px solid var(--border-color);border-radius:6px;margin-bottom:clamp(6px,1vw,8px);cursor:pointer;transition:all .15s;background:var(--background-white)}.config-list-item:hover{border-color:var(--primary-color);background:#f8faff}.config-list-item.active{border-color:var(--primary-color);background:var(--primary-light);border-width:2px}.config-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.config-item-name{font-weight:500;color:var(--text-primary);font-size:clamp(.85rem,1.5vw,.9rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-item-meta{font-size:clamp(.7rem,1.2vw,.75rem);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-item-actions{position:relative}.config-menu-btn{background:none;border:none;padding:4px 8px;cursor:pointer;color:var(--text-muted);font-size:1.2rem;font-weight:700;border-radius:4px;transition:all .15s}.config-menu-btn:hover{background:var(--background-light);color:var(--text-primary)}.config-menu{position:absolute;top:100%;right:0;background:var(--background-white);border:1px solid var(--border-light);border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:100;min-width:100px;overflow:hidden}.config-menu button{display:block;width:100%;padding:clamp(8px,1.5vw,10px) clamp(12px,2vw,14px);border:none;background:none;text-align:left;cursor:pointer;font-size:clamp(.8rem,1.5vw,.85rem);color:var(--text-primary)}.config-menu button:hover{background:var(--background-light)}.config-menu button.danger{color:var(--danger-color)}.config-menu button.danger:hover{background:#fde8e8}.config-rename{flex:1;display:flex;flex-direction:column;gap:clamp(6px,1vw,8px)}.config-rename input{padding:clamp(6px,1vw,8px);border:1px solid var(--primary-color);border-radius:4px;font-size:clamp(.85rem,1.5vw,.9rem);width:100%}.rename-actions{display:flex;gap:clamp(4px,1vw,6px)}.rename-actions button{flex:1;padding:clamp(4px,1vw,6px) clamp(8px,1.5vw,10px);border:1px solid var(--border-light);border-radius:4px;background:var(--background-white);cursor:pointer;font-size:clamp(.75rem,1.3vw,.8rem);transition:all .15s}.rename-actions button:first-child{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.rename-actions button:first-child:disabled{opacity:.5;cursor:not-allowed}.sidebar-footer{padding:clamp(12px,2vw,16px);border-top:1px solid var(--border-light);background:var(--background-light)}.login-hint{font-size:clamp(.75rem,1.3vw,.8rem);color:var(--text-muted);text-align:center;margin:0}.sign-in-section{display:flex;flex-direction:column;gap:clamp(8px,1.5vw,12px)}.google-sign-in-btn{display:flex;align-items:center;justify-content:center;gap:clamp(8px,1.5vw,10px);padding:clamp(10px,2vw,12px) clamp(12px,2vw,16px);background:var(--background-white);border:1px solid var(--border-color);border-radius:clamp(4px,.8vw,6px);font-size:clamp(.85rem,1.5vw,.9rem);font-weight:500;color:var(--text-primary);cursor:pointer;transition:all .15s;width:100%}.google-sign-in-btn:hover:not(:disabled){background:var(--background-light);border-color:var(--border-dark);box-shadow:0 1px 3px #0000001a}.google-sign-in-btn:disabled{opacity:.6;cursor:not-allowed}.google-icon{flex-shrink:0}.user-profile{display:flex;align-items:center;gap:clamp(8px,1.5vw,12px)}.user-avatar{width:clamp(32px,5vw,40px);height:clamp(32px,5vw,40px);border-radius:50%;flex-shrink:0}.user-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.user-name{font-size:clamp(.85rem,1.5vw,.9rem);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-email{font-size:clamp(.7rem,1.2vw,.75rem);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sign-out-btn{padding:clamp(4px,1vw,6px) clamp(8px,1.5vw,10px);background:transparent;border:1px solid var(--border-color);border-radius:clamp(3px,.6vw,4px);font-size:clamp(.7rem,1.2vw,.75rem);color:var(--text-secondary);cursor:pointer;transition:all .15s;flex-shrink:0}.sign-out-btn:hover{background:var(--background-light);border-color:var(--border-dark);color:var(--text-primary)}.sidebar-overlay{display:none}.dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:clamp(12px,3vw,20px)}.dialog{background:var(--background-white);border-radius:clamp(6px,1vw,8px);box-shadow:0 8px 32px #0003;width:100%;max-width:400px;overflow:hidden}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:clamp(12px,2vw,16px);border-bottom:1px solid var(--border-light)}.dialog-header h3{margin:0;font-size:clamp(1rem,2vw,1.1rem);color:var(--text-primary)}.dialog-close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-muted);padding:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s}.dialog-close-btn:hover{background:var(--background-light);color:var(--text-primary)}.dialog-body{padding:clamp(16px,3vw,24px)}.dialog-body label{display:block;font-size:clamp(.85rem,1.5vw,.9rem);font-weight:500;color:var(--text-secondary);margin-bottom:clamp(6px,1vw,8px)}.dialog-body input{width:100%;padding:clamp(10px,2vw,12px);border:1px solid var(--border-light);border-radius:4px;font-size:clamp(.9rem,1.5vw,1rem);transition:border-color .15s}.dialog-body input:focus{outline:none;border-color:var(--primary-color)}.dialog-footer{display:flex;justify-content:flex-end;gap:clamp(8px,1.5vw,12px);padding:clamp(12px,2vw,16px);border-top:1px solid var(--border-light);background:var(--background-light)}.dialog-btn{padding:clamp(8px,1.5vw,10px) clamp(16px,3vw,20px);border-radius:4px;font-size:clamp(.85rem,1.5vw,.9rem);font-weight:500;cursor:pointer;transition:all .15s}.dialog-btn-secondary{background:var(--background-white);border:1px solid var(--border-light);color:var(--text-primary)}.dialog-btn-secondary:hover{background:var(--background-light)}.dialog-btn-primary{background:var(--primary-color);border:1px solid var(--primary-color);color:#fff}.dialog-btn-primary:hover:not(:disabled){background:var(--primary-dark)}.dialog-btn-primary:disabled{opacity:.5;cursor:not-allowed}@media(max-width:1024px){.app-layout.sidebar-open .app{margin-left:0}.sidebar-overlay{display:block;position:fixed;inset:0;background:#00000080;z-index:999}.config-sidebar{width:clamp(280px,80vw,320px)}}@media(max-width:500px){.config-sidebar{width:100%}}
