/* === CSS/ATLAS.CSS === */
/* Scribe Atlas — Pure-SVG Whiteboard & World/Plot Mapping Engine Stylesheet
 * 100% Theme-variable inheritance, zero emojis, zero red glow, WCAG 2.2 AA compliant.
 */

#workspace-atlas,
.atlas-workspace-shell {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: calc(100vh - 42px);
    height: calc(100dvh - 42px);
    background-color: var(--bg-color);
    color: var(--panel-text, var(--main-color));
    font-family: var(--font-family), sans-serif;
    overflow: hidden;
    position: relative;
}

/* === SKIP LINK BAR (WCAG 2.4.1 & Maps Skill) === */
.atlas-skip-bar {
    display: flex;
    align-items: center;
    padding: 2px 10px;
    background-color: var(--panel-bg, var(--bg-color));
    border-bottom: 1px solid color-mix(in srgb, var(--main-color) 20%, var(--bg-color));
    flex-shrink: 0;
}

.atlas-skip-link {
    font-size: 11px;
    font-weight: 600;
    color: var(--main-color);
    text-decoration: underline;
    padding: 2px 6px;
    border-radius: 3px;
}

.atlas-skip-link:hover,
.atlas-skip-link:focus-visible {
    background-color: var(--main-color);
    color: var(--button-active-fg, var(--main-contrast-text, var(--bg-color)));
    text-decoration: none;
}

/* === UNIFORM 28PX TOP STUDIO TOOLBAR === */
.atlas-topbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    min-height: 38px;
    gap: 5px 6px;
    padding: 4px 8px;
    background-color: var(--panel-bg, var(--bg-color));
    border-bottom: 1px solid color-mix(in srgb, var(--main-color) 32%, var(--bg-color));
    flex-shrink: 0;
    z-index: 25;
}

.atlas-toolbar-group {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    padding-right: 6px;
    border-right: 1px solid color-mix(in srgb, var(--main-color) 24%, var(--bg-color));
}

.atlas-toolbar-group:last-child,
.atlas-toolbar-end {
    border-right: none;
    padding-right: 0;
}

.atlas-toolbar-end {
    margin-left: auto;
}

.atlas-topbar-context {
    min-height: 28px;
}

.atlas-topbar-context:empty {
    display: none;
}

.atlas-ctx-lbl {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    opacity: 0.85;
}

.atlas-ctx-num {
    width: 48px;
    height: 28px;
    min-height: 28px;
    padding: 2px 4px;
    font-size: 11px;
    text-align: center;
}

.atlas-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    height: 28px;
    min-height: 28px;
    min-width: 28px;
    padding: 0 8px;
    background-color: color-mix(in srgb, var(--main-color) 6%, var(--panel-bg, var(--bg-color)));
    color: var(--panel-text, var(--main-color));
    border: 1px solid color-mix(in srgb, var(--main-color) 42%, var(--bg-color));
    border-radius: 2px;
    font-family: var(--font-family), sans-serif;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    line-height: 1;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}

.atlas-btn-icon {
    padding: 0 6px;
}

/* FocusedScribe Native-Style Toolbar Dropdowns */
.atlas-dropdown {
    position: relative;
    display: inline-flex;
}

.atlas-dropdown-btn[aria-expanded="true"] {
    background-color: var(--main-color);
    color: var(--button-active-fg, var(--main-contrast-text, var(--bg-color)));
    border-color: var(--main-color);
}

.atlas-dropdown-menu {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    min-width: 220px;
    padding: 4px 0;
    background-color: var(--panel-bg, var(--bg-color));
    color: var(--panel-text, var(--main-color));
    border: 1px solid var(--main-color);
    border-radius: 2px;
    box-shadow: 0 4px 12px color-mix(in srgb, #000000 30%, transparent);
    z-index: 40;
    display: flex;
    flex-direction: column;
}

.atlas-dropdown-menu[hidden] {
    display: none !important;
}

.atlas-menu-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    padding: 6px 10px;
    border: none;
    background: transparent;
    color: var(--panel-text, var(--main-color));
    font-family: var(--font-family), sans-serif;
    font-size: 11.5px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}

.atlas-menu-item:hover,
.atlas-menu-item:focus-visible {
    background-color: var(--main-color);
    color: var(--button-active-fg, var(--main-contrast-text, var(--bg-color)));
    outline: none;
}

.atlas-menu-item[aria-checked="true"]::before {
    content: "[x] ";
    font-family: monospace;
    font-weight: 700;
}

.atlas-menu-item[aria-checked="false"]::before {
    content: "[ ] ";
    font-family: monospace;
    opacity: 0.65;
}

.atlas-menu-item-danger {
    border-top: 1px dashed color-mix(in srgb, var(--main-color) 28%, var(--bg-color));
}

.atlas-menu-kbd {
    font-family: monospace;
    font-size: 10px;
    opacity: 0.72;
}

.atlas-menu-sep {
    height: 1px;
    margin: 4px 8px;
    background-color: color-mix(in srgb, var(--main-color) 25%, var(--bg-color));
}

.atlas-menu-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 4px 10px;
    font-size: 11px;
    font-weight: 700;
}

.atlas-select-compact {
    height: 28px;
    min-height: 28px;
    padding: 2px 6px;
    font-size: 11px;
}

/* Compact Stroke/Fill Ink Pill in Topbar */
.atlas-ink-pill {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    height: 28px;
    padding: 0 3px;
    border: 1px solid color-mix(in srgb, var(--main-color) 40%, var(--bg-color));
    border-radius: 2px;
    background-color: var(--bg-color);
}

.atlas-ink-wells-btn {
    position: relative;
    width: 28px;
    height: 24px;
    border: none;
    background: transparent;
    cursor: pointer;
    padding: 0;
}

.atlas-ink-chip {
    position: absolute;
    width: 14px;
    height: 14px;
    border: 1px solid var(--main-color);
    border-radius: 2px;
}

.atlas-ink-chip-fill {
    right: 1px;
    bottom: 1px;
}

.atlas-ink-chip-stroke {
    left: 1px;
    top: 1px;
    z-index: 2;
}

.atlas-ink-chip.is-none,
.atlas-well-btn.is-none {
    background-image: linear-gradient(135deg, transparent 42%, var(--main-color) 46%, var(--main-color) 54%, transparent 58%);
}

.atlas-ink-swap-btn {
    height: 22px;
    min-height: 22px;
    min-width: 22px;
    padding: 0 3px;
    border: none;
    background: transparent;
}

.atlas-zoom-pill {
    min-width: 48px;
}

.atlas-btn[hidden] {
    display: none !important;
}

.atlas-btn:hover:not(:disabled) {
    background-color: color-mix(in srgb, var(--main-color) 20%, var(--panel-bg, var(--bg-color)));
    border-color: var(--main-color);
    color: var(--main-color);
}

