/* ══════════════════════════════════════════════════════════
   NUEVA EDUCACIÓN · board.css
   Tablero de Geometría Sagrada — estilos específicos
   ══════════════════════════════════════════════════════════ */

/* Board page layout overrides */
body.board-page { overflow: hidden; height: 100vh; }

/* nav-brand como enlace (sin decoración de hipervínculo) */
a.nav-brand {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    border-radius: var(--radius);
    transition: opacity .2s;
}
a.nav-brand:hover { opacity: .8; }

.board-layout {
    position: fixed;
    top: 70px; left: 0; right: 0; bottom: 0;
    display: flex;
    overflow: hidden;
}

.mode-toggle {
    display: flex;
    gap: 4px;
    background: var(--color-surface);
    border-radius: 50px;
    padding: 3px;
    flex-shrink: 0;
}
.mode-btn {
    padding: 5px 16px;
    border-radius: 50px;
    border: none;
    background: transparent;
    color: var(--color-nav-text);
    font-family: var(--font-body);
    font-weight: 600;
    font-size: .82rem;
    cursor: pointer;
    transition: background .25s, color .25s;
}
.mode-btn.active {
    background: var(--color-primary);
    color: #fff;
}

/* Palette panel */
.palette-panel {
    width: 215px;
    min-width: 215px;
    flex-shrink: 0;
    background: var(--color-bg-alt);
    border-right: 1px solid var(--color-border);
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 8px;
    transition: background .4s, border-color .4s;
}

.panel-title {
    font-family: var(--font-heading);
    font-size: .9rem;
    font-weight: 600;
    color: var(--color-text-s);
    padding: 4px 8px 8px;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 6px;
}

.palette-section-label {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-tag-text);
    padding: 8px 8px 4px;
}

/* Etiquetas de dimensión: clicables */
.palette-dim-label {
    cursor: pointer;
    border-radius: var(--radius-btn);
    padding: 7px 8px;
    margin: 2px 0;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: background .2s, color .2s, border-radius .4s;
    user-select: none;
}
.palette-dim-label::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-tag-text);
    flex-shrink: 0;
    opacity: .45;
    transition: background .2s, opacity .2s, transform .2s;
}
.palette-dim-label:hover {
    background: var(--color-surface);
    color: var(--color-primary);
}
.palette-dim-label:hover::before {
    background: var(--color-primary);
    opacity: .75;
}
.palette-dim-label.active {
    background: var(--color-tag-bg, var(--color-surface));
    color: var(--color-primary);
}
.palette-dim-label.active::before {
    background: var(--color-primary);
    opacity: 1;
    transform: scale(1.4);
}

.fig-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 7px 8px;
    border: 1px solid transparent;
    border-radius: var(--radius);
    background: transparent;
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: .8rem;
    cursor: pointer;
    text-align: left;
    transition: background .2s, border-color .2s, border-radius .4s;
}
.fig-btn:hover {
    background: var(--color-surface);
    border-color: var(--color-border);
}
.fig-btn span { flex: 1; }

/* Figuras próximamente */
.fig-btn--soon {
    opacity: .45;
    cursor: not-allowed;
    position: relative;
}
.fig-btn--soon:hover {
    background: transparent;
    border-color: transparent;
}
.fig-soon-badge {
    flex: 0 0 auto !important;
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 2px 6px;
    border-radius: 50px;
    background: var(--color-surface);
    color: var(--color-text-m);
    border: 1px solid var(--color-border);
}

.fig-preview {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    color: var(--color-fig-icon, var(--color-primary));
    transition: color .4s;
}
.fig-preview svg { width: 100%; height: 100%; }

/* 3D fig buttons are dimmed when in 2D mode */
.board-mode-2d .palette-3d-figs .fig-btn { opacity: .45; pointer-events: none; }
.board-mode-3d .palette-2d-figs .fig-btn { opacity: .45; pointer-events: none; }

.palette-actions { margin-top: auto; padding-top: 12px; }

