:root{
 --style-paper:#FAF6F0;--style-canvas:#FCF9F5;--style-surface:#FFFEFC;--style-soft:#F8E9D0;
 --style-ink:#3D2B3F;--style-muted:#776377;--style-line:#E4D5C2;--style-edge:#BAA6BD;
 --style-primary:#63376F;--style-primary-dark:#502C61;--style-primary-soft-text:#6C4675;
 --style-amber:#AA6825;--style-amber-soft:#F8EBD7;--style-danger:#A74444;--style-blue:#326A9C;--style-shadow:#3D2B3F;--role-n1:var(--style-amber);--role-n2:var(--style-primary);
 --style-accent:#92551C;--style-action:var(--style-primary);--style-action-hover:var(--style-primary-dark);--style-action-ink:#FFFEFC;
 color-scheme:light;color:var(--style-ink);background:var(--style-paper);
}
:root[data-appearance="night"]{
 --style-paper:#211A28;--style-canvas:#251D2D;--style-surface:#302538;--style-soft:#48392D;
 --style-ink:#F5EEF7;--style-muted:#C5B5CC;--style-line:#65503C;--style-edge:#826F8E;
 --style-primary:#C2A0D1;--style-primary-dark:#D1B6DB;--style-primary-soft-text:#C9ACD6;
 --style-amber:#E9B967;--style-amber-soft:#483927;--style-danger:#F2A2A2;--style-blue:#90C5F0;--style-shadow:#000000;--role-n1:var(--style-amber);--role-n2:var(--style-primary);
 --style-accent:#E9B967;--style-action:#E9B967;--style-action-hover:#F4C777;--style-action-ink:#2B211B;
 color-scheme:dark;
}
html,body{background:var(--style-paper);color:var(--style-ink)}
.workspace,.section-page{background:var(--style-paper)}
.home-map,.graph-wrap,.map-empty,.lab-map{background-color:var(--style-canvas)}
.workspace-header,.home-footer,.work-panel,.workspace-menu,dialog,input,select,textarea{background-color:var(--style-surface);color:var(--style-ink)}
.workspace-header,.home-footer,.work-panel,.workspace-menu,dialog,input,select,textarea{border-color:var(--style-line)}
.home-map .graph-wrap{background-image:radial-gradient(color-mix(in srgb,var(--style-edge) 28%,transparent) .8px,transparent .8px)}
button,a,input,select,textarea{transition:background-color .18s,color .18s,border-color .18s}
.style-lab-brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--style-ink)}
.style-lab-brand small{display:block;font-size:9px;letter-spacing:.1em;font-weight:500;color:var(--style-muted);margin-top:2px}
.style-mode-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;min-width:88px;padding:8px 12px;border:1px solid var(--style-line);border-radius:22px;background:var(--style-soft);color:var(--style-accent);font-size:12px;font-weight:600;cursor:pointer;flex-shrink:0}
.style-mode-toggle svg{width:17px;height:17px;flex-shrink:0}
.style-mode-toggle:hover{border-color:var(--style-primary)}
.style-mode-toggle:focus-visible{outline:3px solid var(--style-amber);outline-offset:3px}
.style-icon-day,.style-label-day{display:none}
[data-appearance="night"] .style-icon-day,[data-appearance="night"] .style-label-day{display:block}
[data-appearance="night"] .style-icon-night,[data-appearance="night"] .style-label-night{display:none}
.style-local-note{font-size:11px;color:var(--style-muted)}
.btn.primary,.d-avatar-editor .d-primary{background:var(--style-action);color:var(--style-action-ink);border-color:var(--style-action)}
[data-appearance="night"] .btn.primary,[data-appearance="night"] .d-avatar-editor .d-primary{color:var(--style-action-ink)}
.btn.primary:hover{background:var(--style-action-hover);border-color:var(--style-action-hover)}
.btn.selection-shortcut{background:var(--style-soft)!important;border-color:var(--style-line)!important;color:var(--style-accent)}
.btn,.icon-button,.segment,.badge,.nav-item{color:var(--style-ink)}
.btn.quiet,.graph-corner,.home-legend,.quiet,.muted{color:var(--style-muted)}
.nav-item.active,.segment.active,.home-toolbar .segment.active{background:var(--style-soft);color:var(--style-accent)}
.badge.green{background:var(--style-soft);color:var(--style-accent)}
.badge.gold,.notice:not(.error):not(.info){background:var(--style-amber-soft);color:var(--style-amber)}
.graph-edge{stroke:var(--style-edge)}
.node-ring{fill:var(--style-surface);stroke:var(--style-line)}
.level-1 .node-ring{stroke:var(--role-n1)}
.level-2 .node-ring{stroke:var(--role-n2)}
.level-1 .level-dot{fill:var(--role-n1)}
.level-2 .level-dot{fill:var(--role-n2)}
.level-number{fill:var(--style-surface)}
[data-appearance="night"] .level-number{fill:#211A28}
.node-name{fill:var(--style-ink);stroke:var(--style-canvas)}
.graph-node.selected .node-halo,.graph-node:focus-visible .node-halo{fill:var(--style-soft);stroke:var(--style-amber)}
.graph-node.route-node:not(.selected) .node-halo{fill:var(--style-soft)}
.graph-self-marker .node-self-halo{stroke:var(--style-primary)}
.graph-self-marker text{fill:var(--style-primary);stroke:var(--style-canvas)}
.node-pin circle{fill:var(--style-surface);stroke:var(--style-line)}
.node-pin path{stroke:var(--style-primary)}
marker[id="arrow-neutral"] path{fill:var(--style-edge)}
dialog::backdrop{background:color-mix(in srgb,var(--style-shadow) 45%,transparent)}
.d-avatar-preview{background:var(--style-soft)}
[data-appearance="night"] input::placeholder,[data-appearance="night"] textarea::placeholder{color:var(--style-muted)}
[data-appearance="night"] .color-picker span,[data-appearance="night"] .avatar-picker .avatar{border-color:var(--style-surface)}
@media(max-width:900px){.workspace-header{gap:14px}.workspace-account{gap:8px}.style-mode-toggle{min-width:76px;padding:8px 10px}}
@media(max-width:600px){.style-mode-toggle{width:40px;min-width:40px;height:40px;padding:8px}.style-mode-toggle span{display:none!important}.workspace-account{gap:6px!important}.style-lab-brand small{font-size:8px}.style-lab-brand{display:none}}
@media(prefers-reduced-motion:reduce){button,a,input,select,textarea{transition:none}}

/* Colores de roles comunes a mapa, leyendas, equipos y laboratorio. */
.legend-dot.one,.role-dot.n1{background:var(--role-n1);border-color:var(--role-n1)}
.legend-dot.two,.role-dot.n2{background:var(--role-n2);border-color:var(--role-n2)}
.pill.role-1,.role-tag.one{background:var(--style-amber-soft);color:var(--role-n1)}
.pill.role-2,.role-tag.two{background:var(--style-soft);color:var(--role-n2)}
.site-header,.meeting-settings,.access-fullscreen{background-color:var(--style-surface);color:var(--style-ink)}
.button.primary,.calc-dialog button.primary,.calc-footer-actions button.primary,.preview-header button.primary{background:var(--style-action);border-color:var(--style-action);color:var(--style-action-ink)}
[data-appearance="night"] .button.primary,[data-appearance="night"] .calc-dialog button.primary,[data-appearance="night"] .calc-footer-actions button.primary{color:var(--style-action-ink)}
.access-card{background:var(--style-primary-dark);color:#FFFEFC}.access-card p,.access-card .step-label,.access-card .join-address,.access-card .join-address span{color:#FFF6E7}
[data-appearance="night"] .access-card{background:#502C61}
.access-qr,.big-qr{background:#fff}
.topic-row .field-help{grid-column:1 / -1}
.theme-switcher{margin-bottom:18px}.settings-section .theme-switcher select{width:100%}
.topic-row{scroll-margin-top:20px}
.meeting-contact-options{margin:16px 0}.meeting-contact-options summary{cursor:pointer;font-size:13px;color:var(--style-primary);padding:8px 0}.meeting-contact-options .group-rules{margin-top:8px}
@media(max-width:600px){.site-header{gap:8px}.header-right{gap:8px}.site-header .brand>span{font-size:16px}.site-header .header-right .text-link{max-width:95px}.settings-section .theme-switcher select{font-size:16px}}

/* Acentos discretos (Claro) y ciruela con miel (Noche), aprobados el 09-10-2026.
   Las acciones tienen su color propio; N1/N2 conservan su significado. */
.btn.soft,.button.light{color:var(--style-accent)}
.participant-tabs .active{background:var(--style-soft);color:var(--style-accent)}
.page-tab.active,.calc-tabs button[aria-pressed=true]{color:var(--style-accent);border-bottom-color:var(--style-accent)}
.nav-item.active:before{background:var(--style-accent)}
.button.primary:hover,.calc-dialog button.primary:hover,.calc-footer-actions button.primary:hover,.preview-header button.primary:hover{background:var(--style-action-hover);border-color:var(--style-action-hover)}
.selection-source .active{background:var(--style-action)!important;color:var(--style-action-ink)!important}
