.smoke-workbench { max-width: 1120px; margin: 2rem auto; color: var(--text-color, #333); font-family: var(--bs-body-font-family, Arial, sans-serif); }
.smoke-workbench h1 { font-size: 2.2rem; margin: .3rem 0 1rem; }
.smoke-workbench h2 { font-size: 1.4rem; margin-top: 2rem; }
.smoke-kicker { color: #925014; font-weight: bold; }
.smoke-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,260px),1fr)); gap: 1rem 1.5rem; }
.smoke-workbench label { display: block; font-size: 1rem; line-height: 1.5; }
.smoke-workbench input:not([type=checkbox]), .smoke-workbench select, .smoke-workbench textarea { display: block; width: 100%; box-sizing: border-box; padding: .6rem; margin: .3rem 0 .6rem; border: 1px solid #aaa; border-radius: 4px; background: white; color: #222; font: inherit; }
.smoke-workbench textarea { min-height: 5rem; }
.smoke-workbench fieldset { margin: 1.5rem 0; padding: 1.2rem; border: 1px solid #ccc; border-radius: 5px; }
.smoke-workbench legend { width: auto; font-size: 1.2rem; font-weight: bold; padding: 0 .4rem; }
.smoke-flags { margin: 1rem 0; }
.smoke-flags label { margin: .5rem 0; }
.smoke-workbench input[type=checkbox] { margin-right: .4rem; width: 1.1rem; height: 1.1rem; }
.smoke-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; padding: 1rem 0; }
.smoke-import { max-width: 300px; }
/* Low specificity lets the site's DETACT action styles govern the integrated form.
   The same values keep the isolated preview usable without the corporate stylesheet. */
:where(.smoke-workbench) button { cursor: pointer; font: inherit; font-size: .875rem; line-height: 1.25; display: inline-flex; align-items: center; justify-content: center; gap: .375rem; box-sizing: border-box; min-height: 36px; max-width: 100%; white-space: normal; text-align: center; border: 1px solid var(--primary-dark, darkorange); padding: .375rem .75rem; border-radius: 0; background: #fff; color: var(--secondary-color, #536574); }
:where(.smoke-workbench) button:hover { background: var(--primary-color, orange); color: #1f2d3d; }
@media (any-pointer: coarse), (max-width: 575px) { :where(.smoke-workbench) button { min-height: 44px; } }
.smoke-workbench :focus-visible { outline: 3px solid #8a4800; outline-offset: 3px; }
.smoke-calculate { margin: 1rem 0; }
.smoke-errors,.smoke-workbench .validation-message,.smoke-workbench .validation-errors { color: #a32618; }
.smoke-status { border-left: 4px solid #cf7417; padding: .7rem 1rem; background: #fff3e6; }
.smoke-table-scroll { overflow-x: auto; margin: 1rem 0; }
.smoke-workbench table { width: 100%; border-collapse: collapse; min-width: 650px; font-size: 1rem; }
.smoke-workbench caption { text-align: left; padding: .7rem 0; }
.smoke-workbench td,.smoke-workbench th { border-bottom: 1px solid #ddd; padding: .65rem; text-align: left; }
.smoke-workbench td:nth-child(2),.smoke-workbench td:nth-child(3) { text-align: right; font-variant-numeric: tabular-nums; }
.smoke-workbench thead { background: #eee; }
.smoke-workbench summary { cursor: pointer; padding: .75rem 0; }
.smoke-workbench li { margin: .4rem 0; }
.smoke-results { margin-bottom: 3rem; }
.smoke-workbench dialog { width: min(640px, calc(100vw - 3rem)); max-height: 85vh; overflow: auto; border: 1px solid #aaa; border-radius: 6px; padding: 1.5rem; color: #333; }
.smoke-workbench dialog::backdrop { background: rgb(0 0 0 / 45%); }
.smoke-workbench dialog h2 { margin-top: 0; }
.smoke-workbench small { display: block; color: #555; }
.smoke-project-summary { border-left: 3px solid #cf7417; padding-left: 1rem; overflow-wrap: anywhere; }
.smoke-outcomes, .smoke-methods { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,230px),1fr)); gap: 1rem; margin: 1.3rem 0; }
.smoke-outcome, .smoke-method { padding: 1.2rem; border: 1px solid #ddd; border-radius: 6px; background: #faf9f7; }
.smoke-outcome h3, .smoke-method h3 { font-size: 1rem; font-weight: bold; margin: 0 0 .8rem; }
.smoke-outcome p { margin: .4rem 0; }
.smoke-outcome strong { font-size: 2rem; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.smoke-selected { border: 2px solid #a65a13; background: #fff5e9; }
.smoke-height-diagram { position: relative; display: flex; flex-direction: column; height: 240px; margin: 1.7rem 0 2.5rem; border: solid #555; border-width: 4px 2px 2px; }
.smoke-layer { flex-shrink: 0; min-height: 24px; display: flex; align-items: center; justify-content: center; color: #fff; background: #64615e; }
.smoke-clear { flex: 1; display: flex; align-items: center; justify-content: center; background: #f4f0e9; }
.smoke-height-diagram > small { position: absolute; top: 100%; margin-top: .35rem; }
.smoke-workbench button:disabled { opacity: .65; cursor: wait; }
