:root{--bg: #10141b;--bg-2: #161b26;--bg-3: #1c2331;--border: #2a3345;--text: #d7e0f0;--muted: #7a86a0;--accent: #7aa2f7;--ok: #38d17e;--warn: #e0af68;--err: #f7768e;--info: #73daca;--hole: #ff9e64}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,system-ui,sans-serif;font-size:14px}#app{display:flex;flex-direction:column;height:100vh}#topbar{display:flex;align-items:center;gap:16px;padding:10px 16px;background:var(--bg-2);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px}.brand .logo{font-size:22px;color:var(--accent)}.brand h1{font-size:17px;margin:0;font-weight:600}.muted{color:var(--muted);font-weight:400}#dropZone{position:relative;border:1.5px dashed var(--accent);border-radius:8px;padding:8px 16px;cursor:pointer;transition:background .15s,border-color .15s;-webkit-user-select:none;user-select:none}#dropZone:hover,#dropZone.dragover{background:#7aa2f71f;border-color:var(--ok)}#dropZone input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.drop-label{color:var(--accent);font-weight:500}#examplesBar{display:flex;gap:8px}.btn{background:var(--bg-3);color:var(--text);border:1px solid var(--border);border-radius:7px;padding:7px 14px;cursor:pointer;font-size:13px;font-family:inherit;transition:border-color .15s,background .15s}.btn:hover{border-color:var(--accent);background:#7aa2f714}.btn.small{padding:3px 9px;font-size:11px}.part-info{padding:7px 16px;background:var(--bg-2);color:var(--muted);border-bottom:1px solid var(--border);font-size:12.5px}.part-info .chip{background:#7aa2f726;color:var(--accent);border-radius:5px;padding:1px 7px;font-weight:600}#layout{display:grid;grid-template-columns:minmax(380px,30%) 1fr minmax(360px,28%);flex:1;min-height:0}.panel{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border)}.panel:last-child{border-right:none}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:var(--bg-2);border-bottom:1px solid var(--border);flex-shrink:0}.panel-head h2{margin:0;font-size:13px;font-weight:600;letter-spacing:.3px}.hint{color:var(--muted);font-size:11px}.code-lines{overflow:auto;flex:1;font-family:Cascadia Code,Consolas,monospace;font-size:12.5px;line-height:1.55}.code-line{display:flex;cursor:pointer;white-space:pre;padding:0 10px;border-left:2px solid transparent}.code-line:hover{background:#7aa2f70f}.code-line.highlight{background:#e0af6821;border-left-color:var(--warn)}.code-line.block-start{border-top:1px solid rgba(122,162,247,.25)}.line-no{color:#3d4759;width:3.2em;flex-shrink:0;text-align:right;margin-right:12px;-webkit-user-select:none;user-select:none}.line-text{color:var(--text)}.line-empty .line-text{color:transparent}.line-float .line-text{color:#9ece6a}.line-data .line-text{color:#b7c2da}.block-code{font-weight:700;letter-spacing:1px}.block-bo{color:var(--hole)!important}.block-ak{color:var(--ok)!important}.block-ik{color:#bb9af7!important}.block-st{color:#7aa2f7!important}#viewportPanel{position:relative}#viewport{flex:1;min-height:0;position:relative}#viewport canvas{display:block;width:100%;height:100%;outline:none}.tooltip{display:none;position:fixed;z-index:50;background:#10141bf2;border:1px solid var(--accent);border-radius:8px;padding:10px 13px;font-size:12.5px;pointer-events:none;max-width:340px;box-shadow:0 7px 26px #00000080}.tooltip .tip-line{color:var(--muted);font-size:11px}#rightPanel{overflow:hidden}.conf-counters{display:flex;gap:8px;padding:10px 14px;flex-shrink:0}.badge{border-radius:999px;padding:3px 12px;font-size:12px;font-weight:600}.badge.ok{background:#38d17e24;color:var(--ok)}.badge.warn{background:#e0af6824;color:var(--warn)}.badge.err{background:#f7768e29;color:var(--err)}.badge.info{background:#73daca1f;color:var(--info)}.conf-list{overflow:auto;flex:1;min-height:80px}.conf-item{padding:9px 14px;border-bottom:1px solid var(--border);cursor:pointer}.conf-item:hover{background:#7aa2f70d}.conf-item.sev-error{border-left:3px solid var(--err)}.conf-item.sev-warning{border-left:3px solid var(--warn)}.conf-item.sev-info{border-left:3px solid transparent;opacity:.8}.conf-head{display:flex;justify-content:space-between;align-items:center}.conf-rule{font-weight:700;color:var(--accent);font-size:12px}.conf-sev{font-size:11px;color:var(--muted)}.conf-item.sev-error .conf-sev{color:var(--err)}.conf-item.sev-warning .conf-sev{color:var(--warn)}.conf-title{font-weight:600;margin-top:3px}.conf-msg{color:var(--muted);font-size:12.3px;margin-top:2px}.conf-lines{color:#4a5568;font-size:11px;font-family:Consolas,monospace;margin-top:3px}.doc-head{border-top:1px solid var(--border)}.doc-panel{overflow:auto;flex:1.4;padding:12px 14px;font-size:13px}.doc-panel h3{margin:0 0 8px;font-size:14.5px;display:flex;align-items:center;gap:8px}.doc-badge{background:var(--accent);color:#10141b;border-radius:5px;padding:1px 8px;font-family:Consolas,monospace;font-weight:700}.doc-panel h4{margin:12px 0 4px;color:var(--err);font-size:12.5px}.doc-panel p{margin:6px 0;line-height:1.5}.doc-machine{background:#7aa2f712;border-radius:6px;padding:7px 10px}.doc-example{background:var(--bg-3);border:1px solid var(--border);border-radius:7px;padding:9px 12px;font-family:Consolas,monospace;font-size:12px;overflow-x:auto;color:#9ece6a;margin:8px 0}.doc-expl{color:var(--muted);font-style:italic}.doc-toc{list-style:none;padding:0;margin:8px 0}.doc-link{background:none;border:none;color:var(--accent);cursor:pointer;padding:3px 0;font-family:inherit;font-size:13px;display:block;text-align:left}.doc-link:hover{text-decoration:underline}.status-bar{padding:6px 16px;background:var(--bg-2);border-top:1px solid var(--border);color:var(--muted);font-size:12.5px;min-height:28px}#statusBar{display:flex;align-items:center;justify-content:space-between;gap:12px}#statusVersion{flex-shrink:0;color:var(--muted);font-weight:600;letter-spacing:.03em}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#3a4560}@media(max-width:1100px){#layout{grid-template-columns:1fr;grid-template-rows:40% 40% 20%}}
