#app{display:flex;margin-top:50px;margin-bottom:50px;height:calc(100vh - 95px)}#app .panel-left{width:280px;min-width:280px;background:#111;border-right:1px solid #1a1a1a;display:flex;flex-direction:column;overflow-y:auto}#app .viewport{flex:1;min-width:0;position:relative;background:#0d0d0d;display:flex;flex-direction:column}#app .panel-right{width:270px;min-width:270px;background:#111;border-left:1px solid #1a1a1a;display:flex;flex-direction:column;overflow-y:auto}#app .section{padding:12px;border-bottom:1px solid #1a1a1a}#app .section-title{color:#0f8;font-size:11px;text-transform:uppercase;letter-spacing:1px;margin-bottom:8px}#app .header{padding:8px 12px;background:#0a0a0a;border-bottom:1px solid #1a1a1a;display:flex;align-items:center;gap:8px}#app .header-title{color:#0f8;font-size:13px;font-weight:700;line-height:1.3}#app .header-sub{color:#444;font-size:10px}#app .btn{display:block;width:100%;padding:8px;border:1px solid #333;background:transparent;color:silver;font-family:inherit;font-size:12px;cursor:pointer;text-align:center;transition:all .2s}#app .btn:hover,#app .btn-primary{border-color:#0f8;color:#0f8}#app .btn-primary:hover{background:#00ff8815}#app .btn:disabled{opacity:.3;cursor:not-allowed}#app .btn+.btn{margin-top:6px}#app .btn.sm{padding:5px 6px;font-size:11px}#app .inp{width:100%;box-sizing:border-box;background:#0a0a0a;border:1px solid #333;color:#ddd;font-family:inherit;font-size:12px;padding:5px 6px;margin-bottom:6px}#app .inp:focus{outline:none;border-color:#0f8}#app .row{display:flex;gap:6px;align-items:flex-start}#app .row .inp{flex:1;min-width:0}#app .row .btn{width:auto;white-space:nowrap;padding:5px 10px}#app .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}#app .grid3 .btn+.btn{margin-top:0}#app .chk{display:flex;align-items:center;gap:6px;font-size:11px;color:#aaa;cursor:pointer;margin-bottom:5px}#app .chk input{accent-color:#00ff88}#app .hint{font-size:10px;color:#666;margin:4px 0 6px;line-height:1.6}#app .hint a{color:#6aa}#app .hits{display:flex;flex-direction:column;gap:2px}#app .hits:empty{display:none}#app .hits button{text-align:left;background:transparent;border:1px solid #222;color:#aaa;font-family:inherit;font-size:11px;padding:4px 6px;cursor:pointer}#app .hits button:hover{border-color:#0f8;color:#0f8}#app .hits .msg{color:#666;font-size:11px}#app .pt-list{margin-bottom:8px}#app .pt{display:flex;align-items:center;gap:6px;padding:4px 6px;font-size:11px;color:#aaa;border:1px solid transparent;cursor:pointer}#app .pt:hover{border-color:#333}#app .pt .nm{color:#0f8;width:16px}#app .pt .co{flex:1;color:#888}#app .pt .x{color:#666}#app .pt .x:hover{color:#f46}#app .pt-empty{color:#444;font-size:11px;padding:4px 2px}#app .map-wrap{position:relative;flex:1 1 56%;min-height:160px;background:#1a2230;overflow:hidden}#app .map-wrap canvas{position:absolute;left:0;top:0;width:100%;height:100%;display:block;cursor:crosshair;touch-action:none}#app .map-wrap canvas.grab{cursor:grabbing}#app .map-wrap canvas.pt-hover{cursor:move}#app .map-ctl{position:absolute;right:8px;top:8px;display:flex;gap:4px;align-items:flex-start}#app .map-ctl .inp{width:auto;margin:0}#app .map-ctl .btn{width:auto;padding:5px 10px;background:#0a0a0acc}#app .map-ctl .btn+.btn{margin-top:0}#app .map-credit{position:absolute;left:6px;bottom:4px;font-size:10px;color:#333;background:#fffa;padding:0 4px;pointer-events:none}#app .chart-wrap{position:relative;flex:0 0 38%;min-height:150px;background:#0a0a0a;border-top:1px solid #1a1a1a}#app .chart-wrap canvas{position:absolute;left:0;top:0;width:100%;height:100%;display:block}#app .chart-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#444;font-size:12px;pointer-events:none;text-align:center;padding:16px}#app .chart-empty.hide{display:none}#app .status{padding:4px 10px;font-size:11px;color:#0f8;min-height:18px;background:#0a0a0a;border-top:1px solid #1a1a1a}#app .status.bad{color:#f46}#app .sum{width:100%;border-collapse:collapse;font-size:11px}#app .sum td{padding:3px 0;color:#aaa;vertical-align:top}#app .sum td:first-child{color:#666;width:46%}#app .sum td small{color:#555}#app .help-btn{margin-left:auto;background:transparent;border:1px solid #333;color:#0f8;font-family:inherit;font-size:10px;padding:3px 8px;cursor:pointer;white-space:nowrap}#app .help-btn:hover{border-color:#0f8;background:#00ff8815}#app .help-dialog{background:#111;color:#bbb;border:1px solid #00ff88;padding:0;width:min(780px,92vw);max-height:86vh;font-size:12px;line-height:1.8}#app .help-dialog::backdrop{background:#000000b8}#app .help-dialog[open]{display:flex;flex-direction:column}#app .help-head{display:flex;align-items:center;padding:10px 20px;background:#0a0a0a;border-bottom:1px solid #1a1a1a}#app .help-head b{color:#0f8;font-size:13px;letter-spacing:1px}#app .help-head .help-x{margin-left:auto;background:transparent;border:1px solid #333;color:#aaa;font-family:inherit;font-size:11px;padding:3px 10px;cursor:pointer}#app .help-head .help-x:hover{border-color:#0f8;color:#0f8}#app .help-body{padding:4px 24px 22px;overflow-y:auto}#app .help-body h4{color:#0f8;font-size:12px;letter-spacing:1px;margin:20px 0 6px;border-bottom:1px solid #1a1a1a;padding-bottom:4px}#app .help-body ul{margin:4px 0;padding-left:20px}