/* Canvas area */
.canvas-area {
    flex: 1;
    position: relative;
    overflow: hidden;
    background: var(--color-bg);
    transition: background .4s;
}

#canvas-2d {
    width: 100%;
    height: 100%;
    display: block;
    cursor: crosshair;
}
#canvas-2d.hide { display: none; }

#canvas-3d {
    width: 100%;
    height: 100%;
    display: none;
}
#canvas-3d.show { display: block; }

/* ── Toolbar 3D ─────────────────────────────────────────── */
.toolbar-3d {
    position: absolute;
    top: 14px;
    left: 50%;
    transform: translateX(-50%);
    display: none;          /* oculto en modo 2D */
    align-items: center;
    gap: 4px;
    z-index: 20;
    background: var(--color-nav-bg);
    border: 1px solid var(--color-border);
    border-radius: 50px;
    padding: 4px 8px;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 4px 20px rgba(0,0,0,.3);
    transition: background .4s, border-color .4s;
    white-space: nowrap;
}
/* Solo visible en modo 3D */
.board-mode-3d .toolbar-3d { display: flex; }

.toolbar-sep {
    width: 1px;
    height: 20px;
    background: var(--color-border);
    margin: 0 2px;
}

.tool-btn {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 5px 14px;
    border-radius: 50px;
    border: none;
    background: transparent;
    color: var(--color-nav-text);
    font-family: var(--font-body);
    font-size: .78rem;
    font-weight: 500;
    cursor: pointer;
    transition: background .2s, color .2s;
    white-space: nowrap;
}
.tool-btn:hover { background: var(--color-surface); }
.tool-btn.active {
    background: var(--color-primary);
    color: #fff;
}
.tool-icon { font-size: .9rem; line-height: 1; }

.canvas-hint {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    font-size: .78rem;
    color: var(--color-text-m);
    pointer-events: none;
    transition: opacity .3s;
    white-space: nowrap;
}
.canvas-hint.hidden { opacity: 0; }

/* Figure groups (SVG) */
.figure-group {
    cursor: grab;
    transition: filter .15s;
}
.figure-group:hover { filter: brightness(1.2); }
.figure-group.selected { filter: drop-shadow(0 0 8px var(--color-accent)); }
.figure-group.dragging { cursor: grabbing; }

/* Props panel */
.props-panel {
    width: 260px;
    min-width: 260px;
    flex-shrink: 0;
    background: var(--color-bg-alt);
    border-left: 1px solid var(--color-border);
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    transition: background .4s, border-color .4s;
}

.no-sel-msg {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex: 1;
    padding: 40px 16px;
    text-align: center;
    color: var(--color-text-m);
    font-size: .88rem;
}
.no-sel-icon {
    font-size: 2rem;
    color: var(--color-primary);
    opacity: .5;
    animation: slow-rotate 20s linear infinite;
}

.props-section-label {
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-tag-text);
    opacity: 0.7;
    padding: 10px 0 3px;
    margin-top: 2px;
}

.prop-fig-name-wrap {
    display: flex;
    align-items: center;
    gap: 4px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 8px;
}
.prop-fig-name {
    flex: 1;
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-text-s);
    background: transparent;
    border: 1.5px solid transparent;
    outline: none;
    padding: 4px 6px;
    border-radius: 4px;
    min-width: 0;
    cursor: text;
    transition: background .15s, border-color .15s;
}
.prop-fig-name:hover {
    background: var(--color-surface);
    border-color: var(--color-border);
}
.prop-fig-name:focus {
    background: var(--color-surface);
    border-color: var(--color-primary);
}
.prop-fig-name-edit-icon {
    font-size: .9rem;
    color: var(--color-primary);
    opacity: .6;
    cursor: pointer;
    flex-shrink: 0;
    padding: 2px 4px;
    border-radius: 4px;
    transition: opacity .15s, background .15s;
}
.prop-fig-name-edit-icon:hover {
    opacity: 1;
    background: var(--color-surface);
}

