:root{color-scheme:light;--bg: #f5f0e6;--card: #fffaf3;--ink: #1f160f;--muted: #6b6159;--accent: #cc4b2f;--accent-dark: #9a3520;--accent-soft: #ffe3d7;--border: #e6d8c7;--shadow: 0 20px 45px rgba(25, 17, 12, .12);--panel: #201812;--equal: #fffdf8;--added: #e5f6ea;--removed: #fee6e4;--modified: #fff0cf;--added-ink: #206235;--removed-ink: #8b2d2a;--modified-ink: #7a5514;font-family:Fraunces,DM Sans,Segoe UI,sans-serif}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top right,rgba(255,213,188,.6),transparent 45%),radial-gradient(circle at 20% 40%,rgba(255,247,232,.9),transparent 50%),linear-gradient(130deg,#f8f1e6,#f1e6d6 45%,#e9decd);color:var(--ink)}.page{max-width:1120px;margin:0 auto;padding:48px 24px 72px;display:flex;flex-direction:column;gap:28px;position:relative}.page:before{content:"";position:absolute;inset:40px 24px auto auto;width:180px;height:180px;border-radius:999px;background:radial-gradient(circle,rgba(213,91,43,.18),transparent 70%);filter:blur(2px);pointer-events:none}.hero{display:grid;grid-template-columns:minmax(240px,1.2fr) minmax(220px,.8fr);gap:28px;align-items:center}.hero-copy{display:flex;flex-direction:column;gap:12px}.eyebrow{letter-spacing:.35em;text-transform:uppercase;color:var(--accent);font-weight:700;margin:0;font-size:.75rem}h1{font-size:clamp(2.4rem,5vw,3.6rem);margin:0;line-height:1.1}.subhead{color:var(--muted);max-width:560px;font-size:1.05rem}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.cta{border:none;background:var(--accent);color:#fff;padding:12px 18px;border-radius:14px;font-weight:600;cursor:pointer;box-shadow:0 12px 22px #d55b2b33;transition:transform .2s ease,background .2s ease}.cta:disabled{cursor:not-allowed;opacity:.7}.cta:not(:disabled):hover{background:var(--accent-dark);transform:translateY(-1px)}.ghost{border:1px solid var(--border);background:transparent;color:var(--ink);padding:12px 16px;border-radius:14px;font-weight:600;cursor:pointer}.controls{background:var(--card);border:1px solid var(--border);padding:22px;border-radius:18px;box-shadow:var(--shadow);display:grid;gap:12px}.controls-title{font-weight:700;font-size:1rem}.controls label{display:flex;gap:8px;align-items:center;font-size:.95rem}.controls-hint{color:var(--muted);font-size:.85rem}.controls button{border:none;background:var(--accent);color:#fff;padding:10px 14px;border-radius:12px;font-weight:600;cursor:pointer;transition:transform .2s ease,background .2s ease}.panes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.pane{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px;transition:border-color .2s ease,box-shadow .2s ease}.pane.drop{border-color:var(--accent);box-shadow:0 18px 35px #cc4b2f2e}.file-input{display:inline-flex;align-items:center;gap:10px;background:#fff3e6;border:1px dashed #e2c7b2;color:#7a4b2a;padding:8px 12px;border-radius:12px;font-size:.9rem;font-weight:600;width:fit-content;cursor:pointer}.file-input input{display:none}.file-status{font-size:.85rem;color:var(--muted);display:flex;flex-direction:column;gap:6px}.file-status.success{color:#2c6a3a;font-weight:600}.file-status.error{color:#9b1c1c;font-weight:600}.file-status-row{display:flex;justify-content:space-between;gap:10px}.file-progress{height:8px;background:#f0e4d6;border-radius:999px;overflow:hidden}.file-progress-bar{height:100%;background:linear-gradient(90deg,#cc4b2f,#f2a365);width:0%;transition:width .2s ease}.diff-grid .comment-row{grid-column:1 / -1;display:grid;grid-template-columns:90px 1fr;gap:10px;padding:12px 14px 16px;border-bottom:1px solid var(--border);background:#fffaf1}.comment-label{font-weight:700;color:var(--muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}.comment-row textarea{min-height:52px;border-radius:12px;border:1px solid var(--border);padding:10px 12px;font-family:DM Sans,Segoe UI,sans-serif;font-size:.95rem;resize:vertical}.pane-title{font-weight:700;color:var(--muted)}textarea{min-height:230px;border-radius:14px;border:1px solid var(--border);padding:14px;font-family:Fira Code,Courier New,monospace;font-size:.95rem;resize:vertical;background:#fffdf9}.output{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:22px;box-shadow:var(--shadow)}.output-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.output-subtitle{margin:6px 0 0;color:var(--muted);font-size:.95rem}.diff-wrapper{margin-top:14px;display:flex;flex-direction:column;gap:12px}.diff-legend{display:flex;flex-wrap:wrap;gap:10px}.legend-item{padding:6px 12px;border-radius:999px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.legend-item.equal{background:#efe8dd;color:#5a5148}.legend-item.added{background:var(--added);color:var(--added-ink)}.legend-item.removed{background:var(--removed);color:var(--removed-ink)}.legend-item.modified{background:var(--modified);color:var(--modified-ink)}.diff-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--border);border-radius:16px;overflow:hidden;background:#fffdf8}.diff-head{padding:10px 14px;font-weight:700;background:#f3e8d8;border-bottom:1px solid var(--border)}.diff-head+.diff-head{border-left:1px solid var(--border)}.diff-empty{grid-column:1 / -1;padding:20px;text-align:center;color:var(--muted)}.cell{padding:10px 14px;min-height:42px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:6px;font-family:Fira Code,Courier New,monospace;font-size:.9rem;background:#fffdf8}.cell+.cell{border-left:1px solid var(--border)}.cell.equal{background:var(--equal)}.cell.added{background:var(--added)}.cell.removed{background:var(--removed)}.cell.modified{background:var(--modified)}.chunk{padding:0 2px;border-radius:4px}.chunk.added{background:#bfe9cb;color:#1f5d33;box-shadow:inset 0 -1px #1f5d3340}.chunk.removed{background:#f5bfc0;color:#7a2424;box-shadow:inset 0 -1px #7a242440}.chunk.equal{background:transparent}.line{white-space:pre-wrap;word-break:break-word}.badge{background:var(--accent-soft);color:#7b2b19;padding:6px 12px;border-radius:999px;font-size:.75rem;text-transform:uppercase;letter-spacing:.18em}.error{color:#9b1c1c;margin-top:12px}.placeholder{color:var(--muted);padding:12px 0}@media (max-width: 860px){.hero{grid-template-columns:1fr}}@media (max-width: 720px){.page{padding:32px 18px 56px}}
