:root {
  color-scheme: light;
  --sidebar: #17222d;
  --sidebar-deep: #111a23;
  --topbar: #101822;
  --page: #f2f4f6;
  --panel: #ffffff;
  --panel-soft: #f7f8f9;
  --line: #dce1e5;
  --line-strong: #c8cfd5;
  --text: #17212b;
  --muted: #6c7781;
  --red: #e21b23;
  --red-dark: #c9141b;
  --green: #159447;
  --blue: #17639b;
  --amber: #d89013;
  --shadow: 0 2px 10px rgba(25, 39, 52, .08);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { min-width: 320px; max-width: 100%; overflow-x: hidden; }
body { max-width: 100%; margin: 0; min-height: 100vh; overflow-x: hidden; color: var(--text); background: var(--page); }
body.mobile-menu-open { overflow: hidden; }
button, input, select, textarea { min-width: 0; max-width: 100%; font: inherit; }
button { cursor: pointer; }
textarea { resize: vertical; }
a { color: var(--red-dark); }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: .25rem; font-size: clamp(1.55rem, 2.4vw, 2.15rem); letter-spacing: -.035em; }
h2 { margin-bottom: .3rem; letter-spacing: -.02em; }
.hidden { display: none !important; }
.muted { color: var(--muted); }
.eyebrow { margin: 0 0 .35rem; color: var(--red); font-size: .65rem; font-weight: 800; letter-spacing: .13em; }