.atlas-btn.is-active,
.atlas-btn[aria-pressed="true"],
.atlas-btn-accent {
    background-color: var(--main-color);
    color: var(--button-active-fg, var(--main-contrast-text, var(--bg-color)));
    border-color: var(--main-color);
}

.atlas-btn:disabled {
    opacity: 0.42;
    cursor: not-allowed;
}

.atlas-btn-full {
    width: 100%;
    margin-top: 8px;
}

/* Destructive button uses dashed/double monochrome treatment — ZERO red glow */
.atlas-btn-danger {
    border-style: dashed;
    border-width: 1.5px;
}

.atlas-btn-danger:hover:not(:disabled) {
    background-color: var(--main-color);
    color: var(--button-active-fg, var(--main-contrast-text, var(--bg-color)));
    border-style: solid;
}

.atlas-icon {
    flex-shrink: 0;
    pointer-events: none;
}

.atlas-select,
.atlas-input,
.atlas-textarea {
    min-height: 28px;
    padding: 3px 7px;
    background-color: var(--bg-color);
    color: var(--panel-text, var(--main-color));
    border: 1px solid color-mix(in srgb, var(--main-color) 40%, var(--bg-color));
    border-radius: 3px;
    font-family: var(--font-family), sans-serif;
    font-size: 12px;
}

.atlas-board-select {
    height: 28px;
    min-width: 145px;
    max-width: 220px;
    font-weight: 700;
}

.atlas-textarea {
    width: 100%;
    resize: vertical;
    min-height: 62px;
    line-height: 1.35;
}

/* === FOCUS VISIBILITY (WCAG 2.4.7 & 2.4.11) === */
.atlas-btn:focus-visible,
.atlas-select:focus-visible,
.atlas-input:focus-visible,
.atlas-textarea:focus-visible,
.atlas-skip-link:focus-visible,
.atlas-viewport-host:focus-visible,
.atlas-table-scroll:focus-visible,
.atlas-ink-wells-btn:focus-visible,
.atlas-wheel-fold-btn:focus-visible,
.atlas-well-btn:focus-visible,
.atlas-wheel-ring-hit:focus-visible,
.atlas-wheel-tri-hit:focus-visible,
.atlas-harmony-chip:focus-visible,
.atlas-swatch-add:focus-visible,
.atlas-filter-summary:focus-visible {
    outline: 2px solid var(--main-color);
    outline-offset: 2px;
}

/* === MAIN STAGE LAYOUT === */
.atlas-main-stage {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    position: relative;
}

.atlas-canvas-column {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    position: relative;
}

.atlas-canvas-viewport,
.atlas-viewport-host {
    flex: 1;
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 180px;
    overflow: hidden;
    background-color: var(--bg-color);
    -webkit-user-select: none;
    -webkit-touch-callout: none;
    user-select: none;
}

.atlas-viewport-host[data-atlas-tool="pan"],
.atlas-viewport-host.is-space-panning {
    cursor: grab;
}

.atlas-viewport-host[data-atlas-tool="pan"]:active,
.atlas-viewport-host.is-space-panning:active {
    cursor: grabbing;
}

.atlas-viewport-host[data-atlas-tool="card"],
.atlas-viewport-host[data-atlas-tool="pin"],
.atlas-viewport-host[data-atlas-tool="region"],
.atlas-viewport-host[data-atlas-tool="route"],
.atlas-viewport-host[data-atlas-tool="ink"],
.atlas-viewport-host[data-atlas-tool="ruler"],
.atlas-viewport-host[data-atlas-tool="connect"] {
    cursor: crosshair;
}

/* === PURE SVG VECTOR ELEMENTS === */
.atlas-svg-canvas {
    width: 100%;
    height: 100%;
    display: block;
    color: var(--main-color);
    background-color: var(--bg-color);
    touch-action: none;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -webkit-user-drag: none;
    user-select: none;
}

.atlas-node-card {
    fill: var(--panel-bg, var(--bg-color));
    stroke: var(--main-color);
    cursor: move;
}

.atlas-node-group.is-selected .atlas-node-card,
.atlas-pin-group.is-selected .atlas-pin-disc {
    fill: color-mix(in srgb, var(--main-color) 11%, var(--panel-bg, var(--bg-color)));
}

.atlas-node-header-band {
    fill: color-mix(in srgb, var(--main-color) 15%, var(--panel-bg, var(--bg-color)));
}

.atlas-node-type-tag {
    fill: var(--panel-text, var(--main-color));
    font-family: var(--font-family), monospace;
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.7px;
}

.atlas-node-title {
    fill: var(--panel-text, var(--main-color));
    font-family: var(--font-family), sans-serif;
    font-size: 13px;
    font-weight: 700;
}

.atlas-node-summary {
    fill: color-mix(in srgb, var(--panel-text, var(--main-color)) 86%, var(--bg-color));
    font-family: var(--font-family), sans-serif;
    font-size: 11px;
}

.atlas-pin-disc {
    fill: var(--panel-bg, var(--bg-color));
    stroke: var(--main-color);
    cursor: pointer;
}

.atlas-label-pill {
    fill: color-mix(in srgb, var(--panel-bg, var(--bg-color)) 92%, transparent);
    stroke: color-mix(in srgb, var(--main-color) 55%, var(--bg-color));
    stroke-width: 1;
}

.atlas-region-label {
    fill: var(--panel-text, var(--main-color));
    font-family: var(--font-family), sans-serif;
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.6px;
}

.atlas-edge-label,
.atlas-pin-label {
    fill: var(--panel-text, var(--main-color));
    font-family: var(--font-family), sans-serif;
    font-size: 11px;
    font-weight: 600;
}

.atlas-deeplink-badge {
    cursor: pointer;
}

.atlas-deeplink-rect {
    fill: var(--main-color);
    stroke: var(--main-color);
    stroke-width: 1;
}

.atlas-deeplink-text {
    fill: var(--button-active-fg, var(--main-contrast-text, var(--bg-color)));
    font-family: var(--font-family), monospace;
    font-size: 9.2px;
    font-weight: 800;
    letter-spacing: 0.4px;
}

.atlas-resize-handle {
    cursor: nwse-resize;
    opacity: 0.7;
}

.atlas-resize-handle:hover {
    opacity: 1;
}

.atlas-vertex-handle {
    fill: var(--bg-color);
    stroke: var(--main-color);
    stroke-width: 2;
}

.atlas-ruler-badge-rect {
    fill: var(--panel-bg, var(--bg-color));
    stroke: var(--main-color);
    stroke-width: 1.6;
}

.atlas-ruler-title {
    fill: var(--main-color);
    font-family: var(--font-family), monospace;
    font-size: 12px;
    font-weight: 800;
}

.atlas-ruler-sub {
    fill: var(--panel-text, var(--main-color));
    font-family: var(--font-family), sans-serif;
    font-size: 10.5px;
}

.atlas-hit-path {
    cursor: pointer;
}

