:root {
    color-scheme: dark;
    --base-font-size: 14px;
    --title-bar-height: 48px;
    --title-bar: #080f15;
    --ribbon: #0d1821;
    --workspace: #0a131a;
    --panel: #111d26;
    --panel-raised: #15242f;
    --panel-soft: #0e1921;
    --viewport: #101a22;
    --input: #0b151c;
    --border: #263743;
    --border-strong: #385366;
    --text: #d8e0e5;
    --text-strong: #f3f7f9;
    --text-muted: #82929d;
    --accent: #357ead;
    --accent-bright: #58a9d8;
    --accent-soft: #183b54;
    --success: #54c79d;
    --warning: #d7a94d;
    --danger: #df6969;
    --selection: #174c73;
    --grid-major: rgba(121, 154, 174, .10);
    --grid-minor: rgba(121, 154, 174, .045);
    --shadow: 0 14px 38px rgba(0, 0, 0, .28);
    font-family: Inter, "Segoe UI", Arial, sans-serif;
}

:root[data-theme="light"] {
    color-scheme: light;
    --title-bar: #e9f0f5;
    --ribbon: #f5f8fa;
    --workspace: #dfe8ee;
    --panel: #f7fafc;
    --panel-raised: #ffffff;
    --panel-soft: #edf3f6;
    --viewport: #e4ebef;
    --input: #ffffff;
    --border: #bdccd6;
    --border-strong: #8ca6b7;
    --text: #233a49;
    --text-strong: #102633;
    --text-muted: #657b89;
    --accent: #286f9d;
    --accent-bright: #277fb6;
    --accent-soft: #d9eaf5;
    --selection: #cfe7f6;
    --grid-major: rgba(45, 87, 111, .12);
    --grid-minor: rgba(45, 87, 111, .055);
    --shadow: 0 14px 38px rgba(35, 65, 84, .13);
}

* {
    box-sizing: border-box;
}

html,
body {
    width: 100%;
    min-width: 1180px;
    height: 100%;
    margin: 0;
    overflow: hidden;
    background: var(--workspace);
    color: var(--text);
    font-size: var(--base-font-size);
}

button,
input,
select,
textarea {
    font: inherit;
}

button {
    color: inherit;
}

button:disabled,
button:disabled:hover {
    color: var(--text-muted);
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    cursor: default;
    opacity: .34;
    pointer-events: none;
}

button:focus-visible,
input:focus-visible,
select:focus-visible,
a:focus-visible {
    outline: 2px solid var(--accent-bright);
    outline-offset: 1px;
}

.icon {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.55;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.desktop-shell {
    display: grid;
    height: 100vh;
    grid-template-rows: var(--title-bar-height) 86px minmax(0, 1fr) 28px;
    background: var(--workspace);
}

.title-bar {
    position: relative;
    z-index: 60;
    display: grid;
    height: var(--title-bar-height);
    min-height: 0;
    grid-template-columns: minmax(286px, max-content) minmax(0, 1fr) max-content;
    align-items: stretch;
    background: var(--title-bar);
    border-bottom: 1px solid var(--border);
    user-select: none;
}

.product-mark {
    display: flex;
    height: 100%;
    min-height: 0;
    align-items: center;
    gap: 10px;
    padding: 5px 16px;
    color: var(--text-strong);
    text-decoration: none;
}

.product-mark__symbol,
.atlas-sign {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    color: #b9e0f6;
    background: linear-gradient(145deg, #2e7fae, #173e58);
    border: 1px solid #5995b9;
    border-radius: 8px 3px 8px 3px;
    font-size: 1.4rem;
    font-weight: 850;
    font-style: italic;
}

.product-mark strong,
.product-mark small {
    display: block;
}

.product-mark strong {
    letter-spacing: .07em;
}

.product-mark small {
    margin-top: 1px;
    color: var(--text-muted);
    font-size: .66rem;
}

.module-tabs {
    display: flex;
    height: 100%;
    min-width: 0;
    min-height: 0;
    align-items: stretch;
    justify-content: safe center;
    gap: 3px;
    padding: 0 8px;
    overflow-x: auto;
    overflow-y: hidden;
}

.module-tab {
    --stage-color: var(--text-muted);
    position: relative;
    display: grid;
    height: 100%;
    min-height: 0;
    min-width: 44px;
    max-width: 72px;
    flex: 1 1 58px;
    grid-template-columns: auto auto;
    align-content: center;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 8px;
    background: transparent;
    border: 0;
    border-inline: 1px solid transparent;
    color: var(--stage-color);
    cursor: pointer;
    line-height: 1;
    overflow: hidden;
    white-space: nowrap;
    transition: color .12s ease, background .12s ease, border-color .12s ease;
}

.module-tab__number {
    color: inherit;
    font-family: "Cascadia Mono", Consolas, monospace;
    font-size: .67rem;
    font-weight: 750;
}

.module-tab__icon {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.module-tab.is-status-complete { --stage-color: var(--success); }
.module-tab.is-status-warning { --stage-color: var(--warning); }
.module-tab.is-status-error { --stage-color: var(--danger); }
.module-tab.is-status-planned { --stage-color: var(--text-muted); }

.module-tab:hover {
    color: color-mix(in srgb, var(--stage-color) 75%, var(--text-strong));
    background: color-mix(in srgb, var(--stage-color) 10%, transparent);
    border-color: color-mix(in srgb, var(--stage-color) 28%, transparent);
}

.module-tab.is-active {
    color: color-mix(in srgb, var(--stage-color) 82%, var(--text-strong));
    background: color-mix(in srgb, var(--stage-color) 12%, var(--panel-raised));
    border-color: color-mix(in srgb, var(--stage-color) 35%, var(--border));
}

.module-tab.is-active::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 2px;
    background: var(--accent-bright);
    content: "";
}

.window-actions {
    display: flex;
    height: 100%;
    min-height: 0;
    align-items: center;
    padding-right: 10px;
}

.user-menu {
    position: relative;
    display: flex;
    height: 100%;
    min-width: 0;
    min-height: 0;
    align-self: stretch;
    align-items: stretch;
}

.user-menu__trigger {
    display: grid;
    width: clamp(180px, 12.86rem, 290px);
    min-width: 180px;
    max-width: 290px;
    min-height: 0;
    grid-template-columns: 30px minmax(0, 1fr) 14px;
    align-items: center;
    gap: 8px;
    padding: 4px 9px;
    color: var(--text);
    background: transparent;
    border: 0;
    border-left: 1px solid var(--border);
    cursor: pointer;
    text-align: left;
}

.user-menu__trigger:hover,
.user-menu__trigger.is-open {
    color: var(--text-strong);
    background: var(--accent-soft);
}

.user-menu__avatar {
    display: inline-grid;
    width: 28px;
    height: 28px;
    overflow: hidden;
    place-items: center;
    color: #d8effc;
    background: linear-gradient(145deg, #357ead, #173e58);
    border: 1px solid #5793b7;
    border-radius: 50%;
    font-size: .72rem;
    font-weight: 750;
}

.user-menu__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.user-menu__avatar--large {
    width: 42px;
    height: 42px;
    font-size: 1rem;
}

.user-menu__trigger-text {
    min-width: 0;
}

.user-menu__trigger-text strong,
.user-menu__trigger-text small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.user-menu__trigger-text strong {
    color: var(--text-strong);
    font-size: .69rem;
    font-weight: 600;
}

.user-menu__trigger-text small {
    margin-top: 2px;
    color: var(--text-muted);
    font-size: .59rem;
}

.user-menu__chevron {
    color: var(--text-muted);
    font-size: .9rem;
    transition: transform .16s ease;
}

.user-menu__trigger.is-open .user-menu__chevron {
    transform: rotate(180deg);
}

.user-menu__popover {
    position: absolute;
    z-index: 200;
    top: calc(100% + 5px);
    right: 0;
    width: 330px;
    max-height: calc(100vh - 75px);
    overflow: auto;
    color: var(--text);
    background: var(--panel-raised);
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    box-shadow: 0 25px 70px rgba(0, 0, 0, .5);
}

.user-menu__popover[hidden] {
    display: none;
}

.user-menu__header {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    padding: 14px;
    background: var(--panel-soft);
    border-bottom: 1px solid var(--border);
}

.user-menu__header div {
    min-width: 0;
}

.user-menu__header div > strong,
.user-menu__header div > span,
.user-menu__header div > small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.user-menu__header div > strong {
    color: var(--text-strong);
    font-size: .76rem;
}

.user-menu__header div > span {
    margin-top: 3px;
    color: var(--text);
    font-size: .65rem;
}

.user-menu__header div > small {
    margin-top: 3px;
    color: var(--text-muted);
    font-size: .6rem;
}

.user-menu__navigation {
    padding: 6px;
}

.user-menu__navigation > p {
    margin: 0;
    padding: 9px 9px 5px;
    color: var(--text-muted);
    font-size: .58rem;
    font-weight: 750;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.user-menu__navigation a,
.user-menu__disabled-item,
.user-menu__logout button {
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    padding: 8px 10px;
    color: var(--text);
    background: transparent;
    border: 0;
    border-radius: 3px;
    text-decoration: none;
    text-align: left;
}

.user-menu__navigation a:hover,
.user-menu__navigation a.is-active,
.user-menu__logout button:hover {
    color: var(--text-strong);
    background: var(--accent-soft);
}

.user-menu__navigation a.is-active {
    box-shadow: inset 3px 0 var(--accent-bright);
}

.user-menu__navigation strong,
.user-menu__disabled-item strong,
.user-menu__logout strong {
    font-size: .71rem;
    font-weight: 600;
}

.user-menu__navigation span,
.user-menu__disabled-item span,
.user-menu__logout span {
    color: var(--text-muted);
    font-size: .61rem;
    line-height: 1.35;
}

.user-menu__disabled-item {
    cursor: not-allowed;
    opacity: .36;
    user-select: none;
}

.user-menu__logout {
    margin: 0;
    padding: 6px;
    border-top: 1px solid var(--border);
}

.user-menu__logout button {
    cursor: pointer;
}

.administration-menu { flex: 0 0 38px; margin-left: 2px; }
.administration-menu .administration-menu__trigger { display: grid; width: 38px; min-width: 38px; max-width: 38px; grid-template-columns: 1fr; padding: 0; place-items: center; border-left: 1px solid var(--border); }
.administration-menu__trigger .icon { width: 18px; height: 18px; }
.administration-menu__popover { width: 350px; }
.administration-menu__header { display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 10px; padding: 13px 14px; background: var(--panel-soft); border-bottom: 1px solid var(--border); }
.administration-menu__header .icon { width: 22px; height: 22px; color: var(--accent-bright); }
.administration-menu__header strong,
.administration-menu__header small { display: block; }
.administration-menu__header strong { color: var(--text-strong); font-size: .75rem; }
.administration-menu__header small { margin-top: 3px; color: var(--text-muted); font-size: .59rem; line-height: 1.35; }

.help-menu {
    flex: 0 0 38px;
    margin-left: 2px;
}

.help-menu .help-menu__trigger {
    display: grid;
    width: 38px;
    min-width: 38px;
    max-width: 38px;
    grid-template-columns: 1fr;
    padding: 0;
    place-items: center;
    border-left: 1px solid var(--border);
}

.help-menu__trigger .icon {
    width: 18px;
    height: 18px;
}

.help-menu__popover {
    width: 340px;
}

.portal-card[id] {
    scroll-margin-top: 75px;
}

.title-icon,
.panel-icon {
    display: inline-grid;
    width: 34px;
    height: 34px;
    place-items: center;
    padding: 0;
    background: transparent;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
}

.title-icon:hover,
.panel-icon:hover {
    color: var(--text-strong);
    background: var(--accent-soft);
}

.title-icon .icon,
.panel-icon .icon {
    width: 18px;
    height: 18px;
}

.ribbon {
    display: flex;
    height: 100%;
    min-height: 0;
    align-items: stretch;
    overflow: hidden;
    background: var(--ribbon);
    border-bottom: 1px solid var(--border);
    box-shadow: 0 5px 20px rgba(0, 0, 0, .17);
}

.ribbon__common,
.ribbon__context {
    display: flex;
    height: 100%;
    min-height: 0;
    align-items: stretch;
    padding: 6px 8px;
}

.ribbon__context {
    gap: 6px;
}

.ribbon__common {
    border-right: 1px solid var(--border);
}

.ribbon-command {
    display: flex;
    width: max-content;
    height: 100%;
    min-height: 0;
    min-width: 78px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 4px 10px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 5px;
    color: var(--text);
    cursor: pointer;
}

.ribbon-command:hover {
    background: var(--accent-soft);
    border-color: var(--border-strong);
    color: var(--text-strong);
}

.ribbon-command--danger:not(:disabled) { color: color-mix(in srgb, var(--danger) 88%, var(--text)); }
.ribbon-command--danger:not(:disabled) .icon { color: var(--danger); }
.ribbon-command--danger:not(:disabled):hover {
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    border-color: color-mix(in srgb, var(--danger) 55%, var(--border));
}

.ribbon-command .icon {
    width: 29px;
    height: 29px;
    color: #a9c8da;
}

.ribbon-command span {
    white-space: nowrap;
    font-size: .72rem;
}

.ribbon-command-group {
    display: grid;
    height: 100%;
    min-width: 0;
    min-height: 0;
    grid-template-rows: minmax(0, 1fr) auto;
    align-items: stretch;
    border-right: 1px solid var(--border);
}

.ribbon-command-group[hidden] {
    display: none;
}

.ribbon-command-group > div {
    display: flex;
    min-width: 0;
    min-height: 0;
    align-items: stretch;
}

.ribbon-command-group > small {
    padding: 2px 12px 0;
    color: var(--text-muted);
    font-size: .58rem;
    letter-spacing: .04em;
    text-align: center;
}

.ribbon-command-group--permanent {
    border-right: 1px solid var(--border);
}

.engineering-workspace {
    --left-dock-width: 320px;
    --right-dock-width: 360px;
    display: grid;
    min-height: 0;
    grid-template-columns: var(--left-dock-width) minmax(560px, 1fr) var(--right-dock-width);
    gap: 3px;
    padding: 3px;
    background: #050a0e;
}

.dock,
.center-workspace {
    min-width: 0;
    min-height: 0;
}

.dock { position: relative; }

.workspace-column-resizer {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 35;
    width: 9px;
    padding: 0;
    touch-action: none;
    cursor: col-resize;
    outline: 0;
}

.workspace-column-resizer::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 4px;
    width: 1px;
    background: transparent;
    content: "";
    transition: background .12s ease, box-shadow .12s ease;
}

.workspace-column-resizer:hover::before,
.workspace-column-resizer:focus-visible::before,
.desktop-shell.is-resizing-columns .workspace-column-resizer::before {
    background: var(--accent-bright);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-bright) 17%, transparent);
}

.workspace-column-resizer--left { right: -6px; }
.workspace-column-resizer--right { left: -6px; }
.desktop-shell.is-resizing-columns,
.desktop-shell.is-resizing-columns * { cursor: col-resize !important; user-select: none !important; }

.dock--left {
    display: grid;
    grid-template-rows: minmax(0, 1fr);
    gap: 3px;
}

.dock--right {
    display: grid;
    grid-template-rows: minmax(150px, 1fr) minmax(130px, .62fr) minmax(150px, .78fr);
    gap: 3px;
}

.dock--right.is-flute-analysis {
    grid-template-rows: minmax(120px, .45fr) minmax(300px, 1.25fr) minmax(140px, .55fr);
}

.center-workspace {
    display: grid;
    grid-template-rows: minmax(340px, 1fr);
    gap: 3px;
}

.panel {
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    background: var(--panel);
    border: 1px solid var(--border);
}

.panel__header {
    display: flex;
    min-height: 36px;
    align-items: center;
    justify-content: space-between;
    padding-left: 12px;
    background: var(--panel-soft);
    border-bottom: 1px solid var(--border);
}

.panel__header h2 {
    margin: 0;
    color: var(--text-strong);
    font-size: .83rem;
    font-weight: 650;
}

.project-tree-panel {
    display: flex;
    flex-direction: column;
}

.project-caption {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 7px 10px;
    border-bottom: 1px solid var(--border);
}

.project-caption__status {
    width: 9px;
    height: 9px;
    background: var(--warning);
    border-radius: 50%;
    box-shadow: 0 0 0 3px rgba(215, 169, 77, .13);
}

.project-caption strong,
.project-caption small {
    display: block;
}

.project-caption small {
    color: var(--text-muted);
    font-size: .68rem;
}

.project-caption strong {
    font-size: .78rem;
    line-height: 1.22;
}

[data-cad-workstation] .dock--left {
    grid-template-rows: minmax(0, 1fr);
}

.project-tree {
    overflow: auto;
    padding: 0 0 10px;
    scrollbar-color: var(--border-strong) transparent;
}

.tree-group {
    border-bottom: 1px solid rgba(48, 70, 84, .45);
}

.tree-group summary {
    display: grid;
    min-height: 36px;
    grid-template-columns: 30px minmax(0, 1fr) 20px;
    align-items: center;
    gap: 5px;
    padding: 4px 9px 4px 6px;
    color: var(--text);
    cursor: pointer;
    font-size: .75rem;
    font-weight: 600;
    list-style: none;
}

.tree-group summary::-webkit-details-marker {
    display: none;
}

.tree-group summary:hover {
    background: rgba(88, 169, 216, .06);
}

.tree-group__number {
    color: var(--text-muted);
    font-family: "Cascadia Mono", Consolas, monospace;
    font-size: .65rem;
}

.tree-status {
    color: var(--text-muted);
    font-size: 1rem;
}

.tree-children {
    padding-bottom: 5px;
}

.tree-item {
    display: grid;
    width: 100%;
    min-height: 26px;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: center;
    gap: 5px;
    padding: 2px 8px 2px 24px;
    text-align: left;
    background: transparent;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    font-size: .72rem;
}

.tree-item:hover {
    color: var(--text);
    background: rgba(88, 169, 216, .07);
}

.tree-item.is-selected {
    color: #e5f4fc;
    background: var(--selection);
    box-shadow: inset 3px 0 var(--accent-bright);
}

.tree-item.has-error:not(.is-selected) {
    color: color-mix(in srgb, var(--danger) 78%, var(--text));
    background: color-mix(in srgb, var(--danger) 7%, transparent);
    box-shadow: inset 3px 0 color-mix(in srgb, var(--danger) 78%, transparent);
}

.tree-item__icon {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.4;
}

.compact-definition-list {
    margin: 0;
    padding: 10px 12px;
}

.compact-definition-list div {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 8px;
    padding: 4px 0;
    font-size: .7rem;
}

.compact-definition-list dt {
    color: var(--text-muted);
}

.compact-definition-list dd {
    margin: 0;
    color: var(--text);
}

.viewport-panel {
    display: grid;
    grid-template-rows: 35px minmax(0, 1fr);
}

.nc-workspace {
    position: absolute;
    inset: 0;
    z-index: 65;
    overflow: auto;
    padding: 18px;
    background: var(--panel);
    color: var(--text);
    font-size: .78rem;
}
.nc-workspace[hidden] { display: none; }
.nc-workspace h2 { margin: 0 0 8px; font-size: 1rem; }
.nc-workspace p { line-height: 1.55; }
.nc-options { display: grid; gap: 10px; }
/* At most three fields; automatically use two/one in a narrow dock viewport. */
.nc-options, .nc-link-row { grid-template-columns: repeat(auto-fit, minmax(min(100%, max(280px, calc((100% - 20px) / 3))), 1fr)); }
.nc-options label { display: grid; gap: 5px; min-width: 0; }
.nc-options input, .nc-options select { width: 100%; min-width: 0; padding: 7px; color: var(--text); background: var(--input); border: 1px solid var(--border-strong); border-radius: 3px; }
.nc-options label:first-child, .nc-actions { grid-column: 1 / -1; }
.nc-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.nc-warning { border-left: 3px solid var(--warning); padding-left: 10px; color: var(--text-muted); }
.nc-progress { display: flex; align-items: center; gap: 10px; }
.nc-progress[hidden] { display: none; }
.nc-progress progress { flex: 1; min-width: 70px; }
.nc-workspace [data-nc-summary] { overflow-wrap: anywhere; line-height: 1.6; }
.nc-workspace details { margin-top: 15px; }
.nc-workspace summary { cursor: pointer; font-weight: 600; margin-bottom: 8px; }
.nc-table-scroll { overflow: auto; max-height: 55vh; }
.nc-table-scroll table { border-collapse: collapse; width: 100%; min-width: 840px; font-variant-numeric: tabular-nums; }
.nc-table-scroll th, .nc-table-scroll td { padding: 6px; border-bottom: 1px solid var(--border); text-align: right; }
.nc-table-scroll thead th { position: sticky; top: 0; background: var(--panel-raised); z-index: 1; }
.nc-table-scroll th:first-child, .nc-table-scroll td:first-child, .nc-table-scroll td:nth-child(2) { text-align: left; }
.nc-undefined-transition { color: var(--warning); }
.nc-pagination { display: flex; align-items: center; gap: 12px; margin-top: 8px; }
.nc-iso-output { margin-top: 16px; min-width: 0; }
.nc-iso-output[hidden] { display: none; }
.nc-iso-output select { max-width: 100%; padding: 7px; color: var(--text); background: var(--input); border: 1px solid var(--border-strong); border-radius: 3px; }
.nc-iso-output pre { max-height: 46vh; overflow: auto; padding: 12px; color: var(--text-strong); background: var(--input); border: 1px solid var(--border); border-radius: 4px; font: .73rem/1.65 "Cascadia Mono", Consolas, monospace; white-space: pre; }
.nc-iso-profile { padding: 10px; background: var(--input); border: 1px solid var(--border); border-radius: 4px; }
.nc-links fieldset { min-width: 0; margin: 12px 0; padding: 10px; border: 1px solid var(--border-strong); }
.nc-links fieldset p { overflow-wrap: anywhere; }
.nc-link-no-move { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; }
.nc-link-row { display: grid; gap: 10px; margin: 10px 0; }
.nc-link-row label { display: grid; gap: 4px; min-width: 0; }
.nc-link-row input { min-width: 0; width: 100%; padding: 6px; color: var(--text); background: var(--input); border: 1px solid var(--border-strong); border-radius: 3px; }

.document-tabs {
    display: flex;
    align-items: stretch;
    background: var(--panel-soft);
    border-bottom: 1px solid var(--border);
}

.document-tab {
    position: relative;
    padding: 0 15px;
    background: transparent;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    font-size: .73rem;
}

.document-tab:disabled {
    opacity: .42;
    cursor: default;
}

.document-tab:disabled:hover {
    color: var(--text-muted);
    background: transparent;
}

.document-tab:hover,
.document-tab.is-active {
    color: var(--text-strong);
    background: var(--panel-raised);
}

.document-tab.is-active::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 2px;
    background: var(--accent-bright);
    content: "";
}

.document-tabs__spacer {
    flex: 1;
}

.viewport {
    position: relative;
    min-height: 0;
    overflow: hidden;
    background: radial-gradient(circle at 52% 45%, rgba(63, 87, 103, .22), transparent 45%), var(--viewport);
}

.viewport-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(var(--grid-major) 1px, transparent 1px),
        linear-gradient(90deg, var(--grid-major) 1px, transparent 1px),
        linear-gradient(var(--grid-minor) 1px, transparent 1px),
        linear-gradient(90deg, var(--grid-minor) 1px, transparent 1px);
    background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px;
    transform: perspective(560px) rotateX(64deg) scale(1.65) translateY(18%);
    transform-origin: 50% 70%;
    mask-image: linear-gradient(to bottom, transparent 10%, #000 48%, #000 100%);
}

.viewport-caption {
    position: absolute;
    z-index: 2;
    top: 14px;
    left: 54px;
    display: flex;
    flex-direction: column;
    color: var(--text-muted);
    font-size: .69rem;
}

.viewport-caption strong {
    color: var(--text);
    font-size: .78rem;
}

.viewport-toolbar {
    position: absolute;
    z-index: 4;
    top: 48px;
    left: 10px;
    display: flex;
    flex-direction: column;
    padding: 4px;
    background: rgba(10, 20, 28, .8);
    border: 1px solid var(--border);
    border-radius: 5px;
    backdrop-filter: blur(8px);
}

.viewport-tool {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 3px;
    color: var(--text-muted);
    cursor: pointer;
}

.viewport-tool:hover,
.viewport-tool.is-active {
    color: var(--text-strong);
    background: var(--accent-soft);
}

.viewport-tool .icon {
    width: 18px;
    height: 18px;
}

.cad-viewport-canvas.is-section-plane-dragging { cursor: grabbing !important; }

.section-position-panel {
    position: absolute;
    z-index: 5;
    top: 48px;
    left: 54px;
    display: grid;
    width: min(560px, calc(100% - 126px));
    gap: 9px;
    padding: 11px 12px;
    color: var(--text);
    background: color-mix(in srgb, var(--panel) 91%, transparent);
    border: 1px solid var(--border-strong);
    border-radius: 5px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .28);
    backdrop-filter: blur(10px);
}

.section-position-panel[hidden] { display: none; }

.section-position-panel > header,
.section-position-panel > footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.section-position-panel > header > div:first-child { display: grid; gap: 2px; }
.section-position-panel > header > div:last-child { display: flex; gap: 5px; }
.section-position-panel > header strong { color: var(--text-strong); font-size: .72rem; }
.section-position-panel > header small { color: var(--text-muted); font-size: .58rem; }
.section-position-panel > header button {
    min-height: 28px;
    padding: 0 9px;
    color: var(--accent-bright);
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 3px;
    cursor: pointer;
    font-size: .61rem;
}

.section-position-panel__preset {
    display: grid;
    gap: 4px;
    color: var(--text-muted);
    font-size: .58rem;
}