/* Nombre en la lista de capas: doble clic para renombrar */
.layer-name {
    cursor: default;
}
.layer-name.renameable {
    cursor: text;
}

.prop-group {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 6px 0;
}
.prop-group label {
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--color-text-m);
    display: flex;
    justify-content: space-between;
}
.prop-val {
    color: var(--color-accent);
    font-weight: 700;
}
.prop-group input[type=range] {
    width: 100%;
    accent-color: var(--color-primary);
    cursor: pointer;
}
.range-with-input {
    display: flex;
    align-items: center;
    gap: 6px;
}
.range-with-input input[type=range] {
    flex: 1;
    min-width: 0;
}
.range-num-input {
    width: 52px;
    padding: 3px 5px;
    border: 1.5px solid var(--color-border);
    border-radius: 5px;
    background: var(--color-bg);
    color: var(--color-text);
    font-size: .8rem;
    font-weight: 600;
    text-align: right;
    -moz-appearance: textfield;
}
.range-num-input::-webkit-inner-spin-button,
.range-num-input::-webkit-outer-spin-button { -webkit-appearance: none; }
.range-num-input:focus {
    outline: none;
    border-color: var(--color-primary);
}
.range-num-unit {
    font-size: .75rem;
    color: var(--color-text-m);
    flex-shrink: 0;
}
.prop-group input[type=color] {
    width: 44px;
    height: 32px;
    border: 2px solid var(--color-border);
    border-radius: 6px;
    cursor: pointer;
    background: none;
    padding: 1px;
}
.prop-inline {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}
.prop-inline label { text-transform: none; font-size: .85rem; }

.toggle-check {
    width: 18px;
    height: 18px;
    accent-color: var(--color-primary);
    cursor: pointer;
}

.color-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.color-presets {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
}
.color-preset-dot {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    cursor: pointer;
    border: 2px solid transparent;
    transition: border-color .2s, transform .2s;
}
.color-preset-dot:hover { transform: scale(1.2); border-color: var(--color-text-s); }

.prop-actions {
    display: flex;
    gap: 8px;
    padding-top: 12px;
    margin-top: 8px;
    border-top: 1px solid var(--color-border);
}

.action-btn {
    flex: 1;
    padding: 8px 12px;
    border-radius: var(--radius-btn);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: .7rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .2s, border-color .2s, border-radius .4s;
}
.action-btn:hover { background: var(--color-surface-h); }
.action-btn.danger { color: #ff6b6b; border-color: rgba(255,107,107,.3); }
.action-btn.danger:hover { background: rgba(255,107,107,.12); border-color: #ff6b6b; }

.hidden { display: none !important; }

/* Marquee selection rectangle */
.sel-rect {
    fill: var(--color-primary);
    fill-opacity: .08;
    stroke: var(--color-primary);
    stroke-width: 1.5;
    stroke-dasharray: 5 3;
    display: none;
}

/* Multi-selected figure highlight */
.figure-group.multi-selected {
    filter: drop-shadow(0 0 6px var(--color-primary));
}

/* Scrollbar styling */
.palette-panel::-webkit-scrollbar,
.props-panel::-webkit-scrollbar { width: 4px; }
.palette-panel::-webkit-scrollbar-track,
.props-panel::-webkit-scrollbar-track { background: transparent; }
.palette-panel::-webkit-scrollbar-thumb,
.props-panel::-webkit-scrollbar-thumb { background: var(--color-border); border-radius: 2px; }

/* ── Layer list ──────────────────────────────────────────── */
.layer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 2px 8px;
    font-family: var(--font-heading);
    font-size: .82rem;
    font-weight: 600;
    color: var(--color-text-s);
}
.layer-count-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 50px;
    background: var(--color-primary);
    color: #fff;
    font-size: .68rem;
    font-weight: 700;
    transition: background .4s;
}
.board-global-ctrl {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 2px 6px;
}
.board-global-label {
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .04em;
    color: var(--color-text-m);
}
.board-ctrl-btn {
    background: transparent;
    border: 1.5px solid var(--color-border);
    border-radius: 6px;
    color: var(--color-text-m);
    font-size: .85rem;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: border-color .2s, color .2s, background .2s;
}
.board-ctrl-btn:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
    background: var(--color-primary-a10, rgba(0,0,0,.06));
}
.board-ctrl-btn:active {
    background: var(--color-primary);
    color: #fff;
}