/* === CORNER MAP SCALE BAR === */
.atlas-scalebar-overlay {
    position: absolute;
    left: 14px;
    bottom: 12px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 9px;
    background-color: color-mix(in srgb, var(--panel-bg, var(--bg-color)) 90%, transparent);
    border: 1px solid color-mix(in srgb, var(--main-color) 45%, var(--bg-color));
    border-radius: 3px;
    pointer-events: none;
    z-index: 3;
}

.atlas-scalebar-overlay[hidden] {
    display: none !important;
}

.atlas-scalebar-track {
    display: inline-block;
    height: 6px;
    border-bottom: 2px solid var(--main-color);
    border-left: 2px solid var(--main-color);
    border-right: 2px solid var(--main-color);
}

.atlas-scalebar-label {
    font-size: 11px;
    font-weight: 700;
    color: var(--panel-text, var(--main-color));
}

/* === INLINE DOUBLE-CLICK OVERLAY EDITOR === */
.atlas-inline-editor {
    position: absolute;
    z-index: 12;
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 8px;
    background-color: var(--panel-bg, var(--bg-color));
    border: 2px solid var(--main-color);
    border-radius: 4px;
}

.atlas-inline-title-input,
.atlas-inline-summary-input {
    width: 100%;
    background-color: var(--bg-color);
    color: var(--panel-text, var(--main-color));
    border: 1px solid color-mix(in srgb, var(--main-color) 45%, var(--bg-color));
    border-radius: 3px;
    padding: 4px 6px;
    font-family: var(--font-family), sans-serif;
    font-size: 12px;
}

/* === RIGHT-HAND COLLAPSIBLE INSPECTOR DRAWER === */
.atlas-inspector-drawer {
    width: 280px;
    min-width: 250px;
    max-width: 320px;
    background-color: var(--panel-bg, var(--bg-color));
    border-left: 1px solid color-mix(in srgb, var(--main-color) 28%, var(--bg-color));
    padding: 12px;
    overflow-y: auto;
    flex-shrink: 0;
}

.atlas-inspector-drawer[hidden] {
    display: none !important;
}

.atlas-inspector-heading {
    margin: 0 0 10px 0;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--main-color);
    border-bottom: 1px solid color-mix(in srgb, var(--main-color) 24%, var(--bg-color));
    padding-bottom: 6px;
}

.atlas-inspector-subheading {
    margin: 14px 0 6px 0;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--panel-text, var(--main-color));
}

.atlas-field {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-bottom: 8px;
}

.atlas-field-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--panel-text, var(--main-color));
}

.atlas-field-select,
.atlas-field .atlas-input {
    width: 100%;
}

.atlas-insp-coord-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
}

.atlas-travel-readout {
    margin: 8px 0;
    padding: 7px 8px;
    font-size: 11px;
    line-height: 1.4;
    border: 1px solid color-mix(in srgb, var(--main-color) 35%, var(--bg-color));
    background-color: color-mix(in srgb, var(--main-color) 7%, var(--bg-color));
    border-radius: 3px;
}

.atlas-inspector-hint {
    margin-top: 12px;
    font-size: 11px;
    line-height: 1.45;
    opacity: 0.85;
}

/* === WCAG 2.2 AA SYNCHRONIZED TABLE / LIST DIRECTORY === */
.atlas-main-stage.is-directory-docked .atlas-directory-panel {
    height: 44%;
    min-height: 200px;
    border-top: 2px solid color-mix(in srgb, var(--main-color) 40%, var(--bg-color));
}

.atlas-main-stage.is-directory-full .atlas-canvas-shell {
    display: none;
}

.atlas-main-stage.is-directory-full .atlas-directory-panel {
    flex: 1;
    height: 100%;
}

.atlas-directory-panel {
    background-color: var(--panel-bg, var(--bg-color));
    padding: 10px 14px 18px 14px;
    overflow-y: auto;
}

.atlas-directory-panel[hidden] {
    display: none !important;
}

.atlas-directory-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
}

.atlas-directory-title {
    margin: 0;
    font-size: 14px;
    font-weight: 800;
    color: var(--main-color);
}

.atlas-directory-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.atlas-a11y-tools-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    padding: 8px 10px;
    margin-bottom: 12px;
    border: 1px solid color-mix(in srgb, var(--main-color) 30%, var(--bg-color));
    background-color: color-mix(in srgb, var(--main-color) 6%, var(--bg-color));
    border-radius: 4px;
}

.atlas-a11y-ruler-output {
    font-size: 11.5px;
    font-weight: 700;
    margin-left: 4px;
}

.atlas-table-scroll {
    max-inline-size: 100%;
    overflow-x: auto;
    margin-bottom: 14px;
    border: 1px solid color-mix(in srgb, var(--main-color) 28%, var(--bg-color));
    border-radius: 4px;
}

.atlas-data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
    text-align: left;
}

.atlas-table-caption {
    text-align: left;
    padding: 7px 10px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--main-color);
    background-color: color-mix(in srgb, var(--main-color) 10%, var(--panel-bg, var(--bg-color)));
    border-bottom: 1px solid color-mix(in srgb, var(--main-color) 28%, var(--bg-color));
}

.atlas-data-table th,
.atlas-data-table td {
    padding: 6px 10px;
    border-bottom: 1px solid color-mix(in srgb, var(--main-color) 18%, var(--bg-color));
    vertical-align: middle;
}

.atlas-data-table thead th {
    position: sticky;
    inset-block-start: 0;
    background-color: var(--panel-bg, var(--bg-color));
    font-weight: 700;
    z-index: 1;
}

.atlas-data-table tbody tr:nth-child(even) {
    background-color: color-mix(in srgb, var(--main-color) 4%, var(--bg-color));
}

.atlas-table-row-actions {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 4px;
}

.atlas-table-empty {
    font-style: italic;
    opacity: 0.8;
    padding: 10px;
}

/* === TEMPLATES MODAL DIALOG === */
.atlas-templates-dialog {
    padding: 0;
    border: 2px solid var(--main-color);
    border-radius: 6px;
    background-color: var(--panel-bg, var(--bg-color));
    color: var(--panel-text, var(--main-color));
    max-width: 540px;
    width: calc(100% - 24px);
}

.atlas-templates-dialog::backdrop {
    background: rgba(0, 0, 0, 0.65);
}

.atlas-dialog-card {
    padding: 14px 16px;
}

.atlas-dialog-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid color-mix(in srgb, var(--main-color) 28%, var(--bg-color));
}

.atlas-dialog-title {
    margin: 0;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--main-color);
}

.atlas-tpl-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.atlas-tpl-item {
    padding: 10px 12px;
    border: 1px solid color-mix(in srgb, var(--main-color) 32%, var(--bg-color));
    border-radius: 4px;
    background-color: var(--bg-color);
}

.atlas-tpl-name {
    margin: 0 0 4px 0;
    font-size: 13px;
    font-weight: 700;
    color: var(--main-color);
}

.atlas-tpl-desc {
    margin: 0 0 8px 0;
    font-size: 12px;
    line-height: 1.4;
}

.atlas-tpl-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