.section-position-panel__group { display: grid; gap: 5px; }
.section-position-panel__group > strong { color: var(--text-muted); font-size: .58rem; font-weight: 500; }
.section-position-panel__triplet { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.section-position-panel__triplet > label { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 5px; color: var(--text-muted); font-size: .56rem; }
.section-position-panel select,
.section-position-panel input[type="number"] {
    width: 100%;
    height: 31px;
    color: var(--text);
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 3px;
}
.section-position-panel select { padding: 0 8px; }
.section-position-panel input[type="number"] { padding: 0 7px; }
.section-position-panel__normal-shift { display: grid; grid-template-columns: auto minmax(120px, 1fr); align-items: center; gap: 10px; color: var(--text-muted); font-size: .58rem; }
.section-position-panel input[type="range"] { width: 100%; accent-color: var(--accent-bright); cursor: ew-resize; }
.section-position-panel > footer { color: var(--text-muted); font: 600 .56rem/1 "Cascadia Mono", Consolas, monospace; }
.section-position-panel > footer output { color: var(--accent-bright); font-size: .63rem; }
.section-position-panel > p { margin: 0; padding-top: 6px; color: var(--text-muted); border-top: 1px solid var(--border); font-size: .56rem; line-height: 1.4; }

.engineering-scene {
    position: absolute;
    inset: 4% 2% 8%;
    width: 96%;
    height: 88%;
}

.scene-wheel {
    transform-box: fill-box;
    transform-origin: center;
}

.viewport[data-mode="section"] .scene-part,
.viewport[data-mode="section"] .scene-wheel {
    opacity: .28;
}

.viewport[data-mode="trajectory"] .scene-blank,
.viewport[data-mode="trajectory"] .scene-part {
    opacity: .22;
}

.viewport[data-mode="trajectory"] .scene-trajectory {
    stroke-width: 5px;
}

.view-cube {
    position: absolute;
    top: 18px;
    right: 20px;
    width: 64px;
    height: 64px;
    transform: rotateX(56deg) rotateZ(45deg);
    color: var(--text-muted);
    background: rgba(60, 83, 98, .25);
    border: 1px solid var(--border-strong);
}

.view-cube span,
.view-cube i,
.view-cube b {
    position: absolute;
    font-size: .55rem;
    font-style: normal;
    font-weight: 500;
}

.view-cube span { top: 22px; left: 18px; }
.view-cube i { bottom: -17px; left: 7px; }
.view-cube b { top: 9px; right: -28px; }

.simulation-control {
    position: absolute;
    z-index: 5;
    right: 18px;
    bottom: 14px;
    left: 58px;
    display: grid;
    grid-template-columns: 34px minmax(120px, 1fr) 44px;
    align-items: center;
    gap: 10px;
    padding: 6px 9px;
    background: rgba(8, 18, 25, .82);
    border: 1px solid var(--border);
    border-radius: 5px;
    backdrop-filter: blur(8px);
}

.simulation-play {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    padding: 0;
    color: var(--text-strong);
    background: var(--accent);
    border: 0;
    border-radius: 4px;
    cursor: pointer;
}

.simulation-play .icon {
    width: 17px;
    height: 17px;
}

.simulation-track {
    height: 4px;
    overflow: hidden;
    background: var(--border);
    border-radius: 4px;
}

.simulation-track span {
    display: block;
    width: 0;
    height: 100%;
    background: var(--accent-bright);
}

.simulation-control output {
    color: var(--text-muted);
    font-family: "Cascadia Mono", Consolas, monospace;
    font-size: .68rem;
    text-align: right;
}

.bottom-dock {
    display: grid;
    grid-template-rows: 34px minmax(0, 1fr);
}

.project-events-panel {
    display: grid;
    grid-template-rows: 34px minmax(0, 1fr);
}

.document-tabs--right {
    overflow: hidden;
}

.document-tabs--right .document-tab {
    min-width: 0;
    flex: 1 1 50%;
    padding-inline: 7px;
    font-size: .64rem;
}

.project-events-view {
    min-height: 0;
    overflow: auto;
}

.project-events-view:not(.is-active) {
    display: none;
}

.project-events-panel .operation-log {
    padding: 4px 7px;
}

.project-events-panel .operation-log div {
    grid-template-columns: 68px minmax(0, 1fr);
    gap: 6px;
    padding: 6px 4px;
}

.project-events-panel .operation-log b {
    grid-column: 2;
    justify-self: start;
}

.project-events-empty {
    display: grid;
    min-height: 100%;
    align-content: center;
    gap: 5px;
    padding: 18px;
    color: var(--text-muted);
    text-align: center;
}

.project-events-empty strong {
    color: var(--text);
}

.cad-tree-module.is-current > .cad-tree-module__toggle {
    background: var(--accent-soft);
    box-shadow: inset 3px 0 0 var(--accent-bright);
}

.bottom-view {
    display: none;
    min-height: 0;
    overflow: auto;
}

.bottom-view.is-active {
    display: grid;
}

.bottom-view[data-bottom-view="charts"] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.chart-card {
    min-width: 0;
    padding: 9px 12px;
    border-right: 1px solid var(--border);
}

.chart-card:last-child {
    border-right: 0;
}

.chart-card h3 {
    margin: 0 0 5px;
    color: var(--text);
    font-size: .7rem;
    font-weight: 550;
}

.chart-card svg {
    width: 100%;
    height: 122px;
    overflow: visible;
}

.chart-grid {
    fill: none;
    stroke: var(--border);
    stroke-width: .65;
}

.chart-line {
    fill: none;
    stroke-width: 1.6;
    vector-effect: non-scaling-stroke;
}

.chart-line--blue { stroke: #48a2dc; }
.chart-line--green { stroke: #52c18b; }
.chart-line--orange { stroke: #d79548; }
.chart-line--red { stroke: #df5555; }

.empty-state {
    display: grid;
    place-content: center;
    justify-items: center;
    gap: 5px;
    color: var(--text-muted);
    text-align: center;
}

.empty-state .icon {
    width: 32px;
    height: 32px;
}

.empty-state strong {
    color: var(--text);
}

.operation-log {
    padding: 7px 11px;
}

.operation-log div {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr) auto;
    gap: 10px;
    padding: 7px;
    border-bottom: 1px solid var(--border);
    font-size: .71rem;
}

.operation-log time {
    color: var(--text-muted);
    font-family: "Cascadia Mono", Consolas, monospace;
}

.operation-log b {
    color: var(--success);
    font-size: .68rem;
}

.operation-log .status-muted {
    color: var(--text-muted);
}

.panel__header--tabs {
    padding-left: 0;
}

.mini-tabs {
    align-self: stretch;
}

.mini-tabs button,
.mini-tabs span {
    display: inline-flex;
    height: 100%;
    align-items: center;
    padding: 0 14px;
    background: transparent;
    border: 0;
    color: var(--text-muted);
    font-size: .72rem;
}

.mini-tabs .is-active {
    color: var(--text-strong);
    background: var(--panel-raised);
    box-shadow: inset 0 -2px var(--accent-bright);
}

.inspector-panel {
    display: grid;
    grid-template-rows: 36px minmax(0, 1fr);
}

.inspector-content {
    overflow: auto;
    padding: 14px;
    scrollbar-color: var(--border-strong) transparent;
}

.overline {
    margin: 0 0 5px;
    color: var(--accent-bright);
    font-size: .63rem;
    font-weight: 750;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.inspector-content h2 {
    margin: 0 0 7px;
    color: var(--text-strong);
    font-size: 1.08rem;
}

.inspector-hint {
    margin: 0 0 15px;
    color: var(--text-muted);
    font-size: .72rem;
    line-height: 1.45;
}

.parameter-group {
    min-width: 0;
    margin: 0 0 14px;
    padding: 0;
    border: 0;
}

.parameter-group legend {
    width: 100%;
    padding: 7px 0;
    color: var(--text);
    border-bottom: 1px solid var(--border);
    font-size: .7rem;
    font-weight: 650;
}

.parameter-row {
    display: grid;
    min-height: 32px;
    grid-template-columns: minmax(115px, 1fr) 145px;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid rgba(44, 64, 77, .5);
    color: var(--text-muted);
    font-size: .69rem;
}

.parameter-row select,
.parameter-row input {
    width: 100%;
    height: 25px;
    color: var(--text);
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 2px;
}

.parameter-row select {
    padding: 0 5px;
}

.parameter-row input {
    padding: 0 5px;
    text-align: right;
    font-family: "Cascadia Mono", Consolas, monospace;
}

.engineering-input {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 31px;
    align-items: center;
}

.engineering-input b {
    color: var(--text-muted);
    font-size: .62rem;
    font-weight: 500;
    text-align: right;
}

.button {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    justify-content: center;
    padding: 0 14px;
    border-radius: 4px;
    font-weight: 650;
    cursor: pointer;
}

.button--primary {
    color: #f7fbfd;
    background: var(--accent);
    border: 1px solid #4c95c1;
}

.button--primary:hover {
    background: #3d89b8;
}

.button--block {
    width: 100%;
}

.analysis-summary {
    display: grid;
    grid-template-rows: 36px minmax(0, 1fr);
}

.summary-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.summary-grid div {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 12px;
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.summary-grid div:nth-child(2n) { border-right: 0; }
.summary-grid div:nth-last-child(-n + 2) { border-bottom: 0; }
.summary-grid span { color: var(--text-muted); font-size: .67rem; }
.summary-grid strong { margin-top: 4px; color: var(--text-strong); font-size: 1.15rem; }

.status-bar {
    display: flex;
    align-items: center;
    gap: 22px;
    padding: 0 11px;
    color: var(--text-muted);
    background: var(--title-bar);
    border-top: 1px solid var(--border);
    font-size: .66rem;
    user-select: none;
}

.status-bar > span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.status-bar b {
    color: var(--text);
    font-weight: 500;
}

.status-light {
    width: 7px;
    height: 7px;
    background: var(--success);
    border-radius: 50%;
}

.status-bar__spacer {
    flex: 1;
}

.calculation-monitor {
    position: fixed;
    right: 18px;
    bottom: 38px;
    z-index: 1450;
    width: min(520px, calc(100vw - 36px));
    overflow: hidden;
    color: var(--text);
    background: color-mix(in srgb, var(--panel) 96%, transparent);
    border: 1px solid var(--border-strong);
    border-left: 3px solid var(--accent-bright);
    border-radius: 5px;
    box-shadow: 0 18px 48px rgba(0, 0, 0, .42);
    backdrop-filter: blur(12px);
}

.calculation-monitor[hidden] { display: none; }

.calculation-monitor > header {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 11px 13px 9px;
}

.calculation-monitor > header > span:nth-child(2) { min-width: 0; }
.calculation-monitor > header small,
.calculation-monitor > header strong { display: block; }
.calculation-monitor > header small {
    color: var(--accent-bright);
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.calculation-monitor > header strong {
    overflow: hidden;
    margin-top: 2px;
    color: var(--text-strong);
    font-size: .76rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.calculation-monitor__metrics { min-width: 0; max-width: 215px; text-align: right; }
.calculation-monitor__metrics > b {
    color: var(--text-strong);
    font: 700 .85rem "Cascadia Mono", Consolas, monospace;
}
.calculation-monitor__metrics > small[data-calculation-timing] {
    margin-top: 4px;
    color: var(--muted);
    font: 400 .62rem "Cascadia Mono", Consolas, monospace;
    letter-spacing: normal;
    text-transform: none;
    overflow-wrap: anywhere;
}

.calculation-monitor__symbol {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    color: var(--accent-bright);
    background: color-mix(in srgb, var(--accent) 18%, var(--panel-raised));
    border: 1px solid color-mix(in srgb, var(--accent-bright) 45%, var(--border));
    border-radius: 4px;
}
.calculation-monitor__symbol .icon {
    width: 17px;
    height: 17px;
    animation: calculation-monitor-spin 1.2s linear infinite;
}

.calculation-monitor__progress {
    height: 5px;
    margin: 0 13px;
    overflow: hidden;
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 999px;
}
.calculation-monitor__progress i {
    display: block;
    width: 0;
    height: 100%;
    background: var(--accent-bright);
    transition: width .18s ease;
}

.calculation-monitor__details {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 8px 13px 10px;
    color: var(--text-muted);
    font-size: .61rem;
}
.calculation-monitor__details span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.calculation-monitor__details span:first-child { color: var(--text); }
.calculation-monitor.has-operation-detail .calculation-monitor__details { flex-direction: column; gap: 4px; }
.calculation-monitor.has-operation-detail [data-calculation-operation] { white-space: normal; overflow-wrap: anywhere; }

.calculation-monitor > footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 13px;
    background: color-mix(in srgb, var(--panel-raised) 68%, transparent);
    border-top: 1px solid var(--border);
}
.calculation-monitor__activity {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 6px;
    color: var(--text-muted);
    font-size: .58rem;
}
.calculation-monitor__activity i {
    flex: 0 0 auto;
    width: 6px;
    height: 6px;
    background: var(--success);
    border-radius: 50%;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--success) 16%, transparent);
}
.calculation-monitor__actions { display: inline-flex; gap: 6px; }
.calculation-monitor__actions .button {
    display: inline-flex;
    min-height: 30px;
    align-items: center;
    gap: 6px;
    padding: 5px 9px;
    font-size: .61rem;
}
.calculation-monitor__actions .icon { width: 13px; height: 13px; }
.calculation-monitor.is-paused { border-left-color: var(--warning); }
.calculation-monitor.is-paused .calculation-monitor__symbol .icon { animation-play-state: paused; }
.calculation-monitor.is-failed { border-left-color: var(--danger); }
.calculation-monitor.is-failed .calculation-monitor__symbol { color: var(--danger); }
.calculation-monitor.is-finished { border-left-color: var(--success); }
.calculation-monitor.is-finished .calculation-monitor__symbol { color: var(--success); }
.calculation-monitor.is-finished .calculation-monitor__symbol .icon,
.calculation-monitor.is-failed .calculation-monitor__symbol .icon { animation: none; }
.calculation-monitor.has-activity-warning .calculation-monitor__activity { color: var(--warning); }
.calculation-monitor.has-activity-warning .calculation-monitor__activity i { background: var(--warning); }

@keyframes calculation-monitor-spin {
    to { transform: rotate(360deg); }
}

.desktop-shell.is-left-collapsed .engineering-workspace {
    grid-template-columns: 0 minmax(560px, 1fr) var(--right-dock-width);
}

.desktop-shell.is-right-collapsed .engineering-workspace {
    grid-template-columns: var(--left-dock-width) minmax(560px, 1fr) 0;
}

.desktop-shell.is-left-collapsed.is-right-collapsed .engineering-workspace {
    grid-template-columns: 0 minmax(560px, 1fr) 0;
}

.desktop-shell.is-left-collapsed .dock--left,
.desktop-shell.is-right-collapsed .dock--right {
    visibility: hidden;
}

.desktop-shell.is-left-collapsed [data-panel-resizer="left"],
.desktop-shell.is-right-collapsed [data-panel-resizer="right"] { display: none; }

.desktop-shell.is-bottom-collapsed .center-workspace {
    grid-template-rows: minmax(340px, 1fr) 34px;
}

.desktop-shell.is-bottom-collapsed .bottom-dock {
    grid-template-rows: 34px 0;
}

.desktop-shell.is-bottom-collapsed .bottom-view {
    display: none;
}

.error-page {
    display: grid;
    min-height: 100vh;
    place-items: center;
    padding: 30px;
    background: var(--workspace);
}

.error-card {
    width: min(560px, 100%);
    padding: 30px;
    background: var(--panel);
    border: 1px solid var(--border);
    border-left: 4px solid var(--danger);
    border-radius: 7px;
    box-shadow: var(--shadow);
}

.error-card h1 {
    margin: 12px 0 8px;
    color: var(--text-strong);
}

.error-card p:not(.overline) {
    color: var(--text-muted);
}

.error-card .button {
    margin-top: 12px;
    text-decoration: none;
}

.login-page {
    display: grid;
    height: 100vh;
    min-height: 100vh;
    place-items: center;
    padding: 40px;
    overflow: auto;
    background:
        linear-gradient(rgba(76, 119, 143, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(76, 119, 143, .045) 1px, transparent 1px),
        radial-gradient(circle at 50% 38%, rgba(53, 126, 173, .14), transparent 32%),
        var(--workspace);
    background-size: 32px 32px, 32px 32px, auto, auto;
}

.login-dialog {
    width: 420px;
    overflow: hidden;
    background: var(--panel);
    border: 1px solid var(--border-strong);
    border-radius: 7px;
    box-shadow: 0 28px 80px rgba(0, 0, 0, .42);
}

.login-dialog__header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 20px;
    background: var(--title-bar);
    border-bottom: 1px solid var(--border);
}

.login-dialog__header strong,
.login-dialog__header span {
    display: block;
}

.login-dialog__header strong {
    color: var(--text-strong);
    letter-spacing: .09em;
}

.login-dialog__header span {
    margin-top: 2px;
    color: var(--text-muted);
    font-size: .67rem;
}

.login-dialog__body {
    padding: 27px 28px 25px;
}

.login-dialog h1 {
    margin: 0 0 7px;
    color: var(--text-strong);
    font-size: 1.55rem;
    font-weight: 650;
}

.login-description {
    margin: 0 0 20px;
    color: var(--text-muted);
    font-size: .78rem;
}

.login-form {
    display: grid;
    gap: 14px;
}

.login-form label {
    display: grid;
    gap: 6px;
    color: var(--text);
    font-size: .72rem;
}

.login-form input {
    width: 100%;
    height: 38px;
    padding: 0 10px;
    color: var(--text-strong);
    background: var(--input);
    border: 1px solid var(--border-strong);
    border-radius: 4px;
}

.login-form input:focus {
    border-color: var(--accent-bright);
}

.login-submit {
    min-height: 40px;
    margin-top: 4px;
}

.login-notice {
    margin-bottom: 16px;
    padding: 10px 11px;
    border: 1px solid;
    border-radius: 4px;
    font-size: .72rem;
    line-height: 1.45;
}

.login-notice--timeout {
    color: #e4c47f;
    background: rgba(155, 113, 36, .15);
    border-color: #765b28;
}

.login-notice--error {
    color: #ef9c9c;
    background: rgba(151, 45, 45, .16);
    border-color: #814141;
}

.login-notice--success {
    color: #96e2c4;
    background: rgba(45, 137, 103, .16);
    border-color: #397a63;
}

.login-secondary-action {
    margin: 18px 0 0;
    color: var(--text-muted);
    font-size: .72rem;
    text-align: center;
}

.login-secondary-action a {
    color: var(--accent-bright);
}

.verification-resend {
    margin-top: 16px;
    color: var(--text-muted);
    font-size: .7rem;
}

.verification-resend summary {
    cursor: pointer;
    text-align: center;
}

.verification-resend .login-form {
    margin-top: 13px;
    padding-top: 13px;
    border-top: 1px solid var(--border);
}

.registration-dialog {
    width: 500px;
}

.login-page--registration {
    place-items: start center;
}

.field-error {
    color: var(--danger);
    line-height: 1.35;
}

.button--quiet {
    color: var(--text);
    background: var(--panel-soft);
    border: 1px solid var(--border-strong);
    text-decoration: none;
}

.button--quiet:hover {
    color: var(--text-strong);
    background: var(--accent-soft);
}

.button--danger {
    color: #fff2f2;
    background: #873a3a;
    border: 1px solid #b25151;
}

.button--danger:hover {
    background: #9d4444;
}

.notification-icon-button {
    position: relative;
    color: var(--accent-bright);
}

.notification-icon-button > span {
    font-size: .78rem;
}

.notification-icon-button b,
.notification-button span {
    display: inline-grid;
    min-width: 17px;
    height: 17px;
    place-items: center;
    padding: 0 4px;
    color: #fff;
    background: #b84242;
    border-radius: 9px;
    font-size: .59rem;
}

.notification-icon-button b {
    position: absolute;
    top: 3px;
    right: 1px;
}

.notification-popover {
    position: absolute;
    z-index: 100;
    top: 46px;
    right: 12px;
    width: 390px;
    max-height: min(620px, calc(100vh - 70px));
    overflow: auto;
    color: var(--text);
    background: var(--panel-raised);
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    box-shadow: 0 24px 65px rgba(0, 0, 0, .48);
}

.notification-popover[hidden] {
    display: none;
}

.notification-popover > header {
    position: sticky;
    z-index: 2;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 11px 13px;
    background: var(--panel-soft);
    border-bottom: 1px solid var(--border);
}

.notification-popover > header button {
    padding: 0;
    color: var(--accent-bright);
    background: transparent;
    border: 0;
    cursor: pointer;
    font-size: .67rem;
}

.interface-settings-popover {
    position: absolute;
    z-index: 190;
    top: calc(100% + 5px);
    right: 205px;
    width: 350px;
    overflow: hidden;
    color: var(--text);
    background: var(--panel-raised);
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    box-shadow: 0 25px 70px rgba(0, 0, 0, .5);
}

.interface-settings-popover[hidden] { display: none; }

.interface-settings-popover > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 11px 13px;
    background: var(--panel-soft);
    border-bottom: 1px solid var(--border);
}

.interface-settings-popover > header strong { color: var(--text-strong); font-size: .76rem; }
.interface-settings-popover > header button {
    padding: 0 3px;
    color: var(--text-muted);
    background: transparent;
    border: 0;
    cursor: pointer;
    font-size: 1.1rem;
}

.interface-settings-popover fieldset {
    min-width: 0;
    margin: 0;
    padding: 12px 13px;
    border: 0;
    border-bottom: 1px solid var(--border);
}

.interface-settings-popover legend {
    padding: 0;
    color: var(--text-muted);
    font-size: .65rem;
    font-weight: 650;
}

.interface-setting-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    margin-top: 8px;
}

.interface-setting-options--font { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.interface-setting-options--precision { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.interface-setting-options label { position: relative; cursor: pointer; }
.interface-setting-options input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.interface-setting-options label > span {
    display: flex;
    min-height: 43px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 7px;
    color: var(--text-muted);
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
    text-align: center;
}

.interface-setting-options label:has(input:checked) > span {
    color: var(--text-strong);
    background: var(--accent-soft);
    border-color: var(--accent-bright);
}

.interface-setting-options strong,
.interface-setting-options small { display: block; }
.interface-setting-options strong { font-size: .72rem; }
.interface-setting-options small { margin-top: 2px; color: var(--text-muted); font-size: .57rem; }
.theme-swatch { display: block; width: 24px; height: 24px; border: 1px solid var(--border-strong); border-radius: 3px; }
.theme-swatch--dark { background: linear-gradient(135deg, #0a131a 50%, #1a2a36 50%); }
.theme-swatch--light { background: linear-gradient(135deg, #e9f0f5 50%, #ffffff 50%); }
.interface-settings-popover > p { margin: 0; padding: 10px 13px; color: var(--text-muted); font-size: .61rem; line-height: 1.4; }

.notification-item {
    position: relative;
    padding: 11px 14px 11px 17px;
    border-bottom: 1px solid var(--border);
}

.notification-item::before {
    position: absolute;
    top: 12px;
    bottom: 12px;
    left: 6px;
    width: 3px;
    background: var(--accent);
    border-radius: 2px;
    content: "";
}

.notification-item--success::before { background: var(--success); }
.notification-item--warning::before { background: var(--warning); }
.notification-item--error::before { background: var(--danger); }
.notification-item.is-unread { background: rgba(88, 169, 216, .08); }
.notification-item strong { display: block; color: var(--text-strong); font-size: .75rem; }
.notification-item p { margin: 4px 0 6px; color: var(--text); font-size: .7rem; line-height: 1.45; }
.notification-item time { color: var(--text-muted); font-size: .62rem; }
.notification-empty { margin: 0; padding: 25px 15px; color: var(--text-muted); text-align: center; }

.portal-shell {
    height: 100vh;
    overflow: auto;
    background:
        linear-gradient(rgba(76, 119, 143, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(76, 119, 143, .035) 1px, transparent 1px),
        var(--workspace);
    background-size: 32px 32px;
}

.portal-header {
    position: sticky;
    z-index: 60;
    top: 0;
    height: var(--title-bar-height);
    min-height: 0;
    grid-template-columns: minmax(286px, max-content) minmax(0, 1fr) max-content;
    box-shadow: none;
}

.portal-header__navigation,
.portal-header__actions {
    display: flex;
    align-items: stretch;
}

.portal-header__actions .user-menu {
    min-height: 0;
}

.portal-header__actions .user-menu__trigger {
    border: 0;
    border-left: 1px solid var(--border);
    border-radius: 0;
}

.portal-header__navigation a {
    position: relative;
    display: flex;
    align-items: center;
    padding: 0 13px;
    color: var(--text-muted);
    text-decoration: none;
    font-size: .73rem;
}

.portal-header__navigation a:hover {
    color: var(--text-strong);
    background: var(--accent-soft);
}

.portal-header__navigation a::after {
    position: absolute;
    right: 13px;
    bottom: 0;
    left: 13px;
    height: 2px;
    background: transparent;
    content: "";
}

.portal-header__navigation a:hover::after,
.portal-header__navigation a:focus-visible::after {
    background: var(--accent-bright);
}

.portal-header__actions {
    align-items: center;
    gap: 0;
    padding-right: 10px;
}

.portal-header__actions form {
    margin: 0;
}

.notification-button {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    gap: 7px;
    padding: 0 10px;
    color: var(--text-muted);
    background: transparent;
    border: 1px solid var(--border);
    border-radius: 4px;
    cursor: pointer;
}

.notification-button:hover {
    color: var(--text-strong);
    background: var(--accent-soft);
}

.portal-content {
    width: min(1440px, calc(100% - 56px));
    min-height: calc(100vh - var(--title-bar-height));
    margin: 0 auto;
    padding: 28px 0 60px;
}

.portal-page-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    margin-bottom: 18px;
    padding: 0 2px 16px;
    border-bottom: 1px solid var(--border);
}

.portal-page-heading h1 {
    margin: 0;
    color: var(--text-strong);
    font-size: 1.7rem;
    font-weight: 650;
}

.portal-page-heading__identity {
    display: flex;
    flex-direction: column;
    align-items: end;
}

.portal-page-heading__identity strong { color: var(--text); }
.portal-page-heading__identity span { margin-top: 3px; color: var(--text-muted); font-size: .68rem; }

.portal-flash {
    margin-bottom: 18px;
    padding: 11px 14px;
    color: var(--text);
    background: var(--panel);
    border: 1px solid var(--border-strong);
    border-left: 4px solid var(--accent);
    border-radius: 4px;
}

.portal-flash--success { border-left-color: var(--success); }
.portal-flash--error { border-left-color: var(--danger); }

.portal-grid {
    display: grid;
    gap: 18px;
}

.portal-grid--two-columns,
.portal-grid--support {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portal-card {
    min-width: 0;
    overflow: hidden;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 6px;
    box-shadow: var(--shadow);
}

.portal-card--wide {
    margin-top: 18px;
}

.portal-card--form {
    width: min(820px, 100%);
}

.portal-card__header {
    padding: 17px 20px 14px;
    background: var(--panel-soft);
    border-bottom: 1px solid var(--border);
}

.portal-card__header--spread {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.portal-card__header h2 {
    margin: 0;
    color: var(--text-strong);
    font-size: 1.05rem;
    font-weight: 650;
}

.portal-form {
    display: grid;
    gap: 14px;
    padding: 20px;
}

.portal-form label:not(.checkbox-row) {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    color: var(--text);
    font-size: .72rem;
}

.portal-form label > span:first-child {
    padding-top: 9px;
}

.portal-form input,
.portal-form select,
.portal-form textarea,
.deactivate-form input {
    width: 100%;
    min-height: 36px;
    padding: 7px 9px;
    color: var(--text-strong);
    background: var(--input);
    border: 1px solid var(--border-strong);
    border-radius: 3px;
}

.portal-form textarea {
    resize: vertical;
    line-height: 1.45;
}

.portal-form input:focus,
.portal-form select:focus,
.portal-form textarea:focus,
.deactivate-form input:focus {
    border-color: var(--accent-bright);
    outline: 1px solid var(--accent-bright);
}

.portal-form .button {
    justify-self: end;
}

.form-hint {
    margin: -4px 0 0 202px;
    color: var(--text-muted);
    font-size: .68rem;
    line-height: 1.45;
}

.form-hint--warning { color: var(--warning); }

.checkbox-row {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--text);
    font-size: .72rem;
}

.help-page {
    display: grid;
    gap: 18px;
}

.help-document {
    width: min(980px, 100%);
    margin: 0 auto;
}

.help-document--legal {
    width: min(1060px, 100%);
}

.help-document__header {
    gap: 18px;
}

.help-document__notice {
    padding: 12px 20px;
    color: var(--warning);
    background: color-mix(in srgb, var(--warning) 8%, var(--panel));
    border-bottom: 1px solid color-mix(in srgb, var(--warning) 35%, var(--border));
    font-size: .7rem;
    line-height: 1.5;
}

.help-document__notice code {
    color: var(--text-strong);
}

.help-document__body {
    padding: clamp(24px, 4vw, 48px);
}

.help-document__footer {
    padding: 13px 20px;
    color: var(--text-muted);
    background: var(--panel-soft);
    border-top: 1px solid var(--border);
    font-size: .64rem;
    text-align: right;
}

.rich-content {
    color: var(--text);
    font-size: .82rem;
    line-height: 1.72;
}

.rich-content > :first-child {
    margin-top: 0;
}

.rich-content > :last-child {
    margin-bottom: 0;
}

.rich-content h2 {
    margin: 2.1em 0 .7em;
    color: var(--text-strong);
    font-size: 1.22rem;
    line-height: 1.3;
}

.rich-content h3 {
    margin: 1.6em 0 .55em;
    color: var(--text-strong);
    font-size: 1rem;
    line-height: 1.35;
}

.rich-content p {
    margin: 0 0 1em;
}

.rich-content ul,
.rich-content ol {
    margin: 0 0 1.15em;
    padding-left: 1.7em;
}

.rich-content li + li {
    margin-top: .42em;
}

.rich-content blockquote {
    margin: 1.35em 0;
    padding: .8em 1.1em;
    background: var(--panel-soft);
    border-left: 3px solid var(--accent-bright);
}

.rich-content a {
    color: var(--accent-bright);
}

.help-legal-title {
    padding: clamp(30px, 5vw, 60px);
    background:
        linear-gradient(135deg, rgba(55, 151, 207, .12), transparent 48%),
        var(--panel-soft);
    border-bottom: 1px solid var(--border);
}

.help-legal-title h2 {
    max-width: 760px;
    margin: 10px 0 30px;
    color: var(--text-strong);
    font-size: clamp(1.65rem, 3.2vw, 2.65rem);
    font-weight: 650;
    line-height: 1.13;
    text-transform: uppercase;
}

.help-legal-metadata,
.legal-owner-details {
    display: grid;
    margin: 0;
    border-top: 1px solid var(--border);
}

.help-legal-metadata div,
.legal-owner-details div {
    display: grid;
    grid-template-columns: minmax(160px, 240px) minmax(0, 1fr);
    gap: 18px;
    padding: 9px 0;
    border-bottom: 1px solid var(--border);
}

.help-legal-metadata dt,
.legal-owner-details dt {
    color: var(--text-muted);
}

.help-legal-metadata dd,
.legal-owner-details dd {
    margin: 0;
    color: var(--text-strong);
}

.help-legal-draft {
    margin: 22px 0 0;
    padding: 12px 14px;
    color: var(--warning);
    background: color-mix(in srgb, var(--warning) 8%, transparent);
    border: 1px solid color-mix(in srgb, var(--warning) 40%, var(--border));
    border-radius: 4px;
    font-size: .74rem;
    line-height: 1.55;
}

.legal-content {
    font-size: .78rem;
}

.legal-content h2 {
    padding-top: .6em;
    border-top: 1px solid var(--border);
}

.legal-owner-details {
    margin: 0 0 2em;
}

.legal-acceptance {
    margin-top: 2.5em !important;
    padding: 18px;
    color: var(--text-strong);
    background: var(--panel-soft);
    border: 1px solid var(--border-strong);
    border-left: 4px solid var(--accent-bright);
    line-height: 1.62;
}

.help-editor {
    width: min(1120px, 100%);
    margin: 0 auto;
}

.help-editor[hidden] {
    display: none;
}

.help-editor form {
    display: grid;
    gap: 12px;
    padding: 20px;
}

.help-editor__title-field {
    display: grid;
    grid-template-columns: 130px minmax(150px, 1fr);
    align-items: center;
    gap: 12px;
    color: var(--text);
    font-size: .72rem;
}

.help-editor__title-field input {
    width: 100%;
    min-height: 36px;
    padding: 7px 9px;
    color: var(--text-strong);
    background: var(--input);
    border: 1px solid var(--border-strong);
    border-radius: 3px;
}

.rich-text-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    padding: 5px;
    background: var(--panel-soft);
    border: 1px solid var(--border-strong);
    border-radius: 4px;
}

.rich-text-toolbar button,
.rich-text-toolbar select {
    min-height: 32px;
    padding: 0 9px;
    color: var(--text);
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 3px;
    cursor: pointer;
    font: inherit;
    font-size: .68rem;
}

.rich-text-toolbar button:hover,
.rich-text-toolbar select:hover {
    color: var(--text-strong);
    border-color: var(--accent-bright);
}

.help-editor__surface {
    min-height: 480px;
    overflow: auto;
    padding: 28px;
    background: var(--input);
    border: 1px solid var(--border-strong);
    border-radius: 4px;
    outline: none;
}

.help-editor__surface:focus {
    border-color: var(--accent-bright);
    box-shadow: 0 0 0 1px var(--accent-bright);
}

.help-editor__actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

@media (max-width: 720px) {
    .help-legal-metadata div,
    .legal-owner-details div,
    .help-editor__title-field {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .help-document__body,
    .help-editor__surface {
        padding: 20px;
    }
}

.checkbox-row input { width: auto; min-height: 0; }
.checkbox-row span { padding: 0 !important; }

.record-list {
    min-height: 100px;
}

.record-list__empty {
    margin: 0;
    padding: 28px 20px;
    color: var(--text-muted);
    text-align: center;
}

.record-row {
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr) auto 145px;
    align-items: center;
    gap: 12px;
    min-height: 54px;
    padding: 8px 16px;
    color: var(--text);
    border-bottom: 1px solid var(--border);
    text-decoration: none;
}

.record-row--queue { grid-template-columns: 70px minmax(0, 1fr) 180px auto 145px; }
.record-row:hover { background: var(--accent-soft); }
.record-row__number, .record-row time { color: var(--text-muted); font-family: "Cascadia Mono", Consolas, monospace; font-size: .66rem; }

.status-pill {
    display: inline-flex;
    min-height: 22px;
    align-items: center;
    padding: 0 8px;
    color: #a9d7f2;
    background: rgba(53, 126, 173, .17);
    border: 1px solid rgba(88, 169, 216, .28);
    border-radius: 11px;
    font-size: .63rem;
    white-space: nowrap;
}

.status-pill--active,
.status-pill--answered { color: #9ae0c4; background: rgba(46, 138, 104, .16); border-color: rgba(84, 199, 157, .3); }
.status-pill--pending_email,
.status-pill--pending_approval,
.status-pill--open { color: #e2c77e; background: rgba(151, 112, 36, .16); border-color: rgba(215, 169, 77, .3); }
.status-pill--deactivated,
.status-pill--blocked { color: #ed9d9d; background: rgba(151, 45, 45, .16); border-color: rgba(223, 105, 105, .3); }
.status-pill--closed,
.status-pill--archived { color: var(--text-muted); background: var(--panel-soft); border-color: var(--border); }

.ticket-meta {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
    border-bottom: 1px solid var(--border);
}

.ticket-meta div { padding: 11px 17px; border-right: 1px solid var(--border); }
.ticket-meta div:last-child { border-right: 0; }
.ticket-meta dt { color: var(--text-muted); font-size: .63rem; }
.ticket-meta dd { margin: 4px 0 0; color: var(--text); }

.account-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
}

.account-summary div { padding: 16px 18px; border-right: 1px solid var(--border); }
.account-summary div:last-child { border-right: 0; }
.account-summary dt { color: var(--text-muted); font-size: .65rem; }
.account-summary dd { margin: 6px 0 0; color: var(--text-strong); }

.account-avatar-editor {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    align-items: center;
    gap: 17px;
    padding: 18px 20px;
    background: var(--panel-raised);
    border-bottom: 1px solid var(--border);
}

.account-avatar-preview {
    display: grid;
    width: 84px;
    height: 84px;
    overflow: hidden;
    place-items: center;
    color: #d8effc;
    background: linear-gradient(145deg, #357ead, #173e58);
    border: 1px solid #5793b7;
    border-radius: 50%;
    font-size: 1.7rem;
    font-weight: 750;
}

.account-avatar-preview img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.account-avatar-editor__content h3 {
    margin: 0;
    color: var(--text-strong);
    font-size: .82rem;
}

.account-avatar-editor__content > p {
    margin: 4px 0 10px;
    color: var(--text-muted);
    font-size: .65rem;
    line-height: 1.4;
}

.account-avatar-upload {
    display: flex;
    align-items: center;
    gap: 8px;
}

.file-input {
    display: grid;
    min-width: 0;
    flex: 1;
    gap: 4px;
    color: var(--text-muted);
    font-size: .62rem;
}

.file-input input[type="file"] {
    width: 100%;
    min-height: 34px;
    color: var(--text);
    background: var(--input);
    border: 1px solid var(--border-strong);
    border-radius: 3px;
    font-size: .65rem;
}

.file-input input[type="file"]::file-selector-button {
    height: 32px;
    margin-right: 9px;
    padding: 0 10px;
    color: var(--text);
    background: var(--panel-soft);
    border: 0;
    border-right: 1px solid var(--border-strong);
    cursor: pointer;
}

.account-avatar-delete {
    margin-top: 7px;
    text-align: right;
}

.account-avatar-delete button {
    padding: 0;
    color: var(--danger);
    background: transparent;
    border: 0;
    cursor: pointer;
    font-size: .63rem;
}

.account-avatar-delete button:hover {
    text-decoration: underline;
}

.conversation-list {
    display: grid;
    gap: 12px;
    padding: 20px;
    background: var(--workspace);
}

.conversation-message {
    width: min(760px, 82%);
    padding: 12px 14px;
    background: var(--panel-raised);
    border: 1px solid var(--border);
    border-left: 3px solid var(--accent);
    border-radius: 4px;
}

.conversation-message.is-own { justify-self: end; border-left-color: var(--success); }
.conversation-message header { display: flex; justify-content: space-between; gap: 20px; }
.conversation-message header strong { color: var(--text-strong); }
.conversation-message time { color: var(--text-muted); font-size: .63rem; }
.conversation-message p { margin: 9px 0 0; color: var(--text); line-height: 1.55; }
.conversation-form { border-top: 1px solid var(--border); }
.inline-action-form { padding: 0 20px 20px; text-align: right; }
.form-actions { display: flex; justify-content: end; }

.card-counter { color: var(--text-muted); font-family: "Cascadia Mono", Consolas, monospace; }

.user-admin-list {
    display: grid;
}

.user-admin-row {
    display: grid;
    gap: 12px;
    padding: 16px 18px;
    border-bottom: 1px solid var(--border);
}

.user-admin-row.is-protected { background: color-mix(in srgb, var(--panel-soft) 78%, transparent); }
.user-admin-row__summary { display: grid; grid-template-columns: minmax(260px, 1fr) auto minmax(180px, .7fr); align-items: center; gap: 14px; }
.user-admin-row__identity { display: flex; flex-direction: column; align-items: start; gap: 4px; }
.user-admin-row__identity strong { color: var(--text-strong); }
.user-admin-row__identity > span:not(.status-pill) { color: var(--text-muted); font-size: .68rem; }
.user-admin-row__summary > small { grid-column: 1 / -1; color: var(--text-muted); }
.user-admin-row__statuses { display: flex; flex-wrap: wrap; justify-content: end; gap: 6px; }
.user-admin-row__role-summary { color: var(--text-muted); font-size: .68rem; text-align: right; }
.user-admin-editor { border: 1px solid var(--border); background: var(--panel-soft); }
.user-admin-editor > summary { padding: 10px 12px; color: var(--accent-bright); cursor: pointer; user-select: none; }
.user-admin-editor[open] > summary { border-bottom: 1px solid var(--border); }
.user-admin-editor__content { display: grid; gap: 14px; padding: 14px; }
.user-create-card { margin-bottom: 18px; }
.user-create-form,
.user-edit-form { gap: 13px; }
.user-fields-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px 14px; }
.user-role-fieldset { min-width: 0; margin: 0; padding: 10px 12px; border: 1px solid var(--border); }
.user-role-fieldset legend { padding: 0 7px; color: var(--text-muted); font-size: .68rem; }
.role-editor { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 14px; padding-top: 12px; border-top: 1px solid var(--border); }
.portal-form .role-checkboxes,
.role-editor .role-checkboxes {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 7px;
}
.portal-form .role-checkboxes label:not(.checkbox-row),
.role-editor .role-checkboxes label {
    display: flex;
    min-width: 0;
    min-height: 36px;
    align-items: center;
    gap: 8px;
    padding: 7px 9px;
    color: var(--text);
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
    cursor: pointer;
    font-size: .7rem;
}
.portal-form .role-checkboxes label:not(.checkbox-row):hover,
.role-editor .role-checkboxes label:hover {
    border-color: var(--accent);
}
.portal-form .role-checkboxes label:not(.checkbox-row):has(input:checked),
.role-editor .role-checkboxes label:has(input:checked) {
    background: var(--accent-soft);
    border-color: var(--accent);
}
.portal-form .role-checkboxes label > span:first-child,
.role-editor .role-checkboxes label > span:first-child {
    min-width: 0;
    padding: 0;
}
.portal-form .role-checkboxes input[type="checkbox"],
.role-editor .role-checkboxes input[type="checkbox"] {
    width: 16px;
    min-width: 16px;
    height: 16px;
    min-height: 0;
    flex: 0 0 16px;
    margin: 0;
    padding: 0;
    accent-color: var(--accent);
}
.user-admin-row__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: end; gap: 8px; padding-top: 12px; border-top: 1px solid var(--border); }
.deactivate-form { display: grid; grid-template-columns: minmax(140px, 1fr) auto; gap: 7px; }
.status-pill--password-setup_required,
.status-pill--password-reset_required { color: var(--warning); border-color: color-mix(in srgb, var(--warning) 55%, transparent); }
.status-pill--password-active { color: var(--success); border-color: color-mix(in srgb, var(--success) 55%, transparent); }
.password-setup-summary { display: grid; margin: 0 0 18px; border: 1px solid var(--border); }
.password-setup-summary div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 12px; padding: 8px 10px; border-bottom: 1px solid var(--border); }
.password-setup-summary div:last-child { border-bottom: 0; }
.password-setup-summary dt { color: var(--text-muted); }
.password-setup-summary dd { margin: 0; color: var(--text-strong); overflow-wrap: anywhere; }

.portal-grid--administration { margin-top: 18px; }
.queue-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.queue-summary div { display: flex; flex-direction: column; gap: 5px; padding: 18px; border-right: 1px solid var(--border); }
.queue-summary div:last-child { border-right: 0; }
.queue-summary span { color: var(--text-muted); font-size: .67rem; }
.queue-summary strong { color: var(--text-strong); font-size: 1.3rem; }
.notification-history-row { grid-template-columns: 60px minmax(0, 1fr) 80px 90px; }

.role-administration-layout { grid-template-columns: minmax(460px, .9fr) minmax(520px, 1.1fr); }
.permission-directory { margin: 0; padding: 10px 18px; }
.permission-directory div { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--border); }
.permission-directory div:last-child { border-bottom: 0; }
.permission-directory dt { color: var(--accent-bright); font-family: "Cascadia Mono", Consolas, monospace; font-size: .65rem; }
.permission-directory dd { margin: 0; color: var(--text); font-size: .7rem; }
.role-card-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.role-card { min-width: 0; padding: 17px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.role-card:nth-child(2n) { border-right: 0; }
.role-card > header { display: flex; align-items: start; justify-content: space-between; gap: 15px; margin-bottom: 13px; }
.role-card > header div { display: flex; flex-direction: column; gap: 3px; }
.role-card > header strong { color: var(--text-strong); }
.role-card > header span { color: var(--text-muted); font-size: .66rem; }
.permission-checkboxes { display: grid; gap: 7px; margin-bottom: 14px; }
.permission-checkboxes label { display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: start; gap: 7px; color: var(--text); }
.permission-checkboxes input { margin-top: 2px; accent-color: var(--accent); }
.permission-checkboxes span { display: flex; flex-direction: column; gap: 2px; }
.permission-checkboxes strong { font-size: .7rem; font-weight: 550; }
.permission-checkboxes small { color: var(--text-muted); font-family: "Cascadia Mono", Consolas, monospace; font-size: .61rem; }
.role-card__hint { margin: 0; }

.impersonation-control {
    display: flex;
    min-width: 0;
    height: 38px;
    align-items: center;
    gap: 9px;
    margin: 0 7px 0 0;
    padding: 3px 4px 3px 10px;
    background: color-mix(in srgb, var(--warning) 13%, var(--panel));
    border: 1px solid color-mix(in srgb, var(--warning) 62%, var(--border));
    border-radius: 4px;
}
.impersonation-control > span {
    display: flex;
    min-width: 0;
    max-width: 220px;
    flex-direction: column;
    line-height: 1.15;
}
.impersonation-control small {
    color: var(--warning);
    font-size: .52rem;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.impersonation-control strong {
    overflow: hidden;
    color: var(--text-strong);
    font-size: .65rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.impersonation-control button {
    height: 28px;
    padding: 0 9px;
    color: var(--text-strong);
    background: color-mix(in srgb, var(--warning) 20%, transparent);
    border: 1px solid color-mix(in srgb, var(--warning) 58%, var(--border));
    border-radius: 3px;
    cursor: pointer;
    font-size: .62rem;
}
.impersonation-control button:hover { background: color-mix(in srgb, var(--warning) 30%, transparent); }
.impersonation-intro { margin-top: 0; }
.impersonation-intro > p { margin: 0; padding: 14px 20px 0; color: var(--text); line-height: 1.55; }
.impersonation-intro > p:last-child { padding-bottom: 17px; }
.impersonation-intro .impersonation-warning { color: var(--warning); }
.impersonation-options { margin-top: 18px; }
.impersonation-status-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
    padding: 14px 16px;
    background: color-mix(in srgb, var(--warning) 10%, var(--panel));
    border: 1px solid color-mix(in srgb, var(--warning) 55%, var(--border));
    border-radius: 5px;
}
.impersonation-status-card > div { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.impersonation-status-card strong { color: var(--text-strong); font-size: .9rem; }
.impersonation-status-card span { color: var(--text-muted); font-size: .66rem; }

@media (max-width: 1280px) {
    .portal-header__navigation a { padding: 0 8px; }
    .portal-content { width: calc(100% - 32px); }
    .user-admin-row__summary { grid-template-columns: minmax(230px, 1fr) auto; }
    .user-admin-row__role-summary { grid-column: 1 / -1; text-align: left; }
    .user-fields-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.login-dialog__footer {
    padding: 10px 20px;
    color: var(--text-muted);
    background: var(--panel-soft);
    border-top: 1px solid var(--border);
    font-size: .65rem;
    text-align: center;
}

@media (max-height: 760px) {
    .desktop-shell {
        --title-bar-height: 44px;
        grid-template-rows: var(--title-bar-height) 74px minmax(0, 1fr) 25px;
    }

    .ribbon-command .icon {
        width: 24px;
        height: 24px;
    }

    .center-workspace { grid-template-rows: minmax(300px, 1fr); }

    .chart-card svg {
        height: 82px;
    }
}

/* CAD document foundation */
.workspace-flash {
    position: fixed;
    z-index: 90;
    top: 142px;
    left: 50%;
    display: flex;
    width: min(720px, calc(100vw - 60px));
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 13px;
    transform: translateX(-50%);
    color: var(--text-strong);
    background: var(--panel-raised);
    border: 1px solid var(--border-strong);
    border-left: 4px solid var(--accent-bright);
    border-radius: 5px;
    box-shadow: var(--shadow);
}

.workspace-flash--success { border-left-color: var(--success); }
.workspace-flash--error { border-left-color: var(--danger); }

.workspace-flash button {
    padding: 0 4px;
    color: var(--text-muted);
    background: transparent;
    border: 0;
    cursor: pointer;
    font-size: 1.2rem;
}

.project-caption__status.is-empty {
    background: var(--text-muted);
    box-shadow: 0 0 0 3px rgba(130, 146, 157, .12);
}

.tree-empty,
.panel-empty-copy,
.inspector-empty {
    color: var(--text-muted);
    font-size: .7rem;
    line-height: 1.5;
}

.tree-empty,
.panel-empty-copy {
    padding: 15px 12px;
}

.cad-tree-module {
    position: relative;
    border-bottom: 1px solid var(--border);
}

.cad-tree-module__toggle {
    display: grid;
    width: 100%;
    min-height: 32px;
    grid-template-columns: 48px minmax(0, 1fr) auto 14px;
    align-items: center;
    gap: 5px;
    padding: 2px 32px 2px 8px;
    color: var(--text);
    background: var(--panel-soft);
    border: 0;
    cursor: pointer;
    text-align: left;
}

.cad-tree-module__toggle:hover {
    color: var(--text-strong);
    background: var(--accent-soft);
}

.workflow-stage-marker {
    display: grid;
    grid-template-columns: auto 16px;
    align-items: center;
    justify-content: start;
    gap: 5px;
    color: var(--text-muted);
}

.workflow-stage-marker > b {
    font-family: "Cascadia Mono", Consolas, monospace;
    font-size: .64rem;
    font-weight: 700;
}

.workflow-stage-marker__icon {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cad-tree-module.is-status-complete > .cad-tree-module__toggle .workflow-stage-marker { color: var(--success); }
.cad-tree-module.is-status-warning > .cad-tree-module__toggle .workflow-stage-marker { color: var(--warning); }
.cad-tree-module.is-status-error > .cad-tree-module__toggle .workflow-stage-marker { color: var(--danger); }
.cad-tree-module.is-status-planned > .cad-tree-module__toggle .workflow-stage-marker { color: var(--text-muted); }

.finishing-module-outline { margin: 8px 0; padding-left: 30px; color: var(--text-muted); font-size: .7rem; line-height: 1.7; }
.workspace-dialog.edge-preparation-dialog { width: min(760px, calc(100vw - 32px)); }
.edge-preparation-roles { border: 1px solid var(--border); padding: 10px; border-radius: 4px; }
.edge-preparation-roles summary { cursor: pointer; }
.edge-preparation-face-list { max-height: 220px; overflow: auto; margin-block: 8px; }
.edge-preparation-face-list > label { display: grid; grid-template-columns: minmax(0, 1fr) minmax(160px, 0.7fr); gap: 12px; align-items: center; margin-bottom: 6px; }
.edge-preparation-face-list small { display: block; overflow-wrap: anywhere; opacity: .7; }
.workspace-dialog__form .edge-preparation-confirm { display: flex; align-items: flex-start; gap: 8px; }
.workspace-dialog__form .edge-preparation-confirm[hidden] { display: none; }
.workspace-dialog__form .edge-preparation-confirm input { width: auto; height: auto; padding: 0; flex: 0 0 auto; margin-top: 3px; }
.edge-preparation-roles p { font-size: 12px; }
.edge-preparation-sections { margin: 10px 17px; font-size: .72rem; }
.edge-preparation-sections[hidden] { display: none; }
.edge-preparation-sections h3 { margin: 0 0 6px; font-size: .8rem; }
.edge-preparation-sections p { color: var(--text-muted); line-height: 1.5; }
.edge-preparation-radius-scroll { max-height: 280px; overflow: auto; }
.edge-preparation-radius-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.edge-preparation-radius-table th, .edge-preparation-radius-table td { padding: 8px; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.edge-preparation-radius-table th:last-child { width: 155px; }
.edge-preparation-radius-table th { background: var(--input); position: sticky; top: 0; }
.edge-preparation-radius-table small { display: block; margin-top: 4px; color: var(--text-muted); }
.edge-preparation-radius-table button { margin-top: 4px; }
.finishing-module-overview { min-width: 0; font-size: .72rem; line-height: 1.5; overflow-wrap: anywhere; }
.finishing-module-overview > p { color: var(--text-muted); margin: 10px 0; }
.finishing-module-overview .finishing-module-overview__status { padding: 8px; border: 1px solid var(--border); border-radius: 4px; color: var(--text); }
.finishing-module-overview h3 { margin: 18px 0 6px; font-size: .76rem; }
.finishing-module-overview details { border-bottom: 1px solid var(--border); }
.finishing-module-overview summary { cursor: pointer; padding: 7px 0; }
.finishing-module-overview summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.finishing-module-overview details p { margin: 0 0 9px; color: var(--text-muted); }

.cad-tree-module__toggle > strong {
    overflow: hidden;
    color: var(--text-strong);
    font-size: .74rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cad-tree-module__toggle > small {
    overflow: hidden;
    color: var(--text-muted);
    font-size: .61rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cad-tree-module__toggle > i {
    color: var(--text-muted);
    font-size: .75rem;
    font-style: normal;
    transform: rotate(-90deg);
    transition: transform .12s ease;
}

.cad-tree-module.is-expanded .cad-tree-module__toggle > i { transform: rotate(0deg); }
.cad-tree-module__content { padding: 2px 0 3px; }
.cad-tree-module__content[hidden] { display: none; }

.cad-tree-module__help {
    position: absolute;
    z-index: 3;
    top: 7px;
    right: 7px;
    display: grid;
    width: 18px;
    height: 18px;
    place-items: center;
    padding: 0;
    color: var(--accent-bright);
    background: color-mix(in srgb, var(--accent) 10%, var(--panel-raised));
    border: 1px solid color-mix(in srgb, var(--accent-bright) 55%, var(--border));
    border-radius: 50%;
    cursor: help;
    font: 700 .62rem/1 Arial, sans-serif;
}

.cad-tree-module__help:hover,
.cad-tree-module__help:focus-visible {
    color: #fff;
    background: var(--accent);
    outline: 0;
}

.tree-module-outline {
    display: grid;
    width: calc(100% - 16px);
    gap: 3px;
    margin: 5px 8px;
    padding: 8px 10px;
    color: var(--text-muted);
    background: color-mix(in srgb, var(--panel-soft) 88%, transparent);
    border: 1px solid var(--border);
    border-radius: 4px;
    cursor: pointer;
    text-align: left;
}

.tree-module-outline:hover {
    background: var(--accent-soft);
    border-color: color-mix(in srgb, var(--accent-bright) 65%, var(--border));
}

.tree-module-outline strong { color: var(--text-strong); font-size: .69rem; }
.tree-module-outline span { font-size: .62rem; line-height: 1.35; }
.tree-module-outline small { color: var(--accent-bright); font-size: .56rem; line-height: 1.35; }
.tree-module-outline--machine { grid-template-columns: 58px minmax(0, 1fr); align-items: center; }
.tree-module-outline--machine > img { width: 58px; height: 52px; object-fit: cover; object-position: center; background: #fff; border-radius: 3px; }
.tree-module-outline__placeholder { display: grid; width: 58px; height: 52px; color: var(--accent-bright); background: var(--input); border: 1px solid var(--border); border-radius: 3px; place-items: center; }
.tree-module-outline__placeholder .icon { width: 22px; height: 22px; }
.tree-module-outline--machine > span { display: grid; gap: 3px; min-width: 0; }
.tree-module-outline--machine em { overflow: hidden; color: var(--text-muted); font-size: .59rem; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.tree-module-note { margin: 0; padding: 8px 12px 10px 33px; color: var(--text-muted); font-size: .63rem; line-height: 1.45; }

.tree-module-empty {
    width: 100%;
    min-height: 28px;
    padding: 3px 10px 3px 32px;
    color: var(--accent-bright);
    background: transparent;
    border: 0;
    cursor: pointer;
    font-size: .68rem;
    text-align: left;
}

.tree-module-empty:hover { background: rgba(88, 169, 216, .07); }
.tree-module-empty--child {
    width: calc(100% - 24px);
    margin-left: 24px;
    padding-left: 30px;
    border-left: 1px solid var(--border);
}

.cad-tree-node {
    position: relative;
}

.cad-tree-node > .tree-item {
    grid-template-columns: 22px minmax(0, 1fr) 10px;
    padding-left: 10px;
}

.cad-tree-node__toggle {
    position: absolute;
    z-index: 2;
    top: 5px;
    left: 9px;
    display: grid;
    width: 16px;
    height: 16px;
    padding: 0;
    place-items: center;
    color: var(--text-muted);
    background: var(--panel-soft);
    border: 1px solid currentColor;
    border-radius: 50%;
    cursor: pointer;
    font: 600 12px/1 "Cascadia Mono", Consolas, monospace;
}

.cad-tree-node__toggle:hover,
.cad-tree-node__toggle:focus-visible {
    color: var(--text-strong);
    background: var(--accent-soft);
    border-color: var(--accent-bright);
    outline: none;
}

.cad-tree-node__toggle[aria-expanded="true"] {
    color: var(--accent-bright);
}

.cad-tree-node--has-children > .tree-item:not(.tree-item--operation) > .tree-item__icon {
    visibility: hidden;
}

.cad-tree-children[hidden] {
    display: none;
}

.cad-tree-node > .tree-item.tree-item--operation {
    grid-template-columns: 40px minmax(82px, 1fr) minmax(36px, auto) minmax(42px, auto) 18px 18px 18px;
}

.tree-item__operation-marker {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    gap: 3px;
}

.cad-tree-node--operation-check > .tree-item.tree-item--operation { padding-right: 65px; grid-template-columns: 34px minmax(0, 1fr) minmax(32px, auto) minmax(36px, auto) 18px 18px 18px; }
.tree-operation-check { position: absolute; top: 4px; right: 3px; width: 58px; min-height: 20px; padding: 2px 3px; border: 1px solid var(--border-strong); border-radius: 3px; color: var(--accent-bright); background: var(--panel-soft); cursor: pointer; font-size: .55rem; }
.tree-operation-check:hover, .tree-operation-check:focus-visible { border-color: var(--accent-bright); background: var(--accent-soft); }
.operation-verification { margin: 8px 0; padding-top: 8px; border-top: 1px solid var(--border-strong); }
.operation-verification[hidden] { display: none; }
.operation-verification h3 { margin: 0 0 6px; font-size: .8rem; color: var(--text-strong); overflow-wrap: anywhere; }
.operation-verification__tools { display: flex; flex-wrap: wrap; gap: 6px; }
.operation-verification__tools .button { padding: 4px 7px; font-size: .65rem; min-height: 26px; }
.operation-verification__history { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 7px; margin: 7px 0; font-size: .68rem; color: var(--text-muted); }
.operation-verification__history[hidden] { display: none; }
.operation-verification select, .verification-faces input { width: 100%; min-width: 0; padding: 5px; color: var(--text); background: var(--input); border: 1px solid var(--border); border-radius: 3px; font-size: .7rem; }
.operation-verification__status, .verification-note { margin: 6px 0; font-size: .68rem; line-height: 1.4; overflow-wrap: anywhere; }
.verification-note { color: var(--text-muted); }
.verification-counts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 14px; margin: 4px 0; }
.verification-data, .verification-face { margin: 4px 0; padding: 5px 6px; border: 1px solid var(--border); border-radius: 3px; background: var(--panel-soft); min-width: 0; }
.verification-data summary, .verification-face summary { cursor: pointer; color: var(--text-strong); font-size: .7rem; line-height: 1.4; overflow-wrap: anywhere; }
.verification-data__children { padding: 3px 0 0 2px; }
.verification-value { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, auto) 22px; align-items: baseline; gap: 0 6px; padding: 2px 0; min-width: 0; border-bottom: 1px solid var(--border); }
.verification-value__label { color: var(--text-muted); font-size: .68rem; line-height: 1.4; overflow-wrap: anywhere; }
.verification-value code { min-width: 0; max-width: 100%; color: var(--text-strong); font: .68rem/1.4 "Cascadia Mono", Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; text-align: right; }
.verification-value--warning > code { color: var(--warning); }
.verification-help { display: inline-flex; align-items: center; justify-content: center; align-self: center; width: 22px; height: 22px; padding: 0; border: 1px solid transparent; border-radius: 50%; background: transparent; color: var(--text-muted); font: .7rem/1 sans-serif; cursor: pointer; }
.verification-help:hover, .verification-help[aria-expanded="true"] { color: var(--accent-bright); background: var(--accent-soft); border-color: var(--border-strong); }
.verification-help:focus-visible { outline: 2px solid var(--accent-bright); outline-offset: 1px; }
.verification-help__text { grid-column: 1 / -1; margin: 3px 0 5px; padding: 7px 8px; color: var(--text); background: var(--input); border-left: 2px solid var(--accent-bright); font-size: .7rem; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }
.verification-help__text[hidden] { display: none; }
.verification-counts .verification-help__text { font-size: .65rem; }
.verification-faces { margin: 3px 0; }

.tree-item__operation-marker b {
    color: var(--accent-bright);
    font-family: "Cascadia Mono", Consolas, monospace;
    font-size: .52rem;
    font-weight: 700;
    line-height: 1;
}

.tree-item__operation-time {
    color: var(--text-muted);
    font-family: "Cascadia Mono", Consolas, monospace;
    font-size: .49rem;
    line-height: 1;
    text-align: right;
    white-space: nowrap;
}

.tree-item__wheel-profile {
    overflow: hidden;
    max-width: 62px;
    padding: 2px 4px;
    color: var(--accent-bright);
    background: color-mix(in srgb, var(--accent) 13%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent-bright) 35%, var(--border));
    border-radius: 3px;
    font-family: "Cascadia Mono", Consolas, monospace;
    font-size: .48rem;
    line-height: 1;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tree-item.is-selected .tree-item__operation-time,
.tree-item.is-selected .tree-item__wheel-profile { color: var(--text-strong); }

.tree-operation-indicator {
    display: grid;
    width: 18px;
    height: 18px;
    place-items: center;
    color: var(--text-muted);
    background: color-mix(in srgb, currentColor 10%, transparent);
    border: 1px solid color-mix(in srgb, currentColor 42%, transparent);
    border-radius: 3px;
}

.tree-operation-indicator__icon {
    width: 12px;
    height: 12px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
}

.tree-operation-indicator.is-positive { color: var(--success); }
.tree-operation-indicator.is-warning { color: var(--warning); }
.tree-operation-indicator.is-muted { color: var(--text-muted); opacity: .58; }
.tree-operation-indicator.is-danger { color: var(--danger); }
.tree-operation-indicator.is-running .tree-operation-indicator__icon {
    animation: tree-operation-indicator-spin 1s linear infinite;
}

@keyframes tree-operation-indicator-spin {
    to { transform: rotate(360deg); }
}

.tree-feature-error {
    display: grid;
    width: calc(100% - 50px);
    min-width: 0;
    grid-template-columns: 15px minmax(0, 1fr);
    align-items: start;
    gap: 6px;
    margin: 1px 8px 5px 42px;
    padding: 5px 7px;
    color: var(--danger);
    background: color-mix(in srgb, var(--danger) 8%, var(--panel-soft));
    border: 1px solid color-mix(in srgb, var(--danger) 38%, var(--border));
    border-radius: 3px;
    cursor: pointer;
    text-align: left;
}

.tree-feature-error:hover,
.tree-feature-error:focus-visible {
    background: color-mix(in srgb, var(--danger) 14%, var(--panel-soft));
    border-color: color-mix(in srgb, var(--danger) 68%, var(--border));
    outline: none;
}

.tree-feature-error__icon {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.tree-feature-error > span {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.tree-feature-error strong { font-size: .57rem; }
.tree-feature-error small {
    display: -webkit-box;
    overflow: hidden;
    color: color-mix(in srgb, var(--danger) 55%, var(--text));
    font-size: .54rem;
    line-height: 1.3;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.route-time-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin: 4px 8px 2px 24px;
    padding: 7px 4px 4px 8px;
    color: var(--text-muted);
    border-top: 1px solid var(--border);
    font-size: .52rem;
}

.route-time-summary strong {
    color: var(--accent-bright);
    font-family: "Cascadia Mono", Consolas, monospace;
    font-size: .52rem;
    font-weight: 700;
    white-space: nowrap;
}

.cad-tree-node--depth-1 > .tree-item { padding-left: 25px; }
.cad-tree-node--depth-2 > .tree-item { padding-left: 40px; }
.cad-tree-node--depth-3 > .tree-item { padding-left: 55px; }
.cad-tree-node--depth-4 > .tree-item { padding-left: 70px; }
.cad-tree-node--depth-5 > .tree-item,
.cad-tree-node--depth-6 > .tree-item { padding-left: 85px; }
.cad-tree-node--depth-1 > .cad-tree-node__toggle { left: 24px; }
.cad-tree-node--depth-2 > .cad-tree-node__toggle { left: 39px; }
.cad-tree-node--depth-3 > .cad-tree-node__toggle { left: 54px; }
.cad-tree-node--depth-4 > .cad-tree-node__toggle { left: 69px; }
.cad-tree-node--depth-5 > .cad-tree-node__toggle,
.cad-tree-node--depth-6 > .cad-tree-node__toggle { left: 84px; }

.physical-objects-tree,
.physical-solid-group,
.physical-solid,
.physical-surface-list {
    margin: 0;
    color: var(--text);
}

.physical-objects-tree > summary,
.physical-solid-group > summary,
.physical-solid > summary,
.physical-surface-list > summary {
    display: grid;
    min-width: 0;
    align-items: center;
    column-gap: 7px;
    cursor: pointer;
    list-style: none;
}

.physical-objects-tree > summary::-webkit-details-marker,
.physical-solid-group > summary::-webkit-details-marker,
.physical-solid > summary::-webkit-details-marker,
.physical-surface-list > summary::-webkit-details-marker { display: none; }

.physical-objects-tree > summary {
    grid-template-columns: 18px minmax(0, 1fr) auto 12px;
    min-height: 30px;
    padding: 4px 10px;
    background: color-mix(in srgb, var(--accent) 10%, var(--panel-soft));
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.physical-objects-tree > summary::after,
.physical-solid-group > summary::after,
.physical-solid > summary::after,
.physical-surface-list > summary::after {
    content: "›";
    color: var(--text-muted);
    font-size: .8rem;
    transform: rotate(0deg);
    transition: transform .15s ease;
}

.physical-objects-tree[open] > summary::after,
.physical-solid-group[open] > summary::after,
.physical-solid[open] > summary::after,
.physical-surface-list[open] > summary::after { transform: rotate(90deg); }

.physical-objects-tree > summary strong,
.physical-solid-group > summary strong,
.physical-surface-list > summary strong { min-width: 0; font-size: .67rem; }
.physical-objects-tree > summary small,
.physical-solid-group > summary small,
.physical-surface-list > summary small { color: var(--text-muted); font-size: .55rem; white-space: nowrap; }
.physical-objects-tree__icon,
.physical-solid__icon,
.physical-property-row__icon,
.physical-surface-row__icon { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.65; }
.physical-objects-tree__icon { color: var(--accent-bright); }
.physical-objects-tree__content { padding: 3px 0 5px; }

.physical-solid-group > summary {
    grid-template-columns: 18px minmax(0, 1fr) auto 12px;
    min-height: 28px;
    padding: 3px 10px 3px 24px;
}

.physical-objects-tree__empty {
    margin: 2px 10px 6px 42px;
    color: var(--text-muted);
    font-size: .59rem;
    line-height: 1.4;
}

.physical-solid {
    margin-left: 24px;
    border-left: 1px solid var(--border);
}

.physical-solid > summary {
    grid-template-columns: 18px minmax(0, 1fr) 8px 12px;
    min-height: 34px;
    padding: 4px 9px 4px 12px;
}
.physical-solid > summary:hover,
.physical-solid-group > summary:hover,
.physical-surface-list > summary:hover { background: color-mix(in srgb, var(--accent) 8%, transparent); }
.physical-solid > summary > span { display: grid; min-width: 0; gap: 1px; }
.physical-solid > summary strong { overflow: hidden; color: var(--text-strong); font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }
.physical-solid > summary small { overflow: hidden; color: var(--text-muted); font-size: .54rem; text-overflow: ellipsis; white-space: nowrap; }
.physical-solid__icon { color: var(--text); }
.physical-solid__properties { padding-bottom: 4px; }

.physical-property-row,
.physical-surface-row {
    display: grid;
    width: calc(100% - 8px);
    min-height: 33px;
    grid-template-columns: 17px minmax(0, 1fr) auto;
    align-items: center;
    gap: 6px;
    margin: 1px 4px;
    padding: 4px 8px 4px 21px;
    color: var(--text);
    background: transparent;
    border: 0;
    cursor: pointer;
    text-align: left;
}
.physical-property-row:hover:not(:disabled),
.physical-surface-row:hover { background: var(--accent-soft); }
.physical-property-row:disabled,
.physical-surface-row:disabled { cursor: default; opacity: .55; }
.physical-property-row > span,
.physical-surface-row__select > span { display: grid; min-width: 0; gap: 1px; }
.physical-property-row strong,
.physical-surface-row strong { overflow: hidden; color: var(--text-strong); font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.physical-property-row small,
.physical-surface-row small { overflow: hidden; color: var(--text-muted); font-size: .53rem; text-overflow: ellipsis; white-space: nowrap; }
.physical-property-row > b,
.physical-surface-row__action { color: var(--accent-bright); font-size: .52rem; font-weight: 600; }
.physical-property-row__icon { color: #d3b76d; }

.physical-surface-list { margin: 1px 4px 2px 20px; border-left: 1px solid var(--border); }
.physical-surface-list > summary { grid-template-columns: 17px minmax(0, 1fr) auto 12px; min-height: 29px; padding: 3px 7px 3px 10px; }
.physical-surface-list > div { padding-bottom: 2px; }
.physical-surface-row {
    width: 100%;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2px;
    margin: 0;
    padding: 0 8px 0 19px;
    transition: background-color 120ms ease, box-shadow 120ms ease;
}
.physical-surface-row__select {
    display: grid;
    min-width: 0;
    min-height: 33px;
    grid-template-columns: 17px minmax(0, 1fr);
    align-items: center;
    gap: 6px;
    padding: 4px 6px;
    color: var(--text);
    background: transparent;
    border: 0;
    cursor: pointer;
    text-align: left;
}
.physical-surface-row__select:focus-visible,
.physical-surface-row__action:focus-visible { outline: 1px solid var(--accent-bright); outline-offset: -2px; }
.physical-surface-row__action {
    align-self: stretch;
    padding: 0 2px 0 7px;
    background: transparent;
    border: 0;
    cursor: pointer;
}
.physical-surface-row__action:hover:not(:disabled) { color: var(--text-strong); }
.physical-surface-row__action:disabled { cursor: default; opacity: .4; }
.physical-surface-row.is-selected {
    background: color-mix(in srgb, var(--accent) 27%, transparent);
    box-shadow: inset 3px 0 0 var(--accent-bright);
}
.physical-surface-row__icon { color: var(--text-muted); }
.physical-surface-row.has-properties .physical-surface-row__icon { color: var(--success); }
.physical-surface-row.is-selected .physical-surface-row__icon { color: var(--accent-bright); }

.feature-state {
    display: block;
    width: 7px;
    height: 7px;
    background: var(--text-muted);
    border-radius: 50%;
}

.feature-state--ready { background: var(--success); }
.feature-state--draft,
.feature-state--stale { background: var(--warning); }
.feature-state--error { background: var(--danger); }

.cad-viewport {
    background: radial-gradient(circle at 50% 46%, rgba(63, 87, 103, .2), transparent 48%), var(--viewport);
}

.cad-viewport-canvas {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    cursor: grab;
    outline: 0;
    touch-action: none;
}

.cad-viewport-canvas.is-dragging { cursor: grabbing; }

.cad-viewport-canvas[data-navigation-mode="pan"] { cursor: move; }
.cad-viewport-canvas[data-navigation-mode="zoom"] { cursor: ns-resize; }
.cad-viewport-canvas[data-navigation-mode="pan"].is-dragging { cursor: move; }
.cad-viewport-canvas[data-navigation-mode="zoom"].is-dragging { cursor: ns-resize; }

.cad-view-compass {
    position: absolute;
    z-index: 3;
    right: 12px;
    bottom: 51px;
    display: block;
    width: 120px;
    height: 120px;
    background: color-mix(in srgb, var(--panel) 76%, transparent);
    border: 1px solid color-mix(in srgb, var(--border-strong) 78%, transparent);
    border-radius: 50%;
    box-shadow: 0 7px 24px rgba(0, 0, 0, .22), inset 0 0 0 1px rgba(255, 255, 255, .025);
    backdrop-filter: blur(7px);
    pointer-events: none;
}

.cad-view-compass[hidden] { display: none; }

.cad-view-help {
    position: absolute;
    z-index: 3;
    right: 14px;
    bottom: 11px;
    display: flex;
    gap: 3px;
    padding: 4px;
    color: var(--text-muted);
    background: color-mix(in srgb, var(--panel) 82%, transparent);
    border: 1px solid var(--border);
    border-radius: 3px;
    backdrop-filter: blur(8px);
}

.cad-view-help button {
    display: grid;
    width: 30px;
    height: 28px;
    place-items: center;
    padding: 0;
    color: var(--text-muted);
    background: transparent;
    border: 0;
    border-radius: 3px;
    cursor: pointer;
}

.cad-view-help button:hover,
.cad-view-help button.is-active {
    color: var(--text-strong);
    background: var(--accent-soft);
}

.cad-view-help .icon {
    width: 17px;
    height: 17px;
}

.cad-technical-overlay {
    position: absolute;
    z-index: 3;
    top: 12px;
    right: 14px;
    width: min(285px, calc(100% - 100px));
    overflow: hidden;
    color: var(--text);
    background: color-mix(in srgb, var(--panel) 90%, transparent);
    border: 1px solid var(--border-strong);
    border-radius: 4px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .2);
    backdrop-filter: blur(9px);
    pointer-events: none;
}

.cad-technical-overlay > header {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    padding: 9px 11px;
    background: var(--panel-soft);
    border-bottom: 1px solid var(--border);
}

.cad-technical-overlay > header > span {
    display: grid;
    width: 31px;
    height: 31px;
    place-items: center;
    color: #ffffff;
    background: var(--accent);
    border-radius: 4px;
    font-family: Georgia, serif;
    font-size: 1.05rem;
    font-weight: 700;
}

.cad-technical-overlay > header strong,
.cad-technical-overlay > header small { display: block; }
.cad-technical-overlay > header strong { color: var(--text-strong); font-size: .76rem; letter-spacing: .06em; }
.cad-technical-overlay > header small { margin-top: 1px; color: var(--text-muted); font-size: .59rem; }
.cad-technical-overlay dl { margin: 0; padding: 7px 11px 9px; }
.cad-technical-overlay dl > div { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 8px; padding: 3px 0; }
.cad-technical-overlay dt { color: var(--text-muted); font-size: .61rem; }
.cad-technical-overlay dd { overflow: hidden; margin: 0; color: var(--text); font-size: .65rem; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.cad-welcome {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: grid;
    place-content: center;
    justify-items: center;
    padding: 50px;
    text-align: center;
}

.cad-welcome__mark {
    display: grid;
    width: 74px;
    height: 74px;
    place-items: center;
    margin-bottom: 15px;
    color: #cbe9f8;
    background: linear-gradient(145deg, #2e7fae, #173e58);
    border: 1px solid #5995b9;
    border-radius: 16px 6px 16px 6px;
    font-size: 2.6rem;
    font-weight: 850;
    font-style: italic;
}

.cad-welcome h1 {
    margin: 0;
    color: var(--text-strong);
    font-size: 1.35rem;
}

.cad-welcome p {
    width: min(520px, 100%);
    margin: 8px 0 18px;
    color: var(--text-muted);
    line-height: 1.55;
}

.cad-welcome > div {
    display: flex;
    gap: 9px;
}

.inspector-empty {
    display: flex;
    height: 100%;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    text-align: center;
}

.inspector-empty strong { color: var(--text); }

.feature-properties {
    margin: 0;
    border-top: 1px solid var(--border);
}

.feature-properties div {
    display: grid;
    min-height: 33px;
    grid-template-columns: minmax(110px, 1fr) minmax(110px, 1fr);
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid var(--border);
    font-size: .69rem;
}

.feature-properties dt { color: var(--text-muted); }
.feature-properties dd {
    margin: 0;
    color: var(--text);
    font-family: "Cascadia Mono", Consolas, monospace;
    text-align: right;
}

.feature-properties .inspector-diagnostic {
    display: block;
    margin: 8px 0;
    padding: 9px 10px;
    border: 1px solid color-mix(in srgb, var(--danger) 48%, var(--border));
    border-left: 3px solid var(--danger);
    background: color-mix(in srgb, var(--danger) 9%, var(--panel-soft));
}

.feature-properties .inspector-diagnostic dt {
    color: var(--danger);
    font-weight: 700;
}

.feature-properties .inspector-diagnostic dd {
    margin-top: 5px;
    color: var(--text);
    font-family: inherit;
    line-height: 1.45;
    overflow-wrap: anywhere;
    text-align: left;
}

[data-project-error-count].is-danger { color: var(--danger); }

.feature-system-note {
    margin: 13px 0 0;
    padding: 9px;
    color: var(--text-muted);
    background: var(--panel-soft);
    border-left: 2px solid var(--accent-bright);
    font-size: .65rem;
    line-height: 1.45;
}

.operation-log span small {
    display: block;
    margin-top: 2px;
    color: var(--text-muted);
    font-size: .6rem;
}

.workspace-dialog {
    width: min(570px, calc(100vw - 60px));
    max-height: calc(100vh - 70px);
    overflow: hidden;
    padding: 0;
    color: var(--text);
    background: var(--panel-raised);
    border: 1px solid var(--border-strong);
    border-radius: 7px;
    box-shadow: 0 28px 80px rgba(0, 0, 0, .55);
}

.workspace-dialog.is-window-managed {
    position: fixed;
    inset: auto;
    max-width: calc(100vw - 12px);
    max-height: calc(100vh - 12px);
    margin: 0;
}

.workspace-dialog.is-window-managed:not(.is-window-maximized) .workspace-dialog__form {
    /* Leave room for the dialog's two 1px borders; scroll only the body. */
    max-height: calc(100vh - 14px);
}

.workspace-dialog.is-window-managed:not(.has-window-position):not(.is-window-maximized) {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.workspace-dialog.is-window-managed.has-window-position:not(.is-window-maximized) {
    top: var(--window-top);
    left: var(--window-left);
    transform: none;
}

.workspace-dialog.is-window-maximized {
    top: 6px;
    right: 6px;
    bottom: 6px;
    left: 6px;
    width: calc(100vw - 12px) !important;
    height: calc(100vh - 12px);
    max-width: none;
    max-height: none;
    transform: none;
    border-radius: 4px;
}

.workspace-dialog.is-window-maximized .workspace-dialog__form {
    width: 100%;
    height: 100%;
    max-height: none;
}

.workspace-dialog::backdrop {
    background: rgba(0, 7, 12, .76);
    backdrop-filter: blur(2px);
}

.workspace-dialog--projects { width: min(720px, calc(100vw - 60px)); }
.workspace-dialog--body-boolean { width: min(650px, calc(100vw - 36px)); }
.workspace-dialog--material { width: min(820px, calc(100vw - 60px)); }
.workspace-dialog--material .workspace-dialog__form { overflow: hidden; }
.workspace-dialog--surface-properties { width: min(1040px, calc(100vw - 36px)); }
.workspace-dialog--surface-properties .workspace-dialog__form { overflow: hidden; }
.workspace-dialog--image-export { width: min(520px, calc(100vw - 60px)); }
.workspace-dialog--model-export { width: min(720px, calc(100vw - 60px)); }
.workspace-dialog--scene-display { width: min(640px, calc(100vw - 60px)); }
.workspace-dialog--module-help { width: min(560px, calc(100vw - 36px)); }
.workspace-dialog--rename { width: min(480px, calc(100vw - 36px)); }
.workspace-dialog--surface-definition { width: min(980px, calc(100vw - 36px)); }
.workspace-dialog--machine-spec { width: min(1120px, calc(100vw - 36px)); }
.workspace-dialog--machine-library { width: min(1080px, calc(100vw - 36px)); }

.module-help-content { padding-bottom: 16px; }
.module-help-content > p { padding: 12px 17px 4px; color: var(--text); font-size: .75rem; }
.module-help-version { display: flex; align-items: center; justify-content: space-between; margin: 14px 17px 0; padding: 8px 10px; background: var(--input); border: 1px solid var(--border); border-radius: 4px; }
.module-help-version span { color: var(--text-muted); font-size: .64rem; text-transform: uppercase; letter-spacing: .08em; }
.module-help-version strong { color: var(--accent-bright); font: 700 .68rem/1.2 "Cascadia Mono", Consolas, monospace; }
.module-help-content > section { margin: 13px 17px 0; padding: 12px 14px; background: var(--panel-soft); border: 1px solid var(--border); border-radius: 4px; }
.module-help-content h3 { margin: 0 0 8px; color: var(--text-strong); font-size: .76rem; }
.module-help-content ol { display: grid; gap: 7px; margin: 0; padding-left: 20px; color: var(--text); font-size: .69rem; line-height: 1.45; }

.surface-definition-content,
.machine-spec-content { padding-bottom: 18px; }
.surface-definition-content > *,
.machine-spec-content > *,
.application-machine-library > * { flex: 0 0 auto; }
.module-concept-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin: 12px 17px 0; }
.module-concept-grid article { position: relative; min-height: 138px; padding: 14px; overflow: hidden; background: var(--panel-soft); border: 1px solid var(--border); border-radius: 5px; }
.module-concept-grid article > span { position: absolute; right: 10px; top: 7px; color: color-mix(in srgb, var(--accent-bright) 35%, transparent); font: 700 1.5rem/1 "Cascadia Mono", Consolas, monospace; }
.module-concept-grid h3 { position: relative; margin: 0 0 8px; color: var(--text-strong); font-size: .76rem; }
.module-concept-grid p { position: relative; margin: 0; color: var(--text-muted); font-size: .66rem; line-height: 1.5; }
.module-format-list { position: relative; display: flex; flex-wrap: wrap; gap: 4px; margin-top: 11px; }
.module-format-list i { padding: 3px 6px; color: var(--accent-bright); background: color-mix(in srgb, var(--accent) 12%, var(--input)); border: 1px solid color-mix(in srgb, var(--accent) 45%, var(--border)); border-radius: 3px; font: 600 .53rem/1.2 "Cascadia Mono", Consolas, monospace; font-style: normal; }
.surface-property-matrix,
.machine-spec-section { min-height: max-content; margin: 12px 17px 0; flex: 0 0 auto; background: var(--panel-soft); border: 1px solid var(--border); border-radius: 5px; overflow: hidden; }
.surface-property-matrix > header,
.machine-spec-section > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 11px 13px; background: color-mix(in srgb, var(--title-bar) 72%, var(--panel-soft)); border-bottom: 1px solid var(--border); }
.surface-property-matrix > header h3,
.machine-spec-section > header h3 { margin: 0; color: var(--text-strong); font-size: .76rem; }
.surface-property-matrix > header p { margin: 3px 0 0; color: var(--text-muted); font-size: .61rem; }
.surface-property-matrix > header > span,
.machine-spec-section > header > span { color: var(--accent-bright); font: 600 .56rem/1.3 "Cascadia Mono", Consolas, monospace; text-align: right; text-transform: uppercase; }
.surface-property-matrix > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.surface-property-matrix article { padding: 12px 14px; border-bottom: 1px solid var(--border); }
.surface-property-matrix article:nth-child(odd) { border-right: 1px solid var(--border); }
.surface-property-matrix strong { color: var(--text-strong); font-size: .69rem; }
.surface-property-matrix ul { display: grid; gap: 4px; margin: 7px 0 0; padding-left: 17px; color: var(--text-muted); font-size: .63rem; line-height: 1.4; }
.module-architecture-note { margin: 12px 17px 0; padding: 11px 13px; color: var(--text); background: color-mix(in srgb, var(--accent) 12%, var(--panel-soft)); border: 1px solid color-mix(in srgb, var(--accent-bright) 55%, var(--border)); border-left: 3px solid var(--accent-bright); border-radius: 4px; }
.module-architecture-note strong { color: var(--text-strong); font-size: .7rem; }
.module-architecture-note p { margin: 4px 0 0; color: var(--text-muted); font-size: .64rem; line-height: 1.5; }
.module-architecture-note--muted { background: var(--input); border-color: var(--border); border-left-color: var(--text-muted); }

.machine-spec-hero { display: grid; grid-template-columns: minmax(230px, .72fr) minmax(230px, 1fr) minmax(300px, .9fr); gap: 14px; margin: 14px 17px 0; padding: 16px; background: linear-gradient(120deg, color-mix(in srgb, var(--accent) 21%, var(--panel-soft)), var(--panel-soft)); border: 1px solid color-mix(in srgb, var(--accent-bright) 50%, var(--border)); border-radius: 5px; }
.machine-spec-hero figure { display: grid; align-content: start; gap: 5px; margin: 0; overflow: hidden; background: #fff; border: 1px solid var(--border); border-radius: 4px; }
.machine-spec-hero figure img { display: block; width: 100%; height: 190px; object-fit: contain; object-position: center; }
.machine-spec-hero figcaption { padding: 0 7px 6px; color: #53606a; font-size: .51rem; line-height: 1.3; }
.machine-spec-hero figcaption a { color: #285e7c; font-weight: 650; }
.machine-spec-hero > div > span { color: var(--accent-bright); font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; }
.machine-spec-hero > div > strong { display: block; margin-top: 5px; color: var(--text-strong); font-size: 1.08rem; }
.machine-spec-hero > div > p { max-width: 620px; margin: 8px 0 0; color: var(--text-muted); font-size: .67rem; line-height: 1.5; }
.machine-spec-hero dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 0; }
.machine-spec-hero dl div { padding: 8px; background: color-mix(in srgb, var(--input) 82%, transparent); border: 1px solid var(--border); border-radius: 4px; }
.machine-spec-hero dt { color: var(--text-muted); font-size: .55rem; line-height: 1.25; }
.machine-spec-hero dd { margin: 4px 0 0; color: var(--text-strong); font: 700 .7rem/1.2 "Cascadia Mono", Consolas, monospace; }
.machine-spec-table-wrap { overflow-x: auto; }
.machine-spec-table { width: 100%; border-collapse: collapse; font-size: .63rem; }
.machine-spec-table th,
.machine-spec-table td { padding: 9px 11px; overflow-wrap: anywhere; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; }
.machine-spec-table tr:last-child > * { border-bottom: 0; }
.machine-spec-table th { width: 22%; color: var(--text-muted); background: color-mix(in srgb, var(--input) 55%, transparent); font-weight: 500; }
.machine-spec-table td { width: 28%; color: var(--text-strong); font-family: "Cascadia Mono", Consolas, monospace; }
.machine-load-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 12px; }
.machine-load-grid article { overflow: hidden; background: var(--input); border: 1px solid var(--border); border-radius: 4px; }
.machine-load-grid h4 { margin: 0; padding: 9px 10px; color: var(--text-strong); background: color-mix(in srgb, var(--accent) 12%, var(--panel-soft)); border-bottom: 1px solid var(--border); font-size: .7rem; }
.machine-load-grid dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.machine-load-grid dl div { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 7px 9px; border-bottom: 1px solid var(--border); }
.machine-load-grid dt { color: var(--text-muted); font-size: .58rem; }
.machine-load-grid dd { margin: 0; color: var(--text-strong); font: 600 .59rem/1.3 "Cascadia Mono", Consolas, monospace; text-align: right; }
.machine-spec-warning { margin: 0 12px 12px; padding: 10px 12px; background: rgba(214, 157, 38, .1); border: 1px solid rgba(214, 157, 38, .55); border-left-width: 3px; border-radius: 4px; }
.machine-spec-warning strong { color: #f2c968; font-size: .68rem; }
.machine-spec-warning p { margin: 4px 0 0; color: var(--text-muted); font-size: .62rem; line-height: 1.5; }
.machine-equipment-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; margin: 0; padding: 12px 32px 14px; color: var(--text); font-size: .63rem; line-height: 1.45; }
.machine-equipment-list li { padding: 4px 0; }

.application-machine-library { padding-bottom: 18px; }
.application-machine-library > p { margin: 13px 17px 0; color: var(--text-muted); font-size: .68rem; line-height: 1.5; }
.application-machine-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 13px 17px 0; }
.application-machine-card { display: grid; grid-template-columns: minmax(170px, .8fr) minmax(0, 1.2fr); min-height: 210px; overflow: hidden; background: var(--panel-soft); border: 1px solid var(--border); border-radius: 5px; }
.application-machine-card > img,
.application-machine-card__visual { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 210px; overflow: hidden; color: var(--text-muted); background: #fff; font-size: .62rem; }
.application-machine-card > img,
.application-machine-card__visual img { display: block; width: 100%; height: 100%; min-height: 210px; object-fit: contain; }
.application-machine-card__body { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: 14px; }
.application-machine-card__body > span { color: var(--accent-bright); font-size: .54rem; line-height: 1.35; letter-spacing: .06em; text-transform: uppercase; }
.application-machine-card h3 { margin: 5px 0 0; color: var(--text-strong); font-size: .86rem; overflow-wrap: anywhere; }
.application-machine-card p { margin: 7px 0 0; color: var(--text-muted); font-size: .63rem; line-height: 1.45; overflow-wrap: anywhere; }
.application-machine-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 6px; margin: 10px 0 0; }
.application-machine-card dl div { min-width: 0; padding: 7px 8px; background: var(--input); border: 1px solid var(--border); border-radius: 3px; }
.application-machine-card dt { color: var(--text-muted); font-size: .54rem; }
.application-machine-card dd { margin: 3px 0 0; color: var(--text-strong); font: 600 .6rem/1.3 "Cascadia Mono", Consolas, monospace; overflow-wrap: anywhere; }
.application-machine-card details { width: 100%; margin: 9px 0 0; }
.application-machine-card details summary { color: var(--text); font-size: .61rem; cursor: pointer; }
.application-machine-card pre { max-height: 210px; margin: 7px 0 0; padding: 9px; overflow: auto; color: var(--text); background: var(--input); border: 1px solid var(--border); border-radius: 3px; font: .55rem/1.45 "Cascadia Mono", Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.application-machine-card__body > .button { margin-top: auto; padding-top: 8px; }
.application-machine-card__management { display: grid; grid-column: 1 / -1; gap: 8px; padding: 10px 12px 12px; background: color-mix(in srgb, var(--input) 42%, var(--panel-soft)); border-top: 1px solid var(--border); }
.application-machine-edit { width: 100%; overflow: hidden; background: var(--panel-soft); border: 1px solid var(--border); border-radius: 4px; }
.application-machine-edit > summary { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; min-height: 40px; padding: 0 11px; cursor: pointer; list-style: none; }
.application-machine-edit > summary::-webkit-details-marker { display: none; }
.application-machine-edit > summary > span { color: var(--accent-bright); font-size: .86rem; }
.application-machine-edit > summary strong { color: var(--text-strong); font-size: .64rem; }
.application-machine-edit > summary small { color: var(--text-muted); font-size: .56rem; }
.application-machine-edit .application-machine-create__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.application-machine-delete { display: flex; justify-content: flex-end; }
.application-machine-delete .button { margin: 0; padding: 7px 10px; }
.application-machine-empty { grid-column: 1 / -1; padding: 18px; color: var(--text); background: var(--panel-soft); border: 1px dashed var(--border-strong); border-radius: 5px; text-align: center; }
.application-machine-empty strong { color: var(--text-strong); font-size: .72rem; }
.application-machine-empty p { margin: 5px 0 0; font-size: .63rem; }
.application-machine-create { margin: 14px 17px 0; background: var(--panel-soft); border: 1px solid color-mix(in srgb, var(--accent-bright) 55%, var(--border)); border-radius: 5px; overflow: hidden; }
.application-machine-create > summary { display: grid; grid-template-columns: auto auto minmax(0, 1fr); align-items: center; gap: 9px; padding: 12px 14px; cursor: pointer; list-style: none; }
.application-machine-create > summary::-webkit-details-marker { display: none; }
.application-machine-create > summary > span { color: var(--accent-bright); font-size: 1rem; }
.application-machine-create > summary strong { color: var(--text-strong); font-size: .72rem; }
.application-machine-create > summary small { justify-self: end; color: var(--text-muted); font-size: .59rem; }
.application-machine-create__form { display: block; padding: 13px 14px 15px; border-top: 1px solid var(--border); }
.application-machine-create__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.application-machine-create__form label { display: grid; align-content: start; gap: 5px; min-width: 0; color: var(--text-muted); font-size: .59rem; }
.application-machine-create__form input,
.application-machine-create__form select,
.application-machine-create__form textarea { width: 100%; min-width: 0; padding: 8px 9px; color: var(--text-strong); background: var(--input); border: 1px solid var(--border); border-radius: 3px; font: .64rem/1.35 "Segoe UI", sans-serif; }
.application-machine-create__form textarea { min-height: 86px; resize: vertical; }
.application-machine-create__form .application-machine-create__wide { grid-column: 1 / -1; }
.application-machine-create__form footer { display: flex; justify-content: flex-end; margin-top: 12px; }

@media (max-width: 1000px) {
    .machine-spec-hero { grid-template-columns: minmax(220px, .75fr) minmax(0, 1.25fr); }
    .machine-spec-hero dl { grid-column: 1 / -1; }
    .application-machine-grid { grid-template-columns: 1fr; }
    .application-machine-create__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .module-concept-grid,
    .machine-spec-hero,
    .machine-load-grid { grid-template-columns: 1fr; }
    .surface-property-matrix > div,
    .machine-equipment-list { grid-template-columns: 1fr; }
    .surface-property-matrix article:nth-child(odd) { border-right: 0; }
    .machine-spec-table { min-width: 720px; }
    .machine-spec-hero dl { grid-column: auto; }
    .application-machine-card { grid-template-columns: 1fr; }
    .application-machine-card > img,
    .application-machine-card__visual,
    .application-machine-card__visual img { min-height: 160px; max-height: 220px; }
    .application-machine-edit .application-machine-create__grid,
    .application-machine-create__grid { grid-template-columns: 1fr; }
    .application-machine-create > summary { grid-template-columns: auto 1fr; }
    .application-machine-create > summary small { grid-column: 2; justify-self: start; }
}

.atlas-exchange-export {
    margin: 0 17px 16px;
    padding: 14px;
    border: 1px solid var(--accent-bright);
    border-radius: 5px;
    background: color-mix(in srgb, var(--accent) 9%, var(--panel-soft));
}
.atlas-exchange-export__heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.atlas-exchange-export h3 { margin: 0; color: var(--text-strong); font-size: .9rem; }
.atlas-exchange-export p, .atlas-exchange-export dd { margin: 8px 0; color: var(--text-muted); font-size: .72rem; line-height: 1.55; }
.atlas-exchange-export__badge { color: var(--accent-bright); font: 700 .95rem/1 monospace; }
.atlas-exchange-export details { margin: 12px 0; padding: 10px; background: var(--input); border: 1px solid var(--border); border-radius: 4px; }
.atlas-exchange-export summary { cursor: pointer; color: var(--text-strong); font-size: .75rem; }
.atlas-exchange-export dt { margin-top: 12px; color: var(--text-strong); font-size: .73rem; font-weight: 600; }
.atlas-exchange-export dd { margin-left: 0; }
.atlas-exchange-export__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.atlas-exchange-export__actions .button { display: inline-flex; align-items: center; gap: 7px; }
.atlas-exchange-export__actions [hidden] { display: none; }
.atlas-exchange-export .operation-dialog-message { margin: 10px 0 0; }

.model-export-formats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 4px 17px 12px;
    padding: 10px;
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 5px;
}

.model-export-formats legend {
    padding: 0 5px;
    color: var(--text-muted);
    font-size: .65rem;
}

.model-export-formats > label {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    min-height: 64px;
    padding: 9px 10px;
    background: var(--panel-soft);
    border: 1px solid var(--border);
    border-radius: 4px;
    cursor: pointer;
}

.model-export-formats > label:has(input:checked) {
    background: color-mix(in srgb, var(--accent) 17%, var(--panel-soft));
    border-color: var(--accent-bright);
}

.workspace-dialog__form .model-export-formats input[type="radio"] { width: 16px; height: 16px; padding: 0; appearance: auto; accent-color: var(--accent-bright); background: transparent; border: 0; }
.model-export-formats span { display: grid; gap: 3px; min-width: 0; }
.model-export-formats strong { color: var(--text-strong); font-size: .76rem; }
.model-export-formats small { color: var(--text-muted); font-size: .63rem; line-height: 1.35; }
.model-export-formats b { color: var(--accent-bright); font: 700 .66rem/1 var(--font-mono, monospace); }

.model-export-future {
    margin: 0 17px 12px;
    padding: 10px 12px;
    background: color-mix(in srgb, var(--panel-soft) 82%, transparent);
    border: 1px dashed var(--border-strong);
    border-radius: 4px;
}

.model-export-future > strong { color: var(--text); font-size: .72rem; }
.model-export-future > p { margin: 5px 0 8px; color: var(--text-muted); font-size: .65rem; line-height: 1.45; }
.model-export-future > span { display: flex; gap: 6px; }
.model-export-future i { padding: 3px 7px; color: var(--text-muted); background: var(--input); border: 1px solid var(--border); border-radius: 3px; font: 600 .59rem/1 var(--font-mono, monospace); font-style: normal; }

.scene-display-options {
    display: grid;
    gap: 9px;
    margin: 12px 17px;
    padding: 10px;
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 5px;
}

.scene-display-options legend {
    padding: 0 5px;
    color: var(--text-muted);
    font-size: .65rem;
}

.scene-display-group {
    overflow: hidden;
    background: var(--panel-soft);
    border: 1px solid var(--border);
    border-radius: 4px;
}

.scene-display-group > header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 18px;
    padding: 8px 11px;
    background: color-mix(in srgb, var(--panel) 82%, var(--accent-soft));
    border-bottom: 1px solid var(--border);
}

.scene-display-group > header strong {
    color: var(--text-strong);
    font-size: .67rem;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.scene-display-group > header small {
    color: var(--text-muted);
    font-size: .57rem;
    text-align: right;
}

.scene-display-group > div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.scene-display-options label {
    display: grid;
    min-height: 55px;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 8px 11px;
    background: transparent;
    cursor: pointer;
}

.scene-display-options label:nth-child(even) { border-left: 1px solid var(--border); }
.scene-display-options label:nth-child(n + 3) { border-top: 1px solid var(--border); }
.scene-display-options label.scene-display-option--wide {
    grid-column: 1 / -1;
    border-left: 0;
}

.scene-display-options label:has(input:checked) {
    background: color-mix(in srgb, var(--accent-soft) 48%, transparent);
}

.scene-display-options label:hover { background: color-mix(in srgb, var(--accent-soft) 70%, transparent); }

.scene-display-options .scene-display-switch {
    position: relative;
    display: block;
    width: 32px;
    min-width: 32px;
    height: 18px;
}

.workspace-dialog__form .scene-display-options .scene-display-switch input[type="checkbox"] {
    position: absolute;
    z-index: 2;
    inset: 0;
    width: 32px;
    height: 18px;
    margin: 0;
    padding: 0;
    appearance: none;
    opacity: 0;
    cursor: pointer;
}

.scene-display-switch i {
    position: absolute;
    inset: 0;
    display: block;
    background: var(--input);
    border: 1px solid var(--border-strong);
    border-radius: 10px;
    transition: background-color .14s ease, border-color .14s ease;
}

.scene-display-switch i::before {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 10px;
    height: 10px;
    background: var(--text-muted);
    border-radius: 50%;
    content: '';
    transition: transform .14s ease, background-color .14s ease;
}

.scene-display-switch input:checked + i { background: var(--accent); border-color: var(--accent-bright); }
.scene-display-switch input:checked + i::before { background: #fff; transform: translateX(14px); }
.scene-display-switch:has(input:focus-visible) { outline: 2px solid var(--accent-bright); outline-offset: 2px; border-radius: 10px; }
.scene-display-options span,
.scene-display-options strong,
.scene-display-options small { display: block; }
.scene-display-options span { min-width: 0; }
.scene-display-options strong { color: var(--text-strong); font-size: .68rem; }
.scene-display-options small { margin-top: 3px; color: var(--text-muted); font-size: .59rem; line-height: 1.35; }

@media (max-width: 720px) {
    .scene-display-group > header { display: block; }
    .scene-display-group > header small { margin-top: 3px; text-align: left; }
    .scene-display-group > div { grid-template-columns: 1fr; }
    .scene-display-options label:nth-child(n) { border-right: 0; border-left: 0; }
    .scene-display-options label + label { border-top: 1px solid var(--border); }
}

.workspace-dialog__form {
    display: flex;
    max-height: calc(100vh - 72px);
    flex-direction: column;
    overflow: hidden;
}

.workspace-dialog__body {
    display: flex;
    min-height: 0;
    flex: 1 1 auto;
    flex-direction: column;
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.workspace-dialog__form > header {
    position: sticky;
    z-index: 50;
    top: 0;
    display: flex;
    min-height: 48px;
    flex: 0 0 auto;
    align-items: stretch;
    justify-content: space-between;
    padding: 0;
    overflow: hidden;
    background: color-mix(in srgb, var(--title-bar) 86%, var(--panel-soft));
    border-bottom: 1px solid var(--border);
    border-radius: 6px 6px 0 0;
    box-shadow: 0 5px 13px rgba(0, 0, 0, .18);
}

.workspace-dialog__form > header.window-drag-handle {
    gap: 0;
    cursor: grab;
    touch-action: none;
    user-select: none;
}

.workspace-dialog.is-window-dragging .workspace-dialog__form > header.window-drag-handle {
    cursor: grabbing;
}

.workspace-dialog__form > header.window-drag-handle > div:first-child {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    align-items: center;
    gap: 12px;
    padding: 7px 14px 7px 16px;
}

.workspace-dialog__form > header .overline {
    flex: 0 0 auto;
    margin: 0;
    color: var(--accent-bright);
    font-size: .52rem;
    letter-spacing: .1em;
    white-space: nowrap;
}

.workspace-dialog__form > header h2 {
    overflow: hidden;
    margin: 0;
    color: var(--text-strong);
    font-size: .83rem;
    font-weight: 600;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.workspace-dialog__form > header button {
    padding: 0 3px;
    color: var(--text-muted);
    background: transparent;
    border: 0;
    cursor: pointer;
    font-size: 1.25rem;
}

.window-controls {
    display: flex;
    flex: 0 0 auto;
    align-self: stretch;
    margin: 0;
}

.workspace-dialog__form > header .window-control {
    position: relative;
    display: grid;
    width: 46px;
    min-width: 46px;
    height: 100%;
    min-height: 48px;
    place-items: center;
    padding: 0;
    color: var(--text-muted);
    background: transparent;
    border: 0;
    border-left: 0;
    border-radius: 0;
    cursor: default;
    font-size: 0;
    line-height: 1;
}

.workspace-dialog__form > header .window-control::before,
.workspace-dialog__form > header .window-control::after {
    position: absolute;
    top: 50%;
    left: 50%;
    content: '';
    pointer-events: none;
}

.workspace-dialog__form > header .window-control--minimize::before {
    width: 10px;
    height: 1px;
    background: currentColor;
    transform: translate(-50%, 4px);
}

.workspace-dialog__form > header .window-control--maximize::before {
    width: 9px;
    height: 9px;
    border: 1px solid currentColor;
    transform: translate(-50%, -50%);
}

.workspace-dialog__form > header .window-control--maximize.is-restore::before,
.workspace-dialog__form > header .window-control--maximize.is-restore::after {
    width: 8px;
    height: 8px;
    background: var(--title-bar);
    border: 1px solid currentColor;
}
.workspace-dialog__form > header .window-control--maximize.is-restore::before { transform: translate(-35%, -65%); }
.workspace-dialog__form > header .window-control--maximize.is-restore::after { transform: translate(-65%, -35%); }

.workspace-dialog__form > header .window-control--close::before,
.workspace-dialog__form > header .window-control--close::after {
    width: 12px;
    height: 1px;
    background: currentColor;
}
.workspace-dialog__form > header .window-control--close::before { transform: translate(-50%, -50%) rotate(45deg); }
.workspace-dialog__form > header .window-control--close::after { transform: translate(-50%, -50%) rotate(-45deg); }

.workspace-dialog__form > header .window-control:hover,
.workspace-dialog__form > header .window-control:focus-visible {
    color: var(--text-strong);
    background: color-mix(in srgb, var(--text-strong) 11%, transparent);
    outline: 0;
}

.workspace-dialog__form > header .window-control--close:hover,
.workspace-dialog__form > header .window-control--close:focus-visible {
    color: #fff;
    background: #c42b1c;
}

.atlas-window-dock {
    position: fixed;
    z-index: 1900;
    right: 10px;
    bottom: 29px;
    left: 10px;
    display: flex;
    align-items: flex-end;
    gap: 6px;
    pointer-events: none;
}

.atlas-window-dock__item {
    display: grid;
    width: min(270px, calc(100vw - 20px));
    min-height: 36px;
    grid-template-columns: 25px minmax(0, 1fr);
    align-items: center;
    gap: 6px;
    padding: 0 11px;
    color: var(--text);
    background: var(--panel-raised);
    border: 1px solid var(--border-strong);
    border-bottom: 2px solid var(--accent-bright);
    border-radius: 4px 4px 2px 2px;
    box-shadow: 0 10px 32px rgba(0, 0, 0, .45);
    cursor: default;
    pointer-events: auto;
    text-align: left;
}

.atlas-window-dock__item:hover,
.atlas-window-dock__item:focus-visible {
    color: var(--text-strong);
    background: var(--accent-soft);
    outline: 1px solid var(--accent-bright);
}

.atlas-window-dock__item span {
    color: var(--accent-bright);
    font-family: "Segoe UI Symbol", sans-serif;
    text-align: center;
}

.atlas-window-dock__item strong {
    overflow: hidden;
    font-size: .69rem;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.workspace-dialog__form > p,
.workspace-dialog__body > p {
    margin: 0;
    padding: 13px 17px 5px;
    color: var(--text-muted);
    font-size: .7rem;
    line-height: 1.5;
}

.workspace-dialog__form > label,
.workspace-dialog__body > label {
    display: grid;
    gap: 5px;
    padding: 8px 17px 0;
    color: var(--text-muted);
    font-size: .68rem;
}

.workspace-dialog__form input,
.workspace-dialog__form textarea,
.workspace-dialog__form select {
    width: 100%;
    color: var(--text);
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 3px;
}

.workspace-dialog__form input,
.workspace-dialog__form select { height: 34px; padding: 0 9px; }
.workspace-dialog__form textarea { padding: 8px 9px; resize: vertical; }

.workspace-dialog__form strong { color: var(--text-strong); }

.body-boolean-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 8px 17px 0;
}

.body-boolean-grid label { display: grid; gap: 5px; color: var(--text-muted); font-size: .68rem; }
.body-boolean-grid small { min-height: 2.7em; color: var(--text-muted); font-size: .59rem; line-height: 1.35; }

.material-dialog-fields {
    display: grid;
    flex: 1 1 auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    min-height: 0;
    padding: 11px 17px 2px;
    overflow: auto;
}

.material-dialog-fields section {
    align-content: start;
    display: grid;
    gap: 8px;
    padding: 10px;
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
}

.material-dialog-fields h3 {
    margin: 0 0 2px;
    color: var(--text-strong);
    font-size: .72rem;
}

.material-dialog-fields label {
    display: grid;
    gap: 4px;
    color: var(--text-muted);
    font-size: .64rem;
}

.material-color-control {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    align-items: stretch;
    gap: 7px;
}

.workspace-dialog__form .material-color-control input[type="color"] {
    width: 52px;
    height: 34px;
    padding: 3px;
    cursor: pointer;
}

.material-color-control output {
    display: flex;
    min-width: 0;
    align-items: center;
    padding: 0 9px;
    color: var(--text);
    background: var(--panel-soft);
    border: 1px solid var(--border);
    border-radius: 3px;
    font-family: "Cascadia Mono", Consolas, monospace;
    font-size: .64rem;
}

.material-color-field > small {
    color: var(--text-muted);
    font-size: .57rem;
    line-height: 1.35;
}

.material-catalog-choice { margin-top: 11px; }

.material-dialog-fields.is-catalog-selection input[readonly],
.material-dialog-fields.is-catalog-selection select:disabled {
    color: var(--text-muted);
    background: var(--panel-soft);
    cursor: default;
    opacity: .82;
}

.surface-properties-scroll {
    min-height: 0;
    flex: 1 1 auto;
    padding: 10px 17px 2px;
    overflow: auto;
}

.surface-properties-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 10px;
}

.surface-properties-grid fieldset {
    display: grid;
    min-width: 0;
    gap: 8px;
    margin: 0;
    padding: 10px;
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
}

.surface-properties-grid legend {
    padding: 0 5px;
    color: var(--text-strong);
    font-size: .7rem;
    font-weight: 650;
}

.surface-properties-grid label {
    display: grid;
    min-width: 0;
    gap: 4px;
    color: var(--text-muted);
    font-size: .61rem;
}

.surface-properties-fields,
.surface-properties-tolerances {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.surface-properties-geometry { grid-column: 1 / -1; }
.surface-properties-tolerances { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.surface-properties-grid .geometric-tolerance-field { display: block; }
.geometric-tolerance-control {
    display: grid;
    min-width: 0;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: stretch;
}
.geometric-tolerance-symbol {
    display: grid;
    min-height: 34px;
    place-items: center;
    color: var(--text-strong);
    background: var(--panel-soft);
    border: 1px solid var(--border);
    border-right: 0;
    border-radius: 3px 0 0 3px;
    cursor: help;
    font-family: "Segoe UI Symbol", "Cambria Math", sans-serif;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1;
}
.geometric-tolerance-control .engineering-input input { border-radius: 0; }
.surface-properties-thread { align-content: start; }

.surface-properties-grid .surface-properties-toggle {
    display: flex;
    min-height: 40px;
    align-items: center;
    gap: 9px;
    padding: 7px 9px;
    color: var(--text);
    background: var(--panel-soft);
    border: 1px solid var(--border);
    border-radius: 3px;
    cursor: pointer;
}
.surface-properties-grid .surface-properties-toggle input { width: 16px; height: 16px; flex: 0 0 auto; }
.surface-properties-toggle > span { display: grid; gap: 2px; }
.surface-properties-toggle strong { font-size: .63rem; }
.surface-properties-toggle small { color: var(--text-muted); font-size: .54rem; }
.surface-properties-fields.is-disabled { opacity: .48; }

@media (max-width: 820px) {
    .surface-properties-grid,
    .surface-properties-fields { grid-template-columns: 1fr; }
    .surface-properties-geometry { grid-column: auto; }
    .surface-properties-tolerances { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .body-boolean-grid,
    .material-dialog-fields { grid-template-columns: 1fr; }
}

.engineering-input {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 42px;
    align-items: stretch;
}

.engineering-input input { border-radius: 3px 0 0 3px; }

.engineering-input b {
    display: grid;
    place-items: center;
    color: var(--text-muted);
    background: var(--panel-soft);
    border: 1px solid var(--border);
    border-left: 0;
    border-radius: 0 3px 3px 0;
    font-size: .65rem;
}

.operation-dialog-note,
.operation-dialog-message {
    margin: 11px 17px 0;
    padding: 9px 10px;
    color: var(--text-muted);
    background: var(--panel-soft);
    border-left: 3px solid var(--accent-bright);
    font-size: .66rem;
    line-height: 1.5;
}

.operation-dialog-message--success { color: var(--success); border-left-color: var(--success); }
.operation-dialog-message--error { color: var(--danger); border-left-color: var(--danger); }
.operation-dialog-message--warning { color: var(--warning); border-left-color: var(--warning); }
.operation-dialog-note--danger { border-left-color: var(--danger); }

.feature-deletion-impact {
    display: grid;
    gap: 8px;
    margin: 11px 17px 0;
    padding: 10px;
    color: var(--text);
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: .68rem;
}

.feature-deletion-impact > strong { color: var(--text-strong); }

.feature-deletion-impact ul {
    display: grid;
    max-height: 210px;
    margin: 0;
    padding: 0;
    overflow: auto;
    list-style: none;
    border: 1px solid var(--border);
}

.feature-deletion-impact li {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    min-height: 31px;
    padding: 5px 8px;
    border-bottom: 1px solid var(--border);
}

.feature-deletion-impact li:last-child { border-bottom: 0; }
.feature-deletion-impact li.is-selected { color: var(--danger); background: color-mix(in srgb, var(--danger) 8%, transparent); }
.feature-deletion-impact li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.feature-deletion-impact li small { color: var(--text-muted); }
.feature-deletion-impact li b { color: var(--text-muted); font-size: .58rem; font-weight: 600; text-transform: uppercase; }

/* System-wide context menu */
.atlas-context-menu {
    position: fixed;
    z-index: 2000;
    width: 250px;
    max-height: calc(100vh - 12px);
    overflow-y: auto;
    padding: 3px;
    color: var(--text);
    background: var(--panel-raised);
    border: 1px solid var(--border-strong);
    border-radius: 5px;
    box-shadow: 0 16px 42px rgba(0, 0, 0, .5);
}

.atlas-context-menu[hidden] { display: none; }

.atlas-context-menu__heading {
    padding: 4px 7px 2px;
    color: var(--text-muted);
    font-size: .52rem;
    font-weight: 650;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.atlas-context-menu__heading:not(:first-child) {
    margin-top: 1px;
    border-top: 1px solid var(--border);
}

.atlas-context-menu button {
    display: grid;
    width: 100%;
    min-height: 26px;
    grid-template-columns: 22px minmax(0, 1fr) auto;
    align-items: center;
    gap: 5px;
    padding: 2px 7px;
    color: var(--text);
    background: transparent;
    border: 0;
    border-radius: 3px;
    cursor: default;
    text-align: left;
}

.atlas-context-menu button:not(:disabled):hover,
.atlas-context-menu button:not(:disabled):focus-visible {
    color: var(--text-strong);
    background: var(--accent-soft);
    outline: 0;
}

.atlas-context-menu button:disabled { opacity: .45; }
.atlas-context-menu button i { color: var(--accent-bright); font-style: normal; text-align: center; }
.atlas-context-menu button span { overflow: hidden; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.atlas-context-menu button small { color: var(--text-muted); font-size: .58rem; }
.atlas-context-menu button.is-danger:not(:disabled) { color: var(--danger); }

.atlas-context-menu__separator {
    height: 1px;
    margin: 2px 4px;
    background: var(--border);
}

.workspace-dialog__form > footer {
    z-index: 45;
    flex: 0 0 auto;
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 0;
    padding: 11px 17px;
    background: var(--panel-soft);
    border-top: 1px solid var(--border);
    box-shadow: 0 -5px 13px rgba(0, 0, 0, .18);
}

.project-picker {
    min-height: 100px;
    overflow: auto;
    padding: 8px;
}

.project-picker__item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    border-bottom: 1px solid var(--border);
}

.project-picker__identity {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) 150px;
    gap: 18px;
    padding: 11px;
    color: var(--text);
    text-decoration: none;
}

.project-picker__item:hover {
    background: var(--accent-soft);
}

.project-picker__identity > span { min-width: 0; }
.project-picker__identity > span:last-child { text-align: right; }
.project-picker__actions {
    display: flex;
    gap: 5px;
    padding-right: 9px;
}
.project-picker__actions .button { min-height: 29px; padding: 5px 9px; font-size: .62rem; }
.project-picker strong,
.project-picker small,
.project-picker b { display: block; }
.project-picker strong { color: var(--text-strong); }
.project-picker b { color: var(--accent-bright); font-size: .65rem; }
.project-picker small {
    overflow: hidden;
    margin-top: 2px;
    color: var(--text-muted);
    font-size: .63rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.project-copy-source {
    display: grid;
    gap: 4px;
    margin: 11px 17px 2px;
    padding: 10px 11px;
    background: var(--input);
    border: 1px solid var(--border);
    border-left: 3px solid var(--accent-bright);
    border-radius: 4px;
}

.project-copy-source span { color: var(--text-muted); font-size: .61rem; }
.project-copy-source strong { overflow-wrap: anywhere; font-size: .72rem; }

@media (max-width: 900px) {
    .project-picker__item { grid-template-columns: 1fr; }
    .project-picker__actions { padding: 0 9px 9px; }
}

/* Two-dimensional sketch editor */
.sketch-editor {
    position: absolute;
    z-index: 12;
    inset: 0;
    display: grid;
    grid-template-rows: 58px minmax(0, 1fr);
    background: var(--viewport);
}

.sketch-editor[hidden] { display: none; }

.sketch-editor__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 8px 13px 8px 17px;
    background: var(--panel-soft);
    border-bottom: 1px solid var(--border-strong);
}

.sketch-editor__header h2 {
    margin: 0;
    color: var(--text-strong);
    font-size: .96rem;
}

.sketch-editor__actions {
    display: flex;
    gap: 7px;
}

.sketch-editor__body {
    display: grid;
    min-width: 0;
    min-height: 0;
    grid-template-columns: 76px minmax(380px, 1fr) 272px;
}

.sketch-toolbar {
    display: flex;
    min-height: 0;
    flex-direction: column;
    gap: 3px;
    padding: 7px 5px;
    overflow: auto;
    background: var(--panel-soft);
    border-right: 1px solid var(--border);
}

.sketch-toolbar button {
    display: grid;
    min-height: 51px;
    place-items: center;
    align-content: center;
    gap: 2px;
    padding: 3px;
    color: var(--text-muted);
    background: transparent;
    border: 1px solid transparent;
    border-radius: 3px;
    cursor: pointer;
}

.sketch-toolbar button:hover,
.sketch-toolbar button.is-active {
    color: var(--text-strong);
    background: var(--accent-soft);
    border-color: var(--border-strong);
}

.sketch-toolbar button > span {
    font-family: "Segoe UI Symbol", "Segoe UI", sans-serif;
    font-size: 1.55rem;
    line-height: 1;
}

.sketch-toolbar button > small { font-size: .57rem; }

.sketch-toolbar > i {
    display: block;
    height: 1px;
    margin: 4px 2px;
    background: var(--border);
}

.sketch-canvas-wrap {
    position: relative;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.sketch-canvas {
    display: block;
    width: 100%;
    height: 100%;
    outline: 0;
    cursor: crosshair;
    touch-action: none;
}

.sketch-canvas[data-tool="select"] { cursor: default; }

.sketch-coordinates,
.sketch-prompt {
    position: absolute;
    z-index: 2;
    bottom: 9px;
    padding: 5px 8px;
    color: var(--text-muted);
    background: color-mix(in srgb, var(--panel) 88%, transparent);
    border: 1px solid var(--border);
    border-radius: 3px;
    font-size: .62rem;
    pointer-events: none;
}

.sketch-coordinates {
    left: 9px;
    font-family: "Cascadia Mono", Consolas, monospace;
}

.sketch-prompt { right: 9px; }

.sketch-inspector {
    min-height: 0;
    overflow: auto;
    padding: 12px;
    background: var(--panel);
    border-left: 1px solid var(--border);
}

.sketch-axis-convention {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 9px;
    margin-bottom: 12px;
    padding: 10px;
    color: var(--text);
    background: color-mix(in srgb, var(--accent-bright) 8%, var(--input));
    border: 1px solid color-mix(in srgb, var(--accent-bright) 48%, var(--border));
    border-left: 3px solid var(--accent-bright);
    border-radius: 4px;
}

.sketch-axis-convention[hidden] { display: none; }

.sketch-axis-convention > span {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    color: #fff;
    background: var(--accent);
    border-radius: 3px;
    font-family: "Cascadia Mono", Consolas, monospace;
    font-size: .86rem;
    font-weight: 700;
}

.sketch-axis-convention strong { display: block; color: var(--text-strong); font-size: .68rem; }
.sketch-axis-convention p { margin: 4px 0; font-size: .63rem; line-height: 1.4; }
.sketch-axis-convention small { display: block; color: var(--text-muted); font-size: .58rem; line-height: 1.4; }

.sketch-name,
.sketch-entity-fields label {
    display: grid;
    gap: 4px;
    color: var(--text-muted);
    font-size: .64rem;
}

.sketch-name input,
.sketch-entity-fields input,
.sketch-setting input[type="number"] {
    width: 100%;
    height: 28px;
    padding: 0 6px;
    color: var(--text);
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 2px;
    font-family: "Cascadia Mono", Consolas, monospace;
}

.sketch-inspector fieldset {
    min-width: 0;
    margin: 14px 0 0;
    padding: 0;
    border: 0;
}

.sketch-inspector legend {
    width: 100%;
    padding: 6px 0;
    color: var(--text);
    border-bottom: 1px solid var(--border);
    font-size: .67rem;
    font-weight: 650;
}

.sketch-setting {
    display: grid;
    min-height: 34px;
    grid-template-columns: minmax(0, 1fr) 84px;
    align-items: center;
    gap: 8px;
    color: var(--text-muted);
    border-bottom: 1px solid var(--border);
    font-size: .63rem;
}

.sketch-setting input[type="checkbox"] {
    justify-self: end;
    accent-color: var(--accent);
}

.sketch-selection-empty {
    padding: 12px 0;
    color: var(--text-muted);
    font-size: .64rem;
}

.sketch-entity-fields {
    display: grid;
    gap: 7px;
    padding: 9px 0;
}

.sketch-entity-fields[hidden] { display: none; }
.sketch-entity-fields > strong { color: var(--accent-bright); font-size: .68rem; }

.sketch-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 13px;
    padding: 9px;
    color: var(--text-muted);
    background: var(--panel-soft);
    border: 1px solid var(--border);
    font-size: .65rem;
}

.sketch-summary strong {
    color: var(--text-strong);
    font-family: "Cascadia Mono", Consolas, monospace;
}

.sketch-message {
    margin-top: 10px;
    padding: 8px;
    color: var(--text);
    background: var(--panel-soft);
    border-left: 3px solid var(--accent-bright);
    font-size: .64rem;
    line-height: 1.4;
}

.sketch-message--success { border-left-color: var(--success); }
.sketch-message--warning { border-left-color: var(--warning); }
.sketch-message--error { border-left-color: var(--danger); }

/* Machine selection and catalog administration */

.workspace-dialog--machine {
    width: min(1050px, calc(100vw - 60px));
}

.workspace-dialog--machine .workspace-dialog__form {
    min-height: min(720px, calc(100vh - 72px));
    overflow: hidden;
}

.machine-source-switch {
    display: flex;
    align-items: stretch;
    gap: 8px;
    padding: 11px 17px 0;
}

.machine-source-switch label {
    position: relative;
    display: flex;
    min-width: 210px;
    align-items: center;
    padding: 9px 11px;
    color: var(--text-muted);
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
    cursor: pointer;
}

.machine-source-switch input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.machine-source-switch label:has(input:checked) {
    color: var(--text);
    background: var(--accent-soft);
    border-color: var(--accent-bright);
}

.machine-source-switch span,
.machine-source-switch strong,
.machine-source-switch small { display: block; }
.machine-source-switch strong { color: var(--text-strong); font-size: .7rem; }
.machine-source-switch small { margin-top: 2px; font-size: .6rem; }
.machine-source-switch > a {
    align-self: center;
    margin-left: auto;
    color: var(--accent-bright);
    font-size: .66rem;
    text-decoration: none;
}

.machine-source-switch > span {
    min-width: 0;
    padding: 8px 10px;
    color: var(--text-muted);
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
}

.machine-passport-button { align-self: flex-start; margin: 10px 17px 0; }

.machine-catalog-selection,
.machine-custom-configuration {
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 10px;
    padding: 0 17px;
    overflow: auto;
}

.machine-catalog-selection[hidden],
.machine-custom-configuration[hidden] { display: none !important; }

.machine-choice-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 10px;
}

.machine-choice-card {
    position: relative;
    display: grid;
    min-width: 0;
    aspect-ratio: 1;
    grid-template-rows: minmax(0, 1fr) auto;
    overflow: hidden;
    color: var(--text);
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 5px;
}

.machine-choice-card:has(input:checked) {
    background: var(--accent-soft);
    border-color: var(--accent-bright);
    box-shadow: inset 0 0 0 1px var(--accent-bright);
}

.machine-choice-card > input {
    position: absolute;
    opacity: 0;
}

.machine-choice-card__content {
    display: grid;
    min-width: 0;
    min-height: 0;
    grid-row: 1 / -1;
    grid-template-rows: minmax(0, 1fr) auto;
    cursor: pointer;
}

.machine-choice-card__visual {
    display: grid;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    place-items: center;
    color: var(--text-muted);
    background: #dce5ea;
}

.machine-choice-card__visual img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.machine-choice-card__body {
    display: grid;
    min-width: 0;
    gap: 3px;
    padding: 9px 10px 10px;
    background: var(--panel-soft);
    border-top: 1px solid var(--border);
}

.machine-choice-card__body strong,
.machine-choice-card__body small {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.machine-choice-card__body strong { color: var(--text-strong); font-size: .7rem; }
.machine-choice-card__body small { color: var(--text-muted); font-size: .56rem; }

.machine-choice-card__select {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 2;
    min-height: 28px;
    padding: 0 9px;
    color: var(--text-strong);
    background: color-mix(in srgb, var(--accent) 90%, var(--panel-raised));
    border: 1px solid var(--accent-bright);
    border-radius: 4px;
    box-shadow: 0 5px 16px rgba(0, 0, 0, .35);
    cursor: pointer;
    font-size: .62rem;
    font-weight: 650;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-3px);
    transition: opacity .12s ease, transform .12s ease, background .12s ease;
}

.machine-choice-card:hover .machine-choice-card__select,
.machine-choice-card:focus-within .machine-choice-card__select {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.machine-choice-card__select:hover { background: var(--accent-bright); }

.machine-custom-configuration {
    display: grid;
    align-content: start;
    gap: 12px;
}

.machine-custom-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.machine-custom-grid label,
.machine-axis-row label,
.machine-limit-grid label {
    display: grid;
    gap: 4px;
    color: var(--text-muted);
    font-size: .63rem;
}

.machine-custom-grid__wide { grid-column: 1 / -1; }

.machine-axis-editor,
.machine-limit-grid section {
    padding: 10px;
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
}

.machine-axis-editor > header {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 8px;
}

.machine-axis-editor h3,
.machine-limit-grid h3 { margin: 0; color: var(--text-strong); font-size: .72rem; }
.machine-axis-editor p { margin: 3px 0 0; color: var(--text-muted); font-size: .61rem; }

.machine-axis-row {
    display: grid;
    grid-template-columns: 90px 140px repeat(2, minmax(120px, 1fr)) 32px;
    align-items: end;
    gap: 7px;
    padding: 6px 0;
    border-top: 1px solid var(--border);
}

.machine-axis-row > button {
    height: 34px;
    color: var(--danger);
    background: transparent;
    border: 1px solid var(--border);
    border-radius: 3px;
    cursor: pointer;
}

.machine-limit-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.machine-limit-grid section { display: grid; gap: 8px; }
.machine-range-input { display: grid; grid-template-columns: minmax(0, 1fr) 15px minmax(0, 1fr) 60px; align-items: center; }
.machine-range-input i { color: var(--text-muted); font-style: normal; text-align: center; }
.machine-range-input b { color: var(--text-muted); font-size: .6rem; text-align: right; }

.machine-project-setup {
    margin: 10px 17px 0;
    padding: 10px;
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
}

.machine-project-setup > header h3 {
    margin: 0;
    color: var(--text-strong);
    font-size: .72rem;
}

.machine-project-setup > header p {
    margin: 3px 0 9px;
    color: var(--text-muted);
    font-size: .61rem;
}

.machine-project-setup__grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}

.machine-project-setup__grid > label {
    display: grid;
    min-width: 0;
    gap: 4px;
    color: var(--text-muted);
    font-size: .61rem;
}

.machine-project-setup__grid > label > small {
    color: var(--accent-bright);
    font-family: Cambria, "Times New Roman", serif;
    font-size: .68rem;
}

.machine-nc-setup > summary { cursor: pointer; color: var(--text-strong); font-weight: 600; padding: 5px 0; }
.machine-nc-setup p { color: var(--text-muted); font-size: .65rem; line-height: 1.5; }
.machine-nc-heading-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; margin: 10px 0; }
.machine-nc-setup label { display: grid; gap: 5px; min-width: 0; }
.machine-nc-table-scroll { overflow: auto; margin: 10px 0; }
.machine-nc-table { width: 100%; border-collapse: collapse; font-size: .65rem; }
.machine-nc-table th, .machine-nc-table td { padding: 5px; border: 1px solid var(--border); text-align: left; }
.machine-nc-table td { min-width: 95px; }
.machine-nc-table input, .machine-nc-table select { width: 100%; min-width: 85px; }
.machine-nc-axes { min-width: 980px; }
.machine-nc-wheel-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 10px 0; }
.machine-nc-wheel-actions select { flex: 1; min-width: 200px; }
.machine-nc-wheel { margin: 10px 0; padding: 10px; border: 1px solid var(--border); min-width: 0; }
.machine-nc-wheel legend { color: var(--text-strong); font-size: .7rem; }
.machine-nc-wheel-vector { display: grid; grid-template-columns: minmax(160px, 2fr) repeat(3,minmax(80px,1fr)); gap: 8px; align-items: end; margin: 8px 0; }
.machine-nc-status { font-size: .65rem; line-height: 1.5; margin: 10px 0; color: var(--text-muted); }
@media (max-width: 650px) { .machine-nc-wheel-vector { grid-template-columns: repeat(3,minmax(0,1fr)); } .machine-nc-wheel-vector > span { grid-column: 1 / -1; } }

.machine-catalog-administration > .portal-card__header p {
    max-width: 760px;
    margin: 7px 0 0;
    color: var(--text-muted);
    font-size: .68rem;
    line-height: 1.5;
}

.machine-catalog-scope-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 12px 14px 0;
}

.machine-catalog-scope-tabs a {
    padding: 7px 10px;
    color: var(--text-muted);
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: .66rem;
    text-decoration: none;
}

.machine-catalog-scope-tabs a:hover,
.machine-catalog-scope-tabs a.is-active {
    color: var(--text-strong);
    background: var(--accent-soft);
    border-color: var(--accent-bright);
}

.machine-admin-editor {
    border-top: 1px solid var(--border);
}

.machine-admin-editor--new {
    margin: 14px;
    border: 1px solid var(--border-strong);
    border-radius: 5px;
}

.machine-admin-editor > summary {
    display: grid;
    min-height: 46px;
    grid-template-columns: 24px minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    padding: 0 14px;
    color: var(--text);
    background: var(--panel-soft);
    cursor: pointer;
    list-style: none;
}

.machine-admin-editor > summary::-webkit-details-marker { display: none; }
.machine-admin-editor > summary span { color: var(--accent-bright); font-size: 1rem; }
.machine-admin-editor > summary small { color: var(--text-muted); font-size: .63rem; }

.machine-admin-list { display: grid; gap: 12px; padding: 0 14px 14px; }
.machine-admin-card {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr) auto;
    overflow: hidden;
    background: var(--panel-raised);
    border: 1px solid var(--border);
    border-radius: 5px;
}

.machine-admin-card.is-inactive { opacity: .65; }
.machine-admin-card__image { display: grid; min-height: 170px; overflow: hidden; place-items: center; color: var(--text-muted); background: #dce5ea; }
.machine-admin-card__image img { width: 100%; height: 100%; object-fit: contain; }
.machine-admin-card__summary { min-width: 0; padding: 15px 17px; }
.machine-admin-card__summary h3 { margin: 5px 0 7px; color: var(--text-strong); font-size: 1rem; }
.machine-admin-card__summary h3 span { font-weight: 450; }
.machine-admin-card__summary > p:not(.overline) { margin: 0; color: var(--text-muted); line-height: 1.45; }
.machine-admin-card__summary dl { display: flex; gap: 28px; margin: 14px 0 0; }
.machine-admin-card__summary dl div { min-width: 0; }
.machine-admin-card__summary dt { color: var(--text-muted); font-size: .59rem; }
.machine-admin-card__summary dd { margin: 3px 0 0; color: var(--text); font-size: .66rem; }
.machine-admin-card__actions { display: flex; align-items: start; padding: 15px; }
.machine-admin-card > .machine-admin-editor { grid-column: 1 / -1; }
.machine-admin-card > .grinding-operation-admin-delete { grid-column: 1 / -1; margin: 0; padding: 0 14px 14px; background: var(--panel-soft); }

.machine-admin-form { padding: 15px; background: var(--panel); }
.machine-admin-form__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.machine-admin-form label { display: grid; gap: 5px; color: var(--text-muted); font-size: .65rem; }
.machine-admin-form input,
.machine-admin-form textarea { width: 100%; padding: 8px 9px; color: var(--text); background: var(--input); border: 1px solid var(--border-strong); border-radius: 3px; }
.machine-admin-form input { height: 35px; }
.machine-admin-form textarea { resize: vertical; line-height: 1.45; }
.machine-admin-form__wide { grid-column: 1 / -1; }
.machine-admin-form label small { color: var(--text-muted); }
.machine-json-editor { font-family: "Cascadia Mono", Consolas, monospace; font-size: .66rem; tab-size: 2; }
.machine-admin-form footer { display: flex; justify-content: flex-end; padding-top: 12px; }

/* Cutting tool family selection */

.workspace-dialog--tool {
    width: min(980px, calc(100vw - 60px));
}

.workspace-dialog--tool-parameters {
    width: min(1180px, calc(100vw - 36px));
}

.workspace-dialog--tool-parameters .workspace-dialog__form { overflow: hidden; }

.tool-parameters-scroll {
    display: grid;
    flex: 1 1 auto;
    gap: 10px;
    min-height: 0;
    padding: 10px 17px 4px;
    overflow: auto;
}

.engineering-parameter-grid--tool { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.engineering-value-with-tolerance {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(62px, .48fr) auto;
    align-items: center;
    gap: 5px;
}

.engineering-value-with-tolerance > span,
.engineering-tolerance-only > span {
    display: grid;
    gap: 2px;
}

.engineering-value-with-tolerance > span > input,
.engineering-tolerance-only > span > input {
    height: 23px;
    min-height: 23px;
    padding: 0 5px;
    font-size: .62rem;
}

.engineering-value-with-tolerance > b,
.engineering-tolerance-only > b {
    color: var(--text-muted);
    font-size: .58rem;
    font-weight: 500;
}

.engineering-tolerance-only {
    display: grid;
    grid-template-columns: minmax(70px, 100px) auto;
    align-items: center;
    justify-content: start;
    gap: 5px;
}

.tool-technical-requirements {
    display: grid;
    gap: 5px;
    color: var(--text-muted);
    font-size: .62rem;
}

.tool-technical-requirements textarea {
    min-height: 150px;
    padding: 9px;
    color: var(--text);
    background: var(--panel-raised);
    border: 1px solid var(--border-strong);
    border-radius: 3px;
    font-family: inherit;
    line-height: 1.45;
    resize: vertical;
}

.tool-technical-requirements small { color: var(--text-muted); font-size: .57rem; }

.tool-type-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    padding: 12px 17px;
}

.tool-type-card {
    position: relative;
    display: grid;
    min-height: 112px;
    grid-template-columns: 58px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    padding: 12px;
    color: var(--text);
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 5px;
    cursor: pointer;
}

.tool-type-card:not(.is-disabled):hover {
    background: var(--panel-raised);
    border-color: var(--border-strong);
}

.tool-type-card:has(input:checked) {
    background: var(--accent-soft);
    border-color: var(--accent-bright);
    box-shadow: inset 0 0 0 1px var(--accent-bright);
}

.tool-type-card.is-disabled {
    color: var(--text-muted);
    cursor: default;
    opacity: .38;
}

.tool-type-card > input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.tool-type-card__symbol {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    color: var(--accent-bright);
    background: var(--panel-raised);
    border: 1px solid var(--border-strong);
    border-radius: 50%;
}

.tool-type-card__symbol .icon { width: 29px; height: 29px; }

.tool-type-card__body,
.tool-type-card__body strong,
.tool-type-card__body small,
.tool-type-card__body b { display: block; }
.tool-type-card__body strong { color: var(--text-strong); font-size: .78rem; }
.tool-type-card__body small { margin-top: 5px; color: var(--text-muted); font-size: .63rem; line-height: 1.38; }
.tool-type-card__body b { margin-top: 9px; color: var(--accent-bright); font-size: .6rem; font-weight: 650; text-transform: uppercase; }
.tool-type-card.is-disabled .tool-type-card__body b { color: var(--text-muted); }

.tool-configuration-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    padding: 2px 17px 12px;
}

.tool-configuration-grid label {
    display: grid;
    gap: 5px;
    color: var(--text-muted);
    font-size: .66rem;
}

.tool-configuration-grid input,
.tool-configuration-grid select,
.tool-configuration-grid textarea {
    width: 100%;
    color: var(--text);
    background: var(--input);
    border: 1px solid var(--border-strong);
    border-radius: 3px;
}

.tool-configuration-grid input,
.tool-configuration-grid select { height: 36px; padding: 0 9px; }
.tool-configuration-grid textarea { min-height: 72px; padding: 8px 9px; resize: vertical; }
.tool-configuration-grid__wide { grid-column: 1 / -1; }

/* Grinding route */

.workspace-dialog--route {
    width: min(1180px, calc(100vw - 60px));
}

.workspace-dialog--route .workspace-dialog__form {
    min-height: min(720px, calc(100vh - 72px));
    overflow: hidden;
}

.grinding-route-editor {
    display: grid;
    min-height: 0;
    flex: 1 1 auto;
    grid-template-columns: minmax(430px, 1.05fr) minmax(390px, .95fr);
    gap: 1px;
    margin-top: 10px;
    overflow: hidden;
    background: var(--border);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.grinding-route-sequence,
.grinding-operation-catalog {
    min-width: 0;
    overflow: auto;
    padding: 13px 14px;
    background: var(--panel);
}

.grinding-route-section-heading {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 11px;
}

.grinding-route-section-heading strong,
.grinding-route-section-heading small { display: block; }
.grinding-route-section-heading strong { color: var(--text-strong); font-size: .78rem; }
.grinding-route-section-heading small { margin-top: 3px; color: var(--text-muted); font-size: .61rem; line-height: 1.4; }
.grinding-route-section-heading > b {
    display: grid;
    min-width: 30px;
    height: 24px;
    place-items: center;
    color: var(--accent-bright);
    background: var(--accent-soft);
    border: 1px solid var(--border-strong);
    border-radius: 12px;
    font: 650 .62rem "Cascadia Mono", Consolas, monospace;
}

.grinding-operation-catalog__manage {
    flex: 0 0 auto;
    color: var(--accent-bright);
    font-size: .58rem;
    text-decoration: none;
}

.grinding-operation-catalog__manage:hover { text-decoration: underline; }

.grinding-route-empty {
    display: grid;
    min-height: 235px;
    align-content: center;
    justify-items: center;
    padding: 30px;
    color: var(--text-muted);
    background: var(--input);
    border: 1px dashed var(--border-strong);
    border-radius: 5px;
    text-align: center;
}

.grinding-route-empty[hidden] { display: none; }

.grinding-route-empty > span {
    display: grid;
    width: 54px;
    height: 54px;
    margin-bottom: 11px;
    place-items: center;
    color: var(--accent-bright);
    background: var(--accent-soft);
    border-radius: 50%;
}
.grinding-route-empty .icon { width: 27px; height: 27px; }
.grinding-route-empty strong { font-size: .78rem; }
.grinding-route-empty small { max-width: 400px; margin-top: 5px; font-size: .63rem; line-height: 1.45; }

.grinding-route-list {
    display: grid;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.grinding-route-list > li {
    display: grid;
    min-height: 61px;
    grid-template-columns: 38px minmax(0, 1fr) 32px auto auto;
    align-items: center;
    gap: 10px;
    padding: 7px 8px;
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
}

.grinding-route-list__number {
    color: var(--accent-bright);
    font: 700 .67rem "Cascadia Mono", Consolas, monospace;
    text-align: center;
}
.grinding-route-list__editor {
    min-width: 0;
    padding: 4px 6px;
    color: inherit;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 3px;
    cursor: pointer;
    text-align: left;
}
.grinding-route-list__editor:hover,
.grinding-route-list__editor:focus-visible { background: var(--panel-raised); border-color: var(--border-strong); outline: none; }
.grinding-route-list__editor strong,
.grinding-route-list__editor small { display: block; }
.grinding-route-list__editor strong { color: var(--text-strong); font-size: .7rem; }
.grinding-route-list__editor small { margin-top: 3px; color: var(--text-muted); font-size: .59rem; }
.grinding-route-list > li > b { color: var(--warning); font-size: .58rem; font-weight: 600; white-space: nowrap; }
.grinding-route-list__activity {
    display: grid;
    width: 27px;
    height: 27px;
    place-items: center;
    color: var(--text-muted);
    background: var(--panel-raised);
    border: 1px solid var(--border);
    border-radius: 3px;
}
.grinding-route-list__activity .icon { width: 15px; height: 15px; }
.grinding-route-list__activity.is-positive { color: var(--success); border-color: color-mix(in srgb, var(--success) 45%, var(--border)); }
.grinding-route-list__activity.is-muted { opacity: .55; }
.grinding-route-list__state.is-positive { color: var(--success); }
.grinding-route-list__state.is-warning { color: var(--warning); }
.grinding-route-list__state.is-muted { color: var(--text-muted); }
.grinding-route-list__state.is-danger { color: var(--danger); }
.grinding-route-list > li.has-error {
    border-color: color-mix(in srgb, var(--danger) 55%, var(--border));
    box-shadow: inset 3px 0 color-mix(in srgb, var(--danger) 78%, transparent);
}
.grinding-route-list__error {
    grid-column: 2 / -1;
    overflow: hidden;
    padding: 5px 7px;
    color: color-mix(in srgb, var(--danger) 62%, var(--text));
    background: color-mix(in srgb, var(--danger) 8%, var(--panel-soft));
    border: 1px solid color-mix(in srgb, var(--danger) 35%, var(--border));
    border-radius: 3px;
    cursor: pointer;
    font-size: .58rem;
    line-height: 1.35;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.grinding-route-list__error:hover,
.grinding-route-list__error:focus-visible {
    border-color: var(--danger);
    outline: none;
}
.grinding-route-list > li.is-disabled { opacity: .6; }
.grinding-route-list > li.is-disabled > b { color: var(--text-muted); }
.grinding-route-list > li.is-active {
    border-color: var(--accent-bright);
    box-shadow: inset 3px 0 0 var(--accent-bright);
    background: color-mix(in srgb, var(--accent) 10%, var(--panel));
}

.grinding-route-list__actions { display: flex; gap: 3px; }
.grinding-route-list__actions button {
    display: grid;
    width: 27px;
    height: 27px;
    place-items: center;
    color: var(--text-muted);
    background: var(--panel-raised);
    border: 1px solid var(--border);
    border-radius: 3px;
    cursor: pointer;
}
.grinding-route-list__actions button:hover:not(:disabled) { color: var(--text-strong); border-color: var(--border-strong); }
.grinding-route-list__actions button[data-route-duplicate] { color: var(--accent-bright); font-size: .82rem; }
.grinding-route-list__actions button[data-route-delete] { color: var(--danger); }
.grinding-route-list__actions button:disabled { cursor: default; opacity: .28; }

.grinding-operation-cards { display: grid; gap: 7px; }
.grinding-operation-cards article {
    display: grid;
    min-height: 88px;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 9px 10px;
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
}
.grinding-operation-cards article > span {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    color: var(--accent-bright);
    background: var(--accent-soft);
    border-radius: 4px;
}
.grinding-operation-cards article > span .icon { width: 20px; height: 20px; }
.grinding-operation-cards article strong,
.grinding-operation-cards article small,
.grinding-operation-cards article b { display: block; }
.grinding-operation-cards article strong { color: var(--text-strong); font-size: .7rem; }
.grinding-operation-cards article small { margin-top: 3px; color: var(--text-muted); font-size: .59rem; line-height: 1.38; }
.grinding-operation-cards article b { margin-top: 5px; color: var(--accent-bright); font-size: .55rem; font-weight: 600; text-transform: uppercase; }
.grinding-operation-cards article > button {
    min-width: 76px;
    height: 30px;
    padding: 0 10px;
    color: var(--accent-bright);
    background: var(--accent-soft);
    border: 1px solid var(--border-strong);
    border-radius: 3px;
    cursor: pointer;
    font-size: .61rem;
    font-weight: 650;
}
.grinding-operation-cards article > button:hover { color: var(--text-strong); border-color: var(--accent-bright); }

.grinding-route-footer-actions { display: flex; gap: 8px; }

.workspace-dialog--operation-settings { width: min(700px, calc(100vw - 60px)); }
.workspace-dialog--operation-settings.is-flute-settings { width: min(1080px, calc(100vw - 60px)); }
.workspace-dialog--operation-settings .workspace-dialog__form {
    min-height: 0;
    max-height: calc(100vh - 60px);
    overflow: hidden;
}

.route-operation-settings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 0;
}
.route-operation-settings-grid > label { display: grid; gap: 5px; color: var(--text-muted); font-size: .66rem; }
.route-operation-settings-grid input[type="text"],
.route-operation-settings-grid textarea {
    width: 100%;
    color: var(--text);
    background: var(--input);
    border: 1px solid var(--border-strong);
    border-radius: 3px;
}
.route-operation-settings-grid input[type="text"] { height: 36px; padding: 0 9px; }
.route-operation-settings-grid input[readonly] { color: var(--text-muted); background: var(--panel); }
.route-operation-settings-grid textarea { min-height: 92px; padding: 8px 9px; resize: vertical; }
.route-operation-settings-grid__wide { grid-column: 1 / -1; }
.route-operation-enabled {
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: start;
    padding: 10px;
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
    cursor: pointer;
}
.route-operation-enabled input { width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--accent-bright); }
.route-operation-enabled strong,
.route-operation-enabled small { display: block; }
.route-operation-enabled strong { color: var(--text-strong); font-size: .68rem; }
.route-operation-enabled small { margin-top: 4px; color: var(--text-muted); font-size: .59rem; line-height: 1.4; }

.flute-operation-settings[hidden],
.engineering-parameter-grid [hidden],
.engineering-parameter-group [hidden],
[data-generic-operation-settings-note][hidden] { display: none !important; }

.flute-operation-settings {
    display: grid;
    gap: 10px;
    padding: 0 17px 16px;
}

.flute-operation-settings > .operation-dialog-note { margin: 0; }

.flute-operation-tab-layout {
    display: grid;
    grid-template-columns: 186px minmax(0, 1fr);
    min-height: 430px;
    overflow: hidden;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 5px;
}

.flute-operation-tabs {
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding: 8px 0;
    background: color-mix(in srgb, var(--title-bar) 70%, var(--panel));
    border-right: 1px solid var(--border);
}

.flute-operation-tabs button {
    position: relative;
    display: grid;
    gap: 4px;
    min-height: 62px;
    padding: 11px 13px 11px 17px;
    color: var(--text-muted);
    text-align: left;
    background: transparent;
    border: 0;
    border-left: 3px solid transparent;
    cursor: pointer;
}

.flute-operation-tabs button:hover { color: var(--text-strong); background: color-mix(in srgb, var(--accent) 10%, transparent); }
.flute-operation-tabs button.is-active {
    color: var(--text-strong);
    background: color-mix(in srgb, var(--accent) 18%, var(--panel-raised));
    border-left-color: var(--accent-bright);
}
.flute-operation-tabs strong { font-size: .68rem; }
.flute-operation-tabs small { color: inherit; font-size: .55rem; font-weight: 400; line-height: 1.35; opacity: .78; }
.flute-operation-tab-content { min-width: 0; padding: 11px; overflow: auto; }
.operation-settings-tab-panel { display: grid; gap: 10px; }
.operation-settings-tab-panel[hidden] { display: none !important; }
.operation-settings-tab-panel > .operation-dialog-note { margin: 0; }
.operation-result-contract {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.operation-result-contract > article,
.operation-result-contract > p {
    min-width: 0;
    margin: 0;
    padding: 10px 11px;
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
}
.operation-result-contract > article { display: grid; gap: 5px; }
.operation-result-contract > article strong { color: var(--text-strong); font-size: .66rem; }
.operation-result-contract > article small { color: var(--text-muted); font-size: .57rem; line-height: 1.4; }
.operation-result-contract > p { grid-column: 1 / -1; color: var(--text-muted); font-size: .62rem; }
.route-operation-description {
    margin: 0;
    color: var(--text-muted);
    line-height: 1.55;
}

.engineering-parameter-group {
    min-width: 0;
    margin: 0;
    padding: 11px;
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
}

.engineering-parameter-group > legend {
    padding: 0 6px;
    color: var(--text-strong);
    font-size: .7rem;
    font-weight: 700;
}

.engineering-parameter-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.engineering-parameter-grid > label {
    display: grid;
    min-width: 0;
    gap: 4px;
    color: var(--text-muted);
    font-size: .62rem;
}

.engineering-parameter-grid > label > span:first-child { color: var(--text); }

.engineering-parameter-grid input,
.engineering-parameter-grid select,
.engineering-parameter-grid textarea {
    width: 100%;
    color: var(--text);
    background: var(--panel-raised);
    border: 1px solid var(--border-strong);
    border-radius: 3px;
}

.engineering-parameter-grid select { height: 34px; padding: 0 8px; }
.engineering-parameter-grid textarea { min-height: 118px; padding: 8px 9px; resize: vertical; font-family: "Cascadia Mono", Consolas, monospace; }
.engineering-parameter-grid > label > small { color: var(--text-muted); font-size: .57rem; line-height: 1.35; }
.engineering-parameter-grid > label > small sub { font-size: .72em; }
.engineering-parameter-grid__wide { grid-column: 1 / -1; }

.route-operation-footer {
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.route-operation-footer .button { min-width: 150px; }

.grinding-wheel-library-select {
    display: grid;
    gap: 5px;
    color: var(--text-muted);
    font-size: .64rem;
}

.grinding-wheel-library-select > span { color: var(--text); }
.grinding-wheel-library-select select {
    width: 100%;
    height: 38px;
    padding: 0 10px;
    color: var(--text-strong);
    background: var(--panel-raised);
    border: 1px solid var(--border-strong);
    border-radius: 3px;
}
.grinding-wheel-library-select small { font-size: .57rem; line-height: 1.4; }

.grinding-wheel-library-toolbar {
    display: grid;
    grid-template-columns: minmax(220px, .75fr) minmax(280px, 1.25fr) auto;
    gap: 10px;
    align-items: end;
}

.grinding-wheel-library-toolbar > .button {
    min-width: 170px;
    margin-bottom: 20px;
}

.grinding-wheel-library-preview {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    margin-top: 10px;
}

.grinding-wheel-profile {
    display: grid;
    width: 100%;
    max-width: 180px;
    aspect-ratio: 1;
    min-width: 0;
    margin: 0;
    align-content: center;
    overflow: hidden;
    color: var(--text);
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
}

.grinding-wheel-profile svg { display: block; width: 100%; height: 100%; min-height: 0; }
.grinding-wheel-profile figcaption {
    overflow: hidden;
    padding: 7px 9px;
    color: var(--text-muted);
    white-space: nowrap;
    text-overflow: ellipsis;
    background: color-mix(in srgb, var(--panel-raised) 88%, transparent);
    border-top: 1px solid var(--border);
    font-size: .54rem;
}

.wheel-profile__body { fill: color-mix(in srgb, var(--panel-raised) 70%, #7a8fa3); stroke: var(--text-muted); stroke-width: 1; }
.wheel-profile__bore { fill: var(--input); stroke: var(--text-muted); stroke-width: 1; }
.wheel-profile__layer { stroke-width: 1.15; }
.wheel-profile__layer.is-diamond,
.wheel-profile__custom-layer.is-diamond { fill: color-mix(in srgb, #37a8ed 78%, var(--accent)); stroke: #9bdcff; }
.wheel-profile__layer.is-cbn,
.wheel-profile__custom-layer.is-cbn { fill: color-mix(in srgb, #8e6fd4 76%, var(--accent)); stroke: #c5b5ff; }
.wheel-profile__custom-layer { fill: none !important; stroke-width: 7; stroke-linejoin: round; }
.wheel-profile__axis { stroke: var(--text-muted); stroke-width: .8; stroke-dasharray: 5 4; opacity: .8; }
.wheel-profile__dimension { stroke: var(--accent-bright); stroke-width: .8; }
.wheel-profile__dimension-fill { fill: var(--accent-bright); }
.wheel-profile__dimension-text,
.wheel-profile__label { fill: var(--text-muted); font-size: 9px; font-family: "Cascadia Mono", Consolas, monospace; }
.wheel-profile__type { fill: var(--text-strong); font-size: 11px; font-weight: 700; }
.wheel-profile__legend-swatch { fill: #37a8ed; stroke: #9bdcff; }
.is-cbn > .wheel-profile__legend-swatch { fill: #8e6fd4; stroke: #c5b5ff; }

.grinding-wheel-library-summary {
    display: grid;
    grid-template-columns: 1.45fr 1fr 1fr .72fr .82fr;
    margin-top: 0;
    background: color-mix(in srgb, var(--panel-raised) 72%, transparent);
    border: 1px solid var(--border);
    border-radius: 4px;
    overflow: hidden;
}
.grinding-wheel-library-summary > div {
    display: grid;
    align-content: center;
    min-width: 0;
    min-height: 58px;
    gap: 5px;
    padding: 8px 10px;
    border-right: 1px solid var(--border);
}
.grinding-wheel-library-summary > div:last-child { border-right: 0; }
.grinding-wheel-library-summary span { color: var(--text-muted); font-size: .54rem; }
.grinding-wheel-library-summary strong { overflow: hidden; color: var(--text-strong); font-size: .62rem; text-overflow: ellipsis; }

.workspace-dialog--wheel-library {
    width: min(1180px, calc(100vw - 36px));
    height: min(820px, calc(100vh - 30px));
}

.workspace-dialog--wheel-library .workspace-dialog__form {
    height: 100%;
    max-height: none;
    overflow: hidden;
}

.workspace-dialog__form > .wheel-library-footer {
    justify-content: space-between;
}

.wheel-library-footer__actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.wheel-library-editor {
    display: grid;
    min-height: 0;
    flex: 1 1 auto;
    grid-template-columns: 285px minmax(0, 1fr);
    overflow: hidden;
}

.wheel-library-catalog {
    display: flex;
    min-height: 0;
    flex-direction: column;
    background: color-mix(in srgb, var(--title-bar) 55%, var(--panel));
    border-right: 1px solid var(--border);
}

.wheel-library-catalog > div:first-child {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 46px;
    padding: 8px 10px;
    border-bottom: 1px solid var(--border);
}

.wheel-library-catalog > div:first-child strong {
    color: var(--text-strong);
    font-size: .68rem;
}

.wheel-library-catalog > div:first-child button {
    min-height: 28px;
    padding: 0 8px;
    color: var(--accent-bright);
    background: var(--accent-soft);
    border: 1px solid var(--border-strong);
    border-radius: 3px;
    cursor: pointer;
    font-size: .58rem;
}

.wheel-library-filters {
    display: grid;
    flex: 0 0 auto;
    gap: 7px;
    padding: 9px 10px;
    background: color-mix(in srgb, var(--panel-soft) 78%, var(--title-bar));
    border-bottom: 1px solid var(--border);
}

.wheel-library-filters label {
    display: grid;
    min-width: 0;
    gap: 4px;
    color: var(--text-muted);
    font-size: .55rem;
}

.wheel-library-filters input,
.wheel-library-filters select {
    width: 100%;
    height: 30px;
    min-width: 0;
    padding: 0 7px;
    color: var(--text-strong);
    background: var(--panel-raised);
    border: 1px solid var(--border-strong);
    border-radius: 3px;
    font-size: .59rem;
}

.wheel-library-filter-range {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 5px;
    margin: 0;
    padding: 0;
    border: 0;
}

.wheel-library-filter-range legend {
    grid-column: 1 / -1;
    margin-bottom: 4px;
    padding: 0;
    color: var(--text-muted);
    font-size: .55rem;
}

.wheel-library-filter-range > span {
    color: var(--text-muted);
    font-size: .6rem;
}

.wheel-library-filters > footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding-top: 2px;
}

.wheel-library-filters > footer span {
    color: var(--text-muted);
    font-size: .54rem;
}

.wheel-library-filters > footer button {
    min-height: 26px;
    padding: 0 8px;
    color: var(--accent-bright);
    background: transparent;
    border: 1px solid var(--border-strong);
    border-radius: 3px;
    cursor: pointer;
    font-size: .55rem;
}

.wheel-library-filters > footer button:hover {
    color: var(--text-strong);
    background: var(--accent-soft);
}

.wheel-library-catalog > div:last-child {
    min-height: 0;
    flex: 1 1 auto;
    overflow: auto;
    padding: 6px;
}

.wheel-library-catalog-item {
    display: grid;
    width: 100%;
    gap: 4px;
    padding: 9px 10px;
    color: var(--text);
    text-align: left;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 3px;
    cursor: pointer;
}

.wheel-library-catalog-item + .wheel-library-catalog-item { margin-top: 3px; }
.wheel-library-catalog-item:hover { background: var(--accent-soft); }
.wheel-library-catalog-item.is-selected { background: color-mix(in srgb, var(--accent) 18%, var(--panel)); border-color: var(--accent); }
.wheel-library-catalog-item.is-inactive { opacity: .55; }
.wheel-library-catalog-item strong { color: var(--text-strong); font-size: .62rem; line-height: 1.35; }
.wheel-library-catalog-item span { color: var(--text-muted); font-size: .55rem; }

.wheel-library-catalog-empty {
    margin: 8px 4px;
    padding: 14px 10px;
    color: var(--text-muted);
    text-align: center;
    background: var(--panel-soft);
    border: 1px dashed var(--border-strong);
    border-radius: 3px;
    font-size: .58rem;
    line-height: 1.45;
}

.wheel-library-card {
    min-width: 0;
    min-height: 0;
    overflow: auto;
    padding: 12px 14px 22px;
}

.wheel-library-card__overview {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 11px;
    align-items: stretch;
    margin-bottom: 11px;
}

.grinding-wheel-profile--editor { max-width: 180px; }
.grinding-wheel-profile--editor svg { min-height: 0; }
.grinding-wheel-profile--editor figcaption { display: none; }

.grinding-operation-administration { width: min(1420px, calc(100vw - 36px)); }
.portal-card-header-actions { display: flex; align-items: center; gap: 10px; }

.grinding-operation-admin-editor {
    margin: 12px 0 0;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 4px;
}

.grinding-operation-admin-editor > summary {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
    padding: 11px 13px;
    color: var(--text-strong);
    cursor: pointer;
    list-style: none;
}

.grinding-operation-admin-editor > summary::-webkit-details-marker { display: none; }
.grinding-operation-admin-editor > summary > span { color: var(--accent-bright); font-size: 1rem; text-align: center; }
.grinding-operation-admin-editor > summary > strong { font-size: .72rem; }
.grinding-operation-admin-editor > summary > small { color: var(--text-muted); font-size: .58rem; }
.grinding-operation-admin-editor[open] > summary { background: var(--panel-raised); border-bottom: 1px solid var(--border); }

.grinding-operation-admin-list { display: grid; gap: 12px; margin-top: 14px; }
.grinding-operation-admin-card { position: relative; padding: 14px; background: var(--panel-soft); border: 1px solid var(--border); border-left: 3px solid var(--accent); border-radius: 4px; }
.grinding-operation-admin-card.is-inactive { opacity: .62; border-left-color: var(--text-muted); }
.grinding-operation-admin-card > header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .55fr); gap: 18px; align-items: start; }
.grinding-operation-admin-card h3 { margin: 3px 0 5px; color: var(--text-strong); font-size: 1rem; }
.grinding-operation-admin-card header p:last-child { margin: 0; color: var(--text-muted); font-size: .64rem; line-height: 1.5; }
.grinding-operation-admin-card dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border: 1px solid var(--border); }
.grinding-operation-admin-card dl div { min-width: 0; padding: 8px 9px; border-right: 1px solid var(--border); }
.grinding-operation-admin-card dl div:last-child { border-right: 0; }
.grinding-operation-admin-card dt { color: var(--text-muted); font-size: .52rem; }
.grinding-operation-admin-card dd { overflow: hidden; margin: 3px 0 0; color: var(--text-strong); font: .58rem "Cascadia Mono", Consolas, monospace; text-overflow: ellipsis; }

.grinding-operation-admin-summary { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 11px; padding: 9px 11px; background: var(--input); border: 1px solid var(--border); }
.grinding-operation-admin-summary span { color: var(--text); font-size: .61rem; }
.grinding-operation-admin-summary strong { margin-right: 7px; color: var(--text-muted); font-size: .54rem; }

.grinding-operation-admin-form { padding: 13px; }
.grinding-operation-admin-form fieldset { min-width: 0; margin: 0 0 11px; padding: 11px; border: 1px solid var(--border); border-radius: 4px; }
.grinding-operation-admin-form legend { padding: 0 7px; color: var(--accent-bright); font-size: .62rem; font-weight: 700; }
.grinding-operation-admin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.grinding-operation-admin-grid__wide { grid-column: 1 / -1; }
.grinding-operation-admin-grid label,
.grinding-operation-admin-pose label { display: grid; gap: 5px; color: var(--text-muted); font-size: .58rem; }
.grinding-operation-admin-grid input,
.grinding-operation-admin-grid select,
.grinding-operation-admin-grid textarea,
.grinding-operation-admin-pose input { width: 100%; color: var(--text); background: var(--input); border: 1px solid var(--border-strong); border-radius: 3px; }
.grinding-operation-admin-grid input,
.grinding-operation-admin-grid select,
.grinding-operation-admin-pose input { min-height: 34px; padding: 0 9px; }
.grinding-operation-admin-grid textarea { padding: 8px 9px; resize: vertical; }
.grinding-operation-admin-grid input[readonly] { color: var(--text-muted); background: var(--panel); }
.grinding-operation-admin-grid small { color: var(--text-muted); font-size: .53rem; }

.grinding-operation-admin-help { margin: 0 0 9px; color: var(--text-muted); font-size: .58rem; line-height: 1.45; }
.grinding-operation-admin-pose { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.grinding-operation-admin-pose label > span:last-child { display: grid; grid-template-columns: minmax(0, 1fr) 34px; align-items: center; }
.grinding-operation-admin-pose b { display: grid; height: 34px; place-items: center; color: var(--text-muted); background: var(--panel-raised); border: 1px solid var(--border-strong); border-left: 0; font-size: .55rem; }

.grinding-operation-admin-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.grinding-operation-admin-columns section { min-width: 0; padding: 9px; background: var(--input); border: 1px solid var(--border); }
.grinding-operation-admin-columns h4 { margin: 0; color: var(--text-strong); font-size: .66rem; }
.grinding-operation-admin-columns p { margin: 3px 0 8px; color: var(--text-muted); font-size: .54rem; }
.grinding-operation-admin-checklist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
.grinding-operation-admin-checklist label { display: flex; min-width: 0; align-items: center; gap: 7px; padding: 7px; background: var(--panel); border: 1px solid var(--border); border-radius: 3px; cursor: pointer; }
.grinding-operation-admin-checklist input { flex: 0 0 auto; accent-color: var(--accent); }
.grinding-operation-admin-checklist span { min-width: 0; }
.grinding-operation-admin-checklist strong,
.grinding-operation-admin-checklist small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.grinding-operation-admin-checklist strong { color: var(--accent-bright); font: .54rem "Cascadia Mono", Consolas, monospace; }
.grinding-operation-admin-checklist small { margin-top: 2px; color: var(--text); font-size: .54rem; }

.grinding-operation-admin-actions { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding-top: 4px; }
.grinding-operation-admin-active { display: flex; align-items: center; gap: 8px; color: var(--text); cursor: pointer; }
.grinding-operation-admin-active span strong,
.grinding-operation-admin-active span small { display: block; }
.grinding-operation-admin-active span strong { font-size: .62rem; }
.grinding-operation-admin-active span small { margin-top: 2px; color: var(--text-muted); font-size: .53rem; }
.grinding-operation-admin-delete { display: flex; justify-content: flex-end; margin-top: 9px; }

@media (max-width: 980px) {
    .grinding-operation-admin-card > header { grid-template-columns: 1fr; }
    .grinding-operation-admin-pose { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .grinding-operation-admin-checklist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.wheel-library-card__designation {
    display: grid;
    gap: 4px;
    margin-bottom: 0;
    padding: 10px 12px;
    background: var(--panel-soft);
    border-left: 3px solid var(--accent-bright);
}

.wheel-library-card__designation span,
.wheel-library-card__designation small { color: var(--text-muted); font-size: .57rem; }
.wheel-library-card__designation strong { color: var(--text-strong); font-size: .7rem; line-height: 1.4; }

.wheel-library-card fieldset {
    min-width: 0;
    margin: 0 0 10px;
    padding: 10px;
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
}

.wheel-library-card legend {
    padding: 0 6px;
    color: var(--text-strong);
    font-size: .67rem;
    font-weight: 700;
}

.wheel-library-fields {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.wheel-library-fields > label {
    display: grid;
    min-width: 0;
    align-content: start;
    gap: 4px;
    color: var(--text);
    font-size: .61rem;
}

.wheel-library-fields input,
.wheel-library-fields select,
.wheel-library-fields textarea,
.wheel-library-card [data-wheel-editor-standard] {
    width: 100%;
    color: var(--text);
    background: var(--panel-raised);
    border: 1px solid var(--border-strong);
    border-radius: 3px;
}

.wheel-library-fields input,
.wheel-library-fields select,
.wheel-library-card [data-wheel-editor-standard] { height: 34px; padding: 0 8px; }
.wheel-library-fields textarea { min-height: 82px; padding: 8px 9px; resize: vertical; font-family: "Cascadia Mono", Consolas, monospace; }
.wheel-library-fields small { color: var(--text-muted); font-size: .55rem; line-height: 1.35; }
.wheel-library-fields__wide { grid-column: 1 / -1; }

.wheel-library-shape-reference {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 3px 12px;
    margin-top: 9px;
    padding: 8px 10px;
    color: var(--text);
    background: color-mix(in srgb, var(--accent) 10%, var(--panel-soft));
    border-left: 3px solid var(--accent-bright);
}

.wheel-library-shape-reference strong { color: var(--text-strong); font-size: .64rem; }
.wheel-library-shape-reference span { color: var(--accent-bright); font-size: .57rem; text-align: right; }
.wheel-library-shape-reference small { grid-column: 1 / -1; color: var(--text-muted); font-size: .54rem; }

.wheel-library-standards {
    color: var(--text);
    background: var(--panel-soft);
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: .61rem;
}

.wheel-library-standards summary { padding: 10px 12px; color: var(--text-strong); cursor: pointer; font-weight: 700; }
.wheel-library-standards > div { padding: 0 12px 12px; line-height: 1.52; }
.wheel-library-standards p { margin: 8px 0 0; }
.wheel-library-standards__links { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.wheel-library-standards__links a { color: var(--accent-bright); }

@media (max-width: 900px) {
    .wheel-library-editor { grid-template-columns: 230px minmax(0, 1fr); }
    .wheel-library-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .grinding-wheel-library-toolbar { grid-template-columns: 1fr; }
    .grinding-wheel-library-toolbar > .button { width: 100%; margin-bottom: 0; }
    .grinding-wheel-library-preview { grid-template-columns: 150px minmax(0, 1fr); }
    .wheel-library-card__overview { grid-template-columns: 180px minmax(0, 1fr); }
    .wheel-library-shape-reference { grid-template-columns: 1fr; }
    .wheel-library-shape-reference span { text-align: left; }
    .wheel-library-shape-reference small { grid-column: auto; }
}

.trajectory-parameter-group { border-left: 2px solid color-mix(in srgb, var(--accent-bright) 58%, var(--border)); }

.grinding-cycle-player[hidden],
.flute-analysis-panel[hidden],
.analysis-summary[hidden] { display: none !important; }

.grinding-cycle-player {
    position: absolute;
    z-index: 24;
    bottom: 16px;
    left: 50%;
    display: grid;
    grid-template-columns: 34px 34px minmax(420px, 1fr) 64px;
    align-items: center;
    gap: 6px;
    width: min(920px, calc(100% - 150px));
    padding: 7px;
    color: var(--text);
    background: color-mix(in srgb, var(--title-bar) 93%, transparent);
    border: 1px solid var(--border-strong);
    border-radius: 5px;
    box-shadow: 0 8px 28px rgba(0, 0, 0, .28);
    transform: translateX(-50%);
    backdrop-filter: blur(8px);
}
.grinding-cycle-player button,
.grinding-cycle-player select {
    height: 32px;
    color: var(--text-strong);
    background: var(--panel-raised);
    border: 1px solid var(--border-strong);
    border-radius: 3px;
}
.grinding-cycle-player button { cursor: pointer; font-size: .74rem; }
.grinding-cycle-timeline { display: grid; min-width: 0; gap: 4px; }
.grinding-cycle-segments { display: flex; min-width: 0; gap: 2px; }
.grinding-cycle-segments button {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-width: 76px;
    height: 24px;
    gap: 5px;
    padding: 0 7px;
    overflow: hidden;
    color: var(--text-muted);
    font-size: .55rem;
    white-space: nowrap;
}
.grinding-cycle-segments button[hidden] { display: none !important; }
.grinding-cycle-segments button i { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: var(--segment-color); }
.grinding-cycle-segments button[data-grinding-jump="entry"] { --segment-color: #e5b44b; }
.grinding-cycle-segments button[data-grinding-jump="cutting"] { --segment-color: #42aee9; }
.grinding-cycle-segments button[data-grinding-jump="exit"] { --segment-color: #ef715d; }
.grinding-cycle-segments button.is-active { color: var(--text-strong); border-color: var(--segment-color); box-shadow: inset 0 -2px 0 var(--segment-color); }
.grinding-cycle-timeline__status,
.grinding-cycle-coordinates { display: flex; justify-content: space-between; gap: 12px; min-width: 0; }
.grinding-cycle-timeline__status { align-items: center; }
.grinding-cycle-timeline__status strong { color: var(--accent-bright); font-size: .58rem; }
.grinding-cycle-timeline__status output { color: var(--text-muted); font-family: "Cascadia Mono", Consolas, monospace; font-size: .52rem; }
.grinding-cycle-player input[type="range"] {
    width: 100%;
    height: 7px;
    margin: 0;
    appearance: none;
    background: linear-gradient(90deg,
        #e5b44b 0 var(--entry-end, 25%),
        #42aee9 var(--entry-end, 25%) var(--cutting-end, 75%),
        #ef715d var(--cutting-end, 75%) 100%);
    border: 0;
    border-radius: 999px;
    cursor: pointer;
}
.grinding-cycle-player input[type="range"]::-webkit-slider-thumb { width: 15px; height: 15px; appearance: none; background: var(--text-strong); border: 2px solid var(--title-bar); border-radius: 50%; box-shadow: 0 0 0 1px var(--border-strong); }
.grinding-cycle-player input[type="range"]::-moz-range-thumb { width: 13px; height: 13px; background: var(--text-strong); border: 2px solid var(--title-bar); border-radius: 50%; box-shadow: 0 0 0 1px var(--border-strong); }
.grinding-cycle-coordinates { padding-top: 1px; color: var(--text-muted); font-size: .5rem; }
.grinding-cycle-coordinates output { overflow: hidden; color: var(--text); font-family: "Cascadia Mono", Consolas, monospace; text-overflow: ellipsis; white-space: nowrap; }
.grinding-material-removal-status {
    justify-self: start;
    padding: 2px 7px;
    color: #8fd4f7;
    border: 1px solid color-mix(in srgb, #42aee9 48%, transparent);
    border-radius: 3px;
    background: color-mix(in srgb, #42aee9 11%, transparent);
    font-family: "Cascadia Mono", Consolas, monospace;
    font-size: .48rem;
    line-height: 1.35;
}
.grinding-material-removal-status[hidden] { display: none; }
.grinding-cycle-player select { padding: 0 6px; }

@media (max-width: 980px) {
    .flute-operation-tab-layout { grid-template-columns: 150px minmax(0, 1fr); }
    .grinding-cycle-player { grid-template-columns: 34px 34px minmax(300px, 1fr) 58px; width: calc(100% - 24px); }
}

.flute-analysis-panel {
    display: flex;
    min-height: 0;
    flex: 1 1 auto;
    flex-direction: column;
    overflow: auto;
}
.flute-analysis-panel .panel__header { min-height: 52px; height: auto; padding: 8px 11px; }
.flute-analysis-panel .panel__header h2 { margin-top: 2px; font-size: .79rem; }
.analysis-prototype-warning {
    margin: 10px;
    padding: 8px 9px;
    color: #f4c674;
    background: rgba(151, 98, 20, .15);
    border: 1px solid rgba(213, 154, 62, .42);
    border-radius: 3px;
    font-size: .57rem;
    line-height: 1.42;
}
.analysis-prototype-warning.is-exact {
    color: var(--accent-bright);
    background: color-mix(in srgb, var(--accent) 12%, transparent);
    border-color: color-mix(in srgb, var(--accent-bright) 45%, transparent);
}
.flute-analysis-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--border); }
.flute-analysis-values > div { display: grid; grid-template-columns: 1fr auto; gap: 3px 7px; padding: 9px 10px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.flute-analysis-values > div:nth-child(2n) { border-right: 0; }
.flute-analysis-values span { grid-column: 1 / -1; color: var(--text-muted); font-size: .55rem; }
.flute-analysis-values strong { color: var(--text-strong); font-family: "Cascadia Mono", Consolas, monospace; font-size: .78rem; }
.flute-analysis-values small { align-self: end; color: var(--text-muted); font-size: .51rem; }
.flute-analysis-chart { margin: 10px; padding: 8px; background: var(--input); border: 1px solid var(--border); border-radius: 3px; }
.flute-analysis-chart figcaption { margin-bottom: 4px; color: var(--text-strong); font-size: .6rem; font-weight: 650; }
.flute-analysis-chart svg { display: block; width: 100%; height: auto; }
.flute-analysis-chart .grid { stroke: color-mix(in srgb, var(--border-strong) 68%, transparent); stroke-width: .7; }
.flute-analysis-chart path { fill: none; stroke: var(--accent-bright); stroke-width: 2.2; vector-effect: non-scaling-stroke; }
.flute-analysis-chart text { fill: var(--text-muted); font-size: 8px; font-family: "Cascadia Mono", Consolas, monospace; }
.flute-cycle-summary { margin: 0 10px 10px; border: 1px solid var(--border); border-radius: 3px; }
.flute-cycle-summary > div { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 7px 9px; border-bottom: 1px solid var(--border); }
.flute-cycle-summary > div:last-child { border-bottom: 0; }
.flute-cycle-summary dt { color: var(--text-muted); font-size: .56rem; }
.flute-cycle-summary dd { margin: 0; color: var(--text-strong); font-size: .58rem; font-weight: 650; }

@media (max-width: 1120px) {
    .machine-project-setup__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .engineering-parameter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .engineering-parameter-grid--tool { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .grinding-wheel-library-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .grinding-wheel-library-summary > div { border-bottom: 1px solid var(--border); }
}

@media (max-width: 940px) {
    .grinding-route-editor { grid-template-columns: 1fr; overflow: auto; }
    .grinding-route-sequence,
    .grinding-operation-catalog { overflow: visible; }
    .grinding-route-footer-actions { flex-wrap: wrap; justify-content: flex-end; }
}

/* Unified desktop input groups: label + control + contextual help */
label.atlas-field-group {
    position: relative;
    display: grid !important;
    width: 100%;
    min-width: 0;
    min-height: 34px;
    grid-template-columns: minmax(82px, 34%) minmax(0, 1fr) 32px !important;
    grid-template-rows: minmax(32px, auto) !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding: 0 !important;
    overflow: visible;
    color: var(--text);
    background: var(--input);
    border: 1px solid var(--border-strong);
    border-radius: 5px;
}

label.atlas-field-group[hidden] { display: none !important; }

.workspace-dialog__form > label.atlas-field-group,
.workspace-dialog__body > label.atlas-field-group {
    width: calc(100% - 34px);
    margin: 8px 17px 0;
}

label.atlas-field-group:focus-within {
    border-color: var(--accent-bright);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent-bright) 24%, transparent);
}

label.atlas-field-group input:focus-visible,
label.atlas-field-group select:focus-visible,
label.atlas-field-group textarea:focus-visible {
    outline: 0;
}

label.atlas-field-group > .atlas-field-group__label {
    display: flex;
    min-width: 0;
    grid-column: 1;
    grid-row: 1;
    align-items: center;
    padding: 5px 8px;
    overflow: hidden;
    color: var(--text-muted);
    background: var(--panel-soft);
    border-radius: 4px 0 0 4px;
    line-height: 1.2;
}

label.atlas-field-group > .atlas-field-group__control {
    min-width: 0;
    max-width: 100%;
    grid-column: 2;
    grid-row: 1;
    margin: 0 !important;
    background: var(--input);
    border: 0 !important;
    border-left: 1px solid var(--border) !important;
    border-radius: 0 !important;
}

label.atlas-field-group > input.atlas-field-group__control,
label.atlas-field-group > select.atlas-field-group__control {
    width: 100% !important;
    height: 100% !important;
    min-height: 32px;
    padding: 0 8px !important;
}

label.atlas-field-group > textarea.atlas-field-group__control {
    width: 100% !important;
    min-height: 68px;
    padding: 7px 8px !important;
    resize: vertical;
}

label.atlas-field-group > .atlas-field-group__control input,
label.atlas-field-group > .atlas-field-group__control select,
label.atlas-field-group > .atlas-field-group__control textarea {
    border-top: 0 !important;
    border-bottom: 0 !important;
    border-left: 0 !important;
    border-radius: 0 !important;
}

label.atlas-field-group > .atlas-field-group__control > b,
label.atlas-field-group > .atlas-field-group__control > output {
    border-top: 0 !important;
    border-right: 0 !important;
    border-bottom: 0 !important;
    border-radius: 0 !important;
}

.atlas-field-group__help {
    display: grid;
    width: 32px;
    min-width: 32px;
    height: 100%;
    min-height: 32px;
    grid-column: 3;
    grid-row: 1;
    place-items: center;
    color: var(--accent-bright);
    background: var(--panel-soft);
    border-left: 1px solid var(--border);
    border-radius: 0 4px 4px 0;
    cursor: help;
    font-size: .72rem;
    font-weight: 750;
    line-height: 1;
    user-select: none;
}

.atlas-field-group__help:hover,
.atlas-field-group__help:focus-visible,
.atlas-field-group__help[aria-expanded="true"] {
    color: var(--text-strong);
    background: var(--accent-soft);
    outline: 0;
}

label.atlas-field-group > .atlas-field-group__source-hint { display: none !important; }

label.atlas-field-group > .field-error {
    grid-column: 1 / -1;
    grid-row: 2;
    padding: 5px 8px;
    background: color-mix(in srgb, var(--danger) 8%, var(--panel-soft));
    border-top: 1px solid color-mix(in srgb, var(--danger) 38%, var(--border));
}

.atlas-field-help-balloon {
    position: fixed;
    z-index: 99999;
    inset: auto;
    margin: 0;
    width: min(360px, calc(100vw - 16px));
    max-height: min(360px, calc(100vh - 16px));
    overflow: auto;
    padding: 10px 11px;
    color: var(--text);
    background: var(--panel-raised);
    border: 1px solid var(--accent-bright);
    border-radius: 6px;
    box-shadow: 0 14px 38px rgba(0, 0, 0, .5);
    font-size: .67rem;
    line-height: 1.45;
}

.atlas-field-help-balloon[hidden] { display: none; }
.atlas-field-help-balloon p { margin: 0; }
.atlas-field-help-balloon p + p,
.atlas-field-help-balloon p + .atlas-field-help-balloon__detail { margin-top: 7px; }
.atlas-field-help-balloon__detail { color: var(--text-muted); }
.atlas-field-help-balloon small { display: block; color: var(--text-muted); font-size: .61rem; }
.atlas-field-help-balloon img { display: block; width: 100%; height: auto; margin-top: 8px; border: 1px solid var(--border); border-radius: 4px; }

/* Machine setup fields keep an engineer-friendly input width and reflow as whole groups. */
.machine-project-setup__grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 310px), 1fr));
    align-items: start;
}

.machine-project-setup__grid > label.atlas-field-group {
    min-width: min(100%, 310px);
    grid-template-columns: minmax(82px, .7fr) minmax(192px, 1.3fr) 32px !important;
}

.machine-project-setup__grid > label.atlas-field-group > .engineering-input {
    grid-template-columns: minmax(150px, 1fr) 42px;
}

.machine-project-setup__grid > label.atlas-field-group > .engineering-input > input {
    min-width: 150px;
}

/* Contextual inspector: the right dock is reserved for the currently selected object. */
.dock--right:has(.contextual-inspector) {
    grid-template-rows: minmax(0, 1fr);
}

.contextual-inspector {
    display: grid;
    grid-template-rows: 40px minmax(0, 1fr);
}

.contextual-inspector__header {
    display: flex;
    min-width: 0;
    align-items: stretch;
    background: var(--panel-soft);
    border-bottom: 1px solid var(--border);
}

.contextual-inspector__tabs {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    align-items: stretch;
    overflow-x: auto;
    scrollbar-width: none;
}

.contextual-inspector__tabs::-webkit-scrollbar { display: none; }

.contextual-inspector__tabs > button {
    position: relative;
    min-width: max-content;
    flex: 1 1 auto;
    padding: 0 8px;
    color: var(--text-muted);
    background: transparent;
    border: 0;
    cursor: pointer;
    font-size: .61rem;
}

.contextual-inspector__tabs > button:hover,
.contextual-inspector__tabs > button.is-active {
    color: var(--text-strong);
    background: var(--panel-raised);
}

.contextual-inspector__tabs > button.is-active::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 2px;
    background: var(--accent-bright);
    content: "";
}

.contextual-inspector__tabs > button.has-error { color: var(--danger); }
.contextual-inspector__tabs > button.has-warning { color: var(--warning); }
.contextual-inspector__tabs > button[hidden] { display: none; }

.contextual-inspector__tabs > button span {
    display: inline-grid;
    min-width: 15px;
    height: 15px;
    margin-left: 4px;
    place-items: center;
    color: var(--title-bar);
    background: var(--accent-bright);
    border-radius: 999px;
    font: 750 .49rem/1 "Cascadia Mono", Consolas, monospace;
}

.contextual-inspector__tabs > button span[hidden] { display: none; }

.contextual-inspector__tabs > button.has-error span { background: var(--danger); }
.contextual-inspector__tabs > button.has-warning span { background: var(--warning); }

.contextual-inspector__header > .panel-icon {
    flex: 0 0 34px;
    border-left: 1px solid var(--border);
}

.contextual-inspector__body {
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.inspector-pane {
    width: 100%;
    height: 100%;
    min-height: 0;
    padding: 14px;
    overflow: auto;
    scrollbar-color: var(--border-strong) transparent;
}

.inspector-pane[hidden] { display: none; }

.inspector-identity h2,
.inspector-pane__heading h2 {
    margin: 0 0 7px;
    color: var(--text-strong);
    font-size: 1rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.inspector-pane__heading {
    margin-bottom: 12px;
}

.inspector-pane__heading > p:last-child {
    margin: 0;
    color: var(--text-muted);
    font-size: .68rem;
    line-height: 1.45;
}

.inspector-quick-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin: 0 0 12px;
}

.inspector-quick-actions[hidden] { display: none; }

.inspector-quick-actions button {
    display: grid;
    min-width: 0;
    min-height: 45px;
    flex: 1 1 62px;
    align-content: center;
    justify-items: center;
    gap: 3px;
    padding: 5px;
    color: var(--accent-bright);
    background: var(--input);
    border: 1px solid var(--border);
    border-radius: 4px;
    cursor: pointer;
    font-weight: 650;
}

.inspector-quick-actions button:hover {
    color: var(--text-strong);
    background: var(--accent-soft);
    border-color: var(--accent-bright);
}

.inspector-quick-actions button span { color: var(--text); font-size: .55rem; font-weight: 500; }
.inspector-quick-actions button.is-danger { color: var(--danger); }
.inspector-quick-actions button[hidden] { display: none; }

.inspector-relations,
.inspector-validation {
    display: grid;
    gap: 7px;
}

.inspector-relation {
    display: grid;
    width: 100%;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 3px 8px;
    padding: 9px 10px;
    color: var(--text);
    background: var(--input);
    border: 1px solid var(--border);
    border-left: 3px solid var(--accent);
    border-radius: 4px;
    cursor: pointer;
    text-align: left;
}

.inspector-relation:hover { background: var(--accent-soft); border-color: var(--accent-bright); }
.inspector-relation small { grid-column: 1 / -1; color: var(--accent-bright); font-size: .54rem; text-transform: uppercase; letter-spacing: .06em; }
.inspector-relation strong { min-width: 0; overflow: hidden; color: var(--text-strong); font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.inspector-relation span { color: var(--text-muted); font-size: .55rem; }

.inspector-notice {
    padding: 10px;
    color: var(--text);
    background: var(--input);
    border: 1px solid var(--border);
    border-left: 3px solid var(--accent-bright);
    border-radius: 4px;
}

.inspector-notice--error { border-left-color: var(--danger); background: color-mix(in srgb, var(--danger) 8%, var(--input)); }
.inspector-notice--warning { border-left-color: var(--warning); background: color-mix(in srgb, var(--warning) 7%, var(--input)); }
.inspector-notice--success { border-left-color: var(--success); }
.inspector-notice--info { border-left-color: var(--accent-bright); }
.inspector-notice strong { color: var(--text-strong); font-size: .68rem; }
.inspector-notice p { margin: 5px 0 0; color: var(--text-muted); font-size: .62rem; line-height: 1.45; overflow-wrap: anywhere; }
.inspector-notice button { margin-top: 8px; padding: 5px 8px; color: var(--accent-bright); background: transparent; border: 1px solid var(--border-strong); border-radius: 3px; cursor: pointer; font-size: .58rem; }
.inspector-notice button:hover { color: var(--text-strong); background: var(--accent-soft); }

.inspector-result-properties {
    margin: 0;
    border: 1px solid var(--border);
    border-radius: 4px;
}

.inspector-result-properties > div {
    display: grid;
    min-height: 38px;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    padding: 7px 9px;
    border-bottom: 1px solid var(--border);
}

.inspector-result-properties > div:last-child { border-bottom: 0; }
.inspector-result-properties dt { color: var(--text-muted); font-size: .61rem; }
.inspector-result-properties dd { margin: 0; color: var(--text-strong); font: 650 .63rem/1.3 "Cascadia Mono", Consolas, monospace; text-align: right; }

.inspector-operation-results {
    min-height: auto;
    overflow: visible;
}

.inspector-operation-results > header { padding: 3px 0 8px; border-bottom: 1px solid var(--border); }
.inspector-operation-results > header h2 { margin: 0; color: var(--text-strong); font-size: .78rem; }
.inspector-operation-results .analysis-prototype-warning,
.inspector-operation-results .flute-analysis-chart { margin-right: 0; margin-left: 0; }
.inspector-operation-results .flute-cycle-summary { margin-right: 0; margin-left: 0; }

.inspector-empty--compact,
.inspector-results-empty {
    min-height: 180px;
    padding: 18px;
}

[data-tooth-geometry-settings] { display: grid; gap: 16px; min-width: 0; }
[data-tooth-geometry-settings][hidden] { display: none; }
.tooth-geometry-fields {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, max(230px, calc((100% - 32px) / 3))), 1fr));
    gap: 16px;
}
.tooth-geometry-fields > label { min-width: 0; }
.tooth-geometry-fields > label[hidden] { display: none; }
.tooth-math-check { padding: 0.8rem; border: 1px solid var(--border-color, #294351); border-radius: 0.3rem; }
.tooth-math-check h3 { margin: 0 0 0.4rem; font-size: 0.9rem; }
.tooth-math-check p { margin: 0.4rem 0; font-size: 0.78rem; }
.tooth-math-check .button { align-self: end; }
[data-tooth-geometry-settings] > label { display: grid; gap: 6px; }
[data-tooth-geometry-settings] > .route-operation-enabled { display: flex; }
[data-route-operation-dialog] footer[hidden],
[data-route-operation-dialog] .operation-dialog-note[hidden],
[data-tooth-save][hidden] { display: none; }
