@import url(https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&family=Outfit:wght@400;600;700&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f0f2f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,PingFang SC,Microsoft YaHei,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}.App{padding:0}.App,.json-tool-container{background:#f8f9fa;min-height:100vh}.json-tool-container,.tool-panel{padding:10px}.tool-panel{background:#fff;border-radius:4px;box-shadow:0 4px 6px #0000001a;margin-bottom:6px}.panel-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.panel-title{color:#212529;font-size:1.2rem;font-weight:600}.form-group{margin-bottom:1.5rem}.form-label{color:#495057;display:block;font-weight:600;margin-bottom:.5rem}.form-control{border:2px solid #e9ecef;border-radius:6px;font-size:.9rem;padding:.75rem;transition:border-color .2s ease;width:100%}.form-control:focus{border-color:#007bff;outline:none}textarea.form-control{font-family:Monaco,Menlo,Ubuntu Mono,monospace;min-height:150px;resize:vertical}.btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:.9rem;gap:.5rem;justify-content:center;min-width:100px;padding:.5rem 1rem;transition:all .2s ease;white-space:nowrap}.btn-primary{background:#007bff;color:#fff}.btn-primary:hover{background:#0056b3}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#545b62}.btn-success{background:#28a745;color:#fff}.btn-success:hover{background:#1e7e34}.btn-outline{background:#0000;border:2px solid #007bff;color:#007bff}.btn-outline:hover{background:#007bff;color:#fff}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-group{display:flex;flex-wrap:wrap;gap:.5rem}.json-formatter-layout{display:flex;height:calc(100vh - 250px);min-height:400px;position:relative}.json-formatter-layout>div:nth-child(2){background-color:#87ceeb;cursor:col-resize;flex-shrink:0;position:relative;transition:background-color .2s ease;width:4px!important;z-index:10}.json-formatter-layout>div:nth-child(2):hover{background-color:#5f9fd8}.json-formatter-layout>div:nth-child(2).dragging{background-color:#4682b4}.json-formatter-panel{flex-shrink:0}@media (max-width:768px){.json-formatter-layout{flex-direction:column;height:auto;min-height:auto}.json-formatter-layout>div:nth-child(2){display:none}.json-formatter-panel{min-height:300px}}.json-formatter-panel{background:#fff;border-radius:4px;box-shadow:0 4px 6px #0000001a;display:flex;flex-direction:column;overflow:hidden}.json-formatter-panel textarea{border:none;border-radius:0;flex:1 1;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem;padding:10px;resize:none}.json-output-container{flex:1 1;min-height:400px;overflow:auto}.tool-header{margin-bottom:2rem;text-align:center}.tool-title{align-items:center;color:#212529;display:flex;font-size:2rem;gap:.5rem;justify-content:center;margin-bottom:.5rem}.tool-description{color:#6c757d;font-size:1.1rem}@media (max-width:768px){.json-tool-container{padding:.5rem}.tool-panel{margin-bottom:1rem;padding:1rem}.panel-header{align-items:flex-start;gap:1rem}.btn-group,.panel-header{flex-direction:column}.btn{justify-content:center;width:100%}.json-formatter-layout{gap:1rem}.tool-title{font-size:1.5rem}.tool-description{font-size:1rem}}.Toastify__toast-container{max-width:400px!important;position:fixed!important;right:1rem!important;top:1rem!important;transform:none!important;width:auto!important;z-index:9999!important}.Toastify__toast{animation:none!important;margin:0 0 .5rem!important;transform:none!important;transition:none!important}.Toastify__toast-body{margin:0!important;padding:0!important}.Toastify__progress-bar{display:none!important}body{overflow-x:hidden}body,html{height:100%;width:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0);font-family:sans-serif;line-height:1.15}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{font-weight:500;margin-bottom:.5em;margin-top:0}p{margin-bottom:1em;margin-top:0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-bottom:1em;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}code,kbd,pre,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-bottom:1em;margin-top:0;overflow:auto}figure{margin:0 0 1em}img{border-style:none;vertical-align:middle}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{caption-side:bottom;padding-bottom:.3em;padding-top:.75em;text-align:left}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{color:inherit;display:block;font-size:1.5em;line-height:inherit;margin-bottom:.5em;max-width:100%;padding:0;white-space:normal;width:100%}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:none;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}.locale-switcher{flex-shrink:0;position:relative}.locale-switcher-display{align-items:center;background:#fff;border:1px solid #dddfe2;border-radius:8px;display:flex;gap:6px;max-width:168px;padding:6px 10px;pointer-events:none}.locale-switcher-flag{font-size:18px;line-height:1}.locale-switcher-name{color:#1c1e21;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.locale-switcher-select{cursor:pointer;font-size:14px;height:100%;inset:0;opacity:0;position:absolute;width:100%}@media (max-width:520px){.locale-switcher-display{max-width:120px;padding:6px 8px}.locale-switcher-name{font-size:12px}}.site-nav{background:#fff;border-bottom:1px solid #dddfe2;box-shadow:0 1px 2px #0000000a;flex-shrink:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}.site-nav-inner{align-items:center;display:grid;grid-template-columns:1fr auto 1fr;height:56px;margin:0 auto;max-width:1280px;padding:0 16px}.site-nav-brand{align-items:center;background:#1877f2;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:18px;font-weight:700;height:40px;justify-content:center;justify-self:start;text-decoration:none;width:40px}.site-nav-brand:hover{background:#166fe5}.site-nav-tabs{align-items:stretch;display:flex;height:56px;justify-self:center}.site-nav-tab{align-items:center;color:#65676b;display:flex;height:56px;justify-content:center;position:relative;text-decoration:none;transition:background-color .15s ease;width:112px}.site-nav-tab:hover{background:#f2f2f2;border-radius:8px}.site-nav-tab.active{color:#1877f2}.site-nav-tab.active:hover{background:#0000}.site-nav-tab.active:after{background:#1877f2;border-radius:2px 2px 0 0;bottom:0;content:"";height:3px;left:0;position:absolute;right:0}.site-nav-spacer{align-items:center;display:flex;justify-content:flex-end;justify-self:end;min-width:72px;padding-right:8px}@media (max-width:520px){.site-nav-tab{width:72px}}.home-page{background:#f0f2f5;color:#1c1e21;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}.home-main,.home-page{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.home-main{box-sizing:border-box;margin:0 auto;max-width:720px;padding:16px 20px;width:100%}.home-card{background:#fff;border:1px solid #dddfe2;border-radius:12px;box-shadow:0 1px 2px #0000000f;display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden;padding:20px 24px 16px}.home-profile{flex-shrink:0}.home-contact-list{display:flex;flex-direction:column;gap:10px;list-style:none;margin:0;padding:0}.home-contact-list li{align-items:center;display:flex;flex-wrap:wrap;font-size:14px;gap:8px 16px}.home-contact-label{color:#65676b;font-size:13px;min-width:36px}.home-contact-list a{color:#1877f2;text-decoration:none}.home-contact-list a:hover{text-decoration:underline}.home-block{margin-bottom:16px}.home-block-last{margin-bottom:0}.home-section-title{color:#1c1e21;font-size:15px;font-weight:600;margin:0 0 8px}.home-highlights{color:#1c1e21;font-size:13px;line-height:1.55;margin:0;padding-left:18px}.home-highlights li{margin-bottom:4px}.home-highlights li:last-child{margin-bottom:0}.home-edu-simple{color:#1c1e21;font-size:13px;margin:0}.home-simple-list{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.home-simple-list li{border-bottom:1px solid #e4e6eb;color:#1c1e21;display:flex;flex-wrap:wrap;font-size:13px;gap:8px 16px;justify-content:space-between;padding-bottom:6px}.home-simple-list li:last-child{border-bottom:none;padding-bottom:0}.home-simple-meta{color:#65676b;font-size:12px;white-space:nowrap}.home-chat-section{border-top:1px solid #e4e6eb;margin-top:16px;padding-top:16px}.home-chat-panel,.home-chat-section{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.home-chat-loading{align-items:center;background:#f0f2f5;border:1px solid #dddfe2;border-radius:8px;color:#65676b;display:flex;flex:1 1;font-size:14px;justify-content:center;min-height:120px}@media (max-width:600px){.home-main{padding:12px}.home-card{padding:16px 14px 12px}}.jf-app{background:#f0f2f5;color:#1c1e21;display:flex;flex-direction:column;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif;height:100vh}.jf-shell{display:flex;flex:1 1;flex-direction:column;gap:12px;min-height:0;padding:12px 16px 16px}.jf-tabbar{background:#fff;border:1px solid #dddfe2;border-radius:8px;box-shadow:0 1px 2px #0000000a;overflow:hidden}.jf-tabs-row{align-items:center;background:#f7f8fa;border-bottom:1px solid #e4e6eb;display:flex;min-height:40px;padding:0 8px 0 12px}.jf-tabs{display:flex;flex:1 1;gap:2px;overflow:auto}.jf-tab{align-items:center;background:#0000;border:none;border-bottom:2px solid #0000;color:#65676b;cursor:pointer;display:flex;font-size:13px;max-width:180px;min-width:100px;padding:8px 12px}.jf-tab.active{background:#fff;border-bottom-color:#1877f2;color:#1877f2;font-weight:600}.jf-tab-name{flex:1 1;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.jf-tab-close{background:#0000;border:none;border-radius:50%;color:#8a8d91;cursor:pointer;font-size:16px;height:18px;line-height:1;margin-left:6px;padding:0;width:18px}.jf-tab-close:hover{background:#e4e6eb;color:#1c1e21}.jf-tab-add{align-self:center;background:#0000;border:none;border-radius:6px;color:#65676b;cursor:pointer;flex-shrink:0;font-size:20px;line-height:1;padding:4px 10px}.jf-tab-add:hover{background:#e4e6eb}.jf-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px}.jf-toolbar select{padding:0 10px}.jf-btn,.jf-toolbar select{background:#fff;border:1px solid #dddfe2;border-radius:8px;color:#1c1e21;font-size:13px;height:34px}.jf-btn{appearance:none;-webkit-appearance:none;cursor:pointer;font-weight:600;padding:0 14px;white-space:nowrap}.jf-btn:hover:not(:disabled):not(.jf-btn-primary):not(.jf-btn-valid):not(.jf-btn-invalid){background:#f2f2f2}.jf-btn:focus-visible{outline:2px solid #1877f273;outline-offset:2px}.jf-btn:disabled{cursor:not-allowed;opacity:.55}.jf-btn-primary{background:#1877f2;border-color:#1877f2;color:#fff}.jf-btn.jf-btn-primary:active,.jf-btn.jf-btn-primary:focus,.jf-btn.jf-btn-primary:focus-visible,.jf-btn.jf-btn-primary:hover:not(:disabled){background:#166fe5;border-color:#166fe5;color:#fff}.jf-btn-ghost{background:#f0f2f5;border-color:#dddfe2}.jf-btn.jf-btn-ghost:active,.jf-btn.jf-btn-ghost:focus,.jf-btn.jf-btn-ghost:focus-visible,.jf-btn.jf-btn-ghost:hover:not(:disabled){background:#e4e6eb;border-color:#dddfe2;color:#1c1e21}.jf-btn-valid{background:#42b72a;border-color:#42b72a;color:#fff}.jf-btn.jf-btn-valid:active,.jf-btn.jf-btn-valid:focus,.jf-btn.jf-btn-valid:focus-visible,.jf-btn.jf-btn-valid:hover:not(:disabled){background:#36a420;border-color:#36a420;color:#fff}.jf-btn-invalid{background:#e41e3f;border-color:#e41e3f;color:#fff}.jf-btn.jf-btn-invalid:active,.jf-btn.jf-btn-invalid:focus,.jf-btn.jf-btn-invalid:focus-visible,.jf-btn.jf-btn-invalid:hover:not(:disabled){background:#cc1a38;border-color:#cc1a38;color:#fff}.jf-workspace{gap:12px}.jf-pane,.jf-workspace{display:flex;flex:1 1;min-height:0}.jf-pane{background:#fff;border:1px solid #dddfe2;border-radius:8px;box-shadow:0 1px 2px #0000000a;flex-direction:column;min-width:0;overflow:hidden}.jf-pane-head{background:#fafbfc;border-bottom:1px solid #e4e6eb;color:#65676b;font-size:13px;font-weight:600;padding:10px 14px}.jf-editor{background:#fff;border:none;caret-color:#1877f2;color:#1c1e21;flex:1 1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;line-height:1.55;min-height:0;outline:none;padding:14px;resize:none;width:100%}.jf-editor.invalid{box-shadow:inset 0 0 0 2px #e41e3f}.jf-editor-readonly{background:#fafbfc;color:#1c1e21}.jf-tree{background:#fafbfc;flex:1 1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;line-height:1.55;min-height:0;overflow:auto;padding:14px;text-align:left}.jf-error{background:#ffebe9;border:1px solid #f5c2c0;border-radius:8px;color:#b42318;flex-shrink:0;font-size:13px;padding:10px 14px}.jf-modal-overlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.jf-modal{background:#fff;border:1px solid #dddfe2;border-radius:12px;box-shadow:0 8px 24px #00000026;max-width:480px;min-width:400px;padding:20px}.jf-modal-title{align-items:center;display:flex;font-size:17px;font-weight:700;justify-content:space-between;margin-bottom:16px}.jf-modal-input{background:#f0f2f5;border:1px solid #dddfe2;border-radius:8px;flex:1 1;font-size:13px;padding:10px 12px}@media (max-width:768px){.jf-workspace{flex-direction:column}.jf-pane{min-height:240px}.jf-toolbar{justify-content:flex-start}}.ie-app{background:#f0f2f5;color:#1c1e21;display:flex;flex-direction:column;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif;height:100vh;overflow:hidden}.ie-shell{box-sizing:border-box;flex:1 1;margin:0 auto;max-width:1200px;min-height:0;overflow-y:auto;padding:12px 16px 24px;width:100%}.ie-page-head{margin-bottom:12px}.ie-page-title{color:#1c1e21;font-size:20px;font-weight:700;margin:0}.ie-page-sub{color:#65676b;font-size:13px;margin:4px 0 0}.ie-card{background:#fff;border:1px solid #dddfe2;border-radius:8px;box-shadow:0 1px 2px #0000000a}.ie-upload{background:#fff;border:2px dashed #ccd0d5;cursor:pointer;padding:48px 24px;text-align:center;transition:border-color .15s,background .15s}.ie-upload:hover{background:#f7f8fa;border-color:#1877f2}.ie-upload-icon{align-items:center;background:#e7f3ff;border-radius:50%;color:#1877f2;display:flex;font-size:22px;font-weight:700;height:48px;justify-content:center;margin:0 auto 16px;width:48px}.ie-upload-title{color:#1c1e21;font-size:15px;font-weight:600;margin-bottom:6px}.ie-upload-hint{color:#65676b;font-size:13px}.ie-editor-grid{align-items:flex-start;background:#fff;display:flex}.ie-editor-main{background:#fff;flex:1 1;min-width:0}.ie-editor-side{background:#fff;border-left:1px solid #e4e6eb;flex-shrink:0;width:320px}.ie-editor-main>section+section,.ie-editor-side>section+section{border-top:1px solid #e4e6eb}@media (max-width:900px){.ie-editor-grid{flex-direction:column}.ie-editor-side{border-left:none;border-top:1px solid #e4e6eb;width:100%}}.ie-panel-head{background:#f7f8fa;border-bottom:1px solid #e4e6eb;color:#65676b;font-size:13px;font-weight:600;padding:10px 14px}.ie-panel-body{background:#fff;padding:14px}.ie-preview-stage{align-items:center;background:#f7f8fa;display:flex;justify-content:center;min-height:120px;padding:16px 16px 0;text-align:center}.ie-preview-wrap{display:inline-block;line-height:0;max-width:100%;position:relative}.ie-preview-wrap.crosshair{cursor:crosshair}.ie-preview-img{border-radius:4px;box-shadow:0 1px 4px #0000001f;height:auto;max-width:100%;user-select:none;-webkit-user-select:none}.ie-blur-mark{background:#e41e3f14;border:2px dashed #e41e3f;border-radius:50%;pointer-events:none;position:absolute}.ie-blur-mark-drawing{background:#1877f21a;border-color:#1877f2}.ie-toolbar{background:#fff;border-top:1px solid #e4e6eb;display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px}.ie-btn{appearance:none;-webkit-appearance:none;background:#fff;border:1px solid #dddfe2;border-radius:8px;color:#1c1e21;cursor:pointer;font-size:13px;font-weight:600;height:34px;padding:0 14px;white-space:nowrap}.ie-btn:hover:not(:disabled){background:#f2f2f2}.ie-btn:focus-visible{outline:2px solid #1877f273;outline-offset:2px}.ie-btn:disabled{cursor:not-allowed;opacity:.5}.ie-btn-primary{background:#1877f2;border-color:#1877f2;color:#fff}.ie-btn-primary:hover:not(:disabled){background:#166fe5;border-color:#166fe5}.ie-btn-success{background:#42b72a;border-color:#42b72a;color:#fff}.ie-btn-success:hover:not(:disabled){background:#36a420;border-color:#36a420}.ie-btn-danger{background:#e41e3f;border-color:#e41e3f;color:#fff}.ie-btn-danger:hover:not(:disabled){background:#cc1a38;border-color:#cc1a38}.ie-btn-sm{font-size:12px;height:30px;padding:0 10px}.ie-btn-row{display:flex;flex-wrap:wrap;gap:8px}.ie-action-row{display:flex;flex-direction:column;gap:8px;margin-top:12px}.ie-action-row .ie-btn{width:100%}.ie-slider-row{margin-bottom:14px}.ie-slider-row:last-child{margin-bottom:0}.ie-slider-label{align-items:baseline;color:#1c1e21;display:flex;font-size:13px;font-weight:600;justify-content:space-between;margin-bottom:6px}.ie-slider-value{color:#65676b;font-size:12px;font-weight:500}.ie-range{accent-color:#1877f2;cursor:pointer;height:4px;width:100%}.ie-muted{color:#65676b;font-size:12px;line-height:1.5}.ie-pill-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.ie-pill{background:#f0f2f5;border:1px solid #dddfe2;border-radius:999px;color:#1c1e21;cursor:pointer;font-size:12px;font-weight:600;padding:5px 10px}.ie-pill:hover{background:#e4e6eb}.ie-pill.active{background:#1877f2;border-color:#1877f2;color:#fff}.ie-field-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-bottom:12px}.ie-field label{color:#65676b;display:block;font-size:12px;font-weight:600;margin-bottom:4px}.ie-field input[type=number]{background:#fff;border:1px solid #dddfe2;border-radius:8px;box-sizing:border-box;color:#1c1e21;font-size:13px;height:34px;padding:0 10px;width:100%}.ie-field input[type=number]:focus{border-color:#1877f2;box-shadow:0 0 0 2px #1877f233;outline:none}.ie-radio-group{color:#1c1e21;display:flex;flex-direction:column;font-size:13px;gap:8px}.ie-radio-group label{align-items:center;cursor:pointer;display:flex;gap:8px}.ie-features{margin-top:12px}.ie-features ul{color:#65676b;font-size:13px;line-height:1.65;margin:0;padding:0 0 0 18px}.ie-features li+li{margin-top:4px}.ie-hidden-input{display:none}.cg-app{--fb-blue:#1877f2;--fb-blue-soft:#e7f3ff;--fb-bg:#f0f2f5;--fb-card:#fff;--fb-border:#dddfe2;--fb-text:#1c1e21;--fb-muted:#65676b;--fb-hover:#f2f2f2;background:var(--fb-bg);color:var(--fb-text);display:flex;flex-direction:column;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;height:100%;overflow:hidden}.cg-toolbar{align-items:center;background:var(--fb-card);border-bottom:1px solid var(--fb-border);box-shadow:0 1px 2px #0000000a;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;min-height:52px;padding:0 16px}.cg-toolbar-left{align-items:baseline;display:flex;gap:10px;min-width:0}.cg-page-title{color:var(--fb-text);font-size:17px;font-weight:700;margin:0}.cg-data-as-of{color:var(--fb-muted);font-size:12px;white-space:nowrap}.cg-dataset-switch{background:var(--fb-bg);border:1px solid var(--fb-border);border-radius:8px;display:inline-flex;padding:3px}.cg-dataset-tab{background:#0000;border:0;border-radius:6px;color:var(--fb-muted);cursor:pointer;font-size:13px;font-weight:600;padding:7px 14px;transition:background-color .15s ease,color .15s ease}.cg-dataset-tab:hover:not(:disabled){background:#0000000a;color:var(--fb-text)}.cg-dataset-tab.active{background:var(--fb-card);box-shadow:0 1px 2px #00000014;color:var(--fb-blue)}.cg-dataset-tab:disabled{cursor:not-allowed;opacity:.55}.cg-toolbar-actions{display:flex;flex-wrap:wrap;gap:8px}.cg-btn{background:var(--fb-card);border:1px solid var(--fb-border);border-radius:8px;color:var(--fb-text);cursor:pointer;font-size:13px;font-weight:600;height:34px;padding:0 14px;transition:background-color .15s ease}.cg-btn:hover:not(:disabled){background:var(--fb-hover)}.cg-btn:disabled{cursor:not-allowed;opacity:.5}.cg-btn.primary{background:var(--fb-blue);border-color:var(--fb-blue);color:#fff}.cg-btn.primary:hover:not(:disabled){background:#166fe5}.cg-loading,.cg-welcome{align-items:center;color:var(--fb-muted);display:flex;flex:1 1;flex-direction:column;gap:12px;justify-content:center;padding:40px 24px;text-align:center}.cg-loading-spinner{animation:cg-spin .8s linear infinite;border:3px solid #e4e6eb;border-radius:50%;border-top:3px solid var(--fb-blue);height:36px;width:36px}@keyframes cg-spin{to{transform:rotate(1turn)}}.cg-welcome h2{color:var(--fb-text);font-size:20px;font-weight:700;margin:0}.cg-welcome p{font-size:14px;line-height:1.55;margin:0;max-width:420px}.cg-workspace{grid-gap:12px;display:grid;flex:1 1;gap:12px;grid-template-columns:260px 1fr;padding:12px}.cg-source,.cg-workspace{min-height:0;overflow:hidden}.cg-source{border:1px solid var(--fb-border);border-radius:8px;box-shadow:0 1px 2px #0000000a;flex-direction:column}.cg-source,.cg-source-head{background:var(--fb-card);display:flex}.cg-source-head{align-items:center;border-bottom:1px solid var(--fb-border);color:var(--fb-text);font-size:13px;font-weight:700;height:40px;padding:0 14px}.cg-source-body{flex:1 1;overflow:auto;padding:8px 0 12px}.cg-folder-title{align-items:center;background:#0000;border:0;border-radius:6px;color:var(--fb-text);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:6px;margin:0 6px;padding:8px 14px;text-align:left;width:100%;width:calc(100% - 12px)}.cg-folder-title:hover{background:var(--fb-hover)}.cg-tree-item{align-items:center;border-radius:6px;cursor:grab;display:flex;font-size:13px;gap:6px;margin:2px 8px;padding:6px 10px;touch-action:none;-webkit-user-select:none;user-select:none}.cg-tree-item:hover{background:var(--fb-hover)}.cg-tree-item.dragging{opacity:.4}.cg-tree-icon{color:var(--fb-blue);font-size:11px;text-align:center;width:12px}.cg-tree-text{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cg-tree-member{cursor:default}.cg-tree-member .cg-tree-text{cursor:grab}.cg-tree-toggle{background:#0000;border:none;color:var(--fb-muted);cursor:pointer;flex-shrink:0;font-size:10px;padding:0;width:16px}.cg-tree-toggle.spacer{display:inline-block}.cg-tree-level-drag{cursor:grab;flex:1 1;text-align:left}.cg-tree-level{align-items:center;border:none;display:flex;font-size:13px;gap:4px;width:calc(100% - 8px)}.cg-tree-empty{color:var(--fb-muted);font-size:12px;margin:2px 8px;padding:4px 12px}.cg-tree-error{color:#e41e3f}.cg-dim-block{margin-bottom:2px}.cg-main{display:flex;flex-direction:column;gap:12px;min-height:0;min-width:0;overflow:hidden}.cg-context{align-items:stretch;background:var(--fb-card);border:1px solid var(--fb-border);border-radius:8px;box-shadow:0 1px 2px #0000000a;display:flex;gap:10px;padding:12px 14px}.cg-context-label{align-self:center;color:var(--fb-muted);flex:0 0 auto;font-size:12px;font-weight:600;width:72px}.cg-context .cg-edge{background:var(--fb-bg);border:1px dashed #ccd0d5;border-radius:8px;flex:1 1;margin:0;min-height:36px}.cg-context .cg-edge-title{display:none}.cg-pivot-shell{background:var(--fb-card);border:1px solid var(--fb-border);border-radius:8px;box-shadow:0 1px 2px #0000000a;padding:12px}.cg-pivot-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:180px 1fr;grid-template-rows:auto auto}.cg-corner,.cg-edge{background:var(--fb-bg);border:1px solid var(--fb-border);border-radius:8px;min-height:52px}.cg-edge{display:flex;flex-direction:column;overflow:hidden}.cg-edge-measures{background:#fffbeb;border-color:#fcd34d}.cg-edge.over{background:var(--fb-blue-soft)!important;border-color:var(--fb-blue)!important;box-shadow:0 0 0 2px #1877f226}.cg-edge-title{color:var(--fb-muted);font-size:11px;font-weight:700;letter-spacing:.03em;padding:6px 10px 0;text-transform:uppercase}.cg-edge-body{align-content:flex-start;display:flex;flex:1 1;flex-wrap:wrap;gap:6px;min-height:32px;padding:6px 10px 10px}.cg-edge-empty{color:var(--fb-muted);font-size:12px}.cg-pill{align-items:center;background:var(--fb-card);border:1px solid var(--fb-border);border-radius:999px;box-shadow:0 1px 1px #0000000a;display:inline-flex;font-size:12px;font-weight:500;height:28px;line-height:1;max-width:100%;padding:0 4px 0 10px}.cg-pill.measure{background:#fffbeb;border-color:#fcd34d}.cg-pill.filter{background:#ecfdf5;border-color:#86efac}.cg-pill-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cg-pill-x{background:#0000;border:0;border-radius:50%;color:var(--fb-muted);cursor:pointer;font-size:16px;height:22px;line-height:1;width:22px}.cg-pill-x:hover{background:#0000000f;color:#e41e3f}.cg-report{border:1px solid var(--fb-border);border-radius:8px;box-shadow:0 1px 2px #0000000a;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.cg-report,.cg-report-toolbar{background:var(--fb-card);display:flex}.cg-report-toolbar{align-items:center;border-bottom:1px solid var(--fb-border);gap:8px;height:44px;justify-content:space-between;padding:0 12px}.cg-view-tabs{align-items:stretch;display:flex;gap:4px;height:100%}.cg-tab{background:#0000;border:0;border-radius:0;color:var(--fb-muted);cursor:pointer;font-size:13px;font-weight:600;padding:0 12px;position:relative}.cg-tab:hover{background:var(--fb-hover)}.cg-tab.active{background:#0000;color:var(--fb-blue)}.cg-tab.active:after{background:var(--fb-blue);border-radius:2px 2px 0 0;bottom:0;content:"";height:3px;left:0;position:absolute;right:0}.cg-status{color:var(--fb-muted);font-size:12px}.cg-report-body{flex:1 1;min-height:0;overflow:auto}.cg-placeholder{color:var(--fb-muted);font-size:14px;line-height:1.6;padding:48px 24px;text-align:center}.cg-crosstab-wrap{padding:0}.cg-crosstab{font-feature-settings:"tnum";border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums;width:100%}.cg-crosstab td,.cg-crosstab th{border:1px solid var(--fb-border);padding:8px 10px;white-space:nowrap}.cg-ch{background:var(--fb-bg);color:var(--fb-text);font-weight:600;text-align:center}.cg-ch.sub{background:#f7f8fa;font-weight:500}.cg-cell.total,.cg-ch.total,.cg-total-row .cg-cell,.cg-total-row .cg-rh{background:#f7f8fa;font-weight:700}.cg-rh{font-weight:600;left:0;position:sticky;text-align:left;z-index:1}.cg-corner-cell,.cg-rh{background:var(--fb-bg)}.cg-corner-cell{min-width:120px}.cg-cell{background:var(--fb-card);color:var(--fb-text);text-align:right}.cg-crosstab tbody tr:hover .cg-cell{background:var(--fb-blue-soft)}.cg-crosstab tbody tr:hover .cg-rh{background:#e4e6eb}.cg-hint{background:#fafbfc;border-top:1px solid var(--fb-border);color:var(--fb-muted);font-size:12px;padding:10px 14px}.cg-drag-ghost{border:1px solid var(--fb-blue);border-radius:8px;box-shadow:0 4px 12px #0000001f;color:var(--fb-text);font-size:13px;padding:6px 12px}.cg-drag-ghost,.cg-menu{background:var(--fb-card)}.cg-menu{border:1px solid var(--fb-border);border-radius:8px;box-shadow:0 8px 24px #0000001f;min-width:140px;overflow:hidden;padding:6px 0;position:fixed;z-index:1000}.cg-menu button{background:#0000;border:0;color:var(--fb-text);cursor:pointer;display:block;font-size:14px;padding:10px 16px;text-align:left;width:100%}.cg-menu button:hover{background:var(--fb-hover)}.cg-detail-wrap{max-height:480px;overflow:auto}.cg-detail{border-collapse:collapse;font-size:13px;width:100%}.cg-detail td,.cg-detail th{border:1px solid var(--fb-border);padding:8px 10px;text-align:left}.cg-detail th{background:var(--fb-bg);position:sticky;top:0}@media (max-width:900px){.cg-workspace{grid-template-columns:1fr;grid-template-rows:auto 1fr}.cg-source{max-height:200px}.cg-toolbar{align-items:stretch;flex-direction:column;gap:10px;padding:12px}.cg-dataset-switch{justify-content:center;width:100%}.cg-dataset-tab{flex:1 1;text-align:center}}.qg{--qg-bg:#0c1017;--qg-panel:#141a24;--qg-line:#243044;--qg-text:#e6edf7;--qg-muted:#8b9bb4;--qg-accent:#3ecf8e;--qg-accent-dim:#3ecf8e26;--qg-warn:#f0b429;--qg-locked:#5a6a82;--qg-danger:#f07178;--qg-font:"Outfit","Segoe UI",sans-serif;--qg-mono:"IBM Plex Mono",ui-monospace,monospace;background:radial-gradient(1200px 600px at 10% -10%,#1a2740 0,#0000 55%),radial-gradient(900px 500px at 100% 0,#13281f 0,#0000 50%),var(--qg-bg);color:var(--qg-text);display:flex;flex:1 1;flex-direction:column;font-family:var(--qg-font);min-height:0}.qg *{box-sizing:border-box}.qg-shell{grid-gap:0;display:grid;flex:1 1;gap:0;grid-template-columns:minmax(280px,360px) 1fr;min-height:0;overflow:hidden}.qg-map{background:#141a24d9;border-right:1px solid var(--qg-line);display:flex;flex-direction:column;min-height:0}.qg-map-head{border-bottom:1px solid var(--qg-line);padding:20px 18px 12px}.qg-kicker{color:var(--qg-accent);font-family:var(--qg-mono);font-size:11px;letter-spacing:.12em;margin-bottom:8px;text-transform:uppercase}.qg-map-head h1{font-size:22px;font-weight:700;line-height:1.25;margin:0 0 8px}.qg-map-head p{color:var(--qg-muted);font-size:13px;line-height:1.5;margin:0}.qg-progress-bar{background:var(--qg-line);border-radius:999px;height:6px;margin-top:14px;overflow:hidden}.qg-progress-bar>span{background:linear-gradient(90deg,#248a5e 0,var(--qg-accent) 100%);display:block;height:100%;transition:width .35s ease}.qg-progress-meta{color:var(--qg-muted);display:flex;font-family:var(--qg-mono);font-size:11px;justify-content:space-between;margin-top:8px}.qg-chapters{flex:1 1;overflow:auto;padding:12px}.qg-chapter{margin-bottom:14px}.qg-chapter-title{align-items:baseline;display:flex;font-size:13px;font-weight:600;gap:8px;justify-content:space-between;padding:8px 6px}.qg-chapter-title span{color:var(--qg-muted);font-family:var(--qg-mono);font-size:11px;font-weight:400}.qg-level{grid-gap:10px;align-items:center;background:#0000;border:1px solid #0000;border-radius:10px;color:inherit;cursor:pointer;display:grid;gap:10px;grid-template-columns:36px 1fr auto;margin-bottom:6px;padding:10px 12px;text-align:left;transition:background .2s ease,border-color .2s ease,transform .15s ease;width:100%}.qg-level:hover:not(:disabled){background:#ffffff08;border-color:var(--qg-line)}.qg-level.is-active{background:var(--qg-accent-dim);border-color:#3ecf8e59}.qg-level.is-locked{cursor:not-allowed;opacity:.55}.qg-level-index{background:#1c2433;border:1px solid var(--qg-line);border-radius:10px;display:grid;font-family:var(--qg-mono);font-size:12px;font-weight:600;height:36px;place-items:center;width:36px}.qg-level.is-done .qg-level-index{background:var(--qg-accent-dim);border-color:#3ecf8e73;color:var(--qg-accent)}.qg-level.is-locked .qg-level-index{color:var(--qg-locked)}.qg-level-body strong{display:block;font-size:13px;font-weight:600;margin-bottom:2px}.qg-level-body small{color:var(--qg-muted);font-size:11px;line-height:1.35}.qg-xp{color:var(--qg-warn);font-family:var(--qg-mono);font-size:10px}.qg-main{min-height:0;overflow:auto;padding:24px 28px 40px}.qg-hero{animation:qg-in .35s ease both;margin-bottom:22px;max-width:760px}.qg-hero .qg-kicker{margin-bottom:10px}.qg-hero h2{font-size:28px;line-height:1.2;margin:0 0 8px}.qg-hero .qg-sub{color:var(--qg-muted);font-size:15px;margin:0}.qg-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.qg-badge{border:1px solid var(--qg-line);border-radius:999px;color:var(--qg-muted);font-family:var(--qg-mono);font-size:11px;padding:4px 8px}.qg-badge.ok{background:var(--qg-accent-dim);border-color:#3ecf8e66;color:var(--qg-accent)}.qg-badge.lock{border-color:#f0b42959;color:var(--qg-warn)}.qg-section{animation:qg-in .4s ease both;background:var(--qg-panel);border:1px solid var(--qg-line);border-radius:14px;margin-bottom:12px;max-width:760px;padding:16px 18px}.qg-section h3{font-size:15px;margin:0 0 8px}.qg-section p,.qg-section pre{color:#c7d2e3;font-family:var(--qg-font);font-size:14px;line-height:1.65;margin:0;white-space:pre-wrap}.qg-tasks{animation:qg-in .45s ease both;margin-top:8px;max-width:760px}.qg-tasks h3{font-size:16px;margin:0 0 12px}.qg-task{align-items:flex-start;background:#141a24e6;border:1px solid var(--qg-line);border-radius:12px;cursor:pointer;display:flex;gap:12px;margin-bottom:8px;padding:12px 14px;transition:border-color .2s ease,background .2s ease}.qg-task:hover{border-color:#3ecf8e59}.qg-task.is-checked{background:var(--qg-accent-dim);border-color:#3ecf8e73}.qg-check{border:1.5px solid var(--qg-locked);border-radius:6px;color:#0000;display:grid;flex-shrink:0;font-size:12px;height:20px;margin-top:1px;place-items:center;width:20px}.qg-task.is-checked .qg-check{background:var(--qg-accent);border-color:var(--qg-accent);color:#062316;font-weight:700}.qg-task-label{font-size:14px;line-height:1.45}.qg-task-hint{color:var(--qg-muted);display:block;font-size:12px;margin-top:4px}.qg-actions{animation:qg-in .5s ease both;display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;max-width:760px}.qg-btn{border:none;border-radius:10px;cursor:pointer;font-family:var(--qg-font);font-size:14px;font-weight:600;padding:10px 16px;transition:transform .15s ease,opacity .15s ease,background .15s ease}.qg-btn:active{transform:translateY(1px)}.qg-btn:disabled{cursor:not-allowed;opacity:.45}.qg-btn-primary{background:var(--qg-accent);color:#062316}.qg-btn-primary:hover:not(:disabled){filter:brightness(1.05)}.qg-btn-ghost{background:#0000;border:1px solid var(--qg-line);color:var(--qg-text)}.qg-btn-warn{background:#f0b42926;border:1px solid #f0b42959;color:var(--qg-warn)}.qg-reward{border:1px dashed #3ecf8e73;border-radius:12px;color:var(--qg-accent);font-size:13px;margin-top:14px;max-width:760px;padding:12px 14px}.qg-lock-panel{animation:qg-in .35s ease both;background:linear-gradient(160deg,#f0b42914,#141a24e6);border:1px solid #f0b42959;border-radius:14px;margin-top:12px;max-width:760px;padding:20px}.qg-lock-panel h3{font-size:18px;margin:0 0 8px}.qg-lock-panel p{color:var(--qg-muted);font-size:14px;line-height:1.55;margin:0 0 14px}.qg-price{color:var(--qg-warn);font-family:var(--qg-mono);font-size:28px;margin-bottom:14px}.qg-foot{align-items:center;border-top:1px solid var(--qg-line);color:var(--qg-muted);display:flex;flex-wrap:wrap;font-size:12px;gap:10px;justify-content:space-between;margin-top:28px;max-width:760px;padding-top:16px}@keyframes qg-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (max-width:860px){.qg-shell{grid-template-columns:1fr;grid-template-rows:minmax(220px,38vh) 1fr}.qg-map{border-bottom:1px solid var(--qg-line);border-right:none}.qg-main{padding:18px 16px 32px}.qg-hero h2{font-size:22px}}