/* === PANTSER SECONDARY DUAL-BUFFER COMPACT VIEW === */
.atlas-dualbuffer-shell {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-height: 220px;
    background-color: var(--bg-color);
    color: var(--panel-text, var(--main-color));
}

.atlas-dualbuffer-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    padding: 4px 6px;
    background-color: var(--panel-bg, var(--bg-color));
    border-bottom: 1px solid color-mix(in srgb, var(--main-color) 26%, var(--bg-color));
    flex-shrink: 0;
}

.atlas-dualbuffer-select {
    flex: 1;
    min-width: 110px;
    height: 28px;
}

.atlas-dualbuffer-viewport {
    flex: 1;
    min-height: 180px;
    position: relative;
}

.atlas-dualbuffer-list {
    flex: 1;
    overflow: auto;
    padding: 8px;
}

/* === RESPONSIVE NARROW VIEWPORTS (WCAG 1.4.10 Reflow) === */
@media (max-width: 860px) {

    .atlas-workspace-body,
    .atlas-main-stage {
        flex-direction: column;
    }

    .atlas-tool-dock {
        flex-direction: row;
        width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        border-right: none;
        border-bottom: 1px solid color-mix(in srgb, var(--main-color) 28%, var(--bg-color));
    }

    .atlas-studio-drawer,
    .atlas-inspector-drawer {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        max-height: 42%;
        border-left: none;
        border-top: 2px solid color-mix(in srgb, var(--main-color) 35%, var(--bg-color));
    }
}

/* === WINDOWS HIGH CONTRAST / FORCED COLORS MODE === */
@media (forced-colors: active) {

    .atlas-btn,
    .atlas-select,
    .atlas-input,
    .atlas-textarea {
        border-color: ButtonText;
        color: ButtonText;
        background-color: Canvas;
    }

    .atlas-btn.is-active,
    .atlas-btn[aria-pressed="true"] {
        background-color: Highlight;
        color: HighlightText;
        border-color: Highlight;
    }

    .atlas-svg-canvas {
        color: CanvasText;
        background-color: Canvas;
    }

    .atlas-node-card,
    .atlas-pin-disc,
    .atlas-label-pill,
    .atlas-ruler-badge-rect {
        fill: Canvas;
        stroke: CanvasText;
    }

    .atlas-node-group.is-selected .atlas-node-card,
    .atlas-pin-group.is-selected .atlas-pin-disc,
    .atlas-edge-group.is-selected .atlas-edge-path,
    .atlas-region-group.is-selected .atlas-region-path {
        stroke: Highlight;
    }

    .atlas-node-title,
    .atlas-node-summary,
    .atlas-node-type-tag,
    .atlas-region-label,
    .atlas-edge-label,
    .atlas-pin-label {
        fill: CanvasText;
    }

    .atlas-deeplink-rect {
        fill: Highlight;
        stroke: Highlight;
    }

    .atlas-deeplink-text {
        fill: HighlightText;
    }

    .atlas-data-table th,
    .atlas-data-table td {
        border-block-end: 1px solid CanvasText;
    }
}

/* === OS REDUCED MOTION SAFEGUARDS (WCAG 2.3.3 & SVG Skill) === */
@media (prefers-reduced-motion: reduce) {

    .atlas-btn,
    .atlas-inspector-drawer,
    .atlas-directory-panel {
        transition: none;
        animation: none;
    }
}

/* === SCRIBE ATLAS v2 VECTOR ART & MAP STUDIO LAYOUT === */
.atlas-workspace-body {
    display: flex;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    background-color: var(--bg-color);
}

/* Left Vertical 44x44 Vector Tool Dock (WCAG 2.2 AA 2.5.8 Target Size) */
.atlas-tool-dock {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 6px 4px;
    width: 54px;
    background-color: var(--panel-bg, var(--bg-color));
    border-right: 1px solid color-mix(in srgb, var(--main-color) 28%, var(--bg-color));
    overflow-y: auto;
    flex-shrink: 0;
}

.atlas-dock-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 4px;
    border: 1px solid color-mix(in srgb, var(--main-color) 25%, var(--bg-color));
    border-radius: 4px;
    background-color: var(--bg-color);
    color: var(--panel-text, var(--main-color));
    cursor: pointer;
    flex-shrink: 0;
}

.atlas-dock-btn:hover {
    border-color: var(--main-color);
    background-color: color-mix(in srgb, var(--main-color) 12%, var(--bg-color));
}

.atlas-dock-btn.is-active,
.atlas-dock-btn[aria-pressed="true"] {
    background-color: var(--main-color);
    color: var(--bg-color);
    border-color: var(--main-color);
}

.atlas-dock-key {
    position: absolute;
    right: 3px;
    bottom: 2px;
    font-size: 9px;
    font-weight: 700;
    opacity: 0.78;
    pointer-events: none;
}

.atlas-dock-btn:focus-visible,
.atlas-drawer-tab:focus-visible,
.atlas-brush-card:focus-visible,
.atlas-swatch-chip:focus-visible,
.atlas-tag-chip:focus-visible {
    outline: 2px solid var(--main-color);
    outline-offset: 2px;
}

/* Contextual Action Strip & Ruler Banner */
.atlas-action-strip {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 4px 10px;
    min-height: 28px;
    max-height: 72px;
    padding: 3px 10px;
    overflow-y: auto;
    background-color: color-mix(in srgb, var(--panel-bg, var(--bg-color)) 92%, var(--main-color) 8%);
    border-bottom: 1px solid color-mix(in srgb, var(--main-color) 22%, var(--bg-color));
    font-size: 11px;
    color: var(--panel-text, var(--main-color));
}

.atlas-action-strip[hidden] {
    display: none !important;
}

.atlas-svg-canvas.is-mirrored-x {
    transform: scaleX(-1);
    transform-origin: center center;
}

.atlas-action-hint {
    flex: 1 1 180px;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    opacity: 0.88;
}

.atlas-action-controls {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.atlas-action-inline-label {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 10.5px;
    font-weight: 600;
}

.atlas-action-range {
    width: 72px;
    accent-color: var(--main-color);
}

.atlas-action-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    flex-shrink: 0;
}

.atlas-ruler-banner {
    flex: 0 0 auto;
    padding: 4px 10px;
    font-size: 11px;
    font-weight: 600;
    background-color: color-mix(in srgb, var(--main-color) 14%, var(--bg-color));
    border-bottom: 1px solid color-mix(in srgb, var(--main-color) 35%, var(--bg-color));
    color: var(--panel-text, var(--main-color));
}

