.dc-tool{max-width:1200px;margin:0 auto}.dc-upload-row{display:flex;align-items:stretch;gap:16px;margin-bottom:24px}.dc-upload-box{flex:1;border:2px dashed var(--border);border-radius:var(--radius-lg);padding:36px 24px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}.dc-upload-box:hover,.dc-upload-drag{border-color:var(--primary);background:var(--primary-light)}.dc-upload-loaded{border-color:#166534;border-style:solid;background:#f0fdf4}.dc-upload-icon{font-size:2.5rem;margin-bottom:8px}.dc-upload-label{font-size:.95rem;font-weight:600;color:var(--text)}.dc-upload-box p{margin:4px 0;color:var(--text-secondary);font-size:.85rem}.dc-upload-box strong{color:var(--primary);cursor:pointer}.dc-file-name{font-size:.82rem;color:#166534;font-weight:600;margin-top:8px;word-break:break-all}.dc-vs{display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;color:var(--text-tertiary);padding:0 8px}.dc-compare-action{text-align:center}.dc-loading{text-align:center;padding:48px}.dc-loading p{color:var(--text-secondary);margin-top:12px}.dc-spinner{width:40px;height:40px;margin:0 auto;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:dc-spin .8s linear infinite}@keyframes dc-spin{to{transform:rotate(360deg)}}.dc-summary-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.dc-summary-bar h3{font-size:1.2rem}.dc-stats{display:flex;gap:16px;margin-top:6px;flex-wrap:wrap}.dc-stat{font-size:.82rem;padding:3px 12px;border-radius:var(--radius);font-weight:500}.dc-stat strong{font-weight:700}.dc-stat-added{background:#dcfce7;color:#166534}.dc-stat-removed{background:#fee2e2;color:#991b1b}.dc-stat-modified{background:#fef9c3;color:#854d0e}.dc-stat-unchanged{background:var(--bg-tertiary);color:var(--text-tertiary)}.dc-legend{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}.dc-legend-item{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-secondary)}.dc-legend-dot{width:12px;height:12px;border-radius:3px}.dc-dot-added{background:#166534}.dc-dot-removed{background:#991b1b}.dc-dot-modified{background:#ca8a04}.dc-dot-unchanged{background:var(--bg-tertiary);border:1px solid var(--border)}.dc-compare-view{overflow:hidden}.dc-compare-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;max-height:70vh;overflow-y:auto}.dc-compare-grid>*:nth-child(odd){border-right:1px solid var(--border)}.dc-grid-header{padding:10px 16px;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}.dc-grid-header-left{background:#fef2f2;color:#991b1b}.dc-grid-header-right{background:#f0fdf4;color:#166534}.dc-item{padding:8px 16px;font-size:.85rem;line-height:1.7;border-bottom:1px solid var(--border);word-break:break-word;min-height:36px}.dc-compare-grid>.dc-item:last-child,.dc-compare-grid>.dc-item:nth-last-child(2){border-bottom:none}.dc-item-equal{color:var(--text-tertiary)}.dc-item-equal .dc-para{opacity:.6}.dc-item-added{background:#f0fdf4;border-left:4px solid #166534}.dc-item-removed{background:#fef2f2;border-left:4px solid #991b1b}.dc-item-modified{background:#fffbeb;border-left:4px solid #ca8a04}.dc-item-spacer{background:repeating-linear-gradient(45deg,var(--bg-tertiary),var(--bg-tertiary) 6px,var(--bg-secondary) 6px,var(--bg-secondary) 12px);min-height:36px}.dc-item-badge{display:inline-block;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:3px;margin-bottom:4px;text-transform:uppercase;letter-spacing:.3px}.dc-badge-added{background:#dcfce7;color:#166534}.dc-badge-removed{background:#fee2e2;color:#991b1b}.dc-badge-modified{background:#fef9c3;color:#854d0e}.dc-word-removed{background:#fecaca;color:#991b1b;text-decoration:line-through;border-radius:3px;padding:1px 2px}.dc-word-added{background:#bbf7d0;color:#166534;border-radius:3px;padding:1px 2px}.dc-para-heading{font-weight:600}.dc-empty-para{color:var(--text-tertiary);font-style:italic}.btn-sm{padding:6px 14px;font-size:.8rem}.dc-actions{display:flex;gap:8px;flex-wrap:wrap}.dc-hide-unchanged .dc-item-equal,.dc-hide-unchanged .dc-item-spacer{height:0!important;padding:0!important;overflow:hidden;border:none!important;min-height:0!important}.dc-compare-grid::-webkit-scrollbar{width:8px}.dc-compare-grid::-webkit-scrollbar-track{background:var(--bg-secondary)}.dc-compare-grid::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.dc-compare-grid::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.btn{padding:8px 16px;border-radius:var(--radius);font-size:.85rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all .15s;white-space:nowrap}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg);color:var(--text);border-color:var(--border)}.btn-secondary:hover{border-color:var(--border-hover);background:var(--bg-secondary)}.btn-large{padding:12px 32px;font-size:.95rem}.dc-error{text-align:center;padding:48px 24px}.dc-error-icon{font-size:3rem;margin-bottom:12px}.dc-error h3{font-size:1.2rem;margin-bottom:8px}.dc-error p{color:var(--text-secondary);margin-bottom:16px;word-break:break-word}.faq-section{max-width:800px;margin:48px auto 0;padding:0 0 48px}.faq-section h2{font-size:1.75rem;margin-bottom:28px}.faq-item{margin-bottom:24px}.faq-item h3{font-size:1.1rem;margin-bottom:8px}.faq-item p{color:var(--text-secondary);line-height:1.7}.faq-item code{background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:.85rem}.faq-item strong{font-weight:600}@media (max-width: 700px){.dc-upload-row{flex-direction:column}.dc-vs{padding:4px 0}.dc-summary-bar{flex-direction:column;align-items:flex-start}.dc-actions{width:100%}.dc-actions .btn{flex:1}.dc-compare-grid{max-height:50vh}.dc-grid-header{padding:8px 10px;font-size:.72rem}.dc-stats{gap:8px}.dc-stat{font-size:.75rem;padding:2px 8px}}