.plane-rotate-ctrl {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 2px 8px;
    cursor: pointer;
    user-select: none;
}
.plane-rotate-label {
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .04em;
    color: var(--color-text-m);
    transition: color .2s;
}
.plane-rotate-ctrl:has(#board-rotate-plane:checked) .plane-rotate-label {
    color: var(--color-primary);
}

.layer-list {
    list-style: none;
    min-height: 175px;
    max-height: 210px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-right: 2px;
}
.layer-list::-webkit-scrollbar { width: 3px; }
.layer-list::-webkit-scrollbar-thumb { background: var(--color-border); border-radius: 2px; }

.layer-empty {
    padding: 18px 8px;
    text-align: center;
    font-size: .78rem;
    color: var(--color-text-m);
    font-style: italic;
}
.layer-item {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 7px;
    border-radius: var(--radius);
    cursor: pointer;
    border: 1px solid transparent;
    transition: background .15s, border-color .15s, border-radius .4s;
}
.layer-item:hover { background: var(--color-surface); }
.layer-item.layer-selected {
    background: var(--color-surface-h);
    border-color: var(--color-primary);
}
.layer-color-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex-shrink: 0;
    border: 1px solid rgba(255,255,255,.2);
}
.layer-fig-icon {
    font-size: .88rem;
    flex-shrink: 0;
    line-height: 1;
}
.layer-name {
    flex: 1;
    font-size: .78rem;
    color: var(--color-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
    transition: color .4s;
}
.layer-name em {
    font-style: normal;
    font-size: .68rem;
    color: var(--color-text-m);
    margin-left: 3px;
}
.layer-vis {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: .8rem;
    line-height: 1;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    opacity: .55;
    transition: opacity .2s, background .2s;
}
.layer-vis:hover { opacity: 1; background: var(--color-surface-h); }
.layer-vis.hidden-fig { opacity: .25; }

.props-separator {
    height: 1px;
    background: var(--color-border);
    margin: 10px 0 10px;
    transition: background .4s;
}

/* Hero CTA secondary button */
.cta-secondary {
    background: transparent;
    border: 2px solid var(--color-secondary);
    color: var(--color-secondary);
}
.cta-secondary:hover { background: var(--color-secondary); color: var(--color-bg); }

/* Board nav link in index.html */
.board-nav-link {
    padding: 6px 14px;
    border-radius: var(--radius-btn);
    border: 1px solid var(--color-secondary);
    color: var(--color-nav-text);
    font-size: .82rem;
    font-weight: 600;
    transition: background .2s;
    white-space: nowrap;
}
.board-nav-link:hover { background: var(--color-surface); }

/* ── Medidas overlay ── */
#measure-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 10;
    overflow: hidden;
}

.measure-label {
    position: absolute;
    font-size: .72rem;
    font-weight: 600;
    font-family: var(--font-body, sans-serif);
    padding: 1px 5px;
    border-radius: 3px;
    white-space: nowrap;
    transform: translate(-50%, -50%);
    background: rgba(255,255,255,.88);
    color: #111111;
    letter-spacing: .02em;
}

/* ── Color Picker ── */
#cp-wrap { position: relative; }

.cp-trigger-row {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    margin-top: 4px;
}

.cp-swatch {
    width: 36px;
    height: 22px;
    border-radius: 4px;
    border: 1px solid rgba(255,255,255,0.25);
    cursor: pointer;
    flex-shrink: 0;
    background: #2C7873;
}

.cp-hex-display {
    font-size: .72rem;
    font-family: monospace;
    opacity: 0.75;
    letter-spacing: .04em;
}