.atlas-canvas-shell {
    position: relative;
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.atlas-canvas-host {
    width: 100%;
    height: 100%;
    touch-action: none;
}

.atlas-pasteboard-bg {
    fill: color-mix(in srgb, var(--bg-color) 86%, var(--main-color) 14%);
}

.atlas-artboard-trim {
    stroke: var(--main-color);
    stroke-width: 1.5;
}

.atlas-artboard-bleed {
    stroke: #7896ab;
    stroke-width: 1;
    stroke-dasharray: 5 4;
}

.atlas-artboard-safe {
    stroke: #486b52;
    stroke-width: 1;
    stroke-dasharray: 3 4;
}

/* Right Tabbed Studio Drawer */
.atlas-studio-drawer {
    display: flex;
    flex-direction: column;
    width: 304px;
    min-width: 268px;
    max-width: 340px;
    background-color: var(--panel-bg, var(--bg-color));
    border-left: 1px solid color-mix(in srgb, var(--main-color) 28%, var(--bg-color));
    flex-shrink: 0;
    overflow: hidden;
}

.atlas-studio-drawer[hidden] {
    display: none !important;
}

.atlas-drawer-tabs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-bottom: 1px solid color-mix(in srgb, var(--main-color) 28%, var(--bg-color));
    background-color: var(--bg-color);
}

.atlas-drawer-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 36px;
    padding: 6px 4px;
    border: none;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: var(--panel-text, var(--main-color));
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
}

.atlas-drawer-tab[aria-selected="true"],
.atlas-drawer-tab.is-active {
    border-bottom-color: var(--main-color);
    background-color: color-mix(in srgb, var(--main-color) 11%, var(--bg-color));
    color: var(--main-color);
}

.atlas-drawer-body {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 10px 11px 18px 11px;
}

.atlas-btn-xs {
    padding: 2px 6px;
    min-height: 24px;
    font-size: 10px;
}

.atlas-btn-xs.is-on {
    background-color: var(--main-color);
    color: var(--bg-color);
}

/* Tagged Layers Stack */
.atlas-layer-actions,
.atlas-views-row,
.atlas-layer-meta-btns,
.atlas-bool-row,
.atlas-add-tag-row,
.atlas-tag-bar,
.atlas-layer-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 6px;
}

.atlas-layer-filter {
    margin-bottom: 8px;
}

.atlas-layer-row {
    border: 1px solid color-mix(in srgb, var(--main-color) 22%, var(--bg-color));
    border-radius: 4px;
    padding: 5px 6px;
    margin-bottom: 5px;
    background-color: var(--bg-color);
}

.atlas-layer-row.is-active {
    border-color: var(--main-color);
    background-color: color-mix(in srgb, var(--main-color) 8%, var(--bg-color));
}

.atlas-layer-row.is-clipped {
    margin-left: 12px;
    border-left: 3px solid var(--main-color);
}

.atlas-layer-row-head {
    display: flex;
    align-items: center;
    gap: 3px;
}

.atlas-layer-select-btn {
    flex: 1 1 auto;
    text-align: left;
    background: transparent;
    border: none;
    color: var(--panel-text, var(--main-color));
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.atlas-layer-expanded {
    margin-top: 7px;
    padding-top: 7px;
    border-top: 1px dashed color-mix(in srgb, var(--main-color) 26%, var(--bg-color));
}

.atlas-tag-chip {
    padding: 2px 7px;
    font-size: 10px;
    font-weight: 600;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--main-color) 40%, var(--bg-color));
    background-color: color-mix(in srgb, var(--main-color) 10%, var(--bg-color));
    color: var(--panel-text, var(--main-color));
    cursor: pointer;
}

.atlas-tag-chip.is-active {
    background-color: var(--main-color);
    color: var(--bg-color);
}

.atlas-check-row {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 600;
    margin: 5px 0;
    cursor: pointer;
}

/* Vector Brush Cards & Quick Swatches */
.atlas-brush-import-bar {
    margin-bottom: 8px;
}

.atlas-brush-grid {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-bottom: 10px;
}

.atlas-brush-card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 3px;
    padding: 5px 7px;
    border: 1px solid color-mix(in srgb, var(--main-color) 28%, var(--bg-color));
    border-radius: 4px;
    background-color: var(--bg-color);
    color: var(--panel-text, var(--main-color));
    cursor: pointer;
    text-align: left;
}

.atlas-brush-card.is-selected,
.atlas-brush-card[aria-pressed="true"] {
    border-color: var(--main-color);
    background-color: color-mix(in srgb, var(--main-color) 12%, var(--bg-color));
}

.atlas-brush-preview-svg {
    width: 100%;
    height: 28px;
}

.atlas-brush-name {
    font-size: 10.5px;
    font-weight: 600;
}

/* Line Puller Stabilizer & Brush Filter / Sort / Tags */
/* Scribe Lead Stabilizer & Brush Filter / Sort / Tags */
.atlas-stabilizer-guide {
    color: var(--main-color);
}

.atlas-puller-swing-tri {
    stroke-linecap: round;
    stroke-linejoin: round;
}

.atlas-stabilizer-box,
.atlas-brush-filter-box {
    padding: 7px;
    margin: 7px 0 9px 0;
    border: 1px solid color-mix(in srgb, var(--main-color) 26%, var(--bg-color));
    border-radius: 4px;
    background-color: var(--bg-color);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.atlas-brush-filter-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px;
}

.atlas-brush-tag-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    max-height: 76px;
    overflow-y: auto;
    padding: 2px 0;
}

.atlas-brush-meta-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    font-size: 10.5px;
    opacity: 0.88;
}

.atlas-brush-card-row {
    display: flex;
    align-items: stretch;
    gap: 4px;
}

.atlas-brush-card-row .atlas-brush-card {
    flex: 1 1 auto;
    min-width: 0;
}

.atlas-brush-fav-btn {
    flex: 0 0 28px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid color-mix(in srgb, var(--main-color) 28%, var(--bg-color));
    border-radius: 4px;
    background-color: var(--bg-color);
    color: var(--panel-text, var(--main-color));
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.atlas-brush-fav-btn[aria-pressed="true"] {
    background-color: var(--main-color);
    color: var(--bg-color);
    border-color: var(--main-color);
}

.atlas-brush-fav-btn:focus-visible {
    outline: 2px solid var(--main-color);
    outline-offset: 2px;
}

.atlas-brush-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}

.atlas-brush-badge {
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    padding: 1px 4px;
    border: 1px solid color-mix(in srgb, var(--main-color) 32%, var(--bg-color));
    border-radius: 3px;
    opacity: 0.82;
    flex-shrink: 0;
}

.atlas-brush-tags-line {
    font-size: 9.5px;
    opacity: 0.72;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Chromatic Ring + SV Triangle Studio Color Wheel */
.atlas-wheel-panel {
    border-bottom: 1px solid color-mix(in srgb, var(--main-color) 28%, var(--bg-color));
    background-color: var(--bg-color);
    padding: 6px 8px;
    flex-shrink: 0;
}

.atlas-wheel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}

.atlas-wheel-fold-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 4px;
    border: none;
    background: transparent;
    color: var(--main-color);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    cursor: pointer;
}

.atlas-wheel-fold-btn[aria-expanded="false"] .atlas-icon {
    transform: rotate(-90deg);
}

