:root{--bg:#080A0C;--bg2:#101418;--panel:#181D22;--line:#242A30;--lime:#B8FF00;--lime2:#D7FF66;--yellow:#FFD400;--orange:#FF7A00;--red:#FF3150;--text:#FFF;--muted:#9199A3;--good:#9FE870;--shadow:0 12px 36px rgba(0,0,0,.32)}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:linear-gradient(180deg,#080a0c 0%,#0a0d10 100%);color:var(--text);font-family:Manrope,Inter,Arial,sans-serif;min-height:100vh}a{color:var(--lime);text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}.wrap{max-width:1440px;margin:0 auto;padding:22px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.brand{font:900 20px/1 Space Grotesk,Manrope,sans-serif;letter-spacing:.04em}.brand span{color:var(--lime)}.nav{display:flex;gap:8px;flex-wrap:wrap}.nav a,.nav button{padding:9px 12px;border:1px solid var(--line);background:#0f1317;color:#dce2e7;border-radius:9px}.nav a.active{border-color:rgba(184,255,0,.55);color:var(--lime);background:#12180d}.card{background:linear-gradient(180deg,#1a2025 0%,#171c20 100%);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.panel{padding:18px}.grid{display:grid;gap:16px}.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.muted{color:var(--muted)}.small{font-size:12px}.h1{font:900 34px/1.05 Space Grotesk,Manrope,sans-serif;letter-spacing:-.02em}.h2{font:900 18px Space Grotesk,Manrope,sans-serif}.btn{padding:11px 15px;border-radius:10px;border:1px solid var(--line);background:#22292f;color:#fff;font-weight:800}.btn.lime{background:var(--lime);color:#0a0e0a;border-color:var(--lime)}.btn.red{background:rgba(255,49,80,.16);border-color:rgba(255,49,80,.5);color:#ffd7dd}.btn.yellow{background:rgba(255,212,0,.12);border-color:rgba(255,212,0,.45);color:#ffe994}.btn:disabled{opacity:.45;cursor:not-allowed}.input{width:100%;background:#0f1317;border:1px solid #30373e;color:#fff;border-radius:10px;padding:12px 13px;outline:none}.input:focus{border-color:rgba(184,255,0,.65);box-shadow:0 0 0 3px rgba(184,255,0,.08)}.label{font-size:12px;color:var(--muted);font-weight:800;letter-spacing:.04em;text-transform:uppercase}.field{display:flex;flex-direction:column;gap:7px}.status{padding:10px 12px;border-radius:10px;background:#101418;border:1px solid var(--line);color:#d7dde2}.status.good{border-color:rgba(184,255,0,.35);background:#12180d;color:var(--lime2)}.status.warn{border-color:rgba(255,212,0,.35);background:#1c180b;color:#ffe994}.status.err{border-color:rgba(255,49,80,.35);background:#1d1014;color:#ffbec7}.hero{padding:32px;overflow:hidden;position:relative}.hero:after{content:"";position:absolute;inset:auto -10% -52% 35%;height:280px;background:radial-gradient(circle,rgba(184,255,0,.12),transparent 60%);pointer-events:none}.metric{padding:18px;background:#0f1317;border:1px solid var(--line);border-radius:12px}.metric .v{font:900 30px/1 Space Grotesk,sans-serif}.metric .k{color:var(--muted);font-size:12px;margin-top:6px;text-transform:uppercase}.table-wrap{overflow:auto}.table{width:100%;border-collapse:separate;border-spacing:0}.table th,.table td{padding:12px 10px;border-bottom:1px solid #252c32;text-align:left;vertical-align:middle}.table th{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.table th button{background:none;color:inherit;padding:0;font-weight:900}.table tr:hover td{background:#12171b}.actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.iconbtn{width:36px;height:36px;border-radius:9px;background:#232a30;border:1px solid #30373e;color:#fff;display:grid;place-items:center}.iconbtn:hover{border-color:#58636d}.ride{display:flex;align-items:flex-end;gap:2px;height:42px;min-width:140px}.ride i{display:block;width:5px;background:var(--lime);border-radius:2px 2px 0 0;min-height:4px}.ride .hot{background:var(--yellow)}.ride .vhot{background:var(--orange)}.ride .max{background:var(--red)}.ridepos{position:absolute;width:2px;background:#fff;top:0;bottom:0;box-shadow:0 0 8px #fff}.ridewrap{position:relative}.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;background:#101418;border:1px solid var(--line);font-size:11px;color:#cbd2d8}.stars{letter-spacing:1px;color:var(--yellow);font-size:17px}.footer{padding:28px 0;color:#65707a;font-size:11px;text-align:center}.empty{padding:40px;text-align:center;color:var(--muted)}.timeline{height:140px;position:relative;display:flex;align-items:flex-end;gap:2px;background:#0d1114;border:1px solid var(--line);border-radius:12px;padding:14px;overflow:hidden}.segment{position:relative;flex:1;min-width:3px;background:var(--lime);border-radius:3px 3px 0 0;transition:filter .2s}.segment:nth-child(5n){filter:brightness(.95)}.segment.yellow{background:var(--yellow)}.segment.orange{background:var(--orange)}.segment.red{background:var(--red)}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.split{display:flex;justify-content:space-between;align-items:center;gap:12px}.modal{position:fixed;inset:0;background:rgba(0,0,0,.72);display:none;align-items:center;justify-content:center;padding:20px;z-index:50}.modal.show{display:flex}.modalbox{width:min(560px,100%);padding:22px;background:#151a1f;border:1px solid #313941;border-radius:16px;box-shadow:var(--shadow)}.auth{min-height:100vh;display:grid;place-items:center;padding:20px}.authbox{width:min(720px,100%)}.logoMark{font:900 34px Space Grotesk,sans-serif}.logoMark span{color:var(--lime)}.qr{width:220px;height:220px;padding:10px;background:#fff;border-radius:12px;margin:auto}.bigNumber{font:900 clamp(54px,10vw,120px)/.9 Space Grotesk,sans-serif;letter-spacing:-.05em}.playerGrid{display:grid;grid-template-columns:1.55fr .65fr;gap:16px}.playerMain{padding:20px}.playerSide{padding:20px}.currentLabel{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.currentValue{font:900 clamp(50px,7vw,100px)/.9 Space Grotesk,sans-serif}.intensityText{font:900 26px Space Grotesk,sans-serif}.countdownOverlay{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.92);z-index:40}.countdownOverlay.show{display:flex}.countdownText{font:900 24vw/.8 Space Grotesk,sans-serif;color:var(--lime)}.remote{max-width:520px;margin:0 auto}.remoteBtn{width:100%;min-height:84px;border-radius:16px;font:900 26px Space Grotesk,sans-serif;border:1px solid var(--line);background:#171d22;color:#fff}.remoteBtn.lime{background:var(--lime);color:#0a0e0a}.remoteBtn.warn{background:var(--yellow);color:#0a0a08}.stack{display:flex;flex-direction:column;gap:12px}.notice{font-size:13px;line-height:1.45}.formActions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.pillbar{display:flex;gap:8px;flex-wrap:wrap}.hidden{display:none!important}@media(max-width:1000px){.grid2,.grid3,.playerGrid{grid-template-columns:1fr}.topbar{align-items:flex-start;flex-direction:column}}@media(max-width:650px){.wrap{padding:14px}.hero{padding:22px}.h1{font-size:28px}.table th:nth-child(2),.table td:nth-child(2){display:none}.actions{gap:5px}.iconbtn{width:34px;height:34px}.playerMain,.playerSide{padding:14px}}

/* V4.3 · logo de cabecera */
.brand-mark{display:flex;align-items:center;min-height:32px}
.brand-mark .brand-logo{display:block;width:auto;height:30px;max-width:min(320px,42vw);object-fit:contain}
.editor-page .brand-mark .brand-logo{height:30px;max-width:min(320px,42vw)}
@media(max-width:650px){.brand-mark .brand-logo{height:28px;max-width:72vw}.editor-page .brand-mark .brand-logo{height:28px;max-width:72vw}}

/* V4.3 · menú unificado */
.site-header{position:sticky;top:0;z-index:1100;margin:0 -22px 22px;padding:12px 22px;background:rgba(8,10,12,.91);border-bottom:1px solid var(--line);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.header-inner{max-width:1320px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px}
.brand-mark{font-size:15px;font-weight:950;letter-spacing:.11em;white-space:nowrap}
.brand-mark span{color:var(--lime)}
.main-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.main-nav a,.main-nav button{appearance:none;border:1px solid transparent;background:transparent;color:#aeb6bf;text-decoration:none;border-radius:9px;padding:9px 11px;font:800 12px inherit;cursor:pointer}
.main-nav a:hover,.main-nav button:hover{color:#fff;background:#14191e;border-color:#242a30}
.main-nav a.active{color:var(--lime);background:rgba(184,255,0,.065);border-color:rgba(184,255,0,.20)}
@media(max-width:820px){.main-nav a:nth-child(1),.main-nav a:nth-child(2){display:none}}
@media(max-width:650px){.site-header{margin:0 -14px 14px;padding:10px 14px}.header-inner{align-items:flex-start;flex-direction:column}.main-nav{width:100%;justify-content:flex-start}}


/* =========================================================
   EDITOR · estilos propios, fuera del menú compartido
   ========================================================= */
.editor-page{--green:var(--lime);--blue:#00B8FF;--purple:var(--lime);}


.editor-page *{box-sizing:border-box}
.editor-page{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,Tahoma,Arial,sans-serif;padding:22px}
.editor-page .container{max-width:1320px;margin:auto}
.editor-page h1{margin:0;color:var(--orange);font-size:29px}
.editor-page .subtitle{color:var(--muted);margin:6px 0 22px}
.editor-page .panel{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:18px;margin-bottom:18px}
.editor-page h2{font-size:17px;margin:0 0 15px;color:var(--orange)}
.editor-page h3{font-size:14px;margin:0 0 10px;color:#ddd}
.editor-page .grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.editor-page .grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.editor-page .field{display:flex;flex-direction:column;gap:6px}
.editor-page label{font-size:13px;color:var(--muted);font-weight:700}
.editor-page input,.editor-page select,.editor-page textarea{width:100%;background:#141619;color:var(--text);border:1px solid #464b51;border-radius:7px;padding:10px;font:inherit}
.editor-page input:focus,.editor-page select:focus,.editor-page textarea:focus{outline:none;border-color:var(--orange)}
.editor-page input[type=file]{padding:8px}
.editor-page .audio-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
.editor-page audio{width:100%}
.editor-page .clock{font:700 26px monospace;color:var(--orange);white-space:nowrap}
.editor-page .controls{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}
.editor-page button{border:0;border-radius:7px;padding:10px 15px;font-weight:800;cursor:pointer;background:var(--orange);color:#151515}
.editor-page button.secondary{background:#454a50;color:#fff}
.editor-page button.green{background:var(--green);color:#fff}
.editor-page button.blue{background:var(--blue);color:#fff}
.editor-page button.red{background:var(--red);color:#fff}
.editor-page button.yellow{background:var(--yellow);color:#151515}
.editor-page button.purple{background:var(--purple);color:#fff}
.editor-page button:disabled{opacity:.45;cursor:not-allowed}
.editor-page .timeline{height:28px;background:#0c0d0f;border:1px solid #484e55;border-radius:9px;overflow:hidden;position:relative;margin-top:16px;cursor:pointer}
.editor-page .segment{position:absolute;height:100%;opacity:.78;border-right:1px solid #171717}
.editor-page .playhead{position:absolute;top:-2px;height:32px;width:3px;background:#fff;z-index:10;box-shadow:0 0 8px #fff}
.editor-page .floating-dock{
  position:fixed;
  top:12px;
  left:50%;
  transform:translate(-50%,-18px);
  width:min(1200px,calc(100vw - 28px));
  background:rgba(27,29,32,.97);
  border:1px solid #555b63;
  border-radius:12px;
  padding:10px 12px 9px;
  box-shadow:0 12px 34px rgba(0,0,0,.55);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
  z-index:1000;
}
.editor-page .floating-dock.visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(-50%,0);
}
.editor-page .floating-dock-top{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:7px;
}
.editor-page .floating-dock-title{
  color:#fff;
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
  margin-right:2px;
}
.editor-page .floating-dock-time{
  margin-left:auto;
  color:var(--orange);
  font:700 14px monospace;
  white-space:nowrap;
}
.editor-page .floating-timeline{height:25px;margin-top:0}
.editor-page .floating-timeline .segment{opacity:1}
.editor-page .floating-timeline .playhead{height:29px}
.editor-page .section-strip{
  display:flex;
  width:100%;
  height:28px;
  margin-top:6px;
  border:1px solid #393e44;
  border-radius:7px;
  overflow:hidden;
  background:#111316;
}
.editor-page .section-item{
  position:relative;
  min-width:2px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border-right:1px solid rgba(0,0,0,.36);
  color:#080A0C;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
  opacity:1;
  transition:filter .12s,box-shadow .12s;
}
.editor-page .section-item span{
  padding:0 5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-shadow:0 1px 2px rgba(0,0,0,.75);
}
.editor-page .section-item:hover{filter:brightness(1.06)}
.editor-page .section-item.active{
  opacity:1;
  filter:none;
  box-shadow:inset 0 0 0 2px #fff,0 0 11px rgba(184,255,0,.55);
  z-index:2;
}
.editor-page .section-item.active::after{
  content:"";
  position:absolute;
  inset:0;
  border:2px solid #FFFFFF;
  pointer-events:none;
}
.editor-page table tbody tr.playing-row{
  background:linear-gradient(90deg,rgba(184,255,0,.24),rgba(184,255,0,.07));
  box-shadow:inset 4px 0 0 var(--orange);
}
.editor-page table tbody tr.playing-row td{color:#fff}
.editor-page table tbody tr.playing-row td:first-child{
  font-weight:900;
  color:var(--orange);
}
.editor-page #progressionPanel.has-active{outline:1px solid rgba(255,152,0,.22);outline-offset:1px}
.editor-page .floating-hint{color:#8f969e;font-size:10px;margin-left:2px}
@media(max-width:700px){
  .editor-page .floating-dock{top:8px;width:calc(100vw - 16px);padding:8px}
  .editor-page .floating-dock-title,.editor-page .floating-hint{display:none}
  .editor-page .floating-dock-time{margin-left:0}
  .editor-page .floating-dock-top{justify-content:flex-end}
  .editor-page .section-item{font-size:9px}
}

.editor-page .legend{font-size:12px;color:var(--muted);margin-top:7px;line-height:1.5}
.editor-page .status{display:none;margin-top:12px;padding:10px 12px;border-radius:8px;background:#202329;color:#dfe3e7}
.editor-page .status.error{background:#3a1e20;color:#ffb7b5}
.editor-page .status.ok{background:#193321;color:#b8efc0}
.editor-page .auto-grid{display:grid;grid-template-columns:330px 1fr;gap:16px}
.editor-page .summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.editor-page .metric{background:#151719;border:1px solid #33383e;border-radius:8px;padding:11px}
.editor-page .metric .v{font-weight:900;font-size:22px;color:var(--orange)}
.editor-page .metric .k{color:var(--muted);font-size:11px;margin-top:2px}
.editor-page .canvas-wrap{background:#121417;border:1px solid #343940;border-radius:9px;padding:8px;height:290px}
.editor-page #analysisCanvas{width:100%;height:100%;display:block}
.editor-page .progression-chart-wrap{position:relative;background:#0d1114;border:1px solid #242A30;border-radius:12px;padding:8px;height:260px}
.editor-page #progressionChart{width:100%;height:100%;display:block;touch-action:none;cursor:default}
.editor-page .progression-chart-controls{display:flex;flex-wrap:wrap;gap:9px;margin-top:10px;align-items:center}
.editor-page .progression-actions-row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.editor-page .progression-actions-row .save-library{margin-left:auto}
.editor-page .progression-chart-controls .chart-save{margin-left:auto}
@media(max-width:650px){.editor-page .progression-actions-row{flex-direction:column;align-items:stretch}.editor-page .progression-chart-controls .chart-save{margin-left:0;width:100%}}
.editor-page .options{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.editor-page .range-wrap{display:grid;grid-template-columns:1fr 52px;gap:10px;align-items:center}
.editor-page .range-value{background:#141619;border:1px solid #454a50;border-radius:7px;padding:9px;text-align:center;font-weight:800}
.editor-page .help{background:#151719;border-left:3px solid var(--blue);padding:10px 12px;border-radius:0 7px 7px 0;color:#cdd2d7;font-size:12px;line-height:1.55}
.editor-page .badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.editor-page .badge{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;background:#25292e;color:#d7dbe0;font-size:11px}
.editor-page .dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.editor-page .table-wrap{overflow:auto}
.editor-page table{width:100%;border-collapse:collapse;min-width:900px}
.editor-page th,.editor-page td{border-bottom:1px solid #33383e;padding:7px 6px;text-align:left;font-size:12px;vertical-align:middle}
.editor-page th{color:#b8bec5;font-size:11px;position:sticky;top:0;background:var(--panel)}
.editor-page td input{padding:7px 8px;font-size:12px;min-width:70px}
.editor-page td input.time-input{min-width:98px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:700;letter-spacing:.2px}
.editor-page .intensity-input{min-width:74px}
.editor-page .intensity-combo{position:relative;width:100%;min-width:0}
.editor-page .intensity-combo-input{padding-right:38px!important}
.editor-page .intensity-combo-toggle{position:absolute;right:1px;top:1px;width:34px;height:calc(100% - 2px);padding:0;border:0;border-left:1px solid #464b51;border-radius:0 6px 6px 0;background:#23262a;color:#cfd4d8;font-weight:800;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer}
.editor-page .intensity-combo-toggle:hover{background:#2c3035;color:#fff}
.editor-page .intensity-combo-menu{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:3000;display:none;max-height:280px;overflow:auto;background:#141619;border:1px solid #464b51;border-radius:7px;box-shadow:0 12px 28px rgba(0,0,0,.45);padding:4px}
.editor-page .intensity-combo.open .intensity-combo-menu{display:block}
.editor-page .intensity-combo-option{width:100%;display:flex;align-items:center;gap:9px;padding:9px 10px;border:0;border-radius:5px;background:transparent;color:#f1f3f5;text-align:left;font:inherit;font-size:12px;cursor:pointer}
.editor-page .intensity-combo-option:hover{background:#23262a}
.editor-page .intensity-combo-option .value{min-width:46px;font-weight:900;color:#fff}
.editor-page .intensity-combo-option .label{color:#b8bec5;font-weight:600}
.editor-page #rows .intensity-combo{min-width:95px}
.editor-page #rows .intensity-combo-input{width:100%;padding:7px 36px 7px 8px!important;font-size:12px}
.editor-page #rows .intensity-combo-toggle{height:calc(100% - 2px);width:30px}
@media(max-width:650px){.editor-page .intensity-combo-menu{max-height:220px}}
.editor-page .actions{display:flex;gap:5px}.editor-page .actions button{padding:6px 8px}
.editor-page .empty{text-align:center;color:#888;padding:30px}
.editor-page textarea.output{min-height:265px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.45}
.editor-page .small{font-size:11px;color:#92989f}
.editor-page .progress{height:10px;background:#111316;border:1px solid #353a40;border-radius:999px;overflow:hidden;margin-top:10px}
.editor-page .progress > div{height:100%;width:0;background:var(--orange);transition:width .12s}
@media(max-width:950px){.editor-page .auto-grid{grid-template-columns:1fr}.editor-page .grid3,.editor-page .summary{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.editor-page{padding:12px}.editor-page .grid,.editor-page .grid3,.editor-page .options,.editor-page .summary{grid-template-columns:1fr}.editor-page .audio-row{grid-template-columns:1fr}.editor-page .clock{font-size:22px}}


.editor-page *{box-sizing:border-box}
.editor-page{
  margin:0;padding:22px 18px 28px;overflow-x:hidden;color:var(--text);
  background:
    radial-gradient(circle at 14% -10%,rgba(184,255,0,.055),transparent 34%),
    radial-gradient(circle at 87% 0%,rgba(255,122,0,.035),transparent 28%),
    var(--bg);
  font-family:"Space Grotesk","Sora","Manrope","Inter Tight","Segoe UI",Arial,sans-serif;
}
.editor-page .container{max-width:1320px;margin:0 auto}
.editor-page .site-header{
  position:static;
  z-index:auto;
  max-width:1320px;
  margin:0 auto 22px;
  padding:0;
  background:transparent;
  border:0;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.editor-page .header-inner{max-width:1320px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px}
.editor-page .brand-mark{font:900 20px/1 Space Grotesk,Manrope,sans-serif;letter-spacing:.04em;white-space:nowrap}
.editor-page .brand-mark span{color:var(--green)}
.editor-page .main-nav{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.editor-page .main-nav a,.editor-page .main-nav button{
  appearance:none;padding:9px 12px;border:1px solid var(--line);background:#0f1317;color:#dce2e7;
  text-decoration:none;border-radius:9px;font:inherit;cursor:pointer;
}
.editor-page .main-nav a:hover,.editor-page .main-nav button:hover{background:#12171b;color:#fff}
.editor-page .main-nav a.active{border-color:rgba(184,255,0,.55);color:var(--green);background:#12180d}
.editor-page .savebar{display:flex;align-items:center;justify-content:flex-end}
.editor-page .save-library{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid rgba(184,255,0,.34);background:var(--green);color:#080A0C;
  border-radius:10px;padding:10px 14px;font-size:12px;font-weight:950;
  box-shadow:0 8px 22px rgba(184,255,0,.10);transition:filter .12s,transform .12s;
}
.editor-page .save-library:hover{filter:brightness(1.04);transform:translateY(-1px)}
.editor-page .save-library:active{transform:translateY(0)}
.editor-page .save-library:disabled{cursor:wait;transform:none}
.editor-page .cloud-icon{display:inline-flex;align-items:center;justify-content:center}
.editor-page .panel{
  background:linear-gradient(180deg,rgba(24,29,34,.98),rgba(16,20,24,.98));
  border:1px solid var(--line);border-radius:14px;padding:19px;margin-bottom:16px;
  box-shadow:0 12px 28px rgba(0,0,0,.18);
}
.editor-page h2{font-size:17px;margin:0 0 15px;color:#fff;letter-spacing:-.01em}
.editor-page h3{font-size:14px;margin:0 0 10px;color:#e9edf0}
.editor-page label{font-size:12px;color:var(--muted);font-weight:800;letter-spacing:.01em}
.editor-page input,.editor-page select,.editor-page textarea{
  width:100%;background:#101418;color:#fff;border:1px solid #30373e;border-radius:9px;
  padding:10px;font:inherit;
}
.editor-page input:focus,.editor-page select:focus,.editor-page textarea:focus{
  outline:none;border-color:rgba(184,255,0,.75);box-shadow:0 0 0 2px rgba(184,255,0,.08);
}
.editor-page input[type=file]{padding:8px}
.editor-page button{border:0;border-radius:9px;padding:10px 15px;font-weight:900;cursor:pointer;background:var(--green);color:#080A0C}
.editor-page button.secondary{background:#242A30;color:#fff;border:1px solid #343c44}
.editor-page button.green{background:var(--green);color:#080A0C}
.editor-page button.blue{background:var(--blue);color:#080A0C}
.editor-page button.red{background:var(--red);color:#fff}
.editor-page button.yellow{background:var(--yellow);color:#080A0C}
.editor-page button.purple{background:var(--purple);color:#080A0C}
.editor-page button:disabled{opacity:.45;cursor:not-allowed}
.editor-page .audio-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
.editor-page audio{width:100%}
.editor-page .clock{font:950 26px ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:var(--green);white-space:nowrap}
.editor-page .legend{font-size:12px;color:var(--muted);margin-top:7px;line-height:1.55}
.editor-page .small{font-size:11px;color:#9aa3ac}
.editor-page .metric{background:#101418;border:1px solid #2c333a;border-radius:10px;padding:12px}
.editor-page .metric .v{font-weight:950;font-size:22px;color:var(--green)}
.editor-page .metric .k{color:var(--muted);font-size:11px;margin-top:2px;font-weight:700}
.editor-page .progress > div{background:var(--green)}
.editor-page .save-status{
  display:none;margin:0 0 14px;padding:10px 12px;border-radius:10px;
  background:rgba(184,255,0,.08);border:1px solid rgba(184,255,0,.20);
  color:#eaffc0;font-size:12px;font-weight:750;
}
.editor-page .save-status.error{background:rgba(255,49,80,.10);border-color:rgba(255,49,80,.25);color:#ffd3da}
.editor-page .bottom-save{margin-top:6px;margin-bottom:4px}
.editor-page .tech-hidden{display:none!important}
.editor-page #rows td:last-child .actions{justify-content:flex-end}
@media(max-width:1000px){
  .editor-page .main-nav{align-items:flex-start;flex-direction:column;justify-content:flex-start;width:100%}
}
@media(max-width:650px){
  .editor-page{padding:14px 10px 22px}
  .editor-page .site-header{max-width:1320px;margin:0 auto 14px;padding:0}
  .editor-page .header-inner{align-items:flex-start;flex-direction:column}
  .editor-page .main-nav{width:100%;justify-content:flex-start}
}




/* index.html · estilos heredados externalizados */

.page-index *{box-sizing:border-box}.page-index{margin:0;background:#111316;color:#f1f3f5;font-family:Segoe UI,Arial,sans-serif;padding:24px}.page-index .wrap{max-width:760px;margin:8vh auto}.page-index .tag{color:#ff9800;font-size:12px;font-weight:900;letter-spacing:.1em}.page-index h1{font-size:clamp(28px,6vw,42px);margin:8px 0}.page-index p{color:#aeb4ba;line-height:1.55}.page-index .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-top:24px}.page-index .tile{display:block;text-decoration:none;color:#f1f3f5;background:#1b1d20;border:1px solid #383e44;border-radius:14px;padding:18px}.page-index .tile:hover{border-color:#ff9800;transform:translateY(-1px)}.page-index .tile b{font-size:18px}.page-index .tile span{display:block;font-size:12px;color:#aeb4ba;line-height:1.5;margin-top:8px}.page-index .note{font-size:12px;margin-top:24px;border-left:3px solid #039be5;padding:8px 12px;background:#171a1e}


/* profesor.html · estilos heredados externalizados */


.page-profesor *{box-sizing:border-box}
.page-profesor{margin:0;background:var(--bg);color:#f4f6f8;font-family:system-ui,-apple-system,Segoe UI,Arial,sans-serif;padding:12px;min-height:100vh}
.page-profesor .app{width:100%;max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
.page-profesor .top{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:2px 4px}
.page-profesor .brand{font-size:12px;font-weight:850;letter-spacing:.04em;color:var(--orange)}
.page-profesor .connection{font-size:11px;padding:6px 9px;border:1px solid var(--line);border-radius:999px;color:var(--muted);white-space:nowrap}
.page-profesor .connection.online{color:#b8efc0;border-color:#285d39;background:#14261a}
.page-profesor .connection.offline{color:#ffb5b2;border-color:#733b37;background:#2d1716}
.page-profesor .card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px}
.page-profesor .pinrow{display:flex;gap:8px}
.page-profesor .pinrow input{min-width:0;flex:1;background:#111417;border:1px solid #484f58;color:white;border-radius:9px;padding:12px;font:inherit;font-size:17px;letter-spacing:.18em}
.page-profesor .btn{border:0;border-radius:13px;font:inherit;font-weight:900;padding:15px;cursor:pointer}
.page-profesor .btn:disabled{opacity:.35;cursor:not-allowed}
.page-profesor .btn.orange{background:var(--orange);color:#201300}
.page-profesor .btn.play{background:#80e69d;color:#092713}
.page-profesor .btn.pause{background:#ff8f87;color:#360a07}
.page-profesor .status{font-size:12px;color:var(--muted);line-height:1.4;margin-top:8px}
.page-profesor .status.error{color:#ffaaa4}
.page-profesor .countdown-card{text-align:center;padding:14px 10px 16px}
.page-profesor .count-label{font-size:clamp(11px,3vw,14px);font-weight:850;letter-spacing:.08em;color:var(--muted)}
.page-profesor .count{font-size:clamp(76px,24vw,148px);line-height:1.05;font-weight:1000;font-variant-numeric:tabular-nums;letter-spacing:-.06em;margin:5px 0 0}
.page-profesor .compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:stretch}
.page-profesor .param-column{min-width:0;padding:12px 10px}
.page-profesor .column-title{font-size:clamp(11px,3.2vw,14px);font-weight:950;letter-spacing:.04em;text-align:center;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:4px}
.page-profesor .param-row{padding:10px 2px;border-bottom:1px solid #2c3137;min-width:0}
.page-profesor .param-row:last-child{border-bottom:0}
.page-profesor .param-label{font-size:10px;font-weight:800;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.page-profesor .param-value{font-size:clamp(20px,6.5vw,34px);line-height:1.16;font-weight:950;margin-top:5px;overflow-wrap:anywhere}
.page-profesor .param-value.posture-value{font-size:clamp(17px,4.8vw,25px)}
.page-profesor .control-card{padding:0;background:transparent;border:0}
.page-profesor #togglePlayback{display:block;width:100%;min-height:70px;font-size:clamp(24px,7vw,34px)}
.page-profesor .footer{text-align:center;color:#77818b;font-size:11px;line-height:1.45;padding:0 8px}
.page-profesor .hidden{display:none!important}
@media(min-width:600px){.page-profesor{padding:18px}.page-profesor .app{gap:12px}.page-profesor .compare-grid{gap:12px}.page-profesor .param-column{padding:16px}.page-profesor .param-row{padding:13px 3px}.page-profesor .param-label{font-size:12px}.page-profesor .countdown-card{padding:20px}}


/* reproductor.html · estilos heredados externalizados */

        
        .page-reproductor *{box-sizing:border-box}
        .page-reproductor{
            background:var(--bg);color:#fff;font-family:"Segoe UI",Tahoma,Verdana,sans-serif;
            margin:0;padding:20px;display:flex;flex-direction:column;align-items:center;
        }
        .page-reproductor .container{width:100%;max-width:1100px}
        .page-reproductor .loader{
            background:var(--panel);border:1px solid #333;border-radius:10px;
            padding:16px;margin-bottom:18px;
        }
        .page-reproductor .loader-title{font-size:18px;font-weight:800;color:var(--orange);margin-bottom:14px}
        .page-reproductor .load-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
        .page-reproductor .load-box{background:var(--panel2);border:1px solid #3b3b3b;border-radius:8px;padding:14px}
        .page-reproductor .load-label{display:block;font-size:13px;color:#ddd;font-weight:800;margin-bottom:8px}
        .page-reproductor .load-info{font-size:12px;color:var(--muted);min-height:34px;margin-top:8px;line-height:1.4}
        .page-reproductor button{
            border:0;border-radius:7px;padding:10px 14px;font-weight:800;
            cursor:pointer;font-size:14px;
        }
        .page-reproductor button.primary{background:var(--orange);color:#151515}
        .page-reproductor button.secondary{background:#353535;color:#fff;border:1px solid #505050}
        .page-reproductor button:disabled{opacity:.45;cursor:not-allowed}
        .page-reproductor input[type=file]{
            width:100%;font-size:12px;color:#ccc;
        }
        .page-reproductor .load-actions{margin-top:13px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
        .page-reproductor .status{font-size:12px;color:var(--muted)}
        .page-reproductor .current-class{
            margin:4px 0 16px;text-align:center;font-size:21px;font-weight:800;
        }
        .page-reproductor .hud{
            display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:20px
        }
        .page-reproductor .hud-box{
            background:var(--panel2);border-radius:8px;padding:15px 10px;
            display:flex;flex-direction:column;justify-content:center;
            border-left:4px solid #333;min-height:96px
        }
        .page-reproductor .hud-label{font-size:13px;color:var(--muted);margin-bottom:5px;white-space:nowrap}
        .page-reproductor .hud-value{font-size:28px;font-weight:bold}
        .page-reproductor .hud-sub{font-size:12px;color:var(--orange);margin-top:4px}
        .page-reproductor .timer-text{color:#eee;font-family:monospace}
        .page-reproductor .audio-container{margin-bottom:20px}
        .page-reproductor audio{width:100%;border-radius:8px}
        .page-reproductor .charts-container{
            position:relative;background:var(--panel);padding:20px;border-radius:8px;height:400px
        }
        .page-reproductor .state-band{
            position:fixed;
            top:0;
            left:0;
            width:100%;
            height:5px;
            z-index:9999;
            background:#333;
            --band-next:#333;
            transition:background-color .25s ease;
        }
        .page-reproductor .state-band.pulse{
            animation:stateBandPulse .65s ease-in-out infinite alternate;
        }
        @keyframes stateBandPulse{
            from{
                background-color:var(--band-current);
                box-shadow:0 0 0 color-mix(in srgb,var(--band-current) 35%, transparent);
            }
            to{
                background-color:color-mix(in srgb,var(--band-current) 25%,var(--band-next) 75%);
                box-shadow:0 0 10px color-mix(in srgb,var(--band-next) 55%, transparent);
            }
        }
        .page-reproductor .remote-setup{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:-7px 0 18px;color:#aaa;font-size:11px}
        .page-reproductor .remote-setup.ready{opacity:.65}
        .page-reproductor .remote-setup button{font-size:11px;padding:6px 9px}
        .page-reproductor .remote-setup button.ready{display:none}
        .page-reproductor .hidden{display:none}
        .page-reproductor .loader.loaded{display:none}
        .page-reproductor .warning{
            background:#33240f;border:1px solid #6f4a13;color:#f6cf8a;
            padding:10px 12px;border-radius:7px;font-size:12px;margin-top:10px;display:none
        }
        @media(max-width:850px){.page-reproductor .hud{grid-template-columns:repeat(3,1fr)}}
        @media(max-width:650px){
            .page-reproductor{padding:10px}.page-reproductor .load-grid{grid-template-columns:1fr}
            .page-reproductor .hud{grid-template-columns:repeat(2,1fr)}
        }
    

/* =========================================================
   V4.3 · MENU COMUN — FUENTE: BIBLIOTECA
   ========================================================= */
.site-header{
  position:sticky !important;
  top:0 !important;
  z-index:1100 !important;
  margin:0 -22px 22px !important;
  padding:12px 22px !important;
  background:rgba(8,10,12,.91) !important;
  border-bottom:1px solid var(--line) !important;
  backdrop-filter:blur(12px) !important;
  -webkit-backdrop-filter:blur(12px) !important;
}
.header-inner{
  max-width:1320px !important;
  margin:0 auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
}
.brand-mark{
  font-size:15px !important;
  font-weight:950 !important;
  letter-spacing:.11em !important;
  white-space:nowrap !important;
  font-family:Manrope,Inter,Arial,sans-serif !important;
}
.brand-mark span{color:var(--lime) !important}
.main-nav{
  display:flex !important;
  align-items:center !important;
  gap:6px !important;
  flex-wrap:wrap !important;
  justify-content:flex-end !important;
}
.main-nav a,.main-nav button{
  appearance:none !important;
  border:1px solid transparent !important;
  background:transparent !important;
  color:#aeb6bf !important;
  text-decoration:none !important;
  border-radius:9px !important;
  padding:9px 11px !important;
  font-family:Manrope,Inter,Arial,sans-serif !important;
  font-size:12px !important;
  line-height:1 !important;
  font-weight:800 !important;
  letter-spacing:0 !important;
  cursor:pointer !important;
  box-shadow:none !important;
}
.main-nav a:hover,.main-nav button:hover{
  color:#fff !important;
  background:#14191e !important;
  border-color:#242a30 !important;
}
.main-nav a.active{
  color:var(--lime) !important;
  background:rgba(184,255,0,.065) !important;
  border-color:rgba(184,255,0,.20) !important;
}
@media(max-width:650px){
  .site-header{margin:0 -14px 14px !important;padding:10px 14px !important}
  .header-inner{align-items:flex-start !important;flex-direction:column !important}
  .main-nav{width:100% !important;justify-content:flex-start !important}
}


/* EDITOR MENU FINAL: exact shared geometry using .wrap */
.editor-page{padding:0 !important;margin:0 !important;min-height:100vh;background:var(--bg) !important;font-family:Manrope,Inter,Arial,sans-serif !important}
.editor-page .wrap{max-width:1440px !important;margin:0 auto !important;padding:22px !important}
.editor-page .site-header{position:static !important;top:auto !important;z-index:auto !important;max-width:none !important;width:auto !important;margin:0 -22px 22px !important;padding:12px 22px !important;background:transparent !important;border:0 !important;border-bottom:1px solid var(--line) !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;box-shadow:none !important}
.editor-page .header-inner{max-width:1320px !important;margin:0 auto !important;display:flex !important;align-items:center !important;justify-content:space-between !important;gap:18px !important}
.editor-page .brand-mark{font:900 15px/1 Space Grotesk,Manrope,sans-serif !important;letter-spacing:.11em !important;white-space:nowrap !important;color:#fff !important}
.editor-page .brand-mark span{color:var(--lime) !important}
.editor-page .main-nav{display:flex !important;align-items:center !important;gap:6px !important;flex-wrap:wrap !important;justify-content:flex-end !important}
.editor-page .main-nav a,.editor-page .main-nav button{appearance:none !important;border:1px solid transparent !important;background:transparent !important;color:#aeb6bf !important;text-decoration:none !important;border-radius:9px !important;padding:9px 11px !important;font:800 12px/1 Manrope,Inter,Arial,sans-serif !important;letter-spacing:0 !important;cursor:pointer !important;box-shadow:none !important}
.editor-page .main-nav a:hover,.editor-page .main-nav button:hover{color:#fff !important;background:#14191e !important;border-color:#242a30 !important}
.editor-page .main-nav a.active{color:var(--lime) !important;background:rgba(184,255,0,.065) !important;border-color:rgba(184,255,0,.20) !important}
@media(max-width:650px){.editor-page .wrap{padding:14px !important}.editor-page .site-header{margin:0 -14px 14px !important;padding:10px 14px !important}.editor-page .header-inner{align-items:flex-start !important;flex-direction:column !important}.editor-page .main-nav{width:100% !important;justify-content:flex-start !important}}

/* V4.3 · mensajes junto a los botones de guardar */
.editor-page .save-action-group{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  min-width:0;
}
.editor-page .save-inline-status{
  display:none;
  align-items:center;
  min-height:38px;
  max-width:min(360px,45vw);
  padding:8px 11px;
  border-radius:9px;
  border:1px solid #30373e;
  background:#101418;
  color:#d7dde2;
  font-size:12px;
  line-height:1.25;
  font-weight:800;
  white-space:normal;
}
.editor-page .save-inline-status.ok{
  display:inline-flex;
  background:rgba(184,255,0,.08);
  border-color:rgba(184,255,0,.30);
  color:#dfff9f;
}
.editor-page .save-inline-status.error{
  display:inline-flex;
  background:rgba(255,49,80,.10);
  border-color:rgba(255,49,80,.30);
  color:#ffc2ca;
}
.editor-page .progression-actions-row .save-action-group{margin-left:auto}
.editor-page .chart-save-group{margin-left:auto}
@media(max-width:760px){
  .editor-page .save-action-group,
  .editor-page .progression-actions-row .save-action-group,
  .editor-page .chart-save-group{
    width:100%;
    margin-left:0;
    justify-content:flex-start;
    align-items:stretch;
    flex-wrap:wrap;
  }
  .editor-page .save-action-group .save-library{width:auto}
  .editor-page .save-inline-status{max-width:none;flex:1 1 220px}
}

/* =========================================================
   V4.3 · BIBLIOTECA — búsqueda, filtros, Ride Profile y valoraciones
   ========================================================= */
.library-toolbar{position:relative;align-items:center}
.library-toolbar .filter-btn{min-width:102px}
.library-filter-panel{
  position:absolute;left:0;top:calc(100% + 8px);z-index:200;
  display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;gap:10px;align-items:end;
  width:min(860px,100%);padding:12px;background:#151a1f;
  border:1px solid #30373e;border-radius:12px;box-shadow:0 16px 34px rgba(0,0,0,.45)
}
.library-filter-panel[hidden]{display:none}
.library-filter-panel .field{gap:5px}
.library-filter-panel label{font-size:11px}
.library-filter-panel .input{padding:9px 10px}
.library-filter-panel .btn{height:40px}
.library-actions{display:grid;grid-template-columns:repeat(2,36px);gap:5px;width:max-content}
.library-actions .iconbtn{width:36px;height:36px}
.rating-editor{display:flex;flex-direction:column;gap:4px;min-width:150px}
.rating-line{display:flex;align-items:center;gap:6px;white-space:nowrap}
.rating-label{width:50px;font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.rating-stars{display:flex;gap:0}
.rating-star{appearance:none;border:0;background:transparent!important;color:#59636d;padding:0 1px!important;margin:0;line-height:1;font-size:17px;cursor:pointer;box-shadow:none!important}
.rating-star:hover,.rating-star.active{color:var(--yellow)}
.rating-star:focus{outline:none;color:var(--yellow)}
.ride.library-ride{gap:.5px}
.ride.library-ride i{width:3px;border-radius:999px 999px 0 0;min-height:4px;box-shadow:none}
.ride.library-ride .stretch-bar{border-radius:999px 999px 0 0}
@media(max-width:760px){
  .library-filter-panel{grid-template-columns:1fr;width:min(100%,520px)}
  .library-filter-panel .btn{width:100%}
}
.library-ride{gap:1px!important;min-width:0!important;width:118px!important;max-width:118px!important}
.library-ride i{width:auto!important;flex:1 1 0!important;min-width:0!important;min-height:4px!important;border-radius:999px 999px 0 0!important}
@media(max-width:1100px){.library-ride{width:105px!important;max-width:105px!important}}

/* ===== Dashboard V4.3 ===== */
.dashboard-page{display:flex;flex-direction:column;gap:16px}
.dashboard-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:26px 28px;margin:0}
.dashboard-hero .eyebrow{font-size:11px;letter-spacing:.16em;font-weight:900;color:var(--lime);margin-bottom:8px}
.dashboard-intro{max-width:680px;margin:8px 0 0}
.dashboard-hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.dashboard-hero-actions a{text-decoration:none}
.dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.dashboard-kpi{padding:17px 18px;min-height:112px}
.dashboard-kpi .v{font-weight:950;font-size:29px;line-height:1;color:var(--lime)}
.dashboard-kpi .k{margin-top:8px;font-weight:850}
.dashboard-kpi .kpi-foot{margin-top:5px;font-size:11px;color:var(--muted)}
.dashboard-main-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(300px,.85fr);gap:16px;align-items:start}
.dashboard-section-head{align-items:flex-start}
.dashboard-section-head a{text-decoration:none;font-size:12px;font-weight:800}
.dashboard-recent{margin-top:14px}
.dashboard-recent-row{display:grid;grid-template-columns:minmax(170px,.9fr) minmax(180px,1.6fr) minmax(125px,.7fr) 76px;gap:14px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}
.dashboard-recent-row:first-child{border-top:0;padding-top:2px}
.dashboard-class-title{font-weight:900;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-recent-profile{min-width:0}
.dashboard-ride{height:52px;display:flex;align-items:flex-end;gap:1px;padding:3px 1px;border:1px solid var(--line);border-radius:8px;background:#0d1115;overflow:hidden}
.dashboard-ride i{display:block;flex:1 1 0;min-width:1px;border-radius:999px 999px 0 0}
.dashboard-ride-empty{height:52px;border:1px dashed var(--line);border-radius:8px;background:#0d1115}
.dashboard-recent-rating{font-size:11px;line-height:1.5;white-space:nowrap}
.dashboard-stars{letter-spacing:1px;color:var(--lime);font-size:12px}
.dashboard-stars-off{color:#4a5057}
.dashboard-recent-actions{display:grid;grid-template-columns:repeat(2,36px);gap:5px;justify-content:end}
.dashboard-side{display:flex;flex-direction:column;gap:16px}
.dashboard-review-grid{display:grid;gap:1px;margin-top:12px}
.dashboard-review-item{position:relative;padding:12px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;column-gap:12px;align-items:center}
.dashboard-review-item:first-child{border-top:0;padding-top:2px}
.dashboard-review-item span{font-size:12px;color:var(--muted)}
.dashboard-review-item strong{font-size:18px;color:var(--lime)}
.dashboard-review-item a{grid-column:1 / -1;margin-top:6px;font-size:11px;font-weight:800;text-decoration:none}
.dashboard-quick-actions{display:grid;gap:8px;margin-top:12px}
.dashboard-quick-actions a{display:block;padding:11px 12px;border:1px solid var(--line);border-radius:10px;text-decoration:none;font-weight:800;background:#101418}
.dashboard-quick-actions a:hover{border-color:rgba(184,255,0,.35);background:#12181d}
.tiny{font-size:10px}
@media(max-width:980px){
  .dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-main-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  .dashboard-hero{align-items:flex-start;flex-direction:column}
  .dashboard-hero-actions{width:100%;justify-content:flex-start}
  .dashboard-recent-row{grid-template-columns:1fr;gap:9px}
  .dashboard-recent-actions{justify-content:start}
  .dashboard-recent-profile{order:3}
  .dashboard-recent-rating{order:4}
}
@media(max-width:520px){.dashboard-kpis{grid-template-columns:1fr}.dashboard-hero{padding:20px}.dashboard-kpi{min-height:0}}

/* ===== Dashboard cleanup + favoritos ===== */
.dashboard-dashboard-section{margin:0}
.dashboard-favorites{margin-top:14px}
.dashboard-favorite-row{display:grid;grid-template-columns:minmax(170px,.9fr) minmax(180px,1.6fr) minmax(125px,.7fr) 52px;gap:14px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}
.dashboard-favorite-row:first-child{border-top:0;padding-top:2px}
.dashboard-favorite-meta,.dashboard-favorite-profile,.dashboard-favorite-rating{min-width:0}
.dashboard-favorite-actions{display:flex;justify-content:flex-end}
.dashboard-main-grid{display:flex;flex-direction:column;gap:16px}
.library-class-name{display:flex;align-items:center;gap:8px;min-width:0}
.favorite-toggle{appearance:none;border:0;background:transparent;color:#59636d;padding:0!important;margin:0;line-height:1;font-size:22px;cursor:pointer;box-shadow:none!important;flex:0 0 auto}
.favorite-toggle:hover,.favorite-toggle.active,.favorite-toggle:focus{color:var(--yellow)}
.favorite-toggle:focus{outline:none}
@media(max-width:760px){
  .dashboard-favorite-row{grid-template-columns:1fr;gap:9px}
  .dashboard-favorite-profile{order:2}
  .dashboard-favorite-rating{order:3}
  .dashboard-favorite-actions{order:4;justify-content:flex-start}
}
@media(min-width:761px){
  .dashboard-dashboard-section>.dashboard-section-head{align-items:flex-start}
}

/* ===== ADMIN PANEL ===== */
.admin-page{display:flex;flex-direction:column;gap:16px}.admin-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.admin-head .eyebrow{font-size:11px;letter-spacing:.16em;font-weight:900;color:var(--lime);margin-bottom:8px}.admin-intro{max-width:720px;margin:8px 0 0}.admin-tabs{display:flex;gap:6px;flex-wrap:wrap}.admin-tab{padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:#101418;color:#d8dfe5;font-weight:850}.admin-tab.active{background:#12180d;border-color:rgba(184,255,0,.5);color:var(--lime)}.admin-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.admin-kpi{padding:17px 18px;min-height:100px}.admin-kpi .v{font:900 28px/1 Space Grotesk,sans-serif;color:var(--lime)}.admin-kpi .k{margin-top:8px;font-size:12px;color:var(--muted);font-weight:850;text-transform:uppercase}.admin-grid-2{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;margin-top:16px}.admin-section-title{align-items:flex-start}.admin-list{margin-top:12px}.admin-list-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px 0;border-top:1px solid var(--line)}.admin-list-row:first-child{border-top:0;padding-top:2px}.admin-list-row b{font-size:12px}.admin-list-row .tiny{font-size:10px}.admin-table th,.admin-table td{padding:10px 8px}.admin-table th{white-space:nowrap}.admin-table-wrap{overflow-x:auto}.admin-mini-status{display:inline-block;padding:6px 8px;font-size:10px}.admin-online{color:var(--lime);border-color:rgba(184,255,0,.3);background:#12180d}.health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.health-item{display:flex;align-items:center;gap:8px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#101418;font-size:12px}.health-item b{margin-left:auto;font-size:10px}.health-dot{width:8px;height:8px;border-radius:50%;background:#70777e}.health-dot.ok{background:var(--lime);box-shadow:0 0 8px rgba(184,255,0,.45)}.health-dot.bad{background:var(--red)}.admin-security-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.admin-security-form .formActions{grid-column:1 / -1}.admin-modalbox{width:min(860px,100%);max-height:90vh;overflow:auto}.admin-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.admin-detail-grid .metric .v{font-size:23px;color:var(--lime)}.admin-detail-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.panel-soft{padding:14px;border:1px solid var(--line);background:#101418;border-radius:12px}.panel-soft b{font-size:12px}.admin-page .actions{justify-content:flex-start}.admin-page .iconbtn{width:34px;height:34px}.admin-page .badge{font-size:10px}.admin-page .toolbar{justify-content:flex-end}.admin-page .table td:last-child{min-width:130px}.admin-page .table-wrap{overflow-x:auto}
@media(max-width:1050px){.admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-grid-2{grid-template-columns:1fr}.admin-security-form{grid-template-columns:1fr}.health-grid{grid-template-columns:1fr}.admin-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.admin-head{align-items:flex-start;flex-direction:column}.admin-kpis{grid-template-columns:1fr}.admin-tabs{width:100%;overflow:auto;flex-wrap:nowrap}.admin-tab{white-space:nowrap}.admin-detail-grid,.admin-detail-columns{grid-template-columns:1fr}.admin-page .toolbar{width:100%;justify-content:stretch}.admin-page .toolbar .input{min-width:0!important}}
.admin-users-toolbar{align-items:center;max-width:100%;}.admin-users-toolbar .admin-select{width:auto;min-width:150px;padding:10px 12px}.admin-users-toolbar .input:first-child{flex:1;min-width:220px}.admin-page .formActions{margin-top:4px}@media(max-width:820px){.admin-users-toolbar{width:100%}.admin-users-toolbar .input{min-width:0!important}.admin-users-toolbar .admin-select{flex:1}.admin-users-toolbar .btn{flex:none}}

/* =========================================================
   V4.3 · REPRODUCTOR · FLUJO DE CLASE
   ========================================================= */
.page-reproductor.player-setup,
.page-reproductor.player-live{
  width:100vw;
  min-height:100vh;
  height:100vh;
  padding:0 !important;
  margin:0;
  overflow:hidden;
  display:block;
}
.page-reproductor .player-surface{
  position:relative;
  width:100vw;
  height:100vh;
  min-height:100vh;
  padding:0;
  overflow:hidden;
  background:var(--bg);
}
.page-reproductor .player-surface[hidden]{display:none !important}
.page-reproductor .player-surface > .container{
  width:100%;
  max-width:none;
  height:100%;
  min-height:0;
  padding:clamp(16px,2.2vh,28px) clamp(18px,2.4vw,36px) clamp(14px,1.8vh,24px);
  display:flex;
  flex-direction:column;
  gap:clamp(10px,1.6vh,18px);
}
.page-reproductor .player-surface .current-class{
  flex:0 0 auto;
  margin:0;
  padding-right:70px;
  text-align:left;
  font-size:clamp(18px,2vw,28px);
  line-height:1.05;
}
.page-reproductor .player-surface .hud{
  flex:0 0 auto;
  margin:0;
  gap:clamp(8px,.8vw,12px);
}
.page-reproductor .player-surface .hud-box{
  min-height:clamp(78px,10vh,112px);
  padding:clamp(10px,1.4vh,16px) clamp(9px,1vw,14px);
}
.page-reproductor .player-surface .hud-label{font-size:clamp(10px,.8vw,13px)}
.page-reproductor .player-surface .hud-value{font-size:clamp(24px,2.6vw,40px)}
.page-reproductor .player-surface .hud-box .hud-value[style]{font-size:clamp(18px,1.9vw,28px) !important}
.page-reproductor .player-surface .charts-container{
  flex:1 1 auto;
  min-height:0;
  height:auto;
  padding:clamp(10px,1.4vw,20px);
  border:1px solid var(--line);
  background:#0f1317;
  border-radius:12px;
}
.page-reproductor .player-surface .charts-container canvas{
  width:100% !important;
  height:100% !important;
}
.page-reproductor .player-surface audio{display:none !important}
.page-reproductor .player-fullscreen,
.page-reproductor .player-mini-play{
  position:fixed;
  z-index:20;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.17);
  background:rgba(8,10,12,.68);
  color:#fff;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 8px 24px rgba(0,0,0,.28);
}
.page-reproductor .player-fullscreen{
  top:14px;
  right:14px;
  width:40px;
  height:40px;
  border-radius:10px;
  font-size:20px;
}
.page-reproductor .player-mini-play{
  right:14px;
  bottom:14px;
  width:42px;
  height:42px;
  border-radius:50%;
  font-size:16px;
}
.page-reproductor .player-fullscreen:hover,
.page-reproductor .player-mini-play:hover{border-color:rgba(184,255,0,.65)}
.page-reproductor .player-fullscreen.hidden,
.page-reproductor .player-mini-play.hidden{display:none !important}

.page-reproductor .player-setup-overlay{
  position:fixed;
  inset:0;
  z-index:10000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:22px;
  background:rgba(8,10,12,.78);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.page-reproductor .player-setup-overlay:not(.show){display:none}
.page-reproductor .player-setup-modal{
  width:min(600px,calc(100vw - 36px));
  max-height:min(760px,calc(100vh - 36px));
  overflow:auto;
  padding:clamp(22px,4vw,36px);
  border:1px solid #343c44;
  border-radius:20px;
  background:linear-gradient(180deg,#171d22 0%,#101418 100%);
  box-shadow:0 28px 90px rgba(0,0,0,.5);
}
.page-reproductor .setup-step.hidden{display:none !important}
.page-reproductor .setup-kicker{
  font-size:11px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--lime);
  margin-bottom:10px;
}
.page-reproductor .setup-title{
  font:900 clamp(24px,4vw,34px)/1.05 Space Grotesk,Manrope,sans-serif;
  letter-spacing:-.025em;
  color:#fff;
}
.page-reproductor .setup-meta{
  margin-top:10px;
  color:var(--muted);
  font-size:13px;
  line-height:1.55;
}
.page-reproductor .setup-file{
  margin-top:22px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px;
  border:1px dashed #414a53;
  border-radius:14px;
  background:#0d1114;
  cursor:pointer;
}
.page-reproductor .setup-file:hover{border-color:rgba(184,255,0,.6)}
.page-reproductor .setup-file input{position:absolute;opacity:0;pointer-events:none}
.page-reproductor .setup-file-button{
  flex:0 0 auto;
  padding:10px 14px;
  border-radius:10px;
  background:var(--lime);
  color:#0a0e0a;
  font-weight:900;
}
.page-reproductor .setup-file-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#e9edf1;
  font-size:13px;
}
.page-reproductor .setup-check{
  margin-top:12px;
  padding:10px 12px;
  border-radius:10px;
  background:#0d1114;
  border:1px solid #2d353d;
  color:#c8d0d7;
  font-size:12px;
  line-height:1.45;
}
.page-reproductor .setup-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:18px;
  flex-wrap:wrap;
}
.page-reproductor .setup-btn{
  min-height:42px;
  padding:10px 16px;
  border-radius:10px;
  font-weight:900;
  border:1px solid #384149;
  background:#232a30;
  color:#fff;
}
.page-reproductor .setup-btn.primary{background:var(--lime);border-color:var(--lime);color:#0a0e0a}
.page-reproductor .setup-btn.secondary{background:#1a2025}
.page-reproductor .setup-btn:disabled{opacity:.4;cursor:not-allowed}
.page-reproductor .setup-qr{
  width:240px;
  height:240px;
  margin:22px auto 8px;
  padding:10px;
  display:grid;
  place-items:center;
  background:#fff;
  border-radius:14px;
}
.page-reproductor .setup-qr img{display:block;max-width:100%;height:auto}

@media(max-width:850px){
  .page-reproductor .player-surface .hud{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:650px){
  .page-reproductor .player-surface > .container{padding:12px 10px 10px;gap:8px}
  .page-reproductor .player-surface .hud{grid-template-columns:repeat(2,1fr)}
  .page-reproductor .player-surface .hud-box{min-height:70px;padding:9px}
  .page-reproductor .player-surface .charts-container{padding:6px}
  .page-reproductor .player-fullscreen{top:10px;right:10px;width:36px;height:36px}
  .page-reproductor .setup-file{align-items:flex-start;flex-direction:column}
  .page-reproductor .setup-file-button{width:100%;text-align:center}
  .page-reproductor .setup-file-name{max-width:100%}
  .page-reproductor .setup-qr{width:210px;height:210px}
}

/* V4.3 player: no position state band */
.page-reproductor .state-band{display:none!important}
