*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #238636;--primary-hover: #2ea043;--primary-muted: rgba(35, 134, 54, .12);--teal: #088286;--text: #1f2328;--text-muted: #656d76;--white: #fff;--bg: #f6f8fa;--panel-bg: #ffffff;--panel-border: #d0d7de;--panel-width: 300px;--panel-left-w: 25%;--panel-right-w: 25%;--splitter-w: 6px;--radius: 6px;--radius-lg: 8px;--shadow-sm: 0 1px 2px rgba(31, 35, 40, .06);--shadow-md: 0 3px 12px rgba(31, 35, 40, .08)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow:hidden;font-size:14px;line-height:1.5}.app{display:flex;flex-direction:column;height:100vh;max-width:100%}.app-footer{flex-shrink:0;padding:.5rem 1.25rem;font-size:.8125rem;color:var(--text-muted);text-align:center;border-top:1px solid var(--panel-border);background:var(--bg)}.app-footer p{margin:.15rem 0}.app-footer a{color:var(--primary);text-decoration:none}.app-footer a:hover{text-decoration:underline}.top-section{flex-shrink:0;padding:2rem 1.5rem;max-width:720px;margin:0 auto;width:100%}.header h1{font-size:1.5rem;font-weight:600;color:var(--text);margin-bottom:.5rem;letter-spacing:-.02em}.header p{font-size:.875rem;color:var(--text-muted);line-height:1.6}.privacy-notice{margin-top:1rem;padding:.75rem 1rem;background:var(--primary-muted);border:1px solid var(--panel-border);border-radius:var(--radius-lg);font-size:.8125rem;color:var(--text)}.header code{background:var(--bg);padding:.15em .4em;border-radius:4px;font-size:.9em;border:1px solid var(--panel-border)}.supported-section{margin:1.5rem 0;padding:1.25rem;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.supported-section h2{font-size:.875rem;font-weight:600;color:var(--text);margin-bottom:.75rem}.supported-list{margin:0;padding-left:1.25rem;font-size:.875rem;color:var(--text-muted);line-height:1.6}.supported-list li{margin-bottom:.5rem}.supported-list li:last-child{margin-bottom:0}.supported-list code{font-size:.8em;background:var(--bg);padding:.1em .3em;border-radius:4px;border:1px solid var(--panel-border)}.upload{border:2px dashed var(--panel-border);border-radius:var(--radius-lg);padding:2rem 1.5rem;text-align:center;background:var(--panel-bg);cursor:pointer;transition:border-color .2s ease,background .2s ease}.upload:hover,.upload.dragover{border-color:var(--primary);background:var(--primary-muted)}.upload-inner{pointer-events:none}.upload-inner .fa{font-size:2rem;color:var(--primary);display:block;margin-bottom:.5rem}.hint{font-size:.8125rem;color:var(--text-muted)}.browse{background:var(--primary);color:var(--white);border:none;padding:.5rem 1rem;border-radius:var(--radius);cursor:pointer;font-size:.875rem;font-weight:500;pointer-events:auto}.browse:hover{background:var(--primary-hover)}.link-btn{background:none;border:none;padding:0;color:var(--primary);text-decoration:underline;cursor:pointer;font:inherit}.link-btn:hover{color:var(--primary-hover)}.message{margin-top:1rem;padding:.625rem 1rem;border-radius:var(--radius);font-size:.875rem;background:var(--primary-muted);border:1px solid var(--panel-border)}.message.error{background:#cf222e1f;color:#8b2a0a;border-color:#cf222e4d}.workspace{display:none;flex:1;min-height:0;min-width:0;overflow:hidden}.app.view-workspace .top-section{display:none!important}.app.view-workspace .workspace{display:grid;grid-template-columns:var(--panel-left-w, 25%) var(--splitter-w, 6px) minmax(180px,1fr) var(--splitter-w, 6px) var(--panel-right-w, 25%);grid-template-rows:1fr;width:100%;min-height:0;direction:ltr}.panel{grid-row:1;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:0;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);min-width:0;min-height:0}.workspace-split{grid-row:1;width:var(--splitter-w, 6px);min-width:4px;cursor:col-resize;background:var(--panel-border);flex-shrink:0;z-index:2;touch-action:none}.workspace-split:hover,.workspace-split.dragging{background:var(--primary)}.panel-left{grid-column:1;border-right:none;display:flex;flex-direction:column;min-height:0;min-width:140px;overflow:hidden}.data-panel-toolbar{flex-shrink:0;padding:.75rem 1.25rem .875rem;border-bottom:1px solid var(--panel-border);background:var(--panel-bg);z-index:2}.data-toolbar-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.data-toolbar-row+.data-toolbar-row{margin-top:.5rem}.data-toolbar-files{padding-bottom:.25rem;border-bottom:1px solid var(--panel-border)}.btn-toolbar{min-width:5.5rem;flex:1 1 auto;max-width:100%;text-align:center}.panel-left .panel-scroll{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden}.column-mapping-details{margin-bottom:1rem;border:1px solid var(--panel-border);border-radius:var(--radius);padding:0 .625rem .5rem;background:var(--bg)}.column-mapping-summary{cursor:pointer;font-size:.8125rem;font-weight:600;color:var(--text);padding:.5rem .25rem;list-style:none}.column-mapping-details[open] .column-mapping-summary{margin-bottom:.5rem;border-bottom:1px solid var(--panel-border)}.column-mapping-summary::-webkit-details-marker{display:none}.chart-type-strip{display:flex;align-items:center;gap:.75rem;padding:.625rem 1.25rem;border-bottom:1px solid var(--panel-border);background:var(--bg);flex-shrink:0}.chart-type-label{font-size:.8125rem;font-weight:600;color:var(--text);white-space:nowrap}.chart-type-select{flex:1;min-width:0;max-width:12rem;padding:.45rem .5rem;border:1px solid var(--panel-border);border-radius:var(--radius);font-size:.875rem;background:var(--white)}.panel-left.root-mode{display:flex;flex-direction:column;overflow:hidden}.panel-left.root-mode .root-panel-top{flex:0 0 auto;max-height:42%;min-height:120px;overflow-y:auto;border-bottom:1px solid var(--panel-border)}.panel-left.root-mode #leftPanelTxtDat{flex:1 1 0;min-height:0;overflow-y:auto}.panel-left.root-mode #delimiterField{display:none}.root-tree{font-size:.875rem;max-height:220px;overflow-y:auto;overflow-x:auto;overflow-wrap:break-word;word-break:break-word;border:1px solid var(--panel-border);border-radius:var(--radius);padding:.25rem 0;background:var(--bg);min-width:0}.root-tree .root-tree-list{list-style:none;margin:0;padding:0;min-width:0}.root-tree .root-tree-list .root-tree-list{padding-left:.6rem;margin-left:.25rem;margin-top:.1rem;margin-bottom:.1rem;border-left:1px solid var(--panel-border)}.root-tree li{margin:.12rem 0;display:block}.root-tree li.root-tree-dir{margin-bottom:.05rem;display:flex;flex-wrap:wrap;align-items:flex-start}.root-tree li.root-tree-dir .root-tree-toggle{width:1.1rem;flex-shrink:0;border:none;background:none;cursor:pointer;padding:0;color:var(--text-muted);font-size:.65rem;line-height:1.2}.root-tree li.root-tree-dir .root-tree-toggle:hover{color:var(--text)}.root-tree li .root-tree-dir-name{color:#555;font-weight:500;min-width:0;overflow-wrap:break-word;word-break:break-word;white-space:normal}.root-tree li .root-tree-leaf{display:flex;align-items:center;gap:.35rem;min-width:0;flex:1;overflow:hidden}.root-tree li input[type=checkbox]{flex-shrink:0}.root-tree li .root-tree-name{min-width:0;overflow-wrap:break-word;word-break:break-word;white-space:normal;line-height:1.3}.root-tree .root-tree-placeholder{color:var(--text-muted);padding:.5rem;font-style:italic}.panel-center{grid-column:3;min-height:0;overflow:auto}.panel-right{grid-column:5;border-left:none;overflow:hidden;min-width:160px}.panel h2{font-size:.875rem;font-weight:600;color:var(--text);padding:.875rem 1.25rem;border-bottom:1px solid var(--panel-border);flex-shrink:0;background:var(--bg);letter-spacing:-.01em}.customize-tabs{display:flex;gap:0;padding:0 1.25rem;border-bottom:1px solid var(--panel-border);flex-shrink:0;background:var(--panel-bg)}.custom-tab-btn{padding:.625rem 1rem;font-size:.8125rem;font-weight:500;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;margin-bottom:-1px;transition:color .15s ease,border-color .15s ease}.custom-tab-btn:hover{color:var(--text)}.custom-tab-btn.active{color:var(--primary);font-weight:600;border-bottom-color:var(--primary)}.custom-tab-panel{display:none;padding:1rem 1.25rem;flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden}.custom-tab-panel.active{display:block}.panel-content{padding:1rem 1.25rem;flex:1 1 0;min-height:0;overflow-y:auto}.panel-right .panel-content{padding:0;overflow:hidden;display:flex;flex-direction:column}.panel-center{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:1.25rem;background:var(--bg);position:relative;gap:.75rem}.workspace-chart{position:relative;width:100%;height:100%;max-width:100%;max-height:100%;min-height:320px;display:none;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.workspace-chart.visible{display:block;background:var(--white)}.workspace-chart.visible:first-of-type{flex:1 1 0;min-height:320px}.workspace-chart.ratio-chart.visible{flex:0 0 auto;min-height:200px;max-height:45%}.workspace-chart canvas,.workspace-chart .plotly-container{width:100%;height:100%;min-height:280px;max-width:100%;max-height:100%}.workspace-chart.canvas-custom-size{flex:0 0 auto;min-height:280px}.workspace-placeholder{position:absolute;color:var(--text-muted);font-size:.875rem}.workspace-placeholder.hidden{display:none}.field{margin-bottom:1rem}.field label{display:block;font-size:.8125rem;font-weight:600;color:var(--text);margin-bottom:.375rem}.field.inline{display:inline-block;margin-right:.5rem;margin-bottom:.5rem}.field.inline label{margin-bottom:.15rem}.field input[type=number],.field input[type=text],.field select{width:100%;padding:.5rem .625rem;border:1px solid var(--panel-border);border-radius:var(--radius);font-size:.875rem;font-family:inherit;background:var(--white);transition:border-color .15s ease,box-shadow .15s ease}.field input:focus,.field select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-muted)}.field.inline input[type=number]{width:5rem}.panel-assignment .field{margin-bottom:.5rem}.panel-assignment .field select{max-width:100%}.field.field-inline-row{margin-bottom:.5rem}.field.field-inline-row input[type=number]{width:5rem;min-width:4rem;display:inline-block}.column-list{max-height:160px;overflow-y:auto;border:1px solid var(--panel-border);border-radius:var(--radius);padding:.375rem;background:var(--bg)}.column-item{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem;border-radius:var(--radius);cursor:pointer}.column-item:hover{background:var(--primary-muted)}.column-item input[type=radio],.column-item input[type=checkbox]{margin:0}.column-item span{font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-row{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.btn{border:none;padding:.5rem 1rem;border-radius:var(--radius);cursor:pointer;font-size:.875rem;font-weight:500;font-family:inherit;transition:background-color .15s ease}.btn-primary{background:var(--primary);color:var(--white)}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--text-muted);color:var(--white)}.btn-secondary:hover{background:var(--text)}.btn-small{padding:.375rem .75rem;font-size:.8125rem;font-weight:500;background:var(--primary);color:var(--white);border:none;border-radius:var(--radius);cursor:pointer;font-family:inherit;transition:background-color .15s ease}.btn-small:hover{background:var(--primary-hover)}.panel-left .table-wrap{max-height:200px;overflow:auto;border:1px solid var(--panel-border);border-radius:var(--radius);margin-top:.5rem}.preview-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:1rem}.preview-header h3{margin:0;font-size:.875rem;font-weight:600;color:var(--text)}.panel-left h3{font-size:.875rem;font-weight:600;color:var(--text);margin:.75rem 0 .375rem}.panel-privacy{margin-top:1rem;font-size:.75rem;color:var(--text-muted)}.data-table{width:100%;border-collapse:collapse;font-size:.8125rem}.data-table th,.data-table td{padding:.375rem .5rem;border-bottom:1px solid var(--panel-border);text-align:left}.data-table th{background:var(--bg);font-weight:600;color:var(--text)}.custom-block{margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--panel-border)}.custom-block:last-child{border-bottom:none}.custom-block h3{font-size:.875rem;font-weight:600;color:var(--text);margin-bottom:.5rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem;margin-bottom:.5rem}.checkbox-label input{margin:0}.panel-assign-row{margin-bottom:1rem}.panel-assign-row>label:first-child{margin-bottom:.35rem}.panel-series-picks{display:flex;flex-wrap:wrap;gap:.35rem .85rem;align-items:center}.panel-series-picks .checkbox-label{margin-bottom:0;font-weight:400}.series-colors{display:flex;flex-direction:column;gap:.4rem;max-height:min(38vh,280px);overflow-y:auto;overflow-x:auto;min-width:0;width:100%;box-sizing:border-box}.series-color-row{display:flex;align-items:center;gap:.4rem;font-size:.85rem;min-width:0;flex-shrink:0}.series-color-row label{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.series-color-row input[type=color]{width:26px;height:26px;padding:2px;border:1px solid #ccc;border-radius:4px;cursor:pointer;flex-shrink:0}.series-color-row .color-hex-input{width:4.75rem;min-width:0;flex-shrink:1;padding:.2rem .35rem;font-size:.75rem;font-family:ui-monospace,monospace;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}.field-num-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.field-num-wrap .num-range-slider{flex:1 1 120px;min-width:80px;max-width:100%}.inline-range{flex:1 1 100px;min-width:60px;max-width:140px}.root-tree-filter{width:100%;padding:.35rem .5rem;border:1px solid var(--panel-border);border-radius:var(--radius);font-size:.875rem;box-sizing:border-box}.series-color-row select.series-line-style{flex-shrink:0;min-width:0;width:68px;max-width:72px;padding:.2rem .35rem;font-size:.8rem;border:1px solid #ccc;border-radius:4px;background:var(--white)}.hint.small{font-size:.8rem;margin-bottom:.35rem}.chart-option-block{min-width:0}.line-width-row{margin-top:.35rem}.line-width-row select{width:4rem;min-width:0;padding:.25rem .35rem;font-size:.85rem;border:1px solid #ccc;border-radius:4px;background:var(--white)}.series-colors,.series-markers{contain:layout style}.series-markers{display:flex;flex-direction:column;gap:.4rem;max-height:260px;overflow-y:auto;overflow-x:hidden;min-width:0}.marker-row{display:flex;align-items:center;gap:.35rem;font-size:.85rem;min-width:0;flex-shrink:0;max-width:100%;overflow:hidden}.marker-row label{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:30%}.marker-row input[type=color]{width:22px;min-width:22px;max-width:22px;height:22px;padding:1px;border:1px solid #ccc;border-radius:4px;cursor:pointer;flex-shrink:0;box-sizing:border-box}.marker-row .marker-hex{width:4.25rem;min-width:0;flex-shrink:1;padding:.15rem .3rem;font-size:.72rem;font-family:ui-monospace,monospace;border:1px solid #ccc;border-radius:4px}.marker-row select.marker-style,.marker-row select.marker-size{flex-shrink:0;min-width:0;width:62px;max-width:62px;padding:.2rem .35rem;font-size:.8rem;border:1px solid #ccc;border-radius:4px;background:var(--white)}.legend-labels{display:flex;flex-direction:column;gap:.35rem}.legend-label-row input[type=text]{width:100%;padding:.35rem .5rem;border:1px solid #ccc;border-radius:6px;font-size:.9rem}.btn-export{padding:.45rem .85rem;font-size:.8125rem;font-weight:500;background:var(--primary);color:var(--white);border:none;border-radius:var(--radius);cursor:pointer;margin-right:.35rem;margin-bottom:.35rem;transition:background-color .15s ease}.btn-export:hover{background:var(--primary-hover)}@media(max-width:900px){.app.view-workspace .workspace{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.workspace-split{display:none!important}.panel-left{grid-column:1!important;grid-row:1!important;max-height:35vh}.panel-center{grid-column:1!important;grid-row:2!important}.panel-right{grid-column:1!important;grid-row:3!important;max-height:40vh}}
