*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;background-color:#1e1e1e;color:#d4d4d4;line-height:1.6}.app{min-height:100vh;display:flex;flex-direction:column}.app-main{flex:1;display:flex;justify-content:center;align-items:center;padding:2rem}.header{background-color:#2d2d2d;color:#fff;padding:1rem 2rem;border-bottom:1px solid #444;display:flex;align-items:center;justify-content:space-between}.header a{color:inherit;text-decoration:none}.header a:hover{text-decoration:underline}.header-title h1{display:flex;margin:0;font-size:1.5rem;font-weight:500}.header-title .header-versions{display:flex;gap:.6rem;align-items:center}.header-title{display:flex;flex-direction:row;align-items:center;gap:.4rem}.version-badge{font-size:.7rem;font-weight:400;padding:.1rem .5rem;border-radius:3px;background-color:#ffffff1a;color:#fff;opacity:.85}.header-flavor{display:flex;align-items:center}.header-flavor-badge{font-size:.75rem;font-weight:600;padding:.2rem .6rem;border-radius:4px;background-color:#007acc;color:#fff;letter-spacing:.05em}.header-flavor-select{padding:.25rem .5rem;background-color:#3c3c3c;color:#d4d4d4;border:1px solid #555;border-radius:4px;font-size:.8rem;cursor:pointer}.header-flavor-select:focus{outline:none;border-color:#007acc}.split-pane{display:flex;width:100%;height:100%;overflow:hidden}.split-pane.dragging{cursor:col-resize;user-select:none}.split-pane.dragging *{user-select:none}.split-pane-left,.split-pane-right{overflow:auto;height:100%}.split-pane-divider{width:5px;background-color:#444;cursor:col-resize;flex-shrink:0}.split-pane-divider:hover{background-color:#666}.nospace-editor{width:100%;height:100%}.nospace-editor .ace_editor{width:100%!important;height:100%!important}.editor-container{width:100%;height:100%;display:flex;flex-direction:column;background-color:#1e1e1e}.editor-container__editor{flex:1;overflow:hidden}.collapsible-section{border:1px solid #444;border-radius:4px;margin-bottom:.5rem;overflow:hidden}.collapsible-section .collapsible-header{display:flex;justify-content:space-between;align-items:center;padding:0;background-color:#2d2d2d;border-bottom:1px solid #444}.collapsible-section .collapsible-header .collapsible-toggle{display:flex;align-items:center;gap:.5rem;flex:1;padding:.4rem .75rem;background:none;border:none;color:#ccc;cursor:pointer;text-align:left}.collapsible-section .collapsible-header .collapsible-toggle:hover{color:#fff}.collapsible-section .collapsible-header .collapsible-toggle .collapse-icon{font-size:.7rem;width:1rem;text-align:center;flex-shrink:0}.collapsible-section .collapsible-header .collapsible-toggle h3{margin:0;font-size:.9rem;font-weight:400}.collapsible-section .collapsible-header .collapsible-actions{display:flex;gap:.5rem;padding:0 .5rem}.collapsible-section.collapsed .collapsible-header{border-bottom:none}.collapsible-section .collapsible-body{padding:.75rem 1rem}.common-select{padding:.25rem;background-color:#3c3c3c;color:#d4d4d4;border:1px solid #555;border-radius:3px;font-size:.85rem;cursor:pointer}.common-select:hover{border-color:#007acc}.common-select:focus{outline:none;border-color:#007acc}.common-select:disabled{background-color:#2d2d2d;color:#888;cursor:not-allowed}.common-text-input{padding:.25rem;background-color:#3c3c3c;color:#d4d4d4;border:1px solid #555;border-radius:3px;font-size:.85rem}.common-text-input:focus{outline:none;border-color:#007acc}.common-text-input:disabled{background-color:#2d2d2d;color:#888;cursor:not-allowed}.common-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.85rem}.common-checkbox input[type=checkbox]{cursor:pointer}.common-checkbox span{min-width:80px}.execution-options .option-group{margin-bottom:.5rem}.execution-options .option-group:last-child{margin-bottom:0}.execution-options .option-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.85rem}.execution-options .option-group label span{min-width:80px}.compile-options .option-group{margin-bottom:.5rem}.compile-options .option-group:last-child{margin-bottom:0}.compile-options .option-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.85rem}.compile-options .option-group label span{min-width:80px;font-size:.875rem}.compile-options .option-group .option-group-label{display:block;min-width:80px;font-size:.875rem;margin-bottom:.25rem}.compile-options .option-group .checkbox-group{display:flex;flex-wrap:wrap;gap:.25rem .75rem;padding-left:.5rem}.btn{border:none;border-radius:3px;cursor:pointer;transition:background-color .2s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.btn-sm{padding:.25rem .5rem;font-size:.75rem}.btn.btn-md{padding:.5rem 1rem;font-size:.9rem}.btn.btn-primary{background-color:#0e7a0d;color:#fff}.btn.btn-primary:hover:not(:disabled){background-color:#0f9d0c}.btn.btn-danger{background-color:#a1260d;color:#fff}.btn.btn-danger:hover:not(:disabled){background-color:#c72e0d}.btn.btn-accent{background-color:#0d5aa7;color:#fff}.btn.btn-accent:hover:not(:disabled){background-color:#1177d2}.btn.btn-secondary{background-color:#5a5a5a;color:#d4d4d4}.btn.btn-secondary:hover:not(:disabled){background-color:#6a6a6a}.btn.btn-outline{background-color:#3c3c3c;color:#d4d4d4;border:1px solid #555}.btn.btn-outline:hover:not(:disabled){background-color:#4a4a4a}.compile-output-panel{margin-top:1rem;border-radius:3px}.compile-output-panel .collapsible-body{padding:0}.compile-output-content{padding:.5rem;background-color:#1e1e1e;max-height:200px;overflow-y:auto}.compile-output-content .compile-output-textarea{display:block;width:100%;height:160px;margin:0;padding:0;font-family:Courier New,Courier,monospace;font-size:.85rem;line-height:1.4;color:#d4d4d4;background-color:transparent;border:none;resize:none;outline:none;white-space:pre;overflow:auto;box-sizing:border-box;cursor:default}.compile-output-empty{color:#888;font-style:italic;font-size:.85rem}.display-mode-toggle{display:inline-flex;border:1px solid #555;border-radius:3px;overflow:hidden;margin-right:.4rem}.display-mode-toggle .btn-mode{padding:1px 6px;font-size:.75rem;background:transparent;color:#888;border:none;cursor:pointer;line-height:1.4}.display-mode-toggle .btn-mode.active{background:#007acc;color:#fff}.display-mode-toggle .btn-mode:hover:not(.active){background:#2a2d2e}.display-mode-toggle .btn-mode+.btn-mode{border-left:1px solid #555}.compile-output-pagination{display:flex;align-items:center;justify-content:center;gap:.25rem;padding:.3rem .5rem;border-top:1px solid #444;background-color:#252526}.compile-output-pagination .btn-page{padding:1px 6px;font-size:.8rem;background:#2d2d2d;color:#ccc;border:1px solid #555;border-radius:3px;cursor:pointer}.compile-output-pagination .btn-page:hover:not(:disabled){background:#2a2d2e}.compile-output-pagination .btn-page:disabled{opacity:.4;cursor:default}.compile-output-pagination .page-info{font-size:.8rem;color:#ccc;padding:0 .4rem}.compile-output-pagination .page-info .line-info{margin-left:.4rem;color:#888;font-size:.75rem}.execution-controls{display:flex;align-items:center;gap:.5rem;padding:.5rem 0}.compile-status{font-size:.85rem;font-weight:700;padding:.15rem .4rem;border-radius:3px}.compile-status--success{color:#4ec9b0}.compile-status--error{color:#f48771}.output-panel{display:flex;flex-direction:column;height:100%;flex:1;margin-top:1rem;border:1px solid #444;border-radius:3px;overflow:hidden}.output-panel-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background-color:#2d2d2d;border-bottom:1px solid #444}.output-panel-header h3{margin:0;font-size:.9rem;color:#ccc}.output-panel-content{flex:1;padding:.5rem;overflow-y:auto;font-family:Courier New,Courier,monospace;font-size:.85rem;line-height:1.4;background-color:#1e1e1e;white-space:pre-wrap;word-break:break-all}.output-empty{color:#888;font-style:italic}.output-entry{margin:0}.output-entry.output-stdout{color:#d4d4d4}.output-entry.output-stderr{color:#f48771}.output-entry.output-stdin-echo{color:#888;font-style:italic}.output-entry.output-system{color:#4ec9b0}.common-textarea{width:100%;padding:.5rem;font-family:Courier New,Courier,monospace;font-size:.85rem;background-color:#1e1e1e;color:#d4d4d4;border:1px solid #555;border-radius:4px;resize:vertical;box-sizing:border-box}.common-textarea:focus{outline:none;border-color:#007acc}.common-textarea:disabled{background-color:#252526;color:#888;cursor:not-allowed}.input-panel{margin-top:1rem;padding-top:1rem;border-top:1px solid #444}.input-panel h3{margin:0 0 .5rem;font-size:.9rem;color:#ccc}.interactive-input-group{display:flex;gap:.5rem}.interactive-input-group .interactive-input{flex:1}.batch-input{height:100px}.sample-list{padding:1rem;overflow-y:auto;flex:1}.sample-list__footer{font-size:.9rem}.sample-list__footer a{color:inherit;text-decoration:none}.sample-list__footer a:hover{text-decoration:underline}.sample-list__item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-radius:4px;border:1px solid #444;margin-bottom:.5rem;background-color:#2d2d2d}.sample-list__item:hover{background-color:#2a2d2e}.sample-list__name{color:#d4d4d4;font-size:.9rem}.sample-list__load-btn{padding:.25rem .75rem;background-color:#007acc;color:#fff;border:none;border-radius:3px;font-size:.85rem;cursor:pointer;transition:background-color .2s}.sample-list__load-btn:hover{background-color:#1177d2}.sample-list__empty{color:#888;font-size:.9rem}.test-list-panel{display:flex;flex-direction:column;height:100%;overflow:hidden;background-color:#252526;color:#d4d4d4}.test-list-panel .test-list-header{padding:8px;border-bottom:1px solid #444}.test-list-panel .test-list-header .btn-new-test{width:100%}.test-list-panel .test-list-tree{flex:1;overflow-y:auto;padding:4px 0}.test-list-panel .test-list-loading,.test-list-panel .test-list-error,.test-list-panel .test-list-empty{padding:16px;text-align:center;color:#888}.test-list-panel .test-list-error{color:#f48771}.test-list-panel .test-tree-node{display:flex;align-items:center;padding:4px 8px;cursor:pointer;user-select:none;color:#d4d4d4}.test-list-panel .test-tree-node:hover{background-color:#2a2d2e}.test-list-panel .test-tree-node.selected{background-color:#094771}.test-list-panel .test-tree-node.directory{font-weight:600;color:#e0e0e0}.test-list-panel .test-tree-node .tree-icon{display:inline-block;width:16px;margin-right:4px;text-align:center;font-size:12px}.test-list-panel .test-tree-node .tree-name{flex:1;font-size:14px}.test-list-panel .test-tree-node .tree-name.no-check{color:#f48771;opacity:.9}.common-radio-group{display:flex;gap:16px;font-size:13px}.common-radio-group label{display:flex;align-items:center;gap:4px;cursor:pointer;font-weight:400}.common-radio-group label input[type=radio]{margin:0;cursor:pointer}.check-result-editor{display:flex;flex-direction:column;width:100%;color:#d4d4d4}.check-result-editor .editor-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.check-result-editor .editor-body{width:100%}.check-result-editor .editor-body .check-result-json-view .json-editor{min-height:150px;padding:8px;font-size:13px}.check-result-editor .editor-body .check-result-json-view .validation-errors{margin-top:4px}.check-result-editor .editor-body .check-result-json-view .validation-errors .error-message{color:#f48771;font-size:12px;padding:2px 0}.check-result-editor .editor-body .array-editor{display:flex;flex-direction:column;gap:6px;margin-top:4px}.check-result-editor .editor-body .array-editor .array-item{display:flex;gap:6px;align-items:center}.check-result-editor .editor-body .array-editor .array-item .common-text-input{flex:1;padding:4px 8px;font-size:13px}.check-result-editor .editor-body .success-trace-form>label{display:block;font-weight:600;font-size:14px;margin-bottom:4px}.check-result-editor .editor-body .success-io-form .mode-selector{margin-bottom:12px}.check-result-editor .editor-body .success-io-form label{display:block;font-weight:600;font-size:13px;margin-bottom:4px;margin-top:8px}.check-result-editor .editor-body .success-io-form .common-textarea{min-height:80px;padding:6px 8px;font-size:13px}.check-result-editor .editor-body .success-io-form .case-item{border:1px solid #444;border-radius:4px;padding:8px;margin-bottom:8px;background-color:#2d2d2d}.check-result-editor .editor-body .success-io-form .case-item .case-header{display:flex;gap:8px;align-items:center;margin-bottom:8px}.check-result-editor .editor-body .success-io-form .case-item .case-header .common-text-input{flex:1;padding:4px 8px;font-size:13px}.check-result-editor .editor-body .compile-error-form>label{display:block;font-weight:600;font-size:14px;margin-bottom:4px}.check-result-editor .editor-body .parse-error-form>label{display:block;font-weight:600;font-size:14px;margin-bottom:4px;margin-top:8px}.check-result-editor .editor-body .parse-error-form>label:first-child{margin-top:0}.check-result-editor .editor-body .parse-error-form .radio-group{margin-bottom:8px}.test-case-edit-form,.test-case-create-form{display:flex;flex-direction:column;height:100%;overflow:hidden;background-color:#252526;color:#d4d4d4}.test-case-edit-form .form-header,.test-case-create-form .form-header{padding:12px;border-bottom:1px solid #444;background-color:#2d2d2d}.test-case-edit-form .form-header h3,.test-case-create-form .form-header h3{margin:0;font-size:16px;font-weight:600;color:#e0e0e0}.test-case-edit-form .form-body,.test-case-create-form .form-body{flex:1;overflow-y:auto;padding:12px}.test-case-edit-form .form-body .form-section,.test-case-create-form .form-body .form-section{margin-bottom:16px}.test-case-edit-form .form-body .form-section label,.test-case-create-form .form-body .form-section label{display:block;margin-bottom:4px;font-weight:600;font-size:14px;color:#ccc}.test-case-edit-form .form-body .form-section input,.test-case-edit-form .form-body .form-section select,.test-case-create-form .form-body .form-section input,.test-case-create-form .form-body .form-section select{width:100%;padding:8px;border:1px solid #555;border-radius:4px;font-size:14px;background-color:#3c3c3c;color:#d4d4d4}.test-case-edit-form .form-body .form-section input:focus,.test-case-edit-form .form-body .form-section select:focus,.test-case-create-form .form-body .form-section input:focus,.test-case-create-form .form-body .form-section select:focus{outline:none;border-color:#007acc}.test-case-edit-form .form-body .form-section textarea,.test-case-create-form .form-body .form-section textarea{width:100%;min-height:150px;padding:8px;border:1px solid #555;border-radius:4px;font-family:Courier New,monospace;font-size:13px;resize:vertical;background-color:#1e1e1e;color:#d4d4d4}.test-case-edit-form .form-body .form-section textarea:focus,.test-case-create-form .form-body .form-section textarea:focus{outline:none;border-color:#007acc}.test-case-edit-form .form-body .form-section .source-editor,.test-case-create-form .form-body .form-section .source-editor{min-height:200px}.test-case-edit-form .form-body .form-section .check-editor,.test-case-create-form .form-body .form-section .check-editor{min-height:150px}.test-case-edit-form .form-footer,.test-case-create-form .form-footer{padding:12px;border-top:1px solid #444;background-color:#2d2d2d;display:flex;gap:8px}.test-editor-panel{display:flex;flex-direction:column;height:100%;background-color:#252526}.test-editor-panel .test-editor-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#888;font-size:14px}.test-editor-container{display:flex;flex-direction:column;height:100%;overflow:hidden;background-color:#252526;color:#d4d4d4}.test-editor-container .test-editor-list{flex:0 0 300px;border-bottom:1px solid #444;overflow:hidden}.test-editor-container .test-editor-panel-wrapper{flex:1;overflow:hidden}.execution-container{width:100%;height:100%;display:flex;flex-direction:column;background-color:#252526;color:#d4d4d4;padding:1rem;overflow-y:auto}.operation-mode-tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:1px solid #444}.operation-mode-tabs .mode-tab{padding:.5rem 1rem;background:none;border:none;border-bottom:2px solid transparent;color:#888;font-size:.9rem;cursor:pointer;transition:color .2s,border-color .2s}.operation-mode-tabs .mode-tab:hover{color:#ccc}.operation-mode-tabs .mode-tab.active{color:#fff;border-bottom-color:#007acc}.app{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;background-color:#1e1e1e}.app-main{flex:1;overflow:hidden}