.cp-popup {
    position: relative;
    z-index: 50;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 6px;
    padding: 8px;
    margin-top: 6px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.35);
}

.cp-popup canvas {
    display: block;
    width: 100%;
    border-radius: 3px;
    cursor: crosshair;
}

#cp-sv  { height: 120px; }
#cp-hue { height: 14px;  }

.cp-palette {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    padding: 2px 0;
}

.cp-pal-swatch {
    width: 20px;
    height: 20px;
    border-radius: 3px;
    cursor: pointer;
    border: 1px solid rgba(255,255,255,0.15);
    transition: transform .12s;
}
.cp-pal-swatch:hover { transform: scale(1.25); }

.cp-inputs { display: flex; flex-direction: column; gap: 5px; }

.cp-rgb-row {
    display: flex;
    gap: 4px;
}
.cp-rgb-row label {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .05em;
    opacity: .65;
    gap: 2px;
    flex: 1;
    margin: 0;
}
.cp-rgb-row input {
    width: 100%;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    color: var(--color-text);
    font-size: .72rem;
    padding: 2px 2px;
    text-align: center;
    -moz-appearance: textfield;
    outline: none;
}
.cp-rgb-row input::-webkit-inner-spin-button,
.cp-rgb-row input::-webkit-outer-spin-button { display: none; }

.cp-hex-row {
    display: flex;
    align-items: center;
    gap: 3px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    padding: 3px 7px;
}
.cp-hex-row > span {
    font-size: .72rem;
    font-family: monospace;
    opacity: .45;
}
.cp-hex-row input {
    flex: 1;
    background: transparent;
    border: none;
    color: var(--color-text);
    font-size: .72rem;
    font-family: monospace;
    outline: none;
    text-transform: uppercase;
    min-width: 0;
}

/* ══════════════════════════════════════════════════════════
   NAV ACTIONS — botones de panel + menú hamburguesa
   ══════════════════════════════════════════════════════════ */

.nav-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

/* Panel toggle buttons: ocultos en desktop, visibles en móvil */
.panel-toggle-btn {
    display: none;
    width: 34px;
    height: 34px;
    border-radius: 50px;
    border: 1.5px solid var(--color-primary);
    background: var(--color-bg-alt);
    color: var(--color-text-s);
    font-size: 1rem;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    transition: background .2s, border-color .2s;
    flex-shrink: 0;
}
.panel-toggle-btn.active,
.panel-toggle-btn:hover {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}

/* Menú hamburguesa */
.nav-menu-wrap {
    position: relative;
}

.nav-menu-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: var(--radius-btn);
    border: 2px solid var(--color-primary);
    background: var(--color-bg-alt);
    color: var(--color-primary);
    cursor: pointer;
    transition: background .2s, border-color .2s, color .2s, box-shadow .2s;
    flex-shrink: 0;
}
.nav-menu-btn:hover,
.nav-menu-btn.open {
    background: var(--color-primary);
    color: var(--color-btn-text, #fff);
    box-shadow: 0 2px 10px rgba(0,0,0,.25);
}
.nav-menu-icon {
    width: 18px;
    height: 18px;
    pointer-events: none;
}

/* Dropdown — fondo siempre del color de superficie de la página, nunca del nav */
.nav-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 230px;
    background: var(--color-bg-alt);
    border: 1.5px solid var(--color-primary);
    border-radius: var(--radius);
    padding: 10px;
    box-shadow: 0 8px 32px rgba(0,0,0,.28), 0 2px 8px rgba(0,0,0,.14);
    z-index: 500;
    flex-direction: column;
    gap: 6px;
    transition: background .4s, border-color .4s;
}
.nav-dropdown.open {
    display: flex;
}

