:root{--bg: #f6f7f9;--panel: #ffffff;--text: #1d2330;--muted: #6b7385;--line: #e2e5eb;--accent: #2f6fde;--hit: #fff1a8;--warn: #c2410c;--gray: #cbd0d8;--preview: #d97706;--on: #15803d;font-family:Pretendard,Apple SD Gothic Neo,Noto Sans KR,system-ui,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}a{color:var(--accent);text-decoration:none}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:6px 12px}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.danger{color:var(--warn)}button:disabled{opacity:.5;cursor:default}input,select{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:6px}table{border-collapse:collapse;width:100%;background:var(--panel)}th,td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;font-size:14px;vertical-align:top}th{color:var(--muted);font-weight:600}.shell{display:grid;grid-template-columns:200px 1fr;min-height:100vh}.side{background:#1d2330;color:#fff;padding:16px}.side a{display:block;color:#cfd6e4;padding:8px 0}.side a.active{color:#fff;font-weight:700}.main{padding:0 24px 24px}.topbar{display:flex;justify-content:flex-end;gap:12px;align-items:center;padding:12px 0;color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:16px}.cards{display:flex;gap:12px;margin-bottom:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 16px;min-width:160px}.card b{display:block;font-size:24px}.alert{background:#fdecea;color:#8a1c1c;border-radius:6px;padding:8px 12px;margin:8px 0}.ok{background:#e7f6ec;color:#1b5e33;border-radius:6px;padding:8px 12px;margin:8px 0}.muted{color:var(--muted);font-size:13px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:12px 0}.tabs button{border:none;border-bottom:2px solid transparent;border-radius:0;background:none}.tabs button.on{border-bottom-color:var(--accent);font-weight:700}.preview{outline:4px solid var(--preview);outline-offset:-4px}.preview-bar{background:var(--preview);color:#fff;padding:6px 12px;border-radius:6px;margin:8px 0}.auth{max-width:380px;margin:10vh auto}.auth form{display:grid;gap:10px}.pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.answer{white-space:pre-wrap;font-size:14px;line-height:1.6}.step-details li{white-space:pre-line}.answer mark{background:var(--hit)}.mono{font-family:ui-monospace,monospace;font-size:12px;color:var(--muted)}.modal{position:fixed;inset:0;background:#0006;display:grid;place-items:center}.modal>div{background:var(--panel);padding:20px;border-radius:8px;max-width:420px;max-height:90vh;overflow:auto}.card.warn b{color:var(--warn)}.card .muted{display:block}table.heat td{text-align:center}.state-on{color:var(--on);font-weight:700}.cell-warn{color:var(--warn)}button.star{background:none;border:none;padding:0 4px;font-size:1.1em;color:#d97706;cursor:pointer}.modal>div.popup{max-width:min(960px,92vw);max-height:85vh;overflow:auto;width:100%}button.link{background:none;border:none;padding:0;color:inherit;text-align:left;cursor:pointer;font:inherit}button.num{background:none;border:none;padding:0;color:var(--accent, #2563eb);text-decoration:underline dotted;cursor:pointer;font:inherit}tr.clickable{cursor:pointer}tr.clickable:hover{background:#2563eb0f}.infotip{position:relative;display:inline-block}.infotip-btn{width:18px;height:18px;padding:0;border-radius:50%;font-size:12px;line-height:16px;font-weight:700;cursor:pointer}.infotip-box{position:absolute;z-index:10;top:22px;left:0;width:360px;background:var(--panel);border:1px solid #ccc;border-radius:6px;padding:10px;font-weight:400;text-align:left;box-shadow:0 4px 12px #00000026;display:grid;gap:4px}.infotip-box p{margin:0;line-height:1.5;font-size:13px}.infotip-box b,.infotip-box strong{display:inline;font-size:inherit}.infotip-box .infotip-title{display:block;font-size:14px;margin-bottom:2px}.infotip-box button{justify-self:end}.sg-card{margin-bottom:10px;padding:14px 16px;display:grid;gap:6px}.sg-tentative{border-left:3px solid #d97706}.sg-head{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.sg-title{font-size:1.02em}.sg-badges{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}.badge{font-size:.78em;padding:1px 8px;border-radius:10px;background:#eef1f5;color:#4b5563;white-space:nowrap}.badge-warn{background:#fff3e0;color:#b45309}.sg-why{margin:0;line-height:1.5}.sg-figure{margin:0;font-size:.9em;color:#374151}.sg-engines{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:.85em}.sg-engine{display:inline-flex;gap:4px;align-items:center;color:#9ca3af}.sg-engine.on{color:#111827;font-weight:600}.sg-bar{display:inline-block;width:48px;height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden}.sg-bar>span{display:block;height:100%;background:#9ca3af}.sg-engine.on .sg-bar>span{background:#2563eb}.sg-section>summary{cursor:pointer;color:#2563eb;font-size:.92em}.sg-steps{margin:6px 0 0;padding-left:20px}.sg-steps>li{margin-bottom:4px}.sg-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center}.brand-hits{list-style:none;margin:4px 0;padding:0;display:grid;gap:2px}.brand-hits button{padding:2px 8px}.nav-group{margin:14px 0 2px;font-size:11px;color:#8a93a6;letter-spacing:.02em}.tab-group{display:inline-flex;flex-direction:column;margin-right:10px}.tab-group-label{font-size:12px;font-weight:600;color:#5d6677;background:#eef1f6;border-radius:6px 6px 0 0;padding:3px 10px;text-align:center}.tab-group.current .tab-group-label{background:var(--accent);color:#fff}.tab-group-tabs{display:flex;gap:2px;border-top:2px solid #eef1f6}.tab-group.current .tab-group-tabs{border-top-color:var(--accent)}.badge-on{background:#e7f6ec;color:#1b5e33}tr.row-current td{background:#f3faf5}.legend{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted, #6b7280)}.legend li{display:inline-flex;align-items:center;gap:6px}.modal>div.manual-popup{max-width:min(1200px,96vw);width:100%;height:90vh;max-height:90vh;display:flex;flex-direction:column;gap:8px;overflow:hidden}.manual-frame{flex:1;width:100%;border:1px solid #ddd;border-radius:6px;background:#fff}