.atlas-wheel-target-tag {
    font-size: 10px;
    font-weight: 700;
    opacity: 0.8;
    margin-right: auto;
}

.atlas-wheel-head-ctrls {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.atlas-well-pair {
    position: relative;
    width: 30px;
    height: 24px;
}

.atlas-well-btn {
    position: absolute;
    width: 16px;
    height: 16px;
    border: 1px solid var(--main-color);
    border-radius: 2px;
    cursor: pointer;
    padding: 0;
}

.atlas-well-fill {
    right: 0;
    bottom: 0;
}

.atlas-well-stroke {
    left: 0;
    top: 0;
}

.atlas-well-btn.is-active {
    box-shadow: 0 0 0 1.5px var(--bg-color), 0 0 0 3px var(--main-color);
    z-index: 2;
}

.atlas-wheel-body-wrap {
    margin-top: 6px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.atlas-wheel-body-wrap[hidden] {
    display: none !important;
}

.atlas-wheel-main {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.atlas-wheel-svg {
    flex-shrink: 0;
    touch-action: none;
    cursor: crosshair;
}

.atlas-harmony-ring-dot {
    cursor: pointer;
}

.atlas-wheel-side {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.atlas-wheel-fmt-row {
    display: flex;
    align-items: center;
    gap: 4px;
}

.atlas-wheel-fmt-row .atlas-hex-input {
    width: 100%;
    min-width: 0;
    min-height: 24px;
    height: 24px;
    padding: 1px 4px;
}

.atlas-wheel-chans {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.atlas-harmony-row {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    min-height: 14px;
}

.atlas-harmony-chip {
    width: 18px;
    height: 14px;
    border: 1px solid color-mix(in srgb, var(--main-color) 55%, var(--bg-color));
    border-radius: 2px;
    cursor: pointer;
    padding: 0;
}

.atlas-wheel-swatches {
    display: grid;
    grid-template-columns: repeat(11, 1fr);
    gap: 3px;
}

.atlas-swatch-add {
    height: 16px;
    padding: 0;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    border: 1px dashed var(--main-color);
    border-radius: 2px;
    background: transparent;
    color: var(--main-color);
    cursor: pointer;
}

.atlas-props-ink-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 8px;
}

.atlas-filter-disclosure {
    margin: 6px 0 8px 0;
    border: 1px solid color-mix(in srgb, var(--main-color) 26%, var(--bg-color));
    border-radius: 3px;
    background-color: var(--bg-color);
}

.atlas-filter-summary {
    padding: 5px 8px;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    color: var(--panel-text, var(--main-color));
    user-select: none;
}

.atlas-filter-disclosure .atlas-brush-filter-box {
    margin: 0;
    border: none;
    border-top: 1px solid color-mix(in srgb, var(--main-color) 20%, var(--bg-color));
}

.atlas-swatch-chip {
    width: 100%;
    height: 16px;
    border: 1px solid color-mix(in srgb, var(--main-color) 45%, var(--bg-color));
    border-radius: 2px;
    cursor: pointer;
}

.atlas-chan-box {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 10px;
}

.atlas-chan-tag {
    font-weight: 700;
    width: 12px;
}

.atlas-chan-input {
    width: 100%;
    min-width: 0;
    padding: 2px 4px;
    font-size: 10px;
    background-color: var(--panel-bg, var(--bg-color));
    color: var(--panel-text, var(--main-color));
    border: 1px solid color-mix(in srgb, var(--main-color) 32%, var(--bg-color));
    border-radius: 2px;
}

/* Native Accessible Dialogs & Inline Canvas Editor */
.atlas-dialog {
    max-width: 680px;
    width: min(92vw, 680px);
    padding: 14px 16px;
    border: 2px solid var(--main-color);
    border-radius: 6px;
    background-color: var(--panel-bg, var(--bg-color));
    color: var(--panel-text, var(--main-color));
}

.atlas-dialog::backdrop {
    background-color: color-mix(in srgb, var(--bg-color) 45%, #000000 55%);
}

.atlas-dialog-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    padding-bottom: 6px;
    border-bottom: 1px solid color-mix(in srgb, var(--main-color) 28%, var(--bg-color));
}

.atlas-dialog-title {
    margin: 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--main-color);
}

.atlas-modal-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 8px 12px;
    margin-bottom: 12px;
}

.atlas-modal-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 10px;
}

.atlas-template-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 8px;
    padding: 10px;
    border: 1px solid color-mix(in srgb, var(--main-color) 32%, var(--bg-color));
    border-radius: 5px;
    background-color: var(--bg-color);
}

.atlas-template-name {
    margin: 0;
    font-size: 13px;
    font-weight: 800;
    color: var(--main-color);
}

.atlas-template-desc {
    margin: 0;
    font-size: 11px;
    line-height: 1.4;
    opacity: 0.9;
}

.atlas-inline-actions {
    display: flex;
    gap: 6px;
    justify-content: flex-end;
}

.atlas-dual-topbar {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    border-bottom: 1px solid color-mix(in srgb, var(--main-color) 26%, var(--bg-color));
}

.atlas-dual-canvas {
    flex: 1 1 auto;
    min-height: 220px;
}

.atlas-weight-node {
    cursor: ns-resize;
    fill: var(--bg-color);
    stroke: var(--main-color);
    stroke-width: 1.8px;
}

.atlas-guide-origin-handle {
    cursor: move;
    fill: var(--bg-color);
    stroke: var(--main-color);
    stroke-width: 2px;
}

.atlas-guide-ruler-overlay,
.atlas-snap-reticle,
.atlas-shape-builder-trail {
    pointer-events: none;
}

.atlas-construction-stroke {
    stroke-dasharray: 5 4;
    opacity: 0.72;
}

/* Sub-Workspace Strip & Dock "All" Toggle */
.atlas-subworkspace-bar {
    gap: 2px;
    padding: 2px;
    border: 1px solid color-mix(in srgb, var(--main-color) 28%, var(--bg-color));
    border-radius: 5px;
    background-color: color-mix(in srgb, var(--sub-color) 10%, var(--bg-color));
}

.atlas-subws-btn.is-active {
    background-color: var(--main-color);
    color: var(--bg-color);
    font-weight: 700;
}

.atlas-dock-more-btn {
    margin-top: auto;
    border-top: 1px dashed color-mix(in srgb, var(--main-color) 25%, var(--bg-color));
}

.atlas-dock-all-lbl {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.04em;
}

/* Simultaneous HSV + RGB Sliders & Collapsible CMYK */
.atlas-dual-sliders {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
    margin-top: 6px;
}

.atlas-slider-col {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.atlas-slider-row {
    display: grid;
    grid-template-columns: 14px minmax(0, 1fr) 40px;
    align-items: center;
    gap: 4px;
}

.atlas-chan-range {
    width: 100%;
    min-width: 0;
    accent-color: var(--main-color);
    cursor: pointer;
}

.atlas-cmyk-drawer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px 8px;
    margin-top: 5px;
    padding-top: 5px;
    border-top: 1px dashed color-mix(in srgb, var(--main-color) 25%, var(--bg-color));
}

