.file-diff-container{min-height:100vh;background:#fff;padding:2rem}.file-diff-container .diff-card{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-xl);padding:2rem;max-width:1400px;margin:0 auto}.file-diff-container .neon-text{font-size:2rem;font-weight:700;text-align:center;color:var(--text-primary, #1f2937);margin-bottom:.5rem}.file-diff-container .subtitle{text-align:center;color:var(--text-secondary);font-size:1rem;margin-bottom:2rem}.file-diff-container .upload-section{display:grid;grid-template-columns:1fr auto 1fr;gap:2rem;margin-bottom:2rem;align-items:center}.file-diff-container .upload-box{border:3px dashed #667eea;border-radius:15px;padding:2rem;text-align:center;cursor:pointer;transition:all .3s ease;background:#667eea0d;min-height:200px;display:flex;flex-direction:column;justify-content:center;align-items:center}.file-diff-container .upload-box:hover{border-color:#764ba2;background:#667eea1a;transform:translateY(-2px)}.file-diff-container .upload-icon{font-size:3rem;margin-bottom:1rem}.file-diff-container .upload-hint{color:var(--text-tertiary);font-size:.85rem;margin-top:.5rem}.file-diff-container .upload-divider{font-size:1.5rem;font-weight:700;color:#667eea;background:var(--bg-card);padding:1rem;border-radius:var(--radius-full);width:60px;height:60px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px var(--space-3) #667eea4d}.file-diff-container .file-info-box{display:flex;flex-direction:column;align-items:center;gap:.5rem}.file-diff-container .file-icon{font-size:3rem}.file-diff-container .file-name{font-weight:600;color:var(--text-primary);word-break:break-all;max-width:100%}.file-diff-container .file-size{color:var(--text-tertiary);font-size:.9rem}.file-diff-container .controls-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;background:var(--bg-card);border-radius:10px;margin-bottom:1.5rem;flex-wrap:wrap;box-shadow:0 2px var(--space-2) #0000001a}.file-diff-container .mode-selector{display:flex;gap:.5rem}.file-diff-container .mode-btn{padding:.5rem 1rem;border:2px solid #667eea;background:var(--bg-card);border-radius:var(--space-2);cursor:pointer;font-weight:600;color:#667eea;transition:all .3s ease}.file-diff-container .mode-btn:hover{background:#667eea1a}.file-diff-container .mode-btn.active{background:#667eea;border-color:transparent}.file-diff-container .options{display:flex;gap:1rem;align-items:center}.file-diff-container .checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;color:var(--text-secondary);font-size:.95rem}.file-diff-container .checkbox-label input[type=checkbox]{cursor:pointer;width:18px;height:18px}.file-diff-container .action-btns{display:flex;gap:.5rem}.file-diff-container .btn{padding:.5rem 1rem;border:none;border-radius:var(--space-2);font-weight:600;cursor:pointer;transition:all .3s ease;font-size:.95rem}.file-diff-container .btn:disabled{opacity:.5;cursor:not-allowed}.file-diff-container .btn-primary{background:#667eea}.file-diff-container .btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px var(--space-3) #667eea66}.file-diff-container .btn-secondary{background:linear-gradient(135deg,var(--color-warning-500) 0%,#d97706 100%);color:#fff}.file-diff-container .btn-secondary:hover{transform:translateY(-2px);box-shadow:0 4px var(--space-3) #f59e0b66}.file-diff-container .btn-danger{background:linear-gradient(135deg,var(--color-danger-500) 0%,var(--color-danger-600) 100%);color:#fff}.file-diff-container .btn-danger:hover{transform:translateY(-2px);box-shadow:0 4px var(--space-3) #ef444466}.file-diff-container .statistics-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:2rem;padding:1.5rem;background:var(--bg-card);border-radius:15px;box-shadow:0 4px var(--space-4) #0000001a}.file-diff-container .stat-item{text-align:center;padding:1rem;border-radius:10px;background:#667eea0d;display:flex;flex-direction:column;gap:.5rem}.file-diff-container .stat-item.highlight{background:linear-gradient(135deg,#667eea1a,#764ba21a);border:2px solid rgba(102,126,234,.3)}.file-diff-container .stat-label{color:var(--text-secondary);font-size:.9rem}.file-diff-container .stat-value{font-size:1.8rem;font-weight:700;color:var(--text-primary)}.file-diff-container .stat-value.stat-equal{color:#10b981}.file-diff-container .stat-value.stat-delete{color:var(--color-danger-500)}.file-diff-container .stat-value.stat-insert{color:var(--color-info-500)}.file-diff-container .stat-value.stat-similarity{color:#667eea}.file-diff-container .diff-result-section{margin-bottom:2rem}.file-diff-container .diff-result-section h3{color:#667eea;margin-bottom:1rem;font-size:1.3rem}.file-diff-container .diff-view-side-by-side{display:grid;grid-template-columns:1fr 1fr;gap:1rem;background:var(--bg-card);border-radius:15px;overflow:hidden;box-shadow:0 4px var(--space-4) #0000001a}.file-diff-container .diff-column{display:flex;flex-direction:column}.file-diff-container .column-header{padding:1rem;font-weight:600;display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--color-gray-200)}.file-diff-container .column-header.left{background:linear-gradient(135deg,#ef44441a,#dc26261a);color:var(--color-danger-500)}.file-diff-container .column-header.right{background:linear-gradient(135deg,#3b82f61a,#2563eb1a);color:var(--color-info-500)}.file-diff-container .file-info{font-size:.85rem;color:var(--text-tertiary)}.file-diff-container .diff-content{flex:1;overflow-y:auto;max-height:600px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.9rem}.file-diff-container .diff-line{display:flex;align-items:flex-start;padding:.25rem .5rem;line-height:1.6;border-bottom:1px solid var(--color-gray-100)}.file-diff-container .line-number{display:inline-block;width:50px;text-align:right;color:#9ca3af;-webkit-user-select:none;user-select:none;flex-shrink:0;padding-right:1rem;font-size:.85rem}.file-diff-container .line-text{flex:1;white-space:pre-wrap;word-break:break-all}.file-diff-container .line-equal{background:var(--bg-card)}.file-diff-container .line-delete{background:#ef44441a;border-left:3px solid var(--color-danger-500)}.file-diff-container .line-insert{background:#3b82f61a;border-left:3px solid var(--color-info-500)}.file-diff-container .line-empty{background:var(--color-gray-50);color:var(--color-gray-300)}.file-diff-container .diff-view-unified{background:var(--bg-card);border-radius:15px;padding:1.5rem;font-family:Consolas,Monaco,Courier New,monospace;font-size:.9rem;max-height:600px;overflow-y:auto;box-shadow:0 4px var(--space-4) #0000001a}.file-diff-container .diff-chunk{margin-bottom:2rem;border:1px solid var(--color-gray-200);border-radius:var(--space-2);overflow:hidden}.file-diff-container .chunk-header{background:#667eea1a;color:#667eea;padding:.5rem 1rem;font-weight:600;border-bottom:1px solid var(--color-gray-200)}.file-diff-container .line-prefix{display:inline-block;width:30px;text-align:center;font-weight:700;-webkit-user-select:none;user-select:none}.file-diff-container .line-context{background:var(--bg-card)}.file-diff-container .tips-section,.file-diff-container .usage-section{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-radius:15px;padding:2rem;margin-bottom:2rem}.file-diff-container .tips-section h3,.file-diff-container .usage-section h3{color:#667eea;margin-bottom:1.5rem;font-size:1.3rem}.file-diff-container .features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.file-diff-container .feature-item{background:var(--bg-card);padding:1.5rem;border-radius:10px;text-align:center;transition:all .3s ease}.file-diff-container .feature-item:hover{transform:translateY(-4px);box-shadow:0 4px var(--space-3) #0000001a}.file-diff-container .feature-icon{font-size:2rem;margin-bottom:.5rem}.file-diff-container .feature-title{font-weight:600;color:#667eea;margin-bottom:.5rem}.file-diff-container .feature-desc{color:var(--text-secondary);font-size:.9rem}.file-diff-container .usage-section ul{list-style:none;padding:0}.file-diff-container .usage-section li{color:var(--text-secondary);position:relative;padding:.5rem 0 .5rem 1.5rem}.file-diff-container .usage-section li:before{content:"•";position:absolute;left:0;color:#667eea;font-weight:700;font-size:1.2rem}.file-diff-container .line-delete-demo{background:#ef444433;padding:.2rem .5rem;border-radius:4px;border-left:3px solid var(--color-danger-500)}.file-diff-container .line-insert-demo{background:#3b82f633;padding:.2rem .5rem;border-radius:4px;border-left:3px solid var(--color-info-500)}.file-diff-container .line-equal-demo{background:#667eea1a;padding:.2rem .5rem;border-radius:4px}.file-diff-container{min-height:100vh;padding:clamp(1rem,2.5vw,2rem);background:radial-gradient(circle at 12% 0%,rgba(99,102,241,.12),transparent 32rem),linear-gradient(180deg,#f8fafc,#eef2f7);color:#0f172a}.file-diff-container .diff-card{width:min(100%,1680px);max-width:1680px;margin:0 auto;padding:clamp(1rem,2vw,2rem);border:1px solid rgba(148,163,184,.32);border-radius:28px;background:#ffffffeb;box-shadow:0 24px 80px #0f172a1a;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.file-diff-container .diff-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.25rem;align-items:end;padding:clamp(1.25rem,3vw,2.4rem);margin-bottom:1.25rem;border:1px solid rgba(99,102,241,.14);border-radius:24px;background:linear-gradient(135deg,#4f46e51a,#0ea5e912),#fff}.file-diff-container .hero-kicker{display:inline-flex;width:fit-content;padding:.28rem .7rem;margin-bottom:.7rem;border:1px solid rgba(79,70,229,.22);border-radius:999px;color:#4338ca;background:#4f46e514;font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.file-diff-container .neon-text{margin:0;text-align:left;color:#0f172a;font-size:clamp(2rem,4.2vw,4rem);font-weight:850;letter-spacing:-.045em;line-height:1.02}.file-diff-container .subtitle{max-width:780px;margin:.75rem 0 0;text-align:left;color:#475569;font-size:clamp(.95rem,1.3vw,1.08rem);line-height:1.8}.file-diff-container .hero-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.55rem}.file-diff-container .hero-badges span{padding:.46rem .72rem;border:1px solid rgba(148,163,184,.28);border-radius:999px;background:#ffffffd6;color:#334155;font-size:.82rem;font-weight:700;box-shadow:0 8px 20px #0f172a0f}.file-diff-container .upload-section{grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr);gap:clamp(.75rem,1.8vw,1.4rem);margin-bottom:1rem}.file-diff-container .upload-box{min-height:152px;padding:clamp(1rem,2vw,1.5rem);border:1.5px dashed rgba(99,102,241,.45);border-radius:20px;background:linear-gradient(180deg,#f8fafcdb,#fffffff5);box-shadow:inset 0 0 0 1px #ffffffad,0 12px 30px #0f172a0d}.file-diff-container .upload-box:hover{border-color:#4f46e5;background:#fff;transform:translateY(-1px);box-shadow:0 18px 40px #4f46e521}.file-diff-container .upload-icon,.file-diff-container .file-icon{font-size:2.35rem;margin-bottom:.65rem}.file-diff-container .upload-box p{margin:0;color:#1e293b;font-weight:700}.file-diff-container .upload-hint,.file-diff-container .file-size,.file-diff-container .file-info{color:#64748b}.file-diff-container .file-name{color:#0f172a;font-weight:800}.file-diff-container .upload-divider{width:56px;height:56px;padding:0;border:1px solid rgba(99,102,241,.2);background:#fff;color:#4f46e5;font-size:.95rem;box-shadow:0 16px 34px #4f46e526}.file-diff-container .controls-bar{position:sticky;top:.75rem;z-index:5;display:grid;grid-template-columns:auto minmax(220px,1fr) auto;align-items:center;gap:.9rem;padding:.75rem;margin-bottom:1rem;border:1px solid rgba(148,163,184,.26);border-radius:18px;background:#ffffffeb;box-shadow:0 14px 32px #0f172a14;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.file-diff-container .mode-selector,.file-diff-container .action-btns,.file-diff-container .options{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem}.file-diff-container .options{justify-content:center}.file-diff-container .mode-btn,.file-diff-container .btn{min-height:40px;padding:.55rem .9rem;border-radius:12px;font-size:.9rem;font-weight:800}.file-diff-container .mode-btn{border:1px solid rgba(99,102,241,.25);background:#f8fafc;color:#4338ca}.file-diff-container .mode-btn:hover{background:#eef2ff}.file-diff-container .mode-btn.active{border-color:#4f46e5;background:linear-gradient(135deg,#4f46e5,#2563eb);color:#fff;box-shadow:0 10px 24px #4f46e547}.file-diff-container .checkbox-label{padding:.45rem .68rem;border:1px solid rgba(148,163,184,.24);border-radius:12px;background:#f8fafc;color:#334155;font-weight:700}.file-diff-container .btn-primary{background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff}.file-diff-container .btn-secondary{background:#f8fafc;color:#334155;border:1px solid rgba(148,163,184,.32)}.file-diff-container .btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.file-diff-container .statistics-panel{grid-template-columns:repeat(5,minmax(120px,1fr));gap:.8rem;padding:0;margin-bottom:1.15rem;background:transparent;box-shadow:none}.file-diff-container .stat-item{min-height:96px;justify-content:center;border:1px solid rgba(148,163,184,.22);border-radius:18px;background:#fff;box-shadow:0 12px 30px #0f172a0f}.file-diff-container .stat-item.highlight{border:1px solid rgba(79,70,229,.28);background:linear-gradient(135deg,#4f46e51a,#0ea5e914)}.file-diff-container .stat-label{color:#64748b;font-size:.78rem;font-weight:800;letter-spacing:.04em}.file-diff-container .stat-value{color:#0f172a;font-size:clamp(1.55rem,2vw,2.1rem);line-height:1}.file-diff-container .stat-value.stat-equal{color:#475569}.file-diff-container .stat-value.stat-delete{color:#dc2626}.file-diff-container .stat-value.stat-insert{color:#16a34a}.file-diff-container .stat-value.stat-similarity{color:#4f46e5}.file-diff-container .diff-result-section{overflow:hidden;margin-bottom:1.3rem;border:1px solid rgba(148,163,184,.28);border-radius:22px;background:#fff;box-shadow:0 18px 48px #0f172a14}.file-diff-container .result-heading{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 1.1rem;border-bottom:1px solid rgba(148,163,184,.2);background:linear-gradient(180deg,#fff,#f8fafc)}.file-diff-container .diff-result-section h3{margin:0;color:#0f172a;font-size:1.08rem;font-weight:850}.file-diff-container .result-heading p{margin:.25rem 0 0;color:#64748b;font-size:.88rem}.file-diff-container .diff-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.55rem}.file-diff-container .diff-legend span{display:inline-flex;align-items:center;gap:.38rem;color:#475569;font-size:.82rem;font-weight:800}.file-diff-container .legend-dot{width:.7rem;height:.7rem;border-radius:3px;display:inline-block}.file-diff-container .legend-dot.delete{background:#f87171}.file-diff-container .legend-dot.insert{background:#22c55e}.file-diff-container .legend-dot.equal{background:#cbd5e1}.file-diff-container .diff-view-side-by-side{display:block;overflow:auto;border-radius:0;background:#0f172a;box-shadow:none}.file-diff-container .diff-grid-header,.file-diff-container .diff-grid-row{display:grid;grid-template-columns:64px minmax(360px,1fr) 64px minmax(360px,1fr);min-width:980px}.file-diff-container .diff-grid-header{position:sticky;top:0;z-index:2;border-bottom:1px solid rgba(148,163,184,.22);background:#111827}.file-diff-container .line-number-head,.file-diff-container .column-header{min-height:48px;padding:.75rem .9rem;border-bottom:none;color:#e5e7eb}.file-diff-container .line-number-head{display:flex;align-items:center;justify-content:flex-end;border-right:1px solid rgba(148,163,184,.18);color:#94a3b8;font:700 .75rem/1.4 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.file-diff-container .column-header{min-width:0;display:flex;gap:.75rem;justify-content:space-between;align-items:center;background:transparent!important}.file-diff-container .column-header.left{border-right:1px solid rgba(148,163,184,.18)}.file-diff-container .column-title{min-width:0;overflow:hidden;color:#f8fafc;text-overflow:ellipsis;white-space:nowrap}.file-diff-container .diff-grid-body{background:#fff}.file-diff-container .diff-grid-row{border-bottom:1px solid #e5e7eb}.file-diff-container .diff-grid-row:hover .diff-code-cell,.file-diff-container .diff-grid-row:hover .line-number-cell{filter:saturate(1.15) brightness(.985)}.file-diff-container .line-number-cell,.file-diff-container .diff-code-cell{min-height:28px;padding-top:.28rem;padding-bottom:.28rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.84rem;line-height:1.65}.file-diff-container .line-number-cell{padding-left:.35rem;padding-right:.75rem;border-right:1px solid #e5e7eb;background:#f8fafc;color:#94a3b8;text-align:right;-webkit-user-select:none;user-select:none}.file-diff-container .diff-code-cell{display:grid;grid-template-columns:24px minmax(0,1fr);gap:.35rem;min-width:0;padding-left:.45rem;padding-right:.9rem;color:#1e293b;white-space:pre-wrap;overflow-wrap:anywhere}.file-diff-container .diff-code-cell.line-delete,.file-diff-container .line-number-cell.line-delete{background:#fff1f2}.file-diff-container .diff-code-cell.line-insert,.file-diff-container .line-number-cell.line-insert{background:#ecfdf5}.file-diff-container .diff-code-cell.line-empty,.file-diff-container .line-number-cell.line-empty{background:repeating-linear-gradient(-45deg,#f8fafc,#f8fafc 8px,#f1f5f9 8px,#f1f5f9 16px);color:#cbd5e1}.file-diff-container .diff-code-cell.line-delete{border-left:3px solid #ef4444;color:#7f1d1d}.file-diff-container .diff-code-cell.line-insert{border-left:3px solid #22c55e;color:#064e3b}.file-diff-container .change-marker{color:#94a3b8;font-weight:900;text-align:center;-webkit-user-select:none;user-select:none}.file-diff-container .line-delete .change-marker{color:#dc2626}.file-diff-container .line-insert .change-marker{color:#16a34a}.file-diff-container .line-text{min-width:0;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;-moz-tab-size:2;tab-size:2}.file-diff-container .token-keyword{color:#7c3aed;font-weight:800}.file-diff-container .token-string{color:#047857}.file-diff-container .token-number{color:#2563eb}.file-diff-container .token-comment{color:#64748b;font-style:italic}.file-diff-container .diff-view-unified{max-height:min(72vh,760px);overflow:auto;padding:.9rem;border-radius:0;background:#0f172a;box-shadow:none}.file-diff-container .diff-chunk{margin-bottom:1rem;overflow:hidden;border:1px solid rgba(148,163,184,.28);border-radius:14px;background:#fff}.file-diff-container .chunk-header{position:sticky;top:0;z-index:1;padding:.55rem .8rem;border-bottom:1px solid rgba(148,163,184,.22);background:#eef2ff;color:#3730a3;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem}.file-diff-container .diff-view-unified .diff-line{display:grid;grid-template-columns:58px 58px 28px minmax(520px,1fr);min-width:760px;align-items:stretch;padding:0;border-bottom:1px solid #e5e7eb;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.84rem;line-height:1.65}.file-diff-container .diff-view-unified .line-number,.file-diff-container .diff-view-unified .line-prefix,.file-diff-container .diff-view-unified .line-text{padding:.28rem .65rem}.file-diff-container .diff-view-unified .line-number{width:auto;border-right:1px solid #e5e7eb;background:#f8fafc;color:#94a3b8;text-align:right}.file-diff-container .diff-view-unified .line-prefix{width:auto;color:#64748b;text-align:center}.file-diff-container .diff-view-unified .line-text{color:#1e293b}.file-diff-container .diff-view-unified .line-delete .line-number,.file-diff-container .diff-view-unified .line-delete .line-prefix,.file-diff-container .diff-view-unified .line-delete .line-text{background:#fff1f2;color:#7f1d1d}.file-diff-container .diff-view-unified .line-insert .line-number,.file-diff-container .diff-view-unified .line-insert .line-prefix,.file-diff-container .diff-view-unified .line-insert .line-text{background:#ecfdf5;color:#064e3b}.file-diff-container .tips-section,.file-diff-container .usage-section{border:1px solid rgba(148,163,184,.24);border-radius:22px;background:#ffffffdb}.file-diff-container .features-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.file-diff-container .feature-item{border:1px solid rgba(148,163,184,.18);box-shadow:0 10px 26px #0f172a0d}.file-diff-container .line-delete-demo{background:#fff1f2;border-left-color:#ef4444}.file-diff-container .line-insert-demo{background:#ecfdf5;border-left-color:#22c55e}.file-diff-container .line-equal-demo{background:#f8fafc}@media (max-width: 1180px){.file-diff-container .diff-hero,.file-diff-container .controls-bar{grid-template-columns:1fr}.file-diff-container .hero-badges,.file-diff-container .options,.file-diff-container .action-btns{justify-content:flex-start}.file-diff-container .statistics-panel{grid-template-columns:repeat(3,minmax(120px,1fr))}}@media (max-width: 860px){.file-diff-container{padding:.75rem}.file-diff-container .diff-card{border-radius:20px;padding:.75rem}.file-diff-container .upload-section{grid-template-columns:1fr}.file-diff-container .upload-divider{justify-self:center;transform:none}.file-diff-container .mode-selector,.file-diff-container .action-btns,.file-diff-container .options{width:100%}.file-diff-container .mode-btn,.file-diff-container .btn{flex:1 1 150px;justify-content:center}.file-diff-container .statistics-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.file-diff-container .result-heading{align-items:flex-start;flex-direction:column}}@media (max-width: 560px){.file-diff-container .diff-hero{padding:1rem}.file-diff-container .statistics-panel{grid-template-columns:1fr}.file-diff-container .tips-section,.file-diff-container .usage-section{padding:1.1rem}}
