#pythonStudioWorkspace { margin-bottom: 28px; border: 1px solid var(--border, #d9e1e6); border-radius: 12px; background: var(--panel, #fff); overflow: hidden; }
#pythonStudioWorkspace .py-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:22px 24px 14px; }
#pythonStudioWorkspace .py-heading h2 { margin:3px 0 6px; font-size:25px; }
#pythonStudioWorkspace .py-heading p { margin:0; color:var(--muted, #64748b); }
#pythonStudioWorkspace label { display:flex; flex-direction:column; gap:6px; font-size:12px; font-weight:600; }
#pythonStudioWorkspace [data-py-economics] [hidden] { display:none; }
#pythonStudioWorkspace [data-py-economics] { padding:20px; border-top:1px solid var(--border, #d9e1e6); }
#pythonStudioWorkspace [data-py-economics] pre { overflow:auto; max-height:360px; font-size:12px; }
#pythonStudioWorkspace select, #pythonStudioWorkspace input { max-width:100%; min-width:0; padding:8px; border:1px solid var(--border, #d9e1e6); border-radius:6px; background:var(--panel, #fff); color:inherit; }
#pythonStudioWorkspace .py-toolbar { display:flex; align-items:center; gap:8px; padding:12px 24px; border-bottom:1px solid var(--border, #d9e1e6); }
#pythonStudioWorkspace .py-toolbar [role=status] { margin-left:auto; font-size:12px; color:var(--muted, #64748b); }
#pythonStudioWorkspace button[aria-pressed=true] { background:var(--accent-soft, #e9f3f1); border-color:var(--accent, #397c77); }
#pythonStudioWorkspace .py-notice { margin:0; padding:10px 24px; font-size:12px; background:var(--surface-muted, #f5f8fa); color:var(--muted, #64748b); }
#pythonStudioWorkspace .py-error { padding:12px 24px; margin:0; color:#a02d2d; background:#fff0ef; white-space:pre-wrap; }
#pythonStudioWorkspace .py-grid { display:grid; grid-template-columns:220px minmax(0,1fr); }
#pythonStudioWorkspace .py-files { padding:16px; border-right:1px solid var(--border, #d9e1e6); background:var(--surface-muted, #f8fafb); }
#pythonStudioWorkspace h3 { font-size:13px; margin:0 0 12px; }
#pythonStudioWorkspace .py-files button { display:block; width:100%; margin:6px 0; text-align:left; overflow-wrap:anywhere; }
#pythonStudioWorkspace .py-files label { margin:20px 0 6px; }
#pythonStudioWorkspace .py-files [data-py=source-search] { width:100%; box-sizing:border-box; }
#pythonStudioWorkspace .py-files [data-py=files] { max-height:260px; overflow:auto; }
#pythonStudioWorkspace .py-files [data-py=files] button[aria-current=true] { border-color:var(--accent, #397c77); background:var(--accent-soft, #e9f3f1); }
#pythonStudioWorkspace [data-action=build-report] { border-color:var(--accent, #397c77); }
#pythonStudioWorkspace .py-author { min-width:0; }
#pythonStudioWorkspace .py-file-heading { display:flex; align-items:center; gap:12px; padding:12px 16px; font-size:12px; }
#pythonStudioWorkspace .py-file-heading button { margin-left:auto; }
#pythonStudioWorkspace [data-py=dirty] { color:#a06318; }
#pythonStudioWorkspace .py-tabs { display:flex; gap:4px; padding:0 12px; overflow-x:auto; }
#pythonStudioWorkspace .py-source, #pythonStudioWorkspace .py-monaco { width:100%; height:340px; min-height:260px; border:0; border-top:1px solid var(--border, #d9e1e6); border-bottom:1px solid var(--border, #d9e1e6); border-radius:0; }
#pythonStudioWorkspace .py-source { resize:vertical; padding:16px; font:13px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace; tab-size:4; box-sizing:border-box; }
#pythonStudioWorkspace .py-actions { display:flex; flex-wrap:wrap; gap:6px; padding:12px 16px; }
#pythonStudioWorkspace .py-inputs { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:0 16px 14px; font-size:11px; color:var(--muted, #64748b); }
#pythonStudioWorkspace .py-results-grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(260px,1fr); border-top:1px solid var(--border, #d9e1e6); }
#pythonStudioWorkspace .py-results-grid>section, #pythonStudioWorkspace .py-results-grid>aside { padding:16px; min-width:0; }
#pythonStudioWorkspace .py-results-grid>aside { border-left:1px solid var(--border, #d9e1e6); }
#pythonStudioWorkspace [data-py=objects] { display:flex; flex-wrap:wrap; gap:5px; }
#pythonStudioWorkspace pre { white-space:pre-wrap; overflow-wrap:anywhere; font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace; max-height:350px; overflow:auto; }
#pythonStudioWorkspace .py-console { color:#dbe8ee; background:#1d2b34; border-radius:6px; padding:12px; min-height:65px; max-height:180px; }
#pythonStudioWorkspace .py-table-wrap { max-width:100%; overflow:auto; margin:10px 0; }
#pythonStudioWorkspace table { border-collapse:collapse; font-size:12px; min-width:100%; }
#pythonStudioWorkspace th, #pythonStudioWorkspace td { border-bottom:1px solid var(--border, #d9e1e6); padding:7px 10px; text-align:left; white-space:nowrap; }
#pythonStudioWorkspace th { background:var(--surface-muted, #f5f8fa); }
#pythonStudioWorkspace .py-plot { max-width:100%; }
#pythonStudioWorkspace .py-economics-grid { display:grid; grid-template-columns:minmax(250px,1fr) minmax(0,2fr); }
#pythonStudioWorkspace .py-economics-grid>aside, #pythonStudioWorkspace .py-economics-grid>section { padding:20px; min-width:0; }
#pythonStudioWorkspace .py-economics-grid>aside { border-right:1px solid var(--border, #d9e1e6); }
#pythonStudioWorkspace .py-economics-grid label { margin:10px 0; }
#pythonStudioWorkspace .py-economics-grid p { font-size:12px; color:var(--muted, #64748b); line-height:1.6; }
#pythonStudioWorkspace .py-solve-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 12px; }
#pythonStudioWorkspace .py-model-graph { padding-left:16px; font:12px/1.8 ui-monospace,Consolas,monospace; }
#pythonStudioWorkspace .py-solve-result { margin-top:16px; border-top:1px solid var(--border, #d9e1e6); }
#pythonStudioWorkspace .py-provenance { padding:12px 20px; border-top:1px solid var(--border, #d9e1e6); font-size:12px; }
@media(max-width:900px) { #pythonStudioWorkspace .py-grid, #pythonStudioWorkspace .py-results-grid, #pythonStudioWorkspace .py-economics-grid { grid-template-columns:minmax(0,1fr); } #pythonStudioWorkspace .py-files { border-right:0; } #pythonStudioWorkspace .py-heading { align-items:flex-start; flex-direction:column; gap:14px; } }
#pythonStudioWorkspace .py-table-wrap { max-height: 300px; }
#pythonStudioWorkspace [data-py=comparison] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
#pythonStudioWorkspace .py-solve-difference { grid-column:1/-1; }
#pythonStudioWorkspace .py-solve-result { min-width:0; }
@media(max-width:1100px) { #pythonStudioWorkspace [data-py=comparison] { grid-template-columns:minmax(0,1fr); } }
#pythonStudioWorkspace .py-heading label { min-width:0; max-width:100%; width:min(320px,100%); }
#pythonStudioWorkspace .py-files button { white-space:normal; }
@media(max-width:600px) { #pythonStudioWorkspace .py-solve-fields { grid-template-columns:repeat(2,minmax(0,1fr)); } #pythonStudioWorkspace .py-toolbar { flex-wrap:wrap; } }
.py-tooling{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border,#dbe2ea);min-width:0}.py-tooling>label{display:inline-flex;flex-direction:column;gap:.3rem;margin:0 1rem .75rem 0;max-width:100%}.py-tooling .button-row{flex-wrap:wrap;gap:.4rem}.py-tooling details{margin:.5rem 0;padding:.5rem;border:1px solid var(--border,#dbe2ea);border-radius:.4rem}.py-tooling dl{display:grid;grid-template-columns:minmax(5rem,1fr) minmax(0,3fr);gap:.35rem .75rem}.py-tooling dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.py-tooling dt{font-family:monospace;overflow-wrap:anywhere}
.py-jobs{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border,#dbe2ea);min-width:0}.python-jobs details{margin:.75rem 0}.python-jobs fieldset{margin:.6rem 0;padding:.65rem;border:1px solid var(--border,#dbe2ea);border-radius:.4rem}.python-jobs fieldset label{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;margin:.4rem 0}.python-jobs>label,.python-jobs details>label{display:inline-flex;flex-direction:column;gap:.25rem;margin:.35rem .75rem .35rem 0;max-width:100%}.python-jobs input,.python-jobs textarea,.python-jobs select{max-width:100%;min-width:0}.python-jobs textarea{width:min(48rem,100%)}.python-jobs button{margin:.2rem .35rem .2rem 0}.python-jobs pre{max-height:22rem;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}
.py-developer-tools{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border,#dbe2ea);min-width:0}.py-developer-tools>label{display:flex;flex-direction:column;gap:.3rem;margin:.6rem 0;max-width:100%}.py-developer-tools .button-row{display:flex;flex-wrap:wrap;gap:.4rem}.py-developer-tools [data-dev=report]{max-height:26rem;overflow:auto;min-width:0}.py-developer-tools [data-dev=report] pre{white-space:pre-wrap;overflow-wrap:anywhere}.py-developer-tools select{max-width:100%;min-width:0}.py-developer-tools table{width:100%;font-size:.85rem}.py-developer-tools th,.py-developer-tools td{padding:.35rem;text-align:left;overflow-wrap:anywhere}
#pythonStudioWorkspace .py-analyses{box-sizing:border-box;width:100%;max-width:100%;min-width:0}
#pythonStudioWorkspace .py-analyses *,#pythonStudioWorkspace .py-analyses *::before,#pythonStudioWorkspace .py-analyses *::after{box-sizing:border-box}
#pythonStudioWorkspace .py-analyses>*,#pythonStudioWorkspace .py-analyses .py-actions,#pythonStudioWorkspace .py-analyses .py-solve-fields,#pythonStudioWorkspace .py-analyses [data-analysis]{max-width:100%;min-width:0}
#pythonStudioWorkspace .py-analyses :is(p,summary,button,label,pre){max-width:100%;min-width:0;overflow-wrap:anywhere}
#pythonStudioWorkspace .py-analyses :is(input,select){max-width:100%;min-width:0}
#pythonStudioWorkspace .py-analyses [data-analysis="intercept"]{width:auto;max-width:100%;margin:0;padding:0;align-self:flex-start}
#pythonStudioWorkspace .py-analyses .py-table-wrap{max-width:100%;min-width:0;overflow:auto}
#pythonStudioWorkspace .py-analyses pre{white-space:pre-wrap;overflow-wrap:anywhere}
.python-workflows{box-sizing:border-box;width:100%;max-width:100%;min-width:0;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border,#dbe2ea);overflow-wrap:anywhere}
.python-workflows *,.python-workflows *::before,.python-workflows *::after{box-sizing:border-box;min-width:0}
.python-workflows fieldset{max-width:100%;margin:.6rem 0;padding:.75rem;border:1px solid var(--border,#dbe2ea);border-radius:.4rem}
.python-workflows fieldset label,.python-workflows>label{display:flex;flex-direction:column;gap:.3rem;margin:.45rem 0;max-width:100%}
.python-workflows input,.python-workflows select{width:100%;max-width:100%;min-width:0}
.python-workflows .py-actions{padding:8px 0;flex-wrap:wrap}
.python-workflows button{max-width:100%;overflow-wrap:anywhere}
.python-workflows [data-workflow="run-summary"],.python-workflows [data-workflow="history"],.python-workflows [data-workflow="status"],.python-workflows [data-workflow="report-info"]{max-width:100%;overflow-wrap:anywhere}
.python-workflows [data-workflow="report-preview"]{display:block;width:100%;height:min(70vh,720px);min-height:320px;border:1px solid var(--border,#dbe2ea);background:#fff}
.python-workflows [data-workflow="report-preview"][hidden]{display:none}
.python-workflows .py-table-wrap{max-width:100%;overflow:auto}
.python-workflows pre{white-space:pre-wrap;overflow-wrap:anywhere}