/* Offline CPU 3D Lit Form Shading & 5-Stop Ramp Studio */
.atlas-lit-form-section {
    margin-top: 7px;
    padding: 6px;
    border: 1px solid color-mix(in srgb, var(--main-color) 25%, var(--bg-color));
    border-radius: 6px;
    background-color: color-mix(in srgb, var(--sub-color) 10%, var(--bg-color));
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.atlas-lit-form-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
}

.atlas-lit-form-stage {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 8px;
    align-items: center;
}

.atlas-lit-form-canvas {
    width: 112px;
    height: 112px;
    border-radius: 5px;
    border: 1px solid color-mix(in srgb, var(--main-color) 35%, var(--bg-color));
    cursor: crosshair;
    display: block;
}

.atlas-lit-form-controls {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.atlas-lit-sun-row {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) 38px;
    align-items: center;
    gap: 4px;
    font-size: 10px;
}

.atlas-slider-mini-val {
    font-size: 10px;
    text-align: right;
    color: var(--sub-color);
}

.atlas-lit-base-chip {
    display: inline-block;
    padding: 2px 6px;
    border-radius: 3px;
    font-size: 10px;
    font-weight: 700;
    color: #ffffff;
    text-shadow: 0 1px 2px #000000;
    border: 1px solid color-mix(in srgb, var(--main-color) 40%, var(--bg-color));
}

.atlas-lit-hint {
    font-size: 10px;
    color: var(--sub-color);
    line-height: 1.3;
}

.atlas-lit-ramp-row {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 4px;
}

.atlas-lit-ramp-chip {
    min-height: 28px;
    border-radius: 4px;
    border: 1px solid color-mix(in srgb, var(--main-color) 45%, var(--bg-color));
    cursor: pointer;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 2px;
}

.atlas-lit-ramp-lbl {
    font-size: 9px;
    font-weight: 800;
    color: #ffffff;
    text-shadow: 0 1px 2px #000000;
}

/* Scalable Swatch Header & Size Modes */
.atlas-swatch-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 6px;
    margin-bottom: 3px;
}

.atlas-swatch-hdr-lbl {
    font-size: 10px;
    font-weight: 700;
    color: var(--sub-color);
}

.atlas-swatch-size-grp {
    display: inline-flex;
    gap: 2px;
}

.atlas-wheel-swatches.is-size-s {
    grid-template-columns: repeat(14, 1fr);
    gap: 2px;
}

.atlas-wheel-swatches.is-size-s .atlas-swatch-chip,
.atlas-wheel-swatches.is-size-s .atlas-swatch-add {
    height: 12px;
}

.atlas-wheel-swatches.is-size-m {
    grid-template-columns: repeat(10, 1fr);
    gap: 3px;
}

.atlas-wheel-swatches.is-size-m .atlas-swatch-chip,
.atlas-wheel-swatches.is-size-m .atlas-swatch-add {
    height: 18px;
}

.atlas-wheel-swatches.is-size-l {
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
}

.atlas-wheel-swatches.is-size-l .atlas-swatch-chip,
.atlas-wheel-swatches.is-size-l .atlas-swatch-add {
    height: 24px;
}

/* Quick Canvas Pop-up Palette (Q) */
.atlas-quick-palette {
    position: absolute;
    z-index: 42;
    width: 260px;
    max-width: calc(100% - 16px);
    padding: 8px;
    border: 1px solid var(--main-color);
    border-radius: 8px;
    background-color: var(--bg-color);
    color: var(--text-color);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.atlas-qp-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.atlas-qp-title {
    font-size: 11px;
    font-weight: 800;
}

.atlas-qp-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
}

.atlas-qp-slider-row {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) 36px;
    align-items: center;
    gap: 5px;
    font-size: 10px;
}

.atlas-qp-brushes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3px;
}

.atlas-qp-swatches {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 3px;
}

/* Floating Non-Printing Reference Image Pin */
.atlas-ref-pin-card {
    position: absolute;
    z-index: 38;
    width: max-content;
    max-width: 256px;
    padding: 5px;
    border: 1px solid color-mix(in srgb, var(--main-color) 45%, var(--bg-color));
    border-radius: 7px;
    background-color: var(--bg-color);
    color: var(--text-color);
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.atlas-ref-pin-header {
    display: flex;
    align-items: center;
    gap: 4px;
    cursor: move;
    font-size: 10px;
    font-weight: 700;
}

.atlas-ref-pin-title {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.atlas-ref-pin-canvas {
    display: block;
    border-radius: 4px;
    border: 1px solid color-mix(in srgb, var(--main-color) 28%, var(--bg-color));
    cursor: crosshair;
}

.atlas-ref-pin-footer {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: center;
    gap: 4px;
    font-size: 10px;
}

/* Alignment Bar, Pattern Arranger & Batch Palette Studio */
.atlas-align-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 6px;
}

.atlas-arrange-panel,
.atlas-palette-studio {
    border: 1px solid color-mix(in srgb, var(--main-color) 25%, var(--bg-color));
    border-radius: 6px;
    padding: 7px;
    margin-bottom: 8px;
    background-color: color-mix(in srgb, var(--sub-color) 8%, var(--bg-color));
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.atlas-arrange-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
}

.atlas-palette-studio-summary {
    cursor: pointer;
    font-size: 11px;
    font-weight: 700;
}

.atlas-palette-studio-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-top: 4px;
}

.atlas-palette-subhead {
    margin: 4px 0 0;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--sub-color);
}

.atlas-remap-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-height: 150px;
    overflow-y: auto;
}

.atlas-remap-row {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: 6px;
    font-size: 11px;
}

.atlas-remap-picker {
    width: 26px;
    height: 22px;
    padding: 0;
    border: 1px solid color-mix(in srgb, var(--main-color) 35%, var(--bg-color));
    border-radius: 3px;
    background: transparent;
    cursor: pointer;
}

.atlas-remap-hex {
    font-family: monospace;
    font-size: 11px;
}

/* Keyboard Shortcuts Modal Table & Canvas Multi-Select */
.atlas-hotkey-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
    margin-top: 6px;
}

.atlas-hotkey-table th,
.atlas-hotkey-table td {
    text-align: left;
    padding: 6px 8px;
    border-bottom: 1px solid color-mix(in srgb, var(--main-color) 20%, var(--bg-color));
}

.atlas-hotkey-table th {
    font-weight: 800;
    color: var(--main-color);
}

.atlas-lit-ramp-chip:focus-visible,
.atlas-subws-btn:focus-visible,
.atlas-remap-picker:focus-visible,
.atlas-palette-studio-summary:focus-visible,
.atlas-warm-cool-chip:focus-visible,
.atlas-pigment-cell:focus-visible,
.atlas-standalone-link:focus-visible {
    outline: 2px solid var(--main-color);
    outline-offset: 2px;
}

