:root{--bg: #f6f7f9;--panel: #ffffff;--border: #e2e5ea;--text: #1c2330;--muted: #68717f;--accent: #2f6fed;--accent-soft: #e8effd;--danger: #d64545;--warn: #b7791f;--warn-soft: #fdf3e2;--ok: #2f8a4c;--ok-soft: #e7f5ec;--miss-soft: #fdeaea;--radius: 8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:20px;margin:0 0 4px}h2{font-size:16px;margin:24px 0 8px}.topbar{display:flex;align-items:center;gap:16px;background:var(--panel);border-bottom:1px solid var(--border);padding:10px 20px;position:sticky;top:0;z-index:10}.topbar .brand{font-weight:700;font-size:15px;color:var(--text)}.topbar .spacer{flex:1}.topbar .who{color:var(--muted);font-size:13px}.page{max-width:1200px;margin:0 auto;padding:24px 20px 80px}.page-wide{max-width:1500px}.subtitle{color:var(--muted);margin:0 0 20px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.panel+.panel{margin-top:16px}button,.btn{font:inherit;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:6px;padding:6px 12px;cursor:pointer}button:hover,.btn:hover{border-color:#c8cdd6;background:#fafbfc;text-decoration:none}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:#245cd2}button.danger{color:var(--danger)}button.small,.btn.small{padding:3px 8px;font-size:12px}button:disabled{opacity:.5;cursor:default}input,select,textarea{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:6px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}textarea{width:100%;resize:vertical;min-height:34px}label{display:block;font-size:13px;color:var(--muted);margin:12px 0 4px}.form-narrow{max-width:420px;margin:80px auto}.form-narrow input{width:100%}.form-narrow button{margin-top:16px;width:100%}.error{color:var(--danger);font-size:13px;margin-top:10px}.hint{color:var(--muted);font-size:12px}table.list{width:100%;border-collapse:collapse}table.list th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--border)}table.list td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}table.list tr:last-child td{border-bottom:none}table.list tr.clickable:hover{background:#fafbfd;cursor:pointer}.chip{display:inline-block;border-radius:20px;padding:2px 9px;font-size:12px;font-weight:500}.chip.translated{background:var(--ok-soft);color:var(--ok)}.chip.missing{background:var(--miss-soft);color:var(--danger)}.chip.stale{background:var(--warn-soft);color:var(--warn)}.chip.review{background:#efe6fb;color:#7a3fc0}.chip.source{background:#eef0f4;color:var(--muted)}.chip.role{background:var(--accent-soft);color:var(--accent)}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.toolbar .grow{flex:1}.filters{display:flex;gap:6px}.filters button{border-radius:20px;font-size:12px;padding:4px 12px}.filters button.active{background:var(--accent);border-color:var(--accent);color:#fff}.progress-cell{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--muted)}.bar{width:90px;height:6px;border-radius:3px;background:#edeff3;overflow:hidden;display:inline-block}.bar>i{display:block;height:100%;background:var(--ok)}.editor-grid{display:grid;grid-template-columns:minmax(190px,1fr) 1.5fr 1.5fr 150px;gap:0}.editor-grid>div{padding:16px 14px;border-bottom:1px solid #eef1f5}.editor-grid>.head:first-child,.erow>div:first-child{padding-left:28px}.editor-grid>.head:nth-child(4),.erow>div:last-child{padding-right:28px}.erow>div.keyname,.erow>div.rowmeta{padding-top:23px}.editor-grid .head{font-size:12px;color:var(--muted);font-weight:600;padding:9px 14px;position:sticky;top:53px;background:var(--panel);z-index:5;border-bottom:1px solid var(--border)}.erow:hover>div{background:#fafbfd}.keyname{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all;color:#444c5b}.keytail{font-size:12.5px;font-weight:600;color:#333a47}.ghead{grid-column:1 / -1;background:#eef1f6;color:#3a4354;padding:7px 28px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;border-top:2px solid var(--border);border-bottom:1px solid var(--border)}.gsub{grid-column:1 / -1;background:#f7f9fc;color:#3a4354;padding:5px 28px 5px 40px;font-size:11.5px;font-weight:600;border-bottom:1px solid #eef1f5;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.editor-grid textarea{border-color:transparent;background:transparent;padding:6px 9px;margin:0;width:100%;display:block;line-height:1.45;resize:none}.editor-grid textarea:focus{resize:vertical}.erow:hover textarea{border-color:var(--border);background:var(--panel)}.editor-grid textarea:focus{border-color:var(--accent);background:var(--panel)}.rowmeta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;align-content:flex-start}.rowactions{opacity:0;transition:opacity .12s}.erow:hover .rowactions,.erow:focus-within .rowactions{opacity:1}.ph-warn{color:var(--warn);font-size:12px;margin-top:6px}.drawer{position:fixed;right:0;top:0;bottom:0;width:480px;max-width:90vw;background:var(--panel);border-left:1px solid var(--border);box-shadow:-8px 0 30px #141e321f;padding:20px;overflow-y:auto;z-index:40}.drawer h3{margin:0 0 4px;font-size:15px}.drawer .close{position:absolute;top:14px;right:14px}.hist-entry{border:1px solid var(--border);border-radius:6px;padding:8px 10px;margin-top:8px;font-size:13px}.hist-entry .meta{color:var(--muted);font-size:12px;margin-bottom:4px;display:flex;gap:8px;align-items:center}.val-old{background:var(--miss-soft);text-decoration:line-through;padding:1px 4px;border-radius:3px;white-space:pre-wrap}.val-new{background:var(--ok-soft);padding:1px 4px;border-radius:3px;white-space:pre-wrap}.conflict{border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;margin-top:10px}.conflict .options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.conflict .option{border:1px solid var(--border);border-radius:6px;padding:10px;cursor:pointer}.conflict .option:hover{border-color:var(--accent)}.conflict .option.picked{border-color:var(--accent);background:var(--accent-soft)}.conflict .option .src-label{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;margin-bottom:6px}.conflict .basev{color:var(--muted);font-size:12px;margin-top:6px}.shots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.shot-card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--panel)}.shot-card img{width:100%;height:130px;object-fit:cover;display:block;background:#eef0f4}.shot-card .cap{padding:8px 10px;font-size:13px}.shot-card .cap .hint{display:block}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:16px}.tabs button{border:none;background:none;padding:8px 14px;border-bottom:2px solid transparent;border-radius:0;color:var(--muted)}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.tabs button:hover{background:none;color:var(--text)}.searchresults{position:absolute;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 10px 30px #141e3226;max-height:420px;overflow-y:auto;width:560px;max-width:90vw;z-index:30}.searchresults .item{padding:8px 12px;border-bottom:1px solid var(--border);cursor:pointer}.searchresults .item:hover{background:var(--accent-soft)}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:#222b3a;color:#fff;padding:10px 18px;border-radius:8px;z-index:100;font-size:13px}tr.group-row td{background:#f2f4f8;border-top:1px solid var(--border)}tr.group-row .caret{color:var(--muted);display:inline-block;width:14px}td.indent{padding-left:34px!important}tr.rrow .rdel{opacity:0;margin-left:8px;padding:0 6px;transition:opacity .12s}tr.rrow:hover .rdel{opacity:1}.erow{display:contents}.erow.drag>div{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.dropstrip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1.5px dashed var(--border);border-radius:var(--radius);padding:8px 12px;margin-bottom:14px;background:var(--panel)}.dropstrip.drag{border-color:var(--accent);background:var(--accent-soft)}.dropstrip .thumb{height:44px;border-radius:4px;border:1px solid var(--border);display:block}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#0c121cb8;display:flex;align-items:center;justify-content:center}.lightbox.preview{pointer-events:none}.lightbox figure{margin:0;background:var(--panel);border-radius:10px;padding:10px;box-shadow:0 24px 70px #00000073;max-width:94vw;max-height:92vh;display:flex;flex-direction:column}.lightbox img{max-width:calc(94vw - 20px);max-height:calc(92vh - 60px);object-fit:contain;border-radius:6px;display:block}.lightbox figcaption{display:flex;align-items:center;justify-content:center;gap:10px;padding-top:8px;font-size:13px;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.mt{margin-top:14px}.row{display:flex;gap:10px;align-items:center}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:30px;text-align:center;color:var(--muted)}.dropzone.active{border-color:var(--accent);background:var(--accent-soft)}
