:root{--bg: #0c0c0e;--text: #e8e4dc;--subtle: #7a7570;--panel: #121215;--panel-border: rgba(255, 255, 255, .08);--before: #c8964a;--after: #5b9bc8;--accent: #c8a96e;--accent-soft: rgba(200, 169, 110, .12);--accent-border: rgba(200, 169, 110, .55);--header-glow: rgba(200, 169, 110, .1);--header-overlay: rgba(255, 255, 255, .04);--tab-border: rgba(255, 255, 255, .06);--tab-bg: rgba(255, 255, 255, .015);--chip-border: rgba(255, 255, 255, .12);--panel-soft: rgba(255, 255, 255, .02);--inset: rgba(0, 0, 0, .2);--inset-strong: rgba(0, 0, 0, .25);--hairline: rgba(255, 255, 255, .06);--hairline-soft: rgba(255, 255, 255, .05);--hairline-strong: rgba(255, 255, 255, .11);--row-context-bg: rgba(255, 255, 255, .01);--row-added-bg: rgba(127, 207, 143, .1);--row-removed-bg: rgba(241, 145, 145, .1);--row-modified-bg: rgba(200, 169, 110, .08);--inline-added-bg: rgba(127, 207, 143, .28);--inline-added-text: #d4f1da;--inline-removed-bg: rgba(241, 145, 145, .24);--inline-removed-text: #ffd9d9;--pending-color: #f4be6f;--pending-border: rgba(244, 190, 111, .45);--pending-bg: rgba(244, 190, 111, .12);--confirmed-color: #7fcf8f;--confirmed-border: rgba(127, 207, 143, .45);--confirmed-bg: rgba(127, 207, 143, .12);--error-color: #f19191;--error-border: rgba(241, 145, 145, .4);--error-bg: rgba(241, 145, 145, .12);--text-strong: #d2cec7;--text-soft: #bdb8b0;--text-faint: #5a5550;--text-mid: #6d6863;--text-history: #c6c1b9;--text-history-body: #d7d2ca;--before-text: #ceb98c;--before-panel-bg: rgba(200, 150, 74, .05);--before-panel-border: rgba(200, 150, 74, .22);--before-badge-bg: rgba(200, 150, 74, .13);--after-text: #a8c4d6;--after-panel-bg: rgba(91, 155, 200, .05);--after-panel-border: rgba(91, 155, 200, .22);--after-badge-bg: rgba(91, 155, 200, .13);--intent-rule: rgba(126, 184, 200, .35);--history-text: #a8a39b}:root[data-theme=light]{--bg: #f6f3ec;--text: #1f1d1a;--subtle: #7a736b;--panel: #fdfaf3;--panel-border: rgba(60, 50, 40, .18);--before: #a66e23;--after: #2e6a99;--accent: #8a6a2a;--accent-soft: rgba(138, 106, 42, .14);--accent-border: rgba(138, 106, 42, .55);--header-glow: rgba(138, 106, 42, .12);--header-overlay: rgba(60, 50, 40, .04);--tab-border: rgba(60, 50, 40, .12);--tab-bg: rgba(60, 50, 40, .03);--chip-border: rgba(60, 50, 40, .2);--panel-soft: rgba(60, 50, 40, .03);--inset: rgba(60, 50, 40, .05);--inset-strong: rgba(60, 50, 40, .07);--hairline: rgba(60, 50, 40, .12);--hairline-soft: rgba(60, 50, 40, .08);--hairline-strong: rgba(60, 50, 40, .18);--row-context-bg: rgba(60, 50, 40, .02);--row-added-bg: rgba(60, 140, 80, .12);--row-removed-bg: rgba(180, 60, 60, .1);--row-modified-bg: rgba(180, 130, 50, .1);--inline-added-bg: rgba(60, 140, 80, .28);--inline-added-text: #1d4a2c;--inline-removed-bg: rgba(180, 60, 60, .24);--inline-removed-text: #6e1c1c;--pending-color: #a06a18;--pending-border: rgba(160, 106, 24, .55);--pending-bg: rgba(244, 190, 111, .18);--confirmed-color: #2f7a3c;--confirmed-border: rgba(47, 122, 60, .5);--confirmed-bg: rgba(127, 207, 143, .2);--error-color: #b13838;--error-border: rgba(177, 56, 56, .45);--error-bg: rgba(241, 145, 145, .18);--text-strong: #2a2622;--text-soft: #3e3a34;--text-faint: #948c82;--text-mid: #5e564c;--text-history: #2c2822;--text-history-body: #1f1d1a;--before-text: #74511a;--before-panel-bg: rgba(200, 150, 74, .1);--before-panel-border: rgba(166, 110, 35, .4);--before-badge-bg: rgba(166, 110, 35, .16);--after-text: #1f4d70;--after-panel-bg: rgba(91, 155, 200, .1);--after-panel-border: rgba(46, 106, 153, .4);--after-badge-bg: rgba(46, 106, 153, .14);--intent-rule: rgba(46, 106, 153, .45);--history-text: #6a635a}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:radial-gradient(1200px 480px at 85% -10%,var(--header-glow),transparent 60%),var(--bg);color:var(--text);font-family:"Noto Serif JP",Georgia,serif;transition:background-color .2s ease,color .2s ease}.mono{font-family:Courier New,Consolas,monospace}.subtle{color:var(--subtle)}.app-shell{min-height:100vh}.container{max-width:960px;margin:0 auto;padding:0 24px}.site-header{border-bottom:1px solid var(--panel-border);padding:44px 0 34px;background:linear-gradient(180deg,var(--header-overlay) 0%,transparent 100%)}.header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.header-text{flex:1;min-width:0}.theme-toggle{border:1px solid var(--chip-border);background:var(--panel-soft);color:var(--subtle);padding:8px 12px;font-size:11px;letter-spacing:.14em;cursor:pointer;font-family:Courier New,Consolas,monospace;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.theme-toggle:hover{color:var(--text);border-color:var(--accent-border)}.eyebrow{margin:0 0 12px;font-size:11px;letter-spacing:.2em;color:var(--subtle);font-family:Courier New,Consolas,monospace}.title{margin:0;font-size:30px;font-weight:500;letter-spacing:.05em}.subtitle{margin:10px 0 0;font-size:13px;letter-spacing:.08em;color:var(--subtle)}.tab-nav{border-bottom:1px solid var(--tab-border);background:var(--tab-bg)}.tab-row{display:flex;gap:8px;padding-top:14px;padding-bottom:14px}.tab-button{border:1px solid var(--chip-border);background:transparent;color:var(--subtle);padding:8px 14px;font-size:12px;letter-spacing:.08em;cursor:pointer}.tab-button.active{color:var(--text);border-color:var(--accent-border);background:var(--accent-soft)}.main-content{padding-top:28px;padding-bottom:40px}.filter-card{border:1px solid var(--panel-border);background:var(--panel-soft);padding:16px 14px;display:grid;gap:14px}.filter-group{display:grid;gap:8px}.filter-label{font-size:11px;color:var(--subtle);letter-spacing:.15em}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{border:1px solid var(--chip-border);background:transparent;color:var(--subtle);padding:4px 10px;font-size:12px;cursor:pointer}.filter-chip.selected{border-color:var(--accent-border);color:var(--accent);background:var(--accent-soft)}.count-label{margin:22px 0;font-size:11px;color:var(--text-faint);letter-spacing:.14em;font-family:Courier New,Consolas,monospace}.stack{display:grid;gap:10px}.stack.compact{gap:8px}.revision-card,.intent-card{border:1px solid var(--panel-border);background:var(--panel)}.revision-card.open{border-color:var(--hairline-strong)}.revision-header{width:100%;background:transparent;border:0;color:inherit;text-align:left;display:flex;align-items:center;gap:12px;padding:14px;cursor:pointer}.revision-version{color:var(--text-mid);font-size:11px;letter-spacing:.08em;min-width:140px}.scene-badge{font-size:11px;min-width:52px;text-align:center;border:1px solid var(--hairline-strong);color:var(--subtle);padding:2px 8px}.revision-label{flex:1;color:var(--text-strong);letter-spacing:.05em;font-size:14px}.revision-character{color:var(--subtle);font-size:12px;min-width:86px;text-align:right}.category-tag,.taxonomy-tag{border-width:1px;border-style:solid;padding:3px 9px;font-size:11px;letter-spacing:.04em;font-family:Courier New,Consolas,monospace}.pending-chip,.confirmed-chip{font-size:11px;padding:2px 8px;font-family:Courier New,Consolas,monospace}.pending-chip{color:var(--pending-color);border:1px solid var(--pending-border);background:var(--pending-bg)}.confirmed-chip{color:var(--confirmed-color);border:1px solid var(--confirmed-border);background:var(--confirmed-bg)}.chevron{color:var(--text-faint);font-size:10px;transition:transform .16s ease}.chevron.rotated{transform:rotate(180deg)}.revision-body{border-top:1px solid var(--hairline);padding:18px 14px 16px;display:grid;gap:14px}.diff-scroll{overflow-x:auto}.diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;min-width:760px}.diff-label{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.1em;margin-bottom:8px}.before-label{color:var(--before)}.after-label{color:var(--after)}.shape-marker{display:inline-block;width:10px;height:10px}.shape-marker.square{background:var(--before)}.shape-marker.circle{background:var(--after);border-radius:50%}.badge{border:1px solid currentColor;padding:1px 6px;font-size:10px}.before-badge{background:var(--before-badge-bg)}.after-badge{background:var(--after-badge-bg)}.diff-panel{margin:0;min-height:90px;white-space:pre-wrap;font-size:13px;line-height:1.95;letter-spacing:.04em;font-family:"Noto Serif JP",Georgia,serif;padding:14px}.before-panel{border:2px solid var(--before-panel-border);border-left-width:4px;color:var(--before-text);background:var(--before-panel-bg)}.after-panel{border:2px solid var(--after-panel-border);border-left-width:4px;color:var(--after-text);background:var(--after-panel-bg)}.reading-card{border:1px solid var(--panel-border);background:var(--panel-soft);padding:16px;display:grid;gap:12px;margin-top:14px}.reading-panel{margin:0;white-space:pre-wrap;word-break:break-word;font-size:14px;line-height:2;letter-spacing:.04em;font-family:"Noto Serif JP",Georgia,serif;border:1px solid var(--hairline-strong);background:var(--inset-strong);color:var(--text);padding:18px;max-height:70vh;overflow:auto}.pending-warning{margin:0;border:1px solid var(--pending-border);background:var(--pending-bg);color:var(--pending-color);padding:8px 10px;font-size:12px}.detail-block{display:grid;gap:8px}.detail-heading{margin:0;font-size:11px;letter-spacing:.14em;color:var(--subtle);font-family:Courier New,Consolas,monospace}.detail-text{margin:0;color:var(--text-soft);line-height:1.95;letter-spacing:.03em;border-left:2px solid var(--accent-border);padding-left:11px}.alt-card{border:1px solid var(--hairline);background:var(--panel-soft);padding:8px}.alt-title,.alt-reason{margin:0;font-size:13px;color:var(--text-soft);line-height:1.7}.impact-chip,.intent-tag,.link-chip{border:1px solid var(--hairline-strong);padding:3px 9px;font-size:11px;color:var(--subtle);background:var(--panel-soft);font-family:Courier New,Consolas,monospace}.intent-card{padding:14px;display:grid;gap:12px}.history-card{border:1px solid var(--panel-border);background:var(--tab-bg);padding:12px;display:grid;gap:8px}.history-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.history-order{font-size:11px;color:var(--text-faint);border:1px solid var(--hairline-strong);padding:2px 7px}.history-label{font-size:12px;color:var(--text-strong);letter-spacing:.04em}.history-subject{margin:0;font-size:13px;color:var(--history-text);line-height:1.6}.history-content{margin:0;border:1px solid var(--hairline-strong);background:var(--inset);color:var(--text-history);padding:12px;min-height:90px;line-height:1.8;white-space:pre-wrap;font-size:12px;font-family:"Noto Serif JP",Georgia,serif}.history-pair-title{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}.history-list{display:grid;gap:14px;margin-top:12px}.history-toolbar{border:1px solid var(--panel-border);background:var(--panel-soft);padding:12px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:end}.history-file-picker{display:grid;gap:6px;min-width:min(320px,100%);flex:1}.history-select{border:1px solid var(--hairline-strong);background:var(--inset-strong);color:var(--text);padding:7px 10px;font-family:Courier New,Consolas,monospace;font-size:12px}.history-nav{display:flex;align-items:center;gap:8px}.history-nav-button{border:1px solid var(--hairline-strong);background:var(--panel-soft);color:var(--text);padding:7px 12px;font-size:12px;cursor:pointer}.history-nav-button:disabled{opacity:.4;cursor:default}.history-nav-status{color:var(--subtle);min-width:70px;text-align:center;font-size:12px}.history-diff-card{border:1px solid var(--panel-border);background:var(--panel);padding:12px;display:grid;gap:10px}.history-file-path{color:var(--subtle);border:1px solid var(--chip-border);padding:2px 7px;font-size:11px}.history-legend{display:flex;flex-wrap:wrap;gap:12px}.legend-item{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--subtle);font-family:Courier New,Consolas,monospace}.legend-dot{width:9px;height:9px;display:inline-block}.legend-added{background:#7fcf8fbf}.legend-removed{background:#f19191bf}.legend-modified{background:#c8a96ebf}.history-diff-table{border:1px solid var(--hairline-strong);background:var(--inset)}.diff-head{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--hairline)}.diff-head-col{padding:8px 10px;font-size:11px;letter-spacing:.1em;color:var(--subtle);text-transform:uppercase;font-family:Courier New,Consolas,monospace}.diff-head-col+.diff-head-col{border-left:1px solid var(--hairline)}.diff-body{display:grid}.diff-row{display:grid;grid-template-columns:1fr 1fr}.diff-row+.diff-row{border-top:1px solid var(--hairline-soft)}.diff-col{min-width:0;display:grid;grid-template-columns:54px 1fr}.diff-col+.diff-col{border-left:1px solid var(--hairline)}.diff-lineno{display:block;color:var(--text-mid);text-align:right;padding:7px 8px 7px 6px;border-right:1px solid var(--hairline);font-size:11px;line-height:1.7}.diff-text{display:block;margin:0;padding:7px 10px;color:var(--text-history-body);white-space:pre-wrap;line-height:1.7;font-size:12px;font-family:"Noto Serif JP",Georgia,serif}.row-context .diff-col{background:var(--row-context-bg)}.row-added .diff-col:last-child{background:var(--row-added-bg)}.row-removed .diff-col:first-child{background:var(--row-removed-bg)}.row-modified .diff-col{background:var(--row-modified-bg)}.inline-added{background:var(--inline-added-bg);color:var(--inline-added-text)}.inline-removed{background:var(--inline-removed-bg);color:var(--inline-removed-text)}.diff-gap{border-top:1px dashed var(--hairline-strong);border-bottom:1px dashed var(--hairline-strong);text-align:center;color:var(--subtle);font-size:11px;padding:7px 8px;font-family:Courier New,Consolas,monospace}.intent-header{display:grid;gap:8px}.intent-title{margin:0;font-size:18px;font-weight:500}.intent-text{margin:0;white-space:pre-wrap;color:var(--text-history);line-height:1.9;letter-spacing:.03em;border-left:2px solid var(--intent-rule);padding-left:11px;font-family:"Noto Serif JP",Georgia,serif}.link-chip{cursor:pointer;text-align:left}.status-text{margin:32px 0;color:var(--subtle);font-size:13px;font-family:Courier New,Consolas,monospace}.status-error{margin:24px 0;color:var(--error-color);border:1px solid var(--error-border);background:var(--error-bg);padding:10px 12px}.footer{border-top:1px solid var(--hairline);padding-top:18px;padding-bottom:34px;display:flex;justify-content:space-between;gap:16px}
