.fileget-text-diff {
    --tfd-ink: var(--text);
    --tfd-muted: var(--muted);
    --tfd-line: var(--line);
    --tfd-surface: var(--surface);
    --tfd-brand: var(--brand);
    --tfd-soft: #f7f8ff;
    --tfd-add: #e9f8ee;
    --tfd-remove: #fff0f0;
    --tfd-add-ink: #1d7a42;
    --tfd-remove-ink: #b63f44;
    width: 100%;
    color: var(--tfd-ink);
}
.fileget-text-diff *, .fileget-text-diff *::before, .fileget-text-diff *::after { box-sizing: border-box; }
.fileget-text-diff button, .fileget-text-diff textarea, .fileget-text-diff input { font: inherit; }
.fileget-text-diff [hidden] { display: none !important; }
.fileget-text-diff__hero { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:24px; }
.fileget-text-diff__hero-copy { max-width: 860px; }
.fileget-text-diff__eyebrow, .fileget-text-diff__kicker { color:var(--tfd-brand); font-size:11px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.fileget-text-diff__hero h1 { margin:10px 0 12px; font-size:clamp(34px,5vw,54px); line-height:1.04; letter-spacing:-.025em; }
.fileget-text-diff__hero p { margin:0; max-width:790px; color:var(--tfd-muted); font-size:17px; line-height:1.7; }
.fileget-text-diff__trust { flex:0 0 auto; display:inline-flex; align-items:center; gap:8px; padding:10px 13px; border:1px solid #e7e9ff; border-radius:999px; background:#fff; color:#4e54b8; font-size:13px; font-weight:800; white-space:nowrap; }
.fileget-text-diff__toolbar { display:flex; align-items:center; gap:14px; padding:14px 16px; margin-bottom:18px; border:1px solid var(--tfd-line); border-radius:18px; background:var(--tfd-surface); box-shadow:var(--shadow); }
.fileget-text-diff__toolbar-group { display:flex; align-items:center; gap:10px; }
.fileget-text-diff__toolbar-group--checks { flex:1; gap:16px; }
.fileget-text-diff__label { color:var(--tfd-muted); font-size:12px; font-weight:800; }
.fileget-text-diff__segmented { display:inline-flex; padding:3px; border:1px solid var(--tfd-line); border-radius:11px; background:var(--tfd-soft); }
.fileget-text-diff__segment { border:0; background:transparent; color:var(--tfd-muted); padding:7px 11px; border-radius:8px; font-size:12px; font-weight:800; cursor:pointer; }
.fileget-text-diff__segment.is-active { background:#fff; color:var(--tfd-ink); box-shadow:0 1px 4px rgba(17,24,39,.08); }
.fileget-text-diff__switch { display:inline-flex; align-items:center; gap:8px; color:#5d6370; font-size:12px; font-weight:700; cursor:pointer; user-select:none; }
.fileget-text-diff__switch input { position:absolute; opacity:0; pointer-events:none; }
.fileget-text-diff__switch span { width:28px; height:16px; border-radius:999px; background:#dfe2ea; position:relative; transition:.2s ease; }
.fileget-text-diff__switch span::after { content:''; position:absolute; top:3px; left:3px; width:10px; height:10px; border-radius:50%; background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.18); transition:.2s ease; }
.fileget-text-diff__switch input:checked + span { background:var(--tfd-brand); }
.fileget-text-diff__switch input:checked + span::after { transform:translateX(12px); }
.fileget-text-diff__button, .fileget-text-diff__mini { border:1px solid var(--tfd-line); background:#fff; color:var(--tfd-ink); cursor:pointer; border-radius:12px; font-weight:800; }
.fileget-text-diff__button { min-height:42px; padding:0 15px; font-size:13px; }
.fileget-text-diff__button--primary { border-color:transparent; background:var(--tfd-brand); color:#fff; box-shadow:0 8px 18px rgba(82,88,194,.2); }
.fileget-text-diff__button--ghost { background:#fff; }
.fileget-text-diff__button:disabled, .fileget-text-diff__mini:disabled { opacity:.5; cursor:not-allowed; }
.fileget-text-diff__compare { min-width:156px; }
.fileget-text-diff__workspace { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.fileget-text-diff__input-panel { position:relative; overflow:hidden; min-width:0; border:1px solid var(--tfd-line); border-radius:22px; background:var(--tfd-surface); box-shadow:var(--shadow); padding:22px; transition:.2s ease; }
.fileget-text-diff__input-panel.is-dragging { border-color:var(--tfd-brand); box-shadow:0 0 0 3px rgba(82,88,194,.1), var(--shadow); transform:translateY(-1px); }
.fileget-text-diff__panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.fileget-text-diff__panel-head h2 { margin:5px 0 4px; font-size:21px; line-height:1.2; }
.fileget-text-diff__panel-head p { margin:0; color:var(--tfd-muted); font-size:12px; line-height:1.55; max-width:520px; }
.fileget-text-diff__text-count { display:inline-flex; align-items:center; justify-content:center; min-width:42px; padding:7px 9px; border-radius:10px; background:var(--tfd-soft); color:#5e6372; font-size:12px; font-weight:900; }
.fileget-text-diff__input-meta { display:flex; align-items:center; gap:8px; margin:17px 0 12px; }
.fileget-text-diff__file-button, .fileget-text-diff__mini { min-height:34px; display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:0 10px; font-size:11px; }
.fileget-text-diff__file-button { border:1px solid var(--tfd-line); border-radius:10px; background:#fff; color:#4f5561; font-weight:800; cursor:pointer; }
.fileget-text-diff__file-button input { display:none; }
.fileget-text-diff__mini { font-weight:750; }
.fileget-text-diff__input-panel textarea { width:100%; min-height:320px; resize:vertical; border:1px solid #dfe2ea; border-radius:15px; background:#fbfcff; color:#232936; padding:16px 17px; outline:none; line-height:1.7; font-size:14px; tab-size:4; }
.fileget-text-diff__input-panel textarea:focus { border-color:#9fa4e7; box-shadow:0 0 0 3px rgba(82,88,194,.09); background:#fff; }
.fileget-text-diff__drop-hint { margin-top:9px; color:#a0a4ae; font-size:10px; text-align:center; }
.fileget-text-diff__statusbar { display:flex; align-items:center; gap:8px; margin:14px 0 18px; padding:10px 13px; color:var(--tfd-muted); font-size:12px; }
.fileget-text-diff__status-dot { width:8px; height:8px; border-radius:50%; background:#c2c6d3; }
.fileget-text-diff__status-dot.is-success { background:#4ca56f; }
.fileget-text-diff__status-dot.is-error { background:#c7595d; }
.fileget-text-diff__result { border:1px solid var(--tfd-line); border-radius:22px; background:var(--tfd-surface); box-shadow:var(--shadow); overflow:hidden; }
.fileget-text-diff__result-head { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 22px 16px; }
.fileget-text-diff__result-head h2 { margin:5px 0 0; font-size:22px; }
.fileget-text-diff__result-actions { display:flex; gap:8px; }
.fileget-text-diff__stat-strip { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)) 1.4fr; gap:10px; padding:0 22px 18px; }
.fileget-text-diff__stat { border:1px solid #eceef4; border-radius:14px; padding:12px 13px; background:#fbfcff; }
.fileget-text-diff__stat span { display:block; color:var(--tfd-muted); font-size:11px; font-weight:800; }
.fileget-text-diff__stat strong { display:block; margin-top:4px; font-size:20px; line-height:1; }
.fileget-text-diff__stat--wide { display:flex; align-items:center; justify-content:center; gap:6px; flex-wrap:wrap; }
.fileget-text-diff__stat--wide span { color:var(--tfd-ink); font-size:17px; }
.fileget-text-diff__stat--wide small { color:var(--tfd-muted); font-size:11px; }
.fileget-text-diff__viewbar { display:flex; align-items:center; gap:12px; padding:13px 22px; border-top:1px solid var(--tfd-line); border-bottom:1px solid var(--tfd-line); background:#fbfcff; }
.fileget-text-diff__legend { margin-inline-start:auto; display:flex; gap:14px; color:#737987; font-size:10px; font-weight:700; }
.fileget-text-diff__legend span { display:inline-flex; align-items:center; gap:5px; }
.fileget-text-diff__legend i { width:9px; height:9px; border-radius:3px; display:inline-block; border:1px solid #d6d9e2; }
.fileget-text-diff__legend .is-add { background:var(--tfd-add); border-color:#c4e7d2; }
.fileget-text-diff__legend .is-remove { background:var(--tfd-remove); border-color:#f0c7ca; }
.fileget-text-diff__legend .is-same { background:#fff; }
.fileget-text-diff__diff { overflow:auto; max-height:640px; background:#fff; }
.fileget-text-diff__split-row { display:grid; grid-template-columns:1fr 1fr; min-width:860px; border-bottom:1px solid #f0f1f4; }
.fileget-text-diff__cell { display:grid; grid-template-columns:50px minmax(0,1fr); gap:0; min-width:0; }
.fileget-text-diff__cell + .fileget-text-diff__cell { border-inline-start:1px solid #e9ebf0; }
.fileget-text-diff__line-number { padding:9px 10px; text-align:right; color:#a4a8b3; background:#fafbfc; border-inline-end:1px solid #f0f1f4; font:700 10px/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.fileget-text-diff__cell code, .fileget-text-diff__unified-row code { min-width:0; padding:9px 12px; overflow-wrap:anywhere; white-space:pre-wrap; color:#303542; font:12px/1.6 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.fileget-text-diff__split-row.is-add .fileget-text-diff__cell:last-child { background:var(--tfd-add); }
.fileget-text-diff__split-row.is-remove .fileget-text-diff__cell:first-child { background:var(--tfd-remove); }
.fileget-text-diff__split-row.is-change .fileget-text-diff__cell:first-child { background:rgba(255,240,240,.72); }
.fileget-text-diff__split-row.is-change .fileget-text-diff__cell:last-child { background:rgba(233,248,238,.72); }
.fileget-text-diff__blank { opacity:.35; }
.fileget-text-diff__inline { padding:1px 2px; border-radius:3px; text-decoration:none; }
.fileget-text-diff__inline--remove { background:#ffdfe1; color:var(--tfd-remove-ink); }
.fileget-text-diff__inline--add { background:#d8f3e0; color:var(--tfd-add-ink); }
.fileget-text-diff__unified-row { display:grid; grid-template-columns:30px 54px minmax(0,1fr); min-width:720px; border-bottom:1px solid #f0f1f4; }
.fileget-text-diff__unified-row.is-add { background:var(--tfd-add); }
.fileget-text-diff__unified-row.is-remove { background:var(--tfd-remove); }
.fileget-text-diff__unified-row.is-change { background:#fff8f8; }
.fileget-text-diff__marker { padding:9px 0; text-align:center; color:#8f95a1; font:800 12px/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.fileget-text-diff__unified-row.is-add .fileget-text-diff__marker { color:var(--tfd-add-ink); }
.fileget-text-diff__unified-row.is-remove .fileget-text-diff__marker { color:var(--tfd-remove-ink); }
.fileget-text-diff__privacy { display:flex; gap:12px; align-items:flex-start; margin-top:18px; padding:17px 18px; border:1px solid #e7e9f1; border-radius:16px; background:#fbfcff; }
.fileget-text-diff__privacy-icon { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:#eaf7ef; color:#3e9360; font-weight:900; flex:0 0 auto; }
.fileget-text-diff__privacy strong { display:block; font-size:13px; }
.fileget-text-diff__privacy p { margin:4px 0 0; color:var(--tfd-muted); font-size:11px; line-height:1.6; }
@media (max-width: 980px) {
    .fileget-text-diff__toolbar { flex-wrap:wrap; }
    .fileget-text-diff__toolbar-group--checks { flex:1 1 100%; order:4; }
    .fileget-text-diff__workspace { grid-template-columns:1fr; }
    .fileget-text-diff__input-panel textarea { min-height:270px; }
    .fileget-text-diff__stat-strip { grid-template-columns:repeat(2,1fr); }
    .fileget-text-diff__stat--wide { grid-column:span 2; }
}
@media (max-width: 680px) {
    .fileget-text-diff__hero { align-items:flex-start; flex-direction:column; }
    .fileget-text-diff__hero h1 { font-size:35px; }
    .fileget-text-diff__toolbar { padding:12px; }
    .fileget-text-diff__toolbar-group { width:100%; justify-content:space-between; }
    .fileget-text-diff__compare { flex:1; }
    .fileget-text-diff__result-head, .fileget-text-diff__viewbar { align-items:flex-start; flex-direction:column; }
    .fileget-text-diff__result-actions { width:100%; }
    .fileget-text-diff__result-actions .fileget-text-diff__button { flex:1; }
    .fileget-text-diff__legend { margin-inline-start:0; flex-wrap:wrap; }
    .fileget-text-diff__stat-strip { padding-inline:14px; }
    .fileget-text-diff__result-head { padding-inline:14px; }
    .fileget-text-diff__viewbar { padding-inline:14px; }
}
