:root{--bg: #f2f3f1;--surface: #ffffff;--border: #d6d8d4;--ink: #1a1d1a;--ink-muted: #5c625c;--accent: #e4572e;--technical: #2d5f8b;--ok: #3f7d4e;--warn: #b8860b;--danger: #a33a2b;--sans: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--row-h: 32px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--technical)}.muted{color:var(--ink-muted)}.shell{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:24px;height:44px;padding:0 16px;background:var(--surface);border-bottom:1px solid var(--border);flex:0 0 auto}.brand{font-weight:600;letter-spacing:-.01em;font-size:13px;white-space:nowrap;flex:0 0 auto}.brand span{color:var(--ink-muted);font-weight:400}.nav{display:flex;gap:2px;margin-left:auto;align-items:center;overflow-x:auto;scrollbar-width:none;min-width:0}.nav::-webkit-scrollbar{display:none}.nav button{font:inherit;padding:5px 10px;border:1px solid transparent;border-radius:2px;background:none;color:var(--ink-muted);cursor:pointer;white-space:nowrap;flex:0 0 auto}.nav button:hover{background:var(--bg);color:var(--ink)}.nav button[aria-current=page]{background:var(--bg);border-color:var(--border);color:var(--ink);font-weight:500}.session{display:flex;align-items:center;gap:10px;padding-left:16px;margin-left:8px;border-left:1px solid var(--border);color:var(--ink-muted);white-space:nowrap;flex:0 0 auto}.main{flex:1 1 auto;overflow:auto;padding:20px 16px 48px}.page{max-width:1100px;margin:0 auto}.page-head{display:flex;align-items:baseline;gap:12px;margin:0 0 14px}.page-head h1{font-size:15px;font-weight:600;margin:0;letter-spacing:-.01em}.panel{background:var(--surface);border:1px solid var(--border);border-radius:2px}.panel+.panel{margin-top:16px}.panel-head{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--border)}.panel-head h2{font-size:12px;font-weight:600;margin:0;text-transform:uppercase;letter-spacing:.04em}.panel-head .spacer{margin-left:auto}.panel-body{padding:12px}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);padding:0 10px;height:28px;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:0 10px;height:var(--row-h);border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--bg)}td.right,th.right{text-align:right}td.actions{white-space:nowrap;text-align:right}.empty{padding:28px 12px;text-align:center;color:var(--ink-muted)}button.btn{font:inherit;padding:5px 11px;border:1px solid var(--border);border-radius:2px;background:var(--surface);color:var(--ink);cursor:pointer}button.btn:hover:not(:disabled){border-color:var(--ink-muted)}button.btn:disabled{opacity:.5;cursor:default}button.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}button.btn.primary:hover:not(:disabled){background:#000}button.btn.danger{color:var(--danger);border-color:var(--border)}button.btn.danger:hover:not(:disabled){border-color:var(--danger)}button.link{font:inherit;background:none;border:none;padding:0;color:var(--technical);cursor:pointer;text-decoration:underline;text-underline-offset:2px}label{display:block;margin-bottom:12px}label .lab{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);margin-bottom:4px}input,select,textarea{font:inherit;width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:2px;background:var(--surface);color:var(--ink)}textarea{resize:vertical;font-family:var(--mono);font-size:12px}input:focus,select:focus,textarea:focus{outline:2px solid var(--technical);outline-offset:-1px;border-color:var(--technical)}input[type=file]{padding:4px 6px}.tabs{display:flex;gap:2px;margin-bottom:14px;border-bottom:1px solid var(--border)}.tabs button{font:inherit;padding:6px 12px;border:1px solid transparent;border-bottom:none;border-radius:2px 2px 0 0;background:none;color:var(--ink-muted);cursor:pointer;margin-bottom:-1px}.tabs button:hover:not(:disabled){color:var(--ink)}.tabs button[aria-current=page]{background:var(--surface);border-color:var(--border);border-bottom:1px solid var(--surface);color:var(--ink);font-weight:500}.tabs button:disabled{opacity:.35;cursor:default}pre.extract{margin:0;max-height:420px;overflow:auto;padding:10px;background:var(--bg);border:1px solid var(--border);border-radius:2px;font-family:var(--mono);font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.row{display:flex;gap:12px}.row>*{flex:1}.tag{display:inline-block;padding:1px 6px;border:1px solid var(--border);border-radius:2px;font-size:11px;font-weight:500;background:var(--bg);color:var(--ink-muted);white-space:nowrap}.tag.active{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--border))}.tag.disabled{color:var(--ink-muted)}.tag.admin{color:var(--technical);border-color:color-mix(in srgb,var(--technical) 40%,var(--border))}.tag.live{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.tag.live:before{content:"";display:inline-block;width:5px;height:5px;margin-right:5px;border-radius:50%;background:var(--accent);vertical-align:middle;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.notice{padding:8px 10px;border:1px solid var(--border);border-left-width:3px;border-radius:2px;margin-bottom:12px}.notice.error{border-left-color:var(--danger);color:var(--danger);background:color-mix(in srgb,var(--danger) 5%,var(--surface))}.notice.ok{border-left-color:var(--ok);color:var(--ok);background:color-mix(in srgb,var(--ok) 5%,var(--surface))}.notice.info{border-left-color:var(--technical);color:var(--ink-muted);background:var(--surface)}.login-wrap{min-height:100%;display:grid;place-items:center;padding:24px}.login{width:320px;background:var(--surface);border:1px solid var(--border);border-radius:2px;padding:20px}.login h1{font-size:14px;font-weight:600;margin:0 0 2px}.login .sub{color:var(--ink-muted);margin:0 0 18px;font-size:12px}.login button{width:100%;margin-top:4px}.stat-row{display:flex;gap:24px;flex-wrap:wrap}.stat .k{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);margin-bottom:2px}.stat .v{font-family:var(--mono);font-size:18px;color:var(--technical)}.phase-note{margin-top:16px;color:var(--ink-muted);font-size:12px}.review-wrap{max-width:520px;margin:0 auto;padding:40px 16px}.review-wrap.wide{max-width:1200px}.review-card{background:var(--surface);border:1px solid var(--border);border-radius:2px;padding:24px}.review-card h1{font-size:16px;margin:0 0 4px}.review-card button{width:100%;margin-top:6px}.review-head{display:flex;align-items:flex-end;gap:16px;margin-bottom:14px}.review-head h1{font-size:18px;margin:0 0 2px;letter-spacing:-.01em}.review-explain{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--technical);border-radius:2px;padding:12px 14px;margin-bottom:14px;line-height:1.5}.review-filters{margin-bottom:14px}.review-tabs{display:flex;gap:2px;flex-wrap:wrap}.review-tabs button[aria-current=page]{background:var(--ink);border-color:var(--ink);color:#fff}.review-bulk{position:sticky;top:8px;z-index:2}.review-table td{height:44px}.review-table th{height:34px}.review-table input[type=checkbox]{width:18px;height:18px}.review-table tr.removed td{opacity:.45;text-decoration:line-through}.review-table tr.removed td.actions{opacity:1;text-decoration:none}.review-table{table-layout:auto}.review-table th,.review-table td{white-space:nowrap}.review-table th.wide,.review-table td.wide{white-space:normal;min-width:320px;max-width:460px;line-height:1.45;padding-top:8px;padding-bottom:8px}.review-table td.wide{height:auto}.review-table th.name,.review-table td.name{white-space:normal;min-width:150px}.review-scroll{overflow-x:auto}.review-detail{background:var(--bg);padding:14px}button.btn.small{padding:4px 8px;font-size:12px}button.btn.big{padding:9px 16px;font-size:14px}.bar-pair{position:relative;height:14px}.bar{position:absolute;left:0;top:0;height:100%;border-radius:1px;min-width:1px}.bar.considered{background:var(--border)}.bar.matched{background:var(--technical)}.chart-key{display:inline-block;width:9px;height:9px;border-radius:1px;margin-right:3px;vertical-align:baseline}.chart-key.matched{background:var(--technical)}.chart-key.considered{background:var(--border)}