.nav-dd-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 6px 4px;
}
.nav-dd-label {
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .05em;
    color: var(--color-text);
    white-space: nowrap;
    flex-shrink: 0;
}
.nav-dd-divider {
    height: 1px;
    background: var(--color-border);
    margin: 4px 0;
}
.nav-dd-home,
.nav-dd-board {
    display: block;
    padding: 8px 4px;
    font-size: .85rem;
    font-weight: 600;
    color: var(--color-text-s);
    border-radius: var(--radius-btn);
    transition: background .2s, color .2s;
    text-decoration: none;
}
.nav-dd-home:hover,
.nav-dd-board:hover {
    background: var(--color-surface);
    color: var(--color-primary);
}

/* Board link — destacado con color primario (siempre legible sobre bg-alt) */
.nav-dd-board {
    color: var(--color-primary);
    font-weight: 700;
}

/* Login desactivado */
.nav-dd-login {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 4px;
    font-size: .85rem;
    font-weight: 600;
    color: var(--color-text-m);
    opacity: .55;
    cursor: not-allowed;
    user-select: none;
}
.nav-dd-soon {
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 50px;
    background: var(--color-surface);
    color: var(--color-text-m);
    border: 1px solid var(--color-border);
    white-space: nowrap;
}

/* Panel overlay */
.panel-overlay { display: none; }

/* ══════════════════════════════════════════════════════════
   MOBILE RESPONSIVE  (≤ 768px)
   ══════════════════════════════════════════════════════════ */

@media (max-width: 768px) {

    /* ── Navbar ── */
    .nav-container {
        width: 100%;
        padding: 0 10px;
        gap: 6px;
        justify-content: space-between;
    }
    .brand-text { font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 130px; }
    .brand-icon { width: 26px; height: 26px; flex-shrink: 0; }
    .nav-brand { gap: 6px; min-width: 0; }

    /* Mostrar botones de panel en móvil */
    .panel-toggle-btn {
        display: flex;
    }

    /* Dropdown: en móvil puede ir a la izquierda si no hay espacio */
    .nav-dropdown {
        right: 0;
        left: auto;
        min-width: 200px;
    }

    /* ── Panels become drawers ── */
    .palette-panel {
        position: fixed;
        top: 56px; left: 0; bottom: 0;
        width: 200px;
        min-width: unset;
        overflow-y: auto;
        overflow-x: hidden;
        transform: translateX(-100%);
        transition: transform .28s ease;
        z-index: 200;
        border-right: 1px solid var(--color-border);
        box-shadow: 4px 0 24px rgba(0,0,0,.35);
    }
    .palette-panel.panel-open {
        transform: translateX(0);
    }

    .props-panel {
        position: fixed;
        top: 56px; right: 0; bottom: 0;
        width: 260px;
        min-width: unset;
        overflow-y: auto;
        overflow-x: hidden;
        transform: translateX(100%);
        transition: transform .28s ease;
        z-index: 200;
        border-left: 1px solid var(--color-border);
        box-shadow: -4px 0 24px rgba(0,0,0,.35);
    }
    .props-panel.panel-open {
        transform: translateX(0);
    }

    /* Canvas takes full width */
    .board-layout {
        top: 56px;
    }

    /* Toolbar 3D smaller on mobile */
    .toolbar-3d {
        top: 8px;
        padding: 3px 6px;
        gap: 3px;
    }
    .tool-btn {
        padding: 4px 10px;
        font-size: .72rem;
    }
    .tool-btn .tool-icon { display: none; }

    /* Hint text shorter */
    .canvas-hint {
        font-size: .7rem;
        padding: 5px 12px;
    }

    /* Color picker popup: max-width for narrow screens */
    .cp-popup {
        width: 92vw;
        max-width: 240px;
    }
    #cp-sv { width: 100%; }
    #cp-hue { width: 100%; }

    /* Layer list on mobile: keep 5 items minimum */
    .layer-list { min-height: 175px; max-height: 175px; }
}

@media (max-width: 400px) {
    .panel-toggle-btn { width: 30px; height: 30px; font-size: .9rem; }
    .nav-menu-btn { width: 34px; height: 34px; }
}