/* Login */
.login-screen { min-height: 100vh; display: grid; place-items: center; padding: 2rem; background: linear-gradient(135deg, #101923, #1d2b38); }
.login-card { width: min(430px, 100%); padding: 2.2rem; background: #fff; border: 1px solid rgba(255,255,255,.3); border-radius: 10px; box-shadow: 0 25px 80px rgba(0,0,0,.28); }
.login-card h1 { font-size: 1.8rem; }
.brand-mark { width: 92px; height: 52px; display: grid; place-items: center; margin-bottom: 1.4rem; color: #fff; background: var(--sidebar); border-radius: 4px; font-size: 1.25rem; font-weight: 900; letter-spacing: .03em; }

label { display: grid; gap: .38rem; margin: .75rem 0; color: var(--muted); font-size: .75rem; }
input, select, textarea { width: 100%; padding: .7rem .78rem; color: var(--text); background: #fff; border: 1px solid var(--line-strong); border-radius: 4px; outline: none; }
input:focus, select:focus, textarea:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(226,27,35,.09); }
input[type="checkbox"] { width: 1rem; height: 1rem; padding: 0; accent-color: var(--red); }
label.check { display: flex; align-items: center; gap: .5rem; color: var(--text); }
.form-error { min-height: 1.2rem; margin: .6rem 0 0; color: var(--red); font-size: .75rem; }

/* Application shell */
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 178px minmax(0, 1fr); }
.workspace, main, .view, .panel { min-width: 0; }
.sidebar { min-height: 100vh; position: sticky; top: 0; z-index: 50; display: flex; flex-direction: column; color: #fff; background: var(--sidebar); border-right: 1px solid #253441; }
.sidebar-brand { height: 56px; display: flex; align-items: center; padding: 0 22px; background: var(--sidebar-deep); border-bottom: 1px solid #2a3742; font-size: 1.8rem; font-weight: 900; letter-spacing: -.04em; }
.main-nav { display: flex; flex-direction: column; flex: 1; padding: 10px 0; }
.nav-button { min-height: 54px; display: flex; align-items: center; gap: 14px; padding: 0 18px; color: #eef2f5; background: transparent; border: 0; border-left: 4px solid transparent; text-align: left; font-size: .92rem; }
.nav-button:hover { background: rgba(255,255,255,.055); }
.nav-button.active { background: var(--red); border-left-color: #ff7479; color: #fff; }
.nav-icon { width: 21px; text-align: center; font-size: 1.25rem; line-height: 1; }
.nav-divider { margin: 8px 16px 4px; padding-top: 9px; color: #7f909d; border-top: 1px solid #2a3945; font-size: .57rem; letter-spacing: .12em; }
.sidebar-collapse { height: 58px; color: #dce4e9; background: transparent; border: 0; border-top: 1px solid #293742; font-size: 1.3rem; }
.sidebar-backdrop { display: none; }
.app-shell.sidebar-collapsed { grid-template-columns: 64px minmax(0,1fr); }
.sidebar-collapsed .sidebar-brand { justify-content: center; padding: 0; font-size: 0; }
.sidebar-collapsed .sidebar-brand::after { content: "33"; font-size: 1.1rem; }
.sidebar-collapsed .nav-button { justify-content: center; padding: 0; }
.sidebar-collapsed .nav-button > span:last-child, .sidebar-collapsed .nav-divider { display: none; }

.topbar { min-height: 56px; display: grid; grid-template-columns: minmax(240px,1fr) auto minmax(250px,1fr); align-items: center; position: sticky; top: 0; z-index: 40; color: #fff; background: var(--topbar); border-bottom: 1px solid #2b3540; }
.topbar-title { display: flex; align-items: center; gap: 18px; padding: 0 18px; font-size: 1.12rem; }
.menu-button, .top-icon { color: #eef2f4; background: transparent; border: 0; }
.menu-button { padding: .4rem; font-size: 1.2rem; }
.topbar-status { display: flex; align-items: center; gap: 12px; color: #e3e8eb; font-size: .75rem; }
.top-divider { width: 1px; height: 26px; background: #39434d; }
.status-dot { width: 8px; height: 8px; flex: 0 0 auto; background: #1db35a; border-radius: 50%; box-shadow: 0 0 8px rgba(29,179,90,.6); }
.status-dot.off { background: var(--red); box-shadow: 0 0 8px rgba(226,27,35,.6); }
.user-menu { height: 56px; display: flex; align-items: center; justify-content: flex-end; gap: 6px; padding-right: 12px; }
.top-icon { min-width: 42px; height: 42px; padding: 0 10px; border-left: 1px solid #2a3641; font-size: 1.15rem; }
.user-label { max-width: 140px; overflow: hidden; color: #dbe2e6; text-overflow: ellipsis; white-space: nowrap; font-size: .68rem; }
.notification { min-width: 48px; height: 42px; display: inline-flex; align-items: center; justify-content: center; position: relative; border-left: 1px solid #2a3641; font-size: 1.2rem; }
.notification b { min-width: 18px; height: 18px; display: grid; place-items: center; position: absolute; top: 1px; right: 1px; color: #fff; background: var(--red); border-radius: 50%; font-size: .62rem; }

main { width: 100%; max-width: 100%; padding: 13px; }
.view { display: none; }
.view.active { display: block; animation: view-in .15s ease-out; }
@keyframes view-in { from { opacity: 0; transform: translateY(3px); } }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin: 8px 2px 18px; }
.page-heading p.muted { margin-bottom: 0; }

/* Reference overview */
.summary-strip { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-bottom: 12px; }
.summary-card { min-height: 45px; display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 10px; padding: 8px 16px; background: #fff; border: 1px solid var(--line); border-radius: 6px; box-shadow: 0 1px 3px rgba(20,35,48,.04); }
.summary-card span { font-size: .82rem; }
.summary-card strong { font-size: 1.45rem; }
.summary-icon { font-size: 1.25rem !important; }
.summary-card.running .summary-icon, .summary-card.running strong { color: var(--green); }
.summary-card.waiting .summary-icon, .summary-card.waiting strong { color: var(--blue); }
.summary-card.warning .summary-icon, .summary-card.warning strong { color: var(--amber); }
.sites { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); background: #f7f8f9; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
.site-column { min-width: 0; padding: 0 7px 7px; border-right: 1px solid var(--line); }
.site-column:last-child { border-right: 0; }
.site-heading { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.site-heading > div { display: flex; align-items: center; gap: 8px; }
.site-heading h2 { margin: 0; font-size: .88rem; }
.site-heading > span { color: var(--muted); font-size: .64rem; }
.factory-icon { font-size: 1rem; }
.furnace-stack { display: grid; gap: 8px; }
.furnace-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(360px,1fr)); gap: 10px; }
.furnace-card { min-width: 0; position: relative; overflow: hidden; background: #fff; border: 1px solid var(--line-strong); border-radius: 5px; box-shadow: 0 1px 3px rgba(30,44,55,.04); transition: border-color .15s, box-shadow .15s; }
.furnace-card:hover, .furnace-card.selected { border-color: #9ba6af; box-shadow: var(--shadow); }
.furnace-card.alert { border-color: #e0b1b3; }
.card-top { min-height: 35px; display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: 6px 9px 4px; }
.card-name { font-size: .78rem; font-weight: 800; }
.card-unit { color: #8b949c; font-size: .57rem; }
.badge { display: inline-flex; align-items: center; gap: .35rem; padding: .2rem .42rem; border-radius: 20px; font-size: .61rem; font-weight: 700; }
.badge::before { width: 7px; height: 7px; content: ""; background: currentColor; border-radius: 50%; }
.badge.running { color: var(--green); }.badge.stopped { color: var(--blue); }.badge.offline,.badge.fault { color: var(--red); }
.furnace-card-body { min-height: 116px; display: grid; grid-template-columns: minmax(150px,1.08fr) minmax(135px,.92fr); border-bottom: 1px solid var(--line); }
.temperature-side { min-width: 0; padding: 2px 9px 5px; border-right: 1px solid var(--line); }
.temperature-block { display: flex; align-items: baseline; gap: 4px; margin: 0; color: var(--red-dark); }
.temperature-block.empty { color: #8a949c; }
.temperature-value { font-size: clamp(2.1rem,3.6vw,3rem); font-weight: 560; line-height: 1; letter-spacing: -.055em; font-variant-numeric: tabular-nums; }
.temperature-unit { font-size: 1.25rem; }
.setpoint-line { display: flex; align-items: center; justify-content: space-between; margin-top: 1px; color: var(--muted); font-size: .57rem; }
.setpoint-line strong { color: var(--text); font-size: .65rem; }
.mini-trend { width: 100%; height: 35px; display: block; margin-top: 3px; }
.mini-trend polyline { fill: none; stroke: var(--red-dark); stroke-width: 1.8; vector-effect: non-scaling-stroke; }
.mini-trend.offline polyline, .mini-trend.fault polyline { stroke: #9ba5ad; }
.mini-trend.empty { display: grid; place-items: center; color: #9da5ab; border-bottom: 1px dashed #d5dadd; font-size: .56rem; }
.batch-details { display: grid; grid-template-columns: 60px 1fr; align-content: center; gap: 5px 6px; margin: 0; padding: 7px 9px; font-size: .59rem; }
.batch-details dt { color: var(--muted); }.batch-details dd { min-width: 0; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.card-progress { min-height: 34px; display: grid; grid-template-columns: auto minmax(45px,1fr) auto auto auto auto; align-items: center; gap: 7px; padding: 5px 9px; color: var(--muted); font-size: .57rem; }
.card-progress strong { color: var(--text); font-size: .64rem; }
.power-track { height: 4px; overflow: hidden; background: #d9dde0; border-radius: 3px; }
.power-track i { display: block; height: 100%; background: var(--red); }
.deviation-label { padding-left: 7px; border-left: 1px solid var(--line); }
.control-button { padding: .28rem .45rem; color: #fff; background: var(--sidebar); border: 0; border-radius: 3px; font-size: .58rem; }
.pending-ribbon { position: absolute; inset: 0 0 auto; z-index: 2; padding: 2px 6px; color: #fff; background: rgba(23,99,155,.9); text-align: center; font-size: .55rem; }

.dashboard-lower { display: grid; grid-template-columns: minmax(0,2.1fr) minmax(300px,.9fr); gap: 12px; margin-top: 12px; }
.panel { margin-top: 12px; padding: 14px; background: #fff; border: 1px solid var(--line); border-radius: 6px; box-shadow: 0 1px 3px rgba(20,35,48,.03); }
.dashboard-lower .panel { margin-top: 0; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.panel-heading h2 { margin: 0; font-size: .91rem; }
.panel-subtitle { color: var(--muted); font-size: .62rem; }
.range-picker { display: flex; padding: 2px; background: #f1f3f4; border: 1px solid var(--line); border-radius: 4px; }
.range-picker button { padding: .3rem .48rem; color: var(--muted); background: transparent; border: 0; border-radius: 3px; font-size: .61rem; }
.range-picker button.active { color: #fff; background: var(--red); }
.chart-legend { display: flex; justify-content: flex-end; gap: 1rem; margin: 6px 0 0; color: var(--muted); font-size: .61rem; }
.legend-line { display: inline-block; width: 18px; height: 2px; margin-right: .3rem; vertical-align: middle; }
.legend-line.temperature { background: var(--red); }.legend-line.setpoint { background: var(--blue); }
.chart-wrap { min-height: 260px; position: relative; }
#history-chart { width: 100%; height: 260px; display: block; }
.chart-empty { position: absolute; inset: 0; display: grid; place-items: center; color: var(--muted); font-size: .72rem; }
.event-list { margin-top: 8px; border-top: 1px solid var(--line); }
.event-row { min-height: 34px; display: grid; grid-template-columns: 22px 44px 1fr; align-items: center; gap: 5px; border-bottom: 1px solid var(--line); font-size: .66rem; }
.event-row time { color: var(--muted); }.event-row.warning { color: #a86800; }.event-row.info .event-symbol { color: var(--blue); }
.event-more { margin-top: 9px; padding: 0; color: var(--red-dark); background: transparent; border: 0; border-bottom: 1px solid currentColor; font-size: .64rem; }
.empty-state.compact { padding: 1rem; }

/* Secondary views */
.furnace-directory, .directory-site { display: grid; gap: 10px; }
.directory-site { padding: 0 10px 10px; background: #f7f8f9; border: 1px solid var(--line); border-radius: 6px; }
.report-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.report-grid article { padding: 17px; background: #fff; border: 1px solid var(--line); border-radius: 6px; }
.report-grid span, .report-grid small { display: block; color: var(--muted); font-size: .68rem; }
.report-grid strong { display: block; margin: 7px 0; color: var(--red-dark); font-size: 2rem; }
.readiness-list { margin-top: 10px; border-top: 1px solid var(--line); }
.readiness-list > div { display: grid; grid-template-columns: 1fr auto 10px; align-items: center; gap: 12px; padding: 11px 4px; border-bottom: 1px solid var(--line); font-size: .73rem; }
.readiness-list i { width: 9px; height: 9px; background: var(--green); border-radius: 50%; }.readiness-list i.warn { background: var(--amber); }
.metric-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 8px; margin-bottom: 10px; }
.metric-grid article { padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: 6px; }
.metric-grid span { display: block; color: var(--muted); font-size: .64rem; }.metric-grid strong { display: block; margin-top: 3px; font-size: 1.35rem; }
.toolbar { display: grid; grid-template-columns: minmax(230px,2fr) minmax(150px,1fr); gap: 8px; margin-bottom: 12px; }
.toolbar.standalone { width: min(620px,100%); margin: 12px 0; }
.notice { padding: .72rem .85rem; overflow-wrap: anywhere; color: #37515e; background: #eff7f8; border: 1px solid #c8e2e5; border-left: 3px solid var(--blue); border-radius: 4px; font-size: .72rem; line-height: 1.5; }
.notice.warning { color: #7c5715; background: #fff9ec; border-color: #eed8a7; border-left-color: var(--amber); }
.small-note { margin: .8rem 0; }
.empty-state { padding: 2.2rem; text-align: center; color: var(--muted); }

.button { width: auto; padding: .65rem .9rem; color: var(--text); background: #eef1f3; border: 1px solid var(--line-strong); border-radius: 4px; font-weight: 700; }
.button.primary { color: #fff; background: var(--red); border-color: var(--red); }
.button.secondary { background: #eef1f3; }.button.start { color: #fff; background: var(--green); }.button.stop { color: #fff; background: var(--red); }
.button.small { padding: .35rem .5rem; font-size: .67rem; }.button.ghost { color: var(--muted); background: transparent; }
.button.full { width: 100%; }.button:disabled { opacity: .35; cursor: not-allowed; }

.table-wrap { width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; }
table { width: 100%; border-collapse: collapse; font-size: .71rem; }
th { color: var(--muted); background: #f7f8f9; text-align: left; font-weight: 650; }
th, td { min-width: 0; padding: .68rem; overflow-wrap: anywhere; border-bottom: 1px solid var(--line); vertical-align: middle; }
tbody tr:hover { background: #fafbfb; }
.cell-title { display: block; color: var(--text); font-weight: 750; }.cell-sub { display: block; margin-top: .18rem; color: var(--muted); font-size: .63rem; }
.row-actions { display: flex; justify-content: flex-end; gap: .35rem; white-space: nowrap; }
.status-pill { display: inline-flex; padding: .24rem .45rem; border-radius: 20px; font-size: .61rem; font-weight: 800; }
.status-pill.draft { color: #66717a; background: #eceff1; }.status-pill.planned { color: var(--blue); background: #e9f2f8; }
.status-pill.ready,.status-pill.approved { color: var(--green); background: #e9f6ef; }.status-pill.running { color: #fff; background: var(--green); }
.status-pill.completed { color: #17643a; background: #e7f4ec; }.status-pill.failed,.status-pill.cancelled { color: var(--red); background: #fbeaec; }
.status-pill.reference { color: #8b5a00; background: #fff3d7; }
.command-status { font-weight: 800; }.command-status.completed { color: var(--green); }.command-status.failed { color: var(--red); }.command-status.queued,.command-status.dispatched { color: var(--amber); }

.reference-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(300px,1fr)); gap: 10px; }
.reference-card { display: flex; flex-direction: column; min-height: 245px; padding: 14px; background: #fff; border: 1px solid var(--line); border-radius: 6px; }
.reference-card header { display: flex; justify-content: space-between; gap: .8rem; }.reference-card h2 { margin: 0; font-size: 1.2rem; }
.reference-card .category { color: var(--red-dark); font-size: .62rem; font-weight: 750; text-transform: uppercase; }
.reference-card dl { display: grid; grid-template-columns: 90px 1fr; gap: .35rem; margin: .9rem 0; font-size: .68rem; }
.reference-card dt { color: var(--muted); }.reference-card dd { margin: 0; }
.reference-card footer { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: auto; padding-top: .7rem; border-top: 1px solid var(--line); }

/* Material catalog */
.catalog-import-badge { align-self: center; padding: .5rem .7rem; color: #17643a; background: #e9f6ef; border: 1px solid #bddfca; border-radius: 4px; font-size: .66rem; font-weight: 750; }
.catalog-import-badge.running { color: #17639b; background: #eaf4fb; border-color: #c2dcec; }.catalog-import-badge.warning,.catalog-import-badge.partial { color: #8b5a00; background: #fff7e4; border-color: #ecd39b; }
.metal-catalog-layout { display: grid; grid-template-columns: 255px minmax(0,1fr); align-items: start; gap: 12px; }
.catalog-filters { position: sticky; top: 66px; }.catalog-filters h2 { margin: 0 0 .8rem; font-size: .86rem; }.catalog-filters label { margin-top: .7rem; }
.taxonomy-summary { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: .25rem .5rem; margin-top: 1rem; padding-top: .8rem; border-top: 1px solid var(--line); }
.taxonomy-summary strong { color: var(--red-dark); font-size: 1.15rem; }.taxonomy-summary span { color: var(--muted); font-size: .64rem; }
.catalog-results { min-width: 0; }.catalog-toolbar { display: grid; grid-template-columns: minmax(260px,1fr) 135px; gap: 8px; }
.catalog-result-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 11px 2px 7px; }.catalog-result-heading strong { font-size: .73rem; }.catalog-result-heading span { color: var(--muted); font-size: .61rem; }
.catalog-table-wrap { max-height: calc(100vh - 285px); border: 1px solid var(--line); border-radius: 4px; }
.catalog-table { min-width: 740px; table-layout: fixed; }.catalog-table thead { position: sticky; top: 0; z-index: 2; }.catalog-table th:nth-child(1) { width: 94px; }.catalog-table th:nth-child(2) { width: 112px; }.catalog-table th:nth-child(3) { width: 155px; }.catalog-table th:nth-child(4) { width: 105px; }.catalog-table th:last-child { width: 30px; }
.catalog-row { cursor: pointer; outline: none; }.catalog-row:hover,.catalog-row:focus { background: #f4f8fa; }.catalog-row:focus { box-shadow: inset 3px 0 var(--blue); }
.metal-designation { display: block; color: var(--red-dark); font-size: .92rem; font-weight: 850; }.catalog-wrap-cell { white-space: normal; overflow-wrap: anywhere; }.catalog-composition-cell { overflow: hidden; color: #52606a; font-size: .63rem; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }.catalog-open-mark { color: var(--red); font-size: 1.3rem; }
.catalog-pagination { display: flex; align-items: center; justify-content: center; gap: .8rem; padding-top: 11px; }.catalog-pagination span { min-width: 110px; color: var(--muted); text-align: center; font-size: .64rem; }

.modal.catalog-modal { width: min(1180px,calc(100% - 1.5rem)); }.catalog-detail-card { padding: 0; }.catalog-detail-card > #metal-detail-content { padding: 1.3rem; }
.catalog-detail-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 0 2rem 1rem 0; border-bottom: 1px solid var(--line); }.catalog-detail-header h2 { margin: 0; color: var(--red-dark); font-size: 2rem; }.catalog-detail-header p:not(.eyebrow) { margin: .2rem 0 0; color: var(--muted); font-size: .72rem; }
.detail-source-state { display: flex; align-items: flex-end; flex-direction: column; gap: .45rem; font-size: .65rem; }.detail-source-state a { font-weight: 750; }
.catalog-detail-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin: 12px 0; }.catalog-detail-grid section { min-width: 0; padding: .7rem; background: #f6f8f9; border: 1px solid var(--line); border-radius: 4px; }.catalog-detail-grid span { display: block; margin-bottom: .25rem; color: var(--muted); font-size: .58rem; text-transform: uppercase; }.catalog-detail-grid strong { font-size: .7rem; line-height: 1.45; overflow-wrap: anywhere; }
.catalog-detail-section { margin-top: 11px; padding: 12px; border: 1px solid var(--line); border-radius: 5px; }.catalog-detail-section > h3 { margin: 0 0 .65rem; font-size: .85rem; }.catalog-prose { margin: 0; color: #45535d; font-size: .72rem; line-height: 1.65; }.section-kind { float: right; margin-top: -1.7rem; color: var(--muted); font-size: .56rem; text-transform: uppercase; }
.detail-table-wrap { max-width: 100%; border: 1px solid var(--line); border-radius: 3px; scrollbar-gutter: stable; }.detail-data-table { width: max-content; min-width: 100%; font-size: .68rem; }.detail-data-table th,.detail-data-table td { min-width: 74px; max-width: 330px; padding: .48rem .55rem; white-space: normal; overflow-wrap: anywhere; }.detail-data-table thead { position: sticky; top: 0; z-index: 1; }.detail-data-table .units-row th { color: #89939b; background: #fbfcfc; font-size: .58rem; font-weight: 500; }.detail-caution { margin: -.2rem 0 .65rem; font-size: .65rem; }
.mode-list { display: grid; gap: 8px; }
.mode-card { display: grid; grid-template-columns: minmax(230px,1.2fr) minmax(250px,1fr) minmax(260px,1.4fr) auto; gap: 1rem; align-items: center; padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: 5px; }
.mode-card h3 { margin: 0 0 .22rem; font-size: .88rem; }.mode-card .mode-metal { color: var(--red-dark); font-size: .63rem; }
.mode-values { display: flex; gap: .75rem; }.mode-values div { min-width: 70px; }.mode-values span { display: block; color: var(--muted); font-size: .56rem; text-transform: uppercase; }.mode-values strong { font-size: .74rem; }
.mode-instructions { margin: 0; color: #4e5c66; font-size: .68rem; line-height: 1.45; }.mode-actions { display: flex; align-items: center; gap: .4rem; }

.knowledge-source-card { min-width: 0; display: grid; grid-template-columns: 92px minmax(0,1fr); gap: 18px; align-items: center; padding: 18px; color: #edf2f5; background: linear-gradient(130deg,#15222d,#223542); border: 1px solid #2d414f; border-radius: 7px; box-shadow: var(--shadow); }
.knowledge-book-mark { width: 92px; height: 112px; display: grid; place-content: center; color: #fff; background: linear-gradient(145deg,#dc1f29,#a60d17); border: 1px solid rgba(255,255,255,.15); border-radius: 3px; box-shadow: 0 12px 30px rgba(0,0,0,.25); text-align: center; }.knowledge-book-mark span { font-size: 1.85rem; font-weight: 900; letter-spacing: -.08em; }.knowledge-book-mark small { margin-top: .18rem; font-size: .52rem; font-weight: 800; letter-spacing: .16em; }
.knowledge-book-copy { min-width: 0; }.knowledge-book-copy .eyebrow { color: #ff7a80; }.knowledge-book-copy h2 { margin: 0 0 .35rem; color: #fff; font-size: clamp(1.05rem,2vw,1.35rem); overflow-wrap: anywhere; }.knowledge-book-copy > p:not(.eyebrow) { max-width: 850px; margin: 0; color: #c8d2d8; font-size: .8rem; line-height: 1.58; }
.knowledge-book-meta { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }.knowledge-book-meta span { min-width: 110px; padding: .48rem .62rem; color: #b9c6ce; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: 3px; font-size: .62rem; }.knowledge-book-meta b { display: block; margin-bottom: .1rem; color: #fff; font-size: .72rem; overflow-wrap: anywhere; }
.knowledge-navigation { margin-top: 13px; }.knowledge-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 8px; }.knowledge-section-heading h2 { margin: 0; font-size: 1rem; }.knowledge-section-heading > span { color: var(--muted); font-size: .65rem; }
.knowledge-chapters { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }.knowledge-chapter { min-width: 0; min-height: 76px; display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 9px; align-items: center; padding: 10px; color: var(--text); background: #fff; border: 1px solid var(--line); border-radius: 5px; text-align: left; transition: border-color .15s,box-shadow .15s,transform .15s; }.knowledge-chapter:hover { border-color: #aab5bd; transform: translateY(-1px); }.knowledge-chapter.active { border-color: var(--red); box-shadow: inset 3px 0 var(--red); }.chapter-number { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; color: var(--red-dark); background: #fbeaec; border-radius: 50%; font-size: .7rem; font-weight: 850; }.chapter-copy { min-width: 0; }.chapter-copy b { display: block; font-size: .73rem; line-height: 1.35; overflow-wrap: anywhere; }.chapter-copy small { display: block; margin-top: .25rem; color: var(--muted); font-size: .6rem; line-height: 1.35; }
.knowledge-browser { padding: 12px; }.knowledge-toolbar { display: grid; grid-template-columns: minmax(260px,1fr) minmax(210px,310px) auto; gap: 8px; align-items: center; }.knowledge-result-count { min-width: 78px; color: var(--muted); font-size: .64rem; text-align: right; }
.knowledge-list { display: grid; gap: 13px; scroll-margin-top: 70px; }.knowledge-chapter-group { min-width: 0; }.knowledge-chapter-group > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 0 7px; padding: 8px 1px; border-bottom: 1px solid var(--line); }.knowledge-chapter-group > header > div { min-width: 0; display: flex; align-items: center; gap: 9px; }.knowledge-chapter-group > header p { margin: 0 0 .12rem; color: var(--red-dark); font-size: .55rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }.knowledge-chapter-group > header h2 { margin: 0; font-size: .91rem; }.knowledge-chapter-group > header > small { flex: 0 0 auto; color: var(--muted); font-size: .59rem; }.knowledge-articles { display: grid; gap: 7px; }
.knowledge-card { min-width: 0; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 5px; }.knowledge-card[open] { border-color: #aeb6bd; box-shadow: 0 5px 18px rgba(23,36,47,.06); }
.knowledge-card > summary { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 13px 14px; cursor: pointer; list-style: none; }.knowledge-card > summary::-webkit-details-marker { display: none; }.knowledge-card-heading { min-width: 0; }.knowledge-card-meta { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: .3rem; }.knowledge-card-meta span { padding: .15rem .35rem; color: var(--red-dark); background: #fff1f2; border-radius: 2px; font-size: .58rem; font-weight: 750; }.knowledge-card > summary h3 { margin: 0 0 .25rem; font-size: .96rem; line-height: 1.35; overflow-wrap: anywhere; }.knowledge-card > summary p { max-width: 1050px; margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.52; overflow-wrap: anywhere; }
.details-mark { display: grid; place-items: center; width: 30px; height: 30px; flex: 0 0 auto; color: var(--red); background: #fbeaec; border-radius: 50%; font-size: 1.1rem; transition: transform .15s; }.knowledge-card[open] .details-mark { transform: rotate(45deg); }
.knowledge-body { min-width: 0; padding: 0 14px 14px; border-top: 1px solid var(--line); }.knowledge-text { max-width: 1000px; padding-top: 13px; color: #35434d; font-size: .86rem; line-height: 1.72; }.knowledge-text p { margin: 0 0 .72rem; overflow-wrap: anywhere; }.knowledge-text p:last-child { margin-bottom: 0; }
.knowledge-checklist { margin-top: .85rem; padding: .85rem 1rem; background: #f3f6f8; border-left: 3px solid var(--blue); border-radius: 3px; }.knowledge-checklist h3 { margin: 0 0 .48rem; color: var(--blue); font-size: .68rem; letter-spacing: .05em; text-transform: uppercase; }.knowledge-checklist ul { margin: 0; padding-left: 1.15rem; font-size: .78rem; line-height: 1.68; }.knowledge-checklist li + li { margin-top: .12rem; }
.knowledge-body .small-note { margin-top: .8rem; font-size: .72rem; line-height: 1.55; }.knowledge-body footer { min-width: 0; display: grid; grid-template-columns: minmax(220px,.8fr) minmax(260px,1.2fr); gap: 12px; align-items: end; margin-top: .8rem; padding-top: .8rem; border-top: 1px solid var(--line); }.knowledge-source { min-width: 0; }.knowledge-source span { display: block; color: var(--muted); font-size: .56rem; text-transform: uppercase; }.knowledge-source b { display: block; margin-top: .2rem; font-size: .68rem; font-weight: 650; line-height: 1.4; overflow-wrap: anywhere; }.knowledge-body footer .mode-actions { min-width: 0; justify-content: flex-end; flex-wrap: wrap; }.knowledge-tags { min-width: 0; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px; }.knowledge-tags span { max-width: 190px; padding: .18rem .4rem; overflow: hidden; color: #596771; background: #eef2f4; border-radius: 10px; font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }

/* Dialogs */
.modal { width: min(540px,calc(100% - 1.5rem)); max-width: calc(100% - 1.5rem); max-height: calc(100dvh - 2rem); padding: 0; color: var(--text); background: transparent; border: 0; }
.modal.wide { width: min(960px,calc(100% - 1.5rem)); }.modal::backdrop { background: rgba(15,23,31,.68); backdrop-filter: blur(2px); }
.modal-card { width: 100%; max-width: 100%; max-height: calc(100dvh - 2rem); overflow: auto; overscroll-behavior: contain; position: relative; padding: 1.4rem; background: #fff; border: 1px solid var(--line); border-radius: 7px; box-shadow: 0 20px 60px rgba(0,0,0,.28); }
.modal-close { width: 40px; height: 40px; position: absolute; top: .35rem; right: .4rem; z-index: 2; display: grid; place-items: center; padding: 0; color: var(--muted); background: rgba(255,255,255,.92); border: 0; border-radius: 50%; font-size: 1.45rem; }
.form-grid { display: grid; gap: 0 .75rem; }.form-grid.two { grid-template-columns: repeat(2,1fr); }.form-grid.three { grid-template-columns: repeat(3,1fr); }
.span-2 { grid-column: span 2; }.span-3 { grid-column: span 3; }.control-actions { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: .5rem; }
.control-card > h2 { margin-bottom: .25rem; padding-right: 2.5rem; overflow-wrap: anywhere; }.control-live-state { margin: 0 0 .85rem; padding: .55rem .7rem; color: #29495f; background: #eef6fa; border-left: 3px solid var(--blue); border-radius: 3px; font-size: .72rem; font-weight: 700; line-height: 1.45; overflow-wrap: anywhere; }
.control-program-section { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; }.control-program-fields { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(220px,.65fr); gap: 10px; padding: 12px; background: #f7f9fa; border-bottom: 1px solid var(--line); }.control-program-fields label { min-width: 0; margin: 0; }.control-program-fields select { width: 100%; }.control-program-fields small { display: block; margin-top: .35rem; color: var(--muted); font-size: .58rem; font-weight: 500; line-height: 1.4; overflow-wrap: anywhere; }
.control-program-details { min-width: 0; padding: 13px; }.control-program-details.empty { padding: 24px 16px; color: #6c540b; background: #fffaf0; text-align: center; }.control-program-details.empty strong { display: block; font-size: .85rem; }.control-program-details.empty p { max-width: 670px; margin: .45rem auto 0; font-size: .68rem; line-height: 1.55; overflow-wrap: anywhere; }.control-program-details > header { min-width: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }.control-program-details > header > div { min-width: 0; }.control-program-details > header span:first-child { display: block; color: var(--red-dark); font-size: .58rem; font-weight: 800; text-transform: uppercase; }.control-program-details h3 { margin: .2rem 0 0; font-size: 1rem; line-height: 1.35; overflow-wrap: anywhere; }.control-latest-badge { flex: 0 0 auto; padding: .28rem .48rem; color: #087238; background: #e4f6eb; border-radius: 12px; font-size: .57rem; font-weight: 850; white-space: nowrap; }.control-program-description { margin: .65rem 0; color: #44535e; font-size: .72rem; line-height: 1.55; overflow-wrap: anywhere; }
.control-program-meta { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; }.control-program-meta span { min-width: 0; padding: .48rem .55rem; color: var(--muted); background: #f3f6f7; border-radius: 3px; font-size: .59rem; overflow-wrap: anywhere; }.control-program-meta b { color: var(--text); }.control-step-preview { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 6px; margin-top: 9px; }.control-step-preview article { min-width: 0; padding: .55rem; background: #fff; border: 1px solid var(--line); border-radius: 4px; }.control-step-preview article.selected { border-color: var(--red); box-shadow: inset 3px 0 var(--red); background: #fff8f8; }.control-step-preview span,.control-step-preview strong,.control-step-preview small { display: block; overflow-wrap: anywhere; }.control-step-preview span { color: var(--muted); font-size: .55rem; }.control-step-preview strong { margin-top: .2rem; font-size: .76rem; }.control-step-preview small { margin-top: .22rem; color: #586670; font-size: .55rem; line-height: 1.4; }.control-cooling { margin-top: 9px; padding: .65rem .75rem; background: #f4f7f8; border-left: 3px solid var(--blue); border-radius: 3px; }.control-cooling span { display: block; color: var(--blue); font-size: .56rem; font-weight: 850; text-transform: uppercase; }.control-cooling p { margin: .25rem 0 0; font-size: .66rem; line-height: 1.5; overflow-wrap: anywhere; }.control-card > .notice { margin-top: 10px; }.control-card .control-actions { margin-top: 10px; }
.toast { position: fixed; right: 1rem; bottom: 1rem; z-index: 100; max-width: min(440px,calc(100% - 2rem)); padding: .72rem .88rem; color: #fff; background: var(--sidebar); border-radius: 4px; box-shadow: var(--shadow); transform: translateY(150%); transition: transform .2s; }.toast.show { transform: translateY(0); }

@media (max-width: 1300px) {
  .sites { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .site-column:nth-child(2) { border-right: 0; }.site-column:nth-child(3) { grid-column: 1 / -1; border-top: 1px solid var(--line); border-right: 0; }
  .site-column:nth-child(3) .furnace-stack { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .mode-card { grid-template-columns: 1fr 1fr; }.mode-actions { justify-content: flex-end; }
  .knowledge-chapters { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 1180px) {
  .metal-catalog-layout { grid-template-columns: 1fr; }
  .catalog-filters { position: static; }
  .catalog-filters label { display: inline-flex; width: calc(50% - 6px); margin-right: 6px; }
  .taxonomy-summary { grid-template-columns: auto 1fr auto 1fr; }
  .catalog-table-wrap { max-height: none; }
}
@media (max-width: 1050px) {
  .topbar { grid-template-columns: 1fr auto; }.topbar-status { display: none; }
  .dashboard-lower { grid-template-columns: 1fr; }.report-grid { grid-template-columns: repeat(2,1fr); }
  .knowledge-chapters { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 820px) {
  .app-shell { grid-template-columns: 64px minmax(0,1fr); }
  .sidebar-brand { justify-content: center; padding: 0; font-size: 0; }.sidebar-brand::after { content: "33"; font-size: 1.1rem; }
  .nav-button { justify-content: center; padding: 0; }.nav-button > span:last-child, .nav-divider { display: none; }
  .sites { grid-template-columns: 1fr; }.site-column, .site-column:nth-child(2), .site-column:nth-child(3) { grid-column: auto; border-right: 0; border-top: 1px solid var(--line); }.site-column:first-child { border-top: 0; }
  .site-column:nth-child(3) .furnace-stack { grid-template-columns: 1fr; }
  .metric-grid { grid-template-columns: repeat(2,1fr); }.toolbar { grid-template-columns: 1fr; }.form-grid.three { grid-template-columns: repeat(2,1fr); }.form-grid.three .span-3 { grid-column: span 2; }
  .metal-catalog-layout { grid-template-columns: 1fr; }.catalog-filters { position: static; }.catalog-filters label { display: inline-flex; width: calc(50% - 6px); margin-right: 6px; }.taxonomy-summary { grid-template-columns: auto 1fr auto 1fr; }.catalog-table-wrap { max-height: none; overflow: visible; border: 0; }
  .catalog-table { display: block; min-width: 0; table-layout: auto; }.catalog-table thead { display: none; }.catalog-table tbody { display: grid; gap: 8px; }
  .catalog-table .catalog-row { display: grid; grid-template-columns: minmax(0,1fr) 26px; gap: 5px 10px; padding: 11px; background: #fff; border: 1px solid var(--line); border-radius: 5px; box-shadow: 0 1px 2px rgba(20,35,48,.04); }
  .catalog-table .catalog-row:hover,.catalog-table .catalog-row:focus { background: #f8fafb; }
  .catalog-table .catalog-row td { display: block; grid-column: 1; padding: 0; border: 0; font-size: .72rem; white-space: normal; }
  .catalog-table .catalog-row td:nth-child(2)::before { content: "Тип: "; color: var(--muted); font-size: .62rem; font-weight: 650; }
  .catalog-table .catalog-row td:nth-child(3)::before { content: "Класс: "; color: var(--muted); font-size: .62rem; font-weight: 650; }
  .catalog-table .catalog-row td:nth-child(4)::before { content: "Заменители: "; color: var(--muted); font-size: .62rem; font-weight: 650; }
  .catalog-table .catalog-row td:nth-child(5)::before { content: "Состав: "; color: var(--muted); font-size: .62rem; font-weight: 650; }
  .catalog-table .catalog-row td:last-child { grid-column: 2; grid-row: 1 / span 5; display: grid; place-items: center; }
  .catalog-composition-cell { overflow: visible; text-overflow: clip; }
}
@media (max-width: 620px) {
  .app-shell { display: block; }
  .sidebar { width: min(280px,82vw); height: 100dvh; min-height: 0; position: fixed; left: 0; overflow-y: auto; transform: translateX(-105%); transition: transform .18s; box-shadow: 12px 0 35px rgba(0,0,0,.25); }
  .sidebar.mobile-open { transform: translateX(0); }
  .sidebar-backdrop { position: fixed; inset: 0; z-index: 49; background: rgba(10,17,23,.58); border: 0; opacity: 0; pointer-events: none; transition: opacity .18s; }
  .sidebar-backdrop.visible { display: block; opacity: 1; pointer-events: auto; }
  .sidebar-brand { justify-content: flex-start; padding: 0 20px; font-size: 1.5rem; }.sidebar-brand::after { content: none; }
  .nav-button { justify-content: flex-start; padding: 0 18px; }.nav-button > span:last-child, .nav-divider { display: block; }
  .sidebar-collapse { display: none; }.topbar { grid-template-columns: minmax(0,1fr) auto; }.topbar-title { min-width: 0; gap: 7px; padding: 0 7px; }.topbar-title strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .9rem; }.user-menu { gap: 0; padding-right: 2px; }.top-icon,.notification { min-width: 40px; width: 40px; padding: 0; }.user-label, #password-button { display: none; }
  main { padding: 8px; }.summary-strip { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; }.summary-card { min-height: 47px; grid-template-columns: minmax(0,1fr) auto; gap: 4px; padding: 7px 8px; }.summary-icon { display: none; }.summary-card span { font-size: .58rem; line-height: 1.2; }.summary-card strong { font-size: 1.12rem; }
  .furnace-card-body { grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); }.temperature-side { padding-left: 8px; padding-right: 7px; }.temperature-value { font-size: clamp(1.9rem,11vw,2.55rem); }.batch-details { grid-template-columns: 55px minmax(0,1fr); padding-left: 7px; padding-right: 7px; }
  .card-progress { grid-template-columns: auto 1fr auto; }.deviation-label,.deviation { display: none; }
  .dashboard-lower { gap: 8px; margin-top: 8px; }.panel { margin-top: 8px; padding: 10px; }.chart-panel .panel-heading { align-items: stretch; flex-direction: column; }.range-picker { width: 100%; }.range-picker button { flex: 1; }.chart-wrap,#history-chart { min-height: 220px; height: 220px; }.event-row { grid-template-columns: 20px 42px minmax(0,1fr); align-items: start; padding: 8px 0; line-height: 1.4; }
  .report-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }.report-grid article { padding: 12px; }.report-grid strong { font-size: 1.55rem; }.page-heading { display: grid; gap: .8rem; margin-bottom: 12px; }.page-heading > .button { width: 100%; margin-top: 0; }.page-heading .catalog-import-badge { justify-self: start; }
  .metric-grid { gap: 6px; }.compact-metrics article:last-child { grid-column: 1 / -1; }.metric-grid article { padding: 9px; }.metric-grid strong { font-size: 1.15rem; }
  .form-grid.two,.form-grid.three { grid-template-columns: 1fr; }.span-2,.span-3,.form-grid.three .span-3 { grid-column: auto; }.control-actions { grid-template-columns: 1fr; }.control-program-fields { grid-template-columns: 1fr; }.control-program-details > header { display: grid; gap: .5rem; }.control-latest-badge { justify-self: start; }.control-program-meta { grid-template-columns: repeat(2,minmax(0,1fr)); }.control-step-preview { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .reference-grid,.furnace-grid { grid-template-columns: 1fr; }
  .mode-card { grid-template-columns: 1fr; gap: .75rem; }.mode-values { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .45rem; }.mode-values div { min-width: 0; }.mode-actions { justify-content: flex-start; flex-wrap: wrap; }
  .knowledge-source-card { grid-template-columns: 72px minmax(0,1fr); gap: 12px; padding: 12px; }.knowledge-book-mark { width: 72px; height: 96px; }.knowledge-book-mark span { font-size: 1.5rem; }.knowledge-book-meta { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }.knowledge-book-meta span { min-width: 0; }.knowledge-section-heading { align-items: flex-start; flex-direction: column; gap: .2rem; }.knowledge-chapters { grid-template-columns: 1fr; }.knowledge-chapter { min-height: 68px; }.knowledge-browser { padding: 8px; }.knowledge-toolbar { grid-template-columns: 1fr; }.knowledge-result-count { text-align: left; }.knowledge-chapter-group > header { align-items: flex-start; }.knowledge-chapter-group > header > small { padding-top: .4rem; }.knowledge-card > summary { align-items: flex-start; padding: 11px; }.knowledge-body { padding: 0 11px 11px; }.knowledge-text { font-size: .875rem; line-height: 1.68; }.knowledge-body footer { grid-template-columns: 1fr; align-items: flex-start; }.knowledge-body footer .mode-actions,.knowledge-tags { justify-content: flex-start; }
  .catalog-import-badge { display: inline-block; margin-top: 0; }.catalog-toolbar { grid-template-columns: 1fr; }.catalog-result-heading span { display: none; }.catalog-filters label { display: block; width: 100%; margin-right: 0; }.catalog-detail-header { display: block; padding-right: 2.3rem; }.detail-source-state { align-items: flex-start; margin-top: .7rem; }.catalog-detail-grid { grid-template-columns: 1fr; }.catalog-detail-card > #metal-detail-content { padding: .85rem; }
  .catalog-detail-section { padding: 9px; }.section-kind { float: none; margin: -.35rem 0 .55rem; }.detail-data-table { font-size: .7rem; }.detail-data-table th,.detail-data-table td { min-width: 82px; padding: .5rem; }
  .mobile-cards { display: block; min-width: 0; }.mobile-cards thead { display: none; }.mobile-cards tbody { display: grid; gap: 8px; }.mobile-cards tbody tr { display: block; padding: 8px 10px; background: #fff; border: 1px solid var(--line); border-radius: 5px; }.mobile-cards tbody td { display: grid; grid-template-columns: minmax(86px,.7fr) minmax(0,1.3fr); gap: 9px; align-items: start; padding: 7px 0; border-bottom: 1px solid #edf0f2; line-height: 1.4; }.mobile-cards tbody td:last-child { border-bottom: 0; }.mobile-cards tbody td[data-label]::before { content: attr(data-label); color: var(--muted); font-size: .62rem; font-weight: 650; }.mobile-cards .row-actions { justify-content: flex-start; flex-wrap: wrap; }.mobile-cards .mobile-empty-cell { display: block; padding: 1.2rem; text-align: center; }
  .button { min-height: 42px; }.button.small { min-height: 36px; }.modal { width: 100%; max-width: 100%; max-height: 100dvh; margin: 0; }.modal-card { max-height: 100dvh; min-height: 100dvh; padding: 1rem; border: 0; border-radius: 0; }.modal-close { position: sticky; top: .25rem; float: right; margin: -.2rem -.2rem 0 .5rem; }
  .catalog-modal .modal-card { min-height: 100dvh; }.toast { right: .5rem; bottom: .5rem; max-width: calc(100% - 1rem); }
}

@media (max-width: 420px) {
  h1 { font-size: 1.42rem; }.login-screen { padding: 12px; }.login-card { padding: 1.35rem; }
  main { padding: 6px; }.panel { padding: 8px; }.topbar-title strong { font-size: .8rem; }.menu-button { padding: .35rem; }
  .summary-card { padding-inline: 6px; }.summary-card span { font-size: .54rem; }.summary-card strong { font-size: 1.02rem; }
  .site-column { padding-inline: 5px; }.card-top { padding-inline: 7px; }.card-progress { gap: 5px; padding-inline: 7px; }
  .control-program-fields,.control-program-details { padding: 9px; }.control-program-meta,.control-step-preview { grid-template-columns: 1fr; }
  .catalog-pagination { gap: .25rem; }.catalog-pagination span { min-width: 88px; }.catalog-pagination .button { padding-inline: .45rem; }
  .mode-values { grid-template-columns: 1fr; }.mobile-cards tbody td { grid-template-columns: minmax(78px,.7fr) minmax(0,1.3fr); }.knowledge-source-card { grid-template-columns: 1fr; }.knowledge-book-mark { width: 64px; height: 82px; }.knowledge-book-copy h2 { font-size: 1rem; }.knowledge-book-copy > p:not(.eyebrow) { font-size: .76rem; }.knowledge-book-meta { grid-template-columns: 1fr 1fr; }.knowledge-chapter-group > header > small { display: none; }.knowledge-card > summary h3 { font-size: .92rem; }.knowledge-card > summary p { font-size: .76rem; }.knowledge-checklist { padding: .72rem .78rem; }.knowledge-checklist ul { font-size: .78rem; }
}

/* Knowledge library v3 */
.kb-stats { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; margin: 12px 0; scroll-margin-top: 68px; }
.kb-stats article { min-width: 0; min-height: 82px; padding: 12px 14px; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--red); border-radius: 5px; box-shadow: 0 1px 3px rgba(23,33,43,.04); }
.kb-stats strong,.kb-stats span,.kb-stats small { display: block; min-width: 0; overflow-wrap: anywhere; }.kb-stats strong { color: var(--red-dark); font-size: 1.55rem; line-height: 1; }.kb-stats span { margin-top: .32rem; font-size: .7rem; font-weight: 800; }.kb-stats small { margin-top: .22rem; color: var(--muted); font-size: .57rem; line-height: 1.35; }
.kb-tabs { display: flex; gap: 3px; min-width: 0; margin: 0 0 10px; padding: 4px; overflow-x: auto; scrollbar-width: thin; background: #e5e9ec; border: 1px solid #d8dee2; border-radius: 6px; }
.kb-tab { min-width: max-content; flex: 1 0 auto; padding: .68rem .8rem; color: #44515b; background: transparent; border: 0; border-radius: 4px; font-size: .68rem; font-weight: 750; white-space: nowrap; }.kb-tab:hover { background: rgba(255,255,255,.65); }.kb-tab.active { color: #fff; background: var(--sidebar); box-shadow: 0 2px 7px rgba(17,26,35,.18); }
.kb-tab-panel { display: none; min-width: 0; }.kb-tab-panel.active { display: block; }
.kb-books { display: grid; gap: 12px; }.kb-book-card { min-width: 0; display: grid; grid-template-columns: 165px minmax(0,1fr); gap: 20px; padding: 20px; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 7px; box-shadow: var(--shadow); }
.kb-book-cover { min-width: 0; align-self: start; padding: 8px; background: linear-gradient(145deg,#edf0f2,#fff); border: 1px solid var(--line); border-radius: 4px; }.kb-book-cover img { display: block; width: 100%; aspect-ratio: .7; object-fit: cover; object-position: top; filter: contrast(1.02); }
.kb-book-main { min-width: 0; }.kb-book-kicker,.kb-mode-meta,.kb-table-meta,.kb-figure-meta { display: flex; flex-wrap: wrap; gap: 5px; }.kb-book-kicker span,.kb-mode-meta span,.kb-table-meta span,.kb-figure-meta span,.kb-source-chip,.kb-page-chip { max-width: 100%; padding: .2rem .42rem; overflow-wrap: anywhere; color: #4f5e68; background: #eef2f4; border-radius: 2px; font-size: .58rem; font-weight: 720; }
.kb-book-main h2 { margin: .65rem 0 .4rem; font-size: 1.25rem; overflow-wrap: anywhere; }.kb-book-main > p { max-width: 920px; margin-bottom: .9rem; color: #4c5a64; font-size: .8rem; line-height: 1.58; overflow-wrap: anywhere; }
.kb-book-meta { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }.kb-book-meta span { min-width: 0; padding: .6rem .68rem; color: #4b5862; background: #f7f8f9; border: 1px solid #e5e9ec; border-radius: 3px; font-size: .65rem; overflow-wrap: anywhere; }.kb-book-meta b { display: block; margin-bottom: .18rem; color: var(--muted); font-size: .53rem; letter-spacing: .06em; text-transform: uppercase; }.kb-book-meta code { font-size: .63rem; }
.kb-toc { margin-top: 9px; border: 1px solid var(--line); border-radius: 4px; }.kb-toc > summary { display: flex; justify-content: space-between; gap: 1rem; padding: .72rem .8rem; cursor: pointer; list-style: none; font-size: .7rem; font-weight: 800; }.kb-toc > summary::-webkit-details-marker { display: none; }.kb-toc[open] > summary { border-bottom: 1px solid var(--line); }.kb-toc[open] > summary span { transform: rotate(45deg); }.kb-toc > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: var(--line); }.kb-toc a { min-width: 0; display: grid; grid-template-columns: 28px minmax(0,1fr) auto; gap: 7px; align-items: center; padding: .58rem .66rem; color: var(--text); background: #fff; text-decoration: none; }.kb-toc a:hover { background: #f8fafb; }.kb-toc a b { color: var(--red-dark); font-size: .64rem; }.kb-toc a span { min-width: 0; font-size: .65rem; line-height: 1.35; overflow-wrap: anywhere; }.kb-toc a small { color: var(--muted); font-size: .55rem; white-space: nowrap; }
.kb-card-actions,.kb-record-card footer,.kb-mode-body footer,.kb-table-copy footer,.kb-preview-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 10px; }
.kb-panel-shell { min-width: 0; padding: 14px; }.kb-panel-heading { min-width: 0; display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 10px; }.kb-panel-heading h2 { margin: 0 0 .22rem; font-size: 1.05rem; }.kb-panel-heading p:not(.eyebrow) { max-width: 850px; margin: 0; color: var(--muted); font-size: .7rem; line-height: 1.5; overflow-wrap: anywhere; }
.kb-toolbar { display: grid; grid-template-columns: minmax(260px,1fr) minmax(210px,300px) auto; gap: 8px; align-items: center; }.kb-toolbar.three { grid-template-columns: minmax(240px,1fr) minmax(150px,220px) minmax(190px,260px) auto; }.kb-search-toolbar { display: grid; grid-template-columns: minmax(240px,1fr) minmax(180px,250px) minmax(150px,210px) auto; gap: 8px; align-items: center; }
.kb-record-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }.kb-record-grid.wide { grid-template-columns: repeat(2,minmax(0,1fr)); }.kb-record-card { min-width: 0; display: flex; flex-direction: column; padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: 5px; }.kb-record-card header { min-width: 0; display: flex; flex-wrap: wrap; gap: 5px; }.kb-record-card h3 { margin: .65rem 0 .3rem; font-size: .9rem; line-height: 1.35; overflow-wrap: anywhere; }.kb-grade-line { margin: 0 0 .65rem; color: #37454f; font-size: .74rem; line-height: 1.45; overflow-wrap: anywhere; }.kb-elements { display: flex; flex-wrap: wrap; gap: 4px; }.kb-elements span { padding: .22rem .4rem; color: #8d1117; background: #fff0f1; border: 1px solid #f5d4d6; border-radius: 10px; font-size: .6rem; font-weight: 800; }.kb-card-note { flex: 1; margin: .65rem 0 0; color: var(--muted); font-size: .65rem; line-height: 1.5; overflow-wrap: anywhere; }
.kb-mode-card { min-width: 0; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 5px; }.kb-mode-card[open] { border-color: #aeb7bd; box-shadow: 0 5px 18px rgba(23,36,47,.06); }.kb-mode-card > summary { min-width: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 12px; cursor: pointer; list-style: none; }.kb-mode-card > summary::-webkit-details-marker { display: none; }.kb-mode-card > summary > div { min-width: 0; }.kb-mode-card h3 { margin: .55rem 0 .25rem; font-size: .95rem; overflow-wrap: anywhere; }.kb-mode-card summary p { margin: 0; color: var(--muted); font-size: .72rem; overflow-wrap: anywhere; }.kb-mode-card[open] .details-mark { transform: rotate(45deg); }.kb-mode-body { min-width: 0; padding: 12px; border-top: 1px solid var(--line); }.kb-route { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }.kb-route > div { min-width: 0; padding: .65rem; background: #f6f8f9; border-left: 2px solid #aab6be; }.kb-route span { display: block; margin-bottom: .2rem; color: var(--muted); font-size: .55rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }.kb-route p { margin: 0; color: #35434c; font-size: .68rem; line-height: 1.48; overflow-wrap: anywhere; }
.kb-table-list { display: grid; gap: 8px; }.kb-table-card { min-width: 0; display: grid; grid-template-columns: 210px minmax(0,1fr); overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 5px; }.kb-table-thumb { width: 210px; height: 250px; padding: 0; overflow: hidden; background: #e9edef; border: 0; border-right: 1px solid var(--line); }.kb-table-thumb img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: top; transition: transform .2s; }.kb-table-thumb:hover img { transform: scale(1.025); }.kb-table-placeholder { width: 210px; min-height: 160px; display: grid; place-content: center; gap: .4rem; color: #53616b; background: repeating-linear-gradient(-45deg,#f3f5f6,#f3f5f6 10px,#edf0f2 10px,#edf0f2 20px); border-right: 1px solid var(--line); text-align: center; }.kb-table-placeholder span { font-size: .65rem; font-weight: 800; }.kb-table-placeholder strong { color: var(--red-dark); font-size: 1.1rem; }.kb-table-copy { min-width: 0; padding: 12px 14px; }.kb-table-copy h3 { margin: .58rem 0 .38rem; font-size: .95rem; overflow-wrap: anywhere; }.kb-table-copy > p { display: -webkit-box; margin: 0; overflow: hidden; color: #56636c; font-size: .68rem; line-height: 1.55; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 5; }.kb-table-meta .ocr,.kb-search-card .ocr { color: #925f00; background: #fff4d9; }.kb-table-meta .checked { color: #087238; background: #e4f6eb; }
.kb-figure-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }.kb-figure-card { min-width: 0; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 5px; }.kb-figure-image { width: 100%; height: 310px; display: block; padding: 0; overflow: hidden; background: #e9edef; border: 0; border-bottom: 1px solid var(--line); }.kb-figure-image img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: top; transition: transform .2s; }.kb-figure-image:hover img { transform: scale(1.02); }.kb-figure-card > div { min-width: 0; padding: 11px; }.kb-figure-card h3 { margin: .55rem 0 .3rem; font-size: .88rem; overflow-wrap: anywhere; }.kb-figure-card p { margin: 0 0 .55rem; color: var(--muted); font-size: .66rem; line-height: 1.48; overflow-wrap: anywhere; }.kb-figure-card a { font-size: .65rem; font-weight: 750; }
.kb-search-status { margin: 4px 0 8px; color: var(--muted); font-size: .66rem; }.kb-search-results { display: grid; gap: 7px; }.kb-search-card { min-width: 0; padding: 12px; background: #fff; border: 1px solid var(--line); border-left: 3px solid var(--blue); border-radius: 4px; }.kb-search-card header { display: flex; flex-wrap: wrap; gap: 5px; }.kb-search-card header span,.kb-search-flags span { padding: .2rem .4rem; color: #4f5e68; background: #eef2f4; border-radius: 2px; font-size: .57rem; font-weight: 720; }.kb-search-card p { margin: .68rem 0; color: #35434d; font-size: .76rem; line-height: 1.62; overflow-wrap: anywhere; }.kb-search-flags { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: .55rem; }
.kb-preview-dialog { width: min(1120px,calc(100% - 1.5rem)); }.kb-preview-dialog .modal-card { display: flex; flex-direction: column; }.kb-preview-dialog h2 { padding-right: 2.5rem; overflow-wrap: anywhere; }.kb-preview-dialog img { width: 100%; max-height: calc(100dvh - 190px); display: block; object-fit: contain; background: #e8ecef; border: 1px solid var(--line); }.kb-preview-actions { justify-content: flex-end; }.kb-preview-actions .button { text-decoration: none; }

@media (max-width: 1150px) {
  .kb-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }.kb-record-grid,.kb-figure-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.kb-toolbar.three,.kb-search-toolbar { grid-template-columns: 1fr 1fr; }.kb-toolbar.three .knowledge-result-count { text-align: left; }
}
@media (max-width: 820px) {
  .kb-book-card { grid-template-columns: 120px minmax(0,1fr); gap: 13px; padding: 14px; }.kb-book-meta { grid-template-columns: 1fr 1fr; }.kb-book-meta span:last-child { grid-column: 1 / -1; }.kb-toc > div { grid-template-columns: 1fr; }.kb-record-grid,.kb-record-grid.wide { grid-template-columns: 1fr; }.kb-toolbar,.kb-toolbar.three,.kb-search-toolbar { grid-template-columns: 1fr; }.kb-table-card { grid-template-columns: 170px minmax(0,1fr); }.kb-table-thumb,.kb-table-placeholder { width: 170px; }.kb-figure-image { height: 280px; }
}
@media (max-width: 620px) {
  .kb-stats { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; }.kb-stats article { min-height: 72px; padding: 9px; }.kb-stats strong { font-size: 1.25rem; }.kb-stats article:last-child { grid-column: 1 / -1; }.kb-tabs { position: sticky; top: 56px; z-index: 18; margin-inline: -8px; border-radius: 0; }.kb-tab { padding: .62rem .7rem; }.kb-book-card { grid-template-columns: 78px minmax(0,1fr); gap: 10px; padding: 10px; }.kb-book-cover { padding: 4px; }.kb-book-main h2 { margin-top: .45rem; font-size: 1rem; }.kb-book-main > p { font-size: .72rem; line-height: 1.48; }.kb-book-meta { grid-template-columns: 1fr; }.kb-book-meta span:last-child { grid-column: auto; }.kb-toc { grid-column: 1 / -1; }.kb-toc a { grid-template-columns: 24px minmax(0,1fr); }.kb-toc a small { grid-column: 2; }.kb-card-actions { display: grid; grid-template-columns: 1fr; }.kb-card-actions .button { width: 100%; }.kb-panel-shell { padding: 8px; }.kb-route { grid-template-columns: 1fr; }.kb-table-card { grid-template-columns: 94px minmax(0,1fr); }.kb-table-thumb,.kb-table-placeholder { width: 94px; height: 145px; min-height: 145px; }.kb-table-copy { padding: 9px; }.kb-table-copy h3 { font-size: .82rem; }.kb-table-copy > p { font-size: .64rem; -webkit-line-clamp: 3; }.kb-table-copy footer { grid-column: 1 / -1; }.kb-figure-grid { grid-template-columns: 1fr; }.kb-figure-card { display: grid; grid-template-columns: 110px minmax(0,1fr); }.kb-figure-image { width: 110px; height: 170px; border-right: 1px solid var(--line); border-bottom: 0; }.kb-figure-card h3 { font-size: .8rem; }.kb-preview-dialog .modal-card { padding: .6rem; }.kb-preview-dialog img { max-height: calc(100dvh - 160px); }.kb-preview-actions .button { width: 100%; }.kb-search-card p { font-size: .72rem; }
}
@media (max-width: 420px) {
  .kb-book-card { grid-template-columns: 1fr; }.kb-book-cover { width: 84px; }.kb-table-card { grid-template-columns: 76px minmax(0,1fr); }.kb-table-thumb,.kb-table-placeholder { width: 76px; }.kb-table-meta span:nth-child(2) { display: none; }.kb-table-copy footer .button { min-height: 34px; padding-inline: .5rem; }.kb-figure-card { grid-template-columns: 88px minmax(0,1fr); }.kb-figure-image { width: 88px; height: 145px; }.kb-figure-meta span:first-child { display: none; }
}

/* TRM251 program workspace */
.program-summary { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 7px; margin: 10px 0; }
.program-summary > div { min-width: 0; padding: 10px 12px; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--sidebar); border-radius: 5px; }
.program-summary span,.program-summary strong { display: block; overflow-wrap: anywhere; }.program-summary span { color: var(--muted); font-size: .59rem; text-transform: uppercase; }.program-summary strong { margin-top: .2rem; font-size: 1.25rem; }
.program-panel + .program-panel { margin-top: 10px; }.section-heading { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 10px; }.section-heading h2 { margin: 0 0 .2rem; font-size: 1rem; }.section-heading p { margin: 0; color: var(--muted); font-size: .67rem; line-height: 1.45; }.section-heading select { width: min(245px,100%); }.controller-badge { flex: 0 0 auto; padding: .42rem .62rem; color: #fff; background: var(--sidebar); border-radius: 3px; font-size: .62rem; font-weight: 800; }
.furnace-program-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }.furnace-program-card { min-width: 0; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 6px; }.furnace-program-card > header { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 10px 12px; background: #f7f9fa; border-bottom: 1px solid var(--line); }.furnace-program-card > header > div:first-child { min-width: 0; }.furnace-program-card > header span { display: block; color: var(--muted); font-size: .58rem; overflow-wrap: anywhere; }.furnace-program-card h3 { margin: .15rem 0 0; font-size: .88rem; overflow-wrap: anywhere; }.furnace-live { flex: 0 0 auto; text-align: right; }.furnace-live strong,.furnace-live span { display: block; }.furnace-live strong { font-size: .85rem; }.furnace-live.online strong { color: var(--green); }.furnace-live.offline strong { color: var(--muted); }.furnace-live span { margin-top: .12rem; font-weight: 750; }
.program-slot-list { display: grid; }.program-slot { min-width: 0; display: grid; grid-template-columns: 38px minmax(0,1fr) auto auto; gap: 8px; align-items: center; padding: 9px 10px; border-bottom: 1px solid #edf0f2; }.program-slot:last-child { border-bottom: 0; }.program-slot.synced { box-shadow: inset 3px 0 var(--green); }.program-slot.failed { box-shadow: inset 3px 0 var(--red); }.program-slot.queued { box-shadow: inset 3px 0 var(--amber); }.slot-number { width: 34px; height: 34px; display: grid; place-items: center; color: #fff; background: var(--sidebar); border-radius: 4px; font-size: .7rem; font-weight: 900; }.slot-main { min-width: 0; }.slot-main strong,.slot-main span { display: block; min-width: 0; overflow-wrap: anywhere; }.slot-main strong { font-size: .7rem; }.slot-main span { margin-top: .15rem; color: var(--muted); font-size: .58rem; line-height: 1.4; }.slot-sync { max-width: 110px; padding: .22rem .38rem; border-radius: 10px; font-size: .55rem; font-weight: 800; text-align: center; overflow-wrap: anywhere; }.slot-sync.empty { color: #65717a; background: #edf0f2; }.slot-sync.draft { color: #925f00; background: #fff3d7; }.slot-sync.queued { color: #8b5a00; background: #fff0c7; }.slot-sync.synced { color: #087238; background: #e4f6eb; }.slot-sync.failed { color: #a40f16; background: #fdebed; }.slot-actions { display: flex; gap: 4px; }.furnace-command-note { padding: .42rem .65rem; color: #805300; background: #fff7e4; border-top: 1px solid #ecd39b; font-size: .6rem; }
.program-template-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }.program-template-card { min-width: 0; display: flex; flex-direction: column; padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: 5px; }.program-template-card header { min-width: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: .7rem; }.program-template-card header > div { min-width: 0; }.program-template-card header span:not(.status-pill) { display: block; color: var(--red-dark); font-size: .56rem; font-weight: 800; text-transform: uppercase; }.program-template-card h3 { margin: .25rem 0 .45rem; font-size: .86rem; line-height: 1.35; overflow-wrap: anywhere; }.program-template-card > p { margin: 0 0 .7rem; color: #4d5b65; font-size: .68rem; line-height: 1.5; overflow-wrap: anywhere; }.template-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; }.template-metrics span { min-width: 0; padding: .48rem; color: var(--muted); background: #f5f7f8; border-radius: 3px; font-size: .58rem; overflow-wrap: anywhere; }.template-metrics b { color: var(--text); }.template-step-strip { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 7px; }.template-step-strip span { max-width: 100%; padding: .25rem .38rem; color: #46545e; background: #eef2f4; border-radius: 3px; font-size: .57rem; overflow-wrap: anywhere; }.template-step-strip b { display: inline-grid; width: 16px; height: 16px; place-items: center; margin-right: .25rem; color: #fff; background: var(--red-dark); border-radius: 50%; font-size: .5rem; }.template-actions { display: flex; justify-content: flex-end; margin-top: auto; padding-top: 9px; }
.program-editor-card { overflow-x: hidden; }.trm-scale-note { min-width: 0; display: grid; grid-template-columns: auto minmax(0,1fr); gap: .7rem; align-items: center; margin: .5rem 0 .8rem; padding: .7rem; color: #26485f; background: #edf6fb; border: 1px solid #c6deec; border-radius: 4px; }.trm-scale-note strong { font-size: .7rem; }.trm-scale-note span { min-width: 0; font-size: .62rem; line-height: 1.45; overflow-wrap: anywhere; }.step-editor-wrap { width: 100%; max-width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 4px; }.step-editor-table { min-width: 720px; table-layout: fixed; }.step-editor-table th,.step-editor-table td { padding: .42rem; }.step-editor-table th:first-child { width: 64px; }.step-editor-table th:nth-child(2) { width: 235px; }.step-editor-table th:nth-child(n+3) { width: 130px; }.step-editor-table input { min-height: 34px; padding: .42rem .5rem; font-size: .68rem; }.step-editor-table tr.inactive { opacity: .48; }.step-toggle { display: flex; align-items: center; justify-content: center; gap: .3rem; margin: 0; color: var(--text); font-weight: 800; }.modal-actions { display: flex; justify-content: flex-end; gap: 7px; margin-top: .85rem; }

@media (max-width: 1120px) {
  .furnace-program-grid { grid-template-columns: 1fr; }.program-slot { grid-template-columns: 38px minmax(0,1fr) auto auto; }
}
@media (max-width: 820px) {
  .program-summary { grid-template-columns: repeat(3,minmax(0,1fr)); }.program-template-list { grid-template-columns: 1fr; }.section-heading { align-items: flex-start; }.program-slot { grid-template-columns: 38px minmax(0,1fr) auto; }.slot-actions { grid-column: 2 / -1; justify-content: flex-end; }
}
@media (max-width: 620px) {
  .program-summary { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; }.program-summary > div:last-child { grid-column: 1 / -1; }.program-panel { padding: 8px; }.section-heading { display: grid; gap: .6rem; }.section-heading select,.controller-badge { width: 100%; }.controller-badge { text-align: center; }.furnace-program-card > header { align-items: flex-start; }.program-slot { grid-template-columns: 36px minmax(0,1fr); gap: 6px; }.slot-sync { grid-column: 2; justify-self: start; }.slot-actions { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; width: 100%; }.slot-actions .button { width: 100%; }.template-metrics { grid-template-columns: 1fr 1fr; }.template-metrics span:last-child { grid-column: 1 / -1; }.trm-scale-note { grid-template-columns: 1fr; gap: .25rem; }.modal-actions { display: grid; grid-template-columns: 1fr; }.modal-actions .button { width: 100%; }
  .step-editor-wrap { margin-inline: 0; overflow-x: hidden; border: 0; }.step-editor-table { min-width: 0; display: block; }.step-editor-table thead { display: none; }.step-editor-table tbody { display: grid; gap: 7px; }.step-editor-table tr { min-width: 0; display: grid; grid-template-columns: 45px repeat(3,minmax(0,1fr)); gap: 6px; padding: 8px; background: #f7f9fa; border: 1px solid var(--line); border-radius: 4px; }.step-editor-table td { min-width: 0; display: block; padding: 0; border: 0; }.step-editor-table td:first-child { grid-column: 1; grid-row: 1 / span 2; display: grid; place-items: center; }.step-editor-table td:nth-child(2) { grid-column: 2 / -1; }.step-editor-table td:nth-child(3) { grid-column: 2; }.step-editor-table td:nth-child(4) { grid-column: 3; }.step-editor-table td:nth-child(5) { grid-column: 4; }.step-editor-table td:nth-child(n+3)::before { display: block; min-height: 24px; margin-bottom: 3px; color: var(--muted); font-size: .5rem; line-height: 1.2; }.step-editor-table td:nth-child(3)::before { content: "Уставка, °C"; }.step-editor-table td:nth-child(4)::before { content: "Рост, мин"; }.step-editor-table td:nth-child(5)::before { content: "Выдержка, мин"; }.step-editor-table input { padding-inline: .38rem; }
}
@media (max-width: 420px) {
  .program-summary strong { font-size: 1.05rem; }.furnace-program-card > header { gap: .45rem; padding: 9px; }.furnace-live strong { font-size: .72rem; }.program-template-card { padding: 9px; }.program-template-card header { display: grid; }.template-step-strip { display: grid; }.template-step-strip span { width: 100%; }
}
