/* Shared workbench finish. Loaded after the existing tool layouts. */
:root{--bench-paper:#f5f2eb;--bench-sheet:#fcfaf5;--bench-ink:#183d3b;--bench-muted:#5d7069;--bench-line:#d9ddd3;--bench-accent:#aa4d2d}
html[data-theme="dark"]{--bench-paper:#111e20;--bench-sheet:#192a2c;--bench-ink:#e1ece4;--bench-muted:#a9bcb4;--bench-line:#344749;--bench-accent:#eda982}
html body{background:var(--bench-paper)!important}
html body .tl-global-header{background:var(--bench-paper)!important;border-bottom:1px solid var(--bench-line)!important;box-shadow:none!important;color:var(--bench-ink)!important}
html body .tl-global-header .tl-brand-trim,html body .tl-global-header .tl-desktop-nav a,html body .tl-global-header .tl-hamburger,html body .tl-global-header .tl-theme-button{color:var(--bench-ink)!important}
html body .tl-global-header .tl-brand-lab{color:var(--bench-accent)!important}
html body .tl-global-header .tl-global-search{background:var(--bench-sheet)!important;border:1px solid var(--bench-line)!important;color:var(--bench-muted)!important;border-radius:7px!important}
html body .tl-global-header .tl-search{color:var(--bench-ink)!important;background:transparent!important;font-size:13px!important}
html body .tl-global-header .tl-search::placeholder{color:var(--bench-muted)!important}
html body .tl-desktop-nav a.active:after{background:var(--bench-accent)!important}
html body .tl-search-results{background:var(--bench-sheet)!important;border-color:var(--bench-line)!important;color:var(--bench-ink)!important}
html body .tl-search-results a{color:var(--bench-ink)!important}
html body .tl-search-results small{color:var(--bench-muted)!important}
html body .tl-search-results a:hover,html body .tl-search-results a:focus{background:var(--bench-paper)!important}
html body .tl-tool-shell .tool-heading{min-height:110px!important;padding:16px 10px 24px!important}
html body .tl-tool-shell .tool-heading:before,html body .tl-tool-shell .tool-heading:after{display:none!important}
html body .tl-tool-shell .tool-heading h1{color:var(--bench-ink)!important;font-size:34px!important;font-weight:650!important;letter-spacing:-1px!important}
html body .tl-tool-shell .tool-heading p{color:var(--bench-muted)!important;font-size:14px!important;max-width:850px!important}
html body .tl-breadcrumb,html body .tl-breadcrumb a,html body .tl-breadcrumb .current{color:var(--bench-muted)!important}
html body.tl-tool-page .card{border-radius:12px!important;box-shadow:0 4px 16px #102d2610!important}
html body.tl-tool-page .card-header{min-height:62px!important}
html body.tl-tool-page label{font-size:12px!important;line-height:1.5!important}
html body.tl-tool-page .field-note,html body.tl-tool-page .form-note{font-size:11px!important;line-height:1.6!important}
html body.tl-tool-page input:not([type="checkbox"]):not([type="radio"]),html body.tl-tool-page select{min-height:40px!important;font-size:13px!important}
html body.tl-tool-page .card-content{padding:18px!important}
html body.tl-tool-page .card-header:not(summary){cursor:default!important}
html body.tl-tool-page .card-header[onclick]{cursor:pointer!important}
html body.tl-tool-page .calculate-button,html body.tl-tool-page .primary-button{background:#215e55!important;border-color:#215e55!important;color:#fff!important;min-height:42px!important}
html body.tl-tool-page button:disabled{cursor:not-allowed!important;opacity:.55!important}
html body :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--bench-accent)!important;outline-offset:3px!important}
.tl-skip-link{position:fixed;top:-100px;left:16px;z-index:10000;padding:13px 20px;background:var(--bench-ink);color:var(--bench-paper);border-radius:5px}.tl-skip-link:focus{top:12px}
.tl-tool-shortcuts{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px;padding:0 10px}.tl-tool-shortcuts a{padding:8px 12px;border:1px solid var(--bench-line);border-radius:6px;text-decoration:none;color:var(--bench-ink);background:var(--bench-sheet);font-size:12px}.tl-tool-shortcuts a:hover{border-color:var(--bench-accent)}
.tl-catalog-filter{margin:15px 0 28px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.tl-catalog-filter label{font-size:13px;color:var(--bench-ink);font-weight:600}.tl-catalog-filter input{padding:12px 15px;border:1px solid var(--bench-line);background:var(--bench-sheet);color:var(--bench-ink);border-radius:7px;min-width:250px;font:inherit}.tl-catalog-filter p{color:var(--bench-muted);font-size:13px}.overview-category[hidden],.overview-tool-card[hidden]{display:none!important}
html body .site-footer,html body .footer{background:var(--bench-paper)!important;border-color:var(--bench-line)!important}html body .site-footer-inner,html body .footer-inner{color:var(--bench-muted)!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation:none!important;transition:none!important}}
@media(max-width:600px){html body .tl-tool-shell .tool-heading h1{font-size:28px!important}.tl-catalog-filter input{min-width:0;width:100%}.tl-tool-shortcuts{padding:0}}
/* Override the legacy theme's high-specificity chrome rules. */
html:root[data-theme] body{background:var(--bench-paper)!important;background-image:none!important}
html:root[data-theme] body .header.tl-global-header{background:var(--bench-paper)!important;background-image:none!important;color:var(--bench-ink)!important}
html:root[data-theme] body .header.tl-global-header :is(.tl-desktop-nav a,.tl-hamburger,.tl-theme-button,.tl-brand-trim){color:var(--bench-ink)!important}
html:root[data-theme] body .tl-global-menu[aria-hidden="true"]{visibility:hidden;box-shadow:none}
html:root[data-theme] body .tl-footer{background:var(--bench-paper)!important;border-top:1px solid var(--bench-line)!important}
html:root[data-theme] body .tl-footer :is(div,a){color:var(--bench-muted)!important}
html:root[data-theme] body.workbench-home{color:var(--bench-ink)!important}
html:root[data-theme] body.workbench-home h1{font-weight:500!important;color:var(--bench-ink)!important}
html:root[data-theme] body.workbench-home :is(h2,h3){font-weight:500!important;color:var(--bench-ink)!important}
html:root[data-theme="light"] body.tl-tool-page :is(.card,.overview-tool-card){background:var(--bench-sheet)!important;border-color:var(--bench-line)!important}
html:root[data-theme="light"] body.tl-tool-page .card-header{background:#f0f1e9!important;border-color:var(--bench-line)!important}
html:root[data-theme="light"] body.tl-tool-page label{color:#435b53!important}
html:root[data-theme="light"] body.tl-tool-page :is(.field-note,.form-note){color:#596f66!important}
html:root[data-theme="light"] body.tl-tool-page :is(.card-title,.card-icon){color:var(--bench-ink)!important}
html:root[data-theme] body.tl-tool-page :is(.primary-button,.calculate-button,#sectionCalculate,#beamCalculate){background:#215e55!important;border-color:#215e55!important;color:white!important}
html:root[data-theme] body .overview-tool-card{background:var(--bench-sheet)!important;border-color:var(--bench-line)!important;color:var(--bench-ink)!important;box-shadow:none!important}
html:root[data-theme] body .overview-tool-card :is(h2,.overview-open){color:var(--bench-ink)!important}
html:root[data-theme] body .overview-tool-card p{color:var(--bench-muted)!important}

/* One semantic palette for navigation, tools and information pages. */
html:root[data-theme] {
  --bench-soft: #edf0e7;
  --bench-action: #215e55;
  --bench-on-action: #ffffff;
  --bench-success: #276246;
  --bench-warning: #865b18;
  --bench-danger: #a83636;
  --bench-success-bg: #e6f1e8;
  --bench-warning-bg: #faf0d8;
  --bench-danger-bg: #fae9e5;
}
html:root[data-theme="dark"] {
  --bench-soft: #223638;
  --bench-action: #a6d3bc;
  --bench-on-action: #102b26;
  --bench-success: #a7d9b5;
  --bench-warning: #efcd86;
  --bench-danger: #f0a49b;
  --bench-success-bg: #203c30;
  --bench-warning-bg: #3c3522;
  --bench-danger-bg: #412b2b;
}
html:root[data-theme], html:root[data-theme] body {
  --aw-bg: var(--bench-paper); --aw-surface: var(--bench-sheet);
  --aw-surface-2: var(--bench-soft); --aw-surface-3: var(--bench-soft);
  --aw-text: var(--bench-ink); --aw-muted: var(--bench-muted);
  --aw-border: var(--bench-line); --aw-input: var(--bench-sheet);
  --tl-bg: var(--bench-paper); --tl-panel: var(--bench-sheet);
  --tl-text: var(--bench-ink); --tl-muted: var(--bench-muted);
  --tl-line: var(--bench-line); --tl-cyan: var(--bench-accent);
  --ink: var(--bench-ink); --muted: var(--bench-muted);
  --line: var(--bench-line); --card: var(--bench-sheet); --surface: var(--bench-paper);
  --blue: var(--bench-accent); --blue-soft: var(--bench-soft);
  --green-soft: var(--bench-success-bg); --amber-soft: var(--bench-warning-bg);
  --red-soft: var(--bench-danger-bg); --tl-red: var(--bench-danger);
  color: var(--bench-ink) !important;
}
/* Drawer and search use exactly the same surfaces in both themes. */
html:root[data-theme] body .tl-global-menu {
  background: var(--bench-sheet) !important;
  color: var(--bench-ink) !important;
  border-color: var(--bench-line) !important;
}
html:root[data-theme] body :is(.tl-menu-wordmark,.tl-menu-overview,.tl-menu-tool,.tl-menu-bottom-link,.tl-menu-close) {
  color: var(--bench-ink) !important;
  background: transparent !important;
  border-color: var(--bench-line) !important;
}
html:root[data-theme] body :is(.tl-menu-group-title,.tl-menu-wordmark strong,.tl-menu-tool.current,.tl-menu-bottom-link.current) { color: var(--bench-accent) !important; }
html:root[data-theme] body :is(.tl-menu-motto,.tl-search-empty,.tl-search-results small) { color: var(--bench-muted) !important; }
html:root[data-theme] body :is(.tl-menu-group,.tl-menu-separator) { border-color: var(--bench-line) !important; }
html:root[data-theme] body .tl-menu-separator { background: var(--bench-line) !important; }
html:root[data-theme] body :is(.tl-menu-tool,.tl-menu-overview,.tl-menu-bottom-link):is(:hover,.current) { background: var(--bench-soft) !important; border-color: var(--bench-accent) !important; }
html:root[data-theme] body :is(.tl-search-results,.tl-global-search) { background: var(--bench-sheet) !important; border-color: var(--bench-line) !important; }
html:root[data-theme] body .tl-global-header .tl-search { border: 0 !important; }
/* Surfaces retain their layout while sharing their visual hierarchy. */
html:root[data-theme] body :is(.card,.tool-card,.overview-category,.overview-tool-card,.report-modal,dialog,.legal-card,.vision-card,.principle,.step,.documentation-placeholder) {
  background: var(--bench-sheet) !important;
  color: var(--bench-ink) !important;
  border-color: var(--bench-line) !important;
  box-shadow: 0 4px 16px #102d2610 !important;
}
html:root[data-theme] body :is(.card-header,.overview-category-header,.report-modal-header) {
  background: var(--bench-soft) !important;
  color: var(--bench-ink) !important;
  border-color: var(--bench-line) !important;
}
html:root[data-theme] body :is(.card-header,.overview-category-header):hover { background: var(--bench-soft) !important; }
html:root[data-theme] body :is(.card-title,.overview-category-title strong,.report-modal-title,.legal-card h2,.principle h3,.step h3,.section-load-heading h3,.visual-card h3,.method-box h3) { color: var(--bench-ink) !important; }
html:root[data-theme] body :is(.card-icon,.chevron,.card-chevron,.overview-category-icon,.overview-chevron,.overview-tool-icon,.documentation-placeholder-icon,.about-icon,.principle-index,.step-tag) {
  color: var(--bench-accent) !important; background: var(--bench-soft) !important; border-color: var(--bench-line) !important;
}
html:root[data-theme] body :is(.summary-item,.result-summary-item,.summary-card,.summary-box,.summary-item,.result-box,.section-stress-metric,.section-load,.section-stress-plot,.method-box,.assumption-box,.comparison-box,.visual-card,.stability-visual,.airfoil-visual,.llt-visual,.plot-wrap,.notch-wrap,.drone-wrap,.chart-wrap,.util-card,.report-settings,.preview-wrap) {
  background: var(--bench-sheet) !important; color: var(--bench-ink) !important;
  border-color: var(--bench-line) !important; box-shadow: none !important;
}
html:root[data-theme] body :is(.input-section,.result-group,.result-table-wrap,.section-properties) { background: transparent !important; border-color: var(--bench-line) !important; }
html:root[data-theme] body :is(.formula,.method-formula,.engineering-note,.disclaimer,.method-disclaimer) { background: var(--bench-soft) !important; color: var(--bench-ink) !important; border-color: var(--bench-line) !important; }
html:root[data-theme] body :is(.summary-value,.result-summary-value,.result-value) { color: var(--bench-accent) !important; }
html:root[data-theme] body :is(.card-kicker,.card-subtitle,.field-note,.form-note,.visual-note,.summary-label,.result-summary-label,.result-label,.comparison-line,.legend,.cp-legend,.method-box p,.method-box li,.assumption-box p,.report-modal-subtitle) { color: var(--bench-muted) !important; }
html:root[data-theme] body :is(.input-section h3,.result-group-heading h3) { color: var(--bench-ink) !important; }
/* All editable controls and all action variants. */
html:root[data-theme] body :is(input,select,textarea) {
  background: var(--bench-sheet) !important; color: var(--bench-ink) !important;
  border-color: var(--bench-line) !important; accent-color: var(--bench-action);
  box-shadow: none !important;
}
html:root[data-theme] body input::placeholder,html:root[data-theme] body textarea::placeholder { color: var(--bench-muted) !important; }
html:root[data-theme] body label { color: var(--bench-ink) !important; }
html:root[data-theme] body :is(input,select,textarea):disabled { background: var(--bench-soft) !important; opacity: .65 !important; }
html:root[data-theme] body :is(.section-actions button,.section-point-entry button,.section-edit-table button,.secondary-button,.reset-button,.modal-secondary,.toggle-button,.view-button,.report-button,.btn-secondary) {
  background: var(--bench-sheet) !important; color: var(--bench-ink) !important; border: 1px solid var(--bench-line) !important; box-shadow: none !important;
}
html:root[data-theme] body :is(.primary-button,.calculate-button,.modal-primary,.btn-primary,#calculateButton,#sectionCalculate,#beamCalculate) {
  background: var(--bench-action) !important; color: var(--bench-on-action) !important; border: 1px solid var(--bench-action) !important; box-shadow: none !important;
}
html:root[data-theme] body button[aria-pressed="true"] { background: var(--bench-soft) !important; color: var(--bench-accent) !important; border-color: var(--bench-accent) !important; box-shadow: inset 0 0 0 1px var(--bench-accent) !important; }
html:root[data-theme] body :is(button,a):focus-visible { outline-color: var(--bench-accent) !important; }
html:root[data-theme] body :is(table,td) { background: transparent !important; color: var(--bench-ink) !important; border-color: var(--bench-line) !important; }
html:root[data-theme] body th { background: var(--bench-soft) !important; color: var(--bench-muted) !important; border-color: var(--bench-line) !important; }
/* Informational pages and catalog share the workbench rather than a separate blue theme. */
html:root[data-theme] body :is(.tl-standard-page-heading,.tools-overview-heading,.tl-about-vision,.section,.about-me,.quote) { background: transparent !important; color: var(--bench-ink) !important; border-color: var(--bench-line) !important; }
html:root[data-theme] body :is(.tl-standard-page-heading h1,.tools-overview-heading h1,.tl-about-vision h1,.tl-about-vision h2,.section h2,.about-me h2,.documentation-placeholder h2) { color: var(--bench-ink) !important; }
html:root[data-theme] body :is(.tl-standard-page-heading p,.tools-overview-heading p,.tl-about-vision p,.section p,.about-me p,.legal-card p,.legal-card li,.documentation-placeholder p,.step p,.principle p) { color: var(--bench-muted) !important; }
html:root[data-theme] body :is(.eyebrow,.overview-category-title small,.vision-mark,.tl-standard-breadcrumb a,.tl-standard-breadcrumb,.tl-overview-breadcrumb) { color: var(--bench-accent) !important; }
html:root[data-theme] body .overview-tool-card::before { background: var(--bench-accent) !important; }
html:root[data-theme] body a.overview-tool-card:hover { border-color: var(--bench-accent) !important; }
html:root[data-theme] body :is(.overview-status,.status-chip.good,.warning.ok) { color: var(--bench-success) !important; background: var(--bench-success-bg) !important; }
html:root[data-theme] body .overview-status.is-soon { color: var(--bench-muted) !important; background: var(--bench-soft) !important; }
html:root[data-theme] body :is(.warning,.status-chip.moderate) { color: var(--bench-warning) !important; background: var(--bench-warning-bg) !important; border-color: var(--bench-warning) !important; }
html:root[data-theme] body :is(.error-message,.status-chip.high) { color: var(--bench-danger) !important; background: var(--bench-danger-bg) !important; border-color: var(--bench-danger) !important; }
html:root[data-theme] body dialog::backdrop,html:root[data-theme] body .modal-backdrop { background: #10262399 !important; }
/* Printed reports keep paper and ink regardless of the application theme. */
@media print { html:root[data-theme] body { --bench-paper:#fff; --bench-sheet:#fff; --bench-ink:#172b27; --bench-muted:#475d54; --bench-line:#ccd4ce; --bench-soft:#f0f3ef; --bench-accent:#873e26; } }
html:root[data-theme],html:root[data-theme] body {
  --surface-2:var(--bench-soft); --green:var(--bench-success); --red:var(--bench-danger); --blue-dark:var(--bench-accent);
}
html:root[data-theme] body .tl-about-vision { min-height:0; }
html:root[data-theme] body .tl-about-vision::before,html:root[data-theme] body .tl-about-vision::after { display:none!important; }
html:root[data-theme] body :is(.mode-option label,.method-option,.viz-toggle,.close-button,.method-badge) { background:var(--bench-soft)!important;color:var(--bench-ink)!important;border-color:var(--bench-line)!important; }
html:root[data-theme] body :is(.mode-option label strong,.util-head,.visual-title) { color:var(--bench-ink)!important; }
html:root[data-theme] body :is(.mode-option label span,.assessment-detail) { color:var(--bench-muted)!important; }
html:root[data-theme] body .mode-option input:checked+label,html:root[data-theme] body .viz-toggle.active { border-color:var(--bench-accent)!important;background:var(--bench-soft)!important;box-shadow:inset 0 0 0 1px var(--bench-accent)!important; }
html:root[data-theme] body .mode-option input:focus-visible+label { outline:3px solid var(--bench-accent);outline-offset:3px; }
html:root[data-theme] body .assessment-banner.pass { background:var(--bench-success-bg)!important;border-color:var(--bench-success)!important; }
html:root[data-theme] body .assessment-banner.fail { background:var(--bench-danger-bg)!important;border-color:var(--bench-danger)!important; }
html:root[data-theme] body.tl-tool-page :is(.primary-button,.calculate-button,.modal-primary,.btn-primary,#calculateButton,#sectionCalculate,#beamCalculate) { background:var(--bench-action)!important;color:var(--bench-on-action)!important;border-color:var(--bench-action)!important; }
html:root[data-theme] body .method-option label { background:var(--bench-soft)!important;border-color:var(--bench-line)!important; }
html:root[data-theme] body .method-option label strong { color:var(--bench-ink)!important; }
html:root[data-theme] body .method-option label span { color:var(--bench-muted)!important; }
html:root[data-theme] body .method-option input:checked+label { border-color:var(--bench-accent)!important;box-shadow:inset 0 0 0 1px var(--bench-accent)!important; }
html:root[data-theme] body .method-option input:focus-visible+label { outline:3px solid var(--bench-accent);outline-offset:3px; }
html:root[data-theme] body .report-page {
  --bench-sheet:#fff; --bench-ink:#172b27; --bench-muted:#475d54; --bench-line:#ccd4ce; --bench-soft:#f0f3ef; --bench-accent:#873e26;
  background:#fff!important;color:#172b27!important;
}
/* Plot geometry and chart chrome share semantic colors; stress scales stay quantitative. */
html:root[data-theme] {
  --plot-primary:#29685b; --plot-accent:#aa4d2d; --plot-muted:#64766c;
  --plot-grid:#d9ddd3; --plot-surface:#fcfaf5; --plot-soft:#e3ece4;
}
html:root[data-theme="dark"] {
  --plot-primary:#a6d3bc; --plot-accent:#eda982; --plot-muted:#a9bcb4;
  --plot-grid:#344749; --plot-surface:#192a2c; --plot-soft:#223e35;
}
html:root[data-theme] body :is(.plot-line,.distribution-line,.bound-vortex,.wing-planform) { stroke:var(--plot-primary)!important; }
html:root[data-theme] body .plot-point { fill:var(--plot-primary)!important; }
html:root[data-theme] body :is(.plot-axis,.plot-camber,.wake-line,.station-line) { stroke:var(--plot-muted)!important; }
html:root[data-theme] body .plot-grid-line { stroke:var(--plot-grid)!important; }
html:root[data-theme] body .plot-label { fill:var(--plot-muted)!important; }
html:root[data-theme] body .wing-planform { fill:var(--plot-soft)!important; }
