/* Estilos del Radar de DJs. Vivian dentro de index.html; se separaron para que el HTML sea manejable.
   Una sola fuente de verdad: los tokens de tema estan al principio, en :root y las variantes de tema. */

/* ===== Sarapura Design System — tokens (brand-first) ===== */
:root{
  color-scheme:dark;
  --bg-canvas:#0b0b12; --bg-surface:#14141c; --bg-subtle:#1c1c26; --bg-inverse:#ffffff;
  --text-primary:#ffffff; --text-secondary:#9a9aab; --text-muted:#6e6e80; --text-inverse:#0b0b12; --text-onAccent:#ffffff;
  --border-default:#23232e; --border-strong:#33333f;
  --action-primary:#ffffff; --action-primaryText:#0b0b12; --action-secondary:#8b5cf6; --focus-ring:#8b5cf6; --overlay:#000000;
  --brand-navy:#142b3a; --brand-blue:#38bdf8; --brand-cyan:#22d3ee; --brand-violet:#8b5cf6; --brand-magenta:#ec4899; --brand-orange:#f59e0b;
  --status-success:#2dd4bf; --status-warning:#f59e0b; --status-danger:#ec4899; --status-info:#38bdf8;
  --status-successSoft:#14241e; --status-warningSoft:#241c12; --status-dangerSoft:#241320; --status-infoSoft:#12202c;
  --surface-containerLowest:#101018; --surface-containerLow:#14141c; --surface-container:#1c1c26; --surface-containerHigh:#23232e; --surface-containerHighest:#2c2c38; --surface-dim:#0b0b12; --surface-bright:#23232e;
  --outline:#33333f; --outline-variant:#23232e; --scrim:#000000;
  --grid-prev2-header:#4a2e2e; --grid-prev2-cell:#33201f; --grid-prev1-header:#40292a; --grid-prev1-cell:#2a1c1c;
  --grid-ese-header:#0f2230; --grid-ese-cell:#1c2733; --grid-next1-header:#2e4a36; --grid-next1-cell:#1e2c22; --grid-next2-header:#37543e; --grid-next2-cell:#24352a;
  --grid-libre:#5fbe6e; --grid-prevText:#e08a8a; --grid-nextText:#7fc98a; --grid-headerOnRose:#e8c4c4; --grid-headerOnGreen:#c8e6ce; --grid-headerOnNavy:#ffffff; --grid-unavail-header:#3a4250; --grid-unavail-text:#e6e9ee; --grid-unavail-cell:#1f1f1f;
  --radius-sm:6px; --radius-md:10px; --radius-lg:14px; --radius-xl:20px; --radius-full:999px;
  --gradient-primary:linear-gradient(90deg,#22d3ee 0%,#8b5cf6 50%,#ec4899 100%);
  --gradient-cool:linear-gradient(90deg,#2dd4bf 0%,#38bdf8 100%);
  --gradient-warm:linear-gradient(90deg,#f59e0b 0%,#ec4899 100%);
  --gradient-violetmagenta:linear-gradient(90deg,#8b5cf6 0%,#ec4899 100%);
  --gradient-hero:linear-gradient(135deg,#0b0b12 0%,#141026 60%,#241238 100%);
  --gradient-accentbar:linear-gradient(180deg,#22d3ee 0%,#8b5cf6 50%,#ec4899 100%);
  /* Destello del cartel de carga de la portada: el violeta de marca con un haz cian que lo recorre.
     Usa tokens que ya existen en los tres temas, asi que se adapta solo a cada tema. */
  --gradient-shimmer:linear-gradient(90deg,var(--brand-violet) 0%,var(--brand-violet) 38%,var(--neon-cyan) 50%,var(--brand-violet) 62%,var(--brand-violet) 100%);
  /* --- Biblioteca ampliada de gradientes (brand layer) ---
     Disponibles para usar, ninguno esta aplicado por defecto: los de arriba siguen mandando.
     Se usan igual que los otros, poniendo el nombre del token en un background. */
  /* Frios: tecnologia, datos, producto */
  --gradient-electricocean:linear-gradient(90deg,#23d3ee 0%,#38bdf8 50%,#8b5cf6 100%);
  --gradient-digitalaurora:linear-gradient(90deg,#2dd4bf 0%,#23d3ee 50%,#8b5cf6 100%);
  --gradient-cyberviolet:linear-gradient(90deg,#38bdf8 0%,#8b5cf6 50%,#ec4899 100%);
  --gradient-tropicalelectric:linear-gradient(90deg,#2dd4bf 0%,#38bdf8 50%,#8b5cf6 100%);
  --gradient-aquapulse:linear-gradient(90deg,#06b6d4 0%,#23d3ee 50%,#2dd4bf 100%);
  /* Marca y nightlife */
  --gradient-sarapurapulse:linear-gradient(90deg,#8b5cf6 0%,#ec4899 50%,#f97316 100%);
  --gradient-neonnight:linear-gradient(90deg,#23d3ee 0%,#8b5cf6 50%,#ec4899 100%);
  --gradient-purpleheat:linear-gradient(90deg,#8b5cf6 0%,#d946ef 50%,#ec4899 100%);
  --gradient-ultraviolet:linear-gradient(90deg,#6366f1 0%,#8b5cf6 33%,#d946ef 66%,#ec4899 100%);
  --gradient-futureclub:linear-gradient(90deg,#2dd4bf 0%,#23d3ee 33%,#8b5cf6 66%,#ec4899 100%);
  /* Calidos: eventos, campanas, highlights */
  --gradient-sunsetenergy:linear-gradient(90deg,#f59e0b 0%,#f97316 50%,#ec4899 100%);
  --gradient-goldenmagenta:linear-gradient(90deg,#f59e0b 0%,#ec4899 50%,#8b5cf6 100%);
  --gradient-hotsignal:linear-gradient(90deg,#f59e0b 0%,#f97316 33%,#ec4899 66%,#8b5cf6 100%);
  --gradient-solarflare:linear-gradient(90deg,#facc15 0%,#f59e0b 50%,#ec4899 100%);
  /* Verdes: exito, crecimiento, experimental */
  --gradient-electriclime:linear-gradient(90deg,#84cc16 0%,#2dd4bf 50%,#23d3ee 100%);
  --gradient-acidclub:linear-gradient(90deg,#a3e635 0%,#2dd4bf 50%,#23d3ee 100%);
  /* --- Expansion: segunda tanda, mas profunda y contrastada --- */
  --gradient-deepcurrent:linear-gradient(90deg,#0d1b2a 0%,#1e3a8a 50%,#22d3ee 100%);
  --gradient-midnightbloom:linear-gradient(90deg,#3b0764 0%,#7c3aed 50%,#ec4899 100%);
  --gradient-oceandrive:linear-gradient(90deg,#14b8a6 0%,#38bdf8 50%,#6366f1 100%);
  --gradient-duskglow:linear-gradient(90deg,#f97316 0%,#fb7185 50%,#fcd34d 100%);
  --gradient-neonsunset:linear-gradient(90deg,#8b5cf6 0%,#ec4899 50%,#f59e0b 100%);
  --gradient-aurorabreeze:linear-gradient(90deg,#0d9488 0%,#5eead4 50%,#e0f2fe 100%);
  --gradient-clublights:linear-gradient(90deg,#1e1b4b 0%,#6d28d9 50%,#fb7185 100%);
  --gradient-electricnight:linear-gradient(90deg,#0ea5e9 0%,#4f46e5 50%,#a855f7 100%);
  --gradient-arcticflow:linear-gradient(90deg,#06b6d4 0%,#22d3ee 50%,#3b82f6 100%);
  --gradient-cottonlight:linear-gradient(90deg,#d946ef 0%,#fb7185 50%,#fdba74 100%);
  --gradient-heatwave:linear-gradient(90deg,#7c3aed 0%,#be185d 50%,#f97316 100%);
  --gradient-junglepulse:linear-gradient(90deg,#0f766e 0%,#65a30d 50%,#a3e635 100%);
  --gradient-voltageshift:linear-gradient(90deg,#1d4edb 0%,#7c3aed 50%,#f43f5e 100%);
  --gradient-aquadepth:linear-gradient(90deg,#1e293b 0%,#06b6d4 50%,#2dd4bf 100%);
  --gradient-solarwind:linear-gradient(90deg,#4f46e5 0%,#ec4899 50%,#facc15 100%);
  --gradient-phantommint:linear-gradient(90deg,#0b132b 0%,#14b8a6 50%,#f0fdfa 100%);
  --neon-cyan:#22d3ee; --neon-blue:#38bdf8; --neon-violet:#8b5cf6; --neon-magenta:#ec4899; --neon-teal:#2dd4bf; --neon-amber:#f59e0b;
--por-ring:#33333f; --por-ring2:#8b5cf6; --por-spoke:#23232e; --por-vinilo:#0b0b12; --por-sweep:#22d3ee; --por-beam:#a5f3fc; --por-lima:#a3e635;
  --font-sans:'Futura PT','Jost',system-ui,sans-serif;
  /* --- alias del Radar → design tokens (mismo nombre = usa el del sistema) --- */
  --bg:var(--bg-canvas); --bg-pattern-op:0;
  --surface:var(--bg-surface); --surface-2:var(--surface-container); --surface-3:var(--bg-subtle); --surface-hover:var(--surface-containerHigh);
  --input-bg:var(--bg-subtle);
  --text:var(--text-primary); --text-soft:var(--text-secondary); --text-dim:var(--text-muted);
  --border:var(--border-default); --border-input:var(--border-strong); --border-soft:var(--border-default);
  --heading:var(--text-primary); --accent:var(--action-secondary); --accent-hover:var(--brand-magenta); --accent-ink:var(--text-onAccent);
  --link:var(--brand-blue); --chip-bg:var(--surface-containerHigh); --chip-border:var(--border-default); --hl-ink:#ffffff;
  --shadow-sm:0 1px 3px rgba(0,0,0,.5); --shadow-md:0 14px 40px rgba(0,0,0,.6);
}
[data-theme="light"]{
  color-scheme:light;
  --bg-canvas:#fafafa; --bg-surface:#ffffff; --bg-subtle:#f5f5f5; --bg-inverse:#1a1a1a;
  --text-primary:#1a1a1a; --text-secondary:#525252; --text-muted:#737373; --text-inverse:#ffffff; --text-onAccent:#ffffff;
  --border-default:#e5e5e5; --border-strong:#d4d4d4;
  --action-primary:#1a1a1a; --action-primaryText:#ffffff; --action-secondary:#235789; --focus-ring:#235789;
  --brand-navy:#142b3a; --brand-blue:#235789; --brand-cyan:#16b8c4; --brand-violet:#7656d6; --brand-magenta:#d62976; --brand-orange:#f26b38;
  --status-success:#21865a; --status-warning:#b7791f; --status-danger:#c63d4a; --status-info:#2d6fa3;
--por-ring:#d4d4d4; --por-ring2:#7656d6; --por-spoke:#e5e5e5; --por-vinilo:#ffffff; --por-sweep:#16b8c4; --por-beam:#0e7490; --por-lima:#4d7c0f;
  --status-successSoft:#d8ede2; --status-warningSoft:#f7ead2; --status-dangerSoft:#f6dbde; --status-infoSoft:#d9e6f1;
  --surface-containerLowest:#ffffff; --surface-containerLow:#fafafa; --surface-container:#f5f5f5; --surface-containerHigh:#ececec; --surface-containerHighest:#e5e5e5; --surface-dim:#ececec; --surface-bright:#fcfcfc;
  --outline:#737373; --outline-variant:#e5e5e5;
  --grid-prev2-header:#c99696; --grid-prev2-cell:#dfbdbd; --grid-prev1-header:#e0bdbd; --grid-prev1-cell:#f0dbdb;
  --grid-ese-header:#142b3a; --grid-ese-cell:#e4eaf1; --grid-next1-header:#93c29e; --grid-next1-cell:#d6e9d8; --grid-next2-header:#86ba92; --grid-next2-cell:#c2dec6;
  --grid-libre:#2e7d32; --grid-prevText:#a33c3c; --grid-nextText:#2e6b37; --grid-headerOnRose:#5a2626; --grid-headerOnGreen:#234a2b; --grid-headerOnNavy:#ffffff; --grid-unavail-header:#5f6b7a; --grid-unavail-text:#ffffff; --grid-unavail-cell:#ececec;
  --hl-ink:#233043;
}
[data-theme="dark"]{
  color-scheme:dark;
  --accent:#2f6ea8; --bg-canvas:#111111; --bg-surface:#1a1a1a; --bg-subtle:#262626; --bg-inverse:#ffffff;
  --text-primary:#ffffff; --text-secondary:#d4d4d4; --text-muted:#a3a3a3; --text-inverse:#1a1a1a; --text-onAccent:#ffffff;
  --border-default:#404040; --border-strong:#525252;
  --action-primary:#ffffff; --action-primaryText:#1a1a1a; --action-secondary:#5fa0d3; --focus-ring:#7eb7e2;
  --brand-navy:#142b3a; --brand-blue:#5fa0d3; --brand-cyan:#16b8c4; --brand-violet:#7656d6; --brand-magenta:#d62976; --brand-orange:#f26b38;
  --status-success:#3fb07e; --status-warning:#e0a94a; --status-danger:#e4707b; --status-info:#6ba6d6;
--por-ring:#404040; --por-ring2:#7656d6; --por-spoke:#262626; --por-vinilo:#111111; --por-sweep:#16b8c4; --por-beam:#5eead4; --por-lima:#a3e635;
  --status-successSoft:#262626; --status-warningSoft:#262626; --status-dangerSoft:#262626; --status-infoSoft:#262626;
  --surface-containerLowest:#000000; --surface-containerLow:#171717; --surface-container:#1f1f1f; --surface-containerHigh:#262626; --surface-containerHighest:#333333; --surface-dim:#0b0b0b; --surface-bright:#333333;
  --outline:#a3a3a3; --outline-variant:#404040;
  --grid-prev2-header:#4a2e2e; --grid-prev2-cell:#33201f; --grid-prev1-header:#40292a; --grid-prev1-cell:#2a1c1c;
  --grid-ese-header:#0f2230; --grid-ese-cell:#1c2733; --grid-next1-header:#2e4a36; --grid-next1-cell:#1e2c22; --grid-next2-header:#37543e; --grid-next2-cell:#24352a;
  --grid-libre:#5fbe6e; --grid-prevText:#e08a8a; --grid-nextText:#7fc98a; --grid-headerOnRose:#e8c4c4; --grid-headerOnGreen:#c8e6ce; --grid-headerOnNavy:#ffffff; --grid-unavail-header:#3a4250; --grid-unavail-text:#e6e9ee; --grid-unavail-cell:#1f1f1f;
  --hl-ink:#233043;
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--font-sans);background:var(--bg);color:var(--text);font-size:14px}
/* Los controles de formulario no heredan la fuente por defecto del navegador: sin esta regla quedan en tipografia de sistema en vez de la de marca */
input,select,textarea,button{font-family:inherit}
body::before{content:"";position:fixed;inset:0;z-index:-1;background:url('/bg-pattern.jpg') center center / cover no-repeat;opacity:var(--bg-pattern-op);pointer-events:none}
.wrap{max-width:1180px;margin:0 auto;padding:18px}
/* Área segura de iOS/Android (notch y barra de estado) — evita que el header quede tapado en modo app */
@supports (padding-top: env(safe-area-inset-top)){
  .wrap{padding-top:calc(18px + env(safe-area-inset-top));padding-left:calc(18px + env(safe-area-inset-left));padding-right:calc(18px + env(safe-area-inset-right))}
  .tabs{padding-top:calc(10px + env(safe-area-inset-top));padding-bottom:calc(10px + env(safe-area-inset-bottom))}
  #loginOverlay,#firstRunOverlay{padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:calc(16px + env(safe-area-inset-bottom))}
  .pwr-footer{padding-bottom:calc(22px + env(safe-area-inset-bottom))}
  .modal-bg{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
}
.head{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:10px;border-bottom:3px solid var(--brand-violet);padding-bottom:10px;margin-bottom:14px}
.head-title{flex:1 1 auto;min-width:0}
.head-right{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.themeswitch{background:none;border:0;padding:0;cursor:pointer;line-height:0}
.ts-track{display:inline-flex;align-items:center;width:54px;height:29px;border-radius:999px;background:var(--surface-containerHigh);border:1px solid var(--border-strong);padding:3px;box-sizing:border-box}
.ts-knob{width:23px;height:23px;border-radius:50%;background:var(--action-secondary);display:flex;align-items:center;justify-content:center;font-size:12px;transition:transform .2s ease;transform:translateX(0)}
html:not([data-theme="light"]) .ts-knob{transform:translateX(25px)}
.title{font-size:30px;margin:0;color:var(--text-primary)}
.gradtext{background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;color:transparent}
.wm-mask{background:var(--gradient-primary)}
html:not([data-theme="light"]) .wm-mask{background:#fff}
html:not([data-theme="light"]) #centerBrand .slogo path{fill:#fff}
.pwr{display:flex;align-items:center;justify-content:center;gap:10px;font-size:15px;font-weight:700;letter-spacing:.3px}
.pwr .protier-logo{display:inline-block;width:34px;height:35px;background:currentColor;-webkit-mask:url(data:image/png;base64,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) center/contain no-repeat;mask:url(data:image/png;base64,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) center/contain no-repeat}
.pwr-footer{background:var(--brand-navy);color:#fff;margin-top:26px;padding:22px 16px}
html:not([data-theme="light"]) .pwr-footer{background:#eef1f4;color:var(--brand-navy)}
.pwr-footer .protier-logo{width:46px;height:47px}
.pwr-footer b{font-weight:800}
.pwr-login{color:#fff;margin-top:16px;font-size:15px}
.pwr-login .protier-logo{width:54px;height:55px}
.brand{font-family:'Anton',Arial,sans-serif;font-weight:400;letter-spacing:.8px;text-transform:uppercase}
.brand .emoji{font-family:Arial,sans-serif;text-transform:none}
.sub{color:var(--text-muted);font-size:12.5px;margin-top:4px}
.upd{font-size:10px;color:var(--text-muted);text-align:right;flex:1 1 100%;line-height:1.25;margin-top:1px}
.side-bottom .upd{flex:0 0 auto}
.upd b{color:var(--text-soft);font-weight:600}
.layout{display:block}
.content{width:100%;min-width:0}
.tabs{position:fixed;left:0;top:0;bottom:0;z-index:200;width:min(86vw,300px);display:flex;flex-direction:column;gap:3px;background:#1a1a1a;border-right:1px solid #404040;padding:10px 8px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;transform:translateX(-100%);transition:transform .22s ease;
  --bg-canvas:#111111;--bg-surface:#1a1a1a;--bg-subtle:#262626;--text-primary:#ffffff;--text-secondary:#d4d4d4;--text-muted:#a3a3a3;--border-default:#404040;--border-strong:#525252;--action-secondary:#5fa0d3;--text-onAccent:#ffffff;--surface-container:#1f1f1f;--surface-containerHigh:#262626;--surface-containerHighest:#333333;--surface-2:#1f1f1f;--surface-3:#262626;--surface-hover:#262626}
body.nav-open .tabs{transform:translateX(0)}
body.nav-open .navscrim{display:block}
.tab{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:10px 12px;border:0;background:transparent;border-radius:9px;cursor:pointer;font-weight:400;font-size:13.5px;font-family:inherit;color:#d4d4d4;line-height:1.2}
.tab:hover{background:#262626;color:#ffffff}
.tab:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.tab-soon{border:1px dashed #5a5a5a !important;opacity:.72}
.tab-soon .lbl{font-style:italic}
.tab-soon:hover{opacity:.95}
.soon{margin-left:auto;background:var(--gradient-warm);color:#fff;font-size:9px;font-weight:800;letter-spacing:.08em;border:0;border-radius:5px;padding:2px 6px;flex:0 0 auto;text-shadow:0 1px 1px rgba(0,0,0,.18)}
    .nuevo{margin-left:auto;background:var(--gradient-acidclub);color:#0b2b1f;font-size:9px;font-weight:800;letter-spacing:.08em;border:0;border-radius:5px;padding:2px 6px;flex:0 0 auto;text-shadow:0 1px 0 rgba(255,255,255,.35)}
.soonbox{max-width:560px;margin:6px auto;text-align:center;border:2px dashed var(--border-strong);border-radius:16px;padding:38px 26px;background:var(--surface-2)}
.soonbox-i{font-size:34px;line-height:1;margin-bottom:12px}
.soonbox-t{display:flex;align-items:center;justify-content:center;gap:9px;font-size:17px;font-weight:700;color:var(--heading);margin-bottom:12px}
.soonbox-t .soon{margin-left:0;font-size:10px;padding:3px 9px}
.soonbox-x{font-size:13.5px;color:var(--text-soft);line-height:1.65;max-width:430px;margin:0 auto 14px}
.soonbox-p{font-size:12px;color:var(--text-muted);padding-top:13px;border-top:1px solid var(--border)}
.side-group{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8f8f8f;padding:13px 12px 4px;pointer-events:none;user-select:none}
.side-group:first-of-type{padding-top:4px}
/* UX Fase 2 — ayuda colapsable por panel */
details.helpbox{margin:2px 2px 10px}
details.helpbox>summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;list-style:none;font-size:12px;color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:3px 11px;user-select:none}
details.helpbox>summary::-webkit-details-marker{display:none}
details.helpbox>summary:hover{background:var(--surface-hover);color:var(--text)}
details.helpbox[open]>summary{margin-bottom:7px}
details.helpbox .helpbody{font-size:12.5px;color:var(--text-soft);line-height:1.55;border-left:3px solid var(--border);padding-left:11px}
/* ===== Notas de la reunión musical ===== */
/* ventana de visualización de otro usuario */
.envmark{position:fixed;left:10px;bottom:10px;z-index:500;background:#2563eb;color:#fff;font-size:11px;font-weight:800;letter-spacing:.06em;border-radius:999px;padding:5px 12px;box-shadow:0 4px 14px rgba(0,0,0,.28);pointer-events:none}
.vabar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#e6a417;color:#1a1a1a;font-size:12.5px;font-weight:700;padding:9px 12px;border-radius:10px 10px 0 0}
.vaframe{border:1px solid var(--border);border-top:0;border-radius:0 0 10px 10px;overflow:hidden;background:var(--surface);height:min(72vh,760px);margin:0 auto;width:100%;transition:max-width .2s}
.vaframe.movil{border-radius:0 0 22px 22px;box-shadow:0 10px 34px rgba(0,0,0,.22)}
.vaframe iframe{width:100%;height:100%;border:0;display:block;background:var(--bg)}
/* dentro de la vista simulada no se muestra el propio simulador */
body.es-vista #tab-pruebas{display:none !important}
body.es-vista .vamark{position:fixed;left:8px;bottom:8px;z-index:500;background:#e6a417;color:#1a1a1a;font-size:10.5px;font-weight:800;border-radius:999px;padding:3px 10px;pointer-events:none;opacity:.9}
.flagcard{border:1px solid var(--border);border-radius:11px;padding:13px 15px;margin-bottom:11px;background:var(--surface)}
.flagcard-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-weight:800;color:var(--heading);font-size:14px;margin-bottom:4px}
.flagpill{font-size:10.5px;font-weight:800;border-radius:999px;padding:2px 9px;text-transform:uppercase;letter-spacing:.03em}
.flag-on{background:rgba(46,158,79,.16);color:#2e9e4f}
.flag-test{background:rgba(230,164,23,.18);color:#b57e0a}
.flag-off{background:var(--surface-3);color:var(--text-muted)}
.flagseg button{font-size:12px;padding:7px 12px}
@media(max-width:640px){ .flagseg{width:100%} .flagseg button{flex:1;padding:8px 6px} }
.djcard-acts{display:flex;align-items:center;gap:6px;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end}
.djcard-notas{white-space:nowrap;flex:0 0 auto}
@media(max-width:640px){
  .djcard{flex-wrap:wrap}
  .djcard-mid{flex:1 1 100%;min-width:0}
  .djcard-acts{flex:1 1 100%;flex-direction:row;justify-content:flex-end;gap:7px;margin-top:7px;padding-top:7px;border-top:1px dashed var(--border-soft)}
  .djcard-acts .btn{width:auto;flex:0 1 auto}
}
#notasModal .evbox{background:var(--surface);border-radius:14px;width:94%;max-height:88vh;overflow:hidden;box-shadow:var(--shadow-md);display:flex;flex-direction:column}
/* A esta card le faltaba el fondo: se transparentaba la pagina de atras */
#sugModal .evbox{background:var(--surface);border-radius:14px;width:94%;max-width:520px;max-height:88vh;overflow:hidden;box-shadow:var(--shadow-md);display:flex;flex-direction:column;border:1px solid var(--border)}
#sugModal .evbody{background:var(--surface)}
.blocktabs{display:flex;gap:6px;margin:0 0 12px;border-bottom:1px solid var(--border);padding-bottom:8px}
.blocktabs button{flex:1;border:1px solid var(--border);background:var(--surface-2);color:var(--text-soft);font-family:inherit;font-size:13px;font-weight:600;padding:9px 12px;border-radius:9px;cursor:pointer}
.blocktabs button.on{background:var(--gradient-primary);color:#fff;border-color:transparent}
.musbox{margin-top:12px;border:1px solid var(--border);border-radius:10px;padding:11px 13px;background:var(--surface-2)}
.musbox-h{font-size:12.5px;font-weight:800;color:var(--heading);margin-bottom:8px}
.musf{display:flex;flex-direction:column;gap:3px;margin-bottom:8px}
.musf span{font-size:11.5px;color:var(--text-muted);font-weight:600}
.musf input{width:100%;box-sizing:border-box;font-family:inherit;font-size:13.5px;padding:8px 10px;border:1px solid var(--border-input);border-radius:8px;background:var(--input-bg);color:var(--text)}
.tmtop{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.tmtop select{flex:1 1 150px;min-width:0;font-size:13px}
.cerbox{border:1px dashed var(--border-strong);border-radius:10px;padding:10px 12px;margin-bottom:11px;background:var(--surface-2);display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.cerbox.ok{border-style:solid;border-color:rgba(45,212,191,.5);background:rgba(45,212,191,.08)}
.cerq{font-size:13px;font-weight:700;color:var(--heading);flex:1 1 100%}
.tmrow-ro{padding:4px 0;font-size:12.5px;border-bottom:1px solid var(--border-soft)}
.tmrow-ro:last-child{border-bottom:0}
/* ===== Notas por bloques ===== */
.nbchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--text-soft);font-family:inherit;font-size:12.5px;font-weight:600;padding:6px 12px;cursor:grab;touch-action:none;user-select:none;white-space:nowrap}
.nbchip:hover{background:var(--surface-3);color:var(--text);border-color:var(--border-strong)}
.nbchip:active,.nbchip.tomado{cursor:grabbing;opacity:.5}
.nbchip-i{font-size:14px;line-height:1}
.nbfantasma{position:fixed;z-index:9999;transform:translate(-50%,-50%);pointer-events:none;background:var(--surface);border:1px solid var(--border-strong);border-radius:999px;padding:6px 13px;font-size:12.5px;font-weight:600;color:var(--text);box-shadow:var(--shadow-md)}

.nbdoc{display:flex;flex-direction:column;gap:9px;margin-bottom:14px;min-height:120px;border-radius:12px}
.nbdoc.recibiendo{outline:2px dashed var(--focus-ring);outline-offset:5px}
.tmb-dropin{outline:2px dashed var(--focus-ring);outline-offset:-3px}
.nbb-hoja{position:relative;background:var(--input-bg);border:1px solid var(--border);border-radius:12px;padding:10px}
.nbb-hoja .nbf-l{border:0;background:none;padding:6px 26px 6px 8px;font-size:14.5px;line-height:1.6;min-height:190px}
.nbb-hoja .nbf-l:focus{outline:none}
.nbb-drag.hoja{position:absolute;left:4px;top:8px;opacity:.35;font-size:13px}
.nbb-drag.hoja:hover{opacity:.8}
.nbb-x.hoja{position:absolute;right:7px;top:7px;opacity:.5}
.nbb-x.hoja:hover{opacity:1}
.nbb-hoja .nbf-l{padding-left:20px}

.nbtool{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--border);padding:10px 0 2px;margin-top:4px;z-index:3}
.nbtool-h{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}
.nbtool-b{display:flex;gap:6px;flex-wrap:wrap}
.nbtool-p{font-size:11px;color:var(--text-muted);margin-top:8px}
.nbvacio{text-align:center;color:var(--text-muted);font-size:12.5px;line-height:1.6;padding:26px 14px;border:1px dashed var(--border);border-radius:12px}
.nbb{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.nbb.arrastrando{opacity:.9;box-shadow:var(--shadow-md);position:relative;z-index:5}
.nbb.drop-arriba{box-shadow:0 -3px 0 0 var(--focus-ring)}
.nbb.drop-abajo{box-shadow:0 3px 0 0 var(--focus-ring)}
.nbb-h{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--surface-3);border-bottom:1px solid var(--border)}
.nbb-drag{cursor:grab;color:var(--text-muted);font-size:14px;line-height:1;padding:2px 1px;user-select:none;touch-action:none}
.nbb-drag:active{cursor:grabbing}
.nbb-i{font-size:14px;line-height:1}
.nbb-t{flex:1 1 auto;min-width:0;font-size:12.5px;font-weight:700;color:var(--heading)}
.nbb-x{width:24px;height:22px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-muted);font-size:11px;line-height:1;cursor:pointer;font-family:inherit;flex:0 0 auto}
.nbb-x:hover{background:#f5dcdc;color:#8a2020;border-color:#d9a5a5}
.nbb-c{padding:10px;display:flex;flex-direction:column;gap:7px;min-width:0;overflow:hidden}
.nbf,.nbf-l{width:100%;box-sizing:border-box;font-family:inherit;font-size:13.5px;padding:8px 10px;border:1px solid var(--border-input);border-radius:9px;background:var(--input-bg);color:var(--text)}
.nbf-l{line-height:1.5;resize:vertical}
.nbf:focus,.nbf-l:focus{outline:2px solid var(--focus-ring);outline-offset:1px}
.nblinks{display:flex;flex-direction:column;gap:5px}
.nblink{display:block;font-size:12px;color:var(--link);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 9px;text-decoration:none;word-break:break-all}
.nblink:hover{background:var(--surface-3)}
.nbper{display:flex;flex-direction:column;gap:8px}
/* grilla: los campos se acomodan solos y nunca se salen de la caja */
.nbper-r{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) 74px 26px;gap:6px;align-items:center}
.nbper-r input{width:100%;min-width:0;box-sizing:border-box;font-family:inherit;font-size:13px;padding:7px 9px;border:1px solid var(--border-input);border-radius:8px;background:var(--input-bg);color:var(--text)}
.nbper-r>span{width:26px}
.nbf-crece{overflow:hidden;min-height:88px}
@media(max-width:560px){
  .nbper-r{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"n n" "v a" "e x";padding:9px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
  .nbper-n{grid-area:n} .nbper-v{grid-area:v} .nbper-a{grid-area:a} .nbper-e{grid-area:e}
  .nbper-r .nbb-x,.nbper-r>span{grid-area:x;justify-self:end}
}
.nbpax{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.nbpax .nbf{flex:0 1 170px}
.nbpax-r{font-size:12.5px;color:var(--text-soft)}
@media(max-width:640px){
  .nbchip{font-size:12px;padding:6px 10px}
  .nbpax .nbf{flex:1 1 100%}
}
.tmstart{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:11px}
.tmstart label{font-size:12px;font-weight:650;color:var(--text-muted)}
.tmstart input[type=time]{font-family:inherit;font-size:15px;font-weight:650;padding:7px 10px;border:1px solid var(--border-input);border-radius:8px;background:var(--input-bg);color:var(--text)}
.tmstart-r{font-size:12.5px;color:var(--text-soft)}
.tmstart-r b{color:var(--text)}

.tmlist{display:flex;flex-direction:column;gap:7px;margin-bottom:11px}
.tmvacio{text-align:center;color:var(--text-muted);font-size:12.5px;line-height:1.6;padding:22px 12px;border:1px dashed var(--border);border-radius:11px}
.tmb{display:flex;align-items:flex-start;gap:9px;background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:9px 10px}
.tmb.cer{border-color:rgba(45,212,191,.55);background:rgba(45,212,191,.07)}
.tmb.anc{border-left:3px solid #c9803a}
.tmb.tmb-hijo.anc{border-left:0}
.nbref-cols{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.nbref-col{width:20px;height:20px;border-radius:999px;border:2px solid transparent;cursor:pointer;padding:0}
.nbref-col.on{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-surface)}
.nbref-colwrap{margin-top:8px}
.nbref-colbtn{width:22px;height:22px;border-radius:999px;border:2px solid var(--border-strong);cursor:pointer;list-style:none;display:inline-block;vertical-align:middle}
.nbref-colwrap>summary::-webkit-details-marker{display:none}
.nbref-colwrap[open]>summary{margin-bottom:6px}
/* Momento anidado dentro de un bloque: sangria + guia vertical */
.tmb-hijo{margin-left:22px;position:relative}
.tmb-hijo::before{content:"";position:absolute;left:-13px;top:2px;bottom:2px;width:2px;background:var(--border-strong);border-radius:2px}
/* Colapsar hijos de un bloque */
.tmb-oculto{display:none}
.tmb-caret{background:none;border:0;color:var(--text-muted);cursor:pointer;font-size:11px;line-height:1;padding:2px 5px;border-radius:6px}
.tmb-caret:hover{background:var(--surface-container)}
.tmb-caret,.tmb-caret-hueco{display:inline-block;width:22px;text-align:center;box-sizing:border-box}
.tmb-caret-hueco{visibility:hidden}
/* Aviso transitorio del timing (desanidado / conflicto) */
.tm-aviso{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);max-width:90%;background:var(--surface-containerHigh);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:10px;padding:10px 14px;font-size:13px;z-index:99999;opacity:0;pointer-events:none;transition:opacity .18s ease}
.tm-aviso.on{opacity:1}
@media (prefers-reduced-motion:reduce){.tm-aviso{transition:none}}
.tmb.arrastrando{opacity:.9;box-shadow:var(--shadow-md);position:relative;z-index:5;cursor:grabbing}
.tmb.drop-arriba{box-shadow:0 -3px 0 0 var(--focus-ring)}
.tmb.drop-abajo{box-shadow:0 3px 0 0 var(--focus-ring)}
.tmb-drag{flex:0 0 auto;cursor:grab;color:var(--text-muted);font-size:15px;line-height:1;padding:7px 3px;user-select:none;touch-action:none}
.tmb-drag:active{cursor:grabbing}
.tmarranque{padding:6px 2px}
.tmarranque-t{font-size:15px;font-weight:700;color:var(--heading);margin-bottom:5px}
.tmarranque-s{font-size:12.5px;color:var(--text-soft);line-height:1.5;margin-bottom:14px;max-width:520px}
.tmarranque-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:13px}
.tmpl{position:relative;text-align:left;font-family:inherit;font-size:13.5px;font-weight:650;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:13px 14px;cursor:pointer}
.tmpl:hover{border-color:var(--border-strong);background:var(--surface-3)}
.tmpl.sug{border-color:var(--focus-ring)}
.tmpl-s{display:block;font-size:10.5px;font-weight:600;color:var(--link);margin-top:3px;text-transform:uppercase;letter-spacing:.4px}
.tmarranque-o{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}

.tmbar{display:flex;align-items:center;gap:11px;flex-wrap:wrap;background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:9px 12px;margin-bottom:11px}
.tmbar-i{display:flex;align-items:center;gap:7px}
.tmbar-i label{font-size:11.5px;font-weight:650;color:var(--text-muted)}

.tmbar-t{font-size:12.5px;color:var(--text-soft);display:flex;gap:6px;align-items:center}
.tmbar-t b{color:var(--text)}
.tmbar-t span{color:var(--text-muted)}
.tmbar-a{margin-left:auto;display:flex;gap:6px;align-items:center}
.tmbar-a select{font-family:inherit;font-size:12.5px;padding:6px 8px;border:1px solid var(--border-input);border-radius:8px;background:var(--input-bg);color:var(--text)}
.tmmenu{position:relative}
.tmmenu>summary{list-style:none;cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-soft);font-size:16px;line-height:1}
.tmmenu>summary::-webkit-details-marker{display:none}
.tmmenu>summary:hover{background:var(--surface-3);color:var(--text)}
.tmmenu-b{position:absolute;right:0;top:calc(100% + 4px);z-index:6;min-width:210px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-md);overflow:hidden;display:flex;flex-direction:column}
.tmmenu-b button{border:0;background:none;text-align:left;font-family:inherit;font-size:12.5px;color:var(--text);padding:10px 13px;cursor:pointer}
.tmmenu-b button:hover{background:var(--surface-3)}
.tmmenu-b button.rojo{color:#a33}
.tmmenu-b button.rojo:hover{background:#f5dcdc}

.tmb-hh{display:inline-flex;align-items:center;gap:5px;background:var(--surface-3);border-radius:8px;padding:3px 7px}
.hh24{font-family:inherit;font-size:13px;font-weight:650;text-align:center;padding:5px 4px;border:1px solid var(--border-input);border-radius:7px;background:var(--input-bg);color:var(--text);width:62px;letter-spacing:.5px}
.hh24:focus{outline:2px solid var(--focus-ring);outline-offset:1px}
.hh24-g{font-size:15px;width:74px;padding:7px 5px}
.tmb-hh input{border-color:transparent}
.tmb-hh input:focus{border-color:var(--focus-ring);outline:none}
.tmb-a1{font-size:11.5px;color:var(--text-muted)}
.tmb-fijo{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--text-muted);cursor:pointer;padding:5px 9px;border:1px solid var(--border);border-radius:999px;background:var(--surface);white-space:nowrap}
.tmb-fijo.on{background:#f6e5cf;color:#8a5320;border-color:#d8a978;font-weight:650}
.tmb-nota{font-size:11px;color:#8a5320;line-height:1.4}
.tmb-m{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px}
.tmb-tit{width:100%;box-sizing:border-box;font-family:inherit;font-size:13.5px;font-weight:600;padding:7px 9px;border:1px solid var(--border-input);border-radius:8px;background:var(--input-bg);color:var(--text)}
.tmb-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.tmb-dur{font-family:inherit;font-size:12px;padding:5px 7px;border:1px solid var(--border-input);border-radius:7px;background:var(--input-bg);color:var(--text-soft)}
.tmb-det{font-size:11.5px;color:var(--text-soft);line-height:1.45}
.tmb-a{flex:0 0 auto;display:flex;flex-direction:column;gap:3px}
.tmb-x{width:26px;height:24px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text-muted);font-size:12px;line-height:1;cursor:pointer;font-family:inherit}
.tmb-x:hover{background:var(--surface-3);color:var(--text)}
.tmb-x.del:hover{background:#f5dcdc;color:#8a2020;border-color:#d9a5a5}
@media(max-width:640px){
  .tmb{flex-wrap:wrap}
  .tmb-m{flex:1 1 calc(100% - 110px)}
  .tmb-a{flex-direction:row}
}
.tmacts{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:4px}
.tmpegar{margin-top:10px;border:1px solid var(--border);border-radius:10px;padding:11px 12px;background:var(--surface-2)}
.tmpegar textarea{width:100%;box-sizing:border-box;font-family:inherit;font-size:13.5px;padding:9px;border:1px solid var(--border-input);border-radius:8px;background:var(--input-bg);color:var(--text)}
.tmshare{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:14px;padding-top:11px;border-top:1px solid var(--border)}
.notabar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:7px;flex-wrap:wrap}
.notabar-a{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:640px){ .notabar-a{width:100%} .notabar-a .btn{flex:1 1 auto} }
.notastat{font-size:11.5px;color:var(--text-muted)}
.notacard{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:8px;background:var(--surface-2)}
.notacard-h{font-size:12.5px;font-weight:700;color:var(--heading);margin-bottom:5px}
.notatxt{font-size:13px;line-height:1.55;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}
.notatxt a{color:var(--link);text-decoration:underline}
/* ===== Selector Fecha puntual / Período ===== */
.segmode{display:inline-flex;background:var(--surface-3);border:1px solid var(--border);border-radius:999px;padding:2px;gap:2px}
.segmode button{border:0;background:transparent;color:var(--text-soft);font-family:inherit;font-size:12.5px;font-weight:600;padding:6px 14px;border-radius:999px;cursor:pointer;line-height:1.1;white-space:nowrap}
.segmode button.on{background:var(--gradient-primary);color:#fff}
.segmode button:not(.on):hover{color:var(--text)}
@media(max-width:640px){ .segmode{width:100%} .segmode button{flex:1} }
/* ===== Solicitudes de no disponibilidad (DJ ⇄ agencia) ===== */
.tabbadge{margin-left:auto;background:#e6a417;color:#1a1a1a;font-size:10.5px;font-weight:800;border-radius:999px;padding:1px 7px;flex:0 0 auto}
.ntreq-form{background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:13px 15px}
.ntreq-row{display:flex;gap:14px;flex-wrap:wrap}
.rqcheck{display:flex;align-items:flex-start;gap:9px;margin-top:11px;padding:10px 12px;border-radius:9px;font-size:13px;line-height:1.45;border:1px solid}
.rqcheck .rqi{font-size:16px;line-height:1;flex:0 0 auto}
.rqcheck b{font-weight:700}
.rq-libre{background:rgba(46,158,79,.10);border-color:rgba(46,158,79,.42);color:var(--text)}
.rq-aconfirmar{background:rgba(230,164,23,.12);border-color:rgba(230,164,23,.45);color:var(--text)}
.rq-confirmado{background:rgba(208,64,43,.10);border-color:rgba(208,64,43,.42);color:var(--text)}
.rq-evs{margin-top:5px;font-size:12px;color:var(--text-soft)}
.rqcard{border:1px solid var(--border);border-radius:11px;padding:12px 14px;margin-bottom:10px;background:var(--surface)}
.rqcard.pend{border-left:4px solid #e6a417}
.rqcard.ok{border-left:4px solid #2e9e4f}
.rqcard.no{border-left:4px solid #d0402b}
.rqcard-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:5px}
.rqcard-dj{font-weight:800;color:var(--heading);font-size:14.5px}
.rqcard-per{font-size:13px;color:var(--text);font-weight:600}
.rqcard-when{font-size:11px;color:var(--text-muted)}
.rqcard-motivo{font-size:12.5px;color:var(--text-soft);background:var(--surface-2);border-radius:8px;padding:7px 10px;margin:6px 0;line-height:1.45}
.rqcard-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px;align-items:center}
.rqsec-t{font-size:12.5px;font-weight:800;color:var(--heading);margin:0 0 8px;display:flex;align-items:center;gap:7px}
@media(max-width:640px){ .ntreq-row .fld{flex:1 1 100%} .ntreq-row input[type=date]{width:100%} }
.tab:hover{background:var(--surface-hover);color:var(--text-primary)}
.tab.active{background:var(--gradient-primary);color:#fff}
.tab .ic{flex:0 0 auto;width:22px;display:flex;align-items:center;justify-content:center}
.tab .ic svg{display:block}
.tab .lbl{flex:1 1 auto;min-width:0}
.tab .cal-check{flex:0 0 auto;font-size:13px}
.side-logo{text-align:center;padding:8px 4px 12px;margin-bottom:6px;border-bottom:1px solid #404040;line-height:0}
.slogo{display:inline-block;vertical-align:middle}
#mainTitle{display:flex;align-items:center;margin:0}
.mt-radar{font-family:var(--font-sans);font-weight:800;font-size:27px;letter-spacing:.3px}
@media(max-width:640px){
  #mainTitle .mt-radar{display:none}
  #centerBrand{display:block !important}
}
@media(min-width:641px){
  #centerBrand{display:block !important}
}
.navtoggle{display:inline-flex;align-items:center;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;color:transparent;border:0;font-size:27px;font-weight:700;line-height:1;cursor:pointer;padding:0 2px;flex:0 0 auto}
.navscrim{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:199;touch-action:none;overscroll-behavior:none}
/* Con el cajon abierto el documento no se mueve: si no, el primer deslizamiento scrollea el cajon
   y el segundo se va a la pagina de atras, y el cajon parece trabado. */
body.nav-lock{position:fixed;left:0;right:0;width:100%;overflow:hidden}
.side-bottom{display:flex;flex-direction:column;gap:8px;padding:10px 6px calc(8px + env(safe-area-inset-bottom,0px));margin-top:auto;border-top:1px solid var(--border);position:sticky;bottom:0;background:#1a1a1a;z-index:2;flex:0 0 auto}
.side-account{position:relative}
.side-user{width:100%;display:flex;align-items:center;justify-content:space-between;gap:6px;background:#33334a;border:1px solid #6f6fa0;border-radius:9px;padding:11px 12px;font-size:13px;font-weight:700;color:#ffffff;cursor:pointer;overflow:hidden;text-align:left}
.side-user:hover{background:#3d3d59;border-color:#8b8bd0}
.side-user #userLbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.side-user .chev{flex:0 0 auto;opacity:.7}
.side-usermenu{display:none;position:absolute;bottom:calc(100% + 4px);left:0;right:0;z-index:5;background:#232323;border:1px solid #4a4a4a;border-radius:9px;overflow:hidden;box-shadow:0 14px 40px rgba(0,0,0,.6)}
.side-usermenu.open{display:block}
.side-usermenu button{width:100%;text-align:left;background:none;border:0;padding:9px 11px;font-size:13px;color:#ffffff;cursor:pointer;font-weight:600;font-family:inherit}
.side-usermenu button:hover{background:#2e2e2e}
.side-reload{background:var(--gradient-primary);color:#fff;border:0;border-radius:9px;padding:9px;font-weight:600;cursor:pointer;font-size:13px;font-family:inherit}
.side-reload:hover{filter:brightness(1.08)}
.side-bottom .upd{font-size:10px;color:#a3a3a3;text-align:center;margin:0}
.side-bottom{border-top-color:#404040}
/* ===== Usuarios y permisos ===== */
.uhead{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:2px 2px 14px}
.uhead-t{font-size:16px;font-weight:700;color:var(--heading)}
.uhead-s{font-size:12.5px;color:var(--text-soft);margin-top:3px;max-width:520px;line-height:1.45}
.uhead .btn{margin-left:auto}
.ubar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0 2px 14px}
.ubar input{flex:1 1 220px;min-width:0;font-size:13px;padding:8px 11px;border:1px solid var(--border-input);border-radius:9px;background:var(--input-bg);color:var(--text)}
.useg{display:inline-flex;border:1px solid var(--border);border-radius:9px;overflow:hidden;background:var(--surface-2)}
.useg button{border:0;background:none;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--text-soft);padding:8px 13px;cursor:pointer}
.useg button+button{border-left:1px solid var(--border)}
.useg button.on{background:var(--gradient-primary);color:#fff}

.ucard{background:var(--surface-2);border:1px solid var(--border);border-radius:12px}
.ulist{display:flex;flex-direction:column;gap:9px}
.urow{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px}
.urow-m{flex:1 1 auto;min-width:0}
.urow-n{font-size:14px;font-weight:650;color:var(--text);word-break:break-word}
.urow-sub{font-size:12px;color:var(--text-soft);margin-top:3px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.urow-a{display:flex;gap:6px;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end}
.utag{border-radius:999px;padding:2px 9px;font-size:11px;font-weight:600;white-space:nowrap}
.utag-admin{background:#e7d9f7;color:#4a2478}
.utag-total{background:#e7d9f7;color:#4a2478}
.utag-sub{background:#dfe4f5;color:#33407a}
.utag-dj{background:#d7e7f7;color:#1F3A5F}
.utag-oper{background:var(--surface-3);color:var(--text-soft)}
.utag-djn{background:#d7e7f7;color:#1F3A5F}
.utag-dj{background:#d7e7f7;color:#1F3A5F}
.utag-cal-on{background:#d9ead3;color:#256b3e}
.utag-cal-mid{background:#f6efd2;color:#7a6535}
.utag-cal-off{background:var(--surface-3);color:var(--text-muted)}
.uver{background:none;border:0;padding:0;font:inherit;font-size:12px;color:var(--link);cursor:pointer;text-decoration:underline}
.udet{margin-top:9px;padding-top:9px;border-top:1px dashed var(--border-soft);display:none;gap:6px;flex-wrap:wrap}
.udet.on{display:flex}
.udet span{font-size:11.5px;background:var(--surface-3);border-radius:7px;padding:3px 8px;color:var(--text-soft)}
.udet span b{color:var(--text);font-weight:650}
.uempty{text-align:center;color:var(--text-muted);font-size:13px;padding:26px 14px;background:var(--surface-2);border:1px dashed var(--border);border-radius:12px}

.uform{padding:16px;margin-bottom:14px}
.uform-h{display:flex;align-items:center;font-size:14.5px;font-weight:700;color:var(--heading);margin-bottom:14px}
.uform-h .x{margin-left:auto;background:none;border:0;cursor:pointer;color:var(--text-muted);font-size:17px;line-height:1;padding:2px 6px;border-radius:6px}
.uform-h .x:hover{background:var(--surface-3);color:var(--text)}
.ugrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:13px;margin-bottom:14px}
.ufld{display:flex;flex-direction:column;min-width:0}
.ufld label{font-size:11.5px;font-weight:650;color:var(--text-muted);margin-bottom:5px}
.ufld input,.ufld select{width:100%;box-sizing:border-box;font-family:inherit;font-size:13.5px;padding:9px 11px;border:1px solid var(--border-input);border-radius:9px;background:var(--input-bg);color:var(--text)}
.uhint{font-size:11px;color:var(--text-muted);margin-top:5px;line-height:1.4}
.upass{position:relative}
.upass input{padding-right:36px}
.upass button{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:0;cursor:pointer;font-size:14px;line-height:1}

.urol{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-bottom:14px}
.uopt{display:flex;align-items:flex-start;gap:9px;padding:11px 13px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer}
.uopt:has(input:checked){border-color:var(--focus-ring);background:var(--surface-3)}
.uopt input{margin-top:2px;flex:0 0 auto}
.uopt span{display:flex;flex-direction:column;gap:2px;min-width:0}
.uopt b{font-size:13px;color:var(--text);font-weight:650}
.uopt small{font-size:11.5px;color:var(--text-soft);line-height:1.35}

/* Permisos por sección: agrupados, con el nombre completo siempre legible */
.ugrp{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:11px 12px;margin-bottom:10px}
.ugrp-res{border-color:var(--border-strong);border-style:dashed}
.ugrp-h{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:8px}
.ugrp-n{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-soft)}
.ugrp-a{margin-left:auto;display:flex;gap:4px;flex-wrap:wrap}
.ugrp-a button{font-family:inherit;font-size:11px;font-weight:600;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:7px;padding:4px 9px;cursor:pointer}
.ugrp-a button:hover{border-color:var(--accent);color:var(--text)}
.ugrp-x{font-size:11.5px;color:var(--text-muted);line-height:1.45;margin:-2px 0 9px}
.ugrp-b{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:7px}
.upr-n{min-width:0;font-size:12.5px;color:var(--text);white-space:normal;overflow-wrap:anywhere;line-height:1.3}
@media(max-width:640px){ .ugrp-b{grid-template-columns:1fr} .ugrp-a{margin-left:0;width:100%} .upr{grid-template-columns:minmax(0,1fr) 104px} }
.uperm-h{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:9px}
.uperm-h>span:first-child{font-size:12.5px;font-weight:650;color:var(--text-muted)}
.uperm-quick{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
#uPerms{display:block}
.upr{display:grid;grid-template-columns:minmax(0,1fr) 116px;align-items:center;gap:8px;padding:8px 11px;background:var(--surface);border:1px solid var(--border);border-radius:9px;min-width:0}
/* (reemplazada más abajo por la versión que no corta el texto) */
.upr select{width:100%;min-width:0;box-sizing:border-box;font-family:inherit;font-size:12px;padding:5px 7px;border:1px solid var(--border-input);border-radius:7px;background:var(--input-bg);color:var(--text)}
.uwel{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;margin-top:14px}
.uform-f{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}

@media(max-width:640px){
  .uhead .btn{margin-left:0;width:100%}
  .urow{flex-wrap:wrap}
  .urow-m{flex:1 1 100%}
  .urow-a{flex:1 1 100%;justify-content:flex-start;margin-top:9px;padding-top:9px;border-top:1px dashed var(--border-soft)}
  .uperm-quick{margin-left:0;width:100%}
}
/* ===== Conversaciones ===== */
.hilo{display:flex;flex-direction:column;gap:7px;margin-top:9px}
.hilo-m{max-width:88%;border-radius:12px;padding:8px 11px;font-size:12.5px;line-height:1.5}
.hilo-m.ag{align-self:flex-start;background:var(--surface-3);border:1px solid var(--border)}
.hilo-m.yo{align-self:flex-end;background:#dde9f5;border:1px solid #b9d2ea;color:#16324a}
.hilo-q{font-size:10.5px;font-weight:700;opacity:.65;margin-bottom:3px;text-transform:uppercase;letter-spacing:.4px}
.hilo-t{white-space:pre-wrap;word-break:break-word}
.hilo-p{font-size:10.5px;margin-top:4px;color:#8a5320;font-weight:650}
.hilod{margin-top:9px}
.hilod>summary{cursor:pointer;font-size:12px;font-weight:650;color:var(--link);list-style:none}
.hilod>summary::-webkit-details-marker{display:none}
.hilod>summary::before{content:"▸ "}
.hilod[open]>summary::before{content:"▾ "}
.bzhilo{flex:1 1 100%;margin-top:10px;padding-top:10px;border-top:1px dashed var(--border-soft)}
.bzresp{margin-top:9px}
.bzresp textarea,.sugresp textarea{width:100%;box-sizing:border-box;font-family:inherit;font-size:13px;padding:9px 11px;border:1px solid var(--border-input);border-radius:10px;background:var(--input-bg);color:var(--text);resize:vertical}
.bzresp textarea:focus,.sugresp textarea:focus{outline:2px solid var(--focus-ring);outline-offset:1px}
.bzcerrada{margin-top:9px;font-size:11.5px;color:var(--text-muted);font-style:italic}
.sugresp{margin-top:11px;padding-top:11px;border-top:1px dashed var(--border-soft)}
.sugresp-p{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text);margin-top:8px;cursor:pointer;font-weight:600}
.sugresp-x{font-size:11px;color:var(--text-muted);margin:4px 0 8px 24px}

/* ===== Ideas y mejoras ===== */
.idnueva{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px;margin:0 2px 12px}
.idnueva textarea{width:100%;box-sizing:border-box;font-family:inherit;font-size:14px;line-height:1.5;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;resize:vertical}
.idnueva textarea:focus{outline:none;border-color:var(--accent)}
.idnueva #idPrompt{margin-top:9px;font-size:13px}
.idnueva-r{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:9px}
.idnueva-r select{font-family:inherit;font-size:12.5px;font-weight:600;color:var(--text-soft);background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:8px 10px}
.idbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:0 2px 12px}
.idbar .count{margin-left:auto}
.idfsel{flex:0 1 260px;min-width:0;font-family:inherit;font-size:13px;font-weight:600;color:var(--text-soft);background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:9px 11px;cursor:pointer}
.idfsel:focus{outline:none;border-color:var(--accent)}
.idgrupo{margin:0 2px 16px}
.idit{display:flex;align-items:flex-start;gap:10px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:12px;padding:11px 12px;margin-bottom:8px}
.idit.pri-alta{border-left-color:#d9534f}
.idit.pri-media{border-left-color:#e6a417}
.idit.pri-baja{border-left-color:#7aa6c9}
.idit-m{flex:1 1 auto;min-width:0}
.idit-t{font-size:14px;line-height:1.45;color:var(--text);word-break:break-word}
.idit-n{font-size:12.5px;color:var(--text-soft);margin-top:4px;line-height:1.45}
.idit-s{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:7px}
.idit-f{font-size:11.5px;color:var(--text-muted)}
.idit-a{flex:0 0 auto;display:grid;grid-template-columns:repeat(2,auto);gap:4px;align-content:flex-start}
.idit.pri-urgente{background:rgba(217,83,79,.16);border-color:rgba(217,83,79,.5);border-left:3px solid #d9534f;box-shadow:inset 0 0 0 1px rgba(217,83,79,.22)}
.idtag.t-urgente{background:#d9534f;color:#fff;font-weight:700}
.idgrupo-fij .ndgrupo-h{color:var(--accent-hover)}
.idit-fecha{font-size:11px;color:var(--text-muted);margin-left:auto}
.idit-b{width:24px;height:24px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text-muted);font-size:12px;line-height:1;cursor:pointer;font-family:inherit;padding:0;display:flex;align-items:center;justify-content:center}
.idit-b:hover{background:var(--surface-3);color:var(--text)}
.idit-b.on{background:var(--accent-hover);color:#fff;border-color:var(--accent-hover)}
.idit-b.ok{background:#2e9e5a;color:#fff;border-color:#2e9e5a;font-size:13px}
.idedit-ta{width:100%;box-sizing:border-box;min-height:60px;resize:vertical;font-family:inherit;font-size:14px;line-height:1.4;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:7px 9px}
.idedit-a{display:flex;align-items:center;gap:12px;margin-top:6px}
.idedit-m{font-size:11.5px;color:var(--text-muted)}
.idcatwrap{display:inline-flex;align-items:center}
.idcat-input{font-family:inherit;font-size:13px;padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);min-width:150px}
.idit-c{flex:0 0 auto;width:19px;height:19px;margin-top:1px;border:1.8px solid var(--border);border-radius:6px;background:var(--surface-2);cursor:pointer;font-family:inherit;font-size:12px;line-height:1;color:transparent;padding:0}
.idit-c:hover{border-color:var(--accent);color:var(--text-muted)}
.idit-c::after{content:"✓"}
.idit-c.on{background:var(--gradient-primary);border-color:transparent;color:#fff}
.idit.hecha{opacity:.72}
.idit.hecha .idit-t{text-decoration:line-through;color:var(--text-soft)}
.idtag{font-size:10.5px;font-weight:700;letter-spacing:.3px;border-radius:999px;padding:2px 8px;background:var(--surface-3);color:var(--text-soft);text-transform:uppercase}
.idtag.t-alta{background:#f7dedd;color:#8a2020}
.idtag.t-media{background:#f9ecd0;color:#7a5602}
.idtag.t-baja{background:#e2ecf4;color:#2b5570}
.idtag.t-de{background:var(--surface-2);color:var(--text-muted);border:1px dashed var(--border)}
.idlink{border:0;background:none;padding:0;font-family:inherit;font-size:11.5px;font-weight:700;color:var(--accent-hover);cursor:pointer;text-decoration:underline}
.idit .drag-h{flex:0 0 auto;margin-top:2px;cursor:grab;color:var(--text-muted);font-size:14px;line-height:1;padding:2px 1px;user-select:none;touch-action:none;background:none;border:0}
.idit .drag-h:active{cursor:grabbing}
.idit.arrastrando{opacity:.9;box-shadow:var(--shadow-md);position:relative;z-index:5}
.idit.drop-arriba{box-shadow:0 -3px 0 0 var(--focus-ring)}
.idit.drop-abajo{box-shadow:0 3px 0 0 var(--focus-ring)}
.idit-de{font-size:11.5px;color:var(--text-muted);margin-top:5px;display:flex;align-items:center;gap:5px}
.idit-de b{color:var(--text-soft);font-weight:600}
.idprompt,.idcompl{margin-top:9px;background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:11px}
.idprompt-h,.idcompl-h{font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}
.idprompt textarea{width:100%;box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;line-height:1.55;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:9px 10px;resize:vertical}
.idcompl input[type=text],.idcompl select{width:100%;box-sizing:border-box;font-family:inherit;font-size:13px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:8px 10px}
.idcompl select{margin-top:7px;font-size:12.5px;font-weight:600;color:var(--text-soft)}
@media(max-width:640px){ .idbar .count{margin-left:0;flex:1 1 100%;order:2} .idfsel{flex:1 1 100%} .idnueva-r select{flex:1 1 calc(50% - 4px);min-width:0} }
/* ===== Buzón ===== */
.bzbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 2px 13px}
.bzbar .count{font-size:13px;font-weight:650;color:var(--text-soft)}
.bzbar-a{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.bzlist{display:flex;flex-direction:column;gap:9px;margin:0 2px}
.bzit{display:flex;align-items:flex-start;gap:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:12px 14px}
.bzit.nuevo{border-left:4px solid #8b5cf6;border-radius:0 12px 12px 0;background:var(--surface-3)}
.bzit-i{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--text-soft)}
.bzit.nuevo .bzit-i{color:#8b5cf6}
.bzit-i svg{display:block}
.bzit-m{flex:1 1 auto;min-width:0}
.bzit-t{font-size:13.5px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bzit-n{background:var(--gradient-warm);color:#fff;font-size:9px;font-weight:800;letter-spacing:.06em;border-radius:5px;padding:2px 6px;text-transform:uppercase}
.bzit-x{font-size:13px;color:var(--text-soft);line-height:1.5;margin-top:4px;word-break:break-word}
.bzit-c{font-size:11.5px;color:var(--text-muted);margin-top:6px}
.bzit-a{flex:0 0 auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.bzit-x2{width:24px;height:24px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text-muted);font-size:11px;cursor:pointer;font-family:inherit;flex:0 0 auto}
.bzit-x2:hover{background:#f5dcdc;color:#8a2020;border-color:#d9a5a5}
@media(max-width:640px){
  .bzbar-a{margin-left:0;width:100%}
  .bzit{flex-wrap:wrap}
.bzit.nuevo{cursor:pointer}
.bzit.nuevo:hover{background:var(--surface-hover)}
  .bzit-m{flex:1 1 calc(100% - 34px)}
  .bzit-a{flex:1 1 100%;justify-content:flex-start;margin-top:9px;padding-top:9px;border-top:1px dashed var(--border-soft)}
}
/* ===== Sugerencias ===== */
.sugfab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:60;
  display:inline-flex;align-items:center;gap:9px;border:0;cursor:pointer;font-family:inherit;
  background:var(--gradient-primary);color:#fff;border-radius:999px;padding:12px 17px;
  box-shadow:0 6px 20px rgba(0,0,0,.22)}
.sugfab:hover{filter:brightness(1.07)}
.sugfab:active{transform:scale(.97)}
.sugfab svg{width:22px;height:22px;flex:0 0 auto}
.sugfab-t{font-size:13.5px;font-weight:700;letter-spacing:.2px}
@media(max-width:640px){ .sugfab{padding:13px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px))} .sugfab-t{display:none} }

.sugform{display:flex;flex-direction:column;gap:12px}
.sugform-x{font-size:12.5px;color:var(--text-soft);line-height:1.5}
.sugtipos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.sugtipo{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px 8px;border:2px solid var(--border);border-radius:12px;background:var(--surface-2);cursor:pointer;font-family:inherit;transition:border-color .12s,background .12s}
.sugtipo:hover{border-color:var(--border-strong)}
.sugtipo span:first-child{font-size:20px;line-height:1;filter:grayscale(.55);opacity:.65}
.sugtipo span:last-child{font-size:12px;font-weight:600;color:var(--text-muted);text-align:center;line-height:1.25}
.sugtipo.on span:first-child{filter:none;opacity:1}
.sugtipo.on span:last-child{color:#fff;font-weight:700}
.sugtipo.on{border-color:transparent;color:#fff}
.sugtipo.on[data-t="problema"]{background:linear-gradient(135deg,#e0576f 0%,#c0392b 100%)}
.sugtipo.on[data-t="mejora"]{background:var(--gradient-cool)}
.sugtipo.on[data-t="idea"]{background:var(--gradient-warm)}
.sugtipo.on::after{content:"✓";position:absolute;top:5px;right:7px;font-size:11px;font-weight:800;color:#fff;opacity:.9}
.sugform textarea{width:100%;box-sizing:border-box;font-family:inherit;font-size:14px;line-height:1.55;padding:11px;border:1px solid var(--border-input);border-radius:10px;background:var(--input-bg);color:var(--text);resize:vertical;min-height:130px}
.sugform textarea:focus{outline:2px solid var(--focus-ring);outline-offset:1px}
.sugdonde{font-size:11.5px;color:var(--text-muted);line-height:1.5}
.sugtag-area{background:#e7e0f7;color:#4a2478}
.sugok{text-align:center;padding:26px 14px}
.sugok-i{font-size:34px;margin-bottom:10px}
.sugok-t{font-size:16px;font-weight:700;color:var(--heading);margin-bottom:7px}
.sugok-x{font-size:13px;color:var(--text-soft);line-height:1.6;max-width:340px;margin:0 auto}
.sugmias{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
.sugmias-h{font-size:11.5px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:9px}
.sugmia{font-size:12.5px;color:var(--text-soft);background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:9px 11px;margin-bottom:7px;line-height:1.5}
.sugmia b{color:var(--text)}
.sugmia-e{font-size:11px;color:var(--text-muted)}

.sugcard{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:9px}
.sugcard.nueva{border-left:4px solid #8b5cf6;border-radius:0 12px 12px 0}
.sugcard-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:7px}
.sugcard-u{font-size:13px;font-weight:700;color:var(--text)}
.sugcard-m{font-size:11px;color:var(--text-muted);margin-left:auto}
.sugcard-t{font-size:13.5px;color:var(--text);line-height:1.55;white-space:pre-wrap;word-break:break-word}
.sugcard-a{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.sugtag{border-radius:999px;padding:2px 9px;font-size:11px;font-weight:600;white-space:nowrap}
.sugtag-problema{background:#f7d9d9;color:#8a2020}
.sugtag-mejora{background:#dbe6f2;color:#1F3A5F}
.sugtag-idea{background:#f6e5cf;color:#8a5320}
.sugtag-donde{background:var(--surface-3);color:var(--text-soft)}
/* ===== No disponibilidad ===== */
.ndhead{margin:2px 2px 14px}
.ndhead-t{font-size:16px;font-weight:700;color:var(--heading)}
.ndhead-s{font-size:12.5px;color:var(--text-soft);margin-top:3px;max-width:640px;line-height:1.5}

.ndtabs{display:flex;gap:0;margin:0 2px 16px;border-bottom:1px solid var(--border)}
.ndtabs button{position:relative;display:inline-flex;align-items:center;gap:7px;border:0;background:none;font-family:inherit;font-size:13.5px;font-weight:600;color:var(--text-soft);padding:10px 16px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.ndtabs button:hover{color:var(--text)}
.ndtabs button.on{color:var(--heading);font-weight:700;border-bottom-color:var(--heading)}
.ndtabs-n{background:#e6a417;color:#1a1a1a;font-size:10.5px;font-weight:800;border-radius:999px;padding:1px 7px;min-width:9px;text-align:center;line-height:1.55}
@media(max-width:640px){ .ndtabs{overflow-x:auto} .ndtabs button{flex:1 1 auto;justify-content:center;padding:10px 8px;font-size:13px} }
.ndpick{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin:0 2px 14px;padding:11px 13px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px}
.ndpick>label{font-size:11.5px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}
.ndpick select{flex:0 1 260px;min-width:0;font-family:inherit;font-size:14px;font-weight:600;padding:9px 11px;border:1px solid var(--border-input);border-radius:9px;background:var(--input-bg);color:var(--text)}
.ndpick-r{flex:1 1 220px;min-width:0;font-size:12.5px;color:var(--text-soft);line-height:1.45}
.ndpick-r b{color:var(--text)}

.ndadd{margin:0 2px 14px;padding:14px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px}
.ndadd-h{font-size:13.5px;font-weight:700;color:var(--heading);margin-bottom:12px}
.ndadd-row{display:flex;gap:11px;flex-wrap:wrap;align-items:flex-end}
.ndfld{display:flex;flex-direction:column;min-width:0}
.ndfld>label{font-size:11px;font-weight:650;color:var(--text-muted);margin-bottom:5px}
.ndfld input[type=date]{font-family:inherit;font-size:13.5px;padding:8px 10px;border:1px solid var(--border-input);border-radius:9px;background:var(--input-bg);color:var(--text)}
.ndfld-mot{flex:1 1 260px}
.ndmot{display:flex;align-items:stretch;border:1px solid var(--border-input);border-radius:9px;overflow:hidden;background:var(--input-bg)}
.ndmot-fijo{display:flex;align-items:center;padding:0 10px;background:var(--surface-3);color:var(--text-soft);font-size:12.5px;font-weight:650;white-space:nowrap;border-right:1px solid var(--border-input)}
.ndmot input{flex:1 1 auto;min-width:0;border:0;background:none;color:var(--text);font-family:inherit;font-size:13.5px;padding:8px 10px}
.ndmot input:focus{outline:none}
.ndmot:focus-within{outline:2px solid var(--focus-ring);outline-offset:1px}
.ndadd-f{min-height:0}
.ndadd-f .ndmsg:not(:empty){display:inline-block;margin-top:10px}

.ndgrupo{margin:0 2px 12px}
.ndgrupo-h{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 9px}
.ndgrupo-h .n{background:var(--surface-3);color:var(--text-soft);border-radius:999px;padding:1px 8px;font-size:11px;letter-spacing:0}
.ndit{display:flex;align-items:center;gap:13px;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;margin-bottom:9px}
.ndit.pasada{opacity:.62}
.ndit.conflicto{border-left:4px solid #d08a3a}
.ndit-cal{flex:0 0 auto;width:52px;text-align:center;background:var(--surface-3);border-radius:10px;padding:6px 0;line-height:1.1}
.ndit-cal .d{font-size:19px;font-weight:700;color:var(--text)}
.ndit-cal .m{font-size:10.5px;font-weight:650;color:var(--text-muted);text-transform:uppercase}
.ndit-m{flex:1 1 auto;min-width:0}
.ndit-t{font-size:13.5px;font-weight:650;color:var(--text);word-break:break-word}
.ndit-s{font-size:12px;color:var(--text-soft);margin-top:3px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ndit-s .pill{background:var(--surface-3);border-radius:999px;padding:1px 8px;font-size:11px;white-space:nowrap}
.ndit-s .wflag{background:#f6e5cf;color:#8a5320;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:650;white-space:nowrap}
.ndit-s .prox{background:#dde9f5;color:#1F3A5F;font-weight:650}
.ndit-s .hoy{background:#d9ead3;color:#256b3e;font-weight:650}
.ndit-a{display:flex;gap:6px;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end}
.ndit-ed{flex:1 1 100%;display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.ndvacio{text-align:center;color:var(--text-muted);font-size:13px;padding:24px 14px;background:var(--surface-2);border:1px dashed var(--border);border-radius:12px;margin:0 2px 12px;line-height:1.5}
.ndpas{margin:0 2px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.ndpas>summary{cursor:pointer;font-size:12.5px;font-weight:700;color:var(--text-soft);padding:11px 14px;list-style:none}
.ndpas>summary::-webkit-details-marker{display:none}
.ndpas>summary::before{content:"▸ ";color:var(--text-muted)}
.ndpas[open]>summary::before{content:"▾ "}
.ndpas-b{padding:0 12px 6px}

.ndtool{margin:16px 2px 0;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.ndtool>summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--heading);padding:12px 14px;list-style:none}
.ndtool>summary::-webkit-details-marker{display:none}
.ndtool-b{padding:0 14px 16px}
.ndtool-x{font-size:12.5px;color:var(--text-soft);line-height:1.5;margin-bottom:11px;max-width:640px}

@media(max-width:640px){
  .ndpick select{flex:1 1 100%}
  .ndpick-r{flex:1 1 100%}
  .ndadd-row>.ndfld{flex:1 1 100%}
  .ndfld input[type=date]{width:100%;box-sizing:border-box}
  .ndfld-go .btn{width:100%}
  .ndit{flex-wrap:wrap;gap:10px}
  .ndit-m{flex:1 1 calc(100% - 65px)}
  .ndit-a{flex:1 1 100%;justify-content:flex-start;margin-top:8px;padding-top:9px;border-top:1px dashed var(--border-soft)}
  .ndit-a .btn{flex:1 1 auto}
}
/* ===== Cartel de "No trabaja" eliminado (con deshacer) ===== */
.ndundo{background:var(--surface-2);border:1px solid var(--border);border-left:4px solid #c9803a;border-radius:10px;padding:11px 13px}
.ndundo-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;font-weight:700;color:var(--heading);margin-bottom:8px}
.ndundo-h .x{margin-left:auto;background:none;border:0;cursor:pointer;color:var(--text-muted);font-size:16px;line-height:1;padding:2px 5px;border-radius:6px}
.ndundo-h .x:hover{background:var(--surface-3);color:var(--text)}
.ndundo-it{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0;border-top:1px dashed var(--border-soft)}
.ndundo-it:first-of-type{border-top:0}
.ndundo-dat{flex:1 1 260px;min-width:0;font-size:12.5px;line-height:1.45;color:var(--text-soft)}
.ndundo-dat b{color:var(--text)}
.ndundo-ok{font-size:12.5px;font-weight:650;color:#2e9e4f}
@media(max-width:640px){ .ndundo-it{align-items:stretch} .ndundo-it .btn{width:100%} }
.panel{display:none;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:var(--shadow-sm)}
.panel.active{display:block}
/* Gate de carga: hasta que el boot revela la primera seccion (portadaCerrar saca .radar-inicio), no se muestran los paneles */
body.radar-inicio .content .panel{display:none !important}
/* Aviso de recarga cada 15 min */
.rrec{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:1500;display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 14px;box-shadow:0 8px 28px rgba(0,0,0,.28);max-width:calc(100% - 24px)}
.rrec-txt{font-size:13px;color:var(--text);line-height:1.3}
.rrec-btn{border:0;border-radius:8px;padding:8px 15px;background:var(--accent-hover);color:#fff;font-weight:700;font-size:13px;cursor:pointer;font-family:inherit;white-space:nowrap}
.rrec-btn:hover{filter:brightness(1.08)}
.rrec-x{border:0;background:none;color:var(--text-muted);font-size:15px;cursor:pointer;line-height:1;padding:2px 4px}
.sosnext-h{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 9px}
.sosnext-h .n{background:var(--surface-3);color:var(--text-soft);border-radius:999px;padding:1px 8px;font-size:11px;letter-spacing:0}
.ctrl{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}
.ctrl label{font-weight:bold;color:var(--heading)}
select,input[type=date],input[type=text]{padding:8px 10px;border:1px solid var(--border-input);border-radius:8px;font-size:14px;background:var(--input-bg);color:var(--text);min-width:180px}
table{border-collapse:collapse;width:100%;font-size:13px}
th{background:var(--brand-violet);color:#fff;text-align:left;padding:8px 9px;position:sticky;top:0;font-weight:bold}
td{padding:7px 9px;border-bottom:1px solid var(--border-soft);vertical-align:top}
tr:nth-child(even) td{background:var(--surface-3)}
.scroll{max-height:62vh;overflow:auto;border:1px solid var(--border);border-radius:8px}
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:bold;white-space:nowrap}
.b-ok{background:#d9ead3;color:#256b3e}
.b-pend{background:#fce8ce;color:#9a6212}
.fase{display:inline-block;padding:2px 9px;border-radius:6px;font-size:11.5px;font-weight:bold;background:var(--chip-bg);color:var(--heading);white-space:nowrap}
.new{color:#b00020;font-weight:bold;margin-left:5px}
a{color:var(--link);text-decoration:none;font-weight:bold}
a:hover{text-decoration:underline}
.muted{color:var(--text-dim)}
.count{color:var(--text-muted);font-size:12.5px;margin:6px 2px}
.err{background:#fde8e8;border:1px solid #f5b5b5;color:#7a1f1f;padding:14px;border-radius:10px}
html:not([data-theme="light"]) .err{background:rgba(224,80,60,.14);border-color:rgba(224,80,60,.4);color:#f0b3a8}
/* UX Fase 1 — caja de aviso ámbar theme-aware (reemplaza fondos beige hardcodeados) */
.warnbox{background:#fff6e8;border:1px solid #f0dcc0;color:#8a4b00;border-radius:9px}
html:not([data-theme="light"]) .warnbox{background:rgba(240,176,80,.12);border-color:rgba(240,176,80,.34)}
html:not([data-theme="light"]) .warnbox :not(.btn):not(button):not(input):not(select):not(a){color:#f0cc8f !important}
.loading{padding:40px;text-align:center;color:var(--text-muted)}
.kpi{display:inline-block;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:6px 12px;margin-right:8px;font-size:12.5px}
.kpi b{font-size:15px;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800}
.c-2 td,td.c-2{background:var(--grid-prev2-cell) !important;color:var(--grid-prevText) !important}
.c-1 td,td.c-1{background:var(--grid-prev1-cell) !important;color:var(--grid-prevText) !important}
.p-1 td,td.p-1{background:var(--grid-next1-cell) !important;color:var(--grid-nextText) !important}
.p-2 td,td.p-2{background:var(--grid-next2-cell) !important;color:var(--grid-nextText) !important}
th.c-2{background:var(--grid-prev2-header);color:var(--grid-headerOnRose)}th.c-1{background:var(--grid-prev1-header);color:var(--grid-headerOnRose)}th.p-1{background:var(--grid-next1-header);color:var(--grid-headerOnGreen)}th.p-2{background:var(--grid-next2-header);color:var(--grid-headerOnGreen)}
.today td,td.today{background:var(--grid-ese-cell) !important}
th.today{background:var(--grid-ese-header);color:var(--grid-headerOnNavy)}
.libre{color:var(--grid-libre);font-weight:bold}
.ntflag{display:inline-block;background:var(--surface-containerHighest);color:var(--text-primary);border-radius:6px;padding:1px 7px;font-size:10.5px;font-weight:bold}
    .usocap{position:relative;height:14px;border-radius:999px;background:var(--surface-containerHighest);border:1px solid var(--outline-variant);overflow:hidden;margin:2px 0 4px}
    .usocap-fill{height:100%;border-radius:999px 0 0 999px;transition:width .3s}
    .usocap-50{position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--text-soft);opacity:.45}
    .usocap-txt{font-size:12px;line-height:1.5}
    .bustabs button{border-bottom-width:3px}
    .bustabs button.on{color:var(--heading);border-bottom-color:transparent;position:relative}
    .bustabs button.on::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:3px;border-radius:3px 3px 0 0}
    .bustabs button.b-dj.on::after{background:var(--gradient-midnightbloom)}
    .bustabs button.b-fecha.on::after{background:var(--gradient-duskglow)}
    .bustabs button.b-libres.on::after{background:var(--gradient-junglepulse)}
    .visually-off{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
    .djctrl{justify-content:center}
.djtitulo{display:block;box-sizing:border-box;width:100%;border:0;appearance:none;-webkit-appearance:none;font-family:inherit;font-size:clamp(26px,4.4vw,52px);font-weight:800;letter-spacing:-.02em;line-height:1.15;color:#fff;text-align:center;text-align-last:center;cursor:pointer;padding:14px 18px;border-radius:14px;background:var(--gradient-primary);margin:4px 0 14px}
    .djtitulo:hover{filter:brightness(1.08)}
.djtitulo-fijo{cursor:default;user-select:none}
.djtitulo-fijo:hover{filter:none}
    .djtitulo option{color:var(--text-primary);background:var(--surface-1);font-size:14px}
    .cargabox{text-align:center;padding:22px 10px}
    .cargabox .pwr{display:block;font-size:0;line-height:0}
    .cargatxt{margin-top:10px;font-size:13px;font-weight:700;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;color:transparent}
    .djcarga{display:block}
.libctrl{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}
    .libfila{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
    .libfiltros{display:flex;flex-direction:column;gap:8px;align-items:flex-end}
    .libfiltros-r{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
    .libfiltros-b{display:flex;align-items:center;gap:10px}
    .libsep{flex:1 1 20px}
    .libfila .fld{color:var(--text-soft);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
@media(max-width:820px){ .libsep{display:none} .libfiltros{align-items:flex-start} }
.libresumen{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 10px}
.libresumen>div{flex:0 1 auto}
.libresumen .count{margin:0;white-space:nowrap}
    .pwr .protier-logo.cargalogo{width:58px;height:59px;display:block;margin:28px auto;background:var(--gradient-primary);animation:vaiven 2.6s ease-in-out infinite}
    #status.loading .pwr{display:block;font-size:0;line-height:0}
    @keyframes vaiven{0%{transform:rotate(0)}45%{transform:rotate(320deg)}55%{transform:rotate(320deg)}100%{transform:rotate(0)}}
    #status.loading{border:0;background:transparent;text-align:center}
.portada{position:relative;width:100%;max-width:680px;margin:0 auto}
.portada svg{display:block;width:100%;height:auto}
.pring{fill:none;stroke:var(--por-ring);stroke-width:.6}
.pring2{fill:none;stroke:var(--por-ring2);stroke-opacity:.28;stroke-width:.9}
.pspoke{stroke:var(--por-spoke);stroke-width:.6}
.pbar{opacity:.75}
.phalo{opacity:0;animation:porhalo 6s linear infinite}
.pblip{opacity:.3;animation:porblip 6s linear infinite}
.psweep{animation:porgira 6s linear infinite;transform-origin:340px 300px}
.pwm{font-family:var(--font-sans);font-weight:500;letter-spacing:.22em;font-size:30px}
.psub{font-family:var(--font-sans);font-weight:400;letter-spacing:.26em;font-size:13px;fill:var(--text-dim)}
.portada-pwr{position:absolute;left:50%;top:46.15%;transform:translate(-50%,-50%);display:block;font-size:0;line-height:0;gap:0}
.pwr .protier-logo.portada-logo{display:block;width:52px;height:53px;background:var(--gradient-primary);animation:porlogo 6s linear infinite}
.portada-msg{text-align:center;margin:0 0 20px;font-size:19px;font-weight:600;letter-spacing:.05em;color:var(--brand-violet)}
#status.loading:not(.portada-inicio) .portada-msg{background-image:var(--gradient-shimmer);background-size:280% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:pordestello 2.4s linear infinite}
@keyframes pordestello{from{background-position:180% 0}to{background-position:-80% 0}}
.portada-inicio .portada-msg{background-image:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;color:transparent;animation:portadaMsgIn .7s ease-out .15s both}
@keyframes portadaMsgIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ===== Portada en reposo =====
   Al terminar de cargar, el radar deja de barrer: se apagan el haz, los destellos
   y el ecualizador (esas animaciones hacian creer que la app seguia cargando).
   Queda el logo de ProTier latiendo y la trama del login llenando los aros.
   La trama la arma portadaReposo() y llega por la variable --por-trama; la clase
   con-trama solo aparece si esa imagen se pudo generar, asi nunca queda un disco liso. */
.portada-inicio .psweep{animation:none;opacity:0}
.portada-inicio .pblip{animation:porblip2 6s ease-in-out infinite;opacity:1}
@keyframes porblip2{0%{opacity:.55}3%{opacity:1}22%{opacity:.78}100%{opacity:.55}}
.portada-inicio .pring,.portada-inicio .pring2,.portada-inicio .pspoke{opacity:.5}
.portada-inicio .pbar{opacity:0}
.portada-inicio .pring2{stroke:url(#por-pri);stroke-width:2.5;stroke-opacity:.7;opacity:1}
.portada-inicio .portada{position:relative}
.portada-inicio .portada svg{position:relative;z-index:1}
.portada-inicio .portada-pwr{z-index:3}
.portada-inicio.con-trama .portada::before{content:"";position:absolute;left:50%;top:46.15%;width:73.5%;aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none;z-index:0;background-color:var(--brand-violet);opacity:.55;-webkit-mask-image:var(--por-trama),radial-gradient(circle closest-side,transparent 0 21%,#000 26% 98.5%,transparent 100%);mask-image:var(--por-trama),radial-gradient(circle closest-side,transparent 0 21%,#000 26% 98.5%,transparent 100%);-webkit-mask-size:540px,100% 100%;mask-size:540px,100% 100%;-webkit-mask-position:center,center;mask-position:center,center;-webkit-mask-repeat:repeat,no-repeat;mask-repeat:repeat,no-repeat;-webkit-mask-composite:source-in;mask-composite:intersect}
.portada-inicio .pwr .protier-logo.portada-logo{width:96px;height:98px;animation:porlatido 2.6s ease-in-out infinite}
@keyframes porlatido{0%{transform:scale(1)}9%{transform:scale(1.075)}19%{transform:scale(1)}28%{transform:scale(1.045)}42%{transform:scale(1)}100%{transform:scale(1)}}
.portada-inicio .portada-pwr::after{content:"";position:absolute;left:50%;top:50%;width:104px;height:104px;margin:-52px 0 0 -52px;border-radius:50%;border:2px solid var(--neon-violet);animation:poronda 2.6s ease-out infinite;pointer-events:none}
@keyframes poronda{0%{transform:scale(.8);opacity:.5}45%{transform:scale(1.7);opacity:0}100%{transform:scale(1.7);opacity:0}}
@media (prefers-reduced-motion: reduce){
  .portada-inicio .pblip{animation:none;opacity:.85}
  .portada-inicio .phalo{animation:none;opacity:.16}
  .portada-inicio .pwr .protier-logo.portada-logo{animation:none}
  .portada-inicio .portada-pwr::after{animation:none;opacity:0}
}
@keyframes porgira{to{transform:rotate(360deg)}}
@keyframes porlogo{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes porblip{0%{opacity:.3}3%{opacity:1}22%{opacity:.62}100%{opacity:.3}}
@keyframes porhalo{0%{opacity:0}4%{opacity:.26}26%{opacity:0}100%{opacity:0}}
@media (max-width:700px){.pwr .protier-logo.portada-logo{width:36px;height:37px}}
@media (prefers-reduced-motion:reduce){.psweep,.pblip,.phalo,.pwr .protier-logo.portada-logo, .portada-inicio .portada-msg{animation:none}.pblip{opacity:.9}}
@media (prefers-reduced-motion: reduce){#status.loading:not(.portada-inicio) .portada-msg{background-image:none;color:var(--brand-violet);animation:none}}
    .fechactrl{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
    .fechafila{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
    .fechafila2{gap:14px;font-size:12px}
    .fechactrl .diabox{margin:0}
    .fechactrl .cap{margin:0}
    td.tdj{white-space:nowrap}
    .thnota{display:block;font-weight:normal;font-size:10px;color:#fff !important;opacity:.9;white-space:nowrap;margin-top:1px}
    .thwrap{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15}
    .fev{min-width:260px}
    .fev-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px}
    .fev-tit{font-size:15px;font-weight:800;line-height:1.3;flex:1 1 auto}
    .fev-id{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;text-decoration:none}
    .fev-idlbl{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-soft);font-weight:700}
    .fev-idnum{font-size:22px;font-weight:800;line-height:1.1;color:var(--heading);border-bottom:2px solid currentColor}
    .fev-fase{margin-bottom:10px}
    .fev-row{display:flex;gap:10px;padding:5px 0;border-top:1px solid var(--outline-variant);font-size:13px}
    .fev-k{flex:0 0 84px;color:var(--text-soft)}
    .fev-v{flex:1 1 auto;font-weight:600}
    .djlink{cursor:pointer;border-bottom:1px dotted currentColor}
    .djlink:hover{color:var(--heading);border-bottom-style:solid}
    .diabox{margin:6px 0 2px;font-size:12px}
    .diachip{display:inline-block;border-radius:999px;padding:6px 20px;font-size:17px;font-weight:800;color:#fff;letter-spacing:.02em;line-height:1.2}
    .diafecha{margin-left:22px;font-size:15px;font-weight:800;background:var(--gradient-duskglow);-webkit-background-clip:text;background-clip:text;color:transparent}
    .diachip.d0{background:#c0392b}
    .diachip.d1{background:#7c5cd6}
    .diachip.d2{background:#c77d1a}
    .diachip.d3{background:#1a8f8f}
    .diachip.d4{background:#2f6fd0}
    .diachip.d5{background:#c2418c}
    .diachip.d6{background:#2e8b4f}
    .usokpis{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
    .usotit{font-size:12px;font-weight:bold;color:var(--text-soft);margin:12px 0 6px}
    .usobars{display:flex;align-items:flex-end;gap:3px;min-height:60px}
    .usobar{flex:1 1 0;min-width:6px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}
    .usobar-v{width:100%;background:var(--gradient-acidclub);border-radius:3px 3px 0 0;min-height:2px}
    .usobar-0{width:100%;height:1px;background:var(--outline-variant)}
    .usobar-n0{color:var(--text-soft);font-weight:normal;opacity:.6}
    .papt{font-size:12px;font-weight:bold;color:var(--text-soft);margin:14px 0 6px}
    .papvacia{font-size:11px;color:var(--text-soft);margin-top:14px}
    .papfila{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--outline-variant);border-radius:8px;padding:8px 10px;margin-bottom:6px;font-size:12px}
    .usoesc{font-size:11px;color:var(--text-soft);margin:10px 0 2px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
    .usoescb{border:1px solid var(--outline-variant);background:var(--surface-2);color:var(--text-soft);border-radius:999px;padding:1px 9px;font-size:11px;cursor:pointer}
    .usoescb.on{background:var(--gradient-acidclub);color:#0b2b1f;border-color:transparent;font-weight:bold}
    .usobars{align-items:flex-end}
    .usobar-n{font-size:9px;font-weight:bold;color:var(--text-secondary);margin-bottom:2px;white-space:nowrap}
    .usobar-l{font-size:8px;color:var(--text-soft);margin-top:3px;white-space:nowrap;transform:rotate(-60deg);transform-origin:center;height:16px}
    .devtabs{display:flex;gap:6px;border-bottom:1px solid var(--outline-variant);margin-bottom:12px;flex-wrap:wrap}
    .devtab{background:none;border:0;border-bottom:2px solid transparent;padding:7px 12px;font-size:13px;font-weight:bold;color:var(--text-soft);cursor:pointer}
    .devtab.on{color:var(--text-primary);border-bottom-color:#2dd4bf}
    .devcard{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:14px 16px;font-size:13px;line-height:1.5;margin-bottom:10px}
    .admb{display:inline-block;border-radius:6px;padding:1px 8px;font-size:11px;font-weight:bold;white-space:nowrap;cursor:pointer;border:1px solid transparent}
    .adm-ok{background:#e4f1e4;color:#2e6b37;border-color:#a8d3ae}
    .adm-falta{background:#fbe0e0;color:#96302f;border-color:#e8a9a9}
    .adm-dif{background:#fdf1d6;color:#8a5320;border-color:#e8c98a}
    .adm-na{background:var(--surface-containerHighest);color:var(--text-soft);border-color:var(--outline-variant);cursor:default}
    .mg-ped{display:block;font-size:11px;margin-top:4px;line-height:1.35;color:var(--text-soft)}
.mg-dem{margin-top:6px;display:flex;flex-direction:column;gap:2px}
.mg-dem select{font-size:12px;padding:3px 6px}
.mg-dem .muted{font-size:10.5px}
.mg-demvieja{font-size:10.5px;color:var(--status-warning);line-height:1.3}
/* Asignaciones: cada columna con su ancho, sin huecos ni textos partidos. */
#mgTable td{vertical-align:top}
#mgTable .mgc-id{width:78px;white-space:nowrap}
#mgTable .mgc-fecha{width:104px;white-space:nowrap}
#mgTable .mgc-ev{min-width:180px}
#mgTable .mgc-ev b{font-weight:650;line-height:1.25}
#mgTable .mgc-rol{width:62px;white-space:nowrap}
#mgTable .mgc-ped{width:140px}
.mgped{font-size:12.5px;line-height:1.3;word-break:break-word}
.mgped-dj{color:var(--text)}
.mgped-ninguno{color:var(--text-soft);font-style:italic}
.mgped-nsnc{color:var(--text-muted);font-style:italic;opacity:.8}
#mgTable .mgc-dj{width:240px}
#mgTable .mgc-dem{width:168px}
#mgTable .mgc-est{width:150px}
#mgTable .mgc-acc{width:118px;text-align:right;white-space:nowrap}
/* El selector de estado es el cartel: mismo color que la chapita que reemplaza. */
.estsel{border:1px solid var(--border);border-radius:999px;padding:4px 8px;font-size:12px;font-weight:650;font-family:inherit;cursor:pointer;max-width:100%}
.estsel.est-ok{background:#d9ead3;color:#256b3e;border-color:#bcd8b2}
.estsel.est-pend{background:#fce8ce;color:#9a6212;border-color:#f0d3a8}
.estsel.est-canc{background:#e6d6d6;color:#8a1f1f;border-color:#d7bcbc}
.estsel option{background:var(--surface);color:var(--text);font-weight:400}
#mgTable .mgc-est select{width:auto}
#mgTable .mgc-est{width:132px}
#mgTable .mgc-acc{width:64px}
.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:28px;padding:0;line-height:0}
.iconbtn svg{display:block}
/* Ejecutar en verde, modificar en gris, deshacer en rojo: se distinguen por color y por forma. */
.iconbtn-ok{background:#256b3e;border-color:#256b3e;color:#fff}
.iconbtn-ok:hover{background:#1d5732;border-color:#1d5732}
.iconbtn-x{color:#8a1f1f}
.iconbtn-x:hover{background:#f3dede;border-color:#d7bcbc}
#mgTable .mgc-id{width:52px}
#mgTable .mgc-id a{font-size:12px}
#mgTable .mgc-acc{width:auto;min-width:70px}
#mgTable .mgc-acc .iconbtn+.iconbtn{margin-left:5px}
#mgTable .mgc-dj select,#mgTable .mgc-dem select,#mgTable .mgc-est select{width:100%;max-width:100%;box-sizing:border-box}
#mgTable .mgc-est .badge{display:inline-block;margin:0 0 6px}
.mg-lugar{display:block;font-size:11px;color:var(--text-dim);margin-top:3px;line-height:1.3}
.mg-dem{margin-top:0}
@media(max-width:900px){ #mgTable .mgc-dj,#mgTable .mgc-dem,#mgTable .mgc-est{width:auto} }
    .ntflag-dia{background:#fff0e0 !important;color:#8a4520 !important;border:1px solid #e8833a;cursor:pointer}
    .ntflag-per{background:#c62828 !important;color:#ffffff !important;border:1px solid #a81f1f;cursor:pointer}
    .ntflag-conf{background:#fff4d6 !important;color:#7a5a12 !important;border:1px solid #f0b429;cursor:pointer}
    .evflag{display:inline-block;background:var(--surface-containerHighest);color:var(--text-secondary);border:1px solid var(--outline-variant);border-radius:6px;padding:1px 7px;font-size:11px;font-weight:bold}
.nfree{background:var(--grid-next1-cell) !important}
tr.trbusy td{background:var(--surface-container) !important;color:var(--text-muted)}
tr.trbusy td.libname{background:var(--surface-containerHigh) !important;color:var(--text-secondary)}
    tr.trbusy td.today{background:var(--surface-container) !important;background:color-mix(in srgb, var(--grid-ese-cell) 58%, var(--surface-container)) !important;color:var(--text-secondary);font-weight:bold}
    tr.trbusy td.c-2{background:var(--surface-container) !important;background:color-mix(in srgb, var(--grid-prev2-cell) 40%, var(--surface-container)) !important}
    tr.trbusy td.c-1{background:var(--surface-container) !important;background:color-mix(in srgb, var(--grid-prev1-cell) 40%, var(--surface-container)) !important}
    tr.trbusy td.p-1{background:var(--surface-container) !important;background:color-mix(in srgb, var(--grid-next1-cell) 40%, var(--surface-container)) !important}
    tr.trbusy td.p-2{background:var(--surface-container) !important;background:color-mix(in srgb, var(--grid-next2-cell) 40%, var(--surface-container)) !important}
.seprow td{background:var(--grid-unavail-header) !important;color:var(--grid-unavail-text) !important;font-weight:bold;text-align:center;letter-spacing:.3px;padding:9px}
.libname{font-weight:bold}
td.rel{font-size:12px}
.ntform{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin:0 2px 12px;display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:13px}
.ntform .fld{display:flex;align-items:center;gap:5px;color:var(--text-soft)}
.ntform input[type=date]{min-width:auto;padding:6px 8px}
.ntform input[type=text]{min-width:150px;padding:6px 8px}
.btn{background:var(--accent);color:var(--accent-ink);border:none;border-radius:var(--radius-full);padding:7px 15px;font-weight:600;cursor:pointer;font-size:13px}
.btn:hover{background:var(--accent-hover)}
.btn.sm{padding:4px 10px;font-size:12px}
.btn.rojo{background:#b23b3b}.btn.rojo:hover{background:#c94f4f}
.btn.gris{background:#7b8494}.btn.gris:hover{background:#909aa8}
.ndmsg{font-size:12.5px;color:var(--accent-hover);font-weight:bold}
.wflag{cursor:pointer}
    .wflagh{cursor:pointer}
    .dico{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin-right:5px;cursor:pointer;line-height:0}
    .dsvg{display:block}
    .dico-am{color:#f0b429}
    .dico-dia{color:#e8833a}
    .dico-per{color:#d64545}
    .dlist{margin-top:5px;font-size:11px}
    .dlist>summary{cursor:pointer;color:var(--text-soft);list-style:none;display:inline-block;background:#f1f3f6;border-radius:6px;padding:1px 7px}
    .dlist>summary::-webkit-details-marker{display:none}
    .dlist-b{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:5px}
    .dchip{display:inline-flex;align-items:center;white-space:nowrap;color:var(--text-soft)}
    .dinfo{display:inline-block;background:#f6e5cf;color:#8a5320;border-radius:6px;padding:1px 6px;font-size:11px;white-space:nowrap;margin-left:6px;cursor:pointer}
    .mg-blk{display:block;margin:4px 0}
    select option:disabled{color:#9aa3ad}
tr.ntrow td{background:var(--surface-2) !important;color:var(--text-muted)}
.cap{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:12.5px;color:var(--text-soft)}
.capbar{width:150px;height:13px;background:var(--surface-3);border-radius:7px;overflow:hidden;border:1px solid var(--border-strong)}
.capfill{height:100%;transition:width .2s}
tr.mg_done td{background:var(--surface-3) !important;color:var(--text-dim)}
tr.mg_done a{color:var(--text-dim)}
tr.mg_recon td{border-top:2px solid #c0392b;border-bottom:2px solid #c0392b}
tr.mg_recon td:first-child{border-left:2px solid #c0392b}
tr.mg_recon td:last-child{border-right:2px solid #c0392b}
#p-mgmt select{min-width:auto}
.chk{display:inline-flex;align-items:center;gap:3px;font-size:12.5px;color:var(--text-soft);cursor:pointer}
.chk input{cursor:pointer;margin:0}
th.sortth{cursor:pointer;user-select:none;white-space:nowrap}
th.sortth:hover{background:var(--accent-hover)}
.plantel-cols{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}
.pcol{flex:1;min-width:190px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px}
.pcol h4{margin:0 0 8px;color:var(--heading);font-size:14px;border-bottom:2px solid var(--border);padding-bottom:6px}
.pcol.dragover{background:var(--surface-hover);border-color:var(--accent-hover);box-shadow:0 0 0 2px var(--border-strong) inset}
.pdrop{min-height:140px;display:flex;flex-direction:column;gap:6px}
    .pnick{margin-left:7px;opacity:.45;cursor:pointer;font-size:11px}
    .pnick:hover{opacity:1}
.pchip{background:var(--chip-bg);border:1px solid var(--border-strong);border-radius:7px;padding:6px 10px;font-size:13px;cursor:grab;color:var(--heading)}
.pchip:active{cursor:grabbing}
.pcol[data-cat=honorarios] h4{color:#256b3e;border-color:#cfe8cf}
.pcol[data-cat=cantera] h4{color:#B7791F;border-color:#f0dcc0}
[data-theme=dark] .pcol[data-cat=honorarios] h4{color:#4cbf7c}
[data-theme=dark] .pcol[data-cat=cantera] h4{color:#e0a94b}
.modal-bg{display:none;position:fixed;inset:0;background:rgba(20,30,50,.55);z-index:50;align-items:center;justify-content:center}
.modal-box{background:var(--surface);border-radius:12px;max-width:430px;width:90%;padding:18px 20px;box-shadow:var(--shadow-md)}
.modal-box h4{margin:0 0 10px;color:var(--heading);font-size:16px}
#warnBody{white-space:pre-wrap;font-size:13.5px;color:var(--text-soft);margin-bottom:16px;line-height:1.45}
.modal-box .btn{float:right}
/* ===== Optimización móvil (no afecta escritorio) ===== */
@media (max-width:640px){
  .wrap{padding:10px;padding-top:calc(10px + env(safe-area-inset-top,0px));padding-left:calc(10px + env(safe-area-inset-left,0px));padding-right:calc(10px + env(safe-area-inset-right,0px))}
  .title{font-size:23px}
  .sub{font-size:12px}
  .head{padding-bottom:10px;margin-bottom:10px}
  .layout{flex-direction:column;gap:0;align-items:stretch}
  .content{width:100%}
  .navtoggle{display:inline-flex}
  .tabs{position:fixed;left:0;top:0;bottom:0;z-index:200;width:min(82vw,290px);max-height:none;border-radius:0;margin:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;transform:translateX(-100%);transition:transform .22s ease}
  body.nav-open .tabs{transform:translateX(0)}
  body.nav-open .navscrim{display:block}
  .tab{font-size:14px}
  .panel{padding:11px}
  select,input[type=date],input[type=text]{min-width:0;font-size:16px}
  .ctrl{gap:8px}
  .ctrl>label{flex:0 0 100%;margin-bottom:-2px}
  .ctrl select,.ctrl input[type=date],.ctrl input[type=text],.ntform input[type=text],.ntform input[type=date]{width:100%}
  .ctrl .fld,.ctrl .count,.ctrl .ndmsg,.cap{flex:1 1 100%;margin-left:0 !important}
  .ntform{flex-direction:column;align-items:stretch}
  .ntform .fld{flex-direction:column;align-items:stretch;gap:3px}
  .ctrl .btn,.ntform .btn{width:100%}
  th,td{padding:7px 8px}
  /* UX Fase 2 — tablas apiladas en mobile (sin scroll horizontal) */
  .scroll{max-height:none;overflow-x:hidden;overflow-y:visible;border:0;border-radius:0;background:transparent}
  .scroll>table,.scroll tbody{display:block;width:100%}
  .scroll thead{display:none}
  .scroll tr{display:block;border:1px solid var(--border);border-radius:10px;margin:0 0 10px;padding:5px 12px;background:var(--surface)}
  .scroll td{display:flex;justify-content:space-between;gap:12px;align-items:baseline;border:0;border-bottom:1px solid var(--border-soft);padding:6px 0;white-space:normal;word-break:break-word;text-align:right}
  .scroll tr td:last-child{border-bottom:0}
  .scroll td::before{content:attr(data-label);font-weight:600;color:var(--text-muted);text-align:left;flex:0 0 38%;white-space:normal}
  .scroll td:empty{display:none}
  .scroll td[data-label=""]::before{display:none}
  /* Excepción: "Disponibilidad por fecha" mantiene la grilla como en escritorio (scroll horizontal, compacta) */
  #p-libres .scroll{max-height:74vh;overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface);-webkit-overflow-scrolling:touch}
  #p-libres .scroll>table{display:table;width:auto;min-width:100%;white-space:nowrap;font-size:11.5px}
  #p-libres .scroll tbody{display:table-row-group;width:auto}
  #p-libres .scroll thead{display:table-header-group}
  #p-libres .scroll tr{display:table-row;border:0;border-radius:0;margin:0;padding:0;background:transparent}
  #p-libres .scroll td{display:table-cell;justify-content:initial;gap:0;text-align:left;white-space:nowrap;word-break:normal;border:0;border-bottom:1px solid var(--border-soft);padding:5px 7px;max-width:112px;overflow:hidden;text-overflow:ellipsis}
  #p-libres .scroll td::before{display:none}
  #p-libres .scroll td:empty{display:table-cell}
  #p-libres .scroll th{padding:6px 7px;font-size:10.5px;letter-spacing:-.1px}
  /* la columna del DJ queda fija mientras se scrollea de costado */
  #p-libres .scroll th:first-child,#p-libres .scroll td:first-child{position:sticky;left:0;z-index:3;max-width:104px}
  #p-libres .scroll td:first-child{background:var(--surface);box-shadow:1px 0 0 var(--border)}
  #p-libres .scroll tr:nth-child(even) td:first-child{background:var(--surface-3)}
  #p-libres .scroll tr.seprow td{position:static;max-width:none}
  .plantel-cols{flex-direction:column}
  .pcol{min-width:0}
  .modal-box{width:92%}
  #p-dj .ctrl>label{flex:0 0 auto;margin-bottom:0}
  #p-dj #djLegend,#p-mios #mLegend{flex:1 1 100%;margin-left:0;margin-top:2px}
  #p-dj #djCount,#p-mios #mCount{flex:1 1 100%;margin-left:0}
}
body.noedit-nodisp #p-nodisp .ntform{display:none}
body.noedit-plantel .pchip{pointer-events:none;opacity:.75;cursor:default}
body.noedit-plantel #tiposTable input{pointer-events:none;opacity:.5}
#userLbl{font-size:12.5px;color:#ffffff;font-weight:bold}
#logoutBtn{background:var(--chip-bg);color:var(--heading);border:0;border-radius:8px;padding:6px 11px;font-size:12px;font-weight:600;cursor:pointer;display:none}
#logoutBtn:hover{background:var(--surface-hover)}
#evModal .evbox{background:var(--surface);border-radius:14px;max-width:560px;width:94%;max-height:88vh;overflow:hidden;box-shadow:var(--shadow-md);display:flex;flex-direction:column}
.evhead{background:var(--gradient-warm);color:#fff;padding:16px 20px;display:flex;align-items:center;gap:14px}
.evback{background:rgba(255,255,255,.22);color:#fff;border:0;width:34px;height:34px;border-radius:50%;font-size:18px;cursor:pointer;flex:0 0 auto;line-height:1}
.evtitle{font-size:20px;font-weight:bold;line-height:1.15}
.evsub{font-size:12.5px;opacity:.9;margin-top:2px}
.evbody{padding:12px 16px 14px;overflow-y:auto;overflow-x:hidden;flex:1 1 auto;min-height:0;-webkit-overflow-scrolling:touch}
.evbloc{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:11px 13px;margin-top:4px}
.evbloc-x{font-size:12.5px;color:var(--text-soft);margin-bottom:9px;line-height:1.45}
.evbloc-b{display:flex;gap:7px;flex-wrap:wrap}
@media(max-width:640px){ .evbloc-b .btn{flex:1 1 auto} }
.evsec{font-weight:bold;color:var(--heading);font-size:13px;margin:11px 0 5px;border-bottom:2px solid var(--border);padding-bottom:4px}
.evsec:first-child{margin-top:2px}
.evgrid{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px;margin-bottom:2px}
.evrow{display:flex;flex-direction:column;gap:0;padding:4px 0;border-bottom:1px solid var(--border-soft);min-width:0}
.evrow-w{grid-column:1 / -1}
.evrow .k{color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.02em;line-height:1.2}
.evrow .v{color:var(--text);font-weight:600;font-size:13px;word-break:break-word;line-height:1.3}
tr.evrowclick{cursor:pointer}
tr.evrowclick:hover td{background:var(--surface-hover) !important}
.hdot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:middle;flex:none}
.hdot-green{background:#2e9e4f}
.hdot-yellow{background:#e6a417;border-radius:1px;transform:rotate(45deg)}
.hdot-red{background:#d0402b;border-radius:1px}
.hdot-click{cursor:pointer;width:12px;height:12px;box-shadow:0 0 0 2px var(--surface),0 0 0 3px rgba(120,140,170,.4)}
.hdot-click:hover{box-shadow:0 0 0 2px var(--surface),0 0 0 4px rgba(120,140,170,.65)}
/* UX Fase 1 — área táctil más grande en mobile para puntitos y toggles */
@media (max-width:640px){
  .hdot-click{position:relative}
  .hdot-click::after{content:"";position:absolute;inset:-15px}
  /* Nada debe pasarse del ancho de la pantalla (salvo las tablas con scroll propio) */
  html,body{max-width:100%;overflow-x:hidden}
  .wrap,.content,.panel,.layout{max-width:100%;box-sizing:border-box;min-width:0}
  .panel>*{max-width:100%;box-sizing:border-box}
  img,canvas,svg,pre{max-width:100%;height:auto}
  input,select,textarea,button{max-width:100%;box-sizing:border-box}
  .ctrl,.ntform,.ntreq-row,.evtop,.plantel-cols,.kpi,.head{min-width:0;flex-wrap:wrap}
  /* el pie del sidebar es una columna: si envuelve, los items se van a una segunda columna fuera de la barra */
  .side-bottom{min-width:0;flex-wrap:nowrap}
  .side-account,.side-reload,.side-bottom .upd{width:100%;max-width:100%;box-sizing:border-box}
  .ctrl>*,.ntform>*{min-width:0;max-width:100%}
  #capChartWrap,#capHeatWrap,#capResult,#djCalCard,#djFilterBar,#dealsKpi,#sosLegend{max-width:100%;box-sizing:border-box;overflow-wrap:anywhere}
  .rqcard,.ntreq-form,.rqcheck{max-width:100%;box-sizing:border-box;overflow-wrap:anywhere}
  .modal-box,#evModal .evbox,#sugModal .evbox,#notasModal .evbox{max-width:calc(100vw - 20px);box-sizing:border-box}
  .navtoggle{min-width:44px;min-height:44px;justify-content:center}
  .themeswitch{min-height:44px;display:inline-flex;align-items:center}
  .head{padding-top:4px}
  .djtabhead .ntoggle{padding:8px 12px}
}
.dotpop{position:absolute;z-index:9999;display:none;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow-md);padding:11px 13px;min-width:180px;max-width:240px}
.evstatus{display:inline-block;font-weight:700;font-size:13px;padding:5px 13px;border-radius:8px}
.evtop{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:8px;margin:2px 0 8px;padding:9px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:11px}
.evtop-item{flex:1;min-width:140px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;text-align:center}
.evtop-item+.evtop-item{border-left:1px solid var(--border)}
.evtop-solo{flex-direction:row;align-items:center;justify-content:center;gap:9px}
.evsub-link{color:#fff;font-weight:800;text-decoration:underline}
.evsub-link:hover{opacity:.85}
.evtop-lbl{font-size:10.5px;color:var(--text-dim);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.evid-link{font-size:17px;font-weight:800;color:var(--link);text-decoration:none}
.evid-link:hover{text-decoration:underline}
.evid-plain{font-size:17px;font-weight:800;color:var(--heading)}
.evinfocell{white-space:nowrap}
.evinfocell .hdot{vertical-align:middle;margin-right:8px}
.verinfo{vertical-align:middle}
#djLegend,#mLegend{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;width:100%;margin:4px 0 2px}
#djLegend .djleg,#mLegend .djleg{flex:1 1 0;min-width:86px;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
#djLegend .djleg-h,#mLegend .djleg-h{display:flex;align-items:center;justify-content:center;gap:5px;font-size:11.5px;color:var(--text-muted);line-height:1.15}
#djLegend .djleg-n,#mLegend .djleg-n{font-weight:800;font-size:19px;line-height:1}
#djLegend .hdot{margin-right:0}
#djLegend .hp{width:19px;height:19px}
#djTable .djtabhead,#mTable .djtabhead{background:var(--brand-navy);color:#fff;font-weight:700;text-align:center;padding:9px 12px;font-size:14px;position:relative}
.djtabhead .ntoggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:4px 9px;cursor:pointer;line-height:0}
.djtabhead .ntoggle.on{background:rgba(255,255,255,.32)}
.djtabhead .ntoggle:hover{background:rgba(255,255,255,.34)}
#djTable,#mTable{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.djcard{display:flex;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid var(--border-soft)}
.djcard:last-child{border-bottom:0}
.djcard:nth-child(even){background:var(--surface-3)}
.djcard-dot{flex:0 0 30px;display:flex;align-items:center;justify-content:center}
.djcard-dot .hdot{margin:0}
.djcard-dot .ntico{font-size:15px;line-height:1}
.hp{display:inline-block;vertical-align:middle;flex:0 0 auto}
.hp-green{color:#2e9e4f}
.hp-yellow{color:#e6a417}
.hp-red{color:#d0402b}
.djcard-mid{flex:1 1 auto;min-width:0}
.djcard-top{display:flex;align-items:baseline;gap:0 8px;font-size:13px;line-height:1.3}
.djcard-top .f{flex:0 0 60px;color:var(--text)}
.djcard-top .d{flex:0 0 66px;font-weight:700;color:var(--heading)}
.djcard-top .t{flex:1 1 auto;min-width:0;color:var(--text-soft);font-weight:600}
.djcard-top .sep{display:none}
.djcard-lugar{font-size:12.5px;color:var(--text-soft);margin-top:3px;word-break:break-word;line-height:1.3;text-align:left}
.sech{font-size:15px;font-weight:700;color:var(--heading);margin:6px 2px 8px}
.djcard-info{flex:0 0 auto}
.djcard.ntrow .djcard-top{color:var(--text-muted)}
.djhead{display:none}
@media(min-width:641px){
  #djTable .djhead,#mTable .djhead{display:flex;background:var(--brand-violet)}
  #djTable .djhead .djcard-lugar,#djTable .djhead .f,#djTable .djhead .d,#djTable .djhead .t,#mTable .djhead .djcard-lugar,#mTable .djhead .f,#mTable .djhead .d,#mTable .djhead .t{color:#fff!important;font-weight:bold;margin-top:0}
  .djcard-mid{display:flex;flex-direction:row;align-items:baseline;text-align:left;gap:16px}
  .djcard-top{display:contents}
  .djcard-top .sep{display:none}
  .djcard .pin{display:none}
  .djcard-top .f{flex:0 0 92px}
  .djcard-top .d{flex:0 0 88px}
  .djcard-top .t{flex:0 0 92px}
  .djcard-lugar{flex:1 1 auto;margin-top:0;text-align:left}
}
.evst-ok{background:#e3f6ea;color:#1c7c3a;border:1px solid #b7e3c6}
.evst-pend{background:#fdf3dd;color:#8a6100;border:1px solid #f0dca0}
.evst-bad{background:#fbe6e2;color:#c0392b;border:1px solid #f0c1b8}
@media (max-width:640px){ .evtitle{font-size:18px} .evhead{padding:12px 16px} }
/* Cargador de eventos */
#p-cargar .block{border:1px solid var(--border);border-radius:14px;padding:16px 18px 18px;margin-top:16px;position:relative;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.05),0 10px 28px -20px rgba(0,0,0,.4)}
#p-cargar .block.dup{border-color:#e0a94b;box-shadow:0 0 0 2px rgba(224,169,75,.18)}
#p-cargar .block-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid var(--border)}
#p-cargar .block-t{font-size:14px;font-weight:700;color:var(--heading);letter-spacing:.01em}
#p-cargar .rm{font-size:12px;color:#c0392b;background:none;border:none;cursor:pointer;font-weight:600}
#p-cargar .rm:disabled{color:#c9c6bf;cursor:default}
#p-cargar .grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-top:8px}
#p-cargar .field{display:flex;flex-direction:column;gap:5px;font-size:12px}
#p-cargar .field>span{color:var(--text-muted);font-weight:600}
#p-cargar .field i{color:#c0392b;font-style:normal}
#p-cargar .field input[type=text],#p-cargar .field input[type=email],#p-cargar .field input[type=date],#p-cargar .field select{font-size:13.5px;border:1px solid var(--border-input);border-radius:9px;padding:9px 11px;width:100%;background:var(--surface);color:var(--text);min-width:0}
#p-cargar .field.check{flex-direction:row;align-items:center;justify-content:space-between;border:1px solid var(--border);border-radius:9px;padding:9px 11px}
#p-cargar .field.check input{width:17px;height:17px;min-width:0}
#p-cargar .ac-list{position:absolute;top:100%;left:0;right:0;z-index:60;background:var(--surface);border:1px solid var(--border-input);border-top:none;border-radius:0 0 9px 9px;max-height:220px;overflow:auto;box-shadow:0 8px 20px rgba(20,40,80,.14)}
#p-cargar .ac-item{padding:8px 11px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--border-soft)}
#p-cargar .ac-item:hover{background:var(--surface-hover)}
#p-cargar .ac-empty{padding:8px 11px;font-size:12px;color:var(--text-dim)}
#p-cargar .ac-load{color:var(--heading);font-weight:600;animation:acpulse 1s ease-in-out infinite}
@keyframes acpulse{0%,100%{opacity:.45}50%{opacity:1}}
@media(max-width:560px){ #p-cargar .grid{grid-template-columns:1fr} }
@media(max-width:640px){ .capcols{grid-template-columns:1fr !important} }
/* Login (design system) */
#loginOverlay,#firstRunOverlay{font-family:var(--font-sans)}
#loginOverlay::before,#firstRunOverlay::before{content:"";position:absolute;inset:0;background:rgba(11,11,18,.42);pointer-events:none}
.loginbox{position:relative;z-index:1;background:rgba(18,18,26,.55);backdrop-filter:blur(18px) saturate(130%);-webkit-backdrop-filter:blur(18px) saturate(130%);color:#fff;padding:46px 24px 40px;border-radius:var(--radius-xl);width:100%;max-width:352px;text-align:center;box-shadow:0 20px 54px rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.14)}
.login-title{margin:8px 0 2px;font-size:27px;font-weight:800;font-family:var(--font-sans)}
.login-sub{color:rgba(255,255,255,.78);font-size:13px;margin:0 0 16px;line-height:1.4}
.login-in{width:100%;box-sizing:border-box;padding:12px;border:1px solid rgba(255,255,255,.28);border-radius:var(--radius-md);font-size:16px;background:rgba(255,255,255,.96);color:#1a1a1a;margin-bottom:9px}
.login-in::placeholder{color:#8a8a8a}
.login-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:0;cursor:pointer;font-size:17px;line-height:1;padding:2px}
.login-cta{width:100%;background:var(--gradient-violetmagenta);color:#fff;border:0;border-radius:var(--radius-full);padding:12px;font-size:15px;font-weight:700;cursor:pointer;margin-top:2px}
.login-cta:hover{filter:brightness(1.08)}

/* Demanda por DJ */
#demBody .demn{text-align:center;white-space:nowrap}
#demBody .demlead b{color:var(--brand-magenta)}
#demBody table th{white-space:nowrap}
#demBody td:first-child{white-space:nowrap;font-weight:600}
.demnota{margin-top:10px;font-size:12px;color:var(--status-warning);line-height:1.4}

/* Panel Demanda por DJ */
.mgev{font-weight:650;color:var(--text-soft);white-space:nowrap;margin:0}
.demtot{font-size:15px;color:var(--text-soft);margin:2px 0 14px}
.demtot b{font-size:24px;color:var(--heading);font-weight:800;margin-right:4px}
.demblq{margin:0 0 18px}
.demblq-t{font-weight:700;font-size:14px;margin:0 0 8px;color:var(--heading)}
.demcols{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:820px){.demcols{grid-template-columns:1fr}}
.demtab{width:100%;border-collapse:collapse;font-size:12.5px}
.demtab td{padding:5px 8px;border-bottom:1px solid var(--border-soft);vertical-align:middle}
.demtab td:first-child{white-space:nowrap;max-width:190px;overflow:hidden;text-overflow:ellipsis}
.demtab .demn{width:44px;text-align:right}
.dembar{width:100%;min-width:70px}
.dembar span{display:block;height:7px;border-radius:999px;background:var(--gradient-primary);min-width:3px}

/* Centro de informes */
.demctrl{margin-bottom:10px}
.demsel{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 16px}
@media(max-width:820px){.demsel{grid-template-columns:1fr}}
.demsel label{display:block;font-size:12px;color:var(--text-soft);margin-bottom:4px}
.demsel select{width:100%;font-size:12.5px;padding:4px}
.demkpis{display:flex;gap:22px;flex-wrap:wrap;margin:4px 0 18px;padding:12px 14px;background:var(--surface-2);border-radius:12px}
.demkpi{font-size:13px;color:var(--text-soft);display:flex;align-items:baseline;gap:6px}
.demkpi b{font-size:26px;font-weight:800;color:var(--heading)}
.demaviso{font-size:11.5px;color:var(--text-dim);margin:0 0 8px;line-height:1.4;max-width:760px}

/* Listas de seleccion del centro de informes */
.demsel-t{display:block;font-size:12px;font-weight:650;color:var(--text-soft);margin-bottom:5px}
.demchk{border:1px solid var(--border);border-radius:10px;background:var(--surface);max-height:190px;overflow:auto}
.demchk-a{display:flex;align-items:center;gap:6px;padding:7px 9px;border-bottom:1px solid var(--border-soft);position:sticky;top:0;background:var(--surface-2);z-index:1}
.demchk-n{margin-left:auto;font-size:11px;color:var(--text-dim);white-space:nowrap}
.demchk-i{display:flex;align-items:center;gap:7px;padding:5px 10px;font-size:12.5px;cursor:pointer;line-height:1.3}
.demchk-i:hover{background:var(--surface-hover)}
.demchk-i input{margin:0;flex:0 0 auto}

.demchk-b{flex:1 1 90px;min-width:70px;font-size:12px;padding:3px 8px;border:1px solid var(--border-input);border-radius:999px;background:var(--input-bg);color:var(--text)}
.demchk-b::-webkit-search-cancel-button{cursor:pointer}
.demchk{max-height:230px}

.demsub{font-size:10.5px;font-weight:500;color:var(--text-dim);white-space:nowrap}
#demBody th.demsub{padding-left:4px;padding-right:4px}

/* Panel de notificaciones */
.ncfila{border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin-bottom:10px;background:var(--surface)}
.ncfila-t{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ncfila-t .btn{margin-left:auto}
.ncmail{font-size:11px;color:var(--text-dim);background:var(--surface-2);border-radius:999px;padding:2px 8px}
.ncfila-c{display:grid;grid-template-columns:1fr 2fr;gap:8px;margin-top:8px}
@media(max-width:820px){.ncfila-c{grid-template-columns:1fr}}
.ncfila-c input{font-size:12.5px;padding:6px 8px;border:1px solid var(--border-input);border-radius:8px;background:var(--input-bg);color:var(--text)}

/* Equipo del DJ en Plantel y filas de ruteo del panel de notificaciones */
.pequipo{font-size:10px;font-weight:700;border-radius:999px;padding:2px 7px;background:var(--surface-2);color:var(--text-soft);cursor:pointer;border:1px solid var(--border);margin-left:6px;white-space:nowrap}
.pequipo:hover{background:var(--surface-hover)}
.ncdest{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px dashed var(--border-soft)}
.ncdest select{font-size:12.5px;padding:4px 6px;max-width:240px}
.ncdest .chk{font-size:12px}


/* ===== Anuncio de notificaciones push ===== */
/* mismo fondo que el login de noche, con un velo del navy de marca (#0b0b12) para que la tarjeta destaque */
.anpush-ov{position:fixed;inset:0;z-index:9999;background:linear-gradient(rgba(11,11,18,.35),rgba(11,11,18,.55)),url("/bg-night.jpg") center/cover no-repeat;display:flex;align-items:center;justify-content:center;padding:16px;}
.anpush-card{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-xl);max-width:440px;width:100%;padding:20px 22px;box-shadow:0 20px 60px rgba(0,0,0,.45);max-height:90vh;overflow:auto;}
.anpush-t{font-weight:800;font-size:19px;margin-bottom:12px;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;color:transparent;}
.anpush-mock{background:var(--bg-subtle);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:12px;display:flex;flex-direction:column;gap:8px;margin-bottom:12px;}
.anpush-n{display:flex;align-items:center;gap:10px;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:14px;padding:10px 12px;box-shadow:0 4px 14px rgba(0,0,0,.18);}
.anpush-ni{flex:0 0 34px;width:34px;height:34px;border-radius:9px;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;}
.anpush-nt{flex:1;min-width:0;display:flex;flex-direction:column;font-size:12.5px;line-height:1.3;}
.anpush-nt b{font-size:13px;}
.anpush-nt small{color:var(--text-secondary);}
.anpush-h{font-size:10.5px;color:var(--text-muted);align-self:flex-start;}
.anpush-x{font-size:13.5px;line-height:1.45;color:var(--text-secondary);margin-bottom:10px;}
.anpush-x b{color:var(--text-primary);}
.anpush-g{font-size:12.5px;line-height:1.55;color:var(--text-secondary);background:var(--bg-subtle);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:10px 12px;margin-bottom:10px;}
.anpush-b{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px;}


/* ===== Tableros de clasificacion de cuentas (equipos y los que vengan) =====
   Cards en tono cool para distinguirlas de las de DJs del tablero de categorias. */
.eqchip{display:block;box-sizing:border-box;margin:4px 0;padding:7px 10px;border-radius:10px;cursor:grab;border:1px solid var(--brand-cyan);background:color-mix(in srgb, var(--brand-cyan) 10%, var(--bg-surface));overflow-wrap:anywhere;word-break:break-word;font-size:12.5px;line-height:1.3;color:var(--text-primary);}
.eqchip b{display:block;font-size:13px;}
.eqchip small{display:block;color:var(--text-secondary);overflow-wrap:anywhere;}
.eqchip.eqmini{display:inline-block;margin:0;}
.eqcol{flex:1;min-width:190px;max-width:280px;}
#eqSinZona{max-width:none;flex:none;width:100%;box-sizing:border-box;}
#eqSinZona .pdrop{display:flex;gap:6px;flex-wrap:wrap;}

/* Cards del tablero de clases de cuentas: tono violeta para distinguirlas del de equipos */
.clchip{display:block;box-sizing:border-box;margin:4px 0;padding:7px 10px;border-radius:10px;cursor:grab;border:1px solid var(--brand-violet);background:color-mix(in srgb, var(--brand-violet) 10%, var(--bg-surface));overflow-wrap:anywhere;word-break:break-word;font-size:12.5px;line-height:1.3;color:var(--text-primary);}
.clchip b{display:block;font-size:13px;}
.clchip small{display:block;color:var(--text-secondary);overflow-wrap:anywhere;}
.clchip.eqmini{display:inline-block;margin:0;}
.clcol h4 .clx{border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:12px;padding:0 4px;border-radius:6px;}
.clcol h4 .clx:hover{color:var(--status-danger);background:var(--bg-subtle);}

/* Secciones plegables del Plantel: cada clasificacion en su propio acordeon */
.plsec{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);margin:10px 0;}
.plsec>summary{cursor:pointer;padding:12px 14px;font-size:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;list-style:none;}
.plsec>summary::-webkit-details-marker{display:none;}
.plsec>summary::before{content:"\25B8";color:var(--text-muted);transition:transform .15s;}
.plsec[open]>summary::before{transform:rotate(90deg);}
.plsec-h{color:var(--text-secondary);font-size:12px;font-weight:400;}
.plsec>*:not(summary){margin-left:14px;margin-right:14px;}
.plsec>:last-child:not(summary){margin-bottom:12px;}

/* Quitar una clase desde la card, y casillas de clases en la ficha */
.clchip .clqx{float:right;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:11px;padding:0 2px;border-radius:6px;margin-left:6px;}
.clchip .clqx:hover{color:var(--status-danger);background:var(--bg-subtle);}
/* casillas de clases en grilla pareja: simetria ante todo */
.uclases{display:flex;flex-wrap:wrap;gap:6px 16px;padding:6px 0;}
.uclases .chk{font-size:12px;display:flex;align-items:center;gap:6px;white-space:nowrap;}
.uclases .chk input{flex:0 0 auto;width:auto;}
.ugrid .ufld:has(.uclases){grid-column:1/-1;}


/* ===== Cargador de productora y Buscar y modificar ===== */
.cgsel{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;}
.cgopt{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 16px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;text-align:left;}
.cgopt small{color:var(--text-muted);font-size:12px;}
.cgopt{opacity:.72;}
.cgopt.on{opacity:1;}
/* cada cargador tiene su color: cyan la agencia, violeta la productora */
.cgopt.cg-ag b{color:var(--brand-cyan);}
.cgopt.cg-pr b{color:var(--brand-violet);}
.cgopt.cg-ag.on{border-color:var(--brand-cyan);box-shadow:0 0 0 1px var(--brand-cyan) inset;background:color-mix(in srgb, var(--brand-cyan) 10%, var(--bg-surface));}
.cgopt.cg-pr.on{border-color:var(--brand-violet);box-shadow:0 0 0 1px var(--brand-violet) inset;background:color-mix(in srgb, var(--brand-violet) 10%, var(--bg-surface));}
.ldp-cont{display:contents;}
.ldp-c2wrap{margin:4px 0;}
.ldp-c2{border:1px dashed var(--border-default);border-radius:var(--radius-md);padding:10px 12px;margin-top:8px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 14px;}
.ldp-c2 .ldp-cont{display:contents;}
.ldp-c2.ldp-hi{border-color:var(--status-warning);box-shadow:0 0 0 1px var(--status-warning) inset;}
.ldp-lock{opacity:.62;position:relative;}
.ldp-lock span::after{content:" 🔒";font-size:11px;}
.evb-caja{display:flex;gap:10px;align-items:center;}
.evb-caja input{flex:1;min-width:0;}
.evb-card{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface);padding:12px 14px;margin-bottom:12px;}
.evb-fila1{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.evb-num{font-weight:800;color:var(--brand-cyan);text-decoration:none;white-space:nowrap;}
a.evb-num:hover{text-decoration:underline;}
.evb-nombre{flex:1;min-width:200px;font-size:13.5px;}
.evb-acc{display:flex;gap:8px;margin-left:auto;}
.evb-acc .btn{border-radius:var(--radius-full);width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;}
.evb-fila2{font-size:12.5px;color:var(--text-secondary);margin:6px 0 8px;}
.evb-cargado{color:var(--text-muted);}
.evb-pastillas{display:flex;flex-wrap:wrap;gap:8px;}
.evb-p{font-size:11.5px;font-weight:650;padding:4px 10px;border-radius:var(--radius-full);border:1px solid var(--border-default);background:var(--bg-subtle);color:var(--text-secondary);cursor:pointer;}
.evb-p.evb-ok{border-color:color-mix(in srgb, var(--status-success) 45%, transparent);color:var(--status-success);}
.evb-p.evb-warn{border-color:color-mix(in srgb, var(--status-warning) 55%, transparent);color:var(--status-warning);}
.evb-p.evb-no{color:var(--text-muted);}
.evb-det{margin-top:10px;padding:9px 12px;border-left:3px solid var(--border-strong);background:var(--bg-subtle);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:12.5px;line-height:1.7;}
.evb-st-ok{color:var(--status-success);font-weight:700;}
.evb-st-warn{color:var(--status-warning);font-weight:700;}
.evb-st-bad{color:var(--status-danger);font-weight:700;}
.evb-tach{text-decoration:line-through;opacity:.6;}


/* La card del evento hereda el color del cargador elegido: gradiente cool en agencia,
   violeta-magenta en productora. El aviso naranja de duplicado sigue ganando. */
#cgAg .block{border:2px solid transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box, var(--gradient-cool) border-box;}
#cgPr .block{border:2px solid transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box, var(--gradient-violetmagenta) border-box;}
#cgAg .block.dup, #cgPr .block.dup{border:1px solid #e0a94b;background:var(--surface-2);}

/* ===== Bloc de reuniones: dos columnas con scroll propio en computadora ===== */
#notasModal .evbox.bloc-wide{max-width:1280px;width:96%;height:92vh;max-height:92vh}
/* La grilla del bloc: dos columnas, y una fila de pie compartida para que la línea
   divisoria sea una sola (notas | próximamente — timing | herramientas) */
.bloc2col{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto minmax(0,1fr) auto;grid-auto-flow:column;flex:1 1 auto;min-height:0}
.bloc-colh{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-soft);padding:10px 14px 8px;border-bottom:1px solid var(--border);background:var(--surface-2)}
.bloc-scroll{min-height:0;overflow-y:auto;overflow-x:hidden;padding:12px 14px 16px;-webkit-overflow-scrolling:touch}
.bloc-foot{border-top:0;position:relative;background:var(--surface);padding:13px 14px calc(10px + env(safe-area-inset-bottom,0px))}
.cel-t{border-left:1px solid var(--border)}
#notasModal .evbox.bloc-wide .evbody{display:flex;flex-direction:column;padding:0;overflow:hidden}
#notasModal .evbox.bloc-wide .notabar{padding:6px 14px;border-top:1px solid var(--border);margin-top:0;background:var(--surface)}
#notasModal .evbox.bloc-wide .bloc-tabsmovil{margin:10px 14px 0}
@media(min-width:980px){
  .bloc-tabsmovil{display:none}
  .bloc2col .mov-off{display:block}
  .bloc-scroll.mov-off{display:block}
}
@media(max-width:979px){
  /* una sola columna: el scroll toma la fila flexible y el pie queda como barra fija abajo
     (con el flujo de escritorio, el pie caía en la fila elástica y se aplastaba) */
  .bloc2col{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;grid-auto-flow:row}
  .cel-t{border-left:0}
  .bloc2col .mov-off{display:none}
  .bloc-colh{display:none}
  #notasModal .evbox.bloc-wide{height:94vh;max-height:94vh;width:98%}
}
.bloc-robar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--text-soft);background:var(--surface-2);border-bottom:1px solid var(--border);padding:9px 14px}
.bloc-robar .bloc-editbtn{margin-left:auto}
.bloc-rofs{border:0;padding:0;margin:0;min-width:0}
.bloc-rofs .nbb-x,.bloc-rofs .tmb-x,.bloc-rofs .nbb-drag,.bloc-rofs .tmb-drag{visibility:hidden}
.bloc-rofs input,.bloc-rofs textarea,.bloc-rofs select{opacity:.88}
.tmfiesta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:2px solid transparent;border-radius:12px;padding:10px 13px;margin-bottom:11px;background:linear-gradient(var(--surface-2),var(--surface-2)) padding-box, var(--gradient-primary) border-box}
.tmfiesta-i{font-size:17px;line-height:1}
.tmfiesta label{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:650;color:var(--text-soft)}
.tmfiesta-d{font-size:12px;color:var(--text-soft);background:var(--surface-3);border-radius:999px;padding:3px 10px}
.tmb-hs{font-size:11.5px;color:var(--text-muted)}
.tmok{color:var(--status-success);font-weight:650}
.tmlibre{color:var(--text-soft)}
.tmpasado{color:var(--status-warning);font-weight:650}
.tmb-err:not(:empty){color:var(--status-danger);font-size:11.5px}
.tmgen{border-top:1px dashed var(--border);padding-top:10px;margin-top:6px}
.tmchip{position:relative}
.tmchip-d{font-size:10px;color:var(--text-muted);font-weight:600;margin-left:4px}
.nblinkfila{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.nblinkfila .nblink{flex:1 1 auto;min-width:0}
.nbver{flex:0 0 auto;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text-soft);font-family:inherit;font-size:11px;font-weight:700;padding:5px 9px;cursor:pointer}
.nbver:hover{border-color:var(--brand-cyan);color:var(--text)}
.nbiframe{flex:1 1 100%;width:100%;border:0;border-radius:10px;margin-top:2px}
.nbops{display:flex;flex-direction:column;gap:7px}
.nbops-r{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.nbops-r .nbf{flex:1 1 auto;min-width:0;width:auto}
.nbops-fav{flex:0 0 auto;width:30px;height:30px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:15px;line-height:1;cursor:pointer;color:var(--text-muted);padding:0}
.nbops-r.fav .nbops-fav{background:var(--gradient-warm);border-color:transparent;color:#fff}
.nbops-r.fav .nbf{border-color:var(--brand-magenta);font-weight:650}
.nbimg{display:block;max-width:100%;max-height:340px;border-radius:10px;border:1px solid var(--border);cursor:zoom-in;background:var(--surface-3);min-height:60px}
.nbimg.rota{min-height:34px}
.nbb-img .nbb-c{gap:8px}
.nbb-ref{border-left:3px solid var(--brand-violet)}
.nbref{font-size:13px;line-height:1.5}
.nbref-h{display:inline-block;background:var(--surface-3);border-radius:7px;padding:2px 8px;font-weight:700;font-size:12px;color:var(--heading)}
.musf-extra .musf-nom{width:70%;font-size:11.5px;border:0;border-bottom:1px dashed var(--border-strong);background:none;color:var(--text-muted);font-family:inherit;padding:2px 4px}
.musf-fila{display:flex;gap:6px;align-items:center}
.musf-fila input{flex:1 1 auto;min-width:0}
#p-reuni .ndit-t{font-size:14px}

/* los campos de hora no se estiran: el min-width global de inputs no aplica aca */
input.hh24{min-width:0;width:62px}
input.hh24-g{width:78px}
/* el ancho angosto del bloc viejo pasa al CSS (la vista de agencia lo usa); bloc-wide lo pisa */
#notasModal .evbox{max-width:620px}

/* ===== Ronda 2 del bloc: titulo grande, slots de una linea, pares de colores, herramientas fijas ===== */
.bloc-wide .evtitle{font-size:23px;line-height:1.15}
.evtitle-edit{cursor:pointer;border-bottom:1px dashed rgba(255,255,255,.55)}
.bloc-editbtn.pulso{animation:blocpulso .7s ease}
@keyframes blocpulso{0%{transform:scale(1)}30%{transform:scale(1.12);box-shadow:0 0 0 4px rgba(139,92,246,.35)}100%{transform:scale(1)}}
.nbf-l.nbf-uno{min-height:38px;line-height:1.45}
.nbpax .nbpax-n{flex:0 1 120px;min-width:90px;width:auto}
.nbpax-ap{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-soft);cursor:pointer;white-space:nowrap}
.nbpax-more{margin-top:7px;border:1px dashed var(--border);border-radius:9px;padding:0 10px 8px}
.nbpax-more>summary{cursor:pointer;font-size:12px;font-weight:650;color:var(--text-soft);padding:8px 0;list-style:none}
.nbpax-more>summary::-webkit-details-marker{display:none}
.nbpax-more>summary::before{content:"\25B8 "}
.nbpax-more[open]>summary::before{content:"\25BE "}
.nbentrada-no{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text-soft);cursor:pointer;margin-top:4px}
.nbsoon{margin-top:14px;border:1px dashed var(--border-strong);border-radius:12px;padding:13px 15px;text-align:center}
.nbsoon-t{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--gradient-primary);border-radius:999px;padding:3px 11px;margin-bottom:6px}
.nbsoon-x{font-size:12.5px;color:var(--text-soft);margin-bottom:9px}
.nbsoon-l{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.nbsoon-app{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:650;color:var(--text-muted)}
.nbsoon-app svg{opacity:.75}
.recibiendo-img{outline:2px dashed var(--focus-ring);outline-offset:-6px}
/* (el pie del timing vive ahora en .bloc-foot) */
.tmtools .nbtool-b{margin-bottom:8px}
.tmchip.off{opacity:.38;cursor:default}
.tmtools .tmshare{margin-top:0;padding-top:0;border-top:0}
.tmpdf>summary{width:auto;height:auto;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--text-soft);font-size:12px;font-weight:600;padding:6px 11px;font-family:inherit}
.tmpdf .tmmenu-b{bottom:calc(100% + 4px);top:auto}
.tmbar-slim{padding:4px 0;background:none;border:0;justify-content:flex-end;margin-bottom:6px}
.tmbar-slim .tmbar-a{margin-left:auto}
.tmb.mini{align-items:center;gap:8px;padding:7px 10px}
.tmb-minih{font-size:13px;color:var(--heading);flex:0 0 auto}
.tmb-minit{flex:1 1 auto;min-width:0;font-size:13px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tmb-minid{flex:0 0 auto;font-size:11.5px;color:var(--text-muted)}
.tmb-chev{font-size:11px}
.cerhd{align-items:center;font-size:12.5px;color:var(--text-soft)}
.cerhd select{min-width:0}

/* ===== Ronda 3 del bloc: pantalla completa, letra agrandable y texto con formato ===== */
.bloc-hbtns{margin-left:auto;display:flex;gap:6px;flex:0 0 auto}
.bloc-hbtns button{background:rgba(255,255,255,.22);color:#fff;border:0;height:32px;min-width:34px;border-radius:8px;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;line-height:1;padding:0 8px}
.bloc-hbtns button:hover{background:rgba(255,255,255,.34)}
#notasModal .evbox.bloc-max{max-width:100vw;width:100vw;height:100vh;max-height:100vh;border-radius:0}
#notasModal.modal-bg{padding:0}
.nbf-ce{min-height:38px;line-height:1.55;white-space:pre-wrap;word-break:break-word;cursor:text;overflow:auto}
.nbf-ce:not(.nbf-uno){min-height:110px}
.nbf-ce:empty::before{content:attr(data-ph);color:var(--text-muted);pointer-events:none}
.nbf-ce:focus{outline:2px solid var(--focus-ring);outline-offset:1px}
.bloc-foot .tmshare{margin:0;padding:0;border:0}
.bloc-foot .nbsoon{margin:0;border:0;padding:0;text-align:left;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.bloc-foot .nbsoon-t{margin:0}
.bloc-foot .nbsoon-x{margin:0;font-size:12px}
.bloc-foot .nbsoon-l{display:inline-flex;gap:12px}

/* ===== Ronda 4 del bloc: pies pulidos, scroll contenido y notas de otros DJs ===== */
.bloc-foot .nbsoon{justify-content:center;text-align:center}
.bloc-scroll{overscroll-behavior:contain}
.bloc-foot,.evbody{overscroll-behavior:contain}
body.bloc-lock{overflow:hidden}
.tmgen2{gap:5px;margin-bottom:8px}
.tmgen2 .nbchip{padding:5px 10px;font-size:12px}
.tmchip-add{background:var(--gradient-primary);color:#fff;border-color:transparent;font-weight:700}
.tmchip-add:hover{filter:brightness(1.08);color:#fff;background:var(--gradient-primary)}
.bloc-foot .tmshare{border-top:1px dashed var(--border);padding-top:9px;margin-top:2px}
.nbotra{border-left:3px solid var(--border-strong);background:var(--surface)}
.nbotras{margin-top:6px}

/* La nota libre es la hoja donde se anota casi todo: manda en la columna */
.nbb-hoja{border:2px solid transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box, var(--gradient-primary) border-box;box-shadow:0 1px 2px rgba(0,0,0,.05),0 10px 26px -18px rgba(0,0,0,.4);padding:14px}
.nbb-hoja .nbf-ce{font-size:15px;line-height:1.6;min-height:170px}
.nbb-hoja .nbf-ce:empty::before{font-size:15px}

/* La barra que separa el scroll de las herramientas fijas: fina pero con la marca */
.bloc-foot::before{content:"";position:absolute;top:0;left:0;right:0;height:3px}
.bloc-foot.cel-n::before{background:var(--gradient-cool)}
.bloc-foot.cel-t::before{background:var(--gradient-violetmagenta)}

/* La fila de compartir con su propio gradiente de marca (warm), distinto del primary */
.bloc-foot .tmshare{background:var(--gradient-warm);border-top:0;border-radius:10px;padding:8px 12px;margin-top:8px}
.bloc-foot .tmshare b{font-size:12px;color:#fff}

/* El pie fijo lleva el mismo gradiente que el encabezado del evento */
.bloc-foot{background:var(--gradient-cool)}
.bloc-foot .nbtool-p,.bloc-foot .nbsoon-x{color:#fff}
.bloc-foot .nbsoon-app{color:#fff}
.bloc-foot .nbsoon-app svg{opacity:.95}
.bloc-foot .nbsoon-t{box-shadow:0 1px 4px rgba(0,0,0,.25)}
.bloc-foot .tmshare{box-shadow:0 1px 4px rgba(0,0,0,.18)}

/* El pie es UNA sola barra continua: cada columna muestra su mitad del mismo gradiente */
.bloc-foot{background:var(--gradient-cool);background-size:200% 100%}
.bloc-foot.cel-n{background-position:0 0}
.bloc-foot.cel-t{background-position:100% 0;border-left:0}
.bloc-foot::before{content:none}
@media(max-width:979px){.bloc-foot{background-size:100% 100%}}

/* La barra fija va sobria: navy de marca de punta a punta; los gradientes resaltan encima */
.bloc-foot{background:var(--brand-navy);background-size:auto;background-position:0 0}
.bloc-foot .nbsoon-t{background:var(--gradient-junglepulse);color:#0b2b1f;box-shadow:0 1px 4px rgba(0,0,0,.3)}

/* ===== Ronda 5 del bloc: modo lectura evidente y todo mas compacto ===== */
.bloc-robar{background:var(--gradient-primary);color:#fff;border-bottom:0;font-size:13px;padding:9px 14px}
.bloc-robar b{color:#fff}
.bloc-editbtn{margin-left:auto;background:#fff;color:var(--brand-navy);border:0;border-radius:9px;font-family:inherit;font-weight:800;font-size:13px;padding:8px 15px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.28)}
.bloc-editbtn:hover{transform:scale(1.04)}
.tmlist{gap:4px}
.tmb.mini{align-items:center;gap:7px;padding:4px 9px;border-radius:9px}
.tmb-minih{font-size:12px}
.tmb-minit{font-size:12.5px}
.tmb-minid{font-size:10.5px}
.tmb.mini .tmb-drag{padding:2px 2px;font-size:13px}
.tmb.mini .tmb-chev{width:22px;height:20px;font-size:10px}
.nbb-h{padding:5px 10px}
.nbb-c{padding:8px 10px;gap:5px}
.nbb-c .nbf{padding:6px 9px}
.nbper-r input{padding:5px 8px}
.nbper{gap:5px}
.nbpax-more{padding:0 10px 6px}
.nbpax-more>summary{padding:6px 0}
.nbf-l.nbf-uno{min-height:34px}
.nbentrada-no{margin-top:0;margin-left:auto}
.nbops{gap:5px}

/* Agregar momento: boton unico grande que abre el armador */
.tmadd-big{display:block;width:100%;border:0;border-radius:11px;background:var(--gradient-primary);color:#fff;font-family:inherit;font-weight:800;font-size:14px;padding:11px;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.25);margin-bottom:8px}
.tmadd-big:hover{filter:brightness(1.08)}
.tmadd-panel{border:2px solid transparent;border-radius:14px;padding:11px;margin-bottom:8px;background:linear-gradient(var(--brand-navy),var(--brand-navy)) padding-box,var(--gradient-primary) border-box}
.tmadd-fila{display:flex;gap:6px;align-items:center}
.tmadd-fila .nbf{flex:1 1 auto;min-width:0;width:auto}
.tmadd-h{color:rgba(255,255,255,.78);margin:9px 0 6px}

/* Agregar momento y Compartir comparten el gradiente primary; letra mas grande en el boton */
.bloc-foot .tmshare{background:var(--gradient-primary)}
.tmadd-big{font-size:16px;padding:12px}

/* Tres botones de compartir que llenan el ancho */
.tmshare3>details,.tmshare3>.tmshare-btn{flex:1 1 0;min-width:0}
.tmshare3 .tmpdf>summary{width:100%;box-sizing:border-box;text-align:center;padding:7px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tmshare3>.tmshare-btn{padding:7px 8px;white-space:nowrap}
.tmshare3 .tmmenu-b{left:0;right:auto;min-width:180px}

/* Anuncio de reuniones musicales */
.anreuni-img{margin:10px 0;border-radius:12px;overflow:hidden;border:1px solid var(--border);box-shadow:0 4px 18px rgba(0,0,0,.18)}
.anreuni-img svg{display:block;width:100%;height:auto}
.anreuni-b{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.anreuni-b .btn{flex:1 1 auto}

/* Pegar timing: chico y gris al lado de Agregar momento */
.tmadd-fila0{display:flex;gap:6px;align-items:stretch;margin-bottom:8px}
.tmadd-fila0 .tmadd-big{flex:1 1 auto;margin-bottom:0}
.tmadd-pegar{flex:0 0 auto;white-space:nowrap}
/* En el celular la pantalla util es mas baja que 100vh (barra del navegador): dvh mide lo visible */
#notasModal .evbox.bloc-wide{height:92dvh;max-height:92dvh}
@media(max-width:979px){
  #notasModal .evbox.bloc-wide{height:94dvh;max-height:94dvh;width:98%}
  .bloc-foot{padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));max-height:38dvh;overflow-y:auto}
  .tmadd-big{font-size:14px;padding:9px}
  .tmshare3 .tmpdf>summary,.tmshare3>.tmshare-btn{font-size:11px;padding:6px 4px}
  .tmshare3{gap:5px}
}

/* El anuncio en escritorio es panoramico */
@media(min-width:980px){ #anreuniOv .anpush-card.anreuni-desk{max-width:740px;width:94%} }

/* Pegar Timing: misma forma que Agregar momento, en compacto */
.tmadd-pegar2{flex:0 0 auto;width:auto;font-size:12.5px;font-weight:800;padding:9px 14px;margin-bottom:0;white-space:nowrap;border-radius:11px}


/* ===== Armador: mini arrastrable entero, quitar a la vista y boton Correr lo que sigue ===== */
.tmb.mini.drag-todo{cursor:grab}
.tmb.mini.drag-todo:active{cursor:grabbing}
.tmb.mini .tmb-x.del{flex:0 0 auto;margin-left:2px}
.tmb-correr{border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-family:inherit;font-size:11px;font-weight:700;padding:4px 9px;cursor:pointer;margin-left:6px;vertical-align:middle}
.tmb-correr:hover{border-color:var(--brand-cyan)}


/* ===== Agregar momento: card de marca con el toggle y los horarios en una fila ===== */
.tmadd-tipo{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:9px}
.tmadd-seg{display:inline-flex;border:1px solid rgba(255,255,255,.28);border-radius:999px;overflow:hidden;background:rgba(255,255,255,.07);flex:0 0 auto}
.tmadd-segb{border:0;background:transparent;color:rgba(255,255,255,.8);font-family:inherit;font-size:12.5px;font-weight:700;letter-spacing:.02em;padding:8px 14px;cursor:pointer}
.tmadd-segb.on{background-image:var(--gradient-primary);color:#fff}
.tmadd-lbl{font-size:10.5px;color:#fff;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.tmadd-tipo .hh24{width:58px;text-align:center;flex:0 0 auto}
.tmadd-tipo .tmb-dur{width:auto;max-width:116px;flex:0 0 auto}
.tmadd-panel .nbf{font-size:13px;padding:8px 11px}
.tmadd-mod{font-weight:500;color:rgba(255,255,255,.55);text-transform:none;letter-spacing:.02em}


/* ===== Bloque del timing: toggle Con duración/Puntual y fijar compacto ===== */
.tmb-seg{display:inline-flex;border:1px solid var(--border);border-radius:999px;overflow:hidden;background:var(--surface);flex:0 0 auto}
.tmb-segb{border:0;background:transparent;color:var(--text-soft);font-family:inherit;font-size:11px;font-weight:700;padding:6px 11px;cursor:pointer;white-space:nowrap}
.tmb-segb.on{background-image:var(--gradient-primary);color:#fff}
.tmb-fijo input{display:none}
.tmadd-horas2{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:9px}


/* ===== Bloc en celular: respiro del notch y horas que no se recortan ===== */
@media(max-width:979px){
  /* en la app instalada, la hora y la batería del teléfono pisaban el encabezado */
  #notasModal .evbox.bloc-wide .evhead{padding-top:calc(12px + env(safe-area-inset-top,0px))}
}
.tmfiesta .hh24{width:5.1em;min-width:5.1em}


/* ===== Bloque del timing: editar (lápiz), ver-detalles y confirmar (tick verde) ===== */
.tmb-ok{color:var(--status-success);font-weight:800;font-size:16px;line-height:1}
.tmb-ok:hover{background:color-mix(in srgb,var(--status-success) 14%,transparent)}
.tmb-ver,.tmb-edit{font-size:13px}
.nbb-flash{animation:nbflash 1.5s ease}
@keyframes nbflash{0%{box-shadow:0 0 0 3px var(--brand-cyan);background:color-mix(in srgb,var(--brand-cyan) 12%,transparent)}100%{box-shadow:0 0 0 0 transparent;background:transparent}}
@media(prefers-reduced-motion:reduce){.nbb-flash{animation:none;outline:2px solid var(--brand-cyan)}}


/* ===== Bloque del timing: chip "Ver nota" (referencia en notas) ===== */
.tmb-vernota{color:var(--brand-violet)}
.tmb-verhueco{flex:0 0 auto;width:26px;height:26px;display:inline-block}
.tmb-vernota:hover{background:color-mix(in srgb,var(--brand-violet) 12%,transparent)}


/* ===================== Buscador de música en el armador ===================== */
:root{--src-spotify:#1DB954;--src-youtube:#FF0000;--src-soundcloud:#FF5500;--src-instagram:#E1306C}
.bloc2col{position:relative}
/* barra en reposo al pie del panel izquierdo */
.busbar{display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:8px 10px}
.busbar-in{flex:1 1 auto;min-width:0;border:0;background:transparent;color:var(--text);font-family:inherit;font-size:13px;outline:none}
.busbar-in::placeholder{color:var(--text-muted)}
.busbar-logos{display:flex;align-items:center;gap:9px;flex:0 0 auto}
.buslogo{display:inline-flex;width:17px;height:17px;flex:0 0 auto}
.buslogo svg{width:100%;height:100%;display:block}
.buslogo.sp{color:var(--src-spotify)}.buslogo.yt{color:var(--src-youtube)}.buslogo.sc{color:var(--src-soundcloud)}.buslogo.ig{color:var(--src-instagram)}.buslogo.fl{color:var(--text-soft)}
/* panel que toma la columna izquierda al buscar (no destruye las notas: las tapa) */
.buspane{position:absolute;left:0;top:0;bottom:0;width:50%;z-index:20;background:var(--surface);display:flex;flex-direction:column;padding:12px 14px;overflow:hidden;border-right:1px solid var(--border)}
@media(max-width:979px){.buspane{width:100%;border-right:0}}
.buspane-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex:0 0 auto}
.buspane-head .busbar{flex:1 1 auto}
.buspane-back{flex:0 0 auto;width:36px;height:36px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);font-size:16px;cursor:pointer}
.buspane-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
.busmsg{color:var(--text-soft);font-size:12.5px;text-align:center;padding:22px 12px;line-height:1.5}
.buschips{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 10px}
.bushint{display:flex;align-items:flex-start;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:8px 10px;margin-bottom:10px;color:var(--text-soft);font-size:11.5px;line-height:1.45}
.bushint-dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--src-spotify,#1DB954);margin-top:4px}
.bushint-x{flex:0 0 auto;appearance:none;border:0;background:transparent;color:var(--text-soft);cursor:pointer;font-size:12px;line-height:1;padding:2px}
.bushint-x:hover{color:var(--text)}
.buschip{appearance:none;cursor:pointer;border:1px solid var(--border);background:var(--surface-2);color:var(--text-soft);font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:999px;line-height:1.4}
.buschip .n{opacity:.6;font-weight:600}
.buschip.on{border-color:transparent;background:var(--action-primary);color:#fff}
.buschip.on .n{opacity:.85}
.busres{display:flex;flex-direction:column;gap:7px}
.busres-i{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border:1px solid var(--border);border-radius:11px;padding:7px;background:var(--surface-2)}
.busres-i.playing{border-color:var(--action-primary)}
.busres-mini{flex:0 0 auto;width:44px;height:44px;border-radius:8px;background:var(--surface-3);background-size:cover;background-position:center;background-repeat:no-repeat}
.busres-mini.redondo{border-radius:50%}
.busres-info{flex:1 1 0;min-width:0}
.busres-tit{font-weight:700;font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.busres-sub{font-size:11.5px;color:var(--text-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.busres-tag{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;padding:1px 6px;border-radius:5px;margin-right:5px;color:#fff;vertical-align:1px}
.busres-tag.t-track{background:var(--brand-cyan)}
.busres-tag.t-artista{background:var(--brand-violet)}
.busres-tag.t-playlist{background:var(--brand-magenta)}
.busres-tag.t-video{background:var(--src-youtube,#FF0000)}
.busytbar{margin:12px 0 2px}
.busytbtn{background:var(--src-youtube,#FF0000)!important;color:#fff!important;border:0}
.busytback{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.busytt{font-weight:800;font-size:13px;color:var(--text)}
.busytcupo{font-size:11.5px;color:var(--text-soft);margin:0 2px 10px}
.busytchip{color:var(--src-youtube,#FF0000);border-color:var(--src-youtube,#FF0000)}
.busytchip:hover{background:var(--src-youtube,#FF0000);color:#fff}
.busres-dur{margin-left:6px;opacity:.75}
.busres-play{flex:0 0 auto;cursor:pointer;appearance:none;border:0;width:34px;height:34px;border-radius:50%;background:var(--action-primary);color:#fff;font-size:13px;display:flex;align-items:center;justify-content:center;line-height:1}
.busres-play:hover{filter:brightness(1.08)}
.busres-player{flex:1 1 100%;width:100%;margin-top:8px}
.busres-mini.locmini{display:flex;align-items:center;justify-content:center;font-size:20px}
.locbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 6px}
.locfolder{flex:1 1 auto;font-size:12.5px;color:var(--text-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.busres-sublist{flex:1 1 100%;width:100%;margin-top:8px;display:flex;flex-direction:column;gap:6px;padding-left:8px;border-left:2px solid var(--border)}
.busres-sublist .busres-i{background:var(--surface-3);padding:6px}
.busres-sublist .busres-mini{width:38px;height:38px}
.busres-acc{flex:0 0 auto;display:flex;align-items:center;gap:6px}
.busres-fav{appearance:none;border:0;background:transparent;cursor:pointer;font-size:15px;line-height:1;color:var(--text-soft);padding:3px}
.busres-fav.on{color:#f2b705}
.busres-nota{appearance:none;border:1px solid var(--border);background:var(--surface-3);color:var(--text-soft);cursor:pointer;width:26px;height:26px;border-radius:7px;font-size:15px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0}
.busres-entrada{appearance:none;border:1px solid var(--border);background:var(--surface-3);color:var(--text-soft);cursor:pointer;width:26px;height:26px;border-radius:7px;font-size:15px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0}
.busres-entrada.done{background:var(--status-success,#2dd4bf);color:#fff}
.busres-nota:hover{color:var(--text)}
.busres-nota.done{background:var(--action-primary);color:#fff;border-color:transparent}
.busres-ver{appearance:none;border:0;cursor:pointer;background:var(--action-primary);color:#fff;font-size:11.5px;font-weight:700;padding:6px 10px;border-radius:8px;white-space:nowrap}
.busres-ver:hover{filter:brightness(1.08)}
.busfav-h{font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--text-soft);margin:4px 0 8px}
.busperf{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.busperf-av{flex:0 0 auto;width:64px;height:64px;border-radius:50%;background:var(--surface-3);background-size:cover;background-position:center}
.busperf-av.ph{display:flex;align-items:center;justify-content:center;background:var(--src-spotify,#1DB954)}
.busperf-av.ph svg{width:34px;height:34px}
.busperf-name{font-weight:800;font-size:17px;color:var(--text)}
.busperf-sub{font-size:12px;color:var(--text-soft);margin-top:2px}
.busperf-acc{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.busperf-btn,.busperf-nota{appearance:none;cursor:pointer;font-size:12px;font-weight:700;padding:7px 12px;border-radius:9px;text-decoration:none;border:1px solid var(--border)}
.busperf-btn{background:var(--surface-2);color:var(--text)}
.busperf-nota{background:var(--action-primary);color:#fff;border-color:transparent}
.busperf-nota:hover,.busperf-btn:hover{filter:brightness(1.06)}
.bustoast{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);background:var(--text);color:var(--input-bg);font-size:12px;font-weight:700;padding:8px 14px;border-radius:999px;box-shadow:0 6px 20px rgba(0,0,0,.3);opacity:1;transition:opacity .35s;z-index:40}
.bustoast.out{opacity:0}
#depmusBody{padding:16px;max-width:820px;margin:0 auto}
.dmhead{margin-bottom:14px}
.dmhead-t{display:block;font-size:20px;font-weight:800;color:var(--text)}
.dmhead-s{display:block;font-size:12.5px;color:var(--text-soft);margin-top:3px}
.dmadd{border:1px solid var(--border);border-radius:12px;background:var(--surface-2);padding:12px;margin-bottom:16px}
.dmadd-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.dmadd-row:last-of-type{margin-bottom:0}
.dmadd-in{flex:1 1 240px;min-width:0;border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--input-bg);color:var(--text);font-size:13px}
.dmadd-in::placeholder{color:var(--text-dim,var(--text-soft))}
.dmadd-sel{flex:0 0 auto;border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--input-bg);color:var(--text);font-size:13px}
.dmadd-btn,.dmadd-btn2{flex:0 0 auto;appearance:none;border:0;cursor:pointer;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:700;color:#fff}
.dmadd-btn{background:var(--action-primary)}
.dmadd-btn2{background:var(--surface-3);color:var(--text);border:1px solid var(--border)}
.dmadd-btn:hover,.dmadd-btn2:hover{filter:brightness(1.08)}
.dmmsg{font-size:12px;color:var(--text-soft);min-height:16px;margin-top:2px}
.dmmsg.err{color:var(--brand-magenta,#e1306c)}
.dmcat{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 0 8px;border-bottom:1px solid var(--border);padding-bottom:5px}
.dmcat-n{font-size:13px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--text)}
.dmcat-x{appearance:none;border:1px solid var(--border);background:transparent;color:var(--text-soft);cursor:pointer;font-size:11px;padding:3px 9px;border-radius:7px}
.dmcat-x:hover{color:var(--text)}
.dmlist{display:flex;flex-direction:column;gap:7px}
.dmitem{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:10px;padding:7px;background:var(--surface-2)}
.dmitem-mini{flex:0 0 auto;width:42px;height:42px;border-radius:7px;background:var(--surface-3);background-size:cover;background-position:center}
.dmitem-info{flex:1 1 0;min-width:0}
.dmitem-tit{font-weight:700;font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dmitem-sub{font-size:11.5px;color:var(--text-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dmmove{flex:0 0 auto;border:1px solid var(--border);border-radius:7px;padding:5px 7px;background:var(--input-bg);color:var(--text);font-size:12px;max-width:150px}
.dmitem-x{flex:0 0 auto;appearance:none;border:0;background:transparent;color:var(--text-soft);cursor:pointer;font-size:15px;padding:4px 6px}
.dmitem-x:hover{color:var(--brand-magenta,#e1306c)}
.dmwrap{margin-bottom:8px}
.dmwrap .busres-fav,.dmwrap .busres-nota{display:none}
.dmcurate{display:flex;align-items:center;gap:8px;margin:4px 0 0 54px}
.dmcats-card{border:1px solid var(--border);border-radius:12px;background:var(--surface-2);padding:12px;margin-bottom:16px}
.dmcats-h{font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-soft);margin-bottom:8px}
.dmcatrow{display:flex;gap:8px;margin-bottom:6px}
.dmcatrow:last-child{margin-bottom:0}
.dmcatname{flex:1 1 0;min-width:0;border:1px solid var(--border);border-radius:8px;padding:7px 10px;background:var(--input-bg);color:var(--text);font-size:13px}
.dmcatdel{flex:0 0 auto;appearance:none;border:1px solid var(--border);background:transparent;color:var(--text-soft);cursor:pointer;border-radius:8px;padding:6px 11px;font-size:14px}
.dmcatdel:hover{color:var(--brand-magenta,#e1306c)}
.nbb-tema .nbtema-c{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:10px}
.nbtema-mini{flex:0 0 auto;width:26px;height:26px;border-radius:6px;background:rgba(0,0,0,.06);background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;font-size:13px}
.nbtema-info{flex:1 1 0;min-width:0}
.nbtema-tit{font-weight:700;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.busperfil{display:flex;flex-direction:column;align-items:center;text-align:center;gap:9px;padding:30px 18px}
.busperfil-ig{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:15px;background:var(--src-instagram);color:#fff}
.busperfil-ig .buslogo{color:#fff}
.busperfil-ig .buslogo svg{width:30px;height:30px}
.busperfil-user{font-size:19px;font-weight:700;color:var(--text);word-break:break-all;line-height:1.15}
.busperfil-sub{font-size:12.5px;color:var(--text-soft);margin-top:-3px}
.busperfil-btn{margin-top:6px;display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border-radius:10px;background:var(--src-instagram);color:#fff;font-weight:600;font-size:13.5px;text-decoration:none}
.busperfil-btn:hover{filter:brightness(1.08)}
.busperfil-nota{font-size:11.5px;color:var(--text-soft);line-height:1.5;max-width:290px;margin-top:2px}
.buscard{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--border);border-radius:11px;padding:8px;margin-bottom:8px;background:var(--surface-2)}
.buscard-mini{flex:0 0 auto;width:44px;height:44px;border-radius:8px;background:var(--surface-3);background-size:cover;background-position:center;background-repeat:no-repeat}
.buscard-info{flex:1 1 0;min-width:0}
.buscard-tit{font-weight:700;font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.buscard-art{font-size:11.5px;color:var(--text-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.buscard-art .buslogo{width:13px;height:13px;vertical-align:-2px;margin-right:4px}
.buscard-play{flex:0 0 auto;border:0;border-radius:999px;width:36px;height:36px;background-image:var(--gradient-primary);color:#fff;font-size:14px;cursor:pointer}
.buscard-player{flex:1 1 100%;margin-top:4px;position:relative}
.buscard-player iframe{width:100%;border:0;border-radius:10px;display:block}
.buscard-exp{position:absolute;top:6px;right:6px;border:0;border-radius:8px;background:rgba(11,11,18,.72);color:#fff;font-size:13px;padding:5px 8px;cursor:pointer;z-index:2}
/* expansión al área de los dos paneles, sin mover el iframe de nodo */
.buscard-player.full{margin:0;z-index:1300;background:#0b0b12;display:flex;flex-direction:column;border-radius:0}
.buscard-player.full iframe{flex:1 1 auto;height:100%;border-radius:0}
.buscard-player.full .buscard-exp{top:10px;right:10px;font-size:15px;padding:8px 11px}
@media(prefers-reduced-motion:no-preference){.buspane{animation:busin .16s ease}}
@keyframes busin{from{opacity:.4}to{opacity:1}}

.busbar-go{flex:0 0 auto;border:0;border-radius:9px;background-image:var(--gradient-primary);color:#fff;font-size:14px;font-weight:800;width:32px;height:30px;cursor:pointer;line-height:1}
.busbar-go:hover{filter:brightness(1.08)}

/* ---- solo reproductor nativo: ocultar el play del Radar al reproducir ---- */
.busres-i.playing .busres-play,.busres-i.playing .busres-ver{display:none}
/* ---- bloque "Música escuchada en la reunión" ---- */
.nbb-musres .musres-lista{display:flex;flex-direction:column;gap:0}
.nbb-musres .musres-lista .mrf{padding:6px 2px}
.nbb-musres .musres-lista .mrf:not(:last-child){border-bottom:1px solid var(--border)}
.mrf{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:8px;min-width:0}
.mrf-av{flex:0 0 auto;width:26px;height:26px;border-radius:6px;background-size:cover;background-position:center;background-color:var(--surface-3)}
.mrf-av.mrf-ph{display:flex;align-items:center;justify-content:center;font-size:13px}
.mrf-tit{flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;font-weight:600;min-width:0}
.mrf-src{flex:0 0 auto;width:84px;box-sizing:border-box;text-align:center;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:2px 6px;border-radius:999px;border:1px solid var(--border);color:var(--text-soft);background:var(--surface-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mrf-src.src-spotify{color:#1db954;border-color:rgba(29,185,84,.35)}
.mrf-src.src-youtube{color:#ff4d4d;border-color:rgba(255,77,77,.35)}
.mrf-src.src-soundcloud{color:#ff7700;border-color:rgba(255,119,0,.35)}
.mrf-src.src-remix{color:#a855f7;border-color:rgba(168,85,247,.4)}
.mrf-com{flex:1 1 auto;min-width:60px;border:1px solid var(--border);border-radius:7px;background:var(--input-bg);color:var(--text);font-size:12px;padding:4px 8px}
.mrf-play,.mrf-x{flex:0 0 auto;appearance:none;cursor:pointer;width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:12px;line-height:1;text-decoration:none}
.mrf-play{border:0;background-image:var(--gradient-primary);color:#fff}
.mrf-x{border:1px solid var(--border);background:var(--surface-3);color:var(--text-soft)}
.musres-vacio{font-size:12px;color:var(--text-soft);padding:4px 2px}
.musres-player{width:100%;margin-top:6px}
.nbb-musres .nbiframe{margin-top:8px}

/* comentario como botón de nube + slot; sección de archivos locales en la barra */
.mrf-combtn{flex:0 0 auto;appearance:none;cursor:pointer;width:26px;height:26px;border-radius:7px;border:1px solid var(--border);background:var(--surface-3);color:var(--text-soft);font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center}
.mrf-combtn.on{border:0;background-image:var(--gradient-primary);color:#fff}
.mrf-comedit{display:flex;align-items:center;gap:6px;margin:4px 0 2px 34px}
.mrf-cominp{flex:1 1 auto;min-width:60px;border:1px solid var(--border);border-radius:7px;background:var(--input-bg);color:var(--text);font-size:12px;padding:5px 9px}
.mrf-comsave{flex:0 0 auto;appearance:none;border:0;cursor:pointer;width:28px;height:28px;border-radius:7px;background:var(--status-success,#2dd4bf);color:#fff;font-size:13px;line-height:1}
.busloc-h{font-size:13px;font-weight:800;margin:14px 2px 6px;color:var(--text-soft)}
.busloc-h .n{opacity:.65;font-weight:700}

/* indicador de carga (ProTier girando) + descargas de remix */
.remixload{display:flex;align-items:center;gap:8px;padding:4px 2px 2px;font-size:12px;color:var(--text-soft)}
.remixload .pwr{flex:0 0 auto;display:inline-flex;margin:0;line-height:0}
.remixload .pwr .protier-logo.cargalogo{width:18px;height:18px;margin:0;display:block}
.remixdls{display:flex;gap:6px;margin-top:4px;flex-wrap:wrap}

/* Menu de descarga (3 puntitos) en cards de Sarapura Remixes */
.remixmenu{flex:0 0 auto;position:relative;display:inline-flex;align-items:center}
.remixmenu-btn{appearance:none;border:1px solid var(--border);background:var(--surface-3);color:var(--text-soft);cursor:pointer;width:26px;height:26px;border-radius:7px;font-size:17px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0}
.remixmenu-btn:hover{color:var(--text-primary)}
.remixmenu-btn.cargando{opacity:.5;pointer-events:none}
.remixmenu-pop{position:absolute;right:0;top:calc(100% + 5px);z-index:40;display:flex;flex-direction:column;min-width:180px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:5px;box-shadow:0 10px 28px var(--scrim,rgba(0,0,0,.4))}
.remixmenu-pop[hidden]{display:none}
.remixmenu-it{appearance:none;border:0;background:transparent;color:var(--text-primary);text-align:left;padding:8px 10px;border-radius:7px;cursor:pointer;font-size:13px;white-space:nowrap;font-family:inherit}
.remixmenu-it:hover{background:var(--surface-3)}

/* Panel admin: elegir carpetas de Sarapura Remixes */
.remix-cfgchip{border-style:dashed}
.remixcfg-ov{position:fixed;inset:0;z-index:9000;background:var(--scrim,rgba(0,0,0,.55));display:flex;align-items:center;justify-content:center;padding:16px}
.remixcfg-box{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;max-width:420px;width:100%;max-height:80vh;display:flex;flex-direction:column;padding:16px;box-shadow:0 20px 50px var(--scrim,rgba(0,0,0,.5))}
.remixcfg-h{font-weight:700;font-size:16px;margin-bottom:2px}
.remixcfg-sub{font-size:12px;color:var(--text-soft);margin-bottom:10px}
.remixcfg-lista{overflow:auto;display:flex;flex-direction:column;gap:2px;margin-bottom:12px}
.remixcfg-fila{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;cursor:pointer}
.remixcfg-fila:hover{background:var(--surface-3)}
.remixcfg-nom{flex:1 1 auto;min-width:0}
.remixcfg-n{color:var(--text-soft);font-size:12px}
.remixcfg-acts{display:flex;justify-content:flex-end;gap:8px}

/* Cache mp3: toggles y aviso */
.remixcfg-tg{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-soft);cursor:pointer;white-space:nowrap}
.remixcfg-uso{font-size:12px;color:var(--text-soft);margin:2px 0 12px;padding:0 2px}
.remix-aviso{background:var(--surface-2);border:1px solid var(--status-warning);border-left:4px solid var(--status-warning);border-radius:12px;padding:12px 14px;margin-bottom:12px;color:var(--text-primary)}
.remix-aviso-t{font-weight:800;font-size:15px;margin-bottom:4px;color:var(--status-warning)}
.remix-aviso-b{font-size:13px;line-height:1.45;color:var(--text-soft)}

/* Pestaña de caché en Desarrollo (Guardado / Al vuelo) */
.cachehdr{margin-bottom:12px}
.cachef{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:0.5px solid var(--border)}
.cachef-n{flex:1 1 auto;min-width:0;font-size:14px}
.cachef-c{color:var(--text-soft);font-size:12px}
.cacheseg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;flex:0 0 auto}
.cacheopt{appearance:none;border:0;background:transparent;color:var(--text-soft);cursor:pointer;font-size:12px;padding:6px 12px;font-family:inherit;line-height:1}
.cacheopt+.cacheopt{border-left:1px solid var(--border)}
.cacheopt[data-v="1"].on{background:var(--action-primary);color:#fff;font-weight:600}
.cacheopt[data-v="0"].on{background:var(--surface-3);color:var(--text-primary);font-weight:600}
.cacheuso{font-size:12px;margin-top:12px}

/* Panel desplegable de administración musical (accesos) */
.musadm{border:1px solid var(--border);border-radius:12px;background:var(--surface-2);margin-bottom:12px;overflow:hidden}
.musadm>summary{cursor:pointer;padding:12px 14px;font-weight:600;font-size:14px;list-style:none;color:var(--text-primary)}
.musadm>summary::-webkit-details-marker{display:none}
.musadm>summary::before{content:"\25B8";margin-right:8px;color:var(--text-soft);font-size:11px}
.musadm[open]>summary::before{content:"\25BE"}
.musadm-body{padding:2px 14px 14px}
.acc-hd,.acc-row{display:flex;align-items:center;gap:10px}
.acc-hd{font-size:12px;color:var(--text-soft);padding:6px 2px;border-bottom:0.5px solid var(--border)}
.acc-row{padding:8px 2px;border-bottom:0.5px solid var(--border)}
.acc-u{flex:1 1 auto;min-width:0;font-size:13.5px}
.acc-t{flex:0 0 118px;text-align:center}
.acc-badge{font-size:10.5px;background:var(--surface-3);color:var(--text-soft);border-radius:5px;padding:1px 6px;margin-left:4px}

/* Pedido de tema de entrada a Producción */
.nbped{display:inline-flex;align-items:center;font-size:11px;background:var(--brand-magenta);color:#fff;border-radius:6px;padding:2px 8px;margin-left:6px;font-weight:600;white-space:nowrap}
.pedent-l{display:block;font-size:12.5px;color:var(--text-soft);margin:10px 0 4px;font-weight:600}
.pedent-btn{border-style:dashed}

.pedent-in{flex:0 0 auto;width:100%;height:38px;box-sizing:border-box;border:1px solid var(--border);border-radius:8px;background:var(--surface-3);color:var(--text-primary);padding:0 10px;font-family:inherit;font-size:14px}
.pedent-ta{flex:0 0 auto;display:block;width:100%;min-height:88px;box-sizing:border-box;border:1px solid var(--border);border-radius:8px;background:var(--surface-3);color:var(--text-primary);padding:8px 10px;font-family:inherit;font-size:14px;line-height:1.45;resize:vertical}

/* Chips de plataforma en el buscador (SoundCloud naranja, Spotify verde) */
.busscchip{color:var(--src-soundcloud);border-color:var(--src-soundcloud)}
.busscchip:hover,.busscchip.on{background:var(--src-soundcloud);color:#fff}
.busspchip{color:var(--src-spotify);border-color:var(--src-spotify)}
.busspchip:hover,.busspchip.on{background:var(--src-spotify);color:#fff}
.busytchip.on{background:var(--src-youtube);color:#fff}
.busscbtn{background:var(--src-soundcloud)!important;color:#fff!important;border:0}
.busplatbar{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 10px}
.busytchip,.busscchip,.busspchip{display:inline-flex;align-items:center;gap:6px}
.busytchip .buslogo,.busscchip .buslogo,.busspchip .buslogo{width:15px;height:15px}
.busytchip.on .buslogo,.busscchip.on .buslogo,.busspchip.on .buslogo{color:#fff}

/* ===== ReuMu - animacion de entrada a la seccion ===== */
#rmuSplash{position:fixed;left:0;top:0;width:100%;height:100%;z-index:9998;background:#0B0B12;display:none;align-items:center;justify-content:center;cursor:pointer;overflow:hidden}
#rmuSplash.on{display:flex}
#rmuSplash svg{display:block;height:min(70%,560px);width:auto;max-width:86%}
@media (prefers-reduced-motion: reduce){#rmuSplash.on{display:none}}

/* ===== ReuMu - logo en los botones de entrada ===== */
.rmuico{height:1.1em;width:.917em;vertical-align:-.2em;flex:none;pointer-events:none}
#rmuiGr stop:nth-child(1){stop-color:var(--brand-cyan)}
#rmuiGr stop:nth-child(2){stop-color:var(--brand-violet)}
#rmuiGr stop:nth-child(3){stop-color:var(--brand-magenta)}

/* Fix contraste dark: texto sobre fondo blanco (--action-primary) usa --action-primaryText, no #fff */
.buschip.on,.busres-play,.busres-nota.done,.busres-ver,.busperf-nota,.cacheopt[data-v="1"].on{color:var(--action-primaryText)}

/* No disponibilidad periódica: días de semana + picker de íconos */
.ndsem{display:flex;flex-direction:column;gap:8px}
.ndsem>label{font-weight:600;font-size:13px;color:var(--text-muted)}
.ndsem-dows{display:flex;flex-wrap:wrap;gap:6px}
.ndsem-dows label{display:inline-flex;align-items:center;gap:5px;font-size:13px;padding:4px 9px;border:1px solid var(--border);border-radius:8px;cursor:pointer;user-select:none;color:var(--text)}
.ndsem-dows label:hover{border-color:var(--accent)}
.ndsem-dows input{accent-color:var(--accent);margin:0}
.ndsem-icos{display:flex;flex-wrap:wrap;gap:8px}
.ndico{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:10px;background:var(--bg-surface);color:var(--text);cursor:pointer;transition:border-color .15s,background .15s,color .15s;padding:0}
.ndicowrap{display:inline-flex;flex-direction:column;align-items:center;gap:5px;width:76px}
.ndicolbl{font-size:10px;line-height:1.15;text-align:center;color:var(--text-secondary);word-break:normal;overflow-wrap:break-word}
.ndico:hover{border-color:var(--accent)}
.ndico.on{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}
.ndico svg{display:block;pointer-events:none}
