:root{--bg: #f4f0e8;--bg-2: #ede6da;--surface: #fffdf8;--surface-2: #faf5ec;--surface-3: #f1eadc;--ink: #221d16;--ink-2: #5c5446;--ink-3: #8e8675;--line: rgba(34, 29, 22, .12);--line-2: rgba(34, 29, 22, .07);--accent: #c4673a;--accent-ink: #ffffff;--accent-deep: #a8542d;--accent-soft: color-mix(in srgb, var(--accent) 10%, transparent);--accent-line: color-mix(in srgb, var(--accent) 52%, var(--line));--del-ink: #b23a25;--del-bg: color-mix(in srgb, #c8402a 13%, transparent);--del-line: color-mix(in srgb, #c8402a 42%, var(--line));--add-ink: #2f7d50;--add-bg: color-mix(in srgb, #2f9e6b 15%, transparent);--add-line: color-mix(in srgb, #2f9e6b 42%, var(--line));--ok: #3f9d6a;--radius: 13px;--radius-sm: 9px;--font: "IBM Plex Sans JP", system-ui, -apple-system, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--shadow-1: 0 1px 2px rgba(40, 30, 14, .05);--shadow-2: 0 14px 34px -22px rgba(40, 30, 14, .42);--ed-pad: 14px 15px;--ed-size: 13.5px;--ed-lh: 1.85}[data-theme=dark]{--bg: #14110c;--bg-2: #1a1610;--surface: #1e1913;--surface-2: #241e16;--surface-3: #2b231a;--ink: #f1eadd;--ink-2: #b4a991;--ink-3: #7d7464;--line: rgba(255, 244, 226, .13);--line-2: rgba(255, 244, 226, .06);--accent: #d97a48;--accent-deep: #c4673a;--accent-soft: color-mix(in srgb, var(--accent) 22%, transparent);--accent-line: color-mix(in srgb, var(--accent) 58%, var(--line));--del-ink: #ec8e76;--del-bg: color-mix(in srgb, #e0603f 24%, transparent);--del-line: color-mix(in srgb, #e0603f 50%, var(--line));--add-ink: #62c08c;--add-bg: color-mix(in srgb, #5cc088 22%, transparent);--add-line: color-mix(in srgb, #5cc088 48%, var(--line));--ok: #5cc088;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 16px 40px -22px rgba(0, 0, 0, .7)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}html,body{height:100%}body{font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.55;overflow:hidden}a{color:inherit;text-decoration:none}button{font-family:inherit}.app{position:relative;height:100dvh;display:flex;flex-direction:column}.topbar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px clamp(14px,2.6vw,26px);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20}.brand{display:flex;align-items:center;gap:11px;min-width:0}.brand__mark{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:11px;background:var(--surface);border:1px solid var(--line);color:var(--accent)}.brand__mark svg{width:21px;height:21px}.brand__txt{min-width:0}.brand__name{font-size:15.5px;font-weight:600;line-height:1.15;white-space:nowrap}.brand__sub{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}.badges{display:flex;align-items:center;gap:8px;margin-left:6px}.badge{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 11px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);font-size:11px;font-weight:600;color:var(--ink-2);white-space:nowrap}.badge svg{width:13px;height:13px;color:var(--ok)}.badge.badge--lock svg{color:var(--accent)}.actions{display:flex;align-items:center;gap:7px}.iconbtn{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);cursor:pointer;transition:color .16s,border-color .16s,background .16s,transform .12s;position:relative}.iconbtn:hover{color:var(--ink);border-color:var(--ink-3)}.iconbtn:active{transform:translateY(1px)}.iconbtn svg{width:19px;height:19px}.iconbtn .tip{position:absolute;top:46px;left:50%;transform:translate(-50%);font-family:var(--mono);font-size:10.5px;white-space:nowrap;background:var(--ink);color:var(--bg);padding:4px 8px;border-radius:6px;opacity:0;pointer-events:none;transition:opacity .15s;z-index:30}.iconbtn:hover .tip{opacity:.95}.btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:10px;border:1px solid transparent;font-size:13px;font-weight:600;color:var(--ink);background:transparent;cursor:pointer;white-space:nowrap;transition:background .16s,border-color .16s,color .16s,transform .12s}.btn svg{width:16px;height:16px}.btn--primary{background:var(--accent);color:var(--accent-ink)}.btn--primary:hover{background:var(--accent-deep)}.btn--primary:active{transform:translateY(1px)}.subbar{flex:none;display:flex;align-items:center;gap:12px 14px;flex-wrap:wrap;padding:10px clamp(14px,2.6vw,26px);border-bottom:1px solid var(--line);background:var(--surface-2)}.ctlgroup{display:inline-flex;align-items:center;gap:9px;min-width:0}.ctlgroup__lab{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--ink-2);white-space:nowrap}.ctlgroup__lab svg{width:15px;height:15px;color:var(--ink-3)}.subdiv{width:1px;height:24px;background:var(--line);flex:none}.subspring{flex:1 1 18px}.seg{display:inline-flex;align-items:center;position:relative;padding:3px;border-radius:10px;background:var(--surface-3);border:1px solid var(--line)}.seg button{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 13px;border:none;background:transparent;color:var(--ink-2);font-size:12.5px;font-weight:600;border-radius:7px;cursor:pointer;position:relative;z-index:1;transition:color .16s;white-space:nowrap}.seg button svg{width:15px;height:15px}.seg button.is-on{color:var(--accent)}.seg__thumb{position:absolute;top:3px;bottom:3px;border-radius:7px;background:var(--surface);box-shadow:var(--shadow-1);border:1px solid var(--accent-line);transition:left .22s cubic-bezier(.3,.7,.4,1),width .22s;z-index:0}.pills{display:inline-flex;align-items:center;gap:7px;flex-wrap:wrap}.tpill{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:12px;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s,background .15s;white-space:nowrap}.tpill .box{width:15px;height:15px;flex:none;border-radius:4px;border:1.5px solid var(--ink-3);display:grid;place-items:center;transition:border-color .15s,background .15s}.tpill .box svg{width:11px;height:11px;color:var(--accent-ink);opacity:0;transition:opacity .12s}.tpill:hover{color:var(--ink);border-color:var(--ink-3)}.tpill.is-on{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}.tpill.is-on .box{background:var(--accent);border-color:var(--accent)}.tpill.is-on .box svg{opacity:1}.switch{display:inline-flex;align-items:center;gap:9px;cursor:pointer;user-select:none;font-size:12px;font-weight:600;color:var(--ink-2);white-space:nowrap}.switch__track{position:relative;width:38px;height:22px;flex:none;border-radius:999px;background:var(--surface-3);border:1px solid var(--line);transition:background .16s,border-color .16s}.switch__track i{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--ink-3);box-shadow:0 1px 2px #0000004d;transition:transform .16s,background .16s}.switch.is-on .switch__track{background:var(--accent-soft);border-color:var(--accent-line)}.switch.is-on .switch__track i{transform:translate(16px);background:var(--accent)}.minibtn{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:12.5px;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s,background .15s,transform .12s}.minibtn:hover{color:var(--ink);border-color:var(--ink-3)}.minibtn:active{transform:translateY(1px)}.minibtn svg{width:15px;height:15px}.minibtn--accent{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}.minibtn--accent:hover{background:color-mix(in srgb,var(--accent) 16%,transparent)}.main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(12px,1.8vw,20px);padding:clamp(12px,1.8vw,20px) clamp(14px,2.6vw,26px);overflow:hidden}.panel{position:relative;display:flex;flex-direction:column;min-height:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-1);overflow:hidden}.panel--a{--tone: var(--del-ink);--tone-line: var(--del-line)}.panel--b{--tone: var(--add-ink);--tone-line: var(--add-line)}.panel__head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line-2)}.panel__title{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;letter-spacing:.01em;white-space:nowrap;flex:none}.panel__title .tag{width:8px;height:8px;border-radius:50%;background:var(--tone);box-shadow:0 0 0 3px color-mix(in srgb,var(--tone) 20%,transparent)}.panel__title .en{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);font-weight:500}.head-tools{display:flex;align-items:center;gap:8px}.countpill{display:inline-flex;align-items:baseline;gap:5px;font-family:var(--mono);font-size:11px;color:var(--ink-3);padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);font-variant-numeric:tabular-nums;white-space:nowrap}.countpill b{color:var(--ink);font-weight:600;font-size:12px}.icontiny{width:28px;height:28px;display:grid;place-items:center;border-radius:7px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-3);cursor:pointer;transition:color .15s,border-color .15s}.icontiny:hover{color:var(--tone);border-color:var(--tone-line)}.icontiny svg{width:14px;height:14px}.editor{position:relative;flex:1;min-height:0;margin:12px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-2);overflow:hidden;transition:border-color .15s,box-shadow .15s,background .15s}.editor.focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.editor.drag{border-color:var(--accent);border-style:dashed;background:var(--accent-soft)}.hl,.input{position:absolute;inset:0;margin:0;padding:var(--ed-pad);font-family:var(--mono);font-size:var(--ed-size);line-height:var(--ed-lh);font-variant-ligatures:none;white-space:pre-wrap;word-break:break-word;overflow-wrap:break-word;tab-size:4;-moz-tab-size:4;overflow:auto;border:0;border-radius:var(--radius-sm)}.hl{z-index:1;color:var(--ink);pointer-events:none;-webkit-user-select:none;user-select:none}.input{z-index:2;resize:none;color:transparent;background:transparent;caret-color:var(--accent);-webkit-text-fill-color:transparent}.input::placeholder{color:var(--ink-3);-webkit-text-fill-color:var(--ink-3)}.input:focus{outline:none}.input::selection{background:color-mix(in srgb,var(--accent) 26%,transparent)}.hl ::selection{background:transparent}.hl::-webkit-scrollbar{width:0;height:0}.hl{scrollbar-width:none}.input::-webkit-scrollbar{width:10px;height:10px}.input::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ink-3) 45%,transparent);border-radius:6px;border:3px solid transparent;background-clip:content-box}.input::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--ink-3) 70%,transparent);background-clip:content-box}.hl mark.d-del{background:var(--del-bg);color:var(--del-ink);border-radius:3px;text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--del-ink) 55%,transparent);text-decoration-thickness:1.5px}.hl mark.d-ins{background:var(--add-bg);color:var(--add-ink);border-radius:3px;font-weight:700}.hl .ln{display:block;min-height:calc(var(--ed-size) * var(--ed-lh))}.hl .ln--del{background:var(--del-bg);color:var(--del-ink);box-shadow:inset 2px 0 0 var(--del-ink)}.hl .ln--ins{background:var(--add-bg);color:var(--add-ink);font-weight:600;box-shadow:inset 2px 0 0 var(--add-ink)}.identical{position:absolute;inset:0;z-index:3;display:none;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;pointer-events:none;background:color-mix(in srgb,var(--surface) 80%,transparent)}.app[data-identical="1"] .identical{display:flex}.identical__ic{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;border:1px solid var(--add-line);background:var(--surface);color:var(--add-ink);box-shadow:var(--shadow-1)}.identical__ic svg{width:23px;height:23px}.identical__t{font-size:13.5px;font-weight:600;color:var(--ink-2)}.statusbar{flex:none;display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;padding:9px clamp(14px,2.6vw,26px);border-top:1px solid var(--line);background:var(--surface-2)}.foot__brand{font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:var(--ink-3);white-space:nowrap}.stats{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.statchip{display:inline-flex;align-items:baseline;gap:6px;border:1px solid var(--line);border-radius:999px;background:var(--surface);padding:5px 12px;font-family:var(--mono);font-size:11.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}.statchip .lab{letter-spacing:.02em}.statchip b{font-size:13px;color:var(--ink);font-weight:600}.statchip .arrow{color:var(--ink-3);padding:0 1px}.statchip--delta b{color:var(--accent)}.statchip--add{border-color:var(--add-line);color:var(--add-ink);background:color-mix(in srgb,var(--add-bg) 60%,var(--surface))}.statchip--add b{color:var(--add-ink)}.statchip--del{border-color:var(--del-line);color:var(--del-ink);background:color-mix(in srgb,var(--del-bg) 60%,var(--surface))}.statchip--del b{color:var(--del-ink)}.foot__keys{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.kbdhint{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-size:11.5px;color:var(--ink-3)}kbd{font-family:var(--mono);font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:6px;border:1px solid var(--line);border-bottom-width:2px;background:var(--surface);color:var(--ink-2)}.toast{position:fixed;left:50%;bottom:64px;transform:translate(-50%,16px);z-index:80;display:flex;align-items:center;gap:9px;background:var(--ink);color:var(--bg);padding:11px 18px;border-radius:999px;font-size:13px;box-shadow:0 16px 36px -14px #0000008c;opacity:0;pointer-events:none;transition:opacity .24s,transform .24s}.toast.show{opacity:1;transform:translate(-50%)}.toast svg{width:16px;height:16px;flex:none;color:var(--ok)}@media(max-width:920px){body{overflow:auto}.app{height:auto;min-height:100dvh}.main{grid-template-columns:1fr;overflow:visible}.panel{overflow:visible}.editor{height:300px;flex:none}.badges{display:none}}@media(max-width:620px){.brand__sub,.foot__keys,.seg button span{display:none}.seg button{padding:0 11px}}@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}
