:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#111;color:#f2f0eb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;min-height:100vh;background:#171717;overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #3b3b3b;background:transparent;color:#e8e5de;border-radius:10px;padding:8px 12px;transition:background .12s ease,border-color .12s ease,color .12s ease}button:hover:not(:disabled){background:#ffffff0a;border-color:#585858}.field-horizontal{display:flex;align-items:center;gap:12px}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:#e8e5de;border-color:#e8e5de;color:#111}button.primary:hover:not(:disabled){background:#fff;border-color:#fff}button.ghost{border-color:#3a3a3a;background:#ffffff05}button.small{padding:5px 9px;font-size:12px;border-radius:9px}button.danger{color:#f0b0b0;border-color:#5a3a3a}input,select,textarea{width:100%;border-radius:10px;border:1px solid #d8d5cf;background:#fff;color:#171717;padding:9px 11px;outline:none}input::placeholder,textarea::placeholder{color:#9a968d}input:focus,select:focus,textarea:focus{border-color:#9f988a;box-shadow:0 0 0 3px #ffffff0f}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{width:min(1680px,calc(100vw - 20px));margin:0 auto;padding:10px 0 14px;height:calc(100vh - 24px);display:flex;flex-direction:column;gap:10px}.topbar{display:grid;grid-template-columns:minmax(280px,auto) 1fr auto;gap:12px;align-items:center;min-height:52px;padding:10px 12px;border-radius:16px;background:#141414;border:1px solid #2b2b2b}.topbar-left{display:flex;align-items:center;gap:12px;min-width:0}.brand-mark{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:#ece7dc;color:#111;font-size:18px;flex:0 0 auto}.brand-copy{min-width:0}.brand-name{font-size:14px;font-weight:700;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-status{margin-top:2px;display:inline-flex;align-items:center;gap:8px;color:#a2a2a2;font-size:12px}.brand-status.ok{color:#a6c7b2}.brand-status.bad{color:#c89a9a}.status-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto}.topbar-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:center}.topbar-actions{display:grid;grid-template-columns:max-content;justify-items:center;gap:.25rem}.topbar-action-group{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.25rem 0}.topbar-divider{width:1px;height:2rem;background:var(--border, #d8dde6);margin:0 .35rem}.calculation-status{font-size:.74rem;color:var(--muted, #667085);white-space:nowrap}.field-error{color:#b42318;font-size:.76rem;margin-top:.25rem}.group-list{padding:.65rem .8rem;display:grid;gap:.35rem}.group-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.balance-row{position:relative;padding:.45rem .7rem;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.35rem;align-items:start}.balance-row .field-error{grid-column:1 / -1}.balance-row .delete-button{align-self:center}.chemical-input-wrap{position:relative;overflow:hidden}.chemical-input-wrap .chemical-input{position:relative;z-index:1;background:transparent}.chemical-ghost{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;display:flex;align-items:center;padding:9px 11px;font:inherit;font-weight:600;letter-spacing:inherit;line-height:normal;white-space:pre;pointer-events:none;color:transparent}.chemical-ghost-suffix{color:#98a2b3}@media (max-width: 900px){.topbar-action-group{flex-wrap:wrap}.topbar-actions{gap:.4rem}}.reset-example-button,.auto-calculate-toggle{display:inline-flex;align-items:center;gap:7px}.action-icon{width:15px;height:15px;fill:currentColor;flex:0 0 auto}.auto-calculate-toggle{position:relative;min-height:36px;padding:7px 9px 7px 11px;border:1px solid #3a3a3a;border-radius:10px;background:#ffffff05;color:#c9c6be;font-size:13px;cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease}.auto-calculate-toggle:hover,.auto-calculate-toggle.is-active{border-color:#5d7488;background:#7fa4c21a;color:#f0f3f5}.auto-calculate-toggle input{position:absolute;right:9px;width:32px;height:18px;margin:0;opacity:0;cursor:pointer;z-index:1}.switch-track{width:32px;height:18px;padding:2px;border:1px solid #595959;border-radius:999px;background:#2c2c2c;transition:background .12s ease,border-color .12s ease}.switch-track:before{content:"";display:block;width:12px;height:12px;border-radius:50%;background:#d7d3cb;transition:transform .15s ease,background .12s ease}.auto-calculate-toggle input:checked+.switch-track{border-color:#91b2cc;background:#537b9b}.auto-calculate-toggle input:checked+.switch-track:before{transform:translate(14px);background:#fff}.auto-calculate-toggle:focus-within{box-shadow:0 0 0 3px #749bb940}.example-picker select{min-width:162px;background:#171717;color:#e8e5de;border-color:#3b3b3b}.example-picker select option{background:#171717;color:#e8e5de}.topbar-mode{display:flex;justify-content:flex-end}.segmented{display:inline-flex;overflow:hidden;border-radius:999px;border:1px solid #3b3b3b}.segmented button{border:0;border-radius:0;background:transparent}.segmented button.active{background:#ece7dc;color:#111}.plot-controls .segmented button.active{background:#1f5e52;color:#fff}.workspace-grid{display:grid;grid-template-columns:minmax(360px,.92fr) minmax(0,1.08fr);gap:12px;margin-top:12px;flex:1;min-height:0}.pane{min-height:0;height:100%;background:#fff;border:1px solid #dcd7cc;border-radius:16px;color:#171717;overflow:hidden;display:flex;flex-direction:column}.pane button{color:#111;border-color:#d7d1c5}.pane button:hover:not(:disabled){background:#f4f1ea}.pane-tabs{display:flex;gap:0;padding:0}.output-pane>.pane-tabs{padding:8px 12px 0;border-bottom:1px solid #ece8de}.pane-tabs-row{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;padding:8px 12px 0;border-bottom:1px solid #ece8de}.pane-tab-actions{display:flex;gap:6px;padding-bottom:7px}.danger-action{color:#9b2f2f;border-color:#d9a4a4;background:#fff4f4}.reset-action{color:#6f4d10;border-color:#dec487;background:#fff8e8}.pane-tabs button{border:0;border-radius:0;padding:10px 12px 11px;color:#6c6962;background:transparent;border-bottom:2px solid transparent}.pane-tabs button.active{color:#171717;border-bottom-color:#171717}.pane-body{padding:10px;flex:1;min-height:0;overflow:auto}.empty-pane,.empty-stage{min-height:620px}.empty-pane{border-top:1px solid transparent}.empty-stage{background:#fff}.setup-pane .pane-body,.output-pane .pane-body{min-height:calc(100% - 48px)}.table-card,.tab-stack,.representation-panel{display:grid;gap:12px}.table-card.flush{gap:8px}.compact-head{justify-content:flex-end}.table-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.table-head strong{font-size:13px;font-weight:600}.table-scroll{overflow:auto;border:1px solid #e7e2d7;border-radius:14px;background:#fff}.tall-table{min-height:460px}.compact-composition-table{max-height:190px}.compact-composition-table th,.compact-composition-table td{padding:7px 9px}.compact-composition-table td input,.compact-composition-table td select{padding:6px 8px}.blank-table table{min-width:100%}table{width:100%;border-collapse:collapse;font-size:14px}th,td{border-bottom:1px solid #efebe3;padding:10px 12px;vertical-align:top}th{position:sticky;top:0;z-index:1;background:#fff;color:#7c7870;font-size:11px;text-transform:uppercase;letter-spacing:.08em;text-align:left}.narrow-col{width:120px}.action-col{width:72px}.right-actions{text-align:right;white-space:nowrap}.right-actions .icon-button,.right-actions .delete-button{margin-left:auto}.type-select{min-width:150px;padding:8px}.constant-name-readonly{min-height:38px;display:flex;align-items:center;padding:8px 10px;border-radius:9px;background:#f7f4ee;color:#171717;font-weight:700}.constant-value-cell{display:flex;gap:7px;align-items:center}.constant-value-cell input{min-width:0}.slider-toggle{flex:0 0 auto;width:34px;height:34px;padding:0;border:1px solid var(--border, #d7d0c6);border-radius:8px;background:#f7f4ee;cursor:pointer}.slider-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.8;vertical-align:middle}.slider-toggle.active{background:#1f5e52;border-color:#1f5e52;color:#fff}.slider-toggle:disabled{cursor:not-allowed;opacity:.45}.constant-slider-row td{padding-top:0}.constant-slider-control{padding:12px;border:1px solid #ded6c9;border-radius:10px;background:#fbfaf7}.constant-slider-fields{display:grid;grid-template-columns:minmax(92px,.7fr) minmax(180px,2fr) minmax(92px,.7fr) minmax(80px,.55fr);gap:12px;align-items:end}.constant-slider-fields label{display:grid;gap:5px;font-size:12px;color:var(--muted, #6c665e)}.constant-slider-fields input{min-width:0}.constant-slider-fields .slider-track input{width:100%;accent-color:#1f5e52}@media (max-width: 700px){.constant-slider-fields{grid-template-columns:1fr 1fr}.constant-slider-fields .slider-track{grid-column:1 / -1;grid-row:2}}.chemical-input{font-weight:600}.check-input{width:16px;height:16px;accent-color:#5d84a9}.add-button{color:#345c84;border-color:#b8cadf;background:#f4f8fb}.delete-button{color:#a03b3b;border-color:#d7a8a8;background:#fff4f4}.delete-button:hover:not(:disabled){background:#ffe9e9}.run-button{color:#0f172a;background:#d8e5f0;border-color:#d8e5f0}.run-button.is-dirty{background:#f1d69a;border-color:#f1d69a}.run-button.is-loading{background:#c8c8c8;border-color:#c8c8c8}.run-button.is-ready{background:#b9d8c3;border-color:#b9d8c3}.run-button.is-error{background:#e7b5b5;border-color:#e7b5b5}.run-button:hover:not(:disabled){background:#c4d6e6;border-color:#c4d6e6}.integration-toggle{justify-self:end;margin-top:4px}.integration-slab{margin-top:10px;padding:12px;border:1px solid #e7e2d7;border-radius:14px;background:#fbfbfa}.integration-note{margin-top:8px;color:#6f6b63;font-size:13px}.section-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.section-header{font-size:13px;font-weight:700;color:#1a1a18}.result-info{margin-top:12px;border:1px solid #e7e2d7;border-radius:14px;background:#fff;overflow:hidden}.result-info>summary{cursor:pointer;padding:12px 14px;font-size:15px;font-weight:700;color:#1a1a18;list-style:none;display:flex;align-items:center;gap:8px}.result-info>summary:before{content:"▸";color:#7a746a;font-size:12px;transition:transform .12s ease}.result-info[open]>summary:before{transform:rotate(90deg)}.result-info>summary::-webkit-details-marker{display:none}.table-view{display:grid;gap:10px;padding:8px}.table-view.is-expanded{position:fixed;top:18px;right:18px;bottom:18px;left:18px;z-index:2147483645;padding:18px;border-radius:18px;border:1px solid #dcd7cc;background:#fff;box-shadow:0 24px 80px #00000059}.table-view.is-expanded .tableWrap{min-height:0;height:calc(100vh - 112px)}.toolbar-actions{display:flex;gap:8px;align-items:center}.icon-only-button{width:32px;height:32px;padding:0;display:inline-grid;place-items:center;font-size:16px}.csv-button{display:inline-flex;align-items:center;gap:6px}.diagnostics-tree{display:grid;gap:8px;padding:0 14px 14px;background:#fff;max-height:280px;overflow:auto;font-size:14px}.diagnostics-node{padding:6px 0 0}.diagnostics-node>summary{cursor:pointer;list-style:none;font-weight:700;color:#2b2b2b;display:flex;align-items:center;gap:7px}.diagnostics-node>summary:before{content:"▸";color:#7a746a;font-size:11px;transition:transform .12s ease}.diagnostics-node[open]>summary:before{transform:rotate(90deg)}.diagnostics-node>summary::-webkit-details-marker{display:none}.diagnostics-children{margin:6px 0 0 7px;padding:2px 0 2px 16px;border-left:2px solid #e2dace;display:grid;gap:6px;overflow:auto;max-width:100%}.diagnostics-leaf{display:flex;gap:8px;align-items:baseline;color:#2b2b2b;padding:4px 0}.diagnostics-key{color:#6f6b63;min-width:110px;text-transform:none}.diagnostics-value{color:#111;word-break:break-word;overflow-wrap:anywhere}td input,td select{min-width:92px;padding:8px 10px;border-radius:9px}.icon-button{width:28px;height:28px;display:grid;place-items:center;padding:0;border-radius:999px;line-height:1}.expand-button{color:#fff;border-color:#537497;background:#537497}.expand-button:hover:not(:disabled){background:#43607c;border-color:#43607c}.row-actions{display:flex;gap:6px;align-items:center}.detail-row td{padding-top:0}.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:10px 0 2px}.constant-parameters-row .detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding:4px 0 8px}.detail-grid label{display:grid;gap:6px}.detail-grid label span,.field label{color:#6f6b63;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.detail-span-2{grid-column:span 2}.field-grid{display:grid;gap:12px}.field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.field-grid.one{grid-template-columns:minmax(0,1fr)}.solver-disabled-field{border-radius:12px;padding:10px;background:#6f6b6314;opacity:.62}.solver-disabled-field select{cursor:not-allowed}.plot-stack{display:grid;gap:12px}.plot-frame{min-height:540px;position:relative}.help,.muted,.panel-hint,.note-block{color:#6f6b63;font-size:13px;line-height:1.45}.note-block{padding-top:2px}.plot-controls{display:grid;gap:16px;padding:16px;border:1px solid #e7e2d7;border-radius:14px;background:#fff}.plot-controls-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr) auto auto;gap:22px 30px}.plot-controls-grid .field{align-items:center;justify-items:center;text-align:center;gap:16px}.plot-controls-grid .field .segmented{gap:4px;padding:3px;background:#f7f4ee}.plot-controls-grid .field select{text-align:left}.segmented.compact button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 18px;border-radius:999px}.plot-series-block{display:grid;gap:10px}.plot-series-head{display:flex;justify-content:space-between;gap:12px;color:#5f5b55;font-size:13px}.representation-panel{padding-top:4px}.series-chips{display:flex;gap:8px;flex-wrap:wrap}.axis-range-inputs{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px;align-items:center}.axis-range-inputs span{color:var(--muted, #6c665e);font-size:12px}.series-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border-radius:999px;border:1px solid #ddd6c8;background:#fff;color:#111}.series-dot{width:9px;height:9px;border-radius:50%;background:#171717;flex:0 0 auto}.series-chip.active{background:#171717;color:#fff;border-color:#171717;box-shadow:0 0 0 2px color-mix(in srgb,currentColor 18%,transparent)}.series-chip.active .series-dot{border:1px solid rgba(255,255,255,.8);box-shadow:0 0 0 1px #00000026}.series-style-menu{position:fixed;z-index:2147483646;display:grid;gap:10px;width:320px;padding:14px;border:1px solid #d9d2c5;border-radius:14px;background:#fff;color:#111}.series-style-title{font-weight:700}.series-style-menu label{display:grid;gap:6px;color:#111}.color-row{display:flex;gap:6px;flex-wrap:wrap}.line-style-grid,.marker-style-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.line-style-grid button,.marker-style-grid button{display:flex;align-items:center;justify-content:center;gap:7px;padding:7px 8px;border-radius:10px;font-size:12px}.line-style-grid button.active,.marker-style-grid button.active{background:#171717;color:#fff;border-color:#171717}.line-sample{width:28px;border-top:2px solid currentColor}.line-dash{border-top-style:dashed}.line-dot{border-top-style:dotted}.line-dashdot,.line-longdashdot{border-top-style:dashed}.line-longdash{width:36px;border-top-style:dashed}.color-picker-panel{display:grid;grid-template-columns:48px 1fr;gap:8px;align-items:center}.color-picker-panel input[type=color]{width:48px;height:38px;padding:3px;border-radius:10px}.color-swatch{width:28px;height:28px;padding:0;border-radius:999px;border-color:#d0d0d0}.series-empty{color:#8b857c;font-size:13px}.plot-controls-stack{display:grid;gap:12px}.panel-card,.indicators-card{display:grid;gap:14px;padding:16px;border:1px solid #e7e2d7;border-radius:14px;background:#fff}.indicators-card-head,.indicator-add-row,.indicator-row-footer,.toggle-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.indicators-card-head,.indicator-add-row{justify-content:space-between}.indicator-add-row label{display:block;min-width:min(320px,100%);color:#5f5b55;font-size:13px}.pretty-toggle,.pretty-check{display:inline-flex;align-items:center;gap:8px;color:#4b4741;font-size:13px;cursor:pointer}.pretty-toggle input,.pretty-check input{position:absolute;opacity:0;pointer-events:none}.pretty-toggle span{width:38px;height:22px;padding:2px;border-radius:999px;background:#ddd6c8;border:1px solid #cfc7b9}.pretty-toggle span:before{content:"";display:block;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .12s ease}.pretty-toggle input:checked+span{background:#171717;border-color:#171717}.pretty-toggle input:checked+span:before{transform:translate(16px)}.pretty-check span{width:20px;height:20px;border:1px solid #cfc7b9;border-radius:6px;background:#fff}.pretty-check input:checked+span{background:#171717;border-color:#171717;box-shadow:inset 0 0 0 4px #fff}.indicator-list{display:grid;gap:10px}.indicator-item{display:grid;grid-template-columns:20px minmax(150px,1fr) minmax(136px,.75fr) auto 82px 38px auto 82px 38px auto;gap:8px;align-items:end;padding:12px;border:1px solid #e7e2d7;border-radius:13px;background:#fbfaf7}.indicator-enable-cell{display:grid;place-items:center;align-self:center}.indicator-name-field,.indicator-display-field,.compact-number,.compact-color{display:grid;gap:5px;color:#6f6b63;font-size:12px}.range-title{align-self:center;color:#5f5b55;font-size:13px;font-weight:700}.range-arrow{align-self:center;color:#817a70}.compact-number input{width:82px;padding:7px 8px}.compact-color{display:block}.compact-color input[type=color]{width:38px;height:34px;padding:2px}.indicator-row-footer{display:flex;align-items:center;gap:6px;color:#6f6b63;font-size:12px}.js-plotly-plot,.js-plotly-plot .user-select-none{font-family:Georgia,Times New Roman,serif!important}.indicator-warning{color:#8a6a00}.indicator-error{color:#8d3b3b;font-weight:600}.plot-panel .placeholder,.table-panel .placeholder,.diagnostics-panel .placeholder,.raw-panel .placeholder{margin:0}.placeholder,.diagnostics,.json-preview{border-radius:14px}.diagnostics{margin:0;padding:14px;border:1px solid #e7e2d7;background:#fff;color:#222;font-size:13px;line-height:1.45;overflow:auto;max-height:100%;min-height:520px}.json-preview{margin:0;padding:14px;border:1px solid #e7e2d7;background:#fff;color:#222;font-family:IBM Plex Mono,JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;overflow:auto;white-space:pre-wrap;word-break:break-word}.tableWrap{overflow:auto;max-height:100%;min-height:520px;border:1px solid #e7e2d7;border-radius:14px;background:#fff}.tableWrap td{font-family:IBM Plex Mono,JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.pane .panelTitle{display:none}.representation-panel .panel-hint{padding-top:2px}.loading-strip{margin-top:10px;color:#6f6b63;font-size:13px}.error-banner{position:fixed;top:18px;right:18px;z-index:2147483644;max-width:min(520px,calc(100vw - 36px));padding:12px 14px;border-radius:14px;border:1px solid #5a3a3a;background:#2a1818f5;color:#f1c1c1;box-shadow:0 18px 50px #00000052;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}.error-banner strong,.error-banner span{display:block}.error-banner strong{margin-bottom:4px;color:#ffe0e0;font-size:13px;letter-spacing:.04em;text-transform:uppercase}.error-banner span{line-height:1.42}.error-close{width:28px;height:28px;padding:0;border-radius:999px;border-color:#ffffff29;color:#ffe0e0;background:#ffffff0f;font-size:18px;line-height:1}.footer{margin-top:4px;color:#a5a29b;font-size:13px;text-align:center;display:flex;justify-content:center;gap:7px;align-items:center}.footer a{color:#a5a29b;text-decoration:none;display:inline-flex;align-items:center;gap:5px}.footer a:hover{color:#d5d1c8}.footer-icon{width:14px;height:14px;fill:currentColor;flex:0 0 auto}.agentation-overlay{z-index:2147483647}.hidden-file-input{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}@media (max-width: 1240px){.workspace-grid{grid-template-columns:1fr}.pane{min-height:auto}.empty-pane,.empty-stage,.diagnostics,.tableWrap{min-height:360px}.topbar{grid-template-columns:1fr;justify-items:stretch}.topbar-actions,.topbar-mode{justify-content:flex-start}}@media (max-width: 900px){.pane-tabs{overflow-x:auto}.field-grid.two,.field-grid.three,.field-grid.four,.detail-grid,.plot-controls-grid,.indicator-add-row label,.indicator-item{grid-template-columns:1fr}.detail-span-2{grid-column:auto}}
