:root{--bg:#f6f7f9;--card:#fff;--text:#1d2330;--muted:#5f6b7a;--line:#dde2e8;--accent:#2f5bd3;--accent-text:#fff;--good:#1f7a44;--good-bg:#e3f4e9;--warn:#8a5a00;--warn-bg:#fff4d6;--bad:#a3242b;--bad-bg:#fde7e8;--info-bg:#eef1f5;--blue-bg:#e4ecfb;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,Noto Sans CJK JP,sans-serif;line-height:1.45}*{box-sizing:border-box}body{margin:0}.app{max-width:1200px;margin:0 auto;padding:24px 20px 40px}header h1{margin:0;font-size:1.6rem}.tagline,.muted{color:var(--muted)}.tagline{margin:4px 0 20px}.tabs{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin-bottom:20px;display:grid}.tabs button{text-align:left;border:1px solid var(--line);background:var(--card);cursor:pointer;font:inherit;border-radius:10px;padding:10px 14px}.tabs button span{font-weight:600;display:block}.tabs button small{color:var(--muted)}.tabs button.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}main{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}.intro{max-width:75ch;margin-top:0}.two-up{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;display:grid}.slot{margin-bottom:16px}.drop{border:2px dashed var(--line);background:#fbfcfd;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:22px;transition:border-color .15s,background .15s;display:flex}.drop-over{border-color:var(--accent);background:var(--blue-bg)}.drop-filled{border-style:solid}.drop-label{cursor:pointer;flex-direction:column;flex:1;gap:4px;display:flex}.drop-hint{color:var(--muted)}.drop-files{word-break:break-all;font-family:ui-monospace,Consolas,monospace}.visually-hidden{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}button{font:inherit;border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:8px;padding:7px 14px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.link{color:var(--accent);background:0 0;border:none;padding:0;text-decoration:underline}button:focus-visible,select:focus-visible,input:focus-visible,.drop:focus-within{outline-offset:2px;outline:3px solid #9db4f0}select,input{font:inherit;border:1px solid var(--line);border-radius:6px;padding:5px 8px}input.invalid{border-color:var(--bad)}.status{border-radius:10px;margin:16px 0;padding:14px 16px;font-weight:600}.status-good{background:var(--good-bg);color:var(--good)}.status-warn{background:var(--warn-bg);color:var(--warn)}.status-bad{background:var(--bad-bg);color:var(--bad)}.panel{border:1px solid var(--line);border-radius:10px;margin:12px 0;padding:12px 16px}.panel.warn{background:var(--warn-bg);border-color:#f0d68f}.panel.bad{background:var(--bad-bg);color:var(--bad);border-color:#f2b8bb}.panel h3{margin-top:0}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0;display:flex}.inline-field{align-items:center;gap:8px;display:inline-flex}.chips{gap:8px;margin:8px 0;display:flex}.chip{opacity:.55;border-radius:999px;padding:4px 12px}.chip.on{opacity:1;border-color:var(--text)}.table-wrap{border:1px solid var(--line);border-radius:10px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.93rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:7px 10px}thead th{background:#f1f3f6;position:sticky;top:0}td.mono,.mono{font-family:ui-monospace,Consolas,monospace;font-size:.88em}td.text{white-space:pre-wrap;max-width:40ch}.badge{white-space:nowrap;background:var(--info-bg);border-radius:6px;padding:1px 8px;font-size:.82em;font-weight:600;display:inline-block}.badge-error{background:var(--bad-bg);color:var(--bad)}.badge-warning{background:var(--warn-bg);color:var(--warn)}.chg-added,.chg-translation-added,.chg-language-added{background:var(--good-bg);color:var(--good)}.chg-removed,.chg-translation-removed,.chg-language-removed{background:var(--bad-bg);color:var(--bad)}.chg-source-changed,.chg-needs-update,.chg-translation-changed{background:var(--warn-bg);color:var(--warn)}.chg-renamed{background:var(--blue-bg);color:var(--accent)}tr.needs-decision{background:#fffaf0}.preview{background:var(--card);border:1px solid var(--line);border-radius:8px;margin:8px 0 12px;overflow-x:auto}.preview tr{cursor:pointer}.preview tr:hover{background:var(--blue-bg)}.preview tr.picked{background:var(--accent);color:var(--accent-text)}.preview th{color:var(--muted);width:2em}.mapping{gap:8px;margin-bottom:12px;display:grid}.mapping-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mapping-name{min-width:16ch;font-weight:600}details summary{cursor:pointer;font-weight:600}footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:16px;font-size:.9rem;display:flex}