.atlas-pigment-studio {
    border: 1px solid color-mix(in srgb, var(--main-color) 25%, var(--bg-color));
    border-radius: 6px;
    padding: 6px 7px;
    margin-top: 6px;
    background-color: color-mix(in srgb, var(--sub-color) 8%, var(--bg-color));
}

.atlas-pigment-studio-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-top: 6px;
}

.atlas-warm-cool-row {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 3px;
}

.atlas-warm-cool-chip {
    height: 20px;
    border-radius: 3px;
    border: 1px solid color-mix(in srgb, var(--main-color) 35%, var(--bg-color));
    cursor: pointer;
    padding: 0;
}

.atlas-pigment-corners-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
}

.atlas-pigment-corner-btn {
    border-left-width: 6px;
    border-left-style: solid;
}

.atlas-pigment-pad-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 2px;
}

.atlas-pigment-cell {
    height: 18px;
    border-radius: 2px;
    border: 1px solid color-mix(in srgb, var(--main-color) 25%, var(--bg-color));
    cursor: pointer;
    padding: 0;
}

.atlas-standalone-link {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}

@media (forced-colors: active) {

    .atlas-dock-btn,
    .atlas-drawer-tab,
    .atlas-brush-card,
    .atlas-brush-fav-btn,
    .atlas-stabilizer-box,
    .atlas-brush-filter-box,
    .atlas-layer-row,
    .atlas-dropdown-menu,
    .atlas-wheel-panel,
    .atlas-lit-form-section,
    .atlas-quick-palette,
    .atlas-ref-pin-card,
    .atlas-arrange-panel,
    .atlas-palette-studio,
    .atlas-pigment-studio,
    .atlas-filter-disclosure,
    .atlas-dialog,
    .atlas-input-dialog,
    .atlas-quick-touch-bar,
    .atlas-quick-touch-btn,
    .atlas-input-preset-btn,
    .atlas-input-test-canvas {
        forced-color-adjust: auto;
        border: 1px solid ButtonText;
    }

    .atlas-quick-touch-btn[aria-pressed="true"],
    .atlas-input-preset-btn[aria-pressed="true"] {
        background-color: Highlight;
        color: HighlightText;
        border-color: Highlight;
    }

    .atlas-warm-cool-chip,
    .atlas-pigment-cell {
        forced-color-adjust: none;
        border-color: ButtonText;
    }

    .atlas-weight-node,
    .atlas-guide-origin-handle {
        forced-color-adjust: auto;
        stroke: Highlight;
        fill: Canvas;
    }

    .atlas-puller-ring,
    .atlas-puller-tether {
        forced-color-adjust: auto;
        fill: none;
        stroke: Highlight;
    }

    .atlas-puller-nib,
    .atlas-puller-cursor-pin {
        forced-color-adjust: auto;
        fill: Highlight;
        stroke: none;
    }

    .atlas-puller-swing-tri {
        forced-color-adjust: auto;
        fill: Highlight;
        fill-opacity: 0.28;
        stroke: Highlight;
    }

    .atlas-dock-btn[aria-pressed="true"],
    .atlas-brush-fav-btn[aria-pressed="true"],
    .atlas-drawer-tab[aria-selected="true"],
    .atlas-subws-btn.is-active,
    .atlas-menu-item:hover,
    .atlas-menu-item:focus-visible {
        background-color: Highlight;
        color: HighlightText;
    }
}

@media (prefers-reduced-motion: reduce) {

    .atlas-dock-btn,
    .atlas-drawer-tab,
    .atlas-brush-card,
    .atlas-subws-btn,
    .atlas-lit-ramp-chip,
    .atlas-quick-touch-btn,
    .atlas-input-preset-btn,
    .atlas-wheel-fold-btn .atlas-icon {
        transition: none !important;
    }
}

/* === INPUT CALIBRATION DIALOG & QUICK-TOUCH ACTION BAR (/atlas) === */
.atlas-input-dialog {
    background: var(--panel-bg, #ffffff);
    color: var(--text-color, #1e293b);
    border: 1px solid var(--border-color, rgba(148, 163, 184, 0.35));
    border-radius: 10px;
    padding: 16px 18px;
    max-width: min(94vw, 460px);
    width: 100%;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35);
    font: inherit;
}

.atlas-input-dialog::backdrop {
    background: rgba(15, 23, 42, 0.58);
}

.atlas-input-dialog-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 6px;
}

.atlas-input-dialog-header h2 {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
}

.atlas-input-subtitle {
    margin: 0 0 12px;
    font-size: 12px;
    color: var(--sub-color, #64748b);
}

.atlas-input-preset-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}

.atlas-input-preset-btn {
    min-height: 38px;
    padding: 6px 10px;
    border-radius: 6px;
    border: 1px solid var(--border-color, rgba(148, 163, 184, 0.4));
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    text-align: left;
    transition: background-color 0.12s ease, border-color 0.12s ease;
}

.atlas-input-preset-btn[aria-pressed="true"] {
    background: var(--main-color, #2563eb);
    color: #ffffff;
    border-color: var(--main-color, #2563eb);
}

.atlas-input-form {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 12px;
}

.atlas-input-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    font-size: 12px;
}

.atlas-input-row label {
    flex: 1 1 auto;
}

.atlas-input-check {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
}

.atlas-input-check input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--main-color, #2563eb);
}

.atlas-input-test-wrap {
    margin-bottom: 12px;
}

.atlas-input-test-canvas {
    display: block;
    width: 100%;
    height: 96px;
    border: 1px dashed var(--border-color, rgba(148, 163, 184, 0.5));
    border-radius: 6px;
    background: var(--bg-color, #f8fafc);
    touch-action: none;
    cursor: crosshair;
}

.atlas-input-readout {
    margin-top: 6px;
    font-size: 11px;
    color: var(--sub-color, #64748b);
    min-height: 16px;
}

.atlas-input-dialog-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.atlas-quick-touch-bar {
    position: fixed;
    left: 50%;
    bottom: 14px;
    transform: translateX(-50%);
    z-index: 60;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px;
    border-radius: 12px;
    background: var(--panel-bg, #ffffff);
    border: 1px solid var(--border-color, rgba(148, 163, 184, 0.45));
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.25);
}

.atlas-quick-touch-bar[hidden] {
    display: none !important;
}

.atlas-quick-touch-btn {
    min-width: 44px;
    min-height: 44px;
    padding: 0 10px;
    border-radius: 8px;
    border: 1px solid var(--border-color, rgba(148, 163, 184, 0.4));
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    touch-action: manipulation;
    transition: background-color 0.12s ease, border-color 0.12s ease;
}

.atlas-quick-touch-btn[aria-pressed="true"] {
    background: var(--main-color, #2563eb);
    color: #ffffff;
    border-color: var(--main-color, #2563eb);
}

.atlas-input-preset-btn:focus-visible,
.atlas-quick-touch-btn:focus-visible {
    outline: 2px solid var(--main-color, #2563eb);
    outline-offset: 2px;
}