/* ===== Estilos: base ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
:root{
  --bg:#F2F4F8; --surface:#FFFFFF; --surface-2:#E9EDF4; --line:#D6DCE8;
  --ink:#141E36; --muted:#5C667E; --faint:#8C95AB; --text:var(--ink);
  --navy:#1F2A44; --navy-2:#24406B; --green:#00A651; --green-ink:#046A36;
  --gold:#D9A21B; --blue:#3D82D0; --danger:#C93B3B; --danger-bg:#FBE7E7; --warn-bg:#FFF3D6;
  --accent:var(--green); --accent-soft:#DDF5E7;
  --radius:10px; --shadow:0 1px 2px rgba(20,30,54,.06),0 8px 24px -12px rgba(20,30,54,.18);
  --display:"Bricolage Grotesque","Figtree",system-ui,sans-serif;
  --body:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]){
    --bg:#0E1424; --surface:#182036; --surface-2:#1F2A44; --line:#2C3A5C;
    --ink:#EEF1F8; --muted:#A3ADC4; --faint:#6F7A96;
    --navy:#1F2A44; --navy-2:#24406B; --green:#22C267; --green-ink:#9FE9BF;
    --gold:#F0B429; --blue:#5B9BD5; --danger:#F07373; --danger-bg:#3B1E22; --warn-bg:#3A2F14;
    --accent:var(--green); --accent-soft:#163826;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px -12px rgba(0,0,0,.6);
  }
}
:root[data-theme="dark"]{
  --bg:#0E1424; --surface:#182036; --surface-2:#1F2A44; --line:#2C3A5C;
  --ink:#EEF1F8; --muted:#A3ADC4; --faint:#6F7A96;
  --navy:#1F2A44; --navy-2:#24406B; --green:#22C267; --green-ink:#9FE9BF;
  --gold:#F0B429; --blue:#5B9BD5; --danger:#F07373; --danger-bg:#3B1E22; --warn-bg:#3A2F14;
  --accent:var(--green); --accent-soft:#163826;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px -12px rgba(0,0,0,.6);
}
*{box-sizing:border-box}
html{color-scheme:light}
:root[data-theme="dark"]{color-scheme:dark}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]){color-scheme:dark}
}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--display);margin:0;text-wrap:balance;letter-spacing:-.01em}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--blue)}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.sr{position:absolute;left:-9999px}
/* ===== 7.0: coleccionables, Mi semana, Banda, chat, asistente ===== */
.av-ph{position:relative;display:block!important;background:var(--surface-2)!important;color:var(--muted);overflow:hidden}
.av-ph .ico{position:absolute;left:50%;top:50%;width:55%;height:55%;transform:translate(-50%,-50%)}
.coll-av{position:relative;display:inline-block;line-height:0;flex:none;vertical-align:middle;padding:0!important;box-sizing:content-box}
.coll-av>.avatar{display:block!important;width:100%!important;height:100%!important;border-radius:50%;object-fit:cover;box-shadow:none!important;margin:0!important;padding:0!important;box-sizing:border-box}
.coll-fr{position:absolute;pointer-events:none;line-height:0;z-index:1}
.coll-fr .coll-frame{display:block;width:100%;height:100%;overflow:visible}
.coll-frame.glow{filter:drop-shadow(0 0 5px var(--g1)) drop-shadow(0 0 1.5px var(--g2))}
.coll-bn{display:inline-flex;align-items:center;justify-content:center;width:132px;height:32px;padding:0 10px;border-radius:999px;font-weight:800;font-size:12px;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box}
.coll-badge{display:inline-block;vertical-align:middle;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}
.coll-em{display:inline-block;vertical-align:-6px;margin:0 1px}
.ach-pop {
  position:fixed;
  left:50%;
  top:70px;
  transform:translateX(-50%);
  z-index:420;
  display:flex;
  gap:12px;
  align-items:center;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:12px 14px;
  max-width:min(92vw,460px);
  animation:achin .5s cubic-bezier(.2,1.4,.4,1);
}
.ach-pop small{display:block;color:var(--gold);font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:10px}
.ach-pop b{display:block;font-size:16px}
.ach-coll{display:flex;gap:6px;align-items:center;margin-top:6px}
.xp-fly{position:fixed;top:45%;z-index:420;font-weight:900;font-size:22px;color:var(--gold);text-shadow:0 2px 8px rgba(0,0,0,.35);pointer-events:none;animation:xpfly 1.6s ease-out forwards}
.sem-head{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.sem-me{display:flex;gap:12px;align-items:center;min-width:260px}
.sem-lvl{font-size:13px;margin-top:2px}
.sem-lvl .prog{width:200px;margin-top:4px}
.sem-stats{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto;align-items:center}
.sem-stat{display:grid;grid-template-columns:auto auto;gap:0 8px;align-items:center;padding:6px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.sem-stat .i{grid-row:1/3;color:var(--muted)}
.sem-stat .i .ico{width:22px;height:22px}
.sem-stat b{font-size:18px;line-height:1}
.sem-stat small{color:var(--muted);font-size:10.5px}
.sem-stat.hot .i{color:#FF8C00}
.sem-week{margin-bottom:12px}
.sem-week.done{border-color:var(--green)}
.sem-wh{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.sem-wh h3{margin:0;font-size:18px}
.sem-count{padding:6px 12px;border-radius:12px;background:var(--surface-2);font-size:13px;display:flex;flex-direction:column;align-items:center;line-height:1.2}
.sem-count small{color:var(--muted);font-size:10.5px}
.sem-prog{margin-left:auto;display:flex;gap:8px;align-items:center}
.sem-songs{display:grid;gap:8px}
.sem-song{display:grid;grid-template-columns:44px 1fr auto auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.sem-song.ready{background:color-mix(in srgb,var(--green) 10%,var(--surface));border-color:color-mix(in srgb,var(--green) 40%,var(--line))}
.sem-song .rcover{width:44px;height:44px}
.sem-info{min-width:0}
.sem-info b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sem-steps{display:flex;gap:4px}
.sem-step{display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);border-radius:10px;padding:5px 8px;font:inherit;font-size:10.5px;font-weight:700;cursor:pointer;min-width:62px;transition:all .15s}
.sem-step .ico{width:18px;height:18px}
.sem-step:hover{border-color:var(--accent);color:var(--accent)}
.sem-step.on{background:var(--accent);color:var(--accent-ink,#fff);border-color:var(--accent)}
.sem-step.ready.on{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 25%,transparent)}
.sem-res{display:flex;gap:2px}
.sem-res .ico-btn .ico{width:17px;height:17px}
.sem-foot{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}
.sem-empty{margin-bottom:12px}
@media (max-width:700px) {
.sem-song .rcover{width:36px;height:36px}
.sem-step{flex:1}
}
.sem-pop-ico{width:64px;height:64px;margin:0 auto 8px;border-radius:50%;background:linear-gradient(135deg,#FF8C00,#FF3B6B);color:#fff;display:grid;place-items:center;animation:achspin .9s ease-out}
.sem-pop-ico .ico{width:34px;height:34px}
.sem-pop h2{margin:0 0 6px}
.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.ach{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);opacity:.55}
.ach.on{opacity:1;border-color:color-mix(in srgb,var(--gold) 50%,var(--line))}
.ach b{display:block}
.ach small{display:block;color:var(--muted);font-size:11px}
.ach .hint{display:block;font-size:12px}
.bd-sec{margin-bottom:18px}
.bd-sec.folded>.bd-grid{display:none}
.bd-h .fold-btn{margin-right:2px}
.bd-h{display:flex;gap:8px;align-items:center;margin:0 0 10px;font-size:16px}
.bd-h .i{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--surface-2);color:var(--accent)}
.bd-h .i .ico,.bd-h .i svg{width:18px;height:18px}
.bd-icos{display:inline-flex;gap:3px;align-items:center}
.bd-icos>span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:8px;background:var(--surface-2);color:var(--muted)}
.bd-icos .ico,.bd-icos svg{width:15px;height:15px}
.bd-role{display:flex;gap:6px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:2px}
.bd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.bd-card{position:relative;border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:0 0 12px;text-align:center;cursor:pointer;font:inherit;color:inherit;overflow:hidden;transition:transform .15s,box-shadow .15s}
.bd-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.bd-bn{height:64px;position:relative;overflow:hidden}
.bd-photo{width:100%;height:100%;object-fit:cover;opacity:.55}
.bd-av{margin:-34px auto 0;position:relative;display:inline-block;z-index:2;line-height:0}
.bd-card{overflow:visible}
.bd-body{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 10px 0}
.bd-body b{font-size:15px}
.bd-title{font-size:11px;font-weight:800;color:var(--gold);text-transform:uppercase;letter-spacing:.04em}
.bd-xp{font-size:11.5px;color:var(--muted);display:flex;gap:4px;align-items:center}
.bd-tro{display:flex;gap:2px;justify-content:center;flex-wrap:wrap;margin-top:4px;min-height:26px}
.bdp-dlg .mh{display:none}
.bdp-head{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap;margin-top:-40px;padding:0 4px}
.bdp-head>.btn{margin-top:50px}
.bdp-sec{margin-top:14px}
.bdp-sec h4{margin:0 0 6px;display:flex;gap:8px;align-items:center}
.bdp-tro{display:flex;gap:10px;flex-wrap:wrap}
.bdp-t{display:flex;flex-direction:column;align-items:center;width:78px;text-align:center}
.bdp-t small{font-size:10.5px;color:var(--muted);line-height:1.2}
.bdp-fotos figure{margin:0;position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:var(--surface-2)}
.bdp-fotos .ico-btn{position:absolute;top:4px;right:4px;background:rgba(0,0,0,.55);color:#fff}
.bd-view{position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.9);display:grid;place-items:center;cursor:zoom-out}
.bd-view img{max-width:96vw;max-height:94vh;border-radius:8px}
.eq-prev{display:flex;gap:12px;align-items:center;margin-bottom:12px}
.eq-name{display:inline-flex;align-items:center;height:40px;padding:0 20px;border-radius:999px;font-weight:800;font-size:15px}
.eq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:6px}
.eq-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:120px;padding:14px 6px 10px;border:2px solid var(--line);border-radius:12px;background:var(--surface);font:inherit;color:inherit;cursor:pointer}
.eq-item small{font-size:10.5px;line-height:1.2;text-align:center}
.eq-item.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface))}
.eq-item .lk{position:absolute;top:4px;right:4px;color:var(--muted)}
.eq-item .lk .ico{width:14px;height:14px}
.ce-tabs{display:flex;gap:4px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.ce-list{display:grid;gap:6px}
.ce-item{display:flex;gap:10px;align-items:center;padding:6px 10px;border:1px solid var(--line);border-radius:10px}
.ce-prev{width:56px;display:grid;place-items:center}
.ce-form-g{display:flex;gap:16px;flex-wrap:wrap}
.ce-fp{min-width:120px;display:grid;place-items:center;padding:10px;border-radius:12px;background:var(--surface-2)}
.ce-cks{display:flex;gap:10px;flex-wrap:wrap}
.ce-shapes{display:flex;gap:6px;flex-wrap:wrap}
.ce-shape.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
.ce-form input[type=color]{width:64px;height:36px;padding:2px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.ce-icons{display:flex;gap:4px;flex-wrap:wrap}
.ce-ic.on{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
.ce-ic .ico{width:18px;height:18px}
.chat{display:grid;grid-template-columns:260px 1fr;gap:12px;height:calc(100vh - 170px);min-height:420px}
.chat-sh{display:flex;align-items:center;justify-content:space-between;padding:6px 10px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.chat-ch{display:flex;gap:8px;align-items:center;width:100%;border:0;background:transparent;color:inherit;font:inherit;text-align:left;padding:7px 8px;border-radius:10px;cursor:pointer}
.chat-ch:hover{background:var(--surface-2)}
.chat-ch.on{background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
.chat-ch .t{flex:1;min-width:0}
.chat-ch .t b{display:block;font-size:13.5px}
.chat-ch .t small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}
.chat-ch .n,.tab-n{font-style:normal;font-size:10px;font-weight:800;background:var(--danger);color:#fff;border-radius:999px;min-width:18px;height:18px;line-height:18px;text-align:center;padding:0 4px}
.tab-n{margin-left:6px}
.chat-hash{width:30px;height:30px;border-radius:50%;background:var(--surface-2);display:inline-grid;place-items:center;font-weight:900;color:var(--muted);flex:none}
.chat-ch .avatar{width:30px;height:30px}
.chat-main{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden;position:relative}
.chat-head{display:flex;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line)}
.chat-head .avatar{width:30px;height:30px}
.chat-head small{display:block}
.chat-msgs{flex:1;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.chat-day{text-align:center;font-size:11px;color:var(--muted);margin:10px 0 6px}
.chat-m{display:flex;gap:8px;align-items:flex-start;max-width:78%}
.chat-m.same{margin-top:-2px}
.chat-m.me{align-self:flex-end;flex-direction:row-reverse}
.chat-av{width:30px;flex:none}
.chat-b{background:var(--surface-2);border-radius:14px;padding:6px 10px;min-width:0}
.chat-m.me .chat-b{background:color-mix(in srgb,var(--accent) 18%,var(--surface))}
.chat-meta{display:flex;gap:6px;align-items:center;font-size:11px;color:var(--muted)}
.chat-meta b{color:var(--ink);font-size:12.5px}
.chat-song{display:flex;gap:8px;align-items:center;margin-top:4px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:6px 8px;cursor:pointer;font:inherit;color:inherit;text-align:left}
.chat-song .rcover{width:36px;height:36px}
.chat-song small{display:block;color:var(--muted);font-size:11px}
.chat-song .ico{margin-left:auto;color:var(--accent)}
.ucard-bn{height:70px;border-radius:12px 12px 0 0;margin:-16px -16px 0}
.ucard-av{margin-top:-48px;display:inline-block;line-height:0}
.dm-list button{display:flex;gap:10px;align-items:center;width:100%}
.dm-list .avatar{width:34px;height:34px}
.chat-av .coll-av{margin-top:2px}
.chat-in{display:flex;gap:6px;align-items:flex-end;padding:8px 10px;border-top:1px solid var(--line)}
.chat-in textarea{flex:1;resize:none;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:12px;padding:8px 12px;font:inherit;max-height:120px}
.chat-in .ico-btn .ico{width:20px;height:20px}
.chat-in .btn .ico{width:18px;height:18px}
.chat-emo{position:absolute;bottom:58px;left:10px;right:10px;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:8px;z-index:5}
.chat-emo-g{display:flex;flex-wrap:wrap;gap:2px}
.chat-emo-g button{border:0;background:transparent;font-size:22px;padding:4px;border-radius:8px;cursor:pointer;line-height:1}
.chat-emo-g button:hover{background:var(--surface-2)}
.chat-emo-g button[disabled]{opacity:.35;cursor:not-allowed}
@media (max-width:800px) {
.chat{grid-template-columns:1fr;height:auto}
.chat-m{max-width:92%}
}
.inst-head{display:flex;gap:14px;align-items:center}
.inst-logo{width:72px;height:72px;border-radius:18px;object-fit:cover;flex:none;box-shadow:var(--shadow)}
.inst-head h2{margin:0;font-size:20px}
.inst-tabs{display:flex;gap:4px;margin:14px 0 10px}
.inst-body{display:grid;gap:8px}
.inst-step{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.inst-step .n{width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--accent-ink,#fff);display:grid;place-items:center;font-weight:800;font-size:13px;flex:none}
.inst-step b{display:block}
.inst-step .hint{display:block;font-size:12px}
.inst-nudge {
  position:fixed;
  left:50%;
  bottom:16px;
  transform:translateX(-50%);
  z-index:392;
  display:flex;
  gap:10px;
  align-items:center;
  width:min(94vw,440px);
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:10px 12px;
  animation:achin .4s ease-out;
  transform:translateX(-50%);
}
.inst-nudge img{width:40px;height:40px;border-radius:10px;object-fit:cover;flex:none}
.inst-nudge div{flex:1;min-width:0}
.inst-nudge b{display:block;font-size:13.5px}
.inst-nudge small{color:var(--muted);font-size:11.5px}
.fs-card{position:relative;display:grid;grid-template-columns:minmax(220px,420px) 1fr;gap:0;border-radius:18px;overflow:hidden;background:linear-gradient(100deg,var(--surface-2),var(--line));color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow)}
.fs-card.empty{display:block;background:var(--surface)}
.fs-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px;text-align:center;color:var(--muted)}
.fs-empty .ico{width:34px;height:34px}
.fs-empty b{color:var(--ink);font-size:16px}
.fs-photo{position:relative;min-height:260px;max-height:440px;background:#000}
.fs-photo img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in}
.fs-shine{position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.28) 50%,transparent 60%);background-size:250% 100%;animation:fsshine 4s ease-in-out infinite;pointer-events:none}
.fs-body{padding:18px 20px;display:flex;flex-direction:column;gap:10px;justify-content:center;background:color-mix(in srgb,var(--surface) 78%,transparent);backdrop-filter:blur(6px)}
.fs-who{display:flex;gap:12px;align-items:center}
.fs-who b{font-size:20px;display:block}
.fs-msg{margin:0;font-size:17px;line-height:1.45;font-family:var(--display);font-weight:600}
.fs-btns{display:flex;gap:6px;flex-wrap:wrap}
.fs-dlg .mh{display:none}
.fs-pop .fs-card{margin:-4px}
.bday-row{display:flex;gap:8px;flex-wrap:wrap}
.bdy{display:flex;gap:10px;align-items:center;padding:8px 12px 8px 8px;border:1px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer}
.bdy b{display:block}
.bdy small{color:var(--muted);font-size:11.5px}
.helper-btn{position:fixed;left:16px;bottom:16px;z-index:390;width:48px;height:48px;border-radius:50%;border:0;background:linear-gradient(135deg,var(--accent),var(--blue));color:#fff;display:grid;place-items:center;box-shadow:0 8px 24px -8px rgba(0,0,0,.5);cursor:pointer;transition:transform .15s}
.helper-btn .ico{width:26px;height:26px}
.helper-panel {
  position:fixed;
  left:16px;
  bottom:72px;
  z-index:395;
  width:min(92vw,360px);
  height:min(70vh,480px);
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  animation:achin .3s ease-out;
  transform:none;
}
.hp-h{display:flex;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}
.hp-h b{display:block;font-size:14px}
.hp-h small{color:var(--muted);font-size:11px}
.hp-av{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--blue));color:#fff;display:grid;place-items:center;flex:none}
.hp-av .ico{width:20px;height:20px}
.hp-h .ico-btn{margin-left:auto}
.hp-msgs{flex:1;overflow:auto;padding:10px;display:flex;flex-direction:column;gap:8px}
.hp-m{padding:8px 12px;border-radius:14px;font-size:13.5px;max-width:92%;line-height:1.4}
.hp-m .btn{margin-top:6px}
.hp-sug{display:flex;flex-direction:column;gap:4px}
.hp-sug button{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:12.5px;text-align:left;padding:7px 10px;border-radius:10px;cursor:pointer}
.hp-sug button:hover{border-color:var(--accent)}
.hp-in{display:flex;gap:6px;padding:8px;border-top:1px solid var(--line)}
.hp-in input{flex:1;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:999px;padding:8px 12px;font:inherit}
.hp-in .btn .ico{width:18px;height:18px}
.tour-ov{position:fixed;inset:0;z-index:500}
.tour-spot{position:fixed;border-radius:12px;box-shadow:0 0 0 9999px rgba(0,0,0,.62),0 0 0 3px var(--accent);transition:all .3s;pointer-events:none}
.tour-card{position:fixed;width:320px;max-width:calc(100vw - 20px);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:12px 14px;transition:all .3s}
.tour-card small{color:var(--accent);font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:10px}
.tour-card b{display:block;font-size:16px;margin:2px 0 4px}
.tour-card p{margin:0 0 10px;font-size:13.5px;color:var(--muted)}
.tour-btns{display:flex;gap:6px;align-items:center}
/* top bar */
.top{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:10px 20px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px}
.brand .logo{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--green);color:#fff;font-family:var(--display);font-weight:800;font-size:15px;overflow:hidden;flex:0 0 auto}
.brand .logo img{width:100%;height:100%;object-fit:cover;display:block}
.brand .tab{background:var(--green);color:#fff;font-family:var(--display);font-weight:800;font-size:15px;padding:4px 10px;border-radius:4px;letter-spacing:.04em}
.brand h1{font-size:19px;font-weight:700}
.brand small{display:block;color:var(--muted);font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.02em}
.monthnav{display:none}
.mnav-inline{display:flex;align-items:center;gap:4px;margin-bottom:10px}
.mnav-inline .m{font-family:var(--display);font-weight:700;font-size:16px;min-width:150px;text-align:center;text-transform:capitalize}
#save-status.sv-status{display:inline;font-size:11px;color:var(--muted);white-space:nowrap;margin-left:auto}
#save-status.sv-status.dirty{color:var(--warn,#F28C28)}
.umenu-btn{display:inline-flex;gap:8px;align-items:center;max-width:60vw;padding:3px 6px 3px 10px}
.umenu-btn .ut{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15;min-width:0}
.umenu-btn .ut b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:38vw}
.umenu-btn .ut small{font-size:10.5px;color:var(--muted);font-weight:600;white-space:nowrap}
.umenu-btn .avatar{margin:0;width:32px;height:32px}
.monthnav .m{font-family:var(--display);font-weight:700;font-size:16px;min-width:170px;text-align:center;text-transform:capitalize}
.savebar{display:flex;align-items:center;gap:10px}
.status{font-size:12px;color:var(--muted)}
.top{position:sticky}
.top .ver{position:absolute;top:2px;right:8px;font-size:10px;color:var(--faint);font-weight:600;letter-spacing:.02em;line-height:1}
.status.dirty{color:var(--gold);font-weight:600}
.status.ok{color:var(--green-ink)}
.btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px 12px;font-weight:600;font-size:13px;display:inline-flex;align-items:center;gap:6px;transition:background .12s}
.btn:hover{background:var(--surface-2)}
.btn.primary{background:var(--green);border-color:var(--green);color:#fff}
.btn.primary:hover{filter:brightness(1.06)}
.btn.ghost{border-color:transparent;background:transparent}
.btn.small{padding:4px 8px;font-size:12px}
.btn.danger{color:var(--danger)}
.btn:disabled{opacity:.5;cursor:default}
.icon{width:30px;height:30px;padding:0;justify-content:center;border-radius:50%}
/* tabs */
.tabs{display:flex;gap:2px;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--line)}
.tabs button{border:0;background:none;padding:10px 14px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--green)}
main{padding:20px;max-width:1400px;margin:0 auto}
.panel[hidden]{display:none}
/* roster */
.rol-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.toolbar .sp{flex:1}
.week{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);margin-bottom:18px;overflow:hidden}
.week-head{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.week-head .letter{background:var(--green);color:#fff;font-family:var(--display);font-weight:800;font-size:18px;width:34px;height:34px;border-radius:6px;display:grid;place-items:center}
.week-head .dates{font-family:var(--display);font-weight:700;font-size:15px}
.dress{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap}
.dress label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}
.dress input[type=text]{border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:5px 8px;min-width:200px}
.dress input[type=color]{width:26px;height:26px;border:1px solid var(--line);border-radius:50%;padding:0;background:none;cursor:pointer}
.dress input[type=color]::-webkit-color-swatch-wrapper{padding:2px}
.dress input[type=color]::-webkit-color-swatch{border-radius:50%;border:0}
.services{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0}
.svc{padding:14px 16px;border-right:1px solid var(--line)}
.svc:last-child{border-right:0}
.svc.off{opacity:.55;background:repeating-linear-gradient(45deg,transparent 0 10px,var(--surface-2) 10px 12px)}
.svc-head{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}
.svc-head h3{font-size:17px;font-weight:800;text-transform:uppercase;letter-spacing:.02em}
.svc-head .d{color:var(--muted);font-weight:600}
.svc-head .right{margin-left:auto;display:flex;gap:6px;align-items:center}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:1200px) {
.cols{grid-template-columns:1fr}
}
.box{border:2px solid var(--blue);border-radius:8px;padding:8px}
.box.gold{border-color:var(--gold)}
.box h4{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
.row{display:grid;grid-template-columns:52px 1fr;align-items:center;gap:6px;margin-bottom:4px}
.row.bgv{grid-template-columns:1fr}
.row.rm{grid-template-columns:1fr 22px}
.row .iconb{border:0;background:transparent;color:var(--faint);cursor:pointer;font-size:13px;padding:0 2px}
.row .iconb:hover{color:var(--danger)}
.row label{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.row select{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:4px 6px;font-size:13px;min-width:0}
.row.gap{margin-top:8px}
.row.bad select{border-color:var(--danger);background:var(--danger-bg)}
.row.dup select{border-color:var(--gold);background:var(--warn-bg)}
.row.empty select{color:var(--faint)}
.pct{font-size:11px;color:var(--muted)}
.side{position:sticky;top:110px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:14px;box-shadow:var(--shadow)}
.card h3{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:10px}
.bars{display:grid;gap:5px}
.bar{display:grid;grid-template-columns:90px 1fr 22px;align-items:center;gap:8px;font-size:12px}
.bar i{display:block;height:8px;background:var(--surface-2);border-radius:4px;overflow:hidden}
.bar i b{display:block;height:100%;background:var(--blue);border-radius:4px}
.bar span:last-child{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}
.bday{display:flex;justify-content:space-between;font-size:13px;padding:4px 0;border-bottom:1px dashed var(--line)}
.bday:last-child{border-bottom:0}
.bday .age{color:var(--muted)}
.alert{background:var(--warn-bg);border:1px solid var(--gold);padding:8px 10px;border-radius:8px;font-size:12px;margin-bottom:8px}
.alert.err{background:var(--danger-bg);border-color:var(--danger)}
.alert.info{background:var(--accent-soft);border-color:var(--green)}
.empty-msg{color:var(--muted);padding:30px;text-align:center;border:1px dashed var(--line);border-radius:12px}
/* people */
.chip.warn{background:var(--warn-bg);color:var(--ink)}
.chip.danger{background:var(--danger-bg);color:var(--danger)}
.ico.ico-inl{width:13px;height:13px;display:inline-block;vertical-align:-2px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.seg button{border:0;background:var(--surface);padding:6px 10px;font-weight:600;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--navy);color:#fff}
table.tbl{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
.tbl-wrap{overflow:auto;border-radius:12px;max-height:calc(100vh - 300px)}
.tbl thead th{position:sticky;top:0;z-index:3}
.tbl th.song,.tbl td.song{position:sticky;left:0}
.tbl th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.tbl td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl th[data-sort]:hover{color:var(--ink)}
.tbl td .skill i{width:56px}
.tbl tr:last-child td{border-bottom:0}
.tbl tr.inactive td{opacity:.5}
.tbl .name{font-weight:700}
.tbl .name small{display:block;color:var(--muted);font-weight:500}
.chip{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;background:var(--surface-2);margin:1px 2px 1px 0;font-variant-numeric:tabular-nums}
.chip.type-musico{background:#FBEFD0;color:#6A4A00}
.chip.type-ambos{background:var(--accent-soft);color:var(--green-ink)}
:root[data-theme="dark"] .chip.type-cantante{background:#1D3557;color:#B8D4F5}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) .chip.type-cantante{background:#1D3557;color:#B8D4F5}
}
.skill{display:inline-flex;align-items:center;gap:5px;font-size:12px;margin-right:8px;white-space:nowrap}
.skill i{width:46px;height:6px;background:var(--surface-2);border-radius:3px;display:inline-block;overflow:hidden}
.skill i b{display:block;height:100%;background:var(--gold)}
.skill.voz i b{background:var(--blue)}
.num{font-variant-numeric:tabular-nums}
/* availability */
.avail-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start}
.grid th{z-index:1}
.grid th.p{z-index:3}
.grid td.p{z-index:2}
.grid td.p .pname{border:0;background:transparent;color:inherit;font:inherit;font-weight:700;cursor:pointer;padding:0;text-decoration:underline dotted;text-underline-offset:3px}
.grid td.p .pname:hover{color:var(--accent)}
.grid tr.hl td,.grid td.hl,.grid th.hl,.grid tr.hl td.dom,.grid td.dom.hl{background:color-mix(in srgb,var(--accent) 10%,var(--surface))}
.grid tr.hl td.hl,.grid tr.hl td.dom.hl{background:color-mix(in srgb,var(--accent) 22%,var(--surface))}
.grid tr.hl td.p,.grid th.hl,.grid th.dom.hl{background:color-mix(in srgb,var(--accent) 17%,var(--surface))}
.grid thead th{z-index:3}
.grid thead th.p{z-index:5}
.grid tbody td.p{z-index:2}
table.grid{border-collapse:collapse;width:100%}
.grid th{position:sticky;top:0;background:var(--surface-2);font-size:11px;padding:8px 4px;text-align:center;border-bottom:1px solid var(--line);white-space:nowrap}
.grid th.p{text-align:left;padding-left:12px;position:sticky;left:0;z-index:2}
.grid td{border-bottom:1px solid var(--line);text-align:center;padding:0}
.grid td.p{text-align:left;padding:6px 12px;font-weight:600;position:sticky;left:0;background:var(--surface);white-space:nowrap}
.grid td button{width:100%;height:32px;border:0;background:transparent;color:var(--faint);font-size:12px}
.grid td button:hover{background:var(--surface-2)}
.grid td button.x{background:var(--danger-bg);color:var(--danger);font-weight:800}
.grid td button.a{color:var(--green-ink);font-weight:700}
.grid th.dom,.grid td.dom{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}
.import textarea{width:100%;min-height:110px;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:8px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.import select,.import input[type=file]{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:5px 8px;margin:4px 0 8px}
.import label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}
.preview{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:8px;margin-top:8px}
.preview table{width:100%;border-collapse:collapse;font-size:12px}
.preview td,.preview th{padding:5px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.preview select{max-width:150px;font-size:12px}
.preview .dates{color:var(--muted);font-variant-numeric:tabular-nums}
.preview tr.nomatch td{background:var(--warn-bg)}
/* export */
.export-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.slides{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:16px}
.slide{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px;box-shadow:var(--shadow)}
.slide canvas{width:100%;height:auto;border-radius:8px;display:block}
.slide .sf{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-weight:600}
/* design panel */
.design{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;box-shadow:var(--shadow);margin-bottom:16px}
.design h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:10px}
.presets{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.preset{border:2px solid var(--line);border-radius:10px;padding:0;overflow:hidden;background:var(--surface);width:150px;text-align:left}
.preset[aria-pressed="true"]{border-color:var(--green)}
.preset .sw{height:52px;display:flex;align-items:flex-end;padding:6px;gap:4px}
.preset .sw i{display:block;height:24px;flex:1;border-radius:4px}
.preset b{display:block;padding:6px 8px;font-size:12px}
.dctrl{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.dctrl label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700;display:block;margin-bottom:3px}
.dctrl select{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:6px 8px}
.xls-card{margin-top:14px}
/* setlists */
.lst-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
@media (max-width:1100px) {
.lst-layout{grid-template-columns:1fr}
}
.setlist{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);margin-bottom:18px;overflow:hidden}
.sl-head{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.sl-head h3{font-size:17px;font-weight:800}
.sl-head .d{color:var(--muted);font-weight:600}
.sl-head .tot{margin-left:auto;font-variant-numeric:tabular-nums;font-size:12px;color:var(--muted)}
.sl-body{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:0}
.fold-btn{border:1px solid var(--line);background:var(--surface);color:var(--muted);width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none;transition:transform .2s,color .2s}
.fold-btn[aria-expanded="true"]{transform:rotate(90deg);color:var(--accent);border-color:var(--accent)}
section.week.folded>.services,section.week.folded>.week-head~*:not(.week-head){display:none}
section.setlist.folded .sl-body{grid-template-columns:1fr}
section.setlist.folded .sl-body>.sl-edit{display:none}
section.harm.folded>.harm-wrap,section.harm.folded>.stage-cfg{display:none}
section.setlist.past .sl-prev canvas,.slide.past canvas{opacity:.45;filter:grayscale(.7)}
section.setlist.past .sl-head h3,section.setlist.past .sl-head .d{opacity:.6}
.slide.past .sf span{opacity:.7}
section.setlist.published .sl-edit select,section.setlist.published .sl-edit input,section.setlist.published .sl-edit button.iconb,section.setlist.published .sl-edit [data-act="lst-add"]{pointer-events:none;opacity:.6}
.song-res{display:inline-flex;gap:2px;align-items:center}
.song-res .ico-btn{font-size:14px;padding:2px}
.apx.pl .pl-n{width:20px;text-align:right;font-size:11px;color:var(--muted)}
.apx-list button[disabled]{opacity:.5;cursor:not-allowed}
.st-row{display:flex;gap:10px;align-items:center;padding:10px;border:2px dashed var(--line);border-radius:12px;margin-bottom:8px;background:var(--surface-2);min-height:64px}
.st-row.over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface-2))}
.st-row.over .st-lbl small{color:var(--danger)}
.st-lbl{width:90px;flex:none}
.st-lbl b{display:block}
.st-lbl small{color:var(--muted)}
.st-row.over .st-lbl small{color:var(--danger);font-weight:700}
.st-chips{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.st-chip{border-radius:999px;padding:6px 12px;cursor:grab;user-select:none;display:flex;flex-direction:column;align-items:center;line-height:1.1;border:2px solid transparent;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.st-chip small{font-size:10px;opacity:.85}
.st-chip.dragging{opacity:.4}
.st-chip.over{outline:3px solid #fff;transform:scale(1.06)}
.st-chip.sel{border-color:#fff;box-shadow:0 0 0 3px var(--accent)}
.slide-res{display:flex;gap:6px;flex-wrap:wrap;padding:6px 10px 10px}
.sl-sec h4{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:8px 0 6px}
.song-row{display:grid;grid-template-columns:26px minmax(0,1fr) 118px 118px 118px 24px 24px 0px;gap:6px;align-items:center;margin-bottom:5px}
.cover-card select,.cover-row select{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:8px;padding:7px 9px;font:inherit;min-width:220px}
.cover-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 0;border-top:1px dashed var(--line)}
.cover-pend{border-color:#F5C518;margin-bottom:12px}
.chip.cover-pendiente{background:var(--warn-bg)}
.chip.cover-aprobada{background:var(--accent-soft);color:var(--green-ink)}
.chip.cover-rechazada{background:var(--danger-bg);color:var(--danger)}
.rep-tbl input[type=number]{width:64px;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:6px;padding:5px 6px;font:inherit;font-weight:700;text-align:center}
.rep-cell.manual input{border-color:var(--green)}
.rep-cell:not(.manual) input{opacity:.85}
.rep-reset{font-size:13px;opacity:.6}
.rep-reset:hover{opacity:1}
.rep-hbtn{background:none;border:0;color:inherit;font:inherit;cursor:pointer;text-align:left;display:grid;padding:0}
.rep-hbtn small{color:var(--muted);font-weight:500}
.rep-hbtn:hover b{text-decoration:underline}
.rep-g{position:relative;min-width:64px;display:inline-block}
.rep-g i{display:block;height:4px;border-radius:2px;margin-top:3px;max-width:100%}
.type-checks{display:grid;gap:4px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.type-checks .pf-rule{padding:6px 10px}
.kudos-box{border:1px dashed var(--accent);border-radius:10px;padding:8px 10px;margin:0 0 10px;background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.kudos-box>b{margin-right:6px}
.kudos-list{display:flex;flex-direction:column;gap:4px;margin-top:6px;font-size:12px}
.kudos-list .chip{margin:1px 0}
.song-row input[type=text],.song-row select{border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:5px 7px;min-width:0;font-size:13px;width:100%}
.song-row .meta{grid-column:2/-1;font-size:11px;color:var(--muted);margin-top:-3px;display:flex;gap:10px;flex-wrap:wrap}
.song-row .meta b{color:var(--green-ink)}
.song-row .iconb{border:0;background:transparent;color:var(--muted);padding:2px;font-size:14px;cursor:pointer}
.song-row .iconb:hover{color:var(--ink)}
.song-row.missing input[type=text]{border-color:var(--gold);background:var(--warn-bg)}
.sl-prev canvas{width:100%;height:auto;border-radius:8px;display:block;background:#000}
.rep-search{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:7px 10px;width:100%;margin-bottom:8px}
.rep-item{display:flex;justify-content:space-between;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line);font-size:12px;cursor:pointer}
.rep-item .n{font-weight:700}
.rep-item small{color:var(--muted);display:block}
.rep-item .k{color:var(--green-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.rep-item.off{opacity:.5}
/* armonías */
.harm{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);margin-bottom:18px;overflow:hidden}
table.hm{border-collapse:collapse;width:100%;font-size:12px}
.hm th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px 4px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap;vertical-align:bottom}
.hm th.g-bgv{color:var(--blue)}
.hm th.g-choir{color:var(--green-ink)}
.hm th.song,.hm td.song{text-align:left;min-width:190px;position:sticky;left:0;background:var(--surface);z-index:1}
.hm td{padding:3px 3px;border-bottom:1px solid var(--line);text-align:center;vertical-align:middle}
.hm td.song b{display:block}
.hm td.song small{color:var(--muted)}
.hm select{border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:3px 4px;font-size:12px;min-width:86px}
.hm select.p1{background:var(--warn-bg)}
.hm select.none{color:var(--faint)}
.hm input.apoyo{border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:3px 6px;font-size:12px;width:150px}
.hm .iconb{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:11px}
.stage-cfg{display:flex;gap:8px;flex-wrap:wrap;padding:8px 16px;border-top:1px solid var(--line);align-items:center;font-size:12px}
.stage-cfg select{border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:2px 4px;font-size:12px}
.harm-prev{display:grid;grid-template-columns:3fr 2fr;gap:12px;padding:0 16px 14px}
.harm-prev canvas{width:100%;height:auto;border-radius:8px;display:block;background:#111}
/* inactivos */
.tbl tr.inactive td{opacity:1;background:color-mix(in srgb,var(--danger-bg) 55%,transparent)}
.tbl tr.inactive td .name-txt{color:var(--muted)}
.ribbon{display:inline-block;background:var(--danger);color:#fff;font-size:10px;font-weight:800;letter-spacing:.12em;padding:2px 8px;border-radius:3px;margin-top:3px;transform:skew(-8deg)}
.ribbon-big{position:absolute;top:14px;right:-38px;background:var(--danger);color:#fff;font-size:11px;font-weight:800;letter-spacing:.12em;padding:4px 44px;transform:rotate(35deg);box-shadow:var(--shadow)}
/* cintas de rol */
.ribbon.role{transform:none;letter-spacing:.06em;margin-right:4px}
.chip.type-audio{background:#EDE3F7;color:#4B2A73}
.svc-head .grp{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:999px;background:var(--accent-soft);color:var(--green-ink);cursor:pointer;border:0}
.svc-head .grp.jov{background:#EDE3F7;color:#4B2A73}
/* ficha de integrante */
dialog.wide{max-width:820px;width:min(96vw,820px)}
.pf-sec{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:12px;background:color-mix(in srgb,var(--surface-2) 40%,transparent)}
.pf-sec h4{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 10px;font-family:var(--body);font-weight:800}
.pf-grid{display:grid;gap:10px 14px}
.pf-grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pf-grid.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
/* subtítulos dentro de los menús desplegables */
.tabs .menu-list .menu-h{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:800;padding:10px 12px 4px;pointer-events:none}
.tabs .menu-list .menu-h:not(:first-child){border-top:1px solid var(--line);margin-top:4px}
body.design .tabs .menu-list .menu-h{pointer-events:auto;cursor:grab;display:flex;align-items:center;gap:6px;outline:1px dashed var(--accent);outline-offset:-2px;border-radius:6px}
body.design .menu-h .mh-btn{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;padding:0 3px}
body.design .menu-h .mh-btn:hover{color:var(--text)}
@media (max-width:640px) {
.tabs .menu-list .menu-h{padding:12px 14px 4px}
}
#mini-player .mp-h b{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
#mini-player .mp-h small{color:var(--muted);display:block;font-weight:500}
#mini-player .mp-cover img{width:100%;height:100%;object-fit:cover;display:block}
#mini-player .mp-meta span{font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;background:var(--surface);color:var(--text);border:1px solid var(--line)}
#mini-player .mp-h .ico-btn{font-size:15px;color:var(--muted)}
#mini-player .mp-h .ico-btn:hover{color:var(--text)}
#mini-player .mp-body video{width:100%;height:auto;display:block;background:#000}
#mini-player .mp-ctl input[type=range]{flex:1;min-width:60px}
#mini-player .mp-ctl select{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:6px;padding:3px 4px;font:inherit;font-size:12px}
.chlog summary{cursor:pointer;font-size:14px}
.chlog ul{margin:8px 0 0 18px;padding:0;line-height:1.5}
.vote-list{display:grid;gap:10px}
.vote-list .vote{margin:0}
.chip.pubd{background:var(--accent-soft);color:var(--green-ink)}
.chip.draft{background:var(--warn-bg,#FFF3D6);color:#8a5a00}
.week-head .pubbox{display:inline-flex;gap:6px;align-items:center;margin-left:auto}
section.week.published{border-color:var(--accent)}
section.week.published .services{opacity:.85}
section.week.published select,section.week.published input,section.week.published button.iconb,section.week.published .grp,section.week.published .sw,section.week.published .row .btn{pointer-events:none}
.slide.draft canvas{opacity:.6}
.banca{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.banca small{color:var(--muted)}
.chip.act-amonestar{background:var(--danger-bg);color:var(--danger)}
.chip.act-justificar{background:var(--accent-soft);color:var(--green-ink)}
.chip.act-chance{background:var(--warn-bg,#FFF3D6);color:#8a5a00}
.pf-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.pf-rule{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);margin-bottom:6px;cursor:pointer;font-size:14px;text-transform:none;letter-spacing:0}
.pf-rule:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.pf-rule input[type=checkbox]{width:18px;height:18px;margin:0}
.pf-rule b{font-weight:700}
.pf-rule small{display:block;color:var(--muted);font-weight:500;font-size:12px;margin-top:1px}
.pf-rule select{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:8px;padding:6px 8px;font:inherit;max-width:220px}
.pf-rule select:disabled{opacity:.45}
@media (max-width:640px) {
.pf-rule{grid-template-columns:auto 1fr}
.pf-rule select{grid-column:2;max-width:none}
}
@media (max-width:700px) {
.pf-grid.c3,.pf-grid.c2{grid-template-columns:1fr}
}
.pf .f{margin-bottom:0}
.ck-row{display:flex;gap:8px 18px;flex-wrap:wrap;align-items:center}
.ck{display:flex;gap:6px;align-items:flex-start;font-size:13px;font-weight:500;text-transform:none;letter-spacing:0;cursor:pointer}
.ck input{margin-top:3px}
.f .ck,.f .ck span{text-transform:none;letter-spacing:0;font-size:13px;color:var(--ink);font-weight:500}
.ck small{display:block;color:var(--muted);font-size:11px}
.pf .sk{margin-bottom:0}
/* choirs teams */
.teams{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start}
@media (max-width:1000px) {
.teams{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.team{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);min-height:260px;display:flex;flex-direction:column}
.team.over{outline:2px dashed var(--green);outline-offset:-4px}
.team-h{padding:10px 12px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.team-h b{font-family:var(--display);font-size:15px}
.team-h .avg{margin-left:auto;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}
.team-h .avg strong{display:block;font-size:14px;color:var(--ink)}
.team-h input{border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:3px 6px;font-weight:700;width:120px}
.team-list{padding:8px;display:flex;flex-direction:column;gap:6px;flex:1}
.member{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);cursor:grab;font-size:13px}
.member:active{cursor:grabbing}
.member.dragging{opacity:.4}
.member .pct{margin-left:auto;font-weight:700;color:var(--ink)}
.member .lv{font-size:10px;color:var(--muted)}
.member .grip{color:var(--faint)}
.team.t1 .team-h{border-top:4px solid #3D82D0}
.team.t2 .team-h{border-top:4px solid #00A651}
.team.t3 .team-h{border-top:4px solid #D9A21B}
.team.pool .team-h{border-top:4px solid var(--faint)}
/* asistencias */
.grid td button.at-A{color:var(--green-ink);font-weight:800}
.grid td button.at-R{background:var(--warn-bg);color:#8a5a00;font-weight:800}
.grid td button.at-F{background:var(--danger-bg);color:var(--danger);font-weight:800}
.grid td button.at-J{background:var(--surface-2);color:var(--muted);font-weight:800}
/* cuentagotas de imagen */
.eyed-wrap{position:relative;max-height:45vh;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#222;text-align:center}
.eyed-wrap canvas{cursor:crosshair;max-width:100%;display:block;margin:0 auto}
.eyed-prev{display:flex;align-items:center;gap:10px;margin-top:10px}
.eyed-prev .big{width:44px;height:44px;border-radius:50%;border:2px solid var(--line)}
/* scroll superior de tablas */
.tbl-scroll-top{overflow-x:auto;overflow-y:hidden;height:14px;margin-bottom:2px}
.tbl-scroll-top>div{height:1px}
/* repertorio */
.tagbar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
.tag{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;background:var(--surface);cursor:pointer}
.tag[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}
.tag.small{padding:1px 8px;font-size:11px;cursor:default;background:var(--accent-soft);color:var(--green-ink);border-color:transparent}
.sk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.sk-prev{height:74px;border-radius:10px;border:1px solid;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:8px}
.sk-prev .sk-bar{position:absolute;left:0;right:0;top:0;height:14px}
.sk-prev b{font-size:24px;line-height:1}
.sk-name{font-weight:800;display:flex;gap:6px;align-items:center}
.sk-pals{display:flex;gap:6px;margin-top:8px}
.sk-dot.on{border-color:var(--surface);box-shadow:0 0 0 2px var(--ink)}
.mtx-marks{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.mtx-mk{display:inline-flex;align-items:stretch;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--surface-2)}
.mtx-mk button{border:0;background:transparent;color:var(--ink);font:inherit;font-size:12px;font-weight:700;padding:4px 8px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.mtx-mk button:hover{background:color-mix(in srgb,var(--accent) 18%,var(--surface-2))}
.mtx-mk button small{color:var(--muted);font-weight:600}
.mtx-mk .lp svg,.mtx-mk .lp .ico{width:14px;height:14px}
.pdfv{display:flex;flex-direction:column;width:100%;height:100%;min-height:320px;background:var(--surface)}
.pdf-tb{display:flex;gap:6px;align-items:center;padding:6px 10px;border-bottom:1px solid var(--line);background:var(--surface-2);flex:none}
.pdf-pages{overflow:auto;flex:1;padding:12px;background:#4a4a4f;display:flex;flex-direction:column;gap:12px;align-items:center}
.pdf-page{box-shadow:0 6px 22px rgba(0,0,0,.45);background:#fff;max-width:100%;border-radius:2px}
.video-wrap:has(.pdfv){aspect-ratio:auto;height:72vh;place-items:stretch}
.pdf-tb .apx-ib.sm .ico{width:16px;height:16px}
#pdf-float .pf-h b{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
#pdf-float .pf-h .ico-btn{color:var(--muted);font-size:15px;padding:2px 5px}
.rec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.rec-card{position:relative;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden;cursor:pointer;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}
.rec-pv{position:relative;aspect-ratio:3/4;background:linear-gradient(160deg,var(--surface-2),color-mix(in srgb,var(--accent) 12%,var(--surface-2)));display:grid;place-items:center;overflow:hidden}
.rec-pv img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;opacity:0;transition:opacity .3s}
.rec-pv.ok img{opacity:1}
.rec-pv.ok .rec-ico{display:none}
.rec-pv .rec-ico{color:var(--accent);opacity:.7}
.rec-pv .rec-ico .ico{width:44px;height:44px}
.rec-kind{position:absolute;left:8px;top:8px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;background:rgba(0,0,0,.55);color:#fff;border-radius:999px;padding:2px 8px}
.rec-t{padding:8px 10px 10px;display:flex;flex-direction:column;gap:2px;min-width:0}
.rec-t b{font-size:13px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rec-t small{color:var(--muted);font-size:11px}
.rec-card .rec-del{position:absolute;right:6px;top:6px;background:rgba(0,0,0,.5);color:#fff;border-radius:50%;padding:5px;opacity:0;transition:opacity .15s}
.rec-card .rec-del .ico{width:14px;height:14px}
dialog.rec-dlg .mh{display:none}
dialog.rec-dlg .mb{padding:0}
.rec-view{display:flex;flex-direction:column}
.rec-vh{display:flex;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}
.rec-vh .rec-ico{display:inline-flex;color:var(--accent)}
.rec-vh .rec-ico .ico{width:22px;height:22px}
.ord-g{margin-bottom:10px}
.ord-h{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800;margin:6px 0 4px}
.ord-it{display:flex;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);margin-bottom:4px;cursor:grab;font-weight:600}
.ord-it .n{width:22px;height:22px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;font-size:11px;flex:none}
.ord-it .i{display:inline-flex;color:var(--muted)}
.ord-it .i .ico{width:16px;height:16px}
.ord-it .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ord-it .ico-btn{font-size:11px;color:var(--muted);padding:2px 5px}
.chart-tb{margin-bottom:4px}
.chart-tb button{font-size:12px}
dialog.chart-dlg .mh{display:none}
dialog.chart-dlg .mb{padding:0}
.chart-v{display:flex;flex-direction:column;max-height:82vh}
.chart-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.chart-h .k{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-weight:800}
.chart-h .t{font-family:var(--display);font-weight:800;font-size:20px;line-height:1.1}
.cp-l{display:flex;flex-wrap:wrap;align-items:flex-end;margin:0 0 .35em}
.cp{display:inline-block;white-space:pre}
.cp i{display:block;font-style:normal;font-weight:800;color:var(--accent);line-height:1.1;min-height:1.1em}
.cp-c{font-family:var(--body);font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:.75em;color:var(--muted);margin:1em 0 .3em}
.cp-t{font-family:var(--display);font-weight:800;font-size:1.3em;margin-bottom:.4em}
.cp-sec{border-left:3px solid var(--accent);padding-left:10px;margin:.4em 0}
dialog.chart-dlg:fullscreen .mf{display:none}
dialog.chart-dlg:fullscreen .chart-b{padding:24px 6vw 50vh}
.verse-dlg .mh{display:none}
.verse-dlg .mb{padding:0}
.verse-dlg .mf{background:transparent;border-top:0;padding:0 26px 24px;justify-content:center}
.verse-dlg .mf .btn.primary{background:var(--va);border-color:var(--va);color:#fff;padding:9px 28px;border-radius:999px;font-weight:700;letter-spacing:.05em;box-shadow:0 10px 24px -14px var(--va)}
.verse{position:relative;padding:36px 30px 18px;text-align:center;background:radial-gradient(circle at 50% 0%,color-mix(in srgb,var(--va) 16%,transparent),transparent 62%)}
.verse .vq{position:absolute;left:12px;top:-34px;font-family:"Playfair Display",Georgia,serif;font-size:210px;line-height:1;color:var(--va);opacity:.10;pointer-events:none;user-select:none}
.verse .vshare{position:absolute;right:12px;top:12px;border:0;background:transparent;color:var(--vi);opacity:.5;cursor:pointer;padding:6px;border-radius:50%;display:inline-flex}
.verse .vshare:hover{opacity:1;background:color-mix(in srgb,var(--vi) 8%,transparent)}
.verse .vshare .ico{width:18px;height:18px}
.verse .vk{font-size:10.5px;text-transform:uppercase;letter-spacing:.22em;color:var(--va);font-weight:700}
.verse .vt{font-family:"Playfair Display",Georgia,serif;font-weight:500;font-size:clamp(19px,2.8vw,26px);line-height:1.45;margin:16px 0 14px;color:var(--vi);text-wrap:balance}
.verse .vr{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--vi);opacity:.75}
.verse .vline{width:36px;height:2px;background:var(--va);margin:16px auto;border-radius:2px;opacity:.85}
.verse .vs{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin:0 0 4px}
.verse .vsong {
  display:inline-flex;
  gap:5px;
  align-items:center;
  border:1px solid color-mix(in srgb,var(--va) 45%,transparent);
  background:color-mix(in srgb,var(--va) 8%,transparent);
  color:var(--vi);
  border-radius:999px;
  padding:5px 12px;
  font:inherit;
  font-size:12px;
  font-weight:600;
  cursor:pointer;
  transition:all .15s;
}
.verse .vsong:hover{background:var(--va);color:#fff;border-color:var(--va)}
.verse .vsong .ico{width:13px;height:13px}
.verse .vfoot{margin-top:14px;font-size:10.5px;color:var(--vi);opacity:.5;letter-spacing:.06em}
.prop-hero {
  display:flex;
  gap:16px;
  align-items:center;
  flex-wrap:wrap;
  padding:18px 20px;
  border-radius:16px;
  margin-bottom:14px;
  background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 30%,var(--surface)),color-mix(in srgb,var(--gold) 18%,var(--surface)) 60%,var(--surface));
  border:1px solid var(--line);
  position:relative;
  overflow:hidden;
}
.prop-hero>*{position:relative}
.prop-hero .k{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-weight:800}
.prop-hero h2{margin:2px 0 4px;font-family:var(--display);font-size:clamp(20px,3vw,30px);line-height:1.05}
.prop-hero .btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.podium .p{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:84px;text-align:center}
.podium .p b{font-size:12px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.podium .p:nth-child(1) .bar{height:46px}
.podium .p:nth-child(3) .bar{height:26px;background:linear-gradient(180deg,#e2a26b,#b8743f)}
.badges{display:flex;gap:6px;flex-wrap:wrap}
.badge{display:inline-flex;gap:5px;align-items:center;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:3px 9px 3px 6px;font:inherit;font-size:12px;font-weight:700;cursor:pointer;opacity:.55}
.badge .ico{width:15px;height:15px}
.badge.mine{opacity:1;color:var(--ink);border-color:var(--gold);background:color-mix(in srgb,var(--gold) 16%,var(--surface))}
.badge.mine .ico{color:var(--gold)}
.badges.sm .badge span{display:none}
.badges.sm .badge.mine span{display:inline}
.badge-big .bb-ico{width:96px;height:96px;margin:0 auto 10px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--gold),color-mix(in srgb,var(--gold) 50%,var(--accent)));color:#111;box-shadow:0 14px 34px -14px var(--gold)}
.badge-big .bb-ico .ico{width:48px;height:48px}
.badge-big h2{margin:0 0 4px;font-family:var(--display)}
.cf-box{position:fixed;z-index:400;pointer-events:none;width:0;height:0}
.cf-box i{position:absolute;left:0;top:0;border-radius:2px;animation:cfy .9s ease-out forwards}
@keyframes cfy{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--dx),calc(var(--dy) + 60px)) rotate(300deg);opacity:0}}
.vote .vbtn.primary{box-shadow:0 6px 16px -8px var(--accent)}
.vote .vbtn .ico{width:16px;height:16px}
.vote .vbtn.no .ico{transform:rotate(180deg)}
.aud-hero{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:18px 20px;border-radius:16px;background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 22%,var(--surface)),var(--surface));border:1px solid var(--line)}
.aud-hero .k{display:inline-flex;gap:6px;align-items:center;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-weight:800}
.aud-hero h2{margin:4px 0 6px;font-family:var(--display);font-size:clamp(18px,2.6vw,26px);line-height:1.1}
.aud-hero>div:first-child{flex:1;min-width:240px}
.aud-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.aud-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px;display:flex;flex-direction:column;gap:8px}
.aud-card .ah{display:flex;gap:8px;align-items:center}
.aud-card .st{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:999px;background:var(--surface-2)}
.aud-card .st.nueva{background:var(--warn-bg)}
.aud-card .st.aprobada{background:var(--accent-soft);color:var(--green-ink)}
.aud-card .st.mejorar{background:var(--danger-bg);color:var(--danger)}
.aud-play{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.recx{display:flex;flex-direction:column;gap:10px;text-align:center}
.recx .k{display:inline-flex;gap:6px;align-items:center;justify-content:center;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-weight:800}
.recx .t{font-family:var(--display);font-weight:800;font-size:20px}
.rec-meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--gold),var(--danger));transition:width .08s}
.rec-step{display:flex;flex-direction:column;gap:8px;align-items:center}
.btn.big{padding:12px 20px;font-size:15px}
.sv-topbar{position:relative}
.sv-topbar>*{position:relative;z-index:1}
.bar-bg{position:absolute!important;inset:0;z-index:0!important;overflow:hidden;background-size:cover;background-position:center}
.bar-bg video{width:100%;height:100%;object-fit:cover;display:block}
.bar-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.28) 50%,rgba(0,0,0,.5))}
.sv-topbar.bar-art{color:#fff}
.sv-topbar.bar-art .brand h1,.sv-topbar.bar-art .brand small,.sv-topbar.bar-art .umenu-btn .ut b,.sv-topbar.bar-art .umenu-btn .ut small,.sv-topbar.bar-art .btn.bell,.sv-topbar.bar-art .umenu-btn,.sv-topbar.bar-art #save-status,.sv-topbar.bar-art .umenu-btn::after{color:#fff}
.sv-topbar.bar-art .btn.ghost:hover{background:rgba(255,255,255,.15)}
.sv-topbar.bar-art .btn.bell .n{box-shadow:0 0 0 2px rgba(0,0,0,.4)}
.sv-topbar.bar-art.bar-light{color:var(--ink)}
.sv-topbar.bar-art.bar-light .bar-bg::after{background:linear-gradient(90deg,rgba(255,255,255,.35),rgba(255,255,255,.15))}
.sv-topbar.bar-art.bar-light .brand h1,
.sv-topbar.bar-art.bar-light .brand small,
.sv-topbar.bar-art.bar-light .umenu-btn .ut b,
.sv-topbar.bar-art.bar-light .btn.bell,
.sv-topbar.bar-art.bar-light .umenu-btn,
.sv-topbar.bar-art.bar-light .umenu-btn .ut small,
.sv-topbar.bar-art.bar-light #save-status {
  color:var(--ink);
}
.sk-bars{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.sk-bar .pv{height:48px;background-size:cover;background-position:center;background-color:var(--surface-2);display:grid;place-items:center;font-size:11px;color:var(--muted);overflow:hidden;position:relative}
.sk-bar .pv video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sk-bar .pv b{font-family:var(--display);font-size:18px;color:var(--ink)}
.sk-bar .pv small{font-size:10px}
.sk-bar .nm{padding:5px 8px;font-size:12px;font-weight:700;display:flex;gap:4px;align-items:center}
.apx-ib.sm.rec{color:var(--danger);opacity:.9}
.hist{display:flex;flex-direction:column;gap:6px}
.hist-h{display:flex;gap:14px;align-items:center;margin-bottom:6px}
.hist-h .k{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-weight:800}
.hist-h h2{margin:0;font-family:var(--display)}
.hist h3{margin:12px 0 4px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.hist-list{display:flex;flex-direction:column;gap:4px}
.hist-row{display:flex;gap:10px;align-items:center;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:13px}
.hist-chips{display:flex;gap:4px;flex-wrap:wrap}
.rep-bar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.rep-search{flex:1 1 240px;min-width:180px;display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:3px 10px 3px 12px;transition:border-color .15s}
.rep-search:focus-within{border-color:var(--accent)}
.rep-search .i{display:inline-flex;color:var(--muted)}
.rep-search .i .ico{width:16px;height:16px}
.rep-search input{flex:1;border:0;background:transparent;color:var(--ink);font:inherit;padding:5px 0;min-width:0;outline:0}
.rep-ib{position:relative;border:1px solid var(--line);background:var(--surface);color:var(--muted);width:36px;height:36px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;font:inherit;transition:all .15s}
.rep-ib .ico,.rep-ib svg{width:18px;height:18px}
.rep-ib:hover{color:var(--accent);border-color:var(--accent)}
.rep-ib:active{transform:scale(.92)}
.rep-ib.on{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
.rep-ib.fav.on{color:#ff3b6b;border-color:#ff3b6b;background:rgba(255,59,107,.1)}
.rep-ib .n{position:absolute;top:-5px;right:-5px;font-style:normal;font-size:10px;font-weight:800;background:var(--accent);color:var(--accent-ink,#fff);border-radius:999px;min-width:16px;height:16px;line-height:16px;text-align:center;padding:0 3px}
.rep-popw{position:relative}
.rep-pop{position:absolute;left:0;top:calc(100% + 6px);z-index:40;min-width:280px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:12px;display:flex;flex-direction:column;gap:8px}
.rep-pop.menu{min-width:210px;padding:6px}
.rep-pop.menu button{border:0;background:transparent;color:var(--ink);font:inherit;font-weight:600;text-align:left;padding:8px 10px;border-radius:8px;display:flex;gap:8px;align-items:center;cursor:pointer;width:100%}
.rep-pop.menu button:hover{background:var(--surface-2)}
.rep-pop.menu button[disabled]{opacity:.45;cursor:not-allowed}
.rep-pop.menu .ico{width:16px;height:16px;color:var(--muted)}
.rp-g{display:flex;flex-direction:column;gap:3px}
.rp-g label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}
.rp-g .sel{width:100%}
.rp-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rep-count{font-size:12px;color:var(--muted);white-space:nowrap}
.rep-bar .gmenu{position:relative}
.tbl th .grp-all{padding:2px;color:var(--muted);display:inline-flex;vertical-align:middle}
.tbl th .grp-all:hover{color:var(--accent)}
.tbl th .grp-all .ico{width:16px;height:16px}
.rep-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px;padding:8px 10px;border:1px solid var(--accent);border-radius:10px;background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.rep-actions select,.rep-actions input{border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:5px 8px}
.tbl tr.sel td{background:color-mix(in srgb,var(--accent-soft) 60%,var(--surface))}
.tbl td.key{color:var(--green-ink);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
/* modal */
dialog{border:0;border-radius:14px;padding:0;background:var(--surface);color:var(--ink);box-shadow:0 30px 80px -20px rgba(0,0,0,.5);max-width:640px;width:min(96vw,640px)}
dialog::backdrop{background:rgba(10,15,30,.55)}
dialog#gate-prev{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;overflow:hidden!important;inset:0!important}
.mh{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}
.mh h2{font-size:18px}
.mb{padding:16px 18px;max-height:70vh;overflow:auto}
.mf{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end}
.f{display:grid;gap:4px;margin-bottom:12px}
.f label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}
.f input,.f select,.f textarea{border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:7px 9px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sk{display:grid;grid-template-columns:90px 1fr 56px;align-items:center;gap:10px;margin-bottom:6px}
.sk input[type=range]{width:100%;accent-color:var(--gold)}
.sk.voz input[type=range]{accent-color:var(--blue)}
.sk input[type=number]{width:56px;border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:4px}
.sk b{font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.slots-edit{display:grid;gap:6px}
.slots-edit .r{display:grid;grid-template-columns:90px 1fr 1fr 32px;gap:6px}
.slots-edit input,.slots-edit select{border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:5px 7px;min-width:0}
.hint{font-size:12px;color:var(--muted)}
.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px;font-weight:600;box-shadow:var(--shadow);z-index:50;opacity:0;transition:opacity .2s;pointer-events:none}
.toast.show{opacity:1}
@media (prefers-reduced-motion:reduce) {
*{transition:none!important}
}
@media print {
.top,.tabs{display:none}
}
/* menús agrupados */
.tabs{position:relative;align-items:stretch;z-index:25;flex-wrap:wrap}
.tabs .menu{position:relative;display:flex}
.tabs .menu-btn,.tabs .top-tab{border:0;background:none;padding:10px 14px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.tabs .menu-btn[aria-selected="true"],.tabs .top-tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--green)}
.tabs .menu-btn .sub{color:var(--green-ink);font-weight:700}
.tabs .caret{font-size:11px;opacity:.6}
.tabs .menu-list{display:none;position:absolute;top:100%;left:0;min-width:230px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:6px;z-index:30;flex-direction:column}
.tabs .menu.open .menu-list{display:flex}
.tabs .menu-list button{border:0;background:none;text-align:left;padding:9px 12px;border-radius:7px;font-weight:600;color:var(--ink);margin:0;white-space:nowrap}
.tabs .menu-list button:hover{background:var(--surface-2)}
.tabs .menu-list button[aria-selected="true"]{background:var(--accent-soft);color:var(--green-ink)}
.tabs .mi{display:none}
.sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:39}
@media (max-width:640px) {
body{padding-bottom:64px}
.tabs{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:40;display:flex;justify-content:space-around;padding:4px 4px calc(4px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);border-bottom:0;overflow:visible;gap:0}
.tabs .menu{flex:1}
.tabs .menu-btn,.tabs .top-tab{flex:1;flex-direction:column;gap:2px;padding:6px 2px;font-size:11px;border-bottom:0;margin:0;border-radius:10px;width:100%;justify-content:center}
.tabs .menu-btn[aria-selected="true"],.tabs .top-tab[aria-selected="true"]{background:var(--accent-soft);color:var(--green-ink)}
.tabs .mi{display:block;width:24px;height:24px;line-height:0}
.tabs .mi svg{width:24px;height:24px}
.tabs .caret,.tabs .menu-btn .sub{display:none}
.tabs .menu-list{position:fixed;left:0;right:0;bottom:0;top:auto;border-radius:16px 16px 0 0;padding:10px 10px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px rgba(0,0,0,.25);z-index:41;min-width:0}
.tabs .menu-list::before{content:'';display:block;width:40px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 10px}
.tabs .menu-list button{padding:14px 14px;font-size:15px;border-bottom:1px solid var(--line);border-radius:0}
.tabs .menu-list button:last-child{border-bottom:0}
.top .savebar .btn#settings-btn{padding:8px}
/* menú inferior: solo íconos, todos del mismo ancho; el texto solo en los submenús */
.tabs .menu-btn .ml,.tabs .top-tab .ml{display:none}
.tabs .menu-btn,.tabs .top-tab{padding:8px 0}
.tabs .mi{width:26px;height:26px}
.tabs .mi svg{width:26px;height:26px}
/* cabecera compacta y centrada; se oculta al desplazarse */
.top{justify-content:center;padding:6px 10px;gap:8px}
.top .savebar{display:none}
.top .ver{display:none}
.brand{gap:8px}
.brand .logo{width:28px;height:28px;border-radius:8px;font-size:12px}
.brand h1{font-size:15px}
.brand small{display:none}
/* barra de usuario: solo íconos, a la derecha; sin cintilla de eventos ni texto de guardado */
.umenu-btn .ut,.umenu-btn::after{display:none}
.umenu-btn{padding:2px 4px}
.sv-topbar{padding:4px 8px;justify-content:flex-end!important;flex-wrap:nowrap!important;gap:4px!important}
.sv-topbar .ev-banner,.sv-topbar #save-status{display:none!important}
.popover{position:fixed;left:8px!important;right:8px!important;top:50px;width:auto;max-width:none;max-height:calc(100dvh - 130px)}
.popover::before{display:none}
}
/* una sola cinta fija: logo + nombre a la izquierda, estado e iconos a la derecha; la cabecera original se oculta en modo servidor */
.top{position:static}
body.sv header.top{display:none}
.sv-topbar{position:sticky;top:0;z-index:30;justify-content:flex-end}
.sv-topbar .brand{gap:8px}
#mainnav .ver.nav-ver{position:static;margin-left:auto;align-self:center;font-size:11px;color:var(--faint);font-weight:600;letter-spacing:.02em;padding:0 2px;white-space:nowrap;order:999}
@media (max-width:640px) {
#mainnav .ver.nav-ver{display:none}
}
.sv-topbar .ver{position:static;font-size:10px;color:var(--faint);font-weight:600;letter-spacing:.02em;margin-right:auto;align-self:flex-end;padding-bottom:3px;white-space:nowrap}
@media (max-width:640px) {
.sv-topbar .ver{font-size:9px;padding-bottom:0;align-self:center}
}
.sv-topbar .brand h1{font-size:16px;line-height:1.1}
.sv-topbar .brand small{font-size:11px}
.sv-topbar .brand .logo{width:34px;height:34px;font-size:13px}
@media (max-width:640px) {
.sv-topbar .brand{display:flex!important}
.sv-topbar .brand .logo{width:28px;height:28px;border-radius:8px}
.sv-topbar .brand h1{font-size:14px}
.sv-topbar .brand small{display:none}
}
.lay-hidden{display:none!important}
.cban{display:flex;gap:10px;align-items:center;justify-content:center;padding:6px 14px;font-weight:700;font-size:13px;text-align:center}
.tabs .menu-list .mi{display:none!important}
/* modo diseño */
body.design #mainnav{position:static!important;display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;padding:10px;border:2px dashed var(--accent);border-radius:12px;margin:8px;justify-content:flex-start}
body.design #mainnav .menu{display:flex!important;flex-direction:column;border:1px dashed var(--line);border-radius:10px;padding:6px;min-width:180px;background:var(--surface);flex:none}
body.design #mainnav .menu-list{display:flex!important;flex-direction:column;position:static!important;box-shadow:none;border:0;padding:4px;min-height:36px;background:var(--surface-2);border-radius:8px;min-width:0}
body.design #mainnav .menu-list::before{display:none}
body.design #mainnav [draggable="true"],body.design .sv-topbar>[draggable="true"]{cursor:grab}
body.design .dragging{opacity:.4}
body.design #mainnav button[data-tab],body.design #mainnav .menu-btn{outline:1px dashed var(--accent);outline-offset:-2px;flex-direction:row;padding:6px 10px;font-size:13px;width:auto}
body.design #mainnav .mi{display:block;width:18px;height:18px}
body.design #mainnav .mi svg{width:18px;height:18px}
body.design .sv-topbar>*{outline:1px dashed var(--accent);outline-offset:2px}
body.design .sv-topbar .lay-hidden{display:inline-flex!important;opacity:.35}
body.design .tabs .menu-btn .ml,body.design .tabs .top-tab .ml{display:inline!important}
body.design .tabs .caret{display:none}
body.design .ntoasts{display:none}
body.design .sheet-bg{display:none}
body.design{padding-bottom:0}
#design-panel .dp-h b{flex:1;font-size:15px}
/* eventos especiales */
.ev-rib{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:2px 8px;border-radius:999px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.md-day.has-ev{border-width:2px}
.md-day .ev-rib{margin-bottom:4px}
.gbtn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:11px 14px;border-radius:999px;border:0;background:#1A73E8;color:#fff;font-weight:700;font-size:15px;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.15)}
.gbtn:hover{background:#1765CC}
.gbtn:disabled{opacity:.7}
.gbtn .g{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#fff}
/* pantalla de entrada */
.gate{position:fixed;inset:0;z-index:100;min-height:100dvh;display:grid;grid-template-columns:1fr 1fr;background:var(--bg);overflow:auto;--accent:#00A651;--accent-ink:#fff}
.gate-side{position:relative;display:grid;place-items:center;padding:40px;color:#fff;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 85%,#000) 0%,color-mix(in srgb,var(--accent) 45%,#0A0D14) 100%);background-size:cover;background-position:center}
.gate-side::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.18),transparent 45%),radial-gradient(circle at 80% 90%,rgba(255,255,255,.10),transparent 40%);pointer-events:none}
.gate-brand{position:relative;z-index:1;text-align:center;max-width:420px}
.gate-logo{display:inline-grid;place-items:center;width:112px;height:112px;border-radius:28px;background:#fff;color:#111;font-family:var(--display);font-weight:800;font-size:34px;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.35)}
.gate-logo img{width:100%;height:100%;object-fit:cover}
.gate-logo.small{width:44px;height:44px;border-radius:12px;font-size:15px;box-shadow:none;background:var(--accent);color:var(--accent-ink)}
.gate-brand h1{font-size:34px;margin:22px 0 8px;color:#fff;letter-spacing:-.02em}
.gate-brand p{margin:0;opacity:.9;font-size:15px}
.gate-main{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px;gap:14px;background-size:cover;background-position:center}
.gate-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:28px 26px;box-shadow:var(--shadow)}
.gate-card-brand{display:none;align-items:center;gap:10px;margin-bottom:14px;font-family:var(--display);font-size:18px}
.gate-h{font-size:24px;margin:0 0 4px}
.gate-sub{margin:0 0 18px;color:var(--muted);font-size:14px}
.gate-card .f{margin-bottom:12px}
.gate-card .f input{width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg);font-size:15px}
.gate-card .f input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.pw-wrap{position:relative}
.pw-wrap input{padding-right:42px}
.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:none;font-size:16px;opacity:.6;cursor:pointer}
.gate-btn{width:100%;padding:12px;border:0;border-radius:10px;background:var(--accent);color:var(--accent-ink);font-weight:800;font-size:15px;cursor:pointer;margin-top:4px;box-shadow:0 6px 16px -8px var(--accent)}
.gate-btn:hover{filter:brightness(1.06)}
.gate-link{color:var(--muted);font-size:13px;text-decoration:none}
.gate-link:hover{color:var(--ink);text-decoration:underline}
.gate-or{display:flex;align-items:center;gap:10px;margin:18px 0 14px;color:var(--faint);font-size:12px}
.gate-or::before,.gate-or::after{content:'';flex:1;border-top:1px solid var(--line)}
.gate .gbtn{background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:none;border-radius:10px}
.gate .gbtn:hover{background:var(--surface-2)}
.gate .gbtn.blue{background:#1A73E8;color:#fff;border-color:#1A73E8}
.gate .gbtn.blue:hover{background:#1765CC}
.gate .gbtn .g{width:24px;height:24px}
.gate-foot{font-size:12px;color:var(--faint)}
.gate-card .card{border:0;padding:0;box-shadow:none;background:transparent}
/* plantillas */
.gate-card .gate-h,.gate-card .gate-sub{text-align:left}
.gate-card > .card > .brand{display:none}
.gate-card > .card{max-width:none!important}
.gate-card .card + *{margin-top:0}
.gate-card .card .f{margin-bottom:12px}
.gate-card .card .f input{width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg);font-size:15px}
.gate-card .btn.primary{width:100%;justify-content:center;background:var(--accent);border-color:var(--accent);color:var(--accent-ink);padding:11px;border-radius:10px;font-size:15px}
.gate.gate-p-card{grid-template-columns:1fr;background:radial-gradient(circle at 15% 15%,color-mix(in srgb,var(--accent) 22%,var(--bg)),transparent 45%),radial-gradient(circle at 85% 85%,color-mix(in srgb,var(--accent) 16%,var(--bg)),var(--bg))}
.gate.gate-p-card .gate-side{display:none}
.gate.gate-p-card .gate-card-brand{display:flex}
.gate.gate-p-cover{grid-template-columns:1fr}
.gate.gate-p-cover .gate-side{display:none}
.gate.gate-p-cover .gate-main{background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 80%,#000),#0A0D14)}
.gate.gate-p-cover .gate-card{background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(10px)}
.gate.gate-p-cover .gate-card-brand{display:flex}
.gate.gate-p-cover .gate-foot{color:rgba(255,255,255,.75)}
@media (max-width:820px) {
.gate{display:block;overflow-y:auto;-webkit-overflow-scrolling:touch}
.gate-side{padding:28px 20px 22px;min-height:0;display:flex;justify-content:center}
.gate-logo{width:76px;height:76px;border-radius:20px;font-size:26px}
.gate-brand h1{font-size:26px;margin:14px 0 4px}
.gate-brand p{font-size:13px}
.gate-main{padding:18px 14px 24px;margin-top:-14px}
.gate-card{padding:22px 18px;border-radius:16px}
}
.flagb{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.03em;padding:2px 7px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--faint);margin-right:3px;cursor:pointer;line-height:1.4}
button.flagb:not(.on):hover{color:var(--ink);border-color:var(--ink)}
dialog.st-dlg .mb{padding:0;max-height:calc(100dvh - 130px)}
.st-layout{display:grid;grid-template-columns:220px 1fr;min-height:420px}
.st-nav{background:var(--surface-2);border-right:1px solid var(--line);padding:10px;display:flex;flex-direction:column;gap:2px}
.st-nav button{border:0;background:none;text-align:left;padding:10px 12px;border-radius:8px;font-weight:600;color:var(--muted);display:flex;gap:10px;align-items:center;font-size:13px}
.st-nav button span{width:22px;text-align:center}
.st-nav button:hover{background:var(--surface);color:var(--ink)}
.st-nav button[aria-selected="true"]{background:var(--surface);color:var(--green-ink);box-shadow:var(--shadow)}
.st-sec h3{font-size:18px;margin:0 0 4px}
.st-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.st-card{display:flex;flex-direction:column;gap:4px;text-align:left;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;font:inherit;color:inherit}
.st-card:hover{border-color:var(--green);box-shadow:var(--shadow)}
.bgpick{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:14px;align-items:start}
.bgprev {
  aspect-ratio:4/3;
  border-radius:12px;
  border:1px solid var(--line);
  background:linear-gradient(160deg,color-mix(in srgb,var(--accent,#00A651) 85%,#000),color-mix(in srgb,var(--accent,#00A651) 45%,#0A0D14));
  display:grid;
  place-items:center;
  overflow:hidden;
  cursor:grab;
  touch-action:none;
  background-size:cover;
  background-position:center;
  user-select:none;
}
.bgprev .hint{color:#fff;text-align:center;padding:10px}
.gate-notice{width:100%;max-width:400px;background:color-mix(in srgb,var(--gold) 22%,var(--surface));border:1px solid var(--gold);color:var(--ink);border-radius:12px;padding:10px 14px;font-size:13px;font-weight:600}
@media (max-width:820px) {
.st-nav{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:8px}
.st-nav button{white-space:nowrap;padding:8px 10px}
}
/* editor de diseño */
.brand-panel{position:fixed;top:0;right:0;bottom:0;width:min(420px,100vw);background:var(--surface);border-left:1px solid var(--line);box-shadow:-10px 0 40px rgba(0,0,0,.25);z-index:60;display:flex;flex-direction:column}
.brand-panel .bp-h{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.brand-panel .bp-h h2{font-size:17px;flex:1}
.brand-panel .bp-b{flex:1;overflow:auto;padding:14px 16px;display:flex;flex-direction:column;gap:14px}
.brand-panel .bp-f{display:flex;flex-direction:column;gap:12px;padding:12px 16px;border-top:1px solid var(--line);background:var(--surface-2)}
.bp-sec>h4{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.bp-presets{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bp-preset{border:2px solid var(--line);border-radius:10px;padding:8px;cursor:pointer;text-align:left;background:var(--surface);display:flex;flex-direction:column;gap:6px}
.bp-preset .sw{display:flex;gap:3px;height:22px;border-radius:6px;overflow:hidden}
.bp-preset .sw i{flex:1;display:block}
.bp-preset b{font-size:12px}
.bp-row{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
.bp-row label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.bp-row input[type=color]{width:100%;height:32px;padding:0;border:1px solid var(--line);border-radius:6px;background:none}
.bp-row select,.bp-row input[type=range]{width:100%}
/* columnas fijas (editar + nombre) */
.tbl.sticky2,.tbl.sticky3{overflow:visible}
.tbl-wrap:has(.sticky2),.tbl-wrap:has(.sticky3){border-radius:var(--radius);border:1px solid var(--line)}
.tbl .col-edit{width:36px;min-width:36px;padding:4px 2px!important;text-align:center}
.tbl .col-sel{width:30px;min-width:30px}
.ico-btn.edit{color:var(--muted);padding:4px;border-radius:6px;line-height:0}
.ico-btn.edit:hover{color:var(--green-ink);background:var(--accent-soft)}
.tbl.sticky2 .col-edit,.tbl.sticky3 .col-sel,.tbl.sticky3 .col-edit,.tbl.sticky2 .col-name,.tbl.sticky3 .col-name{position:sticky;z-index:2;background:var(--surface)}
.tbl.sticky2 thead .col-edit,.tbl.sticky2 thead .col-name,.tbl.sticky3 thead .col-sel,.tbl.sticky3 thead .col-edit,.tbl.sticky3 thead .col-name{z-index:4;background:var(--surface-2)}
.tbl.sticky2 .col-name{left:36px}
.tbl.sticky3 .col-sel{left:0}
.tbl.sticky3 .col-edit{left:30px}
.tbl.sticky3 .col-name{left:66px}
.tbl .col-name{box-shadow:6px 0 8px -6px rgba(0,0,0,.25);min-width:180px;max-width:260px}
.tbl tr[style*="background"] .col-edit,.tbl tr[style*="background"] .col-name{background:inherit}
.tbl tr.sel .col-sel,.tbl tr.sel .col-edit,.tbl tr.sel .col-name{background:var(--accent-soft)}
.sf-cover{display:flex;gap:12px;align-items:center;margin-bottom:12px}
.sf-cover .img{width:88px;height:88px;border-radius:12px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:30px;overflow:hidden;flex:none;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.sf-cover .img img{width:100%;height:100%;object-fit:cover}
.rcover{float:left;display:inline-flex;width:34px;height:34px;border-radius:6px;overflow:hidden;background:var(--surface-2);margin:0 8px 2px 0;align-items:center;justify-content:center}
.rcover img{width:100%;height:100%;object-fit:cover}
.rcover i{font-style:normal;font-size:15px;opacity:.5}
/* reproductor minimalista */
dialog.apx-dlg .mh{display:none}
dialog.apx-dlg .mb{padding:0}
.apx{display:flex;min-height:420px}
.apx-main{flex:1;min-width:0;padding:22px 22px 14px;display:flex;flex-direction:column;gap:16px}
.apx-head{display:flex;gap:18px;align-items:flex-start}
.apx-cover{width:160px;height:160px;border-radius:16px;object-fit:cover;flex:none;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.apx-cover.empty{background:linear-gradient(135deg,var(--surface-2),var(--surface));display:flex;align-items:center;justify-content:center;font-size:54px}
.apx-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.apx-info .t{font-weight:800;font-size:24px;line-height:1.15}
.apx-info .a{font-size:14px;color:var(--muted)}
.apx-info .ap-tabs{margin:8px 0 0}
.apx-now{display:flex;flex-direction:column;gap:10px}
.apx-seek{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.apx-seek input{flex:1;accent-color:var(--accent);height:4px}
.apx-ctrl{display:flex;gap:14px;align-items:center;justify-content:center}
.apx-ib{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:44px;height:44px;border-radius:50%;border:0;background:transparent;color:var(--text);opacity:.4;cursor:pointer;transition:opacity .15s,transform .15s,background .15s;font:inherit}
.apx-ib svg{width:22px;height:22px}
.apx-ib:hover{opacity:.85;background:var(--surface-2)}
.apx-ib[aria-pressed="true"],.apx-ib.on{opacity:1;color:var(--accent)}
.apx-ib:active{transform:scale(.92)}
.apx-ib.sm{width:auto;height:34px;border-radius:999px;padding:0 12px;font-size:12px;font-weight:700;opacity:.75;background:var(--surface-2)}
.apx-ib.sm svg{width:18px;height:18px}
.apx-ib.sm[aria-pressed="true"],.apx-ib.sm.on{opacity:1;background:color-mix(in srgb,var(--accent) 22%,var(--surface-2));color:var(--accent)}
.apx-play{width:64px;height:64px;border-radius:50%;border:0;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 45%,transparent);transition:transform .15s}
.apx-play svg{width:28px;height:28px}
.apx-play:active{transform:scale(.94)}
.apx-ctrl2{display:flex;gap:8px;align-items:center}
.apx-pop{position:absolute;left:0;bottom:calc(100% + 8px);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px;box-shadow:0 10px 30px rgba(0,0,0,.35);z-index:5;min-width:230px}
.apx-rates{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.apx-rates button{border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:8px;padding:6px 0;font:inherit;font-weight:700;cursor:pointer}
.apx-rates button[aria-pressed="true"]{background:var(--accent);color:#fff;border-color:var(--accent)}
.apx-fine{display:flex;gap:6px;margin-top:8px}
.apx-keys{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.apx-keys button{border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:8px;padding:5px 0;font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;line-height:1.1}
.apx-keys button b{font-size:12px}
.apx-keys button small{font-size:10px;color:var(--muted)}
.apx-keys button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink,#fff);border-color:var(--accent)}
.apx-keys button[aria-pressed="true"] small{color:inherit;opacity:.85}
.apx-ib.sm .ico{width:18px;height:18px}
.apx-list{max-height:26vh;display:flex;flex-direction:column;gap:6px;overflow:auto}
.apx-list button{text-align:left;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);cursor:pointer;font:inherit;font-weight:600;display:flex;gap:8px;align-items:center}
.apx-list button[aria-selected="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface))}
.apx .ap-tabs{margin:0}
.apx-list button .num{width:20px;text-align:right;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.apx-ly{width:0;overflow:hidden;border-left:1px solid var(--line);background:var(--surface-2);transition:width .25s;display:flex;flex-direction:column}
.apx.ly-open .apx-ly{width:340px}
.apx-lyh{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 6px;min-width:300px}
.apx-lyt{margin:0 12px 12px;max-height:none;flex:1;min-width:300px;font-size:16px}
@media (max-width:760px) {
.apx{flex-direction:column}
.apx-head{gap:12px}
.apx-cover{width:110px;height:110px}
.apx-info .t{font-size:19px}
.apx.ly-open .apx-ly{width:100%;max-height:50vh}
.apx-lyh,.apx-lyt{min-width:0}
}
.choir-ico svg,.ico-btn.choir svg{width:18px;height:18px;vertical-align:middle}
/* eventos especiales (tarjetas) */
.ev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.ev-grid.past .ev-card{opacity:.45;filter:grayscale(.7)}
.ev-grid.past .ev-card:hover{opacity:.8;filter:none}
.ev-card.sel{box-shadow:0 0 0 3px var(--accent)}
.ev-viewer {
  position:relative;
  border-radius:16px;
  overflow:hidden;
  background:linear-gradient(135deg,color-mix(in srgb,var(--evc,#0D1B3A) 80%,#000),color-mix(in srgb,var(--evc,#0D1B3A) 40%,#0A0D14));
  min-height:260px;
  max-height:62vh;
  aspect-ratio:21/9;
  display:grid;
  place-items:center;
  cursor:pointer;
  box-shadow:var(--shadow);
}
.ev-viewer img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ev-viewer.empty{cursor:default;aspect-ratio:auto;min-height:140px}
.ev-vover{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:10px;padding:18px 22px;background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.72));color:#fff}
.ev-vtxt{display:flex;flex-direction:column;gap:4px}
.ev-vtxt b{font-family:var(--display);font-size:clamp(20px,3.2vw,34px);line-height:1.1;text-shadow:0 2px 10px rgba(0,0,0,.5)}
.ev-vtxt small{font-size:14px;opacity:.9}
.ev-viewer.empty .ev-vtxt{color:var(--text);text-align:center}
.ev-viewer.empty .ev-vtxt small{color:var(--muted)}
.ev-dots{display:flex;gap:6px}
.ev-arr.l{left:10px}
.ev-arr.r{right:10px}
.ev-card{border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden;display:flex;flex-direction:column}
.ev-img img{width:100%;max-height:220px;object-fit:cover;display:block}
.ev-body{padding:12px;display:flex;flex-direction:column;gap:8px}
.ev-head{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.ev-desc{margin:0;font-size:13px;white-space:pre-line}
.ev-group{display:inline-block;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--surface-2);align-self:flex-start}
.ev-sec b{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.ev-sched{margin:4px 0 0;padding-left:18px;font-size:13px;line-height:1.6}
.ev-form .ev-imgbox{display:flex;gap:12px;align-items:center;margin-bottom:12px;padding:6px}
.ev-imgbox .img{width:120px;height:80px;border-radius:10px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:28px;overflow:hidden;flex:none}
.ev-imgbox .img img{width:100%;height:100%;object-fit:cover}
.ev-days{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}
.ev-day{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ev-day b{min-width:110px;font-size:13px}
.ev-day input{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:6px;padding:5px 7px;font:inherit}
.ev-day input[data-dn],.ev-day input[data-sl]{flex:1;min-width:140px}
/* cumpleaños */
dialog.bday-dlg .mh{display:none}
dialog.bday-dlg .mb{display:block}
.bday{padding:6px 4px;text-align:center}
.bday-card h2{margin:12px 0 6px;font-size:22px}
.bday-card p{margin:0 0 6px;font-size:15px;line-height:1.5}
/* tabla usuarios: grupos */
.us-tbl tr.us-group td{background:var(--surface-2);font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:6px 10px}
/* ver como otro usuario */
.viewas{position:sticky;top:0;z-index:60;display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;padding:8px 16px;background:linear-gradient(90deg,#f59e0b,#ef4444);color:#111;font-weight:600;font-size:13px;box-shadow:0 4px 14px rgba(0,0,0,.3)}
.viewas .hint{color:#3a1d00}
.viewas .btn{background:#111;color:#fff;border-color:#111}
.va-list{display:flex;flex-direction:column;gap:6px;max-height:55vh;overflow:auto}
.va-item{display:flex;gap:10px;align-items:center;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);cursor:pointer;font:inherit}
.va-item:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface))}
#va-q{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;padding:8px 10px;font:inherit}
/* usuarios (tabla) y actividad */
.us-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.us-bar input{flex:1;min-width:180px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;padding:7px 10px;font:inherit}
.us-bulk{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);margin-bottom:10px}
.us-bulk select{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;padding:6px 8px;font:inherit}
.us-wrap{max-height:56vh;overflow:auto}
.us-tbl{min-width:900px}
.act-tbl{min-width:640px}
.us-tbl td{vertical-align:middle}
.us-tbl tr.blocked td:has(.lock-btn){opacity:1}
.lock-btn{border:0;background:transparent;color:var(--muted);opacity:.35;cursor:pointer;padding:6px;border-radius:50%;display:inline-flex;transition:all .15s}
.lock-btn:hover{opacity:.7;background:var(--surface-2)}
.lock-btn.on{opacity:1;color:#ff2d2d;filter:drop-shadow(0 0 6px rgba(255,45,45,.8));background:rgba(255,45,45,.12)}
.act-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.act-filters select,.act-filters input{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;padding:6px 8px;font:inherit}
.act-wrap{max-height:58vh;overflow:auto}
.act-tbl td{vertical-align:top;font-size:13px}
.chip.act-login,.chip.act-register{background:var(--accent-soft);color:var(--green-ink)}
.chip.act-login-fail,.chip.act-login-blocked,.chip.act-delete-file{background:var(--danger-bg);color:var(--danger)}
.chip.act-audio,.chip.act-mtx,.chip.act-lyrics,.chip.act-curso{background:color-mix(in srgb,var(--blue) 18%,var(--surface-2));color:var(--blue)}
/* reproductor de audios */
.ap-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.ap-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.ap-tab{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:10px;padding:8px 12px;font-weight:700;cursor:pointer;display:flex;gap:6px;align-items:center;font:inherit;font-weight:700}
.ap-tab .n{font-size:11px;background:var(--surface-2);border-radius:999px;padding:1px 7px;color:var(--muted)}
.ap-tab[aria-selected="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface))}
.ap-tab[aria-selected="true"] .n{background:var(--accent);color:#fff}
/* favoritas */
.fav-btn{border:0;background:transparent;color:var(--muted);opacity:.35;cursor:pointer;padding:4px;border-radius:50%;display:inline-flex;transition:all .15s;vertical-align:middle}
.fav-btn:hover{opacity:.8;background:var(--surface-2)}
.fav-btn.on{opacity:1;color:#ff3b6b;filter:drop-shadow(0 0 5px rgba(255,59,107,.6))}
.fav-btn.big{padding:8px}
.fav-btn.big svg{width:26px;height:26px}
.fav-ico svg{width:16px;height:16px;vertical-align:middle;opacity:.6}
/* multitrack */
.mtx-load{text-align:center;padding:18px 8px;display:flex;flex-direction:column;gap:10px;align-items:stretch}
.mtx-load .vbar i{transition:width .3s}
.mtx-ltracks{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
dialog.mtx-dlg .mh{display:none}
dialog.mtx-dlg .mb{padding:18px 20px 12px}
.mtx-head{display:flex;gap:16px;align-items:center}
.mtx-cover{width:96px;height:96px;border-radius:14px;object-fit:cover;flex:none;box-shadow:0 10px 28px rgba(0,0,0,.35)}
.mtx-cover.empty{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--surface-2),var(--surface));color:var(--accent)}
.mtx-cover.empty .ico{width:40px;height:40px}
.mtx-info{flex:1;min-width:0}
.mtx-info .k{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-weight:800}
.mtx-info .t{font-family:var(--display);font-weight:800;font-size:22px;line-height:1.1}
.mtx-info .a{color:var(--muted);font-size:13px}
.mtx-seek{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.mtx-seekw{flex:1;position:relative;padding:8px 0}
.mtx-seekw input{width:100%;accent-color:var(--accent);height:4px;display:block}
.mtx-seekw .mk{position:absolute;top:-8px;transform:translateX(-50%);font-size:10px;font-weight:800;background:var(--gold);color:#111;border-radius:4px;padding:0 4px;line-height:14px;pointer-events:none}
.mtx-seekw .mk.b{background:var(--accent);color:var(--accent-ink,#fff)}
.mtx-ctrl{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}
.apx-ib.ab{width:38px;height:38px;font-weight:900;font-size:13px;opacity:.55;border:1px solid var(--line)}
.apx-ib.ab .ico{width:16px;height:16px}
.apx-ib.ab[aria-pressed="true"]{opacity:1;background:var(--gold);color:#111;border-color:var(--gold)}
#mt-play svg{width:26px;height:26px}
.mtx-row2{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.mtx-ctl{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:3px 10px 3px 10px;background:var(--surface-2)}
.mtx-ctl .ic{display:inline-flex;color:var(--muted)}
.mtx-ctl .ic .ico{width:16px;height:16px}
.mtx-ctl .sel{border:0;background:transparent;padding:4px 2px}
.mtx-ctl.tempo input{width:120px;accent-color:var(--accent)}
.mtx-ctl.tempo b{font-size:12px;min-width:56px;text-align:right;font-variant-numeric:tabular-nums}
.mtx-ctl.on{border-color:var(--accent)}
.mtx-ctl .ico-btn{padding:2px;display:inline-flex;color:var(--muted)}
.mtx-ctl .ico-btn .ico{width:14px;height:14px}
.mtx-orb{position:relative;width:120px;height:120px;margin:4px auto 10px}
.mtx-orb i{position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent);opacity:0;animation:orb 2.8s ease-out infinite}
.mtx-orb i:nth-child(2){animation-delay:.7s}
.mtx-orb i:nth-child(3){animation-delay:1.4s}
.mtx-orb i:nth-child(4){animation-delay:2.1s}
.mtx-orb .eq{position:absolute;inset:0;display:flex;gap:4px;align-items:center;justify-content:center}
.mtx-orb .eq b{width:6px;height:20px;border-radius:3px;background:linear-gradient(180deg,var(--accent),var(--gold));animation:eqb 1.1s ease-in-out infinite}
.mtx-orb .eq b:nth-child(2){animation-delay:.15s}
.mtx-orb .eq b:nth-child(3){animation-delay:.3s}
.mtx-orb .eq b:nth-child(4){animation-delay:.45s}
.mtx-orb .eq b:nth-child(5){animation-delay:.6s}
.mtx-ltracks .lt.dl{border-color:var(--accent);animation:ltp 1s ease-in-out infinite}
.mtx-ltracks .lt.ok{background:var(--accent-soft);color:var(--green-ink)}
.mtx-ltracks .lt.bad{background:var(--danger-bg);color:var(--danger)}
.mtx-tr .ld .ico{width:14px;height:14px;color:var(--green-ink)}
.mtx-tr .ld .ico.bad{color:var(--danger)}
@media (max-width:640px) {
.mtx-info .t{font-size:17px}
.mtx-ctl.tempo input{width:80px}
dialog.mtx-dlg .mb{padding:12px}
}
.mtx{display:flex;flex-direction:column;gap:10px}
.mtx-tracks{display:flex;flex-direction:column;gap:4px;max-height:52vh;overflow:auto;padding-right:4px}
.mtx-tr{display:grid;grid-template-columns:minmax(110px,180px) 30px 30px 1fr 46px 18px;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.mtx-tr .nm{font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mtx-tr .pct{font-size:11px;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}
.mtx-tr .ld{font-size:11px;color:var(--muted);text-align:center}
.mtx-b.m[aria-pressed="true"]{background:var(--danger);color:#fff;border-color:var(--danger)}
.mtx-b.s[aria-pressed="true"]{background:var(--gold);color:#111;border-color:var(--gold)}
.mtx-tr input[type=range]{width:100%;accent-color:var(--accent)}
.fi-cat{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:8px 0 2px}
/* propuestas */
#panel-propuestas #pq,#panel-propuestas #pst{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;padding:7px 9px;font:inherit}
.prop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.prop{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px;display:flex;flex-direction:column;gap:8px}
.prop .ph{display:flex;gap:8px;align-items:flex-start}
.prop .ph b{font-size:15px}
.prop .st{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:999px}
.prop .st.pendiente{background:var(--warn-bg);color:var(--ink)}
.prop .st.aceptada{background:var(--accent-soft);color:var(--green-ink)}
.prop .st.rechazada{background:var(--danger-bg);color:var(--danger)}
.prop .embed{aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#000}
.prop .embed.sp{aspect-ratio:auto;height:152px;background:transparent}
.prop .embed iframe{width:100%;height:100%;border:0}
.prop .uses{display:flex;gap:4px;flex-wrap:wrap}
.prop .st.votacion{background:var(--accent);color:#fff}
.prop.votacion{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}
.prop-btns{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.prop-vote{position:sticky;top:8px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 14%,var(--surface)),var(--surface) 120px);padding:12px;display:flex;flex-direction:column;gap:10px}
.prop-vote .vempty{text-align:center;padding:26px 8px;color:var(--muted);font-size:13px;line-height:1.6}
.vote{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px;display:flex;flex-direction:column;gap:7px;transition:transform .25s,box-shadow .25s}
.vote.voted{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 30%,transparent)}
.vote.pop{animation:votepop .55s ease}
@keyframes votepop{0%{transform:scale(1)}35%{transform:scale(1.04)}100%{transform:scale(1)}}
.vote .cover{width:64px;height:64px;border-radius:10px;overflow:hidden;flex:none;position:relative;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:24px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.vote .cover img{width:100%;height:100%;object-fit:cover;display:block}
.vote .cover .pl{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;background:rgba(0,0,0,.25);opacity:0;transition:opacity .2s;text-shadow:0 1px 4px #000}
.vote .cover:hover .pl{opacity:1}
.prop .pcover{width:56px;height:56px;border-radius:8px;object-fit:cover;flex:none;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.vote .vh{display:flex;gap:8px;align-items:center}
.vote .vh b{font-size:14px}
.vote .medal{font-size:22px;width:30px;text-align:center;flex:none}
.vote .rank,.top-row .rank{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--surface-2);font-weight:800;font-size:12px}
.vn{display:flex;flex-direction:column;align-items:center;line-height:1;flex:none;min-width:44px}
.vn b{font-size:20px;color:var(--accent)}
.vn small{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.vbar{height:7px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.vbar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 55%,#fff));transition:width .5s ease}
.vote .prop-media .embed{aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#000}
.vote .prop-media .embed.sp{aspect-ratio:auto;height:152px;background:transparent}
.vote .prop-media iframe{width:100%;height:100%;border:0}
.top-list{display:flex;flex-direction:column;gap:6px;max-height:60vh;overflow:auto;padding-right:4px}
.top-row{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
@media (max-width:900px) {
.prop-vote{position:static;order:-1}
}
/* ---- celular ---- */
.tabs{overflow:visible}
@media (max-width:640px) {
.top{padding:8px 12px;gap:8px}
.brand h1{font-size:16px}
.brand small{display:none}
.brand .tab{font-size:12px;padding:3px 7px}
.monthnav{margin-left:0;order:3;width:100%;justify-content:center}
.monthnav .m{min-width:0;flex:1;font-size:15px}
.savebar{margin-left:auto}
.status{display:none}
.btn{padding:8px 10px}
main{padding:12px}
.toolbar{gap:6px}
.toolbar .btn{flex:1 1 auto;justify-content:center}
.dress{margin-left:0;width:100%}
.dress input[type=text]{min-width:0;flex:1}
.svc{padding:10px 12px;border-right:0;border-bottom:1px solid var(--line)}
.row{grid-template-columns:44px 1fr}
.row label{font-size:10px}
.row select,.song-row select,.hm select{font-size:16px;padding:8px 6px}
/* evita zoom en iOS/Android */
.side{position:static}
.people-head input[type=search]{min-width:0;width:100%}
.seg{overflow-x:auto;max-width:100%}
.seg button{white-space:nowrap}
.tbl-wrap{max-height:calc(100vh - 260px)}
.song-row select{grid-column:2/-1}
.song-row select.lead3.off{display:none}
.sl-head h3{font-size:15px}
.teams{grid-template-columns:1fr}
.slides{grid-template-columns:1fr}
.preset{width:calc(50% - 4px)}
.rep-actions select,.rep-actions input{max-width:45%}
dialog,dialog.wide{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;margin:0}
.mb{max-height:calc(100dvh - 120px)}
.pf-grid.c3,.pf-grid.c2{grid-template-columns:1fr}
.stage-cfg{flex-direction:column;align-items:flex-start}
.grid td button{height:40px;min-width:36px}
}
/* autoevaluación / mi disponibilidad / avisos / archivos */
.ev-layout{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:16px;align-items:start}
.ev-dates{display:flex;flex-direction:column;gap:6px}
.ev-date{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer;text-align:left}
.ev-date .pct.ok{color:var(--green-ink)}
.ev-date .pct.mid{color:#b7791f}
.ev-date .pct.low{color:var(--danger)}
.ev-crit{display:flex;flex-direction:column;gap:8px}
.ev-crit label{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer;font-weight:500;text-transform:none;letter-spacing:0;font-size:14px}
.ev-crit label:has(input:checked){background:color-mix(in srgb,var(--green) 16%,var(--surface));border-color:var(--green);color:var(--ink)}
.ev-crit input{width:18px;height:18px}
.ev-score{font-size:34px;font-weight:900;line-height:1}
.md-cal{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.md-day{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface);cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:2px}
.md-day b{font-size:15px}
.md-day small{color:var(--muted)}
.md-day.no{background:var(--danger-bg);border-color:var(--danger)}
.md-day.no b{color:var(--danger)}
.md-day.alt small:last-child{color:var(--muted);font-weight:700}
.bell{position:relative}
.bell .n{position:absolute;top:-6px;right:-6px;background:var(--danger);color:#fff;border-radius:999px;font-size:10px;font-weight:800;min-width:16px;height:16px;display:grid;place-items:center;padding:0 4px}
.notif{display:flex;flex-direction:column;gap:8px}
.notif .it{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.notif .it.unread{border-left:4px solid var(--danger)}
.notif .it small{display:block;color:var(--muted);margin-top:4px}
.files{display:flex;flex-direction:column;gap:6px}
.files .fi{display:flex;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);flex-wrap:wrap}
.files .fi .nm{font-weight:600;flex:1;min-width:120px;word-break:break-all}
.files .fi audio{height:32px;max-width:100%}
.files .cat{font-size:10px;font-weight:800;padding:2px 6px;border-radius:999px;background:var(--surface-2);color:var(--muted);text-transform:uppercase}
.perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 12px;font-size:12px}
.perm-grid label{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:3px 0;text-transform:none;letter-spacing:0;font-weight:500}
.perm-grid select{padding:2px 4px;font-size:12px}
.user-card{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;background:var(--surface)}
.user-card summary{cursor:pointer;font-weight:700;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.user-card summary .hint{font-weight:500}
[hidden]{display:none!important}
/* avatar, visor, reproductor, cursos */
.avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:6px;background:var(--surface);border:1px solid var(--line)}
.avatar.big{width:84px;height:84px}
.ico-btn{border:0;background:transparent;font-size:18px;cursor:pointer;padding:2px 4px;border-radius:6px;line-height:1}
.ico-btn:hover{background:var(--surface-2)}
.ico-btn[disabled]{opacity:.2;cursor:default}
.viewer-txt{white-space:pre-wrap;font-family:inherit;font-size:16px;line-height:1.5;padding:14px;max-height:70vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:8px;margin:0}
.player{display:grid;grid-template-columns:minmax(200px,280px) 1fr;gap:14px}
@media (max-width:700px) {
.player{grid-template-columns:1fr}
}
.player .list{display:flex;flex-direction:column;gap:6px;max-height:60vh;overflow:auto}
.player .list button{text-align:left;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer;font-weight:600;display:flex;gap:8px;align-items:center}
.player .list button[aria-selected="true"]{border-color:var(--green);background:color-mix(in srgb,var(--green) 12%,var(--surface))}
.player .list button .cat{font-size:10px;font-weight:800;padding:2px 6px;border-radius:999px;background:var(--surface-2);color:var(--muted);text-transform:uppercase}
.mu-side{position:sticky;top:70px;display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px}
.mu-head{display:flex;gap:18px;align-items:flex-end;padding:18px;border-radius:16px;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 22%,var(--surface)),var(--surface));border:1px solid var(--line);margin-bottom:12px}
.mu-cover{width:150px;height:150px;border-radius:14px;flex:none;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;background:var(--surface-2);box-shadow:0 12px 30px -12px rgba(0,0,0,.5);place-items:center;color:var(--accent)}
.mu-cover img{width:100%;height:100%;object-fit:cover}
.mu-cover img:only-child{grid-column:1/-1}
.mu-cover .ico{width:56px;height:56px;grid-column:1/-1}
.mu-title{margin:2px 0 4px;font-family:var(--display);font-size:clamp(22px,3vw,36px);line-height:1.05}
.mu-btns{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}
.mu-btns .btn.primary .ico,.mu-btns .btn.primary svg{width:18px;height:18px}
.mu-list{display:flex;flex-direction:column;gap:6px}
@media (max-width:800px) {
.mu-side{position:static;flex-direction:row;flex-wrap:wrap;gap:6px}
.mu-side .cu-side-t{display:none}
.mu-head{flex-direction:column;align-items:flex-start;gap:10px}
}
.pl-row .pl-t{flex:1;min-width:0;display:flex;flex-direction:column}
.pl-row .pl-t b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-row .pl-acts{display:flex;gap:0;align-items:center;flex:none}
.pl-row .pl-acts .ico-btn{padding:4px;color:var(--muted)}
.pl-row .pl-acts .ico-btn:hover{color:var(--accent)}
.pl-row .pl-acts .ico{width:18px;height:18px}
.tbl .ico-btn .ico{width:18px;height:18px;color:var(--muted)}
.tbl .ico-btn:not([disabled]):hover .ico{color:var(--accent)}
.tbl th .ico{width:16px;height:16px;display:inline-block;vertical-align:middle;opacity:.7}
/* tooltips con el estilo de la app (sustituyen al title del navegador) */
.tip {
  position:fixed;
  z-index:2147483000;
  background:color-mix(in srgb,var(--ink) 94%,transparent);
  color:var(--bg);
  font-size:12px;
  font-weight:600;
  line-height:1.35;
  padding:6px 10px;
  border-radius:8px;
  box-shadow:0 8px 24px -8px rgba(0,0,0,.5);
  pointer-events:none;
  max-width:280px;
  letter-spacing:0;
  text-transform:none;
  animation:tipin .12s ease-out;
}
@keyframes tipin{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
/* selects e inputs con el mismo estilo en toda la app (barras, popovers, mezclador, reproductor) */
.sel,.rep-actions select,.apx-ctrl2 select,.mnav-inline select,.gmenu-pop select,.cu-pop-f select,.ly-tb select{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;padding:6px 9px;font:inherit;font-size:13px;font-weight:600}
.sel:focus{outline:2px solid color-mix(in srgb,var(--accent) 40%,transparent);border-color:var(--accent)}
.player audio{width:100%}
.speed{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:10px}
.speed button{min-width:44px}
.speed button[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}
.curso-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;overflow:hidden;text-align:left;padding:0;display:flex;flex-direction:column}
.curso-card .cv{height:120px;background:linear-gradient(135deg,var(--navy),var(--green));display:grid;place-items:center;font-size:44px;color:#fff;background-size:cover;background-position:center}
.curso-card h4{margin:0 0 4px;font-size:16px}
.curso-card p{margin:0;color:var(--muted);font-size:13px}
.curso-card .prog i{display:block;height:100%;background:var(--green)}
.curso{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:16px;align-items:start}
@media (max-width:800px) {
.curso{grid-template-columns:1fr}
}
.lecciones{display:flex;flex-direction:column;gap:6px}
.leccion .n{width:26px;height:26px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;font-size:12px;flex:0 0 auto}
.leccion.done .n{background:var(--green);color:#fff}
.leccion.part .n{background:var(--gold);color:#111}
.leccion .cu-part{margin-left:8px;font-size:10px;background:color-mix(in srgb,var(--gold) 25%,var(--surface));vertical-align:middle}
.leccion .cu-bar{position:absolute;left:0;bottom:0;height:3px;background:var(--gold);border-radius:0 2px 2px 0}
.leccion small{color:var(--muted);font-weight:500;margin-left:auto;white-space:nowrap}
.leccion .ico-btn{margin-left:4px;opacity:.5}
.mod-head .chev{width:14px;text-align:center;color:var(--muted);font-size:18px;line-height:1;transition:transform .15s}
.mod-head b{flex:1;font-size:14px}
.mod-head small{color:var(--muted);font-weight:500;white-space:nowrap}
.mod-head .ico-btn{opacity:.5;font-size:14px;margin:0}
.modulo.open .mod-body{display:flex}
.cu-cats{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
.cu-cats .tag small{opacity:.65;margin-left:2px;font-weight:600}
.cu-side{position:sticky;top:70px;display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px}
.cu-side-t{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700;padding:2px 8px 6px}
.cu-side-item{display:flex;gap:8px;align-items:center;text-align:left;border:0;background:transparent;color:var(--text);padding:8px 10px;border-radius:8px;font:inherit;font-weight:600;cursor:pointer}
.cu-side-item:hover{background:var(--surface-2)}
.cu-side-item[aria-selected="true"]{background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--green-ink)}
.cu-side-item .i{width:22px;text-align:center}
.cu-side-item .l{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cu-side-item .n{font-size:11px;background:var(--surface-2);border-radius:999px;padding:1px 7px;color:var(--muted)}
@media (max-width:800px) {
.cu-side{position:static;flex-direction:row;overflow-x:auto;gap:6px;padding:8px}
.cu-side-t{display:none}
.cu-side-item{flex:none;padding:6px 10px;border:1px solid var(--line)}
.cu-side-item .l{white-space:nowrap}
}
/* botón de votación con ventana superpuesta (estilo Facebook / Odoo) */
.vote-wrap{position:relative}
.popover {
  position:absolute;
  right:0;
  top:calc(100% + 8px);
  z-index:70;
  width:min(360px,94vw);
  background:var(--surface);
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 18px 50px -12px rgba(0,0,0,.45);
  padding:8px;
  max-height:70vh;
  overflow:auto;
  text-transform:none;
  letter-spacing:0;
  font-size:13px;
}
.sv-topbar.bar-art .popover,.sv-topbar.bar-art .popover button,.sv-topbar.bar-art .popover .tx{color:var(--ink)}
.sv-topbar.bar-art .popover button .ico{color:var(--muted)}
.sv-topbar.bar-art .ntoasts{color:var(--ink)}
.popover::before{content:"";position:absolute;right:14px;top:-7px;width:12px;height:12px;background:var(--surface);border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}
.vp-h{display:flex;flex-direction:column;gap:2px;padding:6px 8px 8px;border-bottom:1px dashed var(--line);margin-bottom:4px}
.vp-h b{font-size:14px}
.vp-cover{width:42px;height:42px;border-radius:8px;overflow:hidden;background:var(--surface-2);display:grid;place-items:center;flex:none;font-size:18px}
.vp-cover img{width:100%;height:100%;object-fit:cover;display:block}
.vp-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.vp-t b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vp-t small{color:var(--muted)}
.vp-bar{display:block;height:4px;border-radius:2px;background:var(--surface-2);overflow:hidden;margin-top:2px}
.vp-bar b{display:block;height:100%;background:var(--accent)}
.vp-st.ok{color:var(--green-ink);background:var(--accent-soft);border-radius:999px;padding:2px 8px}
.vote.flash{animation:vflash 2.4s ease-out}
@keyframes vflash{0%,60%{box-shadow:0 0 0 3px var(--accent)}100%{box-shadow:none}}
.popover.left{left:0;right:auto}
.popover.left::before{left:14px;right:auto}
.pf-nav{display:inline-flex;gap:6px;align-items:center;margin-left:8px}
.pf-nav .btn{min-width:34px;justify-content:center;font-size:16px;line-height:1}
.popover.notif-pop{width:min(420px,94vw)}
.popover.notif-pop .notif{gap:6px}
.popover.notif-pop .notif .it{padding:8px 10px}
.popover.umenu{width:250px;padding:6px}
.popover.umenu .sep{height:1px;background:var(--line);margin:4px 2px}
.popover.umenu button{flex-direction:row;align-items:center;gap:10px}
.popover.umenu button .tx{display:flex;flex-direction:column;gap:2px}
.popover.umenu button .ico{width:20px;height:20px;flex:none;color:var(--muted)}
.ico{width:20px;height:20px;display:block}
.bell .ico{width:20px;height:20px}
.bell{padding:6px 7px;line-height:0}
.cu-side-item .i .ico{width:18px;height:18px;color:var(--muted)}
.cu-side-item[aria-selected="true"] .i .ico{color:inherit}
.popover.umenu button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;border:0;background:transparent;color:var(--text);padding:9px 10px;border-radius:8px;font:inherit;font-weight:700;cursor:pointer}
.popover.umenu button:hover{background:var(--surface-2)}
.popover.umenu button small{color:var(--muted);font-weight:500;font-size:11px}
.umenu-btn::after{content:"▾";color:var(--muted);font-size:11px}
.ntoasts{position:fixed;right:14px;bottom:14px;z-index:80;display:flex;flex-direction:column;gap:8px;width:min(340px,92vw);pointer-events:none}
.ntoast.in{opacity:1;transform:none}
.ntoast .nt-b{flex:1;min-width:0}
.ntoast .nt-t{color:var(--muted);white-space:pre-line;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:2px 0}
.ntoast small{color:var(--faint)}
@media (max-width:640px) {
.ntoasts{bottom:calc(72px + env(safe-area-inset-bottom));right:8px;left:8px;width:auto}
.monthnav{display:none}
}
/* cintilla de evento publicado en la barra superior */
.ev-banner{flex:1;display:flex;justify-content:center;min-width:0}
.ev-banner button{max-width:100%;display:inline-flex;gap:8px;align-items:center;border:0;border-radius:999px;padding:5px 14px;font:inherit;font-weight:700;font-size:12px;cursor:pointer;box-shadow:0 4px 14px -6px rgba(0,0,0,.5);animation:evpulse 2.4s ease-in-out infinite}
@keyframes evpulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-1px)}}
/* cintilla de evento como anuncio interno: degradado del color del evento, brillo que recorre y botón que late */
.ev-banner .evb {
  position:relative;
  overflow:hidden;
  gap:12px;
  padding:5px 8px 5px 12px;
  border-radius:14px;
  background:linear-gradient(100deg,var(--c) 0%,color-mix(in srgb,var(--c) 70%,#000) 100%);
  box-shadow:0 8px 24px -10px var(--c),inset 0 0 0 1px rgba(255,255,255,.18);
  animation:none;
  font-size:12px;
  max-width:min(680px,100%);
}
.ev-banner .evb::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);animation:evshine 5s ease-in-out infinite}
@keyframes evshine{0%,60%{transform:translateX(-120%)}85%,100%{transform:translateX(120%)}}
.ev-banner .evb:hover{transform:translateY(-1px) scale(1.01);box-shadow:0 12px 30px -10px var(--c),inset 0 0 0 1px rgba(255,255,255,.3)}
.ev-banner .evb-ico{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.22);display:grid;place-items:center;flex:none}
.ev-banner .evb-ico .ico{width:18px;height:18px}
.ev-banner .evb-t{display:flex;flex-direction:column;align-items:flex-start;min-width:0;line-height:1.15;text-align:left}
.ev-banner .evb-t small{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.ev-banner .evb-t b{font-family:var(--display);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.ev-banner .evb-cta{background:#fff;color:#111;border-radius:999px;padding:5px 12px;font-size:11px;font-weight:800;white-space:nowrap;animation:evcta 1.8s ease-in-out infinite;flex:none}
@keyframes evcta{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
.ev-banner .evb-n{font-size:10px;opacity:.75;flex:none}
@media (max-width:640px) {
.ev-banner .evb{max-width:100%}
.ev-banner{flex-basis:100%;order:5;margin-top:4px}
.ev-banner button{width:100%;justify-content:center}
}
.curso-card .cv{position:relative}
.cu-res{margin-top:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px 12px}
.cu-res-h{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;margin-bottom:4px}
.cu-res-h b{font-size:14px}
.cu-res-item{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);margin-top:6px;cursor:pointer}
.cu-res-item .t{flex:1;min-width:0;font-weight:600;display:flex;flex-direction:column}
.cu-res-item .t small{color:var(--muted);font-weight:500}
.cu-res-item a.ico-btn{text-decoration:none;color:var(--text)}
.cu-mbar .t{flex:1;min-width:0;display:flex;flex-direction:column}
.cu-mbar .t b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cu-mbar .t small{color:var(--muted)}
@media (max-width:800px) {
#panel-cursos{padding-bottom:90px}
}
dialog.cu-pop{width:min(96vw,960px);max-width:96vw;background:#000;color:#fff;border-radius:12px;padding:0}
@media (max-width:800px) {
dialog.cu-pop{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
}
.cu-pop-h .t{flex:1;min-width:0;display:flex;flex-direction:column}
.cu-pop-h .t b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cu-pop-h small{opacity:.7}
.cu-pop-h .ico-btn{color:#fff;font-size:20px}
.cu-pop-b video{width:100%;max-height:72dvh;background:#000}
.cu-pop-b audio{margin:24px 12px;width:calc(100% - 24px)}
.cu-pop-f{display:flex;gap:8px;align-items:center;padding:8px 12px;flex-wrap:wrap}
.cu-pop-f select{background:#222;color:#fff;border:1px solid #444;border-radius:6px;padding:4px 6px;font:inherit}
.cue-ulist{max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:6px 10px;margin-top:6px}
.cue-ulist label{padding:4px 0}
/* menú "Agrupar por" (estilo Odoo) y filas de grupo en tablas */
.gmenu{position:relative;display:inline-block}
.gmenu>.btn.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface))}
.gmenu-pop{position:absolute;left:0;top:calc(100% + 4px);z-index:30;min-width:230px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column;max-height:60vh;overflow:auto;text-transform:none;letter-spacing:0}
.gmenu-pop button{text-align:left;border:0;background:transparent;color:var(--text);padding:7px 10px;border-radius:6px;font:inherit;font-weight:600;cursor:pointer;white-space:nowrap}
.gmenu-pop button:hover{background:var(--surface-2)}
.gmenu-pop button[aria-selected="true"]{color:var(--green-ink);background:var(--accent-soft)}
.gmenu-pop .sep{height:1px;background:var(--line);margin:4px 2px}
.tbl tr.grp td{background:var(--surface-2);font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:6px 10px;color:var(--text)}
.tbl tr.grp.hid td{opacity:.75}
.grp-sel{vertical-align:middle;margin:0 6px 0 2px;width:15px;height:15px}
.grp-tog{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:6px;width:24px;height:22px;font:inherit;font-size:12px;cursor:pointer;vertical-align:middle;margin-right:4px}
/* editor de letra con formato */
.ly-tb{display:flex;gap:4px;flex-wrap:wrap;align-items:center;padding:6px;border:1px solid var(--line);border-bottom:0;border-radius:8px 8px 0 0;background:var(--surface-2)}
.ly-tb button{min-width:30px;height:28px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:6px;font:inherit;font-size:13px;cursor:pointer;padding:0 8px}
.ly-tb button:hover{background:var(--accent-soft)}
.ly-tb select{height:28px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:6px;font:inherit;font-size:12px}
.ly-color{position:relative;display:inline-grid;place-items:center;min-width:30px;height:28px;border:1px solid var(--line);background:var(--surface);border-radius:6px;font-weight:800;cursor:pointer;font-size:13px}
.ly-color input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.viewer-txt.lyrics-html div,.viewer-txt.lyrics-html p{margin:0}
.viewer-txt.lyrics-html ul{margin:4px 0;padding-left:22px}
.video-wrap video{width:100%;height:100%;background:#000}
/* ---------- 7.5: inicio de módulos (estilo Odoo) y barra por módulo ---------- */
.nav-home{border:0;background:none;color:var(--muted);padding:6px 10px;display:inline-flex;align-items:center;gap:7px;font-weight:700;cursor:pointer;border-radius:10px;order:-1;font:inherit;font-size:13px}
.nav-home .mi{display:inline-grid!important;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--accent-soft);color:var(--green-ink);line-height:0}
.nav-home .mi svg{width:18px;height:18px}
.nav-home[aria-selected="true"]{color:var(--ink)}
.nav-home[aria-selected="true"] .mi,.nav-home:hover .mi{background:var(--accent);color:var(--accent-ink,#fff)}
#nav-rep{order:900;margin-left:auto}
body.sv:not(.design) #mainnav .ver.nav-ver{margin-left:8px}
body.design #nav-home,body.design #nav-rep{display:none!important}
body.sv:not(.design) #mainnav>.menu:not(.cur),body.sv:not(.design) #mainnav>.top-tab:not(.cur):not(#nav-rep),body.sv:not(.design) #mainnav>.top-tab[data-tab="repertorio"]{display:none}
body.sv:not(.design) #mainnav>.menu.cur{display:contents}
body.sv:not(.design) #mainnav>.menu.cur .menu-btn{color:var(--ink);font-weight:800;padding-right:4px;border-bottom-color:transparent;cursor:pointer}
body.sv:not(.design) #mainnav>.menu.cur .menu-btn::after{content:'›';color:var(--faint);margin-left:8px;font-weight:400;font-size:16px}
body.sv:not(.design) #mainnav>.menu.cur .caret{display:none}
body.sv:not(.design) #mainnav>.menu.cur .menu-list{display:contents}
body.sv:not(.design) #mainnav>.menu.cur .menu-list::before{content:none}
body.sv:not(.design) #mainnav>.menu.cur .menu-h{display:none}
body.sv:not(.design) #mainnav>.menu.cur .menu-list button{padding:10px 12px;border-radius:0;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--muted);font-weight:600;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;font-size:inherit}
body.sv:not(.design) #mainnav>.menu.cur .menu-list button:hover{background:none;color:var(--ink)}
body.sv:not(.design) #mainnav>.menu.cur .menu-list button[aria-selected="true"]{background:none;color:var(--ink);border-bottom-color:var(--green)}
@media (max-width:640px) {
body.sv:not(.design) .tabs{justify-content:flex-start;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;flex-wrap:nowrap;padding:4px 6px calc(4px + env(safe-area-inset-bottom))}
body.sv:not(.design) .tabs::-webkit-scrollbar{display:none}
body.sv:not(.design) .nav-home{position:sticky;left:0;z-index:2;background:var(--surface);flex:0 0 auto;flex-direction:column;gap:2px;padding:4px 8px;font-size:10px;order:-1;box-shadow:6px 0 8px -6px rgba(0,0,0,.25)}
body.sv:not(.design) .nav-home .mi{width:30px;height:30px}
body.sv:not(.design) .nav-home .mi svg{width:20px;height:20px}
body.sv:not(.design) .nav-home .ml{display:block}
body.sv:not(.design) #mainnav>.menu.cur .menu-btn{display:none}
body.sv:not(.design) #mainnav>.menu.cur .menu-list button,body.sv:not(.design) #mainnav>.top-tab.cur,body.sv:not(.design) #nav-rep {
  flex:0 0 auto;
  width:auto;
  min-width:62px;
  max-width:96px;
  flex-direction:column;
  gap:2px;
  padding:4px 6px;
  font-size:10px;
  border:0;
  border-radius:10px;
  margin:0;
  justify-content:center;
  background:none;
  color:var(--muted);
}
body.sv:not(.design) #mainnav>.menu.cur .menu-list button .ml,body.sv:not(.design) #mainnav>.top-tab.cur .ml,body.sv:not(.design) #nav-rep .ml{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:88px;font-weight:600}
body.sv:not(.design) #mainnav>.menu.cur .menu-list button .mi{display:block!important;width:24px;height:24px;line-height:0}
body.sv:not(.design) #mainnav>.menu.cur .menu-list button .mi svg,body.sv:not(.design) #mainnav>.menu.cur .menu-list button .mi .ico{width:24px;height:24px}
body.sv:not(.design) #mainnav>.menu.cur .menu-list button[aria-selected="true"],body.sv:not(.design) #mainnav>.top-tab.cur[aria-selected="true"],body.sv:not(.design) #nav-rep[aria-selected="true"]{background:var(--accent-soft);color:var(--green-ink)}
body.sv:not(.design) #nav-rep{margin-left:auto}
/* barra superior más limpia: sin el nombre de la app, solo el logo */
body.sv .sv-topbar .brand h1{display:none}
body.sv .sv-topbar .brand{margin-right:auto}
body.sv .sv-topbar .btn.bell{padding:6px 5px}
}
/* pantalla de inicio: tarjetas de módulos */
.home{max-width:1100px;margin:0 auto}
.home-hi{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:6px 0 18px}
.home-hi h2{margin:0;font-family:var(--display);font-size:clamp(22px,3vw,30px)}
.home-hi .hint{margin:2px 0 0}
.home-chips{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.home-chip:hover{border-color:var(--accent)}
.home-chip .ico{width:16px;height:16px;color:var(--accent)}
.home-chip .n{font-style:normal;background:var(--danger);color:#fff;border-radius:999px;font-size:10px;font-weight:800;min-width:18px;height:18px;line-height:18px;text-align:center;padding:0 4px}
.mod-tile {
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:20px 12px 16px;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--surface);
  cursor:pointer;
  font:inherit;
  color:inherit;
  text-align:center;
  transition:transform .15s,box-shadow .15s,border-color .15s;
  min-height:156px;
}
.mod-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--mc,var(--accent)) 55%,var(--line))}
.mod-ico{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(135deg,var(--mc,var(--accent)),color-mix(in srgb,var(--mc,var(--accent)) 62%,#000));color:#fff;box-shadow:0 12px 24px -12px var(--mc,var(--accent));line-height:0}
.mod-ico svg{width:32px;height:32px}
.mod-tile b{font-size:14.5px;line-height:1.2}
.mod-tile small{color:var(--muted);font-size:11.5px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mod-tile .n{position:absolute;top:10px;right:10px;font-style:normal;background:var(--danger);color:#fff;border-radius:999px;font-size:10px;font-weight:800;min-width:18px;height:18px;line-height:18px;text-align:center;padding:0 4px}
@media (max-width:640px) {
.mod-tile{padding:14px 6px 12px;min-height:118px;gap:6px;border-radius:14px}
.mod-ico{width:52px;height:52px;border-radius:16px}
.mod-ico svg{width:26px;height:26px}
.mod-tile b{font-size:12.5px}
.mod-tile small{display:none}
.home-hi{margin-bottom:12px}
.home-chips{margin-left:0}
}
/* "No volver a mostrar" en las ventanas de inicio */
.nomore{display:inline-flex;gap:6px;align-items:center;font-size:12px;color:var(--muted);cursor:pointer;margin-right:auto;font-weight:500;text-transform:none;letter-spacing:0;align-self:center}
.nomore input{margin:0}
/* chat flotante (estilo Messenger) */
.chat-pop {
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:396;
  width:min(94vw,380px);
  height:min(72vh,540px);
  background:var(--surface);
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 24px 60px -20px rgba(0,0,0,.5);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  animation:achin .25s ease-out;
  font-size:13.5px;
}
.chat-pop .cp-h{display:flex;gap:8px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.cp-h .avatar,.cp-h .chat-hash{width:30px;height:30px;flex:none}
.cp-h .chat-hash .ico{width:16px;height:16px}
.cp-h .t{flex:1;min-width:0}
.cp-h .t b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-h .t small{display:block;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-h .ico-btn .ico{width:18px;height:18px}
.chat-pop .chat-msgs{flex:1}
.cp-list{flex:1;overflow:auto;padding:6px}
.chat-pop .chat-in{position:relative}
.chat-pop .chat-emo{bottom:54px}
.cp-share .chat-sh .ico-btn .ico{width:16px;height:16px}
.cp-share-g button{display:flex;flex-direction:column;align-items:center;gap:4px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 4px;font:inherit;font-size:11.5px;color:var(--ink);cursor:pointer}
.cp-share-g button .ico{width:22px;height:22px;color:var(--accent)}
.cp-share-g button:hover{border-color:var(--accent)}
.cp-share .list button{display:flex;gap:8px;align-items:center;width:100%;text-align:left}
.cp-pend .lk-i{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--accent-soft);color:var(--green-ink);flex:none}
.cp-pend .lk-i .ico{width:16px;height:16px}
.cp-pend b,.cp-pend small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-pend small{color:var(--muted)}
.chat-link{display:flex;gap:8px;align-items:center;margin-top:4px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:6px 8px;cursor:pointer;font:inherit;color:inherit;text-align:left;max-width:100%;width:100%}
.chat-link .lk-i{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;background:var(--accent-soft);color:var(--green-ink);flex:none}
.chat-link .lk-i .ico{width:20px;height:20px}
.chat-link .lk-t b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-link .lk-t small{display:block;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-link>.ico{margin-left:auto;color:var(--accent);flex:none}
body.chat-open .ntoasts{bottom:auto;top:60px}
@media (max-width:640px) {
.chat-pop{left:6px;right:6px;bottom:calc(66px + env(safe-area-inset-bottom));width:auto;height:min(70vh,560px)}
}
/* Eventos: agenda, contador, foto vertical y cumpleaños */
.ev-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.ev-sec{margin-top:18px}
.ev-sec>h4{margin:0 0 8px;display:flex;gap:8px;align-items:center;font-size:15px;flex-wrap:wrap}
.ev-sec>h4 .hint{font-weight:500}
.ev-list{display:grid;gap:8px}
.ev-it:hover{transform:translateX(3px);box-shadow:var(--shadow)}
.ev-it.sel{box-shadow:0 0 0 2px var(--evc,var(--accent)) inset}
.ev-dt{display:flex;flex-direction:column;align-items:center;justify-content:center;width:54px;height:54px;border-radius:12px;flex:none;line-height:1}
.ev-dt b{font-size:22px;font-family:var(--display)}
.ev-dt small{font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:800;opacity:.9}
.ev-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ev-txt b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev-txt small{color:var(--muted);font-size:12px}
.ev-it .ico-btn{color:var(--muted)}
.ev-it .ico-btn .ico{width:16px;height:16px}
@media (max-width:640px) {
.ev-dt b{font-size:19px}
.ev-txt small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
.ev-cols{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:16px;align-items:start;margin-top:18px}
.ev-past summary{cursor:pointer;font-weight:700;font-size:15px;list-style:none;display:flex;gap:8px;align-items:center}
.ev-past summary::-webkit-details-marker{display:none}
.fs-card.fs-v{display:flex;flex-direction:column}
.fs-card.fs-v .fs-who b{font-size:18px}
.bd-head{display:flex;gap:12px;align-items:center;margin-bottom:12px}
.bd-head h4{margin:0;font-size:17px;font-family:var(--display)}
.bd-head small{display:block}
.bd-cake{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#ff5c8a,#ffb703);color:#fff;flex:none;animation:bdwig 3s ease-in-out infinite}
.bd-cake .ico{width:24px;height:24px}
.bdy .bdy-t b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.bdy .btn{flex:none}
.bday-box.empty{padding:12px 16px}
.bd-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:8px 10px 8px 16px;text-align:left;overflow:hidden}
.bd-card .bd-bn{position:absolute;left:0;top:0;bottom:0;width:8px;height:auto;border-radius:0}
.bd-card .bd-photo{display:none}
.bd-card .bd-av{margin:0;line-height:0}
.bd-card .bd-body{align-items:flex-start;padding:0;gap:1px;min-width:0}
.bd-card .bd-body b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.bd-card .bd-role{justify-content:flex-start;margin-top:0}
.bd-card .bd-role .hint{font-size:11px}
.bd-card .bd-xp{font-size:11px}
.bd-card .bd-tro{flex-direction:row;flex-wrap:wrap;justify-content:flex-end;max-width:52px;margin:0;min-height:0;gap:1px}
.bd-card:hover{transform:translateX(2px)}
@media (min-width:641px) {
/* 7.6: barra de módulos fija al bajar (escritorio); en celular sigue abajo */
body.sv:not(.design) .tabs{position:sticky;top:var(--tb-h,52px);z-index:29}
}
/* Listas: BGVs del día siempre a la vista + sugerencias */
.bgv-bar{position:sticky;top:calc(var(--tb-h,52px) + 46px);z-index:4;display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:8px 10px;margin:0 0 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 4px 14px -10px rgba(0,0,0,.3)}
.bgv-chip img,.bgv-chip i{width:22px;height:22px;border-radius:50%;object-fit:cover;display:inline-grid;place-items:center;background:var(--surface);color:var(--muted);font-style:normal}
.bgv-chip i .ico{width:13px;height:13px}
.sug-t{flex:1;min-width:0}
.sug-t b,.sug-t small{display:block}
.sug-t small{color:var(--muted);font-size:12px}
.sug-b{display:flex;gap:4px;flex-direction:column;flex:none}
/* Mi disponibilidad: reemplazos con confirmación del compañero */
.chip.cover-espera{background:var(--warn-bg,#FFF3D6);color:#8a5a00}
.chip.cover-none{background:var(--danger-bg);color:var(--danger)}
.bd-card[disabled]{opacity:.5;cursor:not-allowed;filter:grayscale(.6)}
#dlg .bd-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
@media (min-width:641px) {
body.sv:not(.design).mod-in #nav-home{display:none}
body.sv:not(.design) #mainnav>.menu.cur .menu-btn{padding:6px 10px 6px 4px}
body.sv:not(.design) #mainnav>.menu.cur .menu-btn .ml,body.sv:not(.design) #mainnav>.menu.cur .menu-btn::after{display:none;content:none}
body.sv:not(.design) #mainnav>.menu.cur .menu-btn .mi,body.sv:not(.design) #mainnav>.top-tab.cur .mi{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--accent);color:var(--accent-ink,#fff);line-height:0;transition:transform .15s}
body.sv:not(.design) #mainnav>.menu.cur .menu-btn .mi svg,body.sv:not(.design) #mainnav>.top-tab.cur .mi svg{width:19px;height:19px}
body.sv:not(.design) #mainnav>.menu.cur .menu-btn:hover .mi,body.sv:not(.design) #mainnav>.top-tab.cur:hover .mi{display:none}
body.sv:not(.design) #mainnav>.menu.cur .menu-btn:hover .mi-home,body.sv:not(.design) #mainnav>.top-tab.cur:hover .mi-home{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--accent-soft);color:var(--green-ink);line-height:0}
.mi-home .ico{width:19px;height:19px}
body.sv:not(.design) #mainnav>.top-tab.cur{border-bottom-color:transparent;gap:12px;color:var(--ink);padding-left:4px}
body.sv:not(.design) #mainnav>.top-tab.cur .ml{border-bottom:2px solid var(--green);padding:10px 2px;margin-bottom:-1px}
}
/* 7.7: inicio: iconos grandes sin marco, contador en la esquina del icono, descripción al mantener el mouse 2 s */
.mod-tile{border:0;background:none;box-shadow:none;padding:12px 6px 8px;min-height:0;gap:10px;overflow:visible}
.mod-tile:hover{transform:translateY(-3px);box-shadow:none;border-color:transparent}
.mod-ico{width:92px;height:92px;border-radius:28px;position:relative;box-shadow:0 14px 28px -14px var(--mc,var(--accent))}
.mod-ico svg{width:46px;height:46px}
.mod-tile b{font-size:14px}
.mod-tile small {
  display:none;
  position:absolute;
  top:calc(100% - 2px);
  left:50%;
  transform:translateX(-50%);
  width:max-content;
  max-width:230px;
  background:var(--ink);
  color:var(--surface);
  padding:6px 10px;
  border-radius:8px;
  font-size:11.5px;
  line-height:1.3;
  z-index:6;
  pointer-events:none;
  -webkit-line-clamp:unset;
  box-shadow:var(--shadow);
  text-align:center;
}
.mod-tile.tipon small{display:block}
.mod-tile .n{top:10px;right:10px}
.mod-ico .n{position:absolute;top:-7px;right:-7px;left:auto;box-shadow:0 0 0 2px var(--bg);font-size:11px;min-width:20px;height:20px;line-height:20px}
@media (max-width:640px) {
.mod-tile{padding:10px 4px 6px;min-height:0;gap:8px}
.mod-ico{width:74px;height:74px;border-radius:22px}
.mod-ico svg{width:38px;height:38px}
.mod-tile b{font-size:12.5px}
}
/* 7.7: asistente con botón para ocultarlo */
.helper-btn .hx{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--surface);color:var(--muted);border:1px solid var(--line);font-size:14px;line-height:17px;text-align:center;display:none;cursor:pointer;font-weight:700;box-shadow:var(--shadow)}
.helper-btn:hover .hx{display:block}
.helper-btn .hx:hover{color:var(--danger)}
/* 7.7: chat — stickers, emojis por categorías con animación y zumbido */
.chat-in .ico-btn{flex:none}
.emo-tabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;padding:0 0 6px;border-bottom:1px solid var(--line);margin-bottom:6px}
.emo-tabs button{border:0;background:transparent;font-size:18px;padding:4px 7px;border-radius:8px;cursor:pointer;line-height:1;flex:none;color:var(--muted)}
.emo-tabs button[aria-selected="true"]{background:var(--accent-soft)}
.emo-tabs button .ico{width:18px;height:18px}
.chat-emo{width:min(96%,440px);max-width:none}
.chat-emo-g button{transition:transform .12s}
.chat-emo-g button:hover{transform:scale(1.35);animation:emoWig .5s ease-in-out}
.chat-emo-g button.stk{width:72px;height:72px;padding:4px;position:relative}
.chat-emo-g button.stk img{width:100%;height:100%;object-fit:contain}
.chat-emo-g button.stk .x{position:absolute;top:0;right:0;width:18px;height:18px;border-radius:50%;background:var(--danger);color:#fff;font-size:12px;line-height:18px;text-align:center;display:none}
.chat-emo-g button.stk:hover .x{display:block}
.stk-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:6px 0 2px}
.chat-stkw{position:relative;display:inline-block;margin-top:2px}
.chat-stk{max-width:160px;max-height:160px;display:block;border-radius:10px}
.chat-m.stk .chat-b{background:transparent;padding:0}
.chat-stkw:hover .stk-add{display:block}
.chat-t.big{font-size:42px;line-height:1.15;animation:emoPop .6s cubic-bezier(.2,1.4,.4,1)}
.chat-t.big .emo-a{display:inline-block}
.chat-nudge{display:inline-flex;gap:6px;align-items:center;font-weight:800;color:#fff;background:linear-gradient(135deg,#FF8C00,#FF3B6B);border-radius:12px;padding:6px 12px;margin-top:2px;animation:buzzMsg .8s linear}
.chat-nudge .ico{width:18px;height:18px}
@media (max-width:640px) {
/* 7.7.1: en celular los popovers de la barra (usuario, votación, eventos, avisos) van a todo el ancho; la regla .popover{position:absolute} de más abajo ganaba a la de la media query */
.sv-topbar .popover,.popover{position:fixed!important;top:calc(var(--tb-h,56px) + 4px)!important;left:8px!important;right:8px!important;width:auto!important;max-width:none!important;max-height:calc(100dvh - 140px)!important}
}
@media (min-width:641px) {
/* 7.7.1: Repertorio también es módulo: su botón fijo hace de icono del módulo (y de inicio al pasar el mouse) */
body.sv:not(.design) #mainnav>#nav-rep.cur{order:-1;margin-left:0}
}
@media (max-width:640px) {
/* 7.14.2: en celular los popovers de filtros de Repertorio/Banda/Integrantes (.rep-pop) se salían de la pantalla
   porque son position:absolute con left:0 respecto al botón, que en la barra puede quedar cerca del borde
   derecho; en celular los volvemos position:fixed centrados con margen fijo, igual que .popover en 7.7.1 */
.rep-pop{position:fixed!important;left:8px!important;right:8px!important;top:calc(var(--tb-h,56px) + 8px)!important;width:auto!important;max-width:none!important;max-height:min(70vh,520px)!important;overflow:auto}
.rep-popw{position:static}
}
/* 7.14.2: el contador del chip seleccionado heredaba el color tenue de .hint y no se leía sobre el acento */
.chip-btn[aria-selected="true"] .hint,.chip-btn[aria-selected="true"] b{color:inherit;opacity:.8}
.bd-pres.online{color:#1B9E5A}
.bd-pres.away{color:#B77A0B}
/* 7.15: la cuadrícula de permisos por secciones (antes era una sola lista larga de 23 pestañas) */
.perm-wrap{display:flex;flex-direction:column;gap:10px}
.perm-sec>h5{margin:0 0 6px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}
.perm-sec>h5 small{text-transform:none;letter-spacing:0;font-weight:500;color:var(--faint)}
.perm-help{border-left:3px solid var(--accent);padding:2px 0 2px 10px;margin:8px 0}
.perm-help b{font-size:13px}
.perm-help ul{margin:4px 0 0;padding-left:18px;font-size:12.5px;color:var(--muted)}
.perm-help ul b{color:var(--ink);font-size:12.5px}
/* 7.15: diálogo de conflicto al guardar */
.mg-list{display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow:auto}
.mg-row{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface-2)}
.mg-row>b{display:block;font-size:13px;margin-bottom:4px}
.mg-opts{display:grid;gap:4px}
.mg-opts label{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;cursor:pointer}
.mg-opts label small{display:block;color:var(--faint);font-size:11.5px;word-break:break-word}
.act-sec{border:1px solid var(--line);border-radius:10px;margin-bottom:8px;overflow:hidden;background:var(--surface)}
.act-h{display:flex;gap:8px;align-items:center;margin:0;padding:8px 10px;font-size:13px;background:var(--surface-2);border-bottom:1px solid var(--line)}
.act-h .hint{margin-left:auto;font-weight:600}
.act-h .fold-btn{transition:transform .15s}
.act-sec.folded .act-body{display:none}
.act-sec.folded .act-h{border-bottom:0}
.cu-req{margin-top:8px;font-size:12px;color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.cu-req.pend{color:var(--green-ink);font-weight:600}
.cu-req.no{color:var(--danger)}
.cu-done{display:flex;align-items:center;gap:3px;margin-top:6px;flex-wrap:wrap}
.cu-done .coll-av{border:2px solid var(--surface);border-radius:50%;margin-right:-7px}
.cu-done .hint{margin-left:10px;font-size:11px}
.cu-watch{display:inline-flex;align-items:center;gap:2px;flex:none;margin-left:4px}
.cu-watch .coll-av{border:2px solid var(--surface);border-radius:50%;margin-right:-6px}
.cu-watch i{font-size:10px;color:var(--muted);font-style:normal;margin-left:8px}
.bd-cu{display:block;margin-top:4px}
.bd-cu .bar{display:block;height:4px;border-radius:3px;background:var(--line);overflow:hidden;max-width:140px}
.bd-cu .bar i{display:block;height:100%;border-radius:3px;background:var(--accent)}
.bd-cu .tx{display:block;font-size:10.5px;font-weight:600;color:var(--muted);margin-top:2px}
.bd-cu .tx .ico{width:11px;height:11px;vertical-align:-1px}
/* 7.17: devocional del domingo */
.box.devo{border-color:#7C6CF6;grid-column:1/-1}
.box.devo h4{color:#5B4BD6}
.box.devo .devo-row{grid-template-columns:52px 1fr}
.box.devo .devo-row label{font-size:10px}
.sem-devo{display:flex;gap:8px;align-items:flex-start;background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:8px;padding:8px 10px;margin:8px 0;font-size:13px}
.devo-box{margin-top:12px}
.devo-list{display:flex;flex-direction:column;gap:6px}
.devo-it.mine{border-color:var(--accent);background:var(--accent-soft)}
.devo-dt{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:var(--surface-2);flex:none;line-height:1}
.devo-dt b{font-size:17px}
.devo-dt small{font-size:9px;text-transform:uppercase;color:var(--muted)}
.devo-tx{display:flex;flex-direction:column;min-width:0}
.devo-tx small{font-size:11px}
.chip.devo-chip{background:#EDE9FE;color:#4C3BCF;border-color:#C4B5FD}
/* 7.18: Evaluaciones de desempeño */
.ev-top{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap;margin-bottom:12px}
.ev-mine-card{text-align:left;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface);cursor:pointer;font:inherit;color:inherit;display:flex;flex-direction:column;gap:4px}
.ev-score{display:inline-grid;place-items:center;min-width:44px;height:28px;border-radius:999px;font-weight:800;font-size:14px;background:var(--surface-2);color:var(--ink);padding:0 10px}
.ev-score.s5{background:#D8F5E3;color:#0B6E3F}
.ev-score.s4{background:#DDF0FF;color:#14539A}
.ev-score.s3{background:#FFF3C4;color:#8A6100}
.ev-score.s2{background:#FFE3D3;color:#9A3B12}
.ev-score.s1{background:#FFD9DE;color:#A01230}
.ev-score.none{background:transparent;color:var(--faint)}
.ev-note{margin:6px 0 0;font-size:12.5px;color:var(--muted);white-space:pre-wrap}
.ev-list{display:flex;flex-direction:column;gap:6px}
.ev-row{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:6px 10px;background:var(--surface);flex-wrap:wrap}
.ev-nm{display:flex;flex-direction:column;flex:1;min-width:140px}
.ev-nm small{font-size:11px}
.ev-rubros{display:flex;flex-direction:column;gap:6px;max-height:46vh;overflow:auto}
.ev-rubro{display:flex;gap:10px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:10px;padding:6px 10px;background:var(--surface-2);flex-wrap:wrap}
.ev-rl{display:flex;flex-direction:column;min-width:150px;flex:1}
.ev-rl small{font-size:10.5px}
.ev-sc{display:flex;gap:4px;flex:none}
.ev-sc button{width:34px;height:32px;border-radius:8px;border:1px solid var(--line);background:var(--surface);font-weight:800;cursor:pointer;color:var(--muted)}
.ev-sc button:hover{border-color:var(--accent)}
.ev-sc button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink,#fff)}
.ev-sum{display:flex;gap:18px;align-items:flex-end;border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:10px;background:var(--surface-2)}
.ev-spark i{width:10px;background:var(--accent);border-radius:3px 3px 0 0;display:block}
.ev-hist{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:8px;background:var(--surface)}
.ev-hh{display:flex;gap:8px;align-items:center;margin-bottom:6px}
.ev-hh .hint{margin-left:auto}
.ev-hs{display:flex;flex-wrap:wrap;gap:6px}
.ev-hsc b{font-weight:800}
.ev-hsc b.s5{color:#0B6E3F}
.ev-hsc b.s4{color:#14539A}
.ev-hsc b.s3{color:#8A6100}
.ev-hsc b.s2{color:#9A3B12}
.ev-hsc b.s1{color:#A01230}
.ev-cfg-rubros{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
/* 7.8: avatar sin foto centrado dentro del marco (chat, mensaje directo, tarjetas) */
.coll-av>.avatar:not(img){display:grid!important;place-items:center;text-align:center;line-height:1}
@media (min-width:641px) {
/* 7.8: la versión siempre en el mismo sitio (esquina derecha de la barra) y el icono del módulo con su propio color */
body.sv:not(.design) #mainnav{padding-right:72px}
body.sv:not(.design) #mainnav .ver.nav-ver{position:absolute;right:14px;top:50%;transform:translateY(-50%);margin:0!important}
body.sv:not(.design) #mainnav>.menu.cur .menu-btn .mi,body.sv:not(.design) #mainnav>.top-tab.cur .mi{background:var(--mc,var(--accent));color:#fff}
}
/* 7.8: Ajustes → Módulos */
.mod-cfg .mod-row{display:grid;grid-template-columns:44px minmax(120px,1fr) minmax(160px,1fr) 56px auto;gap:8px;align-items:center;margin-bottom:6px}
.mod-pv svg{width:22px;height:22px}
.mod-cfg input[type=color]{width:52px;height:34px;padding:2px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
@media (max-width:640px) {
.mod-cfg .mod-row{grid-template-columns:44px 1fr 56px}
.mod-cfg .mod-row select,.mod-cfg .mod-row .btn{grid-column:1/-1}
}
.chat-msgs.bgart .chat-b{background:color-mix(in srgb,var(--surface) 90%,transparent);box-shadow:0 1px 3px rgba(0,0,0,.18)}
.chat-msgs.bgart .chat-day{background:color-mix(in srgb,var(--surface) 82%,transparent);border-radius:999px;padding:2px 10px;align-self:center}
.chat-msgs.bgart .chat-meta b,.chat-msgs.bgart .chat-meta small{text-shadow:0 1px 2px rgba(0,0,0,.25)}
.chat-head .ico-btn .ico{width:18px;height:18px}
/* 7.8: llamadas y videollamadas */
.call-win{position:fixed;right:16px;bottom:16px;z-index:410;width:min(94vw,420px);background:#0E1424;color:#fff;border-radius:18px;box-shadow:0 24px 60px -20px rgba(0,0,0,.7);overflow:hidden;display:flex;flex-direction:column}
.call-h{padding:10px 14px;display:flex;flex-direction:column}
.call-h b{font-size:15px}
.call-h small{opacity:.75;font-size:12px}
.call-v video{width:100%;height:100%;object-fit:cover;display:block;background:#000}
.call-av .avatar{width:110px;height:110px;font-size:60px}
.call-b .btn{color:#fff;border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.08)}
.call-b .btn.danger{background:var(--danger);border-color:var(--danger)}
.call-ring {
  position:fixed;
  left:50%;
  top:14px;
  transform:translateX(-50%);
  z-index:420;
  display:flex;
  gap:10px;
  align-items:center;
  width:min(94vw,440px);
  background:var(--surface);
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:10px 12px;
  animation:achin .3s ease-out;
}
.call-ring-av .avatar{width:44px;height:44px}
.call-ring b{display:block}
.call-ring small{color:var(--muted);display:block}
/* 7.9: estado de conexión en la foto (punto en la esquina inferior derecha) */
.avw{position:relative;display:inline-block;line-height:0;flex:none;vertical-align:middle}
.pdot{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;border:2px solid var(--surface);background:#9AA3AF;z-index:3;box-sizing:content-box}
.pdot.online{background:#22C267}
.pdot.away{background:#F0B429}
.pdot.offline{background:#9AA3AF}
.pdot.unknown{display:none}
.chat-av .pdot{right:0;bottom:2px;width:9px;height:9px}
.bd-card .pdot,.bdp-head .pdot,.ucard-av .pdot{width:13px;height:13px}
.pres-txt{color:var(--muted);font-size:11px}
.pres-txt.online{color:#1E9E52;font-weight:700}
.pres-txt.away{color:#A66A00;font-weight:700}
/* 7.9: iconos PNG por módulo */
.mi img.mi-img{width:100%;height:100%;object-fit:contain;display:block}
@media (min-width:641px) {
body.sv:not(.design) #mainnav>.menu.cur .menu-btn .mi img.mi-img,body.sv:not(.design) #mainnav>.top-tab.cur .mi img.mi-img{width:22px;height:22px}
}
.mod-ico img.mi-img{width:58%;height:58%}
.mod-pv img.mi-img{width:26px;height:26px}
.mod-cfg .mod-row{grid-template-columns:44px minmax(110px,1fr) minmax(150px,1fr) 56px auto auto auto}
@media (max-width:640px) {
.mod-cfg .mod-row{grid-template-columns:44px 1fr 56px}
}
/* 7.9: sonidos (Ajustes) */
.snd-row{display:grid;grid-template-columns:150px 1fr auto;gap:8px;align-items:center;margin-bottom:6px}
.snd-files{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.snd-files>div{display:flex;gap:8px;align-items:center;padding:4px 8px;border:1px solid var(--line);border-radius:8px}
@media (max-width:640px) {
.snd-row>label{grid-column:1/-1}
}
.vol-row input[type=range]{flex:1}
/* 7.10: ventanas de chat estilo Messenger (abajo a la derecha) y burbujas minimizadas */
#cw-dock{position:fixed;right:88px;bottom:0;z-index:394;display:flex;gap:10px;align-items:flex-end;pointer-events:none}
.cwin {
  pointer-events:auto;
  width:330px;
  height:min(70vh,460px);
  background:var(--surface);
  color:var(--ink);
  border:1px solid var(--line);
  border-bottom:0;
  border-radius:14px 14px 0 0;
  box-shadow:0 -8px 30px -12px rgba(0,0,0,.45);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  position:relative;
  font-size:13.5px;
}
.cw-h .cw-back{display:inline-flex;align-items:center;gap:1px;flex:none;font-weight:700;font-size:12.5px;padding:4px 6px 4px 2px;border-radius:8px;opacity:.95}
.cw-h .cw-back svg{width:18px;height:18px}
.cw-h .cw-back:hover{background:color-mix(in srgb,currentColor 12%,transparent)}
.cwin.active .cw-h{background:var(--accent);color:var(--accent-ink,#fff)}
.cwin.active .cw-h .ico-btn,.cwin.active .cw-h small,.cwin.active .cw-h .pres-txt{color:inherit}
.cw-h .avatar,.cw-h .chat-hash{width:30px;height:30px}
.cw-h .t{flex:1;min-width:0;cursor:pointer}
.cw-h .t b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cw-h .t small{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cw-h .ico-btn .ico{width:17px;height:17px}
.cwin .chat-msgs{flex:1}
.cwin .chat-in{position:relative}
.cwin .chat-emo{bottom:54px}
.cwin .cp-share{bottom:56px}
.cbub .avw,.cbub .avatar,.cbub .chat-hash{width:52px;height:52px;display:block}
.cbub .chat-hash{border-radius:50%;font-size:22px;display:inline-grid}
.cbub .n{position:absolute;top:-4px;left:-4px;font-style:normal;background:var(--danger);color:#fff;border-radius:999px;font-size:10px;font-weight:800;min-width:18px;height:18px;line-height:18px;text-align:center;padding:0 4px;z-index:4}
.cbub:hover .cbub-x{display:block}
.cbub-pv{display:none;position:absolute;right:62px;top:50%;transform:translateY(-50%);width:max-content;max-width:240px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:8px 10px;box-shadow:var(--shadow);z-index:5;line-height:1.3;text-align:left}
.cbub-pv b{display:block;font-size:12.5px}
.cbub-pv small{display:block;color:var(--muted);font-size:11.5px;white-space:normal}
.cbub:hover .cbub-pv{display:block}
.tick{font-size:11px;color:var(--muted);letter-spacing:-2px;font-weight:800;margin-left:2px}
.tick.read{color:#2F6BD6}
body.cw-open .ntoasts{bottom:auto;top:60px}
@media (max-width:640px) {
#cw-dock{right:0;left:0;bottom:calc(64px + env(safe-area-inset-bottom));justify-content:center}
.cwin{width:100%;height:min(62vh,520px)}
}
.chip.cu-level{position:static;font-size:11px;text-transform:none;letter-spacing:0}
.stars i{font-style:normal;color:#D0D5DD}
.stars i.on{color:#F0B429}
.stars i.half{background:linear-gradient(90deg,#F0B429 50%,#D0D5DD 50%);-webkit-background-clip:text;background-clip:text;color:transparent}
.cu-rating{display:flex;gap:6px;align-items:center;margin:2px 0 4px}
.cu-rating small{color:var(--muted);font-size:11px}
.cu-reviews{margin-top:14px}
.cu-rv-h{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.cu-rv-avg{display:flex;flex-direction:column;align-items:center;min-width:110px;gap:2px}
.cu-rv-avg b{font-size:34px;line-height:1;font-family:var(--display)}
.cu-rv-avg small{color:var(--muted);font-size:11.5px;text-align:center}
.cu-rv-form{flex:1;min-width:220px;display:flex;flex-direction:column;gap:6px}
.cu-rv-form textarea{width:100%;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:8px;font:inherit;box-sizing:border-box}
.cu-rv-stars button{font-size:28px;border:0;background:none;color:#D0D5DD;cursor:pointer;padding:0 2px;line-height:1;transition:transform .1s}
.cu-rv-stars button.on{color:#F0B429}
.cu-rv-stars button:hover{transform:scale(1.2)}
.cu-rv-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}
/* 7.11: cinta de llamada entrante (arriba, alterna rojo/verde) */
.call-ring{left:0;right:0;top:0;transform:none;width:auto;max-width:none;border-radius:0;border:0;padding:10px 14px;color:#fff;animation:ringFlash 1.1s ease-in-out infinite alternate;box-shadow:0 10px 30px rgba(0,0,0,.45);z-index:430}
.call-ring b,.call-ring small{color:#fff}
.call-ring b .ico{width:18px;height:18px;vertical-align:-3px}
.call-ring .btn{color:#fff;border-color:rgba(255,255,255,.6);background:rgba(0,0,0,.25);font-weight:800}
.call-ring .btn.cr-yes{background:#fff;color:#1E9E52;border-color:#fff}
.call-ring .btn.cr-no{background:rgba(0,0,0,.35)}
.call-ring-av .avatar{border:2px solid #fff}
@media (max-width:640px) {
.call-ring small{display:none}
/* 7.11: teclado del celular: la ventana de chat se acomoda encima del teclado */
#cw-dock{bottom:calc(64px + env(safe-area-inset-bottom) + var(--kb,0px))}
.cwin{height:min(calc(62vh - var(--kb,0px)),520px);min-height:220px}
.chat-pop{bottom:calc(66px + env(safe-area-inset-bottom) + var(--kb,0px));height:min(calc(70vh - var(--kb,0px)),560px);min-height:200px}
}
/* 7.11: grupos propios */
.chat-hash .ico{width:16px;height:16px}
.grp-list{max-height:42vh;overflow:auto;display:flex;flex-direction:column;gap:2px;margin-top:6px}
.grp-list label{display:flex;gap:8px;align-items:center;padding:5px 8px;border-radius:8px}
.grp-list label:hover{background:var(--surface-2)}
.grp-list .avatar{width:26px;height:26px}
/* 7.12: palomitas estilo WhatsApp (reloj, una, dos, dos azules) */
.tick{letter-spacing:0;display:inline-flex;align-items:center;color:#9AA3AF}
.tick .tk{width:17px;height:13px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.tick.read{color:#2F9BFF}
/* 7.12: mensajes de voz */
.chat-voice{display:flex;gap:8px;align-items:center;min-width:200px;max-width:260px;margin-top:4px}
.vplay{width:34px;height:34px;border-radius:50%;border:0;background:var(--accent);color:var(--accent-ink,#fff);display:grid;place-items:center;cursor:pointer;flex:none}
.vplay .ico{width:18px;height:18px}
.vbar{flex:1;height:6px;border-radius:3px;background:color-mix(in srgb,var(--ink) 18%,transparent);overflow:hidden;cursor:pointer}
.vbar i{display:block;height:100%;width:0;background:var(--accent);border-radius:3px}
.chat-voice small{font-size:10.5px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.vrec b{font-variant-numeric:tabular-nums;min-width:44px}
.vrec .hint{flex:1}
@media (max-width:800px) {
/* 7.14: la cinta de iconos SOLO dentro del módulo de Chat (#panel-chat); el globito y las ventanitas conservan la lista normal */
#panel-chat .chat{grid-template-columns:58px 1fr;height:calc(100dvh - 200px);min-height:360px}
#panel-chat .chat-side{max-height:none;padding:4px 3px;overflow:auto;scrollbar-width:none}
#panel-chat .chat-side::-webkit-scrollbar{display:none}
#panel-chat .chat-sh{padding:6px 0 2px;justify-content:center}
#panel-chat .chat-sh b{display:none}
#panel-chat .chat-sh .ico-btn{margin:0}
#panel-chat .chat-ch{flex-direction:column;padding:6px 2px;gap:0;position:relative;border-radius:12px}
#panel-chat .chat-ch .t{display:none}
#panel-chat .chat-ch .avatar,#panel-chat .chat-ch .chat-hash,#panel-chat .chat-ch .avw{width:38px;height:38px}
#panel-chat .chat-ch .avw .avatar{width:38px;height:38px}
#panel-chat .chat-ch .chat-hash{font-size:16px}
#panel-chat .chat-ch .n{position:absolute;top:0;right:0}
#panel-chat .chat-main{height:auto;min-height:0}
#panel-chat .chat-head{padding:8px 10px}
#panel-chat .chat-head .avatar{width:34px;height:34px}
#panel-chat .chat-in{padding:6px 6px}
#panel-chat .chat-in .ico-btn{padding:2px 3px}
#panel-chat .chat-in textarea{min-width:0}
}
.lv-cfg .r{display:grid;grid-template-columns:140px 1fr 32px;gap:6px;margin-bottom:6px}
/* 7.13: visor de fotos en la capa superior (encima de cualquier ventana) con descargar / compartir */
.pv-dlg{border:0;padding:0;margin:0;max-width:100vw;max-height:100vh;width:100vw;height:100vh;background:transparent;color:#fff}
.pv-dlg[open]{display:flex;flex-direction:column}
.pv-dlg::backdrop{background:rgba(0,0,0,.92)}
.pv-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;color:#fff}
.pv-bar b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-bar .ico-btn{color:#fff}
.pv-bar .ico-btn .ico{width:22px;height:22px}
.pv-img{flex:1;min-height:0;display:grid;place-items:center;padding:0 10px 14px;cursor:zoom-out}
.pv-img img{max-width:100%;max-height:100%;border-radius:8px;object-fit:contain;cursor:default}
/* 7.13: foto y fondo por grupo/canal */
.gl-av{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.gl-av .coll-av img.avatar{width:56px;height:56px}
/* 7.13: chat en celular: pestaña para ampliar la cinta y ver los nombres */
.rail-tg{display:none}
@media (max-width:800px) {
.rail-tg{display:grid;place-items:center;width:100%;height:32px;border:0;border-radius:10px;background:var(--surface-2);color:var(--muted);margin-bottom:4px;cursor:pointer}
.rail-tg .ico{width:18px;height:18px;transition:transform .2s}
#panel-chat .chat.rail-open{grid-template-columns:1fr}
#panel-chat .chat.rail-open .chat-main{display:none}
#panel-chat .chat.rail-open .chat-side{padding:6px}
#panel-chat .chat.rail-open .chat-ch{flex-direction:row;padding:7px 8px;gap:8px}
#panel-chat .chat.rail-open .chat-ch .t{display:block}
#panel-chat .chat.rail-open .chat-ch .n{position:static}
#panel-chat .chat.rail-open .chat-sh{justify-content:space-between;padding:6px 10px 4px}
#panel-chat .chat.rail-open .chat-sh b{display:inline}
.chat.rail-open .rail-tg .ico{transform:rotate(180deg)}
}
/* 7.14: recursos por canción (videos, tutoriales, arreglos) */
.sres-list{display:flex;flex-direction:column;gap:6px}
.sres .i{color:var(--accent);display:inline-flex}
.sres .i .ico{width:22px;height:22px}
.sres .t{flex:1;min-width:0}
.sres .t b{display:block;font-size:13.5px}
.sres .t small{color:var(--muted);font-size:11px}
/* 7.14: Biblioteca de recursos (Cursos → Recursos) */
.lib-top{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.lib-hd{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.lib-title{flex:1;min-width:0;display:flex;flex-direction:column}
.lib-title b{font-size:20px;display:flex;align-items:center;gap:6px}
.lib-title small{color:var(--muted)}
.lib-search .i{display:inline-flex;color:var(--muted)}
.lib-search .i .ico{width:18px;height:18px}
.lib-search input{flex:1;border:0;background:transparent;color:inherit;font:inherit;font-size:15px;min-width:0;outline:0}
.lib-chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.lib-chips::-webkit-scrollbar{display:none}
.chip-btn{flex:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:inherit;font:inherit;font-size:13px;border-radius:999px;padding:6px 12px;cursor:pointer;white-space:nowrap}
.chip-btn .ico{width:15px;height:15px}
.chip-btn i{font-style:normal;font-size:11px;color:var(--muted)}
.chip-btn[aria-selected="true"]{background:var(--accent);color:var(--accent-ink,#fff);border-color:var(--accent)}
.chip-btn[aria-selected="true"] i{color:inherit;opacity:.85}
.chip-btn .ico-btn{padding:0 2px;margin-left:2px;color:inherit}
.lib-sec h4{margin:4px 0 8px;display:flex;align-items:center;gap:6px}
.lib-book{flex:none;width:120px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:0}
.lib-book b{display:-webkit-box;font-size:12px;line-height:1.25;margin-top:6px;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:640px) {
.lib-title b{font-size:18px}
.lib-hd .btn.small{padding:6px 10px}
}
/* 7.22: ventas por área y listas de apoyo */
.vt-areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;margin-bottom:12px}
.vt-acard.on{box-shadow:0 0 0 2px var(--ac,#3D82D0)}
.vt-ahd .hint{font-size:11.5px}
.vt-adot{width:11px;height:11px;border-radius:50%;background:var(--ac,#3D82D0);flex:none}
.vt-aps{display:grid;gap:12px;margin-bottom:12px}
.vt-aplist{display:flex;flex-direction:column;gap:4px}
.vt-ap.ok{background:#E3F6EA}
.vt-apck{margin:0}
.vt-apnm{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
.chat-tabs button{flex:1;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 4px;font-size:12px;font-weight:700;cursor:pointer;color:inherit}
.chat-tabs button[aria-selected="true"]{background:var(--accent);color:var(--accent-ink,#fff);border-color:transparent}
.bd-card.bd-sel{outline:3px solid var(--accent);outline-offset:1px;transform:translateY(-2px)}
.cv-pick{align-self:center}
@media (max-width:640px) {
.chat-tabs button{font-size:11px}
}
.modulo.over{outline:2px dashed var(--accent);outline-offset:2px;border-radius:10px}
.mod-grip{display:inline-flex;align-items:center;color:var(--muted);opacity:.55;flex:none;cursor:grab;touch-action:none}
.mod-grip svg{width:16px;height:16px}
.modulo.drag .mod-head b{flex:1 1 90px;min-width:0}
.modulo.drag .mod-head small{flex:1 0 100%;order:9;padding-left:22px;white-space:normal}
.mod-acts{display:flex;align-items:center;gap:1px;flex:none;margin-left:auto}
.mod-acts .ico-btn{padding:2px 3px}
.mod-body .cu-res-sub:first-child{border-top:0;padding-top:0}
.vt-share input{flex:1;min-width:0;border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:8px;padding:8px 10px;font:inherit;font-size:12.5px}
.notice{display:block;border:1px solid var(--line);background:var(--surface-2);border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.45;margin:0 0 10px}
.notice svg{vertical-align:-2px;opacity:.75}
.notice.ok{border-color:color-mix(in srgb,var(--green,#22C267) 55%,transparent);background:color-mix(in srgb,var(--green,#22C267) 11%,transparent)}
#dlg .vt-vt-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.vt-voto.bye{border-color:var(--green,#22C267);background:color-mix(in srgb,var(--green,#22C267) 12%,var(--surface))}
.vt-voto.bye .vt-voto-h{color:var(--green-ink,#0d8a45)}
.vt-voto.out{opacity:0;height:0!important;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;border-width:0}
/* 7.32: recuadro de votación bien visible y pendientes por fecha */
.vt-voto{margin-bottom:12px;border:2px solid var(--line)}
.vt-voto-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;font-size:16px}
.vt-voto-h .hint{font-size:12.5px;flex-basis:100%}
.vt-vt-t{margin-bottom:8px;line-height:1.35}
.vt-vt-t b{font-size:15px;margin-right:6px}
.vt-vt-t small{display:block;margin-top:2px}
.vt-vt-o {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:3px;
  text-align:center;
  border:1.5px solid var(--line);
  background:var(--surface-2);
  color:inherit;
  font:inherit;
  border-radius:12px;
  padding:12px 8px;
  cursor:pointer;
  min-height:92px;
  justify-content:center;
  transition:transform .08s,border-color .12s;
}
.vt-vt-o:hover{border-color:var(--accent);transform:translateY(-1px)}
.vt-vt-o svg{width:22px;height:22px;opacity:.8}
.vt-vt-o b{font-size:13px}
.vt-vt-o small{font-size:10.5px;color:var(--muted);line-height:1.25}
.vt-vt-o.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--surface));box-shadow:0 0 0 1px var(--accent) inset}
.vt-vt-o.on svg{opacity:1;color:var(--accent)}
.vt-pendall{margin-bottom:12px}
.vt-pblk.ok{opacity:.72}
.vt-pblk-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.vt-pblk-h b{font-size:13.5px}
.vt-pblk-n{margin-left:auto;font-weight:800;font-size:12px;border-radius:999px;padding:1px 9px;background:var(--gold,#F0B429);color:#231800}
.vt-pblk-n.ok{background:color-mix(in srgb,var(--green,#22C267) 22%,transparent);color:var(--green-ink,#0d8a45)}
/* 7.31: reparto de la cooperación, pendientes de votar y aclaraciones */
.vt-goal{display:grid;gap:6px;margin:0 0 10px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);font-size:12.5px}
.vt-goal-b i{display:block;height:100%;border-radius:999px;background:var(--green,#22C267)}
.vt-goal b.ok,.vt-money b.ok,.vt-acl .ok{color:var(--green-ink,#0d8a45)}
.vt-goal b.deb,.vt-money b.deb{color:var(--danger,#d92d20)}
.vt-money{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25;font-size:12.5px;font-variant-numeric:tabular-nums}
.vt-money b{font-weight:800}
.vt-money small{color:var(--muted);font-size:10.5px}
.vt-ap.debe{background:color-mix(in srgb,var(--danger,#d92d20) 7%,transparent);border-radius:8px}
.vt-apck small{display:block;color:var(--muted);font-size:11px}
.vt-apfoot{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.vt-pend{margin-bottom:12px;border-left:4px solid var(--gold,#F0B429)}
.vt-pend-n{margin-left:auto;font-weight:800;background:var(--gold,#F0B429);color:#231800;border-radius:999px;padding:1px 9px;font-size:12px}
.vt-pend-list{display:flex;flex-wrap:wrap;gap:6px}
.vt-pend-i svg{width:13px;height:13px;opacity:.6}
.vt-flags{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.vt-flag svg{width:12px;height:12px}
/* 7.30: panel de Recursos del curso (chips de tipo + los del resto del curso) y "Próximamente" */
.video-wrap.is-audio{aspect-ratio:auto;height:auto;min-height:0;background:var(--surface-2);border:1px solid var(--line);padding:16px;display:block}
.cu-aud{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;color:var(--text)}
.cu-aud svg{width:34px;height:34px;color:var(--blue);opacity:.9}
.cu-aud .t b{display:block;font-size:15px}
.cu-aud .t small{color:var(--muted);font-size:12px}
.cu-aud audio{width:100%;max-width:520px}
.cu-res-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 4px 8px}
.cu-res-chips .chip-btn{font-size:11px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);cursor:pointer;font:inherit;font-size:11px;line-height:1.7}
.cu-res-chips .chip-btn i{font-style:normal;opacity:.65;margin-left:3px}
.cu-res-chips .chip-btn[aria-selected="true"]{background:color-mix(in srgb,var(--blue) 18%,var(--surface));border-color:var(--blue);color:var(--text)}
.cu-res-more{margin-top:10px;padding-top:8px;border-top:1px dashed var(--line)}
.cu-res-sub{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 4px 6px;display:flex;align-items:center;gap:5px}
.cu-res-sub small{font-weight:400;text-transform:none;letter-spacing:0}
.cu-soon-note{margin-top:8px;font-size:12px;color:var(--muted)}
/* 7.24: adjuntos del chat y galería de marcos */
.chat-att{display:block;margin-top:6px;max-width:min(380px,72vw)}
.chat-att.img{position:relative;line-height:0}
.chat-att.img img{max-width:100%;max-height:320px;border-radius:12px;cursor:zoom-in;display:block;background:var(--surface-2)}
.chat-att.vid video,.chat-att.aud audio{width:100%;border-radius:12px;display:block;background:#000}
.chat-att.aud audio{background:transparent}
.chat-att .att-f{display:flex;align-items:center;gap:8px;padding:4px 2px 0;font-size:12px;line-height:1.3}
.chat-att .att-f span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-att .att-f small{opacity:.7;flex:none}
.att-dl{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;flex:none;color:inherit;opacity:.8}
.chat-att.img .att-dl{position:absolute;top:6px;right:6px;background:rgba(0,0,0,.5);color:#fff;opacity:0;transition:opacity .15s}
.chat-att.doc{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:inherit;text-decoration:none}
.chat-att.doc:hover{background:var(--surface-2)}
.chat-att.doc .att-n{flex:1;min-width:0;display:flex;flex-direction:column}
.chat-att.doc .att-n b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.chat-att.doc .att-n small{opacity:.7;font-size:11px}
.att-full img{max-width:100%;max-height:72vh;border-radius:12px}
/* marcos animados: la animación vive dentro del SVG (SMIL); aquí sólo el banner */
@keyframes bn-live{0%,100%{filter:saturate(1) brightness(1)}50%{filter:saturate(1.3) brightness(1.13)}}
body.fx-quieto .eq-name{animation:none!important}
/* galería de Mi marco y banner, por secciones */
.eq-sec{margin:10px 0 2px}
.eq-sec h5{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);display:flex;align-items:center;gap:6px}
.eq-sec h5 small{text-transform:none;letter-spacing:0;font-weight:500;opacity:.8}
.eq-sec h5 .ico{width:14px;height:14px}
.eq-none{font-size:12px;color:var(--muted);margin:0 0 6px}
.eq-chips{margin:0 0 8px}
.act-chain{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 2px;font-size:12.5px}
.act-chip button{border:0;background:none;color:inherit;cursor:pointer;font-size:11px;opacity:.65;padding:0 4px}
.act-chip button:hover{opacity:1}
.act-on{margin-left:auto;color:var(--accent);font-weight:800}
.inc-pend b{font-size:13.5px}
.chip.act-pendiente{background:var(--gold);color:#111}
.ev-viewer img.ev-bg{transform:scale(1.12);filter:blur(22px) saturate(1.2) brightness(.7);object-fit:cover}
.ev-viewer img.ev-fit{object-fit:contain}
.ev-vacts .ico-btn{background:rgba(0,0,0,.45);color:#fff;border-radius:10px;padding:6px;backdrop-filter:blur(4px)}
.ev-vacts .ico-btn:hover{background:rgba(0,0,0,.7)}
.ev-frame img{position:absolute;inset:0;width:100%;height:100%;display:block}
.ev-imgbox .img img{width:100%;height:100%;object-fit:contain;background:#0a0d14}
/* 7.27: cuenta del área y edición de la encuesta */
.vt-bank{margin:6px 0 10px;padding:8px 10px;border:1px dashed color-mix(in srgb,var(--ac,#3D82D0) 55%,transparent);border-radius:10px;display:grid;gap:3px;font-size:12.5px}
.vt-bank>div{display:flex;gap:8px;align-items:center}
.vt-bank>div span{color:var(--muted);min-width:88px;font-size:11.5px}
.vt-bank .vt-clabe{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em}
.vt-bank .ico-btn{padding:2px 4px}
.vt-bank .ico-btn .ico{width:14px;height:14px}
.vt-sv-row b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:640px) {
.vt-sv-row input{grid-column:1/-1}
}
.sem-step.na{opacity:.38;filter:grayscale(1)}
.sem-steps{flex-wrap:wrap}
/* cursos: contador en la lista y panel de quién lo vio */
.cu-watch-n{font-size:11px;color:var(--muted);gap:3px;margin-left:6px}
.curso-card .cb .cu-level-b{position:static;display:inline-block;margin:2px 0 6px}
.cu-watch-n .ico{width:13px;height:13px}
.cu-watch-n i{margin-left:2px}
.cuw{margin-top:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.cuw-h{display:flex;align-items:center;gap:6px;margin:0;padding:8px 10px;font-size:13px}
.cuw-h .ico{width:15px;height:15px}
.cuw-h .hint{font-weight:500;margin-left:4px}
.cuw.folded .cuw-body{display:none}
.cuw-sec small{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:4px}
.cuw-card{display:flex;align-items:center;gap:8px;padding:5px 8px;border:1px solid var(--line);border-radius:10px;cursor:pointer;min-width:0}
.cuw-card .t{min-width:0;display:flex;flex-direction:column}
.cuw-card b{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cuw-card small{font-size:10.5px;color:var(--muted)}
@media (min-width:1100px) {
.cuw{margin-top:0}
}
/* reacciones con emoji */
.chat-re{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;margin:4px -4px -4px 0}
.re-chip i{font-style:normal;font-size:11px;font-weight:700;opacity:.8}
.re-pop button{border:0;background:transparent;font-size:20px;line-height:1;padding:3px 4px;border-radius:999px;cursor:pointer}
.re-pop button:hover{background:var(--surface-2);transform:scale(1.15)}
/* botón micrófono / enviar */
.chat-in .btn.primary.as-mic{background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}
.vhint .ico{width:16px;height:16px;color:var(--danger)}
.chat-plusw{position:relative;flex:none}
.chat-plus.on{background:color-mix(in srgb,var(--accent) 16%,var(--surface));color:var(--accent)}
.chat-plus-pop{position:absolute;left:0;bottom:calc(100% + 8px);display:flex;flex-direction:column;gap:2px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px -12px rgba(0,0,0,.55);z-index:9;min-width:150px}
.chat-plus-pop .ico-btn{display:flex;align-items:center;gap:10px;width:100%;justify-content:flex-start;padding:8px 10px;border-radius:10px;font-size:13px;font-weight:600}
.chat-plus-pop .ico-btn:hover{background:var(--surface-2)}
.chat-sec.folded > :not(.chat-sh){display:none}
.chat-sh .fold-btn{width:22px;height:22px;padding:0;display:inline-grid;place-items:center;border:0;background:transparent;color:var(--muted);cursor:pointer;transition:transform .15s}
/* videollamada grupal */
.gcall-win{position:fixed;inset:12px;z-index:460;display:flex;flex-direction:column;background:#0b1020;color:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.6);overflow:hidden}
.gcall-win[hidden]{display:none}
.gcall-win.min{inset:auto 12px 12px auto;width:280px;height:200px}
.gcall-win.min .gc-b .btn span,.gcall-win.min .gc-h small{display:none}
.gc-h b{font-size:15px}
.gc-h small{opacity:.75}
.gc-h .ico-btn{color:#fff}
.gc-grid{flex:1;display:grid;gap:8px;padding:8px;grid-template-columns:1fr;grid-auto-rows:1fr;min-height:0}
.gc-grid[data-n="2"]{grid-template-columns:1fr 1fr}
.gc-grid[data-n="3"],.gc-grid[data-n="4"]{grid-template-columns:1fr 1fr}
.gc-grid[data-n="5"],.gc-grid[data-n="6"]{grid-template-columns:repeat(3,1fr)}
.gc-grid[data-n="7"]{grid-template-columns:repeat(4,1fr)}
.gc-tile video{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;background:#000}
.gc-tile video[hidden]{display:none}
.gc-av .avatar{width:72px;height:72px}
.gc-n{position:absolute;left:8px;bottom:6px;background:rgba(0,0,0,.5);border-radius:8px;padding:3px 8px;font-size:12px;line-height:1.2;display:flex;flex-direction:column}
.gc-n small{opacity:.75;font-size:10.5px}
.gc-b .btn{color:#fff;background:rgba(255,255,255,.12);border-color:transparent}
.gc-b .btn.off{background:var(--danger)}
.gc-b .btn.danger{background:var(--danger)}
.gc-banner{display:flex;align-items:center;gap:8px;padding:8px 12px;margin:8px 12px 0;border-radius:10px;background:color-mix(in srgb,var(--accent) 14%,var(--surface));font-size:13px}
.gc-banner .ico{width:16px;height:16px;color:var(--accent)}
@media (max-width:640px) {
.gc-grid[data-n="3"],.gc-grid[data-n="4"],.gc-grid[data-n="5"],.gc-grid[data-n="6"],.gc-grid[data-n="7"]{grid-template-columns:1fr 1fr}
}
.dm-list button{border:0;background:transparent;border-radius:10px;padding:8px 10px;font-weight:600;color:var(--ink)}
.dm-list button:hover,.dm-list button:focus-visible{background:color-mix(in srgb,var(--accent) 12%,transparent);box-shadow:none;outline:none}
.dm-list button b{font-weight:700;color:var(--ink)}
.dm-list button .hint{font-weight:500;font-size:11.5px;color:var(--muted)}
/* vistas previas ligeras de la cinta superior */
.sk-bar .pv{position:relative;overflow:hidden}
.sk-bar .pv img,.sk-bar .pv video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sk-bar .pv .pv-play{position:absolute;right:5px;bottom:4px;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:rgba(0,0,0,.5);color:#fff}
.sk-bar .pv .pv-play .ico{width:12px;height:12px}
.sk-bar .pv video~.pv-play{display:none}
.chat-tabs{flex-wrap:wrap}
.chat-tabs button{flex:1 1 40%;font-size:11.5px;padding:4px 6px;min-width:0}
/* 7.21: estado del integrante */
tr.paused{opacity:.82}
.bd-card.bd-pausa{position:relative}
/* 7.20: bandeja de Pendientes */
.notif .it.pend{display:flex;flex-direction:column;gap:3px}
.pd-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pd-k .ico{width:14px;height:14px}
.pd-st{margin-left:auto;font-size:10.5px;font-weight:800;padding:2px 9px;border-radius:999px;white-space:nowrap}
.pd-st.wait{background:#FFF3C4;color:#7a5d10}
.pd-st.ok{background:#E3F6EA;color:#0B6E3F}
.notif .it.pend.done{opacity:.68}
.notif-pop .vp-h .btn.small{padding:4px 9px;font-size:12px}
.nt-c{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 5px;margin-left:5px;border-radius:999px;background:rgba(0,0,0,.14);font-size:10.5px;font-weight:800;vertical-align:middle}
.btn.primary .nt-c{background:rgba(255,255,255,.28)}
.bell .np{position:absolute;top:-6px;left:-8px;background:#F0B429;color:#111;border-radius:999px;font-size:10px;font-weight:800;min-width:16px;height:16px;display:grid;place-items:center;padding:0 4px;box-shadow:0 0 0 2px var(--surface)}
/* 7.19: Módulo de Ventas */
.vt-top{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.vt-big{display:flex;flex-direction:column;gap:2px}
.vt-big b{font-size:34px;line-height:1.05;letter-spacing:-.5px}
.vt-big .hint{font-size:12px}
.vt-kpi{background:var(--surface-2);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.vt-kpi b{font-size:18px}
.vt-kpi small{font-size:11px;opacity:.75;text-transform:uppercase;letter-spacing:.4px}
.vt-kpi.ing b{color:#12a150}
.vt-kpi.egr b{color:#d04a4a}
.vt-kpi.inv b{color:#c08a1a}
.vt-card{position:relative;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;cursor:pointer;transition:transform .12s,box-shadow .12s}
.vt-cover img{width:100%;height:100%;object-fit:cover;display:block}
.vt-body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px;flex:1}
.vt-body b{font-size:15px;line-height:1.25}
.vt-bar i{display:block;height:100%}
.vt-bar i.a{background:#12a150}
.vt-bar i.b{background:#d04a4a}
.vt-net.pos{color:#12a150}
.vt-net.neg{color:#d04a4a}
.vt-mini{display:flex;gap:8px;flex-wrap:wrap;font-size:12px;opacity:.85}
.vt-ask{margin-top:2px;font-size:12px;font-weight:700;color:var(--accent)}
.vt-secs{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 12px}
.vt-mov{display:flex;flex-direction:column;gap:6px}
.vt-row.ing .vt-am{color:#12a150}
.vt-row.egr .vt-am,.vt-row.inv .vt-am{color:#d04a4a}
.vt-row small{display:block;opacity:.75;font-size:11.5px}
.vt-sup{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:6px 0}
.vt-sup button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;border-radius:12px;border:1.5px solid var(--border);background:var(--surface);cursor:pointer;font-size:12.5px;font-weight:600;text-align:center}
.vt-sup button.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}
.vt-res{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.vt-res span{background:var(--surface-2);border-radius:999px;padding:4px 10px;font-size:12px}
.vt-item{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:4px}
.vt-item b{font-size:14px}
.vt-team{display:flex;gap:6px;flex-wrap:wrap}
.vt-team span{background:var(--surface-2);border-radius:999px;padding:4px 10px;font-size:12px;display:inline-flex;gap:6px;align-items:center}
.vt-cklist .ck{padding:4px 2px}
.vt-hd{display:flex;gap:12px;align-items:flex-start;margin-bottom:10px}
@media (max-width:640px) {
.vt-big b{font-size:28px}
.vt-cklist .ck{padding:4px 2px}
.vt-hd{flex-direction:column}
}
.bk-list{max-height:60vh;overflow:auto;display:flex;flex-direction:column;gap:4px}
.bk-it b{display:block;font-size:13px}
.bk-it small{color:var(--muted);font-size:11px}
.bk-months{display:flex;flex-direction:column;gap:6px}
.bk-m b{display:block}
.bk-m small{color:var(--muted);font-size:11px}
/* 7.36: Choir Teams: Especial = los mejores de 1 y 2 */
.team.t3 .team-h{background:linear-gradient(90deg,color-mix(in srgb,#F0B429 22%,var(--surface)),var(--surface))}
.member .tg{display:inline-block;font-size:9.5px;font-weight:800;border-radius:999px;padding:1px 6px;margin-left:4px;background:var(--surface-2);color:var(--muted);vertical-align:middle}
.member .tg.e{background:#F0B429;color:#111}
.teams-opts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0 10px}
.teams-opts input[type=number]{width:64px}
/* 7.37: Propuestas — una sola columna, secciones plegables y podio del mes */
.prop-wrap{display:flex;flex-direction:column;gap:12px;max-width:880px;margin:0 auto}
.prop-hero .cyc{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;background:color-mix(in srgb,var(--accent) 22%,var(--surface));color:var(--ink);border-radius:999px;padding:3px 10px}
.prop-hero .go{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;align-items:center}
.pmeter{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12.5px}
.pmeter .bar{flex:1;min-width:90px;height:8px;border-radius:999px;background:color-mix(in srgb,var(--ink) 14%,transparent);overflow:hidden}
.pmeter .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--gold,#F0B429));border-radius:999px;transition:width .4s}
/* podio del mes en curso */
.ppod{display:flex;gap:8px;align-items:flex-end;justify-content:center;flex-wrap:nowrap;margin-top:10px}
.ppod .pp{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;background:0;border:0;color:inherit;font:inherit;cursor:pointer;padding:0}
.ppod .pp .cv{width:100%;aspect-ratio:1;max-width:96px;border-radius:12px;overflow:hidden;background:var(--surface-2);display:grid;place-items:center;font-size:24px;box-shadow:var(--shadow)}
.ppod .pp .cv img{width:100%;height:100%;object-fit:cover}
.ppod .pp b{font-size:12px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ppod .pp small{color:var(--muted);font-size:10.5px}
.pacc>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:12px 14px;font-weight:700;font-size:14.5px;user-select:none}
.pacc>summary::-webkit-details-marker{display:none}
.pacc>summary .ico{width:18px;height:18px;color:var(--accent);flex:none}
.pacc>summary .n{font-style:normal;font-size:11px;font-weight:800;background:var(--accent);color:var(--accent-ink,#fff);border-radius:999px;min-width:20px;height:20px;line-height:20px;text-align:center;padding:0 6px;flex:none}
.pacc>summary .n.q{background:var(--danger)}
.pacc>summary .cx{margin-left:auto;color:var(--muted);transition:transform .2s;flex:none}
.pacc[open]>summary .cx{transform:rotate(90deg)}
.pacc>summary .hint{font-weight:400}
.pacc .pbody{padding:0 12px 12px;display:flex;flex-direction:column;gap:10px}
/* tarjetas de votación compactas */
.vote .vh{display:flex;gap:10px;align-items:center}
.vote .vt{flex:1;min-width:0}
.vote .vt b{display:block;font-size:14px;line-height:1.25}
.vote .vt small{display:block;color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vote .vmd{margin-right:4px}
.vote .vacts{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.vote.voted{border-color:var(--accent)}
.vote.voted-no{border-color:color-mix(in srgb,var(--danger) 50%,var(--line))}
.vote .cover{position:relative;width:52px;height:52px;flex:none;border-radius:10px;overflow:hidden;background:var(--surface-2);display:grid;place-items:center;font-size:20px;cursor:pointer}
.vote .cover img{width:100%;height:100%;object-fit:cover}
.vote .cover .pl{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.35);color:#fff;font-size:16px;opacity:0;transition:opacity .15s}
.vote .cover:hover .pl{opacity:1}
/* propuestas de meses pasados: apagadas, con botón de reintento */
.prop.old{opacity:.62;filter:saturate(.5)}
.prop.old:hover{opacity:1;filter:none}
.prop.old .st{background:var(--surface-2);color:var(--muted)}
/* histórico de ganadoras */
.phist{display:flex;flex-direction:column;gap:8px}
.phrow .md{font-size:20px;flex:none;width:26px;text-align:center}
.phrow .t{flex:1;min-width:0}
.phrow .t b{display:block;font-size:13.5px}
.phrow .t small{color:var(--muted);font-size:11.5px}
.phmes{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:6px 0 2px}
.pmedals{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
@media (max-width:640px) {
.pacc>summary{padding:11px 12px;font-size:14px}
.vote .cover{width:46px;height:46px}
.vote .vacts .btn{flex:1 1 auto;justify-content:center}
.ppod .pp .cv{max-width:none}
}
/* 7.38: menú del día, insumos y proveedores */
.vt-menu{display:flex;flex-direction:column;gap:6px}
.vt-mrow .n{flex:1;min-width:0}
.vt-mrow .n b{display:block;font-size:13.5px}
.vt-mrow .n small{color:var(--muted);font-size:11px}
.vt-mrow .p{font-weight:800;font-size:14px;white-space:nowrap}
.vt-pick{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.vt-pk b{font-weight:700}
.vt-pk small{color:var(--muted)}
.vt-erow{display:grid;grid-template-columns:1fr 92px 32px;gap:6px;margin-bottom:6px}
.vt-erow input{min-width:0}
.vt-ins{display:flex;flex-direction:column;gap:6px}
.vt-irow{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:7px 10px;background:var(--surface);flex-wrap:wrap}
.vt-irow .t{flex:1;min-width:120px}
.vt-irow .t b{display:block;font-size:13.5px}
.vt-irow .t small{color:var(--muted);font-size:11px}
.vt-prov{display:flex;flex-direction:column;gap:10px}
.vt-pgrp>b{display:block;margin-bottom:6px}
.vt-ptab{display:flex;flex-direction:column;gap:4px}
.vt-pr .pv{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vt-showgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px 10px;margin-top:6px}
.vt-lockbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;border:1px dashed var(--line);border-radius:12px;padding:10px 12px;margin-bottom:12px;background:var(--surface-2)}
.vt-lockbar b{font-size:13.5px}
/* turnos y actividades */
.vt-turnos{display:flex;flex-direction:column;gap:6px}
.vt-turno .tb b{display:block;font-size:13.5px}
.vt-turno .who{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.vt-turno .who span{font-size:11px;background:var(--surface-2);border-radius:999px;padding:2px 8px}
.vt-turno .who span.me{background:var(--accent);color:var(--accent-ink,#fff);font-weight:700}
.vt-tacts{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
/* cobro del carrito */
.vt-carr{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}
.vt-carr.ok{border-color:var(--green,#22C267);background:color-mix(in srgb,var(--green,#22C267) 10%,var(--surface))}
.vt-carr.no{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--surface))}
/* ganadores con foto y medalla */
.pwin .av{border-radius:50%;overflow:hidden;background:var(--surface-2);display:grid;place-items:center}
.pwin .md{position:absolute;right:-4px;bottom:-4px;border-radius:50%;display:grid;place-items:center;background:var(--surface);box-shadow:0 2px 8px rgba(0,0,0,.35);border:2px solid var(--surface)}
.pwin.p2 .av{outline:3px solid #C7CDD6;outline-offset:2px}
.ppod .pp{gap:6px}
.ppod .pp .who{font-size:11px;color:var(--muted);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
/* 7.40: la portada de la venta ya no se sale de su caja ni tapa el título */
.vt-cover img{width:100%;height:100%;object-fit:cover;display:block}
.vt-hd .vt-cover img{border-radius:12px}
/* movimientos del fondo dentro de la tarjeta de cada área */
.vt-amov{margin-top:10px;border-top:1px solid var(--line)}
.vt-amov>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:9px 2px 4px;font-size:13px;font-weight:700;user-select:none}
.vt-amov>summary::-webkit-details-marker{display:none}
.vt-amov>summary .ico{width:16px;height:16px;color:var(--accent);flex:none}
.vt-amov>summary i{font-style:normal;font-size:11px;font-weight:800;background:var(--surface-2);color:var(--muted);border-radius:999px;min-width:20px;height:19px;line-height:19px;text-align:center;padding:0 6px}
.vt-amov>summary .cx{margin-left:auto;color:var(--muted);transition:transform .2s}
.vt-amov[open]>summary .cx{transform:rotate(90deg)}
.vt-amovb{padding:2px 0 8px;display:flex;flex-direction:column;gap:8px}
.vt-amovbtn{display:flex;gap:6px;flex-wrap:wrap}
/* 7.40: podio del mes — portada de la canción, medalla encima y quién la propuso */
.ppod{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:start;margin-top:12px;flex-wrap:nowrap}
.ppod .pp{flex:none;width:auto;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;background:0;border:0;color:inherit;font:inherit;cursor:pointer;padding:0;min-width:0}
.ppod .pp .cv{position:relative;width:100%;max-width:none;aspect-ratio:1;border-radius:14px;overflow:visible;background:var(--surface-2);display:grid;place-items:center;font-size:26px;box-shadow:var(--shadow)}
.ppod .pp .cv img{width:100%;height:100%;object-fit:cover;border-radius:14px}
.ppod .pp b{font-size:12.5px;line-height:1.22;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;width:100%}
.ppod .pp .by{display:flex;align-items:center;justify-content:center;gap:5px;max-width:100%;min-width:0;font-size:11px;color:var(--muted)}
.ppod .pp .by img{width:20px;height:20px;border-radius:50%;object-fit:cover;flex:none}
.ppod .pp .by i{font-style:normal;font-size:13px}
.ppod .pp .by span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ppod .pp small{color:var(--muted);font-size:10.5px;font-weight:700}
/* ganadoras de meses pasados */
.phpic{position:relative;flex:none;width:56px;height:56px}
.phpic .cv{width:56px;height:56px;border-radius:12px;overflow:hidden;background:var(--surface-2);display:grid;place-items:center;font-size:22px}
.phpic .cv img{width:100%;height:100%;object-fit:cover}
.phpic .md{position:absolute;left:-6px;top:-6px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:14px;background:var(--surface);box-shadow:0 2px 6px rgba(0,0,0,.35)}
.phpic .av{position:absolute;right:-5px;bottom:-5px;width:24px;height:24px;border-radius:50%;object-fit:cover;border:2px solid var(--surface);box-shadow:0 2px 6px rgba(0,0,0,.3)}
@media (max-width:640px) {
.ppod .pp b{font-size:11.5px}
}
.vt-card>.vt-cover>img,.vt-hd>.vt-cover>img,.vt-cover>img{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;min-height:0!important;object-fit:cover!important;display:block!important;position:static!important}
/* aviso de ventas en Borrador */
.vt-draftnote{margin-bottom:12px;border-left:4px solid var(--gold,#F0B429)}
.vt-draftlist{display:flex;flex-direction:column;gap:6px}
.vt-draftrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface-2)}
.vt-draftrow .t{flex:1;min-width:120px}
.vt-draftrow .t b{display:block;font-size:13.5px}
.vt-draftrow .t small{color:var(--muted);font-size:11.5px}
.chat-in .chat-bar{flex:1;min-width:0;display:flex;align-items:flex-end;gap:2px;background:var(--surface-2);border:1px solid var(--line);border-radius:24px;padding:2px 4px;transition:border-color .15s,box-shadow .15s}
.chat-in .chat-bar:focus-within{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}
.chat-in .chat-bar textarea{flex:1;min-width:0;border:0!important;background:transparent!important;box-shadow:none!important;outline:0!important;border-radius:0;padding:10px 6px;max-height:120px;color:var(--ink);font:inherit;resize:none}
.chat-in .chat-bar textarea{overflow-y:auto;scrollbar-width:thin}
.chat-in .chat-bar>.ico-btn,.chat-in .chat-bar .chat-plusw>.ico-btn{flex:none;width:36px;height:36px;padding:0;border-radius:50%;display:grid;place-items:center;color:var(--muted);background:transparent;border:0;transition:background .15s,color .15s}
.chat-in .chat-bar>.ico-btn:hover,.chat-in .chat-bar .chat-plusw>.ico-btn:hover{background:color-mix(in srgb,var(--ink) 10%,transparent);color:var(--ink)}
.chat-in .chat-bar .chat-plus.on{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}
.chat-in .chat-plusw{position:relative;flex:none;display:flex;align-items:flex-end}
/* el menú de adjuntar sale por encima de la barra */
.chat-in .chat-plus-pop{bottom:calc(100% + 10px)}
/* 7.45: etiquetas de tema filtradas, bien contrastadas */
.tagbar .tag[aria-pressed="true"]{background:var(--accent)!important;color:var(--accent-ink,#fff)!important;border-color:var(--accent)!important;font-weight:800;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}
.sem-nochip .ico{width:14px;height:14px}
.sem-optbox{border-top:1px dashed var(--line);margin-top:8px}
.sem-optbox>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;justify-content:space-between;flex-wrap:wrap;padding:11px 2px;font-weight:700;font-size:13.5px;color:var(--accent)}
.sem-optbox>summary::-webkit-details-marker{display:none}
.sem-optbox>summary small{color:var(--muted);font-weight:400}
.sem-optbox[open]>summary{border-bottom:1px dashed var(--line);margin-bottom:8px}
/* eliminar mensaje */
.cd-opts{display:flex;flex-direction:column;gap:8px}
.cd-prev small{display:block;color:var(--muted);font-size:11px;margin-bottom:2px}
.chat-repbar .crb{display:flex;gap:8px;align-items:center;background:var(--surface-2);border-left:3px solid var(--accent);border-radius:10px;padding:6px 8px}
.chat-repbar .crb .t b{display:block;font-size:12px;color:var(--accent)}
.chat-repbar .crb .t small{display:block;color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-quote{display:block;width:100%;text-align:left;border:0;background:color-mix(in srgb,var(--ink) 8%,transparent);border-left:3px solid var(--accent);border-radius:8px;padding:5px 8px;margin:0 0 5px;cursor:pointer;font:inherit;color:inherit}
.chat-quote b{display:block;font-size:11.5px;color:var(--accent)}
.chat-quote small{display:block;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.md-why-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 10px;margin-bottom:8px;border-radius:10px;background:var(--bg2,rgba(127,127,127,.08));border-left:4px solid var(--danger,#ef4444)}
.md-why-row.ok{border-left-color:var(--ok,#22c55e)}
.md-why-row.flash{animation:mdWhyFlash 1.1s ease 2}
.md-why-day{min-width:118px}
.md-why-in{flex:1;min-width:190px}
@media (max-width:560px) {
.md-why-day{min-width:100%}
.md-why-in{min-width:100%}
}
/* 7.48 · contador de reproducciones y nota del top de cursos */
.plays-b{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:700;color:var(--muted);background:var(--bg2,rgba(127,127,127,.12));vertical-align:middle;white-space:nowrap}
.plays-b .ico{width:13px;height:13px}
.plays-b b{font-weight:800;color:var(--text)}
.plays-c:empty{display:none}
.cu-topnote{margin:0 0 10px;padding:8px 12px;border-radius:10px;background:var(--bg2,rgba(127,127,127,.12));color:var(--muted);font-size:13px;display:flex;align-items:center;gap:6px}
.cu-topnote b{color:var(--text)}
/* 7.49 · Áreas técnicas (Team Audio) */
#panel-audio .au-head{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.au-areas,.au-views{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.au-areas .chip{cursor:pointer;border:1px solid transparent}
.au-areas .chip.on{background:var(--blue);color:#fff;font-weight:800}
.au-sum{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.au-svc-h{display:flex;gap:12px;align-items:center;width:100%;padding:10px 14px;background:none;border:0;color:inherit;text-align:left;cursor:pointer;flex-wrap:wrap}
.au-svc.open .au-svc-h{background:var(--bg2,rgba(127,127,127,.1))}
.au-d{display:flex;flex-direction:column;min-width:140px}
.au-d small{color:var(--muted);font-size:11px}
.au-cov{display:flex;gap:4px;flex-wrap:wrap;flex:1}
.au-cov .chip{font-size:11px}
.au-n{display:flex;flex-direction:column;align-items:flex-end;min-width:110px;font-size:12px;color:var(--muted)}
.au-n small{font-size:10px;color:var(--danger,#ef4444)}
.au-tbl tr.au-on td{background:color-mix(in srgb, var(--blue) 10%, transparent)}
.au-ck input{width:20px;height:20px;cursor:pointer}
.au-card{display:flex;flex-direction:column;gap:8px}
.au-p{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.au-acts{display:flex;gap:4px;flex-wrap:wrap}
.au-acts .chip{font-size:11px}
.au-meds{display:flex;gap:6px;flex-wrap:wrap}
.au-med .ico{width:13px;height:13px}
.au-next{margin-top:2px;color:var(--muted)}
.au-bar{height:6px;border-radius:999px;background:var(--bg2,rgba(127,127,127,.2));overflow:hidden;margin-top:4px}
.au-bar i{display:block;height:100%;background:var(--blue)}
.au-ev-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:7px 0;border-bottom:1px solid var(--line,rgba(127,127,127,.18))}
.au-ev-l{flex:1;min-width:170px}
.au-star.on{color:#f5b301}
.au-lvl.on.l1{background:var(--danger,#ef4444);border-color:transparent;color:#fff}
.au-lvl.on.l2{background:#f5b301;border-color:transparent;color:#4a3500}
.au-lvl.on.l3{background:var(--ok,#22c55e);border-color:transparent;color:#05330f}
.au-sm i{color:var(--line,rgba(127,127,127,.35));font-style:normal}
.chip.lv1{background:var(--danger-bg,rgba(239,68,68,.15));color:var(--danger,#ef4444)}
.chip.lv2{background:rgba(245,179,1,.18);color:#a67c00}
.chip.lv3{background:rgba(34,197,94,.18);color:var(--ok,#22c55e)}
.au-note-row td{padding-top:0;color:var(--muted)}
.au-f{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.au-f>span{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.au-line{display:flex;gap:6px;align-items:center;margin-bottom:6px}
.au-line input[data-acl]{flex:1;min-width:140px}
.au-line3 input[type=number]{width:78px}
.au-radios{display:flex;gap:16px;flex-wrap:wrap}
.au-radios label{display:inline-flex;gap:6px;align-items:center;cursor:pointer}
#panel-autoeval .au-note{border-left:4px solid var(--blue)}
@media (max-width:700px) {
.au-d{min-width:100%}
.au-n{align-items:flex-start;min-width:0}
}
/* 7.52 · Monitor de voz */
.sh-h{margin:14px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.sh-step .i{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.sh-step .i svg{width:17px;height:17px}
.sh-step p{margin:2px 0 0;font-size:12.5px;line-height:1.45;color:var(--muted)}
.sh-why{margin:0;padding-left:18px;display:grid;gap:6px;font-size:13px;line-height:1.45}
.sh-song.ok{border-color:color-mix(in srgb,var(--green,#22C267) 55%,transparent);background:color-mix(in srgb,var(--green,#22C267) 8%,transparent)}
.sh-st{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;margin-bottom:6px}
.sh-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:4px}
.sh-chip.on{color:var(--green-ink,#0d8a45);border-color:color-mix(in srgb,var(--green,#22C267) 55%,transparent);cursor:default}
.sh-chip.ready.on{color:var(--green-ink,#0d8a45)}
.sh-chip.ready.go{cursor:pointer;color:#fff;background:var(--accent);border-color:var(--accent)}
#panel-pitch{--pm-bg:#0b0d13;--pm-fg:#e8eaf0}
:root:not([data-theme="dark"]) #panel-pitch{--pm-bg:#11131b;--pm-fg:#eef1f6}
.pm-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.pm-f label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}
.pm-f select{max-width:210px}
.pm-idle .ico{width:40px;height:40px;color:#ffe600;margin-bottom:8px}
.pm-idle b{display:block;color:#fff;font-size:17px;margin-bottom:6px}
.pm-idle .hint{color:#aab2c0;max-width:420px;margin:0 auto}
.pm-song{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 12px;margin-bottom:10px;border-radius:12px;background:var(--bg2,rgba(127,127,127,.12))}
.pm-sname{display:flex;flex-direction:column;min-width:130px}
.pm-sname small{color:var(--muted);font-size:11px}
.pm-tip{margin-top:10px}
.pm-pick{display:flex;flex-direction:column;gap:4px;max-height:52vh;overflow:auto}
.pm-pk{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:8px 10px;border:0;border-radius:9px;background:none;color:inherit;text-align:left;cursor:pointer}
.pm-pk small{color:var(--muted);font-size:11px}
.pm-grp{margin-bottom:12px}
.pm-grp>b{display:flex;gap:6px;align-items:center;margin-bottom:4px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.pm-cfg{display:flex;flex-direction:column;gap:14px}
.pm-r{display:flex;flex-direction:column;gap:4px}
.pm-r>span{font-weight:700;font-size:13px;display:flex;justify-content:space-between;gap:10px}
.pm-r small{color:var(--muted)}
.pm-cols{display:flex;flex-direction:column;gap:6px}
.pm-cols>b{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.pm-c input[type=color]{width:56px;height:28px;padding:0;border:0;background:none;cursor:pointer}
@media (max-width:700px) {
.pm-f select{max-width:130px}
}
.hl-spin{width:18px;height:18px;border-radius:50%;border:3px solid var(--line,rgba(127,127,127,.3));border-top-color:var(--blue);animation:hlspin .8s linear infinite;flex:none}
.pm-range{margin-bottom:10px;border-left:4px solid #ffe600}
.pm-rh{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.pm-rsex,.pm-ract{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}
.pm-rbar{height:10px;border-radius:999px;background:var(--bg2,rgba(127,127,127,.2));overflow:hidden;margin:6px 0}
.pm-rbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#ffe600,#22c55e);transition:width .1s linear}
.pm-rmsg{margin:0 0 8px;padding:8px 10px;border-radius:9px;background:rgba(245,179,1,.15);color:#c98a00;font-weight:600}
.pm-rres b{font-size:18px}
.au-me-av .avatar{width:56px;height:56px;border-radius:50%;object-fit:cover}
.au-me-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.au-me-b>b{font-size:17px}
.au-me-l{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.au-me-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:5px 8px;border-radius:9px;background:var(--bg2,rgba(127,127,127,.1))}
.au-me-row.past{opacity:.6}
.au-me-row small{margin-left:auto;color:var(--muted);font-weight:700}
.au-svc.past{opacity:.85}
.au-who .avatar{width:26px;height:26px;border-radius:50%;object-fit:cover}
.au-tbl tr.au-mine td.name{font-weight:800}
.au-sem-l{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.au-sem-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.au-sem-row small{margin-left:auto}
/* 7.55 · foto de perfil desde Banda / Usuarios */
.av-hist{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:8px 0}
.av-h img{width:40px;height:40px;border-radius:50%;object-fit:cover}
.uav-cur{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.uav-cur .avatar{width:64px;height:64px;border-radius:50%;object-fit:cover}
.uav-pk img{width:100%;height:100%;object-fit:cover;border-radius:8px}
.bdc-bn{height:60px;border-radius:12px 12px 0 0;margin:-16px -16px 16px}
.bdc-left,.bdc-right{min-width:0}
.bdc-shot.on{opacity:1;transform:scale(1)}
.bdc-idt{min-width:0}
.bdc-idt b{display:block;color:#fff;font-size:20px;line-height:1.15;text-shadow:0 2px 14px rgba(0,0,0,.65)}
.bdc-idt .hint{color:#c9d0de}
.bdc-idt .bd-title{display:block;font-size:12px;color:#ffe08a;font-weight:700}
.bdc-arw:hover{background:rgba(0,0,0,.7)}
.bdc-arw.l{left:8px}
.bdc-arw.r{right:8px}
.bdc-dots button{flex:1;height:3px;border-radius:999px;border:0;padding:0;background:rgba(255,255,255,.32);cursor:pointer;transition:background .25s}
.bdc-dots button.on{background:#fff}
.bdc-none .ico{width:34px;height:34px}
.bdc-tbar{display:flex;gap:8px;align-items:center;margin:14px 0 8px}
.bdc-th img{width:100%;height:100%;object-fit:cover}
.bdc-th.on{border-color:var(--blue)}
.bdc-tip{margin-top:8px;font-size:11.5px}
.bdc-rolls{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.bdc-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.bdc-stat{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 4px;border-radius:12px;background:var(--bg2,rgba(127,127,127,.1))}
.bdc-stat .i{color:var(--muted);line-height:0}
.bdc-stat .ico{width:16px;height:16px}
.bdc-stat b{font-size:17px}
.bdc-stat small{font-size:10px;color:var(--muted);text-align:center;line-height:1.1}
.bdc-menu{position:fixed;z-index:9999;min-width:228px;padding:6px;display:flex;flex-direction:column;gap:2px;box-shadow:0 18px 46px rgba(0,0,0,.45)}
.bdc-menu button{display:flex;gap:10px;align-items:center;width:100%;padding:9px 10px;border:0;border-radius:9px;background:none;color:inherit;font-size:14px;text-align:left;cursor:pointer}
.bdc-menu button:hover{background:var(--bg2,rgba(127,127,127,.14))}
.bdc-menu button.danger{color:var(--danger,#ef4444)}
.bdc-menu .ico{width:17px;height:17px;flex:none}
/* 7.57 · barra del monitor con iconos, grabación y calibración */
#panel-pitch .pm-bar{gap:6px}
.pm-ib{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:74px;padding:8px 10px;border:1px solid var(--line,rgba(127,127,127,.25));border-radius:13px;background:var(--bg2,rgba(127,127,127,.08));color:inherit;cursor:pointer;font-weight:700;line-height:1.1}
.pm-ib span{font-size:10.5px;text-align:center;max-width:86px}
.pm-ib .ico{width:21px;height:21px}
.pm-ib:hover{background:var(--bg2,rgba(127,127,127,.18))}
.pm-ib.on{border-color:transparent;background:var(--blue);color:#fff}
.pm-rec .ico{color:#ef4444}
.pm-ib.pm-rec.on{background:#ef4444;color:#fff}
.pm-ib.pm-grab.on{background:#ef4444;color:#fff;animation:pmBlink 1.4s ease-in-out infinite}
.pm-ib.pm-snow.on{background:#2EE6D6;color:#053b38}
.pm-ib.pm-tes.on,.pm-ib.pm-cal-b.on{background:#ffe600;color:#3a2f00}
.pm-sep{width:1px;align-self:stretch;background:var(--line,rgba(127,127,127,.25));margin:2px 4px}
.pm-tape{border-left:4px solid #ef4444;margin-bottom:10px}
.pm-tstats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}
.pm-ts{display:flex;flex-direction:column;align-items:center;padding:8px;border-radius:12px;background:var(--bg2,rgba(127,127,127,.1))}
.pm-ts b{font-size:20px}
.pm-ts small{font-size:10.5px;color:var(--muted)}
.pm-ts.ok b{color:#22c55e}
.pm-ts.mid b{color:#f5b301}
.pm-ts.bad b{color:#ef4444}
@media (max-width:700px) {
.pm-ib{min-width:62px;padding:7px 6px}
.pm-ib span{font-size:9.5px;max-width:64px}
}
/* 7.58 · elegir audio por grupos y controles de la revisión */
.pm-grps{display:flex;flex-direction:column;gap:6px;max-height:56vh;overflow:auto}
.pm-grp2.open{border-color:var(--blue)}
.pm-grp-h .i{display:inline-flex;color:var(--muted)}
.pm-grp-h b{font-size:13px}
.pm-grp-h small{color:var(--muted);font-size:11px}
.pm-grp-h .ch{margin-left:auto;color:var(--muted)}
.pm-grp2.off{opacity:.45}
.pm-grp2.off small{font-style:italic}
.pm-grp-l{display:flex;flex-direction:column;padding:2px 6px 8px}
.pm-ab{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap;padding:3px 6px;border-radius:10px;background:var(--bg2,rgba(127,127,127,.1))}
.pm-ab .btn.on{background:#3D82D0;color:#fff}
.pm-ab .hint{font-size:11px;white-space:nowrap}
/* 7.59 · chat: no leídos y filtros compactos */
.chat-tabs.mini{display:flex;gap:4px;padding:4px;margin-bottom:6px}
.chat-tabs.mini button{position:relative;flex:1;display:grid;place-items:center;padding:7px 0;border-radius:9px;min-width:0}
.chat-tabs.mini button .ico{width:18px;height:18px}
.chat-tabs.mini button .n{position:absolute;top:1px;right:6px;min-width:15px;height:15px;padding:0 3px;border-radius:999px;background:var(--danger,#ef4444);color:#fff;font-size:9.5px;font-weight:800;display:grid;place-items:center;font-style:normal}
.chat-ico-w{position:relative;display:inline-flex;flex:none}
.chat-ico-w .n{position:absolute;top:-4px;right:-5px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--danger,#ef4444);color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;font-style:normal;box-shadow:0 0 0 2px var(--surface)}
.chat-ch.has-un b{font-weight:800}
.chat-sh .sec-n{min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--danger,#ef4444);color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;font-style:normal;margin-left:6px}
.chat-unmsg{margin:0}
/* 7.61 · selección múltiple en Integrantes y barra de Usuarios con iconos */
.tbl .col-sel{width:30px;text-align:center;padding-left:6px;padding-right:0}
.tbl .col-sel input{width:17px;height:17px;cursor:pointer}
.pe-bulk{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px;padding:8px 12px;border-radius:12px;background:var(--bg2,rgba(127,127,127,.12));border:1px solid var(--line,rgba(127,127,127,.25))}
.pe-bulk select{max-width:210px}
.us-bar .ap-tabs{display:flex;gap:6px;flex-wrap:wrap}
.us-bar .rep-ib.on{background:var(--blue);color:#fff;border-color:transparent}
@media (max-width:700px) {
.pe-bulk select{max-width:150px}
}
/* 7.68 · marcos con figuras, banners animados y nombres con efecto */
.ce-dlg{max-width:min(980px,96vw)!important}
.ce-tplbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 10px}
.ce-tpl{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);cursor:pointer;font:inherit}
.ce-tpl small{font-weight:700;font-size:12px;text-align:center}
.ce-frprev{display:flex;flex-direction:column;align-items:center;gap:14px;padding:18px 10px}
.ce-fp{min-width:170px;display:flex;justify-content:center;align-items:flex-start;position:sticky;top:0;z-index:2;align-self:flex-start}
.ce-bnprev{display:grid;gap:12px;width:100%;max-width:300px}
.fx-box{margin-top:12px;border:1px solid var(--line);border-radius:14px;padding:10px;background:var(--surface-2)}
.fx-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.fx-fig{display:flex;flex-direction:column;align-items:center;gap:2px;width:78px;border:1.5px dashed var(--line);border-radius:10px;background:var(--bg);color:var(--ink);padding:6px 4px;cursor:pointer;font:inherit}
.fx-fig small{font-size:10.5px;line-height:1.15;text-align:center}
.fx-ctl{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;min-width:0}
.fx-ctl .sel{width:auto;max-width:170px;padding:5px 8px;font-size:13px}
.fx-r input[type=range]{width:84px}
.fx-txt{flex:1 1 220px;min-width:160px;border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--bg);color:var(--ink)}
.fx-cols input[type=color]{width:28px;height:26px;padding:0;border:1px solid var(--line);border-radius:6px;background:none}
.fx-acts{display:flex;flex-direction:column;gap:2px}
.fx-acts .btn{padding:2px 7px;min-height:0}
.fx-pick{border:1px solid var(--accent);border-radius:12px;background:var(--surface);padding:8px;margin-bottom:8px}
.fx-pg{display:flex;gap:4px;flex-wrap:wrap;align-items:center;margin-bottom:6px}
.fx-pgrid button{display:flex;flex-direction:column;align-items:center;gap:3px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);padding:6px 3px;cursor:pointer;font:inherit}
.fx-pgrid button:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg))}
.fx-pgrid small{font-size:10.5px;line-height:1.15;text-align:center}
@media (max-width:640px) {
.fx-acts{flex-direction:row}
.fx-fig{width:100%;flex-direction:row;justify-content:center}
}
/* placa del nombre en Banda */
.bd-card .bd-body b.bd-nmp,.bd-nmp{display:inline-flex;align-items:center;max-width:100%;padding:3px 12px;border-radius:999px;font-size:14px;line-height:1.25;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.15),0 2px 8px rgba(0,0,0,.18)}
.bd-card .bd-bn{width:10px!important;background-size:cover!important}
/* efectos del nombre */
.nfx{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;padding:0 .08em}
.bdc-idt b .nfx{font-size:inherit}
body.fx-quieto .nfx{animation:none!important}
.chat-unbar{margin:6px 6px 10px;padding:10px;border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,#ef4444 16%,var(--surface-2)),var(--surface-2));border:1px solid color-mix(in srgb,#ef4444 40%,transparent);animation:cubIn .35s ease}
.cub-h{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.cub-h b{font-size:13px;display:flex;align-items:center;gap:6px}
.cub-h b svg{color:#ef4444}
.cub-all{margin-left:auto;border:none;background:none;color:var(--accent);font-size:11.5px;font-weight:700;cursor:pointer;padding:2px 4px}
.cub-all:hover{text-decoration:underline}
.cub-list{display:flex;flex-direction:column;gap:4px}
.cub-it .t{flex:1;min-width:0;display:flex;flex-direction:column}
.cub-it .t b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cub-it .t small{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cub-it .n{position:static!important;flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;font-style:normal}
.cub-it .avatar,.cub-it .chat-hash,.cub-it img{width:30px!important;height:30px!important;flex:none}
.chat-ch.has-un .t b{color:var(--ink);font-weight:800}
.chat-ch.has-un .t small{color:var(--ink)}
#panel-chat .chat-side.rail-mode .chat-unbar-w{display:none}
@media (max-width:800px) {
#panel-chat .chat:not(.rail-open) .chat-unbar-w,#panel-chat .chat:not(.rail-open) .chat-tabs{display:none}
}
@media (min-width:641px) {
/* ventanas de chat más cómodas (escritorio) */
.cwin{width:370px;height:min(72vh,520px)}
}
.cw-h .ico-btn{width:30px;height:30px;flex:none}
.cw-h .t b{font-size:14px}
.cwin .chat-bar textarea::placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cwin .chat-bar textarea{min-width:0}
.chat-meta{flex-wrap:wrap;row-gap:0}
.chat-meta b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cwin .chat-meta b,.chat-pop .chat-meta b{max-width:170px}
.cw-h .cw-back{flex:none;white-space:nowrap;width:auto!important;padding:0 6px 0 2px}
.cw-h .cw-back span{display:inline-block}
/* ---- 7.75.3 · Eventos ---- */
@keyframes evIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes evGlow{0%,100%{opacity:.55}50%{opacity:.9}}
#panel-eventos .ev-hero {
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,1fr);
  gap:0;
  border-radius:18px;
  overflow:hidden;
  background:var(--surface);
  border:1px solid color-mix(in srgb,var(--evc) 35%,var(--line));
  box-shadow:0 14px 40px -18px color-mix(in srgb,var(--evc) 70%,transparent);
  animation:evIn .45s ease both;
  position:relative;
  margin-bottom:16px;
}
#panel-eventos .ev-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--evc) 22%,transparent),transparent 60%);pointer-events:none;animation:evGlow 5s ease-in-out infinite}
#panel-eventos .ev-hero .ev-viewer{border-radius:0;margin:0;aspect-ratio:16/9;min-height:0;border:0;cursor:zoom-in}
#panel-eventos .ev-viewer.noimg{display:grid;place-items:center;background:linear-gradient(135deg,var(--evc),color-mix(in srgb,var(--evc) 45%,#000))}
.ev-side{position:relative;padding:20px 22px;display:flex;flex-direction:column;gap:8px;min-width:0}
.ev-side h2{margin:0;font-size:clamp(20px,2.2vw,28px);line-height:1.15;overflow-wrap:anywhere}
.ev-when-l{margin:0;color:var(--muted);font-size:13.5px;display:flex;gap:6px;align-items:center}
.ev-when-l:first-letter{text-transform:uppercase}
.ev-side-b{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:6px}
.ev-side-b .btn.primary{background:var(--evc);border-color:var(--evc);color:var(--evfg,#fff)}
.ev-side .ev-dots{position:static;display:flex;gap:6px;flex-wrap:wrap;margin-top:4px;transform:none}
.ev-side .ev-dot[aria-selected="true"]{width:26px;background:var(--evc)}
/* cuenta regresiva */
.evcd{display:flex;gap:8px;margin:6px 0 2px}
.evcd-t{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;padding:8px 4px 6px;border-radius:12px;background:color-mix(in srgb,var(--evc) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--evc) 30%,transparent);overflow:hidden}
.evcd-t b{font:800 22px/1 var(--display);font-variant-numeric:tabular-nums;color:var(--evc)}
.evcd-t b.tk{animation:evTick .35s ease}
.evcd-t small{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.evcd.big .evcd-t b{font-size:clamp(24px,2.6vw,34px)}
.evcd.big .evcd-t:first-child b,.evcd.big .evcd-t:first-child small{color:var(--evfg,#fff)}
.evcd-now{padding:8px 14px;border-radius:99px;background:var(--evc);color:#fff;font-weight:800;animation:evPulse 1.6s infinite}
.evg{margin-bottom:10px}
.evg-t{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:10px 2px 6px}
.evtk{--evfg:#fff;display:flex;align-items:stretch;gap:0;border-radius:14px;background:var(--surface);border:1px solid var(--line);margin-bottom:8px;cursor:pointer;overflow:hidden;animation:evIn .4s ease both;transition:transform .15s,box-shadow .15s}
.evg .evtk:nth-child(n+5){animation-delay:.16s}
.evtk:hover{transform:translateY(-2px);box-shadow:0 10px 24px -14px color-mix(in srgb,var(--evc) 80%,transparent)}
.evtk.sel{border-color:var(--evc);box-shadow:0 0 0 2px color-mix(in srgb,var(--evc) 35%,transparent)}
.evtk.urge .evtk-stub{animation:evPulse 2s infinite}
.evtk-stub{flex:none;width:66px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--evc);color:var(--evfg);padding:8px 0;position:relative;border-right:2px dashed color-mix(in srgb,var(--surface) 85%,transparent)}
.evtk-stub b,.evtk-stub small{color:inherit!important}
.evtk-stub b{font:800 26px/1 var(--display)}
.evtk-stub small{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.9}
.evtk-body{flex:1;min-width:0;padding:10px 12px;display:flex;flex-direction:column;gap:3px;justify-content:center}
.evtk-body>b{font-size:15px;overflow-wrap:anywhere}
.evtk-body>small{color:var(--muted);font-size:12.5px}
.evtk-when{align-self:center;flex:none;margin:0 6px;padding:4px 10px;border-radius:99px;font-size:12px;font-weight:800;background:color-mix(in srgb,var(--evc) 15%,transparent);color:var(--evc);white-space:nowrap}
.evtk>.ico-btn{align-self:center;flex:none;margin-right:6px}
.evtk.pas .evtk-stub{background:color-mix(in srgb,var(--evc) 55%,#888)}
.evcal-m{display:block;text-transform:capitalize;font-size:13px;margin-bottom:6px}
.evcal-g i{font-style:normal}
.evcal-d sup{position:absolute;top:0;right:2px;font-size:9px}
@media (max-width:860px) {
#panel-eventos .ev-hero{grid-template-columns:1fr}
}
@media (max-width:420px) {
.evcd-t b,.evcd.big .evcd-t b{font-size:22px}
}
.vth-wrap{display:flex;flex-direction:column;gap:14px;margin-bottom:16px}
.vth {
  --vc:#f59e0b;
  display:grid;
  grid-template-columns:200px minmax(0,1fr) minmax(260px,.9fr);
  border-radius:18px;
  overflow:hidden;
  background:var(--surface);
  border:1px solid color-mix(in srgb,var(--vc) 35%,var(--line));
  box-shadow:0 14px 36px -20px color-mix(in srgb,var(--vc) 80%,transparent);
  animation:vthIn .45s ease both;
  position:relative;
}
.vth.done{border-color:#22c55e}
.vth-cvi svg{width:56px;height:56px}
.vth-body{padding:16px 18px;display:flex;flex-direction:column;gap:6px;min-width:0}
.vth-body h3{margin:0;font-size:22px;line-height:1.15;overflow-wrap:anywhere}
.vth-body .hint{margin:0}
.vth-menu{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.vth-menu span{padding:4px 10px;border-radius:99px;background:var(--surface-2);font-size:12.5px}
.vth-menu b{color:var(--vc)}
.vth-group{margin-top:auto;font-size:12.5px;color:var(--muted);display:flex;flex-direction:column;gap:5px}
.vth-gbar,.vth-gbar>i{display:block;height:8px;border-radius:99px}
.vth-gbar>i{background:linear-gradient(90deg,var(--vc),#22c55e);transition:width .8s ease;position:relative;overflow:hidden}
.vth-gbar>i::after{content:"";position:absolute;inset:0;width:40%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:vthShine 2.4s ease-in-out infinite}
.vth-me{padding:16px 16px;background:color-mix(in srgb,var(--vc) 7%,var(--surface-2));display:flex;flex-direction:column;gap:8px;border-left:1px solid var(--line)}
.vth.done .vth-me{background:color-mix(in srgb,#22c55e 10%,var(--surface-2))}
.vth-me-h b{display:block;font-size:15px}
.vth-me-h small{color:var(--muted);font-size:12px}
.vth-ring{--p:0;flex:none;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--vc) calc(var(--p)*1%),var(--line) 0);position:relative;transition:background .6s}
.vth.done .vth-ring{background:conic-gradient(#22c55e calc(var(--p)*1%),var(--line) 0)}
.vth-ring b{position:relative;font-size:13px}
.vth-si{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--vc) 16%,transparent);color:var(--vc)}
.vth-si svg{width:15px;height:15px}
.vth-st{flex:1;min-width:0}
.vth-step.ok{border-color:color-mix(in srgb,#22c55e 45%,transparent)}
.vth-step.ok .vth-si{background:#22c55e;color:#fff}
.vth-step.wait .vth-si{background:var(--surface-2);color:var(--muted)}
.vth-o svg{width:16px;height:16px;flex:none;color:var(--vc)}
.vth-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}
.vt-pendwrap{margin:0 0 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line);padding:10px 14px}
.vt-pendwrap>summary{cursor:pointer;font-weight:700}
.vt-pendwrap[open]>summary{margin-bottom:8px}
@media (max-width:620px) {
.vth-body h3{font-size:19px}
}
/* ---- 7.75.3 · Ventas (organización): preparación ---- */
.vt-prep{display:flex;flex-direction:column;gap:4px;margin-top:8px;padding:8px 10px;border-radius:12px;background:var(--surface-2);font-size:12px}
.vt-prep-h b{margin-left:auto;color:var(--accent)}
.vt-prep-bar,.vt-prep-bar>i{display:block;height:6px;border-radius:99px}
.vt-prep-bar>i{background:linear-gradient(90deg,#f59e0b,#22c55e);transition:width .6s}
.vt-prep small{color:var(--muted)}
.vt-prep.ok{background:color-mix(in srgb,#22c55e 12%,var(--surface-2))}
.vt-prep.ok .vt-prep-h b,.vt-prep.ok small{color:#16a34a}
@media (prefers-reduced-motion:reduce) {
.ev-hero,.evtk,.vth,.evcd-t b.tk,.evcd-now,.evtk.urge .evtk-stub,.vth-gbar>i::after,#panel-eventos .ev-hero::before{animation:none!important}
}
@media (max-width:1000px) {
.avail-layout>*,.lst-layout>*,.rol-layout>*{min-width:0}
}
/* ---- barras de avance con relleno (reproductor, mini reproductor, multitrack) ---- */
#ap-seek,#mp-seek,#mt-seek,.mtx-tr input[type=range] {
  -webkit-appearance:none;
  appearance:none;
  height:6px;
  border-radius:99px;
  background:linear-gradient(to right,var(--tc,var(--accent)) var(--p,0%),color-mix(in srgb,var(--ink,#fff) 16%,transparent) var(--p,0%));
  outline:none;
  cursor:pointer;
  accent-color:auto;
}
@media (min-width:1100px) {
/* ---- Repertorio ---- */
body:has(#panel-repertorio:not([hidden])) main{max-width:none;padding-left:24px;padding-right:24px}
#panel-repertorio .tbl-wrap{max-height:calc(100vh - 230px)}
}
.rp-tbl th.ic,.rp-tbl td.ic{width:34px;min-width:34px;padding-left:1px!important;padding-right:1px!important;text-align:center}
.rp-tbl td.ic .ico-btn{padding:4px}
.rp-tbl td.ic sup{font-size:9px;font-weight:800;margin-left:-2px}
.rp-tbl .c-album{min-width:120px;max-width:210px}
.rp-tbl .c-key,.rp-tbl .c-bpm,.rp-tbl .c-sig,.rp-tbl .c-dur{text-align:center;white-space:nowrap}
.rp-tbl .rp-cv{width:42px;height:42px;border-radius:9px;position:relative;cursor:pointer;margin:0 10px 0 0;box-shadow:0 3px 10px -4px rgba(0,0,0,.5)}
.rp-tbl .rp-cv>i .ico,.rp-tbl .rp-cv>i svg{width:18px;height:18px}
.rp-cv .rp-play{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.5);color:#fff;opacity:0;transition:opacity .15s}
.rp-cv .rp-play svg,.rp-cv .rp-play .ico{width:18px;height:18px;color:#fff}
.rp-nm{display:block;overflow:hidden;min-height:42px;display:flex;flex-direction:column;justify-content:center}
.rp-nm>a{text-decoration:none!important;color:var(--ink);font-weight:700;line-height:1.25}
.rp-nm>a:hover{color:var(--accent);text-decoration:underline!important}
.rp-nm>*{align-self:flex-start;max-width:100%}
.rp-nm small{display:block;color:var(--muted);font-weight:500;font-size:12px}
.rp-pos{align-self:flex-start;font-size:10px;font-weight:800;padding:1px 8px;border-radius:99px;background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent);margin-top:2px;text-transform:uppercase;letter-spacing:.04em}
.rp-ordl{font-size:10px;font-weight:700;text-transform:none;letter-spacing:0;padding:1px 7px;border-radius:99px;background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent);margin-left:4px}
.rp-tbl tbody tr:not(.grp):hover>td{background-image:linear-gradient(color-mix(in srgb,var(--accent) 9%,transparent),color-mix(in srgb,var(--accent) 9%,transparent))}
.rep-dense .rp-tbl td{padding-top:3px;padding-bottom:3px}
.rep-dense .rp-tbl .rp-cv{width:28px;height:28px;border-radius:6px}
.rep-dense .rp-nm small{display:none}
.rp-cat.alabanza{background:color-mix(in srgb,#f59e0b 18%,transparent);color:#f59e0b;border-color:transparent}
.rp-cat.adoracion{background:color-mix(in srgb,#a78bfa 20%,transparent);color:#a78bfa;border-color:transparent}
.rp-cat.ambas{background:color-mix(in srgb,#2dd4bf 18%,transparent);color:#2dd4bf;border-color:transparent}
.rp-listbar {
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  padding:10px 14px;
  border-radius:14px;
  margin:0 0 10px;
  background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 20%,var(--surface)),var(--surface));
  border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));
  animation:rpIn .3s ease;
}
.rp-lb-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--accent);color:#fff;flex:none}
.rp-lb-ic svg,.rp-lb-ic .ico{width:18px;height:18px;color:#fff}
.rp-lb-t b{display:block;text-transform:none}
.rp-lb-t small{color:var(--muted);font-size:12px}
.rp-next {
  margin-top:6px;
  display:flex;
  align-items:center;
  gap:6px;
  width:100%;
  padding:7px 10px;
  border-radius:10px;
  border:1px dashed color-mix(in srgb,var(--accent) 50%,var(--line));
  background:color-mix(in srgb,var(--accent) 10%,transparent);
  color:var(--accent);
  font:inherit;
  font-size:12.5px;
  font-weight:700;
  cursor:pointer;
}
.rp-next svg,.rp-next .ico{width:15px;height:15px}
.rep-pop optgroup{font-weight:800;color:var(--muted)}
/* menú de columnas */
.rc-pop{min-width:320px;max-width:360px;padding:12px!important}
.rc-h{display:flex;flex-direction:column;margin-bottom:8px}
.rc-h .hint{font-size:11.5px}
.rc-seg{display:flex;gap:4px;margin-bottom:8px;flex-wrap:wrap}
.rc-seg button{flex:1;padding:6px 8px;border-radius:99px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.rc-seg button:hover{border-color:var(--accent);color:var(--accent)}
.rc-list{display:flex;flex-direction:column;gap:3px;max-height:min(46vh,420px);overflow:auto;padding-right:2px}
.rc-row.off{opacity:.55}
.rc-row label{flex:1;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;min-width:0}
.rc-row input{width:16px;height:16px;flex:none}
.rc-ic svg,.rc-ic .ico{width:15px;height:15px}
.rc-grip svg,.rc-grip .ico{width:14px;height:14px}
.rc-mv:hover:not([disabled]){background:var(--surface);color:var(--accent)}
.rc-foot{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
@media (max-width:640px) {
.rc-pop{min-width:0;max-width:none}
}
/* ---- reproductor grande ---- */
dialog.apx-dlg.apx-hasbg{overflow:hidden}
dialog.apx-dlg.apx-hasbg::before{content:"";position:absolute;inset:-60px;background:var(--apbg) center/cover no-repeat;filter:blur(46px) saturate(1.5);opacity:.33;pointer-events:none;z-index:0}
dialog.apx-dlg>.mh,dialog.apx-dlg>.mb,dialog.apx-dlg>.mf{position:relative;z-index:1}
dialog.apx-dlg .mf{background:transparent}
.apx-cvw{position:relative;flex:none;border-radius:16px}
.apx-cvw .apx-cover{transition:transform .8s ease,box-shadow .8s ease;display:flex}
.apx.playing .apx-cvw .apx-cover{transform:scale(1.035);box-shadow:0 18px 44px -10px color-mix(in srgb,var(--accent) 70%,#000)}
.apx.playing .apx-eq,#mini-player.playing .mp-eq{opacity:1}
.apx-eq i,.mp-eq i,.apx-leq i{display:block;width:3px;border-radius:2px;background:#fff;height:30%;animation:apEq .9s ease-in-out infinite;animation-play-state:paused}
.apx.playing .apx-eq i,#mini-player.playing .mp-eq i,.apx.playing .apx-leq i{animation-play-state:running}
.apx-eq i:nth-child(2),.mp-eq i:nth-child(2),.apx-leq i:nth-child(2){animation-delay:-.3s}
.apx-eq i:nth-child(3),.mp-eq i:nth-child(3),.apx-leq i:nth-child(3){animation-delay:-.6s}
.apx-eq i:nth-child(4){animation-delay:-.15s}
.apx-eq i:nth-child(5){animation-delay:-.45s}
.apx-play{transition:transform .15s,box-shadow .3s}
.apx.playing .apx-play{animation:apPulse 2.2s ease-in-out infinite}
@keyframes apPulse{0%,100%{box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 45%,transparent),0 0 0 0 color-mix(in srgb,var(--accent) 45%,transparent)}50%{box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 45%,transparent),0 0 0 10px color-mix(in srgb,var(--accent) 0%,transparent)}}
.apx-play:hover{transform:scale(1.06)}
.apx .ap-tabs{display:flex;gap:6px;flex-wrap:wrap}
.apx-list button{transition:border-color .15s,background .15s,transform .1s}
.apx-list button:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}
.apx-list button:active{transform:scale(.99)}
.apx-leq{display:inline-flex;gap:2px;align-items:flex-end;height:14px;margin-left:auto}
.apx-leq i{background:var(--accent)}
.apx-keyhint{margin-right:auto;font-size:11.5px;display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.apx-keyhint kbd,.mtx-keyhint kbd{font:inherit;font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:5px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink)}
#mini-player.mp2.mp-in{animation:mpIn .35s cubic-bezier(.2,.9,.3,1.2)}
#mini-player.mp2 .mp-cover>i{color:#fff;display:inline-flex}
#mini-player.mp2 .mp-tx b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
@media (max-width:640px) {
#mini-player.mp2.audio .mp-ctl>span[style]{display:none}
}
.mtx-tr[data-tr]:hover{background:color-mix(in srgb,var(--tc,var(--accent)) 7%,var(--surface))}
.mt-ii{display:inline-flex;width:24px;height:24px;border-radius:7px;background:color-mix(in srgb,var(--tc) 22%,transparent);color:var(--tc);align-items:center;justify-content:center;margin-right:7px;vertical-align:middle;flex:none}
.mt-ii svg,.mt-ii .ico{width:14px;height:14px;color:var(--tc)}
.mtx-tr .nm{display:flex;align-items:center}
.mtx-b[data-mute][aria-pressed="true"]{background:#ef4444;border-color:#ef4444;color:#fff}
.mtx-b[data-solo][aria-pressed="true"]{background:#f59e0b;border-color:#f59e0b;color:#111}
.mtx.playing .mtx-cover{box-shadow:0 14px 34px -8px color-mix(in srgb,var(--accent) 70%,#000);transform:scale(1.03);transition:all .6s}
.mtx.playing #mt-play{animation:apPulse 2.2s ease-in-out infinite}
@media (prefers-reduced-motion:reduce) {
.apx-eq i,.mp-eq i,.apx-leq i,.apx.playing .apx-play,.mtx.playing #mt-play,#mini-player.mp2.mp-in,.rp-listbar{animation:none!important}
}
/* ---- 7.75.5 · Rol del mes / Roles de eventos ---- */
.rb-ring{--p:0;flex:none;width:46px;height:46px;border-radius:50%;display:inline-grid;place-items:center;background:conic-gradient(var(--accent) calc(var(--p)*1%),color-mix(in srgb,var(--ink) 12%,transparent) 0);position:relative}
.rb-ring b{position:relative;font-size:11.5px;font-variant-numeric:tabular-nums}
.rb-ring.ok{background:conic-gradient(#22c55e calc(var(--p)*1%),color-mix(in srgb,var(--ink) 12%,transparent) 0)}
.rb-hero {
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  align-items:center;
  justify-content:space-between;
  padding:16px 18px;
  margin-bottom:12px;
  border-radius:18px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 18%,var(--surface)),var(--surface) 60%);
  border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));
}
.rb-hero-t{min-width:220px;flex:1}
.rb-hero-t small{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.rb-hero-t h2{margin:2px 0 4px;font-size:24px;text-transform:capitalize}
.rb-hero-t .hint{font-size:12.5px}
.rb-kpis{display:flex;gap:10px;flex-wrap:wrap}
.rb-kpi{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line);min-width:150px}
.rb-kpi b{display:block;font-size:14px}
.rb-kpi small{color:var(--muted);font-size:11.5px}
.rb-big i{font-style:normal;font-size:14px;color:var(--muted)}
.rb-kpi.warn{border-color:color-mix(in srgb,#ef4444 50%,var(--line))}
.rb-kpi.warn .rb-big{color:#ef4444}
.rb-kpi.good .rb-big{color:#22c55e}
.rb-tools{flex-wrap:wrap;gap:8px}
.rb-tools .btn .ico{width:16px;height:16px}
.rb-sug{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px;padding:10px 12px;border-radius:14px;border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 6%,transparent)}
.rb-sugc>i{width:10px;height:10px;border-radius:50%;background:var(--c)}
.rb-sugc small{color:var(--muted);font-weight:500}
.rb-sugc span{color:var(--accent);font-size:12px}
.rb-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:34px 16px;text-align:center;border-radius:16px;border:1px dashed var(--line);color:var(--muted)}
.rb-empty>svg,.rb-empty>.ico{width:34px;height:34px;color:var(--accent)}
.rb-empty b{color:var(--ink);font-size:16px}
.rb-week .week-head{position:relative}
.rb-wprog .rb-ring b{font-size:10px}
.rb-wbar>i{display:block;height:100%;background:linear-gradient(90deg,var(--wc),#22c55e);transition:width .6s}
.rb-type{margin-left:8px;display:inline-block;font-size:11px;font-weight:800;padding:2px 9px;border-radius:99px;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);vertical-align:middle}
.rb-week .row.rb-hl{outline:2px solid var(--accent);outline-offset:1px;border-radius:8px;background:color-mix(in srgb,var(--accent) 16%,transparent)}
.rb-part .bar:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.rb-part .bar i{position:relative}
.rb-part .bar.hi b{background:#f59e0b}
.rb-part .bar.lo b{background:#38bdf8}
.rb-chips{display:flex;flex-wrap:wrap;gap:5px}
.rb-chips .chip{cursor:default}
.rb-regen{display:flex;flex-direction:column;gap:6px}
.rb-rg .letter{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-weight:900;font-size:13px;flex:none}
.rb-rg small{margin-left:auto;color:var(--muted)}
.rb-new{display:flex;flex-direction:column;gap:12px}
.rb-new label{display:flex;flex-direction:column;gap:4px;font-weight:700;font-size:13px}
.rb-new input[type=date],.rb-new input[type=text]{padding:9px 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit}
.rbn-type>span,.rbn-cols>span{grid-column:1/-1;font-weight:700;font-size:13px}
.rbn-opt{flex-direction:row!important;display:grid!important;grid-template-columns:auto 1fr;column-gap:8px;padding:10px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);cursor:pointer}
.rbn-opt input{grid-row:span 2}
.rbn-opt small{font-weight:500;color:var(--muted)}
.rbn-opt:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface-2))}
.rbn-cols{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.rbn-cols label{flex-direction:row;cursor:pointer}
.rbn-cols i{width:26px;height:26px;border-radius:50%;background:var(--c);border:3px solid transparent;box-shadow:0 0 0 1px var(--line)}
.rbn-cols input:checked+i{border-color:var(--surface);box-shadow:0 0 0 2px var(--c)}
@media (max-width:640px) {
.rb-kpi{min-width:0;flex:1 1 44%}
}
/* ---- 7.75.5 · Ventas-Organización ---- */
.vo-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:12px;margin-bottom:12px}
.vo-fund {
  --ac:#3D82D0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
  padding:14px 16px;
  border-radius:16px;
  border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));
  background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 22%,var(--surface)),var(--surface));
  color:var(--ink);
  font:inherit;
  cursor:pointer;
  text-align:left;
  transition:transform .15s,box-shadow .15s;
}
.vo-fund:hover{transform:translateY(-2px);box-shadow:0 10px 24px -14px var(--ac)}
.vo-fund.on{box-shadow:0 0 0 2px var(--ac)}
.vo-fund small{display:flex;align-items:center;gap:6px;font-weight:800;font-size:12px}
.vo-fund small i{width:9px;height:9px;border-radius:50%;background:var(--ac)}
.vo-fund b{font:800 30px/1.1 var(--display)!important;color:#22c55e!important;font-variant-numeric:tabular-nums;margin:4px 0}
.vo-fund b.neg{color:#ef4444}
.vo-fund>span{font-size:11px;color:var(--muted)}
.vo-kpi{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line);min-width:0}
.vo-kpi small{display:block;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.vo-kpi b{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vo-kpi b.pos{color:#22c55e}
.vo-kpi b.neg{color:#ef4444}
.vo-kpi em{font-style:normal;font-size:12px;color:var(--muted)}
.vo-kpi>span:last-child{min-width:0}
.vo-kpi.warn{border-color:color-mix(in srgb,#f59e0b 45%,var(--line))}
.vo-ic{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 18%,transparent);color:var(--c)}
.vo-ic svg,.vo-ic .ico{width:20px;height:20px;color:var(--c)}
.vo-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.vo-tabs{display:flex;gap:4px;padding:4px;border-radius:14px;background:var(--surface-2);overflow-x:auto;max-width:100%}
.vo-tabs button{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;position:relative}
.vo-tabs button svg,.vo-tabs button .ico{width:16px;height:16px}
.vo-tabs button[aria-selected="true"]{background:var(--surface);color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.25)}
.vo-tabs button i.n{font-style:normal;font-size:10px;font-weight:800;padding:1px 6px;border-radius:99px;background:#f59e0b;color:#111}
.vo-role{margin:4px 0 12px;font-size:12px}
.vo-sec{margin:0 0 14px;border-radius:16px;border:1px solid var(--line);background:var(--surface);padding:10px 12px}
.vo-sec>summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;padding:2px 2px 4px}
.vo-sec>summary::-webkit-details-marker{display:none}
.vo-sec>summary b{font-size:15px}
.vo-sec.draft{border-left:4px solid #f59e0b}
.vo-sec.live{border-left:4px solid #22c55e}
.vo-sec.done{border-left:4px solid var(--muted)}
.vo-sec[open]>.vt-grid,.vo-sec[open]>*:not(summary){margin-top:8px}
@media (max-width:520px) {
.vo-kpi{flex-direction:column;align-items:flex-start;gap:6px;padding:10px}
.vo-kpi b{font-size:14px;white-space:normal}
.vo-fund b{font-size:22px!important}
}
/* venta abierta en pestañas */
.vto-tabs{display:flex;gap:4px;padding:4px;margin:0 0 12px;border-radius:14px;background:var(--surface-2);overflow-x:auto;position:sticky;top:-1px;z-index:3}
.vto-tabs button{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}
.vto-tabs button svg,.vto-tabs button .ico{width:16px;height:16px}
.vto-tabs button[aria-selected="true"]{background:var(--surface);color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.25)}
.vto-tabs i{font-style:normal;font-size:10px;font-weight:800;padding:1px 6px;border-radius:99px;background:var(--accent);color:#fff}
.vto-tabs i.warn{background:#f59e0b;color:#111}
.vto-pane>*+*{margin-top:12px}
.vto-ph b{display:block;font-size:15px}
.vto-it small{margin-left:auto;color:var(--accent);font-weight:700}
.vto-it.ok{border-style:solid;border-color:color-mix(in srgb,#22c55e 40%,var(--line));background:color-mix(in srgb,#22c55e 8%,transparent);cursor:default}
.vto-ck{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex:none;background:#f59e0b;color:#111}
.vto-ck svg,.vto-ck .ico{width:13px;height:13px}
.vto-it.ok .vto-ck{background:#22c55e;color:#fff}
.vto-prep.ok{border-color:#22c55e}
.fs2.empty{display:block!important}
.fs2-pol .fs-photo{border-radius:3px;overflow:hidden;aspect-ratio:1;position:relative}
.fs2-pol .fs-photo img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in}
.soc-facts{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.soc-facts small{flex-basis:100%;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.soc-facts span{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:99px;background:var(--surface-2);font-size:12.5px}
.soc-q{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.soc-qb span{font-size:16px;line-height:1}
@media (max-width:700px) {
.fs2-pol{max-width:320px;margin:10px auto 0}
}
.bd2 .bd2-today{position:relative;overflow:hidden;display:flex;gap:14px;align-items:center;padding:16px;margin:8px 0 10px;border-radius:18px;background:linear-gradient(135deg,#f472b6,#f59e0b 55%,#fde047);color:#1f1300}
.bd2-av{position:relative;flex:none}
.bd2-hat{position:absolute;top:-12px;right:-6px;font-size:26px;animation:bdHat 1.6s ease-in-out infinite;transform-origin:bottom}
.bd2-t{min-width:0;flex:1}
.bd2-t small{font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:11px;opacity:.8}
.bd2-t b{display:block;font:800 22px/1.1 var(--display)!important;color:#1f1300!important}
.fs2.fs-v{grid-template-columns:1fr}
.bd2-today .soc-qb:hover{background:#fff}
.bd2-conf i{position:absolute;top:-10px;width:7px;height:12px;border-radius:2px;background:#fff;opacity:.8;animation:bdConf 3.2s linear infinite}
.bd2-conf i:nth-child(3n){background:#8b5cf6}
.bd2-conf i:nth-child(3n+1){background:#22c55e}
.bd2-conf i:nth-child(4n){background:#ef4444}
.bd2-conf i:nth-child(1){left:4%;animation-delay:0s}
.bd2-conf i:nth-child(2){left:11%;animation-delay:1.1s}
.bd2-conf i:nth-child(3){left:18%;animation-delay:2.2s}
.bd2-conf i:nth-child(4){left:25%;animation-delay:.6s}
.bd2-conf i:nth-child(5){left:32%;animation-delay:1.7s}
.bd2-conf i:nth-child(6){left:39%;animation-delay:2.8s}
.bd2-conf i:nth-child(7){left:46%;animation-delay:.3s}
.bd2-conf i:nth-child(8){left:53%;animation-delay:1.4s}
.bd2-conf i:nth-child(9){left:60%;animation-delay:2.5s}
.bd2-conf i:nth-child(10){left:67%;animation-delay:.9s}
.bd2-conf i:nth-child(11){left:74%;animation-delay:2s}
.bd2-conf i:nth-child(12){left:81%;animation-delay:.2s}
.bd2-conf i:nth-child(13){left:88%;animation-delay:1.3s}
.bd2-conf i:nth-child(14){left:95%;animation-delay:2.4s}
.bd2 .bday-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.bd2 .bdy{display:flex;align-items:center;gap:10px;min-width:0}
.bd2 .bdy-t b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bd2 .bdy-t small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bd2 .bdy-t em{display:block;font-style:normal;font-weight:700;color:var(--accent)}
.bd2-date{flex:none;width:42px;display:flex;flex-direction:column;align-items:center;padding:4px 0;border-radius:10px;background:var(--surface-2)}
.bd2-date b{font:800 17px/1 var(--display)}
.bd2-date small{font-size:10px;font-weight:800;color:var(--muted)}
@media (prefers-reduced-motion:reduce) {
.bd2-conf i,.bd2-hat{animation:none!important}
}
/* multitrack: secciones plegables y consola fija */
.mt-deck{display:flex;flex-direction:column;gap:10px}
.mt-mkrow[hidden]{display:none}
.mt-mktg{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:7px 12px;border-radius:12px;border:1px solid var(--line);background:color-mix(in srgb,var(--accent) 7%,var(--surface));color:var(--ink);font:inherit;cursor:pointer;text-align:left}
.mt-mktg .ic{color:var(--accent);display:inline-flex}
.mt-mktg .ic svg{width:17px;height:17px}
.mt-mktg .tx{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13.5px}
.mt-mktg .n{font-style:normal;display:inline-block;min-width:20px;padding:0 6px;border-radius:99px;background:var(--accent);color:#fff;font-size:11px;font-weight:800;text-align:center;margin-left:2px}
.mt-mktg .car{display:inline-flex;transition:transform .2s;color:var(--muted)}
.mt-mktg .car svg{width:16px;height:16px}
@media (max-width:640px) {
dialog.apx-dlg[open],dialog.mtx-dlg[open]{display:flex!important;flex-direction:column;overflow:hidden}
dialog.apx-dlg[open]>.mb,dialog.mtx-dlg[open]>.mb{flex:1;min-height:0;overflow-y:auto!important;max-height:none!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
dialog.apx-dlg[open]>.mf{display:none}
dialog.mtx-dlg[open]>.mf{flex:none;padding:8px 14px calc(8px + env(safe-area-inset-bottom))}
dialog.apx-dlg input[type=range],dialog.mtx-dlg input[type=range]{touch-action:pan-y}
.apx{min-height:100%}
.apx-head{gap:14px!important}
.apx-cvw,.apx-cover{width:88px!important;height:88px!important;flex:none}
.ap-tabs{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px}
.ap-tabs::-webkit-scrollbar{display:none}
.ap-tabs .ap-tab{flex:none}
.apx-ctrl2{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;gap:8px}
.apx-ctrl2>*{flex:none}
.apx-ctrl2>span:empty{display:none}
/* multitrack */
.mtx{padding:12px 14px 0!important}
dialog.mtx-dlg[open]>.mb{padding-top:0!important}
.mtx-tr[data-tr]{grid-template-columns:30px 30px 1fr 40px 16px!important;row-gap:4px!important;padding:8px 8px 8px 10px!important}
}
/* Monitor: botón "Solo mi voz / Con pista" */
.pm-ract .btn.on{background:color-mix(in srgb,var(--accent) 18%,var(--surface));border-color:var(--accent);color:var(--ink)}
/* Sala de práctica */
.pr-box{min-width:0;margin:0 0 22px;display:flex;flex-direction:column;gap:12px}
.pr-hero-t{flex:1;min-width:240px;position:relative}
.pr-hero-t small{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.pr-hero-t small svg{width:15px;height:15px}
.pr-hero-t h2{margin:4px 0 6px;font:800 26px/1.1 var(--display)}
.pr-hero-t p{margin:0;color:var(--muted);font-size:13.5px;max-width:560px}
.pr-kpis>div{min-width:84px;padding:10px 12px;border-radius:14px;background:var(--surface);border:1px solid var(--line);text-align:center}
.pr-kpis b{display:flex;align-items:center;justify-content:center;gap:4px;font:800 22px/1 var(--display);font-variant-numeric:tabular-nums}
.pr-kpis b svg{width:17px;height:17px;color:var(--muted)}
.pr-kpis .hot b,.pr-kpis .hot b svg{color:#f59e0b}
.pr-kpis small{display:block;margin-top:4px;color:var(--muted);font-size:11px}
.pr-find svg{width:17px;height:17px;color:var(--muted)}
.pr-find input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:inherit;padding:10px 0;outline:none}
.pr-player[hidden]{display:none}
.pr-pc svg{width:22px;height:22px}
.pr-eq b{width:2.5px;background:#fff;border-radius:2px;animation:prEq .9s ease-in-out infinite}
.pr-eq b:nth-child(2){animation-delay:-.3s}
.pr-eq b:nth-child(3){animation-delay:-.6s}
.pr-eq b:nth-child(4){animation-delay:-.15s}
.pr-pm{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.pr-pt{display:flex;gap:8px;align-items:baseline;min-width:0;max-width:100%;overflow:hidden}
.pr-pt>*{max-width:100%;min-width:0}
.pr-pt b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14.5px}
.pr-pt small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}
.pr-seek input{flex:1;min-width:0;accent-color:var(--accent);--p:0%}
.pr-pctl .pr-pp svg{width:20px;height:20px}
.pr-grp h4{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:15px}
.pr-grp h4 svg{width:17px;height:17px;color:var(--accent)}
.pr-grp h4 .n{font-size:11px;font-weight:800;padding:1px 8px;border-radius:99px;background:color-mix(in srgb,var(--ink) 10%,transparent);color:var(--muted)}
.pr-card .pr-b span{display:none}
.pr-card{min-width:0;display:flex;align-items:center;gap:12px;padding:10px 10px 10px 12px;border-radius:14px;border:1px solid var(--line);background:var(--surface);transition:border-color .15s,transform .15s,box-shadow .15s}
.pr-card:hover{border-color:color-mix(in srgb,var(--accent) 60%,var(--line));transform:translateY(-1px);box-shadow:0 10px 24px -18px rgba(0,0,0,.6)}
.pr-card.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface))}
.pr-ic svg{width:19px;height:19px}
.pr-card.warm .pr-ic{background:color-mix(in srgb,#f59e0b 18%,transparent);color:#f59e0b}
.pr-card.pdf .pr-ic{background:color-mix(in srgb,#ef4444 15%,transparent);color:#ef4444}
.pr-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.pr-tx b{font-size:13.5px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pr-tx small{color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pr-done svg{width:12px;height:12px}
.pr-b{display:inline-flex;align-items:center;gap:5px;height:36px;min-width:36px;justify-content:center;padding:0 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
.pr-b svg{width:16px;height:16px}
.pr-empty svg{width:30px;height:30px;color:var(--accent)}
.pr-empty b{color:var(--ink)}
.pr-cta .ic{flex:none;width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:var(--accent);color:#fff}
.pr-cta .ic svg{width:21px;height:21px}
.pr-cta .tx{flex:1;min-width:0;display:flex;flex-direction:column}
.pr-cta .tx small{color:var(--muted)}
@media (max-width:640px) {
.pr-hero-t h2{font-size:21px}
.pr-kpis>div{min-width:0;padding:8px 4px}
.pr-kpis b{font-size:18px}
.pr-bar .sel{width:100%}
.pr-b span{display:none}
.st-mbar .st-i{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}
.st-mbar .st-i svg{width:18px;height:18px}
.st-mbar .tx{flex:1;min-width:0;display:flex;flex-direction:column}
.st-mbar .tx small{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:800}
.st-mbar .tx b{font-size:15px}
.st-mbar .car{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:800;color:var(--accent)}
.st-mbar .car svg{width:15px;height:15px}
dialog:not(.st-open) .st-mbar~.st-nav{display:none!important}
dialog.st-open .st-nav {
  display:grid!important;
  grid-template-columns:1fr 1fr;
  align-content:start;
  gap:6px;
  position:fixed;
  inset:0;
  z-index:60;
  overflow-y:auto;
  padding:0 12px calc(16px + env(safe-area-inset-bottom));
  background:var(--surface);
  flex-direction:unset;
  border:0!important;
  max-height:none!important;
  height:100dvh;
  width:100vw;
}
dialog.st-open .st-nav .st-mhead{display:flex;grid-column:1/-1;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:1;padding:14px 2px 8px;background:var(--surface)}
dialog.st-open .st-nav .st-find{grid-column:1/-1;display:flex!important;position:sticky;top:58px;z-index:1}
dialog.st-open .st-nav .st-grp{grid-column:1/-1;margin-top:8px}
dialog.st-open .st-nav [data-stnav] {
  display:flex!important;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
  padding:12px!important;
  border-radius:14px!important;
  border:1px solid var(--line)!important;
  background:var(--surface-2)!important;
  min-height:78px;
  white-space:normal!important;
  text-align:left;
  font-size:13.5px;
}
}
/* Buscador de Inicio */
.ini-find{position:relative;margin:4px 0 18px;z-index:8}
.ini-find>label{display:flex;align-items:center;gap:10px;padding:0 14px;border-radius:16px;border:1px solid var(--line);background:var(--surface);box-shadow:0 10px 30px -22px rgba(0,0,0,.6);transition:border-color .15s,box-shadow .15s}
.ini-find>label:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
.ini-find>label>svg{width:19px;height:19px;color:var(--muted);flex:none}
.ini-find input{flex:1;min-width:0;border:0;outline:none;background:transparent;color:var(--ink);font:inherit;font-size:15px;padding:13px 0}
.ini-find kbd{font:700 11px/1 ui-monospace,monospace;padding:4px 7px;border-radius:6px;border:1px solid var(--line);color:var(--muted)}
.ini-res[hidden]{display:none}
.ini-it:hover,.ini-it.sel{background:color-mix(in srgb,var(--accent) 13%,transparent)}
.ini-it .ic{flex:none;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.ini-it .ic svg{width:18px;height:18px}
.ini-it .tx{flex:1;min-width:0;display:flex;flex-direction:column}
.ini-it .tx small{color:var(--muted);font-size:12px}
.ini-it .go svg{width:14px;height:14px}
@media (pointer:coarse) {
.ini-find kbd{display:none}
}
/* ---- 7.75.7 · Integrantes ---- */
.pe2{display:flex;flex-direction:column;gap:12px;min-width:0}
.pe-hero-t{min-width:200px;position:relative}
.pe-hero-t small{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.pe-hero-t small svg{width:15px;height:15px}
.pe-hero-t h2{margin:2px 0 2px;font:800 32px/1.05 var(--display)}
.pe-hero-t h2 span{font-size:16px;font-weight:700;color:var(--muted)}
.pe-hero-t p{margin:0;color:var(--muted);font-size:13px}
.pe-kpi {
  display:grid;
  grid-template-columns:auto auto;
  grid-template-rows:auto auto;
  column-gap:10px;
  align-items:center;
  text-align:left;
  padding:10px 14px;
  min-width:132px;
  border-radius:14px;
  border:1px solid var(--line);
  background:var(--surface);
  color:var(--ink);
  font:inherit;
  cursor:pointer;
  transition:border-color .15s,transform .15s;
}
.pe-kpi:hover:not([disabled]){border-color:var(--accent);transform:translateY(-1px)}
.pe-kpi .i{grid-row:span 2;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.pe-kpi .i svg{width:17px;height:17px}
.pe-kpi b{font:800 20px/1 var(--display);font-variant-numeric:tabular-nums}
.pe-kpi small{color:var(--muted);font-size:11.5px}
.pe-kpi.warn .i{background:color-mix(in srgb,#f59e0b 18%,transparent);color:#f59e0b}
.pe-kpi.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface))}
.pe-bar .rep-search{flex:1 1 260px;max-width:520px}
.pe-vt[hidden]{display:none}
.pe-vt button{width:38px;height:36px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted);cursor:pointer}
.pe-vt button svg{width:17px;height:17px}
.pe-vt button[aria-pressed="true"]{background:var(--accent);color:#fff}
.pe-seg i{font-style:normal;font-size:11px;font-weight:800;padding:0 6px;border-radius:99px;background:color-mix(in srgb,var(--ink) 10%,transparent);color:var(--muted)}
.pe-seg[aria-pressed="true"] i{background:rgba(255,255,255,.25);color:#fff}
.pe-colpop{min-width:260px;right:0;left:auto}
.pe-colpop .rc-h{display:flex;flex-direction:column;margin-bottom:6px}
.pe-cli .g{color:var(--faint,var(--muted));display:inline-flex}
.pe-cli .g svg{width:14px;height:14px}
.pe-av img{width:100%;height:100%;object-fit:cover}
.pe-av b{font-size:13px;font-weight:800;letter-spacing:.02em}
.pe-av.lg b{font-size:17px}
.pe-av.xl b{font-size:26px}
.pe-nm{display:flex;align-items:center;gap:12px;min-width:0}
.pe-nt{display:flex;flex-direction:column;min-width:0}
.pe-nt>b{font-size:14.5px;line-height:1.25}
.pe-nt>small{color:var(--muted);font-size:12px}
.pe-nt>small:empty{display:none}
.pe-tags:empty{display:none}
.pe-inc svg{width:11px;height:11px}
.pe-type svg{width:13px;height:13px}
.pe-vl.l{background:color-mix(in srgb,#ec4899 20%,transparent);color:#db2777}
.pe-vl.b{background:color-mix(in srgb,#8b5cf6 20%,transparent);color:#8b5cf6}
.pe-vl.c{background:color-mix(in srgb,#06b6d4 20%,transparent);color:#0891b2}
.pe-rule svg{width:12px;height:12px;color:var(--accent)}
.pe-rule.bad{background:color-mix(in srgb,#ef4444 14%,transparent);border-color:color-mix(in srgb,#ef4444 40%,transparent);color:#ef4444}
.pe-rule.bad svg{color:#ef4444}
.pe-user svg{width:13px;height:13px;color:#22c55e}
.pe-wa svg{width:14px;height:14px;color:#22c55e}
.pe-mc{display:inline-grid;place-items:center;min-width:30px;height:26px;padding:0 8px;border-radius:8px;font-weight:800;font-variant-numeric:tabular-nums;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.pe-mc small{font-weight:600;color:var(--muted)}
.pe-sk{display:inline-flex;align-items:center;gap:6px;min-width:74px}
.pe-sk i{flex:1;height:6px;border-radius:99px;background:color-mix(in srgb,var(--ink) 10%,transparent);position:relative;overflow:hidden;min-width:34px}
.pe-sk b{font-size:11.5px;font-variant-numeric:tabular-nums;min-width:22px;text-align:right}
.pe-ab svg{width:16px;height:16px}
.pe-ab:hover{border-color:var(--line);background:var(--surface-2);color:var(--ink)}
.pe-ab.ed{color:var(--accent)}
.pe-tbl thead th .ar{margin-left:4px;font-size:9px}
.pe-tbl th.n,.pe-tbl td.n{text-align:center}
.pe-tbl .c-sel{width:34px;text-align:center;position:sticky;left:0;z-index:2;background:inherit}
.pe-tbl thead .c-sel{z-index:4}
.pe-tbl .c-name{min-width:230px;position:sticky;left:34px;z-index:2;background:var(--surface)}
.pe-tbl thead .c-name{z-index:4;background:var(--surface-2)}
.pe-tbl .c-act{width:1%;white-space:nowrap;text-align:right}
.pe-card {
  position:relative;
  display:flex;
  flex-direction:column;
  gap:9px;
  padding:14px;
  border-radius:18px;
  border:1px solid var(--line);
  background:linear-gradient(160deg,color-mix(in srgb,var(--pc) 9%,var(--surface)),var(--surface) 55%);
  cursor:pointer;
  transition:transform .15s,border-color .15s,box-shadow .15s;
  min-width:0;
}
.pe-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--pc) 55%,var(--line));box-shadow:0 16px 30px -22px rgba(0,0,0,.6)}
.pe-card.sel{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 40%,transparent)}
.pe-card.off{opacity:.6}
.pe-csr span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pe-cm b{color:var(--ink)}
.pe-cm svg{width:13px;height:13px}
.pe-empty svg{width:30px;height:30px;color:var(--accent)}
.pe-empty b{color:var(--ink)}
.pe-bulk>b{margin-right:4px}
.pe-bg .sel{height:30px;min-width:0;max-width:170px}
dialog.pf-dlg>.mb{padding:0}
.pf-hi{flex:1;min-width:200px}
.pf-hi h3{margin:0 0 6px;font:800 22px/1.15 var(--display)}
.pf-hs span{display:flex;flex-direction:column;min-width:74px;padding:6px 10px;border-radius:10px;background:var(--surface);border:1px solid var(--line)}
.pf-hs b{font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}
.pf-hs small{font-size:10.5px;color:var(--muted)}
.pf-hs .bad b{color:#ef4444}
.pf-hs .good b{color:#22c55e}
.pf-tb[hidden]{display:none}
.pf-tb svg{width:16px;height:16px}
.pf-tb[aria-selected="true"] svg{color:var(--pc,var(--accent))}
.pf2 .pf-sec{padding:18px 20px 22px;display:flex;flex-direction:column;gap:14px;border:0!important;background:transparent!important;margin:0!important}
.pf2 .f{display:flex;flex-direction:column;gap:6px;margin:0}
.pf2 .f>label{font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.pf2 input:not([type=checkbox]):not([type=range]),.pf2 select:not(.pf-hid),.pf2 textarea{width:100%;padding:10px 12px;border-radius:11px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;box-sizing:border-box}
.pf2 input:focus,.pf2 select:focus,.pf2 textarea:focus{outline:none;border-color:var(--pc,var(--accent));box-shadow:0 0 0 3px color-mix(in srgb,var(--pc,var(--accent)) 20%,transparent)}
.pe-segc button{display:inline-flex;align-items:center;gap:6px;padding:9px 13px;border-radius:11px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.pe-segc button svg{width:16px;height:16px;color:var(--muted)}
.pe-segc button[aria-pressed="true"]{border-color:var(--pc,var(--accent));background:color-mix(in srgb,var(--pc,var(--accent)) 16%,var(--surface-2))}
[data-segfor="pf-active"] [data-v="pausa"][aria-pressed="true"]{border-color:#f59e0b;background:color-mix(in srgb,#f59e0b 16%,var(--surface-2))}
[data-segfor="pf-active"] [data-v="inactivo"][aria-pressed="true"]{border-color:#ef4444;background:color-mix(in srgb,#ef4444 14%,var(--surface-2))}
.pf-note svg{width:17px;height:17px;color:var(--pc,var(--accent))}
.pf-pill input{position:absolute;opacity:0;pointer-events:none}
.pf-pill>span{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:99px;border:1px solid var(--line);background:var(--surface-2);font-size:12.5px;font-weight:700;transition:all .15s}
.pf-pill input:checked+span{border-color:var(--rc,var(--accent));background:color-mix(in srgb,var(--rc,var(--accent)) 20%,var(--surface-2))}
.pf-pill input:focus-visible+span{outline:2px solid var(--accent)}
.pf-pill.big>span{flex-direction:column;align-items:flex-start;gap:1px;border-radius:12px;padding:9px 14px;min-width:130px}
.pf-pill.big small{font-weight:500;color:var(--muted);font-size:11px}
.pf-rule2>input{position:absolute;opacity:0;pointer-events:none}
.pf-rule2 .ri{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--pc,var(--accent)) 14%,transparent);color:var(--pc,var(--accent))}
.pf-rule2 .ri svg{width:18px;height:18px}
.pf-rule2 .rt{display:flex;flex-direction:column;gap:2px}
.pf-rule2 .rt small{color:var(--muted);font-size:12px;line-height:1.35}
.pf-rule2 .rc input,.pf-rule2 .rc select{min-width:150px;width:auto!important}
.pf-rule2 .sw,.pf-tog .sw{width:40px;height:22px;border-radius:99px;background:color-mix(in srgb,var(--ink) 18%,transparent);position:relative;transition:background .2s;flex:none}
.pf-rule2>input:checked~.sw,.pf-tog input:checked+.sw{background:var(--pc,var(--accent))}
.pf-rule2:has(>input:checked){border-color:color-mix(in srgb,var(--pc,var(--accent)) 55%,var(--line));background:color-mix(in srgb,var(--pc,var(--accent)) 8%,var(--surface-2))}
.pf-sk[style*="display:none"],.pf-sk[style*="display: none"]{display:none!important}
.pf-skr input[type=range]{width:100%!important;max-width:none!important;margin:0;accent-color:var(--pc,var(--accent))}
.pf-skr input[type=number]{padding:6px 8px!important;text-align:center}
@media (max-width:700px) {
.pe-hero-t h2{font-size:26px}
.pe-kpi{min-width:0;padding:8px 10px}
.pe-bar .rep-search{flex:1 1 100%;max-width:none}
.pe-add span{display:none}
dialog.pf-dlg .mf{flex-wrap:wrap;gap:6px;padding:8px 10px calc(8px + env(safe-area-inset-bottom))}
dialog.pf-dlg .mf .btn{padding:8px 11px;font-size:13px}
dialog.pf-dlg .pf-nav,dialog.pf-dlg .mf [data-close]{display:none!important}
.pf-head .pe-av.xl b{font-size:20px}
.pf-hi h3{font-size:19px}
.pf-hs span{padding:5px 4px;text-align:center}
.pf-hs b{font-size:13px;overflow:hidden;text-overflow:ellipsis}
.pf-hs small{font-size:9.5px}
.pf-hs span{min-width:0;flex:1}
.pf-tb span{display:none}
.pf-tb[aria-selected="true"] span{display:inline}
.pf-rule2 .rc{grid-column:1/-1}
.pf-rule2 .rc input,.pf-rule2 .rc select{width:100%!important}
.pf-rule2 .sw{grid-row:1;grid-column:3}
}
.pf2 .pf-pill,.pf2 .pf-pill *{text-transform:none!important;letter-spacing:0!important}
.pf2 .pf-pill>span{font-size:12.5px}
.pf2 .pf-pill.big b{font-size:13.5px}
.pf2 .pf-rule2,.pf2 .pf-rule2 *{text-transform:none;letter-spacing:0}
.pf-ha a{text-decoration:none}
.pmv .pmv-t{display:inline-flex;gap:6px;align-items:center;font-weight:800}
.pmv .ico{width:16px;height:16px}
.pmv select{max-width:200px}
.pmv-g b{min-width:56px;text-align:center;font-variant-numeric:tabular-nums}
.pmv-g .ico-btn{width:28px;height:28px;font-weight:800}
.pmv-sc b{font-size:15px;color:#16a34a}
.al-bar.flash{animation:alFlash 1s ease-in-out infinite,alSlide 2s linear infinite}
.al-bar.ok{opacity:.96;border-color:transparent;padding:6px 10px}
.al-bar.ok .al-t b{font-size:14px}
@media (prefers-reduced-motion:reduce) {
.al-bar.flash{animation:none}
}
.al-ic svg{width:22px;height:22px}
.al-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.al-t b{font-size:16px;font-weight:800;line-height:1.2}
.al-t small{font-size:12px;opacity:.9}
.al-ok svg{width:16px;height:16px}
.al-bar.ambar .al-ok{color:#92400e}
.al-hbtn svg{width:20px;height:20px}
.al-seg button{font:inherit;font-size:13px;font-weight:700;padding:7px 11px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer}
.al-seg button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.al-send:hover{background:#b91c1c}
.al-ri>div{flex:1;min-width:0;display:flex;flex-direction:column}
.al-ri small{color:var(--muted);font-size:12px}
.al-ackl>div{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px dashed var(--line)}
.al-ackl small{color:var(--muted)}
@media (max-width:640px) {
.al-t b{font-size:14.5px}
}
#dlg .al-send,#dlg .al-send:disabled{color:#fff!important;opacity:1;font-weight:800}
#dlg .al-send:disabled{opacity:.6}
.al-grps button{font:inherit;font-size:13px;font-weight:700;padding:6px 11px;border-radius:99px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer}
.al-grps button i{font-style:normal;font-weight:600;opacity:.75;font-size:11.5px}
.al-grps button[aria-pressed="true"]{background:#dc2626;border-color:#dc2626;color:#fff}
.al-pend span{font-size:12.5px;padding:2px 8px;border-radius:99px;background:var(--surface-2);color:var(--muted)}
.vt-ib svg{width:16px;height:16px}
.vt-cmp-bar i{display:block;height:100%;background:#22c55e;border-radius:99px;transition:width .3s}
.vt-cmp-add input{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:8px 10px;font:inherit;min-width:0}
.vt-cmp-add input[name=q]{width:64px}
.vt-cmp-add input[name=u]{width:96px}
.vt-cmp-add input[name=n]{flex:1 1 180px}
.vt-cmp-ck input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.vt-cmp-ck i{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;border:2px solid var(--line);color:transparent;transition:all .15s}
.vt-cmp-ck i svg{width:18px;height:18px}
.vt-cmp-ck input:checked+i{background:#22c55e;border-color:#22c55e;color:#fff}
.vt-cmp-t{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}
.vt-cmp-t b{font-size:15px}
.vt-cmp-t em{font-style:normal;font-size:12.5px;font-weight:700;color:var(--muted);background:var(--surface-2);padding:1px 7px;border-radius:99px}
.vt-cmp-t small{flex-basis:100%;font-size:12px;color:var(--muted)}
.vt-cmp-t small.by{color:#16a34a}
.vt-cmp-row.done{background:var(--surface-2);border-style:dashed}
.vt-cmp-row.done .vt-cmp-t b{text-decoration:line-through;opacity:.6}
.vt-subdlg textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:10px;padding:10px;font:inherit}
.vt-from select{width:100%}
.vt-tpl-h>div{display:flex;flex-direction:column;min-width:0}
.vt-tpl-h small{color:var(--muted);font-size:12px}
.vt-tpl-n span{font-size:12px;padding:2px 8px;border-radius:99px;background:var(--surface-2);color:var(--muted)}
.vt-tpl-n b{color:var(--ink)}
.vt-pldow button{font:inherit;font-size:12.5px;font-weight:700;padding:4px 10px;border-radius:99px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer}
.vt-pldow button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.vt-pldow i{font-style:normal;opacity:.75;font-size:11px}
.vt-hdate b{font-size:20px}
.vt-hdate small{font-size:10.5px;font-weight:700;text-transform:uppercase;color:var(--muted)}
.vt-hmain{display:flex;flex-direction:column;min-width:0;gap:3px}
.vt-hmain small{font-size:12px;color:var(--muted)}
.vt-hmoney small{font-size:11.5px;color:var(--muted)}
.vt-hmoney b.pos{color:#16a34a}
.vt-hmoney b.neg{color:var(--danger,#dc2626)}
.vt-red-row input{min-width:0;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:7px 9px;font:inherit}
@media (max-width:700px) {
.vt-cmp-add input[name=q]{width:70px}
.vt-cmp-add input[name=u]{width:110px}
.vt-cmp-add input[name=n]{flex-basis:100%;order:-1}
.vt-cmp-add button{margin-left:auto}
.vt-red-row input[type=time]{flex:1 1 90px!important}
}
.ens-banner>svg{flex:none;width:22px;height:22px;color:var(--danger,#dc2626);margin-top:2px}
.ens-banner>div{display:flex;flex-direction:column;gap:4px;min-width:0}
button.ens-chip{cursor:pointer}
button.ens-chip:hover{border-color:var(--text)}
.ens-chip.off{background:var(--danger-bg,#fdecec);border-color:var(--danger,#dc2626);color:var(--danger,#b91c1c);font-weight:700}
.ens-chip small{font-weight:500;color:var(--text);opacity:.8}
.ens-card .ens-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 10px;width:100%;text-align:left;font:inherit;padding:8px 10px;margin:0 0 6px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--text)}
button.ens-row{cursor:pointer}
button.ens-row:hover{border-color:var(--text)}
.ens-row b{white-space:nowrap}
.ens-row span{grid-column:1/-1;min-width:0;font-size:13px;color:var(--muted)}
.ens-row i{font-style:normal;font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}
.ens-row.off{background:var(--danger-bg,#fdecec);border-color:var(--danger,#dc2626)}
.ens-row.off span{color:var(--text)}
.ens-row.off i{color:var(--danger,#dc2626);font-weight:800}
.ens-opt input{position:absolute;opacity:0;pointer-events:none}
.ens-opt span{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;align-items:center;padding:10px 12px;border:2px solid var(--line);border-radius:12px;background:var(--surface);height:100%;box-sizing:border-box}
.ens-opt span small{grid-column:2;color:var(--muted);font-size:12px;line-height:1.3}
table.grid th.ens-th.off,table.grid td.ens-off{background:var(--danger-bg,#fdecec)}
table.grid td.ens-off span{color:var(--muted);opacity:.7}
th.ens-th.off .ens-thb,th.ens-th.off span{color:var(--danger,#b91c1c)}
.md-day.noens small:last-child{color:var(--danger,#b91c1c);font-weight:700}
@media (max-width:640px) {
.ens-chip small{display:none}
}
.it.pend.espera{opacity:.85;border-style:dashed}
.vt-plegend summary{cursor:pointer;font-weight:600}
.vt-plegend dl{margin:8px 0 0;display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;font-size:13.5px}
@media (max-width:640px) {
.vt-plegend dl{grid-template-columns:1fr}
}
.vt-pchip b{font-variant-numeric:tabular-nums}
.vt-prow .who{flex:1;min-width:0;display:flex;flex-direction:column}
.vt-prow .who b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vt-prow select{min-width:0;flex:0 1 230px;max-width:100%;border-width:2px}
.vt-perms{min-width:0;overflow:hidden}
.vt-perms .rep-search{min-width:0;flex:1 1 160px;max-width:100%}
@media (max-width:640px) {
.vt-prow select{flex:1 1 100%}
}
.vt-mseg label{position:relative;cursor:pointer;text-transform:none;letter-spacing:normal;font-weight:500;font-size:14px;margin:0;color:var(--ink)}
.vt-ln .f2{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.vt-ln select,.vt-ln input{max-width:100%}
.vt-mseg input{position:absolute;opacity:0;pointer-events:none}
.vt-mseg span{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);font-size:13.5px}
.vt-mseg span .ico{width:16px;height:16px}
.vt-mseg small{color:var(--muted,#888);font-size:11.5px}
.vt-mseg.big{flex-direction:column}
.vt-mseg.big span{width:100%;border-radius:12px;padding:10px 12px}
[data-theme="dark"] .vt-medio.efectivo{color:#4ade80}
[data-theme="dark"] .vt-medio.banco{color:#93c5fd}
.vt-caja.none{grid-template-columns:auto 1fr auto;align-items:center;gap:10px}
.vt-caja.none small{display:block}
.vt-cic .ico{width:20px;height:20px}
.vt-cgrid>div{display:flex;flex-direction:column;gap:2px}
.vt-cgrid span{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--muted,#888)}
.vt-cgrid span .ico{width:15px;height:15px}
.vt-cgrid b{font-size:19px;font-variant-numeric:tabular-nums}
.vt-cgrid .ef span{color:#16a34a}
.vt-cgrid .bn span{color:#2563eb}
.vt-cgrid b.neg,.vt-cjbn.neg{color:#dc2626}
.vt-cbar i{display:block;height:100%;background:#16a34a;border-radius:99px 0 0 99px}
.vt-cjtot b{font-size:18px}
.vt-cjh summary{cursor:pointer;font-weight:600}
.vt-cjh>b{display:block;margin:10px 0 4px}
.vt-cjr>span{flex:1;display:flex;flex-direction:column;font-size:13.5px}
.vt-cjr>span .ico{width:15px;height:15px;display:inline}
.vt-cjr small{color:var(--muted,#888)}
.vt-bsh-r img{width:100%;border-radius:14px;display:block;box-shadow:0 8px 24px rgba(0,0,0,.18);background:var(--surface-2);min-height:120px}
.vt-bsh-t summary{cursor:pointer;font-size:13px;color:var(--muted,#888)}
.vt-bsh-t pre{white-space:pre-wrap;font:13px/1.45 system-ui,sans-serif;background:var(--surface-2);border-radius:10px;padding:10px;margin:6px 0 0}
.vt-lhero .vt-lh{display:flex;gap:12px;align-items:flex-start}
.vt-lic .ico{width:22px;height:22px}
.vt-lt b{overflow-wrap:anywhere}
.vt-lam.big{font-size:32px;margin:4px 0}
.vt-link .chip,.vt-lsh .chip{flex:none;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted,#888)}
.vt-link .chip.ok,.vt-lsh .chip.ok{background:color-mix(in srgb,#16a34a 16%,transparent);color:#16a34a}
.vt-link .chip.pub,.vt-lsh .chip.pub{background:color-mix(in srgb,#2563eb 16%,transparent);color:#2563eb}
.vt-lsh-r canvas{width:220px;height:220px;border-radius:14px;border:1px solid var(--line);background:#fff;display:block}
.vt-lurl input{flex:1;min-width:0;font-size:13px}
.vt-lpay>span{flex:1;display:flex;flex-direction:column}
.vt-lpay.pagado>b{color:#16a34a}
.vt-lpay:not(.pagado)>b{color:var(--muted,#888);font-weight:500}
@media (max-width:700px) {
.vt-lsh-r canvas{width:200px;height:200px}
}
.vt-gpay summary{cursor:pointer;font-weight:600;display:flex;align-items:center;gap:6px}
.vt-gpay summary .ico{width:18px;height:18px}
.vt-gpay ol{margin:10px 0 8px;padding-left:20px;display:grid;gap:8px;font-size:14px}
.cam .card{padding:14px 16px}
.cam-hero-t{min-width:0;flex:1 1 320px}
.cam-hero-t small{display:flex;gap:6px;align-items:center;font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:11px;opacity:.9}
.cam-hero-t small .ico{width:14px;height:14px}
.cam-hero h2{margin:4px 0 4px;font-size:clamp(20px,3.2vw,28px);line-height:1.15;color:#fff}
.cam-hero p{margin:0;opacity:.92;max-width:52ch}
.cam-kpis span{display:flex;gap:6px;align-items:center}
.cam-kpis b{font-size:18px}
.cam-kpis .ico{width:15px;height:15px}
.cam-tabs button{flex:none;display:flex;gap:7px;align-items:center;padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;position:relative}
.cam-tabs button .ico{width:16px;height:16px}
.cam-tabs button[aria-selected="true"]{background:#E0A526;border-color:#E0A526;color:#1d1300}
.cam-tabs button i{font-style:normal;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:11px;display:inline-grid;place-items:center}
.cam-body{display:flex;flex-direction:column;gap:12px;min-width:0}
.cam-h .ico{width:18px;height:18px;color:#E0A526}
.cam-sh>b{display:flex;gap:7px;align-items:center}
.cam-sh .ico{width:16px;height:16px}
.cam-empty>.ico{width:34px;height:34px;flex:none;color:#E0A526}
.cam-empty b{font-size:16px}
.cam-empty p{margin:4px 0 10px}
.cam-vers .ico{width:16px;height:16px;color:#E0A526}
.cam-areas span{display:inline-flex;gap:5px;align-items:center;padding:4px 10px;border-radius:999px;font-size:12.5px;font-weight:600;background:color-mix(in srgb,var(--c) 14%,transparent);color:color-mix(in srgb,var(--c) 75%,var(--ink));border:1px solid color-mix(in srgb,var(--c) 35%,transparent)}
.cam-areas .ico{width:14px;height:14px}
.cam-meta{border:1px solid var(--line);border-left:4px solid var(--c);border-radius:14px;background:var(--surface);padding:12px 14px;display:flex;flex-direction:column;gap:6px;min-width:0}
.cam-mh b{display:block}
.cam-mic .ico{width:18px;height:18px}
.cam-st .ico{width:12px;height:12px}
.cam-st.run{color:#2F6BD6;background:color-mix(in srgb,#2F6BD6 14%,transparent)}
.cam-st.rev{color:#B45309;background:color-mix(in srgb,#F59E0B 18%,transparent)}
.cam-st.ok{color:#15803d;background:color-mix(in srgb,#22c55e 16%,transparent)}
.cam-how .ico,.cam-back .ico,.cam-ev .ico{width:14px;height:14px;vertical-align:-2px}
.cam-rutas.one{grid-template-columns:minmax(0,1fr)}
.cam-ruta{border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:14px;min-width:0}
.cam-rh b{font-size:15px}
.cam-rh small{font-weight:700;color:var(--muted,#8a93a8)}
.cam-bar i{display:block;height:100%;background:var(--c);border-radius:inherit}
.cam-steps li{display:flex;gap:10px;position:relative;padding:6px 0 10px}
.cam-steps li.ok .cam-dot{background:var(--c);border-color:var(--c);color:#fff}
.cam-steps li.run .cam-dot,.cam-steps li.rev .cam-dot{border-color:var(--c);color:var(--c)}
.cam-dot .ico{width:14px;height:14px}
.cam-steps li>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.cam-steps li b{font-size:14px}
.cam-steps li small{font-size:12.5px;color:var(--muted,#8a93a8)}
.cam-steps li em{font-style:normal;font-size:12px;font-weight:700;color:var(--c)}
.cam-steps li .btn{align-self:flex-start;margin-top:4px}
.cam-tli p{margin:4px 0 0;font-size:13.5px}
.cam-tld .ico{width:15px;height:15px}
.cam-lb input,.cam-lb textarea,.cam-lb select{font:inherit;font-weight:400}
.cam-pick label{display:inline-flex;gap:6px;align-items:center;padding:6px 10px;border:1px solid var(--line);border-radius:999px;cursor:pointer;font-size:13px}
.cam-pick label:has(input:checked){border-color:var(--c,#E0A526);background:color-mix(in srgb,var(--c,#E0A526) 12%,transparent)}
.cam-pick .ico{width:14px;height:14px}
.cam-retro p{margin:6px 0 0;font-size:13.5px}
.cam-retro .ok .ico{color:#22c55e}
.cam-retro .nx .ico{color:#E0A526}
.cam-retro .ico{width:14px;height:14px;vertical-align:-2px}
.cam-guia details summary{cursor:pointer;list-style:none}
.cam-guia details summary::-webkit-details-marker{display:none}
.cam-guia details summary::after{content:"+";float:right;font-weight:800;color:#E0A526}
.cam-guia details[open] summary::after{content:"–"}
.cam-lect .rring,.cam-lect svg{flex:none}
.cam-today>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}
.cam-today b{font-size:18px}
.cam-lstats span{display:flex;gap:5px;align-items:center}
.cam-lstats .ico{width:15px;height:15px}
.cam-day{display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;min-width:0}
.cam-day small{font-size:10.5px;font-weight:800;letter-spacing:.04em;color:var(--muted,#8a93a8);text-transform:uppercase}
.cam-day span{font-size:12.5px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.cam-day.ok{border-color:#22c55e;background:color-mix(in srgb,#22c55e 12%,var(--surface))}
.cam-day.hoy{box-shadow:0 0 0 2px #E0A526}
.cam-plans label{display:flex;gap:10px;align-items:flex-start;cursor:pointer;padding:10px 12px}
.cam-plans label:has(input:checked){border-color:#E0A526;box-shadow:0 0 0 2px color-mix(in srgb,#E0A526 30%,transparent)}
.cam-plans small{display:block}
.cam-lock .ico{width:14px;height:14px}
.cam-dtipos label{display:inline-flex;gap:5px;align-items:center;padding:5px 10px;border:1px solid var(--line);border-radius:999px;font-size:13px;cursor:pointer}
.cam-dtipos label:has(input:checked){border-color:#E0A526;background:color-mix(in srgb,#E0A526 12%,transparent)}
.cam-dtipos .ico{width:14px;height:14px}
.cam-dnew textarea{width:100%;font:inherit}
.cam-dia p{margin:8px 0 0;line-height:1.55;white-space:normal}
.cam-dt .ico{width:15px;height:15px;color:#E0A526}
.cam-old>.ico{width:28px;height:28px;color:#F59E0B;flex:none}
.cam-gi.servicio .cam-gic{background:color-mix(in srgb,#E0A526 18%,transparent);color:#E0A526}
.cam-gi.demo .cam-gic{background:color-mix(in srgb,#D9376E 16%,transparent);color:#D9376E}
.cam-gic .ico{width:20px;height:20px}
.cam-gt{flex:1;min-width:0;display:flex;flex-direction:column}
.cam-gt b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cam-gc .ico{width:14px;height:14px}
.cam-media audio,.cam-media video{width:100%;display:block;border-radius:12px}
.cam-tlbar i{position:absolute;top:1px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:#E0A526;box-shadow:0 0 0 2px var(--surface);cursor:pointer}
.cam-cbox textarea{width:100%;font:inherit;margin-top:6px}
.cam-c p{margin:2px 0 0;font-size:14px;line-height:1.45}
.cam-letra pre{white-space:pre-wrap;font:inherit;line-height:1.55;margin:8px 0 0}
.cam-prog i{position:absolute;left:0;top:0;bottom:0;width:0;background:#E0A526;transition:width .2s}
.cam-prog span{position:absolute;right:8px;top:-2px;font-size:10px;font-weight:800}
.cam-avph .ico{width:60%;height:60%}
.cam-kpis2 button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;text-align:left}
.cam-kpis2 button b{font-size:22px;line-height:1}
.cam-kpis2 button span{font-size:12px;color:var(--muted,#8a93a8)}
.cam-kpis2 button[aria-selected="true"]{border-color:#E0A526;box-shadow:0 0 0 2px color-mix(in srgb,#E0A526 28%,transparent)}
.cam-prh{display:flex;gap:10px;align-items:center;min-width:0}
.cam-prh b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cam-sig span{font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--surface-2)}
.cam-ment .ico{width:15px;height:15px}
.cam-ment select{max-width:220px}
.cam-mini span{font-size:12.5px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);display:inline-flex;gap:4px;align-items:center}
.cam-mini .ok{border-color:#22c55e;color:#15803d}
.cam-mini .ico{width:12px;height:12px}
.cam-form summary{cursor:pointer}
.cam-form[open] summary{margin-bottom:10px}
.cam-form textarea,.cam-form input,.cam-form select{width:100%}
.cam-pl p{margin:4px 0 0;font-size:13.5px}
.cam-priv .ico{width:13px;height:13px;vertical-align:-2px}
@media (max-width:640px) {
.cam-hero h2{font-size:20px}
.cam-hero p{display:none}
.cam .card{padding:12px}
.cam-ma .btn{flex:1 1 auto}
}
.cam .ico{display:inline-block;vertical-align:-3px;flex:none}
.cam section.card>b,.cam summary>b,.cam-sh>b{display:inline-flex;gap:7px;align-items:center}
.cam summary{list-style:none}
.cam summary::-webkit-details-marker{display:none}
.cam h3{text-transform:none;letter-spacing:normal}
.cam-ph h3{font-size:19px}
.eq-item .eq-newb{position:absolute;top:5px;left:5px;padding:1px 7px;border-radius:999px;background:#f59e0b;color:#1a1300;font-size:10px;font-weight:800;letter-spacing:.02em}
.chu-menu{min-width:250px;max-width:min(320px,calc(100vw - 16px))}
.chu-hd>div{min-width:0;display:flex;flex-direction:column}
.chu-hd b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chu-hd small{font-size:12px;color:var(--muted,#8a93a8)}
/* ---- 7.75.8 · Ventas ---- */
.vt-ap.ok{background:color-mix(in srgb,#22c55e 15%,var(--surface-2))!important;box-shadow:inset 3px 0 0 #22c55e;color:var(--ink)}
.vt-ap.ok b,.vt-ap.ok .vt-apnm,.vt-ap.ok .vt-apnm>*{color:var(--ink)!important}
.vt-ap.ok small,.vt-ap.ok .hint{color:color-mix(in srgb,var(--ink) 65%,transparent)!important}
.vt-bitdel svg{width:14px;height:14px}
.cu-rz-play svg{width:18px;height:18px}
.cu-rz-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cu-rz-tx small{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);font-weight:700}
.cu-rz-tx b{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cu-rz-tx>span{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cu-rz-bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#22c55e)}
.cu-stats>span{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:12.5px;color:var(--muted)}
.cu-stats svg{width:14px;height:14px}
.cu-stats b{color:var(--ink)}
.cu-hero-tx{flex:1;min-width:0}
.cu-hero h2{margin:0 0 4px;font-size:clamp(20px,2.6vw,28px);line-height:1.15}
.cu-hero p{margin:0 0 6px;color:var(--muted);font-size:13.5px;max-width:720px}
.cu-hero-done svg{width:18px;height:18px}
.cu-hero-ring b{font-size:22px;line-height:1}
.cu-hero-ring small{font-size:11px;color:var(--muted)}
@media (max-width:640px) {
.cu-rz-tx b{font-size:15.5px}
.curso-card h4{font-size:13.5px;line-height:1.25}
.curso-card .cu-cat{display:none}
.curso-card .cu-rating small{display:none}
.curso-card .cu-watchers,.curso-card .cu-done{display:none}
.cu-hero-ring b{font-size:16px}
}
.st-nav button .st-i,.st-sec h3 .st-i{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);margin-right:8px;flex:none;vertical-align:middle}
.st-nav button[aria-selected="true"] .st-i{background:var(--accent);color:#fff}
.st-find{display:flex;align-items:center;gap:6px;margin:0 4px 4px;padding:6px 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface)}
.st-find svg{width:15px;height:15px;color:var(--muted);flex:none}
.st-find input{border:none;background:none;outline:none;color:var(--ink);width:100%;font:inherit;font-size:13px;padding:2px 0}
.st-nav .st-none{padding:8px 10px;margin:0}
@media (max-width:640px) {
.st-nav .st-grp,.st-find{display:none}
.st-dlg .f2{grid-template-columns:1fr!important;display:grid}
.st-nav button .st-i{width:22px;height:22px;margin-right:4px}
}
/* 7.74 · Inicio "Para ti" */
.hf{margin:6px 0 22px}
.hf-h b{display:flex;align-items:center;gap:6px;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.hf-h svg{width:15px;height:15px}
.hf-card {
  position:relative;
  display:flex;
  align-items:center;
  gap:12px;
  text-align:left;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid var(--line);
  background:linear-gradient(145deg,color-mix(in srgb,var(--surface-2) 92%,transparent),color-mix(in srgb,var(--surface) 85%,transparent));
  color:var(--ink);
  cursor:pointer;
  transition:transform .18s,box-shadow .18s,border-color .18s;
  min-width:0;
  font:inherit;
}
.hf-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:0 10px 26px rgba(0,0,0,.28)}
.hf-card.hf-main{grid-column:span 2;background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 26%,var(--surface-2)),var(--surface-2) 75%);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
.hf-card.done{opacity:.85}
.hf-card.lead{border-style:dashed}
.hf-ic svg{width:22px;height:22px}
.hf-ring b{font-size:14px}
.hf-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.hf-tx small{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.hf-tx b{font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hf-tx>span{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hf-main .hf-tx b{font-size:19px}
.hf-card:not(.hf-main) .hf-tx b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2}
.hf-card:not(.hf-main) .hf-tx>span{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.hf-bar>i{display:block;height:100%;background:linear-gradient(90deg,#f59e0b,#ef4444)}
.hf-go svg{width:17px;height:17px}
@media (max-width:640px) {
.hf-card{flex:0 0 78%;scroll-snap-align:start}
.hf-card.hf-main{flex-basis:88%}
}
/* 7.74 · Mi música: título y artista en dos renglones */
.mu-row .pl-t{display:flex;flex-direction:column;min-width:0;flex:1}
.mu-row .pl-t b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
section.setlist.lead-next{animation:leadNext 2.4s ease}
@keyframes leadNext{0%,60%{box-shadow:0 0 0 3px var(--accent),0 0 28px color-mix(in srgb,var(--accent) 45%,transparent)}100%{box-shadow:none}}
.vt-mc>.hint{flex:1 1 180px!important;min-width:0}
.sl-pastbox>summary{cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);font-weight:600;font-size:13px;list-style:none}
.sl-pastbox>summary::-webkit-details-marker{display:none}
.sl-pastbox>summary svg{width:15px;height:15px}
.sl-pastbox>summary .n{background:var(--surface);border-radius:999px;padding:0 8px}
.sl-pastbox[open]>summary{color:var(--ink);margin-bottom:10px}
.sem-count b{font-size:22px;line-height:1.05;color:var(--accent)}
.sem-count.urgent b{color:var(--danger)}
/* 7.74 · letras automáticas */
dialog.ly-dlg .mb{padding-top:6px}
.ly-ring b{font-size:18px;line-height:1}
.ly-ring small{font-size:10px;color:var(--muted)}
.ly-cv img{width:100%;height:100%;object-fit:cover}
.ly-cv svg{width:18px;height:18px}
.ly-nm{min-width:0}
.ly-nm b,.ly-nm small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ly-nm small{color:var(--muted);font-size:12px}
.ly-st{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px;min-width:0}
.ly-ok small{font-weight:400;color:var(--muted);font-size:11.5px}
.ly-ok svg{width:14px;height:14px;vertical-align:-2px}
.ly-no>span{color:#d97706;font-weight:600}
.ly-no>span svg{width:14px;height:14px;vertical-align:-2px}
.ly-cand small{color:var(--muted)}
.ly-link input{flex:1;min-width:0;font-size:12.5px}
.qu-drop-ic svg{width:24px;height:24px}
.qu-drop small{color:var(--muted);max-width:520px}
.qu-sum .chip.ok{background:color-mix(in srgb,#22c55e 22%,transparent)}
.qu-sum .chip.warn{background:color-mix(in srgb,#f59e0b 25%,transparent)}
.qu-g header{display:flex;align-items:center;gap:10px;padding:8px 10px;background:color-mix(in srgb,var(--ink) 4%,transparent);border-bottom:1px solid var(--line)}
.qu-cv img{width:100%;height:100%;object-fit:cover}
.qu-cv svg{width:18px;height:18px}
.qu-cv.warn{color:#d97706}
.qu-gn{flex:1;min-width:0}
.qu-gn b,.qu-gn small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qu-gn small{color:var(--muted);font-size:12px}
.qu-ic svg{width:15px;height:15px}
.qu-fn{min-width:0}
.qu-fn b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.qu-fn small{color:var(--muted);font-size:11.5px}
.qu-bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#22c55e);transition:width .25s}
.qu-cats button{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:11px;cursor:pointer;transition:all .15s}
.qu-cats button:hover{color:var(--ink);border-color:color-mix(in srgb,var(--accent) 50%,transparent)}
.qu-cats button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.qu-x svg{width:14px;height:14px}
.qu-done svg{width:14px;height:14px}
@media (max-width:720px) {
.qu-g header{flex-wrap:wrap}
}
.qu-drop.mini{flex-direction:row;gap:12px;padding:10px 14px;text-align:left}
.qu-drop.mini .qu-drop-ic svg{width:18px;height:18px}
.qu-drop.mini b{font-size:13px}
.qu-drop.mini small{display:none}
/* arrastrar sobre Repertorio */
#panel-repertorio{position:relative}
#panel-repertorio.qu-over::after {
  content:'Suelta para subir los archivos · sobre una canción para asignarlos a ella';
  position:fixed;
  left:50%;
  bottom:28px;
  transform:translateX(-50%);
  z-index:50;
  padding:12px 20px;
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-weight:700;
  box-shadow:0 12px 30px rgba(0,0,0,.35);
  pointer-events:none;
  white-space:nowrap;
  max-width:92vw;
  overflow:hidden;
  text-overflow:ellipsis;
}
#panel-repertorio.qu-over .tbl-wrap{outline:2px dashed var(--accent);outline-offset:4px;border-radius:12px}
#panel-repertorio tr.qu-row>td{background:color-mix(in srgb,var(--accent) 22%,var(--surface))!important}
#panel-repertorio tr.qu-row>td:first-child{box-shadow:inset 4px 0 0 var(--accent)}
.rep-ib .n.soft{background:color-mix(in srgb,var(--ink) 55%,transparent)}
.has-head b{display:flex;align-items:center;gap:6px;font-size:15px}
.has-head small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.has-tabs button{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:6px 2px;border-radius:10px;border:1px solid transparent;background:none;color:var(--muted);font-size:10px;cursor:pointer;overflow:hidden}
.has-tabs button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.has-tabs button .ico,.has-tabs button svg{width:18px;height:18px}
.has-tabs button.on{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--ink);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
.has-done[hidden]{display:none}
.has-done button{margin-left:auto;background:none;border:none;color:var(--accent);font-weight:700;cursor:pointer}
.has-card b{display:block;font-size:13px;margin-bottom:2px}
.has-card p{margin:2px 0;font-size:13px;line-height:1.4}
.has-ol small{display:block;color:var(--muted);font-size:11.5px}
.has-use:hover{background:var(--accent);color:#fff}
.has-use.ghost{background:none}
.has-use .ico,.has-use svg{width:13px;height:13px}
.has-chips button{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:999px;padding:4px 12px;font-size:12px;cursor:pointer}
.has-chips button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.has-h small{font-weight:400;color:var(--muted)}
.has-par{display:grid;gap:4px;margin:4px 0;min-width:0}
.has-par .sel{font-size:12px;padding:4px 6px;width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.efx-cat small{opacity:.6;font-size:10px}
.efx-cat.on{background:var(--accent);border-color:var(--accent);color:#fff}
.efx-pick.bn{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}
.efx-b small{font-size:11px;line-height:1.1;text-align:center}
.efx-b.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
.efx-pal i{width:14px;height:18px;display:block}
.efx-pal i:first-child{border-radius:5px 0 0 5px}
.efx-pal i:last-child{border-radius:0 5px 5px 0}
.efx-cols input{width:34px;height:28px;padding:0;border:none;background:none}
.efx-rg input{width:100%}
.ach-sum b{font-size:20px}
.ach-tier>summary{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;list-style:none}
.ach-tier>summary::-webkit-details-marker{display:none}
.ach-tier>summary small{opacity:.7;font-size:12px}
.ach-pr{position:relative;height:14px;border-radius:7px;background:var(--surface-2);overflow:hidden;margin-top:4px;flex:1;min-width:80px}
.ach-pr i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--accent),#ffca28);border-radius:7px}
.ach-pr span{position:relative;font-size:10px;padding:0 6px;line-height:14px;font-weight:700}
.ach-pr.big{height:10px;max-width:260px}
.ach .ach-coll{flex-wrap:wrap}
/* 7.70 · avisos como accesos directos */
#sv-notifpop.nt2-pop{width:min(430px,94vw);padding:0;overflow:hidden;display:flex;flex-direction:column;max-height:min(78vh,640px)}
.nt2-hr>b{font-size:17px}
.nt2-tabs button{flex:1;border:0;background:none;color:var(--muted);font:inherit;font-size:12.5px;font-weight:700;border-radius:999px;padding:6px 8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:5px}
.nt2-tabs button[aria-selected="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.18)}
.nt2-chips button{flex:none;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:3px 10px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.nt2-chips button[aria-selected="true"]{background:var(--ink);color:var(--surface);border-color:var(--ink)}
#sv-notifpop .notif.nt2-list{max-height:none}
.nt2-ic .ico{width:21px;height:21px}
.nt2-b{min-width:0;display:flex;flex-direction:column;gap:2px}
.nt2-top b{color:var(--c);font-weight:800;letter-spacing:.02em}
.nt2-go i{font-style:normal;display:inline-block;transition:transform .15s}
.nt2-empty .ico{width:34px;height:34px;opacity:.6}
.nt2-empty b{color:var(--ink)}
/* tarjetas emergentes */
.ntoast.nt2-toast {
  position:relative;
  display:grid;
  grid-template-columns:40px 1fr auto;
  gap:10px;
  padding:12px 12px 14px;
  border-radius:16px;
  border:1px solid color-mix(in srgb,var(--c) 35%,var(--line));
  border-left:1px solid color-mix(in srgb,var(--c) 35%,var(--line));
  background:var(--surface);
  overflow:hidden;
  transform:translateX(24px) scale(.98);
}
.nt2-toast .nt-b{min-width:0;display:flex;flex-direction:column;gap:2px}
@media (max-width:640px) {
#sv-notifpop.nt2-pop{width:auto;max-height:80vh}
}
.bib-chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink,#fff)}
.verse .vver{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:8px 0 2px}
.verse .vver:empty{display:none}
.verse .vver .bib-chip{background:transparent;color:var(--vi,#fff);border-color:color-mix(in srgb,var(--vi,#fff) 40%,transparent)}
.verse .vver .bib-chip.on{background:var(--va,#F0B429);border-color:var(--va,#F0B429);color:var(--vb,#111)}
.verse .vt{transition:opacity .2s}
.bib-vr{display:grid;grid-template-columns:auto auto 1fr auto;gap:8px;align-items:center;padding:6px 8px;border-radius:8px;cursor:pointer;font-size:13.5px}
.f label.bib-vr,.bib-vr{text-transform:none;letter-spacing:0;font-weight:500}
.bib-vr.star b{color:var(--accent)}
.bib-ext a{font-weight:800;text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:2px 9px;color:var(--accent)}
.bib-ext a:hover{background:var(--surface-2)}
.bib-ext.v{justify-content:center;width:100%;margin-top:6px;color:var(--vi,inherit);opacity:.9}
.bib-ext.v a{color:var(--vi,inherit);border-color:color-mix(in srgb,var(--vi,#fff) 35%,transparent)}
.bib-ext.hm a{color:#1d4f9a;border-color:#cfd8ee;background:#fff;font-family:var(--font-body,inherit)}
.bib-dg b{color:#E4572E}
.bib-dg.ok b{color:#22A35A}
.bib-dg small{grid-column:2;color:var(--muted);word-break:break-all}
.bib-vr.locked b{color:var(--muted)}
.bib-vr span{color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bib-sample p{margin:6px 0;font-family:Georgia,serif}
.bib-sample small{color:var(--muted)}
button.hm-v{border:0;cursor:pointer;font-family:inherit}
/* 7.68 · Homilética */
#panel-homiletica{max-width:1100px;margin:0 auto}
.hm-card>b{font-size:16px;line-height:1.25}
.hm-tema p{margin:4px 0}
.hm-gs h3{margin:0 0 6px;font-size:16px}
.hm-gs p{margin:0;line-height:1.55}
.hmg-row input,.hmg-row textarea{border:1px solid var(--line);border-radius:8px;padding:7px 9px;background:var(--bg);color:var(--ink);font:inherit}
.hm-paper .hint{color:#8a90a0}
.hm-inc b{font-weight:600}
.hm-ck.ok{background:#e3f6ea;color:#1c7a45}
.hm-ck.no{background:#fff1e6;color:#a8541b}
.hm-sug:empty{display:none}
.hm-sug .ico{width:14px;height:14px;vertical-align:-2px;color:#3D82D0}
.hm-sug-h b{color:#1b1f2a}
.hm-vc button{border:0;background:none;padding:3px 8px 3px 10px;font:inherit;font-weight:700;color:#1d4f9a;cursor:pointer}
.hm-vc a{display:inline-grid;place-items:center;padding:0 8px;color:#6b7a99;border-left:1px solid #e3e8f4;align-self:stretch;font-size:11px;font-weight:700;text-decoration:none;font-family:var(--font-body,inherit)}
.hm-vc a .ico{width:12px;height:12px}
.hm-vc.on{background:#3D82D0;border-color:#3D82D0}
.hm-vc.on button,.hm-vc.on a{color:#fff}
.hm-er>span:first-child{flex:1 1 200px}
.hm-er small{flex-basis:100%;color:var(--muted);padding-left:4px}
.hm-evf h3{margin:0 0 4px}
.hm-stars button{border:0;background:none;font-size:22px;line-height:1;color:var(--line);cursor:pointer;padding:0 1px}
.hm-stars button.on{color:#F0B429}
@media (max-width:640px) {
.hm-dlg .rp-2{grid-template-columns:1fr!important}
.hm-dlg .mf{flex-wrap:wrap;gap:6px}
.hm-dlg .mf>span[style*="flex:1"]{display:none}
.hm-dlg .mb{overflow-x:hidden}
}
/* 7.97: campos de una línea que crecen (tema, título, puntos) y textos que nunca se cortan */
textarea.hm-one{overflow:hidden;min-height:0;line-height:1.35;display:block}
.hm-ptt>b{flex:0 0 auto}
.vt-modes button{display:flex;align-items:center;gap:10px;text-align:left;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:14px;padding:10px 12px;cursor:pointer;font:inherit}
.vt-modes button .ico{width:26px;height:26px;flex:none;color:var(--muted)}
.vt-modes button b{display:block;font-size:14.5px}
.vt-modes button small{display:block;color:var(--muted);font-size:11.5px}
.vt-modes button[aria-selected="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.vt-modes button[aria-selected="true"] .ico{color:var(--accent)}
.vt-mine-v+.vt-mine-v{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}
.vt-mine .vt-turno{margin-top:6px}
.vt-mine .vt-turno small{display:block}
.vt-mc.ok{background:color-mix(in srgb,#22C267 12%,var(--surface-2))}
.vt-mc .t{flex:1 1 160px;min-width:0;display:flex;flex-direction:column}
.vt-mc .m{display:flex;flex-direction:column;align-items:flex-end;min-width:64px}
.vt-mc .m small{font-size:10.5px;color:var(--muted)}
.vt-mc .acts{display:flex;gap:6px;flex-wrap:wrap}
.vt-mc b.ok,.vt-bitr .ok{color:#22A35A}
.vt-mc b.deb,.vt-bitr .deb{color:#E4572E}
.vt-aporte .vt-apmode{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.vt-apmode label{display:flex;align-items:center;gap:6px;border:1.5px solid var(--line);border-radius:999px;padding:5px 12px;cursor:pointer;font-size:13px;background:var(--surface)}
.vt-apmode label.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface));font-weight:700}
.vt-apmode input{margin:0}
.vt-aprow input[type=number]{width:140px;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:7px 9px;font-size:15px;font-weight:700}
.vt-tchip .ico{width:12px;height:12px}
.vt-tchip.none{background:transparent;border:1px dashed var(--line);color:var(--muted);font-weight:500}
.vt-rolv .chip{font-size:10.5px}
.vt-payo b{font-size:14.5px}
.vt-payo small{color:var(--muted);font-size:11.5px}
.vt-payok .ico{width:46px;height:46px;color:#22A35A}
.vt-payok b{font-size:17px}
.vt-bitbar .lib-chips{margin:0}
.vt-bitbar .rep-search{flex:1 1 180px;min-width:140px}
.vt-bitr .w small{display:block;color:var(--ink);font-weight:600;font-size:12px}
.vt-bitr .d small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.vt-bitr .d s{opacity:.75}
.vt-paycfg h4 small{font-weight:500}
@media (max-width:640px) {
.vt-modes button small{display:none}
}
.pm-float.right{left:auto;right:8px}
.pm-fb .ico{width:20px;height:20px}
.pm-fb.on{background:var(--blue);color:#fff}
.pm-fb.pm-rec .ico{color:#ff6b6b}
.pm-fb.pm-rec.on{background:#ef4444;color:#fff}
.pm-fb.pm-grab.on{background:#ef4444;color:#fff;animation:pmBlink 1.4s ease-in-out infinite}
.pm-girar-in b{font-size:20px}
.pm-girar-in p{margin:0;color:rgba(255,255,255,.78);font-size:14px;line-height:1.5}
.pm-girar-ico .ico{width:72px;height:72px;color:#6ea8ff;animation:pmGiro 2.2s ease-in-out infinite}
@keyframes pmGiro{0%,30%{transform:rotate(0)}55%,100%{transform:rotate(-90deg)}}
body.pm-fs-on #panel-pitch>*{flex:none;margin:0}
body.pm-fs-on #pm-cv{flex:1 1 auto;height:auto!important;min-height:0;width:100%}
body.pm-fs-on #panel-pitch .pm-tape>p.hint,body.pm-fs-on #panel-pitch .pm-tape .pm-ab .hint{display:none}
@media (max-width:820px) and (orientation:landscape) {
#panel-pitch .pm-tip{display:none}
}
.slot-hint b{color:var(--text)}
.pmv-t{flex:1;min-width:0}
.pmv-t b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pmv-t small{color:var(--muted);font-size:11px}
.pmv-pc{display:flex;flex-direction:column;align-items:center;min-width:64px}
.pmv-pc .ok{font-size:17px;font-weight:800;color:#22c55e}
.pmv-pc small{font-size:9.5px;color:var(--muted)}
.pmv-avance b{font-size:17px}
.pmv-avance.sube b{color:#22c55e}
.pmv-avance.baja b{color:#f5b301}
.pmv-avance span{font-size:12.5px;color:var(--muted)}
dialog.apx-dlg .mf{position:sticky;bottom:0;z-index:6;background:var(--surface);padding-top:8px}
.apx{position:relative}
.sem-toca b{color:var(--text)}
.arm-nota b{color:var(--text)}
.qr-box canvas{width:min(260px,70vw);height:auto;border-radius:12px;background:#fff;padding:8px;box-shadow:0 6px 20px rgba(0,0,0,.18)}
.qr-info>div{display:flex;gap:8px;align-items:center}
.qr-info>div span{color:var(--muted);min-width:92px;font-size:11.5px}
.pmv-sel label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}
.pmv-sel select{flex:1;max-width:280px}
.perm-find{display:flex;gap:6px;align-items:center;flex:1;min-width:150px;border:1px solid var(--line);border-radius:999px;padding:4px 10px}
.perm-find span{display:inline-flex;color:var(--muted)}
.perm-find .ico{width:15px;height:15px}
.perm-find input{border:0;background:none;outline:0;flex:1;min-width:0;font:inherit;color:inherit}
.perm-sh h5{margin:0;flex:1;min-width:140px;font-size:13px}
.perm-sh h5 small{display:block;font-weight:400;color:var(--muted);font-size:11px;text-transform:none;letter-spacing:0}
.perm-all small{color:var(--muted);font-size:10.5px;margin-right:2px}
.perm-n{flex:1;min-width:96px;font-size:13px;font-weight:600}
.perm-b:hover{background:var(--bg2,rgba(127,127,127,.16))}
.perm-b.on.no{background:#6b7280;color:#fff}
.perm-b.on.ver{background:#3D82D0;color:#fff}
.perm-b.on.own{background:#7C6CF6;color:#fff}
.perm-b.on.ed{background:#16a34a;color:#fff}
.perm-all .perm-b{border:1px solid var(--line);padding:4px 8px;font-size:10.5px}
@media (max-width:700px) {
.perm-n{flex-basis:100%;min-width:0;margin-bottom:2px}
}
/* 7.90 · marcas en el rol (quién cubre a quién, quién avisó que no puede) */
.rol-cell{display:flex;align-items:center;gap:4px;min-width:0}
.rol-cell select{flex:1;min-width:0}
.rol-mk .ico{width:13px;height:13px;stroke-width:2.4}
.rol-mk.cov{background:color-mix(in srgb,var(--ok,#1f7a3f) 14%,transparent);color:var(--ok,#1f7a3f);border-color:color-mix(in srgb,var(--ok,#1f7a3f) 40%,transparent)}
.rol-mk.na{background:color-mix(in srgb,#E4262C 14%,transparent);color:#E4262C;border-color:color-mix(in srgb,#E4262C 40%,transparent)}
.row.ra-flash{animation:raflash 1.1s ease-in-out 2}
@keyframes raflash{0%,100%{box-shadow:none}50%{box-shadow:0 0 0 3px color-mix(in srgb,#E4262C 55%,transparent)}}
.rol-avisos .ra-h{display:flex;gap:8px;align-items:center;color:#E4262C}
.rol-avisos .ra-sub{margin:4px 0 10px}
.rol-avisos .ra-list{display:flex;flex-direction:column;gap:6px}
.rol-avisos .ra-it{display:grid;grid-template-columns:96px minmax(120px,1fr) minmax(0,1.3fr) auto;gap:8px;align-items:center;padding:7px 8px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.rol-avisos .ra-n{display:flex;flex-direction:column;min-width:0}
.rol-avisos .ra-n small{color:var(--muted)}
.rol-avisos .ra-b{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:700px) {
.rol-avisos .ra-it{grid-template-columns:1fr;gap:4px}
}
/* una ventana modal va fija en pantalla: con position relative el navegador la ponía hasta arriba del documento y, al enfocar su ✕, la página saltaba al inicio */
dialog:modal{position:fixed!important}
/* dos columnas que no se salen de la pantalla (antes los campos de la derecha quedaban cortados) */
.f2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.f2>*{min-width:0}
dialog input:not([type=checkbox]):not([type=radio]):not([type=color]),dialog select,dialog textarea{min-width:0;max-width:100%;box-sizing:border-box}
dialog .f{grid-template-columns:minmax(0,1fr)}
dialog .f>input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]):not([type=file]),dialog .f>select,dialog .f>textarea{width:100%}
@media (max-width:640px) {
/* ventanas a pantalla completa: encabezado y botones siempre visibles, lo de en medio es lo que se desliza */
dialog:modal:not(.apx-dlg):not(.cu-pop):not(.chart-dlg):not(.verse-dlg):not(#gate-prev):has(>.mb){display:flex;flex-direction:column;overflow:hidden}
dialog:modal:not(.apx-dlg):not(.cu-pop):not(.chart-dlg):not(.verse-dlg):not(#gate-prev):has(>.mb)>.mh{flex:none}
dialog:modal:not(.apx-dlg):not(.cu-pop):not(.chart-dlg):not(.verse-dlg):not(#gate-prev):has(>.mb)>.mb{flex:1 1 auto;min-height:0;max-height:none!important;overflow:auto;-webkit-overflow-scrolling:touch}
dialog:modal:not(.apx-dlg):not(.cu-pop):not(.chart-dlg):not(.verse-dlg):not(#gate-prev):has(>.mb)>.mf{flex:none;flex-wrap:wrap;row-gap:6px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}
/* chat: con la barra lateral cerrada no se ven textos apretados */
#panel-chat .chat:not(.rail-open) .chat-side p.hint{display:none}
}
/* 7.93 · Team Audio técnico + Aprende */
#panel-audio .au-views2{display:flex;gap:4px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%;padding-bottom:2px}
#panel-audio .au-views2::-webkit-scrollbar{display:none}
.au-vb svg{width:20px;height:20px}
.au-vb:hover{background:var(--surface-2)}
.au-vb.on{background:color-mix(in srgb,var(--accent) 14%,var(--surface));border-color:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--ink)}
.au-vb.on svg{color:var(--accent)}
@media (max-width:640px) {
#panel-audio .au-head{flex-direction:column;align-items:stretch}
}
.at-tabs button{flex:0 0 auto;border:0;background:transparent;color:var(--muted);font-weight:600;padding:7px 12px;border-radius:8px;cursor:pointer;white-space:nowrap}
.at-tabs button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.at-tabs button i{font-style:normal;font-size:11px;opacity:.7}
.seg button.on{background:var(--navy,#1f2d3d);color:#fff}
.at-covi small{color:var(--muted);font-size:11px}
.at-grid>.card{margin:0}
.at-memh .avatar{width:44px;height:44px;flex:0 0 44px}
.at-role i{font-style:normal;color:var(--accent);letter-spacing:1px;font-size:9px}
.at-pi[hidden]{display:none}
.at-log summary{cursor:pointer;font-weight:600}
.at-t th{position:sticky;top:0;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);padding:6px 6px;border-bottom:1px solid var(--line);background:var(--surface);white-space:nowrap}
.at-t td{padding:4px 6px;border-bottom:1px solid var(--line);vertical-align:middle}
select.at-ti{min-width:92px}
.at-tcan td:first-child,.at-tcan th:first-child{position:sticky;left:0;background:var(--surface);z-index:1}
tr.cc .at-colbtn{background:var(--cc);border-color:var(--cc);color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.4)}
tr.cc td:first-child{box-shadow:inset 3px 0 0 var(--cc)}
.at-tfoot .hint{font-size:12px}
.at-savebar.on{display:flex}
.at-savebar span{margin-right:auto;font-weight:600;font-size:13px}
.at-savebar .btn.ghost{color:var(--surface);border-color:rgba(255,255,255,.35)}
.at-tiog h5{margin:0 0 4px;font-size:12px;text-transform:uppercase;color:var(--muted)}
.at-patchh label{display:flex;gap:6px;align-items:center;font-weight:600;margin-right:auto}
.at-patchh select{border:1px solid var(--line)}
.at-filt>select{max-width:220px;border-color:var(--line)}
.at-cats .chip i{font-style:normal;opacity:.65;font-size:11px}
.at-iti svg{width:24px;height:24px}
.at-iti img{width:100%;height:100%;object-fit:cover}
.at-itb .hint{font-size:12px}
.at-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.at-kpi b{display:block;font:800 22px/1.1 var(--display,inherit)}
.at-kpi span{font-size:12px;color:var(--muted)}
.at-cmph b{margin-right:4px}
.at-cotr [data-k="link"],.at-cotr [data-k="nota"]{grid-column:span 3}
.at-cotf .ico-btn{margin-left:auto}
.at-urg button.on{background:var(--c);color:#fff}
.al-sb svg{width:16px;height:16px}
.al-sb.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
.al-ab.on{background:#E4572E;color:#fff;border-color:#E4572E}
.al-vol input{width:90px}
.al-band.sel{box-shadow:0 0 0 1px var(--bc) inset}
.al-band.off{opacity:.55}
.al-on.on{background:#3fd3ff;color:#062a36;border-color:#3fd3ff;box-shadow:0 0 8px rgba(63,211,255,.5)}
.al-solo.on{background:#ffc53d;color:#2a2000;border-color:#ffc53d}
.al-knob svg{width:52px;height:52px}
.al-tf .chip{background:#262b31;color:#e8edf2;border-color:#4b535c}
.al-tf .chip:hover{border-color:#3fd3ff}
.al-info b{display:block;color:#3fd3ff;margin-bottom:2px}
.al-gf input{writing-mode:vertical-lr;direction:rtl;-webkit-appearance:slider-vertical;appearance:slider-vertical;width:22px;height:150px;accent-color:#ffc53d}
.al-rh .seg button{background:#262b31;color:#9aa4ae}
.al-rh .seg button.on{background:#3fd3ff;color:#062a36}
.al-ro.ok{background:#1f6b40;border-color:#52d68a}
.al-ro.bad{background:#6b1f1f;border-color:#ff5a5a}
.al-rres.ok{background:#1f6b40}
.al-rres.bad{background:#4a2020}
.au-inrol input{margin:0}
.au-gp small{margin-left:auto}
.au-sa-new input{min-width:0}
.au-prox-i svg{width:22px;height:22px}
.au-prox b{display:block;font-size:16px;margin-top:2px}
.au-prox p{margin:4px 0 0}
.at-role.ok i{color:#2e9e5b}
.at-role.low i{color:var(--danger)}
.at-sv b{font-size:15px}
.at-sv.ok{color:#2e9e5b}
.at-srow input[type=range]{width:100%;margin:6px 0;accent-color:var(--accent)}
.at-srow textarea{width:100%;min-height:34px;resize:vertical}
.at-doc svg{width:14px;height:14px}
.at-pri [data-prdel]{grid-column:4;grid-row:1}
.at-pri label{display:flex;flex-direction:column;font-size:11px;color:var(--muted)}
.at-pri select,.at-pri input{min-width:0}
@media (max-width:760px) {
.au-sa-it>b{grid-column:1/-1}
.at-pri [data-prdel]{grid-column:3;grid-row:1}
}
.rp-btn.empty{color:var(--muted);padding-left:8px}
.rp-h>div{flex:1;display:flex;flex-direction:column}
.rp-h small{color:var(--muted)}
.rp-g h5{margin:10px 6px 4px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.rp-it.on{background:color-mix(in srgb,var(--accent) 16%,transparent)}
.rp-t small{color:var(--muted);font-size:12px}
.rp-it.no .rp-t small{color:var(--danger);font-weight:700}
.rp-it.weak .rp-t small{color:#c99700}
.rp-ck svg{width:18px;height:18px}
.asq-h>div,.asc-h>div{flex:1;display:flex;flex-direction:column;min-width:0}
.asq-h small,.asc-h small{color:var(--muted)}
.asq-ok svg{width:22px;height:22px}
.asq-ok small{margin-left:auto;opacity:.9}
.asq-bar i{display:block;height:100%;background:var(--accent);transition:width .3s linear}
.asc-res span{display:flex;flex-direction:column}
.asc-res svg{width:22px;height:22px}
.asc-tabs button{border:0;background:none;color:var(--muted);font:inherit;font-weight:700;padding:8px 12px;border-bottom:3px solid transparent;cursor:pointer}
.asc-tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}
.asc-tabs i{font-style:normal;background:var(--surface-2);border-radius:10px;padding:0 7px;margin-left:4px;font-size:12px}
.asc-it>span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column}
.asc-it small{color:var(--muted);font-size:12px}
.asc-bt button{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-weight:800;cursor:pointer}
.asc-bt button.on{background:var(--c);border-color:var(--c);color:#fff}
.asf-days label{display:flex;flex-direction:column;font-size:12px;color:var(--muted)}
.asf-users label{display:flex;gap:8px;align-items:center;padding:4px 0}
.grid .at-qr{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-left:2px;vertical-align:super}
.hm-qb svg,.hm-qb .ico{width:12px;height:12px}
.hm-lbl .hm-qb{margin-left:auto}
.hm-pref>span{flex:0 0 auto;font-style:italic}
.hm-pref>input{flex:1 1 auto;min-width:0;border:0;border-bottom:1px dashed #c8cfdd;background:transparent;color:#1b1f2a;font:inherit;padding:2px 0}
.hm-pref>input:focus{outline:none;border-bottom-color:var(--accent)}
.hm-pref>b{color:#1b1f2a;font-weight:600}
.hm-enf>summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:10px 14px}
.hm-enf>summary::-webkit-details-marker{display:none}
.hm-enf>summary small{overflow-wrap:anywhere}
.hm-enf-b .f{margin:0}
.hm-enf-b textarea,.hm-enf-b input,.hm-enf-b select{width:100%;min-width:0;box-sizing:border-box}
.hm-chips button{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:999px;padding:4px 12px;font-size:12.5px;cursor:pointer}
.hm-chips button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.hm-lente.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);grid-column:1/-1}
.hm-lente-h b{font-size:13px}
.hm-lente-h span{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.hm-lente ol{margin:0 10px 8px 28px;padding:0;font-size:13px}
.hm-lente>.btn{margin:0 10px 10px}
.hm-enfv p{margin:2px 0;font-size:13.5px;overflow-wrap:anywhere}
.has-secs small{background:color-mix(in srgb,var(--accent) 25%,transparent);border-radius:999px;padding:0 6px;margin-left:2px;font-size:10.5px}
.has-q>label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;line-height:1.35}
.has-q>textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--bg);color:var(--ink);font:inherit;font-size:13.5px;resize:vertical;min-height:52px}
.has-q .has-btns{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px}
.hm-chk>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:10px 14px;flex-wrap:wrap}
.hm-chk>summary::-webkit-details-marker{display:none}
.hm-chk-bar>i{display:block;height:100%;background:linear-gradient(90deg,#f0b429,#22c55e);border-radius:99px;transition:width .3s}
.hm-chk ul{list-style:none;margin:0;padding:0 14px 4px;display:grid;gap:4px}
.hm-chk li{display:flex;gap:8px;align-items:flex-start;font-size:13.5px}
.hm-chk li>span{flex:0 0 16px;text-align:center;font-weight:700}
.hm-chk li small{display:block;color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.hm-pr-top .ico-btn{color:#f3f5fa}
.hm-pr-clock b{font:700 26px/1 ui-monospace,SFMono-Regular,Menlo,monospace}
.hm-pr-clock small{color:#9aa3b8}
.hm-pr-bar>i{display:block;height:100%;width:0;background:#22c55e;transition:width .3s}
.hm-pr-bar.over>i{background:#ef4444}
.hm-pr-nav button{flex:0 0 auto;border:1px solid #2c3446;background:#171c27;color:#cfd5e3;border-radius:999px;padding:4px 12px;font-size:12.5px;cursor:pointer;display:flex;gap:6px;align-items:baseline}
.hm-pr-nav button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.hm-pr-nav small{opacity:.75;font-size:11px}
.hm-pr-body h2{margin:0 0 6px;font:700 clamp(22px,4vw,34px)/1.2 Georgia,'Times New Roman',serif;overflow-wrap:anywhere}
.hm-pr-foot .btn{flex:1 1 0}
.hm-pr-foot>span{flex:0 0 auto;color:#9aa3b8}
.hm-kpi b{font-size:22px;line-height:1.1}
.hm-kpi span{font-size:12px;color:var(--muted)}
.hm-grow-t>span{display:flex;align-items:center;gap:6px}
.hm-serie>h4,.hm-serie-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:6px 0 8px;font-size:15px}
.hm-prac h4{margin:14px 0 4px;font-size:14.5px}
.hm-prac-row>span{overflow-wrap:anywhere}
.hm-prac-row>em{grid-column:1/-1;font-size:12px;color:var(--muted);font-style:normal}
.hm-prac-row>em:empty{display:none}
.hm-prac-row button,.hm-prac-tit button{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:999px;padding:4px 12px;font:inherit;font-size:12.5px;cursor:pointer}
.hm-prac-tit button{border-radius:10px;text-align:left;padding:8px 12px;font-size:13.5px;white-space:normal}
.hm-prac button.ok{background:#16a34a;border-color:#16a34a;color:#fff}
.hm-prac button.no{background:#dc2626;border-color:#dc2626;color:#fff}
.hm-prac-dud textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--bg);color:var(--ink);font:inherit}
@media (max-width:640px) {
.hm-chk>summary{padding:10px 12px}
}
.has-tabs button{flex:1 0 auto;min-width:52px;padding:6px 6px}
/* 7.98: ¿Quién ayudó en cada venta? */
.vt-ayuda .vt-ayh{display:flex;align-items:center;gap:8px;margin:10px 0 6px;font-size:.92rem}
.vt-ayuda .vt-ayh span{min-width:22px;padding:1px 8px;border-radius:999px;background:var(--surface-2);font-size:.8rem;text-align:center}
.vt-ayuda .vt-ayh.no span{background:color-mix(in srgb,#ef4444 18%,var(--surface-2));color:var(--ink)}
.vt-ayr.no{border-left-color:#ef4444}
.vt-ayr.no.aviso{border-left-color:#94a3b8}
.vt-ayr.ok{border-left-color:#22c55e}
.vt-ayn small{overflow-wrap:anywhere}
.vt-ayr>.btn{flex:0 0 auto}
.vt-aysi>summary{cursor:pointer;display:flex;align-items:center;gap:8px;padding:4px 0}
.vt-aysi>.vt-aylist{margin-top:6px}
.vt-aytipo label{display:flex;align-items:center;gap:8px}
.vt-part-t th:first-child,.vt-part-t td:first-child{text-align:left;position:sticky;left:0;background:var(--surface);z-index:1}
.vt-part-v small{font-weight:400;opacity:.7}
.vt-pc.ok{color:#16a34a;font-weight:700}
.vt-pc.no{color:#ef4444;font-weight:700}
.vt-pc.na,.vt-pc.pend{opacity:.5}
@media (max-width:640px) {
.vt-ayr>.btn{margin-left:auto}
}
.vt-mseg3>label{flex:1 1 150px}
.vt-reembw[hidden],[data-vtrow][hidden]{display:none!important}
.vt-medio.reemb.ok{background:color-mix(in srgb,#22c55e 18%,var(--surface-2))}
.hoy-ic svg{width:26px;height:26px}
.hoy-tx small{opacity:.8;font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}
.hoy-tx b{font-size:1.25rem;line-height:1.25;overflow-wrap:anywhere}
.hoy-tx span{overflow-wrap:anywhere}
@media (max-width:640px) {
.hoy-btns .btn{flex:1 1 auto}
}
.inv-t small{opacity:.75;overflow-wrap:anywhere}
/* 7.100 · ensayos que cambian de día + ensayos de eventos */
.ens-chip.mov{background:#fff6e0;border-color:#d99a06;color:#7a5200;font-weight:700}
.ens-chip.mov small{font-weight:500;color:inherit;opacity:.85}
.ens-chip.evt{background:var(--surface-2);border-color:#7c5cd6;font-weight:600}
.ens-row.mov{border-color:#d99a06;background:#fff6e0}
.ens-row.evt b{font-weight:700}
.ens-mov .f{flex:1 1 120px;margin:0}
.ens-mov input{width:100%}
.ens-ley>span,.ens-ley>div{flex:1;min-width:0}
.ens-ley small{display:block;opacity:.8;margin-top:2px}
.ens-ley .btn{flex:none}
.ens-ley.off{border-color:var(--danger,#dc2626);background:var(--danger-bg,#fdecec)}
.ens-ley.off b{color:var(--danger,#b91c1c)}
.ens-ley.mov{border-color:#d99a06;background:#fff6e0}
.ens-ley.evt{border-color:#7c5cd6}
.chip.ens-mini{font-size:11px}
.chip.ens-mini.off{background:var(--danger-bg,#fdecec);color:var(--danger,#b91c1c);border-color:var(--danger,#dc2626)}
.chip.ens-mini.mov{background:#fff6e0;color:#7a5200;border-color:#d99a06}
.ensev-row input{width:100%;min-width:0;box-sizing:border-box;font:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text)}
.grid th.ens-th.mov{background:#fff6e0}
.grid th.ens-th.evt{background:var(--surface-2)}
small.ens-mv{color:#b07800;font-weight:600}
@media (prefers-color-scheme:dark) {
:root:not([data-theme="light"]) .ens-chip.mov,:root:not([data-theme="light"]) .ens-row.mov,:root:not([data-theme="light"]) .ens-ley.mov,:root:not([data-theme="light"]) .chip.ens-mini.mov,:root:not([data-theme="light"]) .grid th.ens-th.mov{background:#3a2c08;color:#f4d27a}
}
:root[data-theme="dark"] .ens-chip.mov,:root[data-theme="dark"] .ens-row.mov,:root[data-theme="dark"] .ens-ley.mov,:root[data-theme="dark"] .chip.ens-mini.mov,:root[data-theme="dark"] .grid th.ens-th.mov{background:#3a2c08;color:#f4d27a}
.ens-card .ens-row.mov i{color:#b07800;font-weight:800}
.ens-strip .btn.small{padding:3px 10px}
.pv-dlg{width:100vw;height:100vh;height:100dvh;max-height:100dvh;overflow:hidden;box-sizing:border-box}
.pv-bar{flex:none}
.pv-img{flex:1 1 auto;min-height:0;min-width:0;overflow:hidden;position:relative}
.pv-img img{display:block;width:auto;height:auto;max-width:calc(100vw - 20px);max-height:calc(100vh - 80px);max-height:calc(100dvh - 80px);object-fit:contain}
@media (min-width:641px) {
/* 7.102 · chat estilo Messenger: la lista baja desde el botón de arriba y las ventanas se acomodan abajo en fila */
.chat-pop{top:calc(var(--tb-h,56px) + 6px);bottom:auto;right:12px;height:min(calc(100vh - var(--tb-h,56px) - 24px),620px);animation:cpDrop .18s ease-out}
}
@keyframes cpDrop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.cw-tool .ico{width:20px;height:20px}
.cw-menu button{display:flex;gap:8px;align-items:center;border:0;background:none;color:inherit;font:inherit;font-size:13px;padding:8px 10px;border-radius:8px;cursor:pointer;text-align:left}
.cw-menu button:hover{background:var(--surface-2)}
.cw-menu .ico{width:16px;height:16px}
.cwn-to span{font-weight:700;color:var(--muted);font-size:13px}
.cwn-to input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:inherit;font-size:14px;padding:4px 0;outline:none}
.cwn-it .t b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cwn-it .t small{display:block;font-size:11.5px;color:var(--muted)}
.cwn-it .avatar,.cwn-it .chat-hash{width:34px;height:34px;flex:none}
.prj-chips .chip-btn{font-size:12.5px}
.ca-b .ico{width:17px;height:17px}
.cwin .ca-b{width:26px;height:26px}
.cwin .ca-b .ico{width:16px;height:16px}
.re-pop button{font-size:26px;padding:4px;border-radius:50%;transition:transform .12s ease}
.re-pop button:hover{transform:scale(1.25);background:transparent}
.re-pop button.on{background:color-mix(in srgb,var(--accent) 22%,transparent)}
.re-pop .re-more .ico{width:20px;height:20px}
.re-pop.big{border-radius:14px;padding:6px;width:min(320px,94vw)}
.re-grid button{font-size:22px;padding:4px}
.re-grid button:hover{transform:scale(1.15);background:var(--surface-2)}
.cm-menu button{display:flex;align-items:center;gap:10px;border:0;background:none;color:inherit;font:inherit;font-weight:700;font-size:14px;padding:9px 12px;border-radius:8px;cursor:pointer;text-align:left}
.cm-menu button:hover{background:var(--surface-2)}
.cm-menu button .ico{width:17px;height:17px;opacity:.85}
.cm-menu button.danger{color:var(--danger)}
.chat-fwd .ico{width:12px;height:12px}
.chat-pinned .ico{width:12px;height:12px;color:var(--accent)}
.chat-pins .cp-ic .ico{width:16px;height:16px;color:var(--accent)}
.chat-pins .cp-go b{display:block;font-size:11.5px;color:var(--accent)}
.chat-pins .cp-go small{display:block;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fw-it input{width:18px;height:18px;flex:none;accent-color:var(--accent)}
.fw-av .avatar,.fw-av .chat-hash,.fw-av img{width:34px;height:34px;border-radius:50%;display:block}
.fw-it .t b{display:block;font-size:13.5px}
.fw-it .t small{color:var(--muted);font-size:11.5px}
@media (hover:none),(max-width:640px) {
.ca-b .ico{width:19px;height:19px}
}
.rx-pop>button[data-repick-emo]{padding:2px;border-radius:50%;animation:rxIn .28s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(var(--i,0)*35ms)}
.rx-pop>button[data-repick-emo]:hover{transform:translateY(-6px) scale(1.28);background:transparent}
.rx-pop>button[data-repick-emo].on{background:color-mix(in srgb,var(--accent) 24%,transparent)}
.bd-card.bd2:hover{transform:translateY(-3px);box-shadow:0 14px 34px -16px rgba(0,0,0,.6)}
.bd-card.bd2 .bd-cover{height:64px;background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 55%,#10131c),color-mix(in srgb,var(--accent) 20%,#10131c));background-size:cover!important;background-position:center!important;position:relative}
.bd-card.bd2 .bd-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.35))}
.bd-card.bd2 .bd-bnname{position:absolute;right:8px;bottom:6px;z-index:1;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#fff;opacity:0;transition:opacity .15s;text-shadow:0 1px 3px rgba(0,0,0,.7)}
.bd-card.bd2:hover .bd-bnname{opacity:.9}
.bd-card.bd2 .bd-tro{position:absolute;top:6px;right:6px;z-index:2;display:flex;gap:2px;align-items:center;max-width:none;margin:0;min-height:0;padding:2px 4px;border-radius:999px;background:rgba(10,12,20,.45);backdrop-filter:blur(4px)}
.bd-card.bd2 .bd-tro:empty{display:none}
.bd-card.bd2 .bd-tro i{font-style:normal;font-size:10.5px;font-weight:800;color:#fff;padding:0 3px}
.bd-card.bd2 .bd-pchip{top:6px;left:6px}
.bd-card.bd2 .bd-main{display:flex;gap:10px;align-items:flex-start;padding:0 12px 12px;margin-top:-30px;position:relative;z-index:1}
.bd-card.bd2 .bd-av{margin:0;flex:none;line-height:0;border-radius:50%;padding:3px;background:var(--surface)}
.bd-card.bd2 .bd-body{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;padding:34px 0 0}
.bd-card.bd2 .bd-nm{font-size:15px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bd-card.bd2 .bd-role{justify-content:flex-start;margin-top:1px}
.bd-card.bd2 .bd-role .hint{font-size:11px}
.bd-card.bd2 .bd-xp{font-size:11px}
.bdc-hid .bdc-idt b{display:block;font-size:26px;line-height:1.1;font-family:var(--display,inherit);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bdc-bnname .ico{width:13px;height:13px}
@media (max-width:640px) {
.bdc-hid .bdc-idt b{font-size:20px}
}
/* ===== reacciones a las fotos ===== */
.bdc-re{position:absolute;left:12px;bottom:12px;z-index:4}
.bdc-dots~.bdc-re,.bdc-re{bottom:30px}
.bdc-rbtn .ico{width:22px;height:22px}
.fre b{font-weight:800}
.fre.big{font-size:14px;padding:4px 12px 4px 5px}
.pv-rebar{flex:none;display:flex;align-items:center;justify-content:center;gap:12px;padding:0 12px 14px}
.pv-rbtn{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;font:inherit;font-weight:700;padding:8px 14px;cursor:pointer}
.pv-rbtn .ico{width:18px;height:18px}
.pv-rbtn:hover{background:rgba(255,255,255,.22)}
.pv-dlg .pv-img img{max-height:calc(100dvh - 130px)}
.mu-shdot .ico{width:13px;height:13px}
.mu-shit .i{display:inline-flex}
.mu-shit .l{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.mu-shit .l small{font-size:11px;color:var(--muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mu-shchip .ico{width:14px;height:14px}
.mush-p.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface))}
.mush-p img,.mush-ph{width:32px;height:32px;border-radius:50%;object-fit:cover;flex:none}
.mush-p>span{display:flex;flex-direction:column;min-width:0}
.mush-p small{color:var(--muted);font-size:12px}
.uso-seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.uso-seg button{border:0;background:transparent;padding:6px 12px;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer}
.uso-seg button[aria-pressed="true"]{background:var(--accent);color:#fff}
.uso-kpis>div{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface-2)}
.uso-kpis b{display:block;font-size:22px;line-height:1.1}
.uso-kpis span{font-size:12px;color:var(--muted)}
.uso-kpis .warn b{color:var(--danger,#E4262C)}
.uso-tbl th[data-usosort]{cursor:pointer;white-space:nowrap}
.uso-row:hover,.uso-row.open{background:color-mix(in srgb,var(--accent) 7%,transparent)}
.uso-who img,.uso-who>i{width:34px;height:34px;border-radius:50%;object-fit:cover;flex:none;display:grid;place-items:center;background:var(--surface-2);font-style:normal;font-weight:800;color:var(--muted)}
.uso-who>span{display:flex;flex-direction:column;min-width:0}
.uso-who small{color:var(--muted);font-size:11px}
.uso-days i{display:block;height:100%;background:var(--accent);border-radius:3px}
.uso-tbl td small{color:var(--muted);font-size:11px}
.uso-top .ico{width:13px;height:13px}
.uso-detbox h4{margin:0 0 8px;font-size:13px}
.uso-mbar .ico{width:14px;height:14px;flex:none}
.uso-mbar .b i,.uso-mod .b i{display:block;height:100%;background:var(--accent);border-radius:4px}
.uso-mbar .n{color:var(--muted);white-space:nowrap}
.uso-mod header{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}
.uso-mod header .i .ico{width:18px;height:18px;color:var(--accent)}
.uso-mod header .hint{width:100%;font-size:12px}
.uso-mod ol{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.uso-mod li{display:grid;grid-template-columns:16px 24px minmax(0,1fr) 60px auto;gap:6px;align-items:center;font-size:12px;cursor:pointer}
.uso-mod li .rk{font-weight:800;color:var(--muted)}
.uso-mod li:first-child .rk{color:#C9A227}
.uso-mod li img,.uso-mod li>i{width:24px;height:24px;border-radius:50%;object-fit:cover;background:var(--surface-2)}
.uso-mod li .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.uso-mod li .n{color:var(--muted);white-space:nowrap}
.uso-mod>p{margin:8px 0 0;font-size:12px}
@media (max-width:700px) {
.uso-tbl th:nth-child(4),.uso-tbl td:nth-child(4),.uso-tbl th:nth-child(5),.uso-tbl td:nth-child(5){display:none}
}
/* 7.106 · Propuestas: añadir las ganadoras al repertorio */
.phrow .prep,.phrow .prep-ok{flex:none;white-space:nowrap;padding:5px 9px;font-size:12px}
@media (max-width:520px) {
.phrow .prep,.phrow .prep-ok{margin-left:auto}
}
.prep-pick .btn{justify-content:flex-start;text-align:left;height:auto;padding:9px 12px}
.prep-pick .btn span{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.prep-pick .btn small{color:var(--muted);font-weight:500;font-size:12px}
.pr-grp h4{margin:0;flex-wrap:wrap}
.pr-grp:not(.folded) h4{margin-bottom:8px}
.pr-gh .cx svg{width:16px;height:16px;color:var(--muted)}
.pr-pickb i{font-style:normal;color:var(--accent);font-weight:700}
.pr-pick .ck .pr-ic svg{width:18px;height:18px;color:var(--accent)}
.pr-pick .ck span:last-child{display:flex;flex-direction:column;min-width:0}
.pr-pick .ck small{color:var(--muted);font-size:11.5px}
/* 7.107.1 · módulo Unísono (antes Sonido sincronizado) */
#panel-sonido .sn-logo{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;color:#fff;background:linear-gradient(135deg,#ff5a43,#7c4dff)}
#panel-sonido .sn-logo svg{width:19px;height:19px}
#panel-sonido .sn-top{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-bottom:10px}
#panel-sonido .sn-frame{display:block;width:100%;height:calc(100dvh - var(--tb-h,56px) - 150px);min-height:520px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
@media (max-width:640px) {
#panel-sonido .sn-frame{height:calc(100dvh - 210px)}
#panel-sonido .sn-top .hint{display:none}
}
/* 7.109 · Composición */
#panel-compon{--cp:#8E44AD;--cp2:#e11d48}
.cp-hl h2{margin:0;font:800 26px/1.1 var(--display);letter-spacing:.01em}
.cp-hl p{margin:4px 0 0;opacity:.88;font-size:14.5px;max-width:560px}
.cp-logo svg{width:30px;height:30px}
.cp-hs b{display:block;font-size:20px;line-height:1}
.cp-hero .btn{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);color:#fff}
.cp-hero .btn.primary{background:#fff;color:#4c1d95;border-color:#fff}
.cp-insp>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.cp-insp b{font-size:17px}
.cp-insp a{font-weight:700;color:var(--cp);text-decoration:none;font-size:13.5px}
.cp-tabs button,.cp-stabs button,.cp-mtabs button{flex:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:7px 14px;font:700 13.5px/1.2 var(--body);cursor:pointer}
.cp-tabs button.on,.cp-stabs button.on,.cp-mtabs button.on{background:var(--cp);border-color:var(--cp);color:#fff}
.cp-tabs small{opacity:.7;margin-left:2px}
.cp-cb b{font-size:16.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp-chips i{font-style:normal;font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted)}
.cp-chips i[style]{background:color-mix(in srgb,var(--c) 15%,transparent);color:var(--c)}
.cp-ring b{width:42px;height:42px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-size:12px}
.cp-empty b{color:var(--ink);font-size:16px}
.cp-save.ok{color:var(--green,#16a34a)}
.cp-aqui i{font-style:normal;font-size:11.5px;font-weight:800;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--cp) 16%,transparent);color:var(--cp);animation:cpAqui 2.4s ease-in-out infinite}
.cp-fund summary{display:flex;gap:10px;align-items:baseline;cursor:pointer;list-style:none}
.cp-fund summary::-webkit-details-marker{display:none}
.cp-fund summary .hint{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.cp-fund textarea,.cp-ed textarea#cp-notas,.cp-in,#cp-cin{width:100%;font:inherit;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);padding:8px 10px}
.cp-v a{color:var(--cp);font-weight:700;text-decoration:none;font-size:13.5px}
.cp-v button{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:12px}
.cp-f4 label{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:700;color:var(--muted)}
.cp-f4 input,.cp-f4 select{width:100%;min-width:0;font:inherit;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);padding:7px 8px}
.cp-sec header{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.cp-tx textarea{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:500 16px/26px ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;padding:8px 10px;resize:none;overflow-x:auto;overflow-y:hidden;white-space:pre;tab-size:2}
.cp-gut .g i{font-style:normal;width:15px;height:15px;border-radius:5px;display:grid;place-items:center;font-size:10px;color:#fff;background:hsl(var(--h) 65% 46%)}
.cp-gut .g i.e{background:transparent}
.cp-chordbar button{border:1px solid color-mix(in srgb,#c2410c 40%,var(--line));background:color-mix(in srgb,#c2410c 8%,var(--surface));color:#c2410c;border-radius:8px;padding:3px 9px;font:800 13px/1.3 var(--body);cursor:pointer}
.cp-ep button{border:0;background:transparent;color:inherit;cursor:pointer;font-size:12px;padding:2px 4px;opacity:.7}
.cp-ep button:hover{opacity:1}
.cp-lv i{display:block;height:100%;width:0;background:var(--cp2);transition:width .1s}
.cp-memo audio{width:100%;height:36px}
.cp-iab b{font-size:14px}
.cp-iab span{font-size:12px;color:var(--muted)}
.cp-iaoff p{margin:6px 0}
.cp-com p{margin:4px 0 0;white-space:pre-wrap}
.cp-p img,.cp-av{width:28px;height:28px;border-radius:50%;object-fit:cover;display:inline-grid;place-items:center;background:var(--surface-2)}
.cp-hi>div{flex:1;display:flex;flex-direction:column}
@media (max-width:640px) {
.cp-hl h2{font-size:22px}
.cp-bar .btn.small{padding:6px 9px}
.cp-tx textarea{font-size:16px}
}
.cp-hero .btn,.cp-insp .btn{white-space:nowrap}
.mf-card.off{opacity:.8}
.mf-row:hover{border-color:var(--accent)}
.mf-row.hoy{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}
.mf-q b{line-height:1.25}
.mf-q small{color:var(--muted)}
.slide.flash{outline:3px solid var(--accent);outline-offset:3px;border-radius:8px;transition:outline-color .4s}
.lst-sec small{font-weight:600;letter-spacing:0;text-transform:none;margin-left:6px}
.lst-row .lst-info b{line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lst-row .lst-info small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:640px) {
.lst-row .lst-info b,.lst-row .lst-info small{white-space:normal}
}
.pm-girar-in.qs>b{font-size:18px;text-align:center}
.pm-girar-in.qs>p{margin:0;text-align:center}
.pm-qs>svg{width:26px;height:26px;flex-shrink:0;color:var(--accent)}
.pm-qs span{display:flex;flex-direction:column;min-width:0}
.pm-qs small{color:var(--muted)}
.pm-qs-foot .pm-girar-no{margin:0}
.ens-banner.mini b{white-space:nowrap}
/* ===== 7.110 · Buscador de letras ===== */
.rep-ib.lyr-tg{width:auto;padding:0 12px 0 10px;gap:6px;border-radius:999px;font-weight:700;font-size:13px}
.rep-ib.lyr-tg .lyr-tgl{line-height:1}
.rep-ib.lyr-tg.on{background:var(--accent);color:#fff;border-color:var(--accent)}
@media (max-width:640px) {
.rep-ib.lyr-tg{padding:0 10px}
}
.lyr-sum .hint{flex-basis:100%;margin:0;font-size:12px}
.lyr-card header{display:flex;align-items:center;gap:10px;min-width:0}
.lyr-card header .rcover{float:none;margin:0;flex:0 0 auto}
.lyr-t b{line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lyr-t small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lyr-lines li{display:flex;align-items:baseline;gap:8px;line-height:1.35;font-size:14.5px}
.lyr-empty>svg{width:28px;height:28px;flex:0 0 auto;color:var(--accent)}
.lyr-empty p{margin:4px 0 0}
.nv-card.bye{opacity:0;transform:translateY(-6px)}
.nv-card header{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.nv-card header b{flex:1;font-size:15px}
.nv-badge svg{width:13px;height:13px}
.nv-ic svg{width:19px;height:19px}
.nv-tx b{font-size:14px;line-height:1.25}
.nv-tx small{color:var(--muted);font-size:12.5px;line-height:1.35}
@media (max-width:640px) {
.nv-card header b{font-size:14px}
.nv-tx small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px}
}
button.sem-voz{cursor:pointer;font-family:inherit}
button.sem-voz:hover{background:color-mix(in srgb,#0FA3B1 28%,transparent)}
.sem-foot .sem-ensbtn{gap:6px}
.enx-ht small{color:var(--muted);font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.enx-ht b{font-size:16px}
.enx-ib svg{width:16px;height:16px}
.enx-ib.on{background:var(--accent);border-color:var(--accent);color:#fff}
.enx-ib.big{min-width:48px;height:48px;font-size:20px;border-radius:50%}
.enx-dots button{width:12px;height:12px;border-radius:50%;border:2px solid var(--line);background:transparent;padding:0;cursor:pointer}
.enx-dots button.ok{background:#22A35A;border-color:#22A35A}
.enx-dots button.cur{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}
.enx-cv img{width:100%;height:100%;object-fit:cover}
.enx-si b{font-size:20px;line-height:1.2}
.enx-si small{color:var(--muted)}
.enx-noly>svg{width:40px;height:40px}
.enx-done h3{margin:6px 0 0;color:var(--ink);font-size:22px}
.enx-seek input{flex:1}
.enx-play svg{width:28px;height:28px}
@media (max-width:640px) {
.enx-si b{font-size:17px}
}
.ae-card header small{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.ae-card header b{font-size:15px}
.ae-ic svg{width:20px;height:20px}
.ae-c svg{width:14px;height:14px;opacity:.25}
.ae-c[aria-pressed="true"] svg{opacity:1;color:#22A35A}
.ae-more summary{cursor:pointer;color:var(--muted);font-size:13px}
.ae-done>svg{width:28px;height:28px;color:#22A35A;flex:0 0 auto}
.ae-done div{display:flex;flex-direction:column}
.ae-done small{color:var(--muted)}
.qe-who div{display:flex;flex-direction:column;min-width:0}
.qe-who b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qe-who small{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qe-r>span{font-size:13px;color:var(--muted)}
.qe-sc button{width:32px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font-weight:700;cursor:pointer;font-family:inherit}
.qe-sc button[aria-pressed="true"]{background:#5B5BD6;border-color:#5B5BD6;color:#fff}
@media (max-width:640px) {
.qe-sc button{width:36px;height:34px}
}
.cam-ag:hover{border-color:var(--c)}
.cam-ag.ok{background:color-mix(in srgb,#22A35A 9%,var(--surface));border-color:color-mix(in srgb,#22A35A 45%,var(--line))}
.cam-agi svg{width:19px;height:19px}
.cam-agt b{font-size:14px}
.cam-agt small{color:var(--muted);font-size:12.5px;line-height:1.35}
.cam-agb>i{display:block;height:100%;background:var(--c);border-radius:999px}
.cam-ag.ok .cam-agb>i{background:#22A35A}
.pe-ment select{max-width:360px}
.prw-h .hint{font-size:12.5px}
.prw-t b,.prw-t small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prw-t small{color:var(--muted);font-size:12px}
.pr-empty .btn{margin-top:8px}
/* 7.110.1 · rol: lugares que el líder decidió mantener aunque tengan aviso */
.rol-mk.ok{background:color-mix(in srgb,var(--ok,#1f7a3f) 12%,transparent);color:var(--ok,#1f7a3f);border-color:color-mix(in srgb,var(--ok,#1f7a3f) 35%,transparent)}
.pf-rule2 .pf-wd i{font-style:normal}
.pf-rule2 .pf-wd input{padding:3px 6px;font-size:12px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--ink);min-width:0;width:auto}
.pf-rule2 .pf-when em{font-style:normal;opacity:.75}
.pf-rule2:not(:has(>input:checked)) .pf-when{display:none}
.pu-ch.now{transform:scale(1.12);box-shadow:0 0 0 4px color-mix(in srgb,var(--cc) 35%,transparent)}
.pu-kc.big{font-size:18px;padding:4px 12px;border-radius:10px}
.pu-kc.off{--cc:var(--line);color:var(--muted);font-weight:600}
.pu-junc.set{border-style:solid}
.pu-junc .pu-jt b{display:flex;align-items:center;gap:6px;color:#0E8F8E}
.pu-junc .pu-jt small{color:var(--muted);font-size:11.5px}
.pu-junc .pu-jb{display:flex;gap:6px;align-items:center;margin-left:auto}
.pu-junc .ico-btn.on{background:#0EA5A4;color:#fff;border-radius:999px}
/* panel */
.pu-wrap{display:flex;flex-direction:column;gap:14px;padding-bottom:40px}
.pu-hl h2{margin:0;font-family:var(--display);font-size:24px}
.pu-hl p{margin:2px 0 0;color:var(--muted);font-size:13.5px;max-width:520px}
.pu-logo .ico{width:30px;height:30px}
.pu-tab .ico{width:17px;height:17px}
.pu-dsel select{font:inherit;padding:7px 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.pu-empty .ico{width:34px;height:34px;color:#0EA5A4}
.pu-empty b{color:var(--ink)}
.pu-song.on{border-color:#0EA5A4;box-shadow:0 0 0 2px color-mix(in srgb,#0EA5A4 40%,transparent)}
.pu-song b{font-size:13px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pu-cv img{width:100%;height:100%;object-fit:cover}
.pu-keys small{color:var(--muted);font-size:11px}
.pu-link .pu-arrow{position:relative;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:2px solid var(--line);font-style:normal}
.pu-link .pu-arrow .ico{width:17px;height:17px}
.pu-link small{position:relative;font-size:10px;background:var(--surface);padding:0 3px;border-radius:4px;line-height:1.3}
.pu-link.junc em{position:absolute;top:-20px;font-style:normal;font-size:10px;font-weight:800;color:#B45309;white-space:nowrap}
.pu-pk small{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.pu-pk b{font-size:14px}
.pu-prel .ico{width:26px;height:26px}
.pu-h3 small{font-weight:500;color:var(--muted);font-size:12px}
.pu-ct b{font-size:14px}
.pu-ch.big{flex-direction:column;padding:8px 14px;border-radius:14px;cursor:pointer;font:inherit;font-weight:800;color:var(--ink)}
.pu-ch.big b{font-size:20px}
.pu-ch.big small{font-size:10.5px;font-weight:600;color:var(--muted)}
.pu-sl label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted)}
.pu-sl input[type=range]{width:100%;accent-color:#0EA5A4}
.pu-seg button{border:0;background:var(--surface);color:var(--ink);font:inherit;font-weight:700;padding:5px 14px;cursor:pointer}
.pu-seg button.on{background:#0EA5A4;color:#fff}
.pu-tips p{margin:4px 0;font-size:12.5px;line-height:1.4}
.pu-popl button{--cc:#94a3b8;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:6px 8px;border-radius:10px;border:1.5px solid var(--cc);background:color-mix(in srgb,var(--cc) 16%,var(--surface));color:var(--ink);font:inherit;cursor:pointer;text-align:left}
.pu-popl button>b{font-size:14px}
.pu-popl small{font-size:10px;color:var(--muted);line-height:1.2}
.pu-fcol h4{margin:0;font-size:13px;color:var(--muted);font-weight:600}
.pu-fcol h4 b{color:var(--ink);font-size:18px}
.pu-fcol input[type=search]{font:inherit;padding:7px 10px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}
.pu-kroots button,.pu-kmode button{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit;font-size:12px;font-weight:700;padding:6px 2px;border-radius:8px;cursor:pointer}
.pu-kroots button.on{background:#F472B6;border-color:#F472B6;color:#111}
.pu-kmode button{flex:1}
.pu-kmode button.on{background:#0EA5A4;border-color:#0EA5A4;color:#fff}
.pu-nbr h4{margin:0 0 4px;display:flex;align-items:center;gap:6px}
.pu-legend span{display:inline-flex;align-items:center;gap:5px}
.pu-legend i{width:12px;height:12px;border-radius:50%}
.pu-whw>div{padding:12px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.pu-whr h4{margin:4px 0 8px}
.pu-diat button{--cc:#94a3b8;--fc:#999;display:flex;flex-direction:column;align-items:center;padding:6px 4px;border-radius:12px;border:1.5px solid var(--cc);background:color-mix(in srgb,var(--cc) 20%,var(--surface));color:var(--ink);font:inherit;cursor:pointer}
.pu-diat small{font-size:10px;color:var(--muted);font-weight:700}
.pu-diat>b{font-size:16px}
.pu-diat i{font-style:normal;font-size:10px;font-weight:800;color:var(--fc)}
.pu-fn i{width:12px;height:12px;border-radius:3px;flex:none}
.pu-qb>b{min-width:110px}
.pu-lch .ico{width:20px;height:20px;color:#0EA5A4}
.pu-lc p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.45}
.pu-mode span{display:flex;flex-wrap:wrap;gap:3px}
.pu-mode span i{font-style:normal;font-size:11.5px;padding:1px 6px;border-radius:6px;background:var(--surface-2)}
.pu-mode span i.car{background:#F472B6;color:#111;font-weight:800}
.pu-mode small{color:var(--muted);font-size:11.5px}
.pu-book .ico{color:#0EA5A4;flex:none}
.pu-book small{display:block;color:var(--muted);font-size:11px}
.pu-prt span{display:flex;gap:12px;align-items:center}
.pu-prt label{display:inline-flex;gap:5px;align-items:center}
.pu-prdots i{width:18px;height:18px;border-radius:50%;background:#ffffff26}
.pu-prdots i.on{background:#FACC15;box-shadow:0 0 12px #FACC15}
@media (max-width:760px) {
.pu-prel .ico{transform:rotate(90deg);width:20px;height:20px}
.pu-tab span{display:none}
.pu-hl p{font-size:12.5px}
}
.pu-prt .btn{background:#ffffff1a;color:#fff;border:1px solid #ffffff40}
.pu-snd label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted);font-weight:600}
.pu-snd label .ico{width:14px;height:14px;vertical-align:-2px}
.pu-snd select{font:inherit;font-size:13px;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:6px 8px;max-width:240px}
.pu-snd .hint{flex-basis:100%;font-size:11.5px}
.pu-tb small{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.pu-mdots i{font-style:normal;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700;background:var(--surface-2);color:var(--muted);transition:background .08s}
.pu-mdots i.on{background:#FACC15;color:#111}
.pu-mdots i.on.bar{background:#0EA5A4;color:#fff}
.pmt svg{width:16px;height:16px;flex:none}
.pmt-hero h2{margin:0;display:flex;align-items:center;gap:8px;font-size:22px}
.pmt-hero h2 svg{width:22px;height:22px;color:#F59E0B}
.pmt-hero p{margin:4px 0 0;color:var(--muted)}
.pmt-k b{font-size:24px;line-height:1.1}
.pmt-k small{font-size:11px;color:var(--muted);text-align:center;max-width:110px}
.pmt-k.bad b{color:#E11D48}
.pmt-k.good b{color:#16A34A}
.pmt-rq.on{border-color:#F59E0B;color:var(--ink);background:color-mix(in srgb,#F59E0B 12%,var(--surface))}
.pmt-rq b{background:#E11D48;color:#fff;border-radius:999px;padding:0 6px;font-size:11px}
.pmt-dh b{font-size:15px}
.pmt-dh small{color:var(--muted)}
.pmt-row .rcover img{width:100%;height:100%;object-fit:cover}
.pmt-info>b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pmt-info>small{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pmt-c svg{width:12px;height:12px}
.pmt-c.ok{background:color-mix(in srgb,#16A34A 14%,transparent);color:#16A34A}
.pmt-c.no{background:color-mix(in srgb,#E11D48 14%,transparent);color:#E11D48}
@media (max-width:640px) {
.pmt-c span{display:none}
}
.pu-piano h4{margin:0;font-size:13px;display:flex;align-items:center;gap:5px}
.pu-piano .hint{margin:0;font-size:11.5px}
.pu-vsseg button{padding:5px 12px}
.pu-topl small{color:var(--muted)}
.pu-hr.now{box-shadow:0 0 0 2px #F59E0B}
.pu-hr small{display:block;font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.pu-hrh small{flex-basis:100%}
.pu-hrh i{font-style:normal;font-size:12px;font-weight:700;padding:1px 6px;border-radius:7px;background:color-mix(in srgb,#F472B6 18%,var(--surface));white-space:nowrap}
.pu-hrh i.top{background:#F59E0B;color:#111}
.pu-hr em{grid-column:1/-1;font-style:normal;font-size:11px;color:var(--muted)}
a.pu-book{text-decoration:none}
.pu-pro h4{margin:0;font-size:13.5px;display:flex;align-items:center;gap:6px}
.pu-pro h4 small{font-weight:600;color:var(--muted);font-size:11px}
.pu-proc i{font-style:normal;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:14px;color:#fff;background:linear-gradient(135deg,var(--pc),color-mix(in srgb,var(--pc) 55%,#000))}
.pu-proc small{font-size:10.5px;color:var(--muted);text-align:center;line-height:1.15}
.pu-proc.on{border-color:var(--pc);box-shadow:0 0 0 3px color-mix(in srgb,var(--pc) 30%,transparent);background:color-mix(in srgb,var(--pc) 10%,var(--surface))}
.pu-prod small{color:var(--muted);font-size:11px;display:inline-flex;gap:4px;align-items:flex-start;margin-top:4px}
.pu-intseg button{padding:5px 12px}
.pu-score h4{margin:0 0 8px;font-size:13.5px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.pu-score h4 small{font-weight:600;color:var(--muted);font-size:11px}
.pu-ritmo span{background:var(--surface-2);border-radius:8px;padding:1px 8px}
.pu-hr.paso{margin-left:18px;border-style:dashed;background:color-mix(in srgb,#F59E0B 6%,var(--surface))}
.pu-energ small{font-weight:700;color:var(--muted);font-size:11.5px}
.pme-tile .ico{width:22px;height:22px;color:var(--accent)}
.pme-tile b{font-size:14px}
.pme-tile small{color:var(--muted);font-size:12px;line-height:1.35}
.pme-ej small{text-transform:none}
.pme-gr small{font-weight:400}
.pme-seg button{border:0;background:transparent;color:var(--ink);font:inherit;font-size:12.5px;padding:5px 11px;cursor:pointer}
.pme-seg button.on{background:var(--accent);color:#fff}
.pme-ritmo svg{display:block}
.pme-live div{display:flex;flex-direction:column}
.pme-live b{font-size:24px;line-height:1.15}
.pme-vib b{font-size:19px}
.pme-pb>div{height:100%;width:0;border-radius:6px;background:#22c55e;transition:width .1s linear}
.pme-pb>span{position:absolute;top:14px;transform:translateX(-100%);font-size:11px;color:var(--muted)}
.pme-ring>div{width:122px;height:122px;border-radius:50%;background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:6px}
.pme-ring b{font-size:13px}
.pme-ring span{font-size:34px;font-weight:800}
.pme-gauge i{position:absolute;top:-4px;width:4px;height:18px;margin-left:-2px;border-radius:2px;background:var(--ink);transition:left .15s}
.pme-gauge small{position:absolute;top:12px;font-size:10px;color:var(--muted);transform:translateX(-50%)}
.pme-reps span{display:flex;flex-direction:column;align-items:center;min-width:44px;padding:3px 4px;border-radius:8px;font-size:11px;background:color-mix(in srgb,var(--c) 18%,transparent);border:1px solid var(--c)}
.pme-cuid>div{padding:10px 12px;border-radius:12px;background:var(--surface-2)}
.pme-cuid ul{margin:6px 0 0;padding-left:18px;line-height:1.45;font-size:13px}
@media (max-width:560px) {
.pme-live b{font-size:20px}
.pme-tile small{display:none}
}
.pu-mzh h3{margin:0;font-size:19px}
.pu-mc b{font-size:13px;line-height:1.15}
.pu-mc em{font-style:normal;font-size:10.5px;font-weight:700;color:var(--pc);margin-top:2px}
.pu-mav.sm{width:28px;height:28px;font-size:11px}
.pu-msugs h4{margin:0 0 8px;display:flex;align-items:center;gap:8px;font-size:15px;flex-wrap:wrap}
.pu-msug.on{border-color:var(--accent);box-shadow:0 8px 24px -14px var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.pu-mst b{font-size:14px}
.pu-msay small{display:block;color:var(--muted);font-size:11px;margin-top:3px}
/* 7.114.4: caras de los maestros en ¿Quién lo toca? */
.pu-mav.has-img,.pu-proc i.pu-proimg{padding:0;overflow:hidden;background:var(--pc);box-shadow:0 0 0 2px var(--pc),0 6px 14px -8px rgba(0,0,0,.5)}
.pu-mav.has-img img,.pu-proc i.pu-proimg img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.pu-mc.on .pu-mav.has-img{box-shadow:0 0 0 3px var(--pc),0 0 0 6px color-mix(in srgb,var(--pc) 30%,transparent)}
/* 7.114.4: las tres formas de llevar el tempo */
.pu-tmseg button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;min-width:0;max-width:100%}
.pu-tmseg button small{font-size:10.5px;opacity:.75;font-weight:600}
@media (min-width:641px) {
/* Admon STAFF (y cualquier menú largo) en una sola fila en computadora */
body.sv:not(.design) #mainnav>.menu.cur:has(.menu-list button[data-tab]:nth-of-type(7)) .menu-list button{padding:10px 9px;font-size:13.5px}
body.sv:not(.design) #mainnav>.menu.cur:has(.menu-list button[data-tab]:nth-of-type(7)) .menu-list .menu-h{display:inline-block!important;width:1px;height:18px;align-self:center;background:var(--line);margin:0 4px;padding:0;font-size:0;overflow:hidden}
}
/* ===== 7.112 · Plan de la semana ===== */
.pw{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:14px;margin:0 0 14px;box-shadow:var(--shadow)}
.pw-ht b{font-family:var(--display);font-size:17px;display:flex;align-items:center;gap:6px}
.pw-ht small{color:var(--muted);font-size:12.5px}
.pw-d small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.pw-d b{font-size:16px;line-height:1.1}
.pw-d.hoy{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.pw-d.sel{background:var(--accent);border-color:var(--accent);color:var(--accent-ink,#fff)}
.pw-d.sel small{color:inherit;opacity:.85}
.pw-d.ok:not(.sel){background:color-mix(in srgb,#16A34A 14%,var(--surface-2));border-color:color-mix(in srgb,#16A34A 45%,transparent)}
.pw-dots i{width:6px;height:6px;border-radius:50%;background:color-mix(in srgb,var(--ink) 22%,transparent)}
.pw-dots i.ok{background:#16A34A}
.pw-dots i.miss{background:#DC2626}
.pw-dots i.late{background:#F59E0B}
.pw-dots i.hoy{background:var(--accent)}
.pw-dots i.none{background:transparent;border:1px dashed color-mix(in srgb,var(--ink) 25%,transparent)}
.pw-si .ico{width:18px;height:18px}
.pw-st b{font-size:14px;line-height:1.25}
.pw-st small{font-size:12px;color:var(--muted);line-height:1.3}
.pw-s.ok b{text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--ink) 35%,transparent)}
.pw-chip.ok{background:color-mix(in srgb,#16A34A 16%,transparent);color:#15803D}
@media (max-width:640px) {
.pw{padding:12px;border-radius:16px}
.pw-d b{font-size:15px}
.pw-s .btn{margin-left:44px}
}
.hf-dots i{width:7px;height:7px;border-radius:999px;background:color-mix(in srgb,var(--ink) 22%,transparent);cursor:pointer;transition:width .2s,background .2s}
.hf-dots i.on{width:20px;background:var(--accent)}
.how-btn .ico{width:14px;height:14px}
.ns-card b{font-size:15px}
.ns-card p{margin:3px 0 8px;color:var(--muted);font-size:13px;line-height:1.4}
.niv-h .hf-ring small{font-size:16px;font-weight:800}
.niv-t small{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}
.niv-t b{font-family:var(--display);font-size:20px;line-height:1.15}
.niv-t span{font-size:12.5px;color:var(--muted)}
.niv-b span{display:flex;align-items:center;gap:5px;color:var(--muted);white-space:nowrap}
.niv-b span .ico{width:14px;height:14px}
.niv-b>i{height:7px;border-radius:999px;background:color-mix(in srgb,var(--ink) 10%,transparent);overflow:hidden}
.niv-b>i>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#C9A227)}
.niv-b b{text-align:right;font-size:12px}
.ckr-h b{display:flex;align-items:center;gap:6px}
.ckr-set label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);font-weight:600}
.ckr-set input,.ckr-set select{font:inherit;font-size:16px;padding:8px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);min-width:0}
.ckr-beats i{width:26px;height:26px;border-radius:50%;background:color-mix(in srgb,var(--ink) 12%,transparent);transition:transform .06s,background .06s}
.ckr-beats i.on{background:var(--accent);transform:scale(1.25)}
.ckr-st b{font-size:22px}
.ckr-meter i{display:block;height:100%;width:0;background:#16A34A;transition:width .05s}
.ckr-pct b{font-size:20px;font-family:var(--display);display:block}
.ckr-pct small{color:var(--muted)}
.cur-h .hint{margin-left:auto;font-size:12px}
.cur-n b{font-size:13px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cur-n small{font-size:11.5px;color:var(--muted)}
.cur-dot .ico{width:15px;height:15px}
.cur-n.now{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.cu-reto.on{transform:none;opacity:1}
.cur-rh .ico-btn{margin-left:auto}
.cu-reto p{margin:6px 0;font-size:13.5px;line-height:1.4}
.mu-offok .ico{width:15px;height:15px}
.mu-side .cu-side-item .l small{display:inline;font-size:10.5px;color:var(--muted);margin-left:4px}
.creto.flash{animation:creFl 1.6s}
.cre-h h3{margin:4px 0;font-family:var(--display);font-size:22px}
.cre-h p{margin:2px 0;color:var(--muted);font-size:13.5px;line-height:1.4}
.cre-eh div{flex:1;min-width:0;display:flex;flex-direction:column}
.cre-eh small{color:var(--muted);font-size:12px}
.cre-more summary{cursor:pointer;font-size:12.5px;color:var(--accent);margin:2px 0}
.creto-prev summary{cursor:pointer;font-weight:700;display:flex;align-items:center;gap:6px}
.cre-pi small{color:var(--muted)}
.vt-cta.off{opacity:.7}
.vt-cta>[data-vactadel]{position:absolute;top:6px;right:6px}
.nv-chip.on{border-color:var(--accent);color:var(--accent)}
/* ===== 7.115 · Puentes rediseñado: escenario con piano en vivo, ideas y "Aprende este puente" en pestañas ===== */
.pz{--pz:#0EA5A4;--pz-soft:color-mix(in srgb,#0EA5A4 14%,var(--surface));gap:16px}
.pz .ico-inl{width:15px;height:15px;vertical-align:-2px}
.pz-brand p{margin:2px 0 0;font-size:13px;color:var(--muted);line-height:1.35}
.pz-views button{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--muted);font:inherit;font-size:13px;font-weight:700;padding:8px 14px;border-radius:999px;cursor:pointer;white-space:nowrap}
.pz-views button .ico{width:16px;height:16px}
.pz-views button.on{background:var(--pz);color:#fff;box-shadow:0 6px 16px -10px var(--pz)}
.pz-views button:not(.on):hover{color:var(--ink);background:var(--surface-2)}
.pz-st small{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--pz)}
.pz-st h3{margin:3px 0 2px;font-size:21px;line-height:1.2;letter-spacing:-.01em}
.pz-st p{margin:0;font-size:12.5px;color:var(--muted)}
.pz-ib .ico{width:17px;height:17px}
.pz-fix .ico{width:16px;height:16px}
.pz-fix.on{background:transparent;color:var(--pz)}
.pz-tch b{font-size:12px;line-height:1.1}
.pz-tch small{font-size:10px;color:var(--muted);line-height:1.1;max-width:76px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pz-tch:hover{opacity:1}
.pz-tch.on{opacity:1;background:color-mix(in srgb,var(--pc) 13%,transparent)}
.pz-tch.on b{color:var(--pc)}
.pz-chip b{font-size:18px;line-height:1.1;font-weight:900}
.pz-chip small{font-size:10.5px;font-weight:700;color:var(--muted)}
.pz-chip:hover{transform:translateY(-2px)}
.pz-chip.sel{border-color:var(--cc);box-shadow:0 0 0 3px color-mix(in srgb,var(--cc) 30%,transparent)}
.pz-chip.now{background:var(--cc);border-color:var(--cc);transform:translateY(-3px) scale(1.06);box-shadow:0 10px 22px -10px var(--cc)}
.pz-chip.now b,.pz-chip.now small{color:#111}
.pz-add .ico{width:18px;height:18px}
.pz-nc b{font-size:28px;line-height:1;font-weight:900;letter-spacing:-.01em}
.pz-nc small{font-size:11px;font-weight:700;color:var(--muted);margin-top:3px}
.pz-nt p{margin:3px 0;font-size:13.5px;line-height:1.4}
.pz-leg span{display:inline-flex;align-items:center;gap:5px}
.pz-leg i{width:12px;height:12px;border-radius:3px;display:inline-block}
.pz-leg i.lh{background:#38BDF8}
.pz-leg i.rh{background:#F472B6}
.pz-leg i.mel{background:#F59E0B}
.pz-play .ico{width:22px;height:22px}
.pz-play.on{background:#E11D48;box-shadow:0 10px 22px -12px #E11D48}
.pz-tg .ico{width:16px;height:16px}
.pz-tg.on{border-color:var(--pz);color:var(--pz);background:var(--pz-soft)}
.pz-metro .pu-mdots i{width:18px;height:18px;font-size:9px}
.pz-tm>small{font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.pz-seg button{display:flex;flex-direction:column;align-items:flex-start;gap:0;border:0;border-right:1px solid var(--line);background:none;color:var(--ink);font:inherit;padding:5px 11px;cursor:pointer;text-align:left}
.pz-seg button:last-child{border-right:0}
.pz-seg button b{font-size:12.5px;font-weight:800;white-space:nowrap}
.pz-seg button small{font-size:10px;color:var(--muted);white-space:nowrap}
.pz-seg button.on{background:var(--pz);color:#fff}
.pz-tr .pz-tm:first-of-type{margin-left:auto}
.pz-tabs button{flex:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:none;color:var(--muted);font:inherit;font-size:12.5px;font-weight:700;padding:6px 11px;border-radius:999px;cursor:pointer;white-space:nowrap}
.pz-tabs button .ico{width:15px;height:15px}
.pz-tabs button .pu-mav{width:22px!important;height:22px!important;font-size:9px;box-shadow:none!important}
.pz-tabs button em{font-style:normal;font-size:10.5px;background:var(--surface-2);border-radius:999px;padding:0 6px;color:var(--ink)}
.pz-tabs button.on{background:var(--pz-soft);border-color:var(--pz);color:var(--ink)}
.pz-idea:hover{border-color:color-mix(in srgb,var(--pz) 55%,var(--line))}
.pz-idea.on{border:1.5px solid var(--pz);background:var(--pz-soft)}
.pz-ih b{font-size:13.5px;line-height:1.25}
.pz-ih>.ico{width:16px;height:16px;color:var(--pz)}
.pz-badge.ok{background:color-mix(in srgb,#22c55e 20%,transparent);color:#16a34a}
.pz-if small{font-size:11px;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pz-if>span{display:flex;align-items:center;gap:6px;flex:none}
.pz-empty .ico{width:28px;height:28px;flex:none}
.pz-q p{margin:0;font-size:13.5px;font-style:italic;line-height:1.45}
.pz-q small{font-size:11.5px;color:var(--muted)}
.pz-steps li{--cc:#94a3b8;position:relative;display:grid;grid-template-columns:34px 1fr;gap:10px;padding:8px 0}
.pz-sd .ico{width:14px;height:14px}
.pz-steps li.now .pz-sd{background:var(--cc);color:#111;box-shadow:0 0 0 4px color-mix(in srgb,var(--cc) 30%,transparent)}
.pz-sh2 b{font-size:16px;font-weight:900;color:var(--cc)}
.pz-steps p{margin:3px 0 2px;font-size:13px;line-height:1.45}
.pz-steps small{font-size:11.5px;color:var(--muted)}
.pz-bt>.ico{width:22px;height:22px;flex:none;color:var(--pz);margin-top:2px}
.pz-bt b{font-size:13px}
.pz-bt p{margin:2px 0 0;font-size:12.5px;line-height:1.4}
.pz-cg .hint{margin:0;font-size:11.5px}
.pz-sl input{width:100%}
.pz-row>small{font-size:11px;color:var(--muted);font-weight:700}
.pz-caps button{border:1px solid var(--line);background:none;color:var(--muted);font:inherit;font-size:12px;font-weight:700;padding:5px 11px;border-radius:999px;cursor:pointer}
.pz-caps button.on{background:var(--pz);border-color:var(--pz);color:#fff}
.pz-cg .pu-snd label{display:flex;flex-direction:column;gap:3px;font-size:12px}
.pz-apnow b{font-size:17px;font-weight:900}
@media (max-width:640px) {
.pz-brand p{display:none}
.pz-views button{flex:1;justify-content:center;padding:8px 6px;font-size:12.5px}
.pz-st h3{font-size:18px}
.pz-fix span{display:inline}
.pz-tch small{font-size:9px;max-width:64px}
.pz-chip b{font-size:15px}
.pz-nc b{font-size:22px}
.pz-tr .pz-tm,.pz-tr .pz-tm:first-of-type{margin-left:0;width:100%}
.pz-tm .pz-seg button{flex:1}
}
.pz-cg select{max-width:100%}
.pu-cfgb h5:first-child{margin-top:2px}
.pu-cfgf select{width:100%;font:inherit;font-weight:400;font-size:13.5px;padding:7px 8px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink)}
.pu-cfgcap span{display:flex;flex-direction:column;gap:1px}
.pu-cfgcap b{font-size:13.5px}
.pu-cfgcap small{font-size:11.5px;color:var(--muted);line-height:1.3}
.pu-cfgcap.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.pu-cfgmix input{width:100%;accent-color:var(--accent)}
.pu-cfgmix b{text-align:right;font-variant-numeric:tabular-nums;font-size:12px}
.pz-sndb .ico{color:var(--pz)}
.pz-anal summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:9px 12px;font-weight:700;font-size:13.5px}
.pz-anal summary::-webkit-details-marker{display:none}
.pz-anal summary small{font-weight:500;color:var(--muted);font-size:11.5px}
.pz-anal ul{margin:0;padding:0 12px 10px;list-style:none;display:grid;gap:7px}
.pz-anal li{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.45}
.pz-anal li .ico{flex:none;margin-top:2px;color:var(--pz,var(--accent))}
.pz-badge.rel{background:color-mix(in srgb,#0EA5E9 18%,transparent);color:#0369A1}
.pz-badge.der{background:color-mix(in srgb,#A855F7 16%,transparent);color:#7E22CE}
.pz-fin b{font-size:15px}
.pz-fin small{font-size:11px;color:var(--muted)}
.pz-fin.on{border-color:var(--cc);background:color-mix(in srgb,var(--cc) 16%,var(--surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--cc) 30%,transparent)}
.pz-fin em{position:absolute;top:-8px;right:6px;font-style:normal;font-size:9.5px;font-weight:800;padding:1px 6px;border-radius:999px;background:var(--accent);color:#fff}
.cpa-mus label{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:700;color:var(--muted)}
.cpa-mus select,.cpa-mus input[type=number]{width:100%}
.cpa-bpm input{flex:1;min-width:0}
.cpa-res span{display:flex;flex-direction:column}
.cpa-res small{font-size:11px;color:var(--muted)}
.cpa-res b{font-size:20px;line-height:1.1}
.cpa-res em{font-style:normal;font-size:11px;color:var(--muted)}
.cpa-res .alt b{font-size:14px;color:var(--muted)}
.cpa-h>b{font-size:12.5px;min-width:140px}
.cpa-bar em{--cc:#94a3b8;font-style:normal;font-size:12px;font-weight:800;padding:1px 7px;border-radius:6px;background:color-mix(in srgb,var(--cc) 22%,var(--surface));color:var(--ink)}
.cpa-p>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.cpa-p small{color:var(--muted);font-size:11.5px}
.cpa-p>span{display:flex;gap:4px;flex:none}
[data-cpaplay].on{color:var(--accent);border-color:var(--accent)}
.cpa-rmh b{font-size:12.5px;display:inline-flex;gap:4px;align-items:center}
.cpa-rmb.on{background:var(--accent);border-color:var(--accent);color:#fff}
.cu-ma-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.cu-ma-av i{font-style:normal;letter-spacing:.02em}
.cu-ma b{color:var(--ink);font-weight:700}
.cu-ma-h small{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;opacity:.75}
.cu-ma-h b{display:block;font-size:15px;line-height:1.2}
.cu-ma-h p{margin:2px 0 0!important;font-size:12.5px;opacity:.85;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cu-ma-ph img{width:100%;height:100%;object-fit:cover}
.cu-ma-ph .ico{width:22px;height:22px}
.cu-ma-fl input,.cu-ma-fl textarea{width:100%;min-width:0;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:8px;padding:7px 9px;font:inherit}
.cu-ma-fl textarea{resize:vertical;font-size:13px}
.cu-tabs button{display:inline-flex;align-items:center;gap:7px;border:0;background:none;color:var(--muted);font:inherit;font-weight:700;font-size:14px;padding:9px 12px 10px;border-bottom:3px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap}
.cu-tabs button svg{width:17px;height:17px}
.cu-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.cu-tabs button[aria-selected="true"] i{background:var(--accent);color:#fff}
.cu-matgo span{flex:1;display:grid}
.cu-matgo small{color:var(--muted)}
.cu-matgo svg{width:18px;height:18px;color:var(--accent);flex:none}
.cum-head>div:first-child{flex:1;min-width:0}
.cum-head h3{margin:0;display:flex;align-items:center;gap:8px}
.cum-head h3 svg{width:20px;height:20px;color:var(--accent)}
.cum-head p{margin:4px 0 0}
.cum-mine b{font-size:15px;line-height:1}
.cum-mine small{font-size:10px;color:var(--muted)}
.cum-fold:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}
.cum-fold.on{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}
.cum-fold b{font-size:13.5px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cum-fold small{color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cum-fic svg{width:20px;height:20px}
.cum-fic.sm{width:26px;height:26px;border-radius:8px}
.cum-fic.sm svg{width:15px;height:15px}
.k-play{--kc:#10b981}
.k-chart{--kc:#6366f1}
.k-diag{--kc:#f59e0b}
.k-ejer{--kc:#ef4444}
.k-met{--kc:#0ea5e9}
.k-x{--kc:var(--accent)}
.cum-fold .cum-fic,.cum-fic.sm{background:color-mix(in srgb,var(--kc) 16%,var(--surface));color:var(--kc)}
.cum-fbar i{display:block;height:100%;background:var(--kc)}
.cum-sec h4{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 2px 6px;font-size:14px}
.cum-sec h4 small{color:var(--muted);font-weight:600}
.cum-sec h4 .hint{font-weight:400;font-size:12px}
.cum-f:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.cum-f.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.cum-fi svg{width:18px;height:18px}
.cum-ft b{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cum-ft small{color:var(--muted);font-size:11.5px}
.cum-avs .coll-av .avatar,.cum-avs .coll-av img{width:100%!important;height:100%!important}
.cum-avs i{font-style:normal;font-size:11px;color:var(--muted);margin-left:4px}
.cum-pp svg{width:18px;height:18px}
.cum-pm b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cum-seek input{flex:1;min-width:0;accent-color:var(--accent)}
.cum-player .chip-btn{background:transparent;color:inherit;border-color:rgba(255,255,255,.3);font-size:12px}
.cum-player .chip-btn[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.cum-player .chip-btn svg{width:14px;height:14px}
.cum-pbar i{display:block;height:100%;border-radius:2px;background:#10b981}
@media (max-width:640px) {
.cum-player .chip-btn{padding:4px 8px}
}
.cu-ma-grid button{padding:0;border:2px solid transparent;border-radius:50%;overflow:hidden;aspect-ratio:1;cursor:pointer;background:var(--surface-2)}
.cu-ma-grid button:hover{border-color:var(--accent)}
.cu-ma-grid img{width:100%;height:100%;object-fit:cover;display:block}
.cue-lv:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface))}
.mae-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.mae-av i{font-style:normal;letter-spacing:.02em}
.mae-pline>div{min-width:0;display:grid;gap:1px}
.mae-pline b{font-size:13.5px}
.mae-pline small{color:var(--muted);font-size:11.5px}
.mae-pline p{margin:3px 0 0;font-size:12px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mae-ph img{width:100%;height:100%;object-fit:cover;display:block}
.mae-ph i{font-style:normal}
.mae-tx b{font-size:15.5px;line-height:1.2;padding-right:26px}
.mae-tx small{color:var(--muted);font-size:12px}
.mae-tx p{margin:2px 0 0;font-size:12.5px;color:var(--ink);opacity:.85;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.mae-cur .chip-btn{white-space:normal;text-align:left;max-width:100%}
.mae-dlg .mh b{flex:1;font-size:16px;display:flex;align-items:center;gap:6px}
.mae-rt b{font-size:14px}
.mae-rt small{color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mae-form .f{margin-bottom:10px}
.mae-bigph img{width:100%;height:100%;object-fit:cover}
.mae-bigph span{display:grid;place-items:center;gap:4px;color:var(--muted)}
.mae-bigph span svg{width:28px;height:28px}
.mae-cpick p{margin:0;width:100%}
.mae-tx .chip-btn{white-space:normal!important;text-align:left;max-width:100%;min-width:0}
.mae-pus .cue-lv small{font-weight:400}
/* 7.119: teléfono ya registrado */
.pf-dup{border:1px solid color-mix(in srgb,#f59e0b 55%,var(--line));background:color-mix(in srgb,#f59e0b 10%,var(--surface));border-radius:14px;padding:12px 14px;margin:6px 0}
.pf-dup>b{display:flex;align-items:center;gap:6px;font-size:14.5px}
.pf-dup p{margin:6px 0 0;font-size:13.5px}
.pf-dupb{display:grid;gap:6px;margin-top:8px}
.pf-dupb .btn{justify-content:flex-start;text-align:left;white-space:normal;height:auto;min-height:34px}
.cu-ma-h.bio-open p,.mae-tx.bio-open p,.mae-pline.bio-open p{display:block!important;-webkit-line-clamp:unset!important;overflow:visible!important;white-space:pre-line}
.cu-ma-h>div{min-width:0;display:grid}
.em-dlg .mh b{flex:1;font-size:16px;display:flex;align-items:center;gap:6px}
.em-dlg .f{margin-bottom:12px;display:grid;gap:6px}
.em-dlg .f label{font-weight:700;font-size:13px}
.em-dlg textarea{width:100%;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:10px;padding:8px 10px;font:inherit;resize:vertical}
.em-lv svg{width:13px;height:13px}
.em-mots .chip-btn.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.em-pase span{display:grid;gap:2px;font-size:13.5px}
.em-pase small{color:var(--muted)}
.em-sum h3{margin:8px 0 0;font-size:17px;line-height:1.25}
.em-wait svg,.em-cov svg{width:22px;height:22px;flex:none;color:var(--accent)}
.em-wait div,.em-cov div{display:grid;gap:2px}
.em-wait small,.em-cov small,.em-ask small{color:var(--muted);font-size:12.5px}
.em-cov svg{color:#15803d}
.em-cov.mine svg{color:#b26a00}
.em-ask b{font-size:15px}
.em-rw b{font-size:22px;font-weight:800;color:var(--accent)}
.em-rw small{font-size:11.5px;color:var(--muted);line-height:1.2}
.em-cgrp>b,.em-cgrp summary b{display:inline-flex;align-items:center;gap:6px;font-size:13.5px}
.em-cgrp small{color:var(--muted);font-weight:600}
.em-cgrp summary{cursor:pointer;list-style:none}
.em-cgrp summary::-webkit-details-marker{display:none}
.em-cand:has(input:checked){border-color:color-mix(in srgb,var(--accent) 60%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
.em-cand.off{opacity:.55;cursor:default}
.em-cand img,.em-cand>i{width:30px;height:30px;border-radius:50%;object-fit:cover;flex:none;display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:800;background:var(--surface-2)}
.em-cand span{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.em-tg.r{background:color-mix(in srgb,#E4262C 12%,var(--surface));color:#c62828}
.em-tg.a{background:color-mix(in srgb,#2E86DE 14%,var(--surface));color:#1d5fa8}
.em-tg.n{background:var(--surface-2);color:var(--muted)}
.em-winb h3{margin:0;font-size:18px}
.em-wbig small{font-size:13px;font-weight:700;color:var(--muted)}
/* botones en la tarjeta Hoy y en Mi semana */
.btn.em-no{border-color:color-mix(in srgb,#E4262C 50%,var(--line));color:#c62828}
.btn.em-no:hover{background:color-mix(in srgb,#E4262C 10%,var(--surface))}
.btn.em-mine.open{border-color:color-mix(in srgb,#F28C28 55%,var(--line));color:#b45309}
.btn.em-mine.ok{border-color:color-mix(in srgb,#22c55e 50%,var(--line));color:#15803d}
.em-resc.on{background:linear-gradient(135deg,color-mix(in srgb,#E4262C 7%,var(--surface)),var(--surface) 60%)}
.em-rh>div{display:grid;gap:2px;min-width:0}
.em-rh b{font-size:15.5px}
.em-rh small{color:var(--muted);font-size:12.5px}
.em-ri svg{width:24px;height:24px}
.em-sw i{width:30px;height:18px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);position:relative;flex:none;transition:background .2s}
.em-sw.on{border-color:#E4262C}
.em-sw.on i{background:#E4262C;border-color:#E4262C}
.em-rstats>div{display:grid;gap:1px;padding:6px 10px;border-radius:10px;background:var(--surface-2);min-width:0}
.em-rstats b{font-size:18px;font-weight:800}
.em-rstats small{font-size:11px;color:var(--muted);line-height:1.2}
.em-rprog span{display:block;height:6px;border-radius:99px;background:var(--line);overflow:hidden;margin:3px 0 2px}
.em-rprog i{display:block;height:100%;background:#E4262C;border-radius:99px}
.em-rhow summary{cursor:pointer;font-size:12.5px;font-weight:700;color:var(--accent)}
.em-rhow ul{margin:6px 0 0;padding-left:18px;font-size:12.5px;color:var(--muted);display:grid;gap:3px}
@media (max-width:520px) {
.em-rstats .em-rprog{grid-column:1/-1}
}
.em-askrow small,.em-lrow small{color:var(--muted);font-size:12px}
.em-askrow>svg{width:22px;height:22px;color:#E4262C;flex:none}
.em-lrow em{font-style:normal;font-size:12px;font-weight:700;color:#E4262C;white-space:nowrap}
.em-lh b{display:inline-flex;align-items:center;gap:6px}
.em-lh b svg{color:#E4262C}
@media (max-width:520px) {
.em-lrow em{width:100%;text-align:right}
}
.em-rmes>svg{width:24px;height:24px;color:#E4262C;flex:none}
.em-rmes span{flex:1;display:grid;min-width:0}
.em-rmes small{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}
.em-rmes em{font-style:normal;font-weight:800;color:#b26a00;font-size:13px;white-space:nowrap}
.em-rmes.big{margin:12px 0}
.em-mnav b{min-width:140px;text-align:center;font-size:15px}
.em-tabs button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px;font:inherit;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.em-tabs button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.em-k b{font-size:22px;font-weight:800}
.em-k small{font-size:11.5px;color:var(--muted);line-height:1.2}
.em-cols h4{margin:0 0 8px;font-size:13.5px}
.em-drow>b{font-size:13px}
.em-dchip small{font-weight:400;font-size:11.5px;color:var(--muted)}
.em-bar i{display:block;height:8px;border-radius:99px;background:#E4262C;min-width:4px}
.em-frow small{grid-column:1/-1;color:var(--muted);font-size:12px}
.em-frow span{font-size:12.5px;color:var(--muted);text-align:right}
.em-frow.warn{background:color-mix(in srgb,#F28C28 13%,var(--surface));border:1px solid color-mix(in srgb,#F28C28 40%,var(--line))}
.em-frow.warn span{color:#b45309;font-weight:700}
.em-ch span{font-size:12px;color:var(--muted)}
.em-ch span.chg{color:#b45309;font-weight:700}
.cu-done .cu-fin .ico,.cu-plays .ico{width:12px;height:12px}
.cuw-plays b{grid-row:span 2;font:800 30px/1 var(--display);color:var(--accent)}
.cuw-plays span{font-weight:700}
.cuw-plays small{color:var(--muted);font-size:12px}
.cuw-me.ok{background:color-mix(in srgb,#10b981 14%,var(--surface));color:var(--ink)}
/* --- Estadísticas (Admon STAFF) --- */
.est{max-width:1180px;margin:0 auto}
.est-hd h2 .ico{width:26px;height:26px;color:var(--accent)}
.est-hd p{margin:4px 0 0}
.est-kpi .i{grid-row:span 2;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.est-kpi b{font:800 22px/1.1 var(--display);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.est-kpi b small{font-size:13px;color:var(--muted);font-weight:600}
.est-kpi.txt b{font-size:17px}
.est-kpi span:last-child{font-size:12px;color:var(--muted)}
.est-tabs button{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:9px 12px;font:inherit;font-weight:700;color:var(--muted);border-bottom:3px solid transparent;cursor:pointer;white-space:nowrap}
.est-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.est-tabs .ico{width:17px;height:17px}
.est-bar input[type=search]{min-width:180px;flex:1;max-width:280px}
.est-row.open{border-color:var(--accent)}
.est-who b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.est-who small{display:block;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.est-meter small{display:block;font-size:12px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.est-b i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 55%,#22d3ee))}
.est-top .ico{width:14px;height:14px}
.est-det h4{margin:0 0 6px;font-size:13px}
.est-mini li{display:flex;align-items:center;gap:8px;font-size:13px}
.est-mini small{margin-left:auto;color:var(--muted)}
.est-sec h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:16px}
.est-ccard small{display:block;color:var(--muted);font-size:12px;margin:2px 0 6px}
.est-vrow .est-chip{padding:2px 8px}
@media (max-width:760px) {
.est-row .est-meter{grid-column:2/-1}
.est-row>.uso-lv,.est-row>.est-top{grid-column:auto;justify-self:start}
.est-crow .est-meter,.est-vrow .est-meter{grid-column:2}
}
.cur-ring b{font:800 22px/1 var(--display)}
.cur-ring small{font-size:11px;color:var(--muted)}
.cur-htx h3{display:flex;align-items:center;gap:8px;margin:0;font-size:18px}
.cur-mile>b{display:block;height:100%;border-radius:99px;background:var(--accent);transition:width .6s}
.cur-mile span{position:absolute;top:-4px;transform:translateX(-50%);z-index:1;text-align:center}
.cur-mile span small{display:block;font-size:10px;color:var(--muted);margin-top:2px;white-space:nowrap}
.cur-next.done{border-color:#10b981}
.cur-next small{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}
.cur-next b{display:block;font-size:16px;margin:2px 0}
.cur-next span{display:block;font-size:13px;color:var(--muted)}
.cur-next .btn{flex:none;display:inline-flex;align-items:center;gap:6px;border:0;margin:0;width:auto}
.cur-card h4{display:flex;align-items:center;gap:6px;margin:0 0 4px;font-size:15px}
.cur-card .hint{margin:0 0 8px;font-size:12px}
.cur-tips ul{margin:4px 0 8px;padding-left:18px;font-size:13px;display:grid;gap:4px}
.cur-pg>b{display:block;font-size:13px;margin-bottom:6px}
.cur-step.cum-f{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px;padding:0;margin:0;border:0;background:transparent;font:inherit;cursor:pointer;color:var(--muted);min-width:0}
.cur-step i{display:block;width:100%;height:var(--h);border-radius:8px 8px 4px 4px;background:var(--surface-2);transition:background .2s}
.cur-step span{font-size:11px;font-weight:700}
.cur-step .ico{width:12px;height:12px;color:#10b981}
.cur-bts .cum-f{display:inline-flex;margin:0;padding:5px 10px;width:auto;border-radius:99px}
.cur-sh b{flex:1 1 200px;min-width:0}
.cur-sh small{color:var(--muted);font-size:12px;flex-basis:100%;order:3;margin-top:-2px}
.cur-it.cum-f{margin:0}
.cur-ck .ico{width:12px;height:12px}
.used>.cur-ck{background:#10b981;border-color:#10b981}
.cur-badge.ok{color:#059669;background:color-mix(in srgb,#10b981 14%,transparent)}
.cur-badge .ico{width:11px;height:11px}
.cur-les-h b{display:flex;align-items:center;gap:6px}
.cur-les-h .hint{display:block;font-size:12px;margin-top:2px}
.cur-lit.on{border-color:var(--accent)}
.cur-lit b{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cur-lit small{display:block;font-size:11px;color:var(--muted)}
.est-clk:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.est-clk.open{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
.est-row.est-crow{grid-template-columns:34px minmax(0,1.4fr) minmax(0,1.2fr) 28px}
.est-more svg{width:16px;height:16px}
.est-sub button{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:99px;padding:5px 12px;font:600 12.5px/1.2 inherit;cursor:pointer}
.est-sub button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.est-pr .n{min-width:0;display:grid}
.est-pr .n b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.est-pr .n small{color:var(--muted);font-size:11.5px;display:flex;align-items:center;gap:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.est-pg b{font-size:12px;font-variant-numeric:tabular-nums}
.est-vl>li{display:grid;grid-template-columns:26px minmax(0,1fr) 170px;gap:10px;align-items:start;padding:7px 8px;border-bottom:1px solid var(--line)}
.est-vl>li:last-child{border-bottom:0}
.est-vt>b{display:block;font-size:13px}
.est-vt>small{color:var(--muted);font-size:11.5px}
.est-vm small{display:block;font-size:11.5px;color:var(--muted);margin-top:3px}
.est-chip.ok{background:color-mix(in srgb,#22c55e 16%,var(--surface-2));cursor:pointer}
.est-chip.ok svg{width:12px;height:12px;color:#16a34a}
.est-chip.mid{background:color-mix(in srgb,#f59e0b 18%,var(--surface-2));cursor:pointer}
.est-chip.mid i{font-style:normal;font-weight:700;font-size:11px;color:#b45309}
.est-chip.sm{padding:1px 6px;vertical-align:middle}
[data-theme="dark"] .est-chip.mid i{color:#fbbf24}
.est-pd-hd svg{width:15px;height:15px;color:var(--accent)}
.est-pc>summary{display:grid;grid-template-columns:minmax(0,1fr) auto 130px auto;gap:10px;align-items:center;padding:8px 0;cursor:pointer;list-style:none}
.est-pc>summary::-webkit-details-marker{display:none}
.est-pc>summary small{color:var(--muted);font-size:11.5px;white-space:nowrap}
.est-tag svg{width:12px;height:12px}
.est-il li{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:8px;align-items:center;padding:5px 4px;border-top:1px dashed var(--line);font-size:12.5px}
.est-il li.ok .st{background:color-mix(in srgb,#22c55e 18%,transparent);color:#16a34a}
.est-il li.mid .st{background:color-mix(in srgb,#f59e0b 20%,transparent);color:#b45309}
.est-il .st svg{width:13px;height:13px}
.est-il .n small{color:var(--muted)}
.est-il>li>small{color:var(--muted);font-size:11.5px;white-space:nowrap}
/* gráficas */
.est-kpis2 .est-kpi b{font-size:18px}
.est-g h3{margin:0 0 2px}
.est-g .hint{margin:0 0 6px}
.est-g2 .est-sec{margin:0}
.est-heat .hh,.est-heat .hr{display:grid;grid-template-columns:38px repeat(24,minmax(14px,1fr));gap:3px;align-items:center;min-width:420px}
.est-heat .hh span{font-size:10px;color:var(--muted);white-space:nowrap;overflow:visible}
.est-heat-lg i{width:14px;height:12px;border-radius:3px;background:var(--surface-2);position:relative;overflow:hidden}
@media (max-width:760px) {
.est-row.est-crow{grid-template-columns:30px minmax(0,1fr) 22px}
.est-vl>li{grid-template-columns:24px minmax(0,1fr)}
.est-pc>summary{grid-template-columns:minmax(0,1fr) 100px;row-gap:2px}
.est-il li{grid-template-columns:34px minmax(0,1fr)}
}
.est-pd-hd>span{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.pp-it:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}
.pp-it.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface));box-shadow:inset 3px 0 0 var(--accent)}
.pp-itn b{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pp-it small{font-size:11.5px;color:var(--muted)}
.pp-edt small{color:var(--muted)}
.pp-acts .btn svg{width:14px;height:14px}
/* 7.122 · Ajustes: casillas iguales en todas las secciones e iconos en las tarjetas */
.lv-cfg input{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:6px;padding:5px 7px;min-width:0;font:inherit}
.st-card b svg{width:16px;height:16px;vertical-align:-3px;margin-right:4px;color:var(--accent)}
dialog#dlg.pp-dlg{width:min(1180px,96vw);max-width:min(1180px,96vw)}
/* 7.122 · Buzón de sugerencias */
dialog#dlg.buz-dlg{width:min(860px,96vw);max-width:min(860px,96vw)}
.buz-tabs button{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--muted);font:700 13.5px/1 inherit;padding:10px 12px;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}
.buz-tabs button svg{width:16px;height:16px}
.buz-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.buz-k svg{width:20px;height:20px;color:var(--kc)}
.buz-k b{font-size:13.5px}
.buz-k small{font-size:11.5px;color:var(--muted);line-height:1.3}
.buz-shotrow svg{width:15px;height:15px;vertical-align:-3px}
.buz-shotpv img{height:64px;border-radius:8px;border:1px solid var(--line);display:block}
.buz-send svg{width:15px;height:15px;vertical-align:-3px}
.buz-it.flash{animation:buzfl 1.6s ease 2}
.buz-it>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;cursor:pointer;list-style:none}
.buz-it>summary::-webkit-details-marker{display:none}
.buz-ki svg{width:18px;height:18px}
.buz-st b{font-size:13.5px}
.buz-st small{font-size:11.5px;color:var(--muted)}
.buz-resp b{display:inline-flex;gap:5px;align-items:center;font-size:12.5px}
.buz-resp b svg{width:14px;height:14px}
.buz-resp p{margin:4px 0 0;font-size:13.5px}
.buz-notas small{color:var(--muted)}
.buz-sts button{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:99px;padding:4px 10px;font:600 12px/1.2 inherit;cursor:pointer}
.buz-sts button[aria-pressed="true"]{border-color:var(--sc);background:color-mix(in srgb,var(--sc) 20%,var(--surface-2));color:var(--ink)}
.buz-row input{flex:1;min-width:160px;font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:6px 9px}
.buz-row svg{width:14px;height:14px;vertical-align:-2px}
.buz-fbar small{opacity:.7;margin-left:2px}
.buz-note svg{width:14px;height:14px;flex:none}
.buz-empty svg{width:34px;height:34px;opacity:.6}
.cpa-rg-hd small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.cpa-rg-hd b{font-size:16px}
.cpa-rg-hd p{flex:1;min-width:200px;margin:0}
.cpa-rg-who ul{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:4px}
.cpa-pal-seg button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:4px 10px;font-size:12.5px;cursor:pointer}
.cpa-pal-seg button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.cpa-pc small{font-size:11px;color:var(--muted)}
.cpa-pc b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cpa-pal-foot label{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
@media (max-width:640px) {
.cpa-pc b{font-size:13px}
}
body>.hm-dlm{position:fixed}
.hm-dlm button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;border-radius:8px;padding:9px 10px;color:inherit;font:inherit;cursor:pointer}
.hm-dlm button:hover,.hm-dlm button:focus-visible{background:var(--surface-2)}
.hm-dlm button svg{width:18px;height:18px;flex:none;opacity:.8}
dialog.hm-vdlg .mb{overflow:auto;padding:14px 18px;flex:1;min-height:0}
dialog.hm-vdlg .mf{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid var(--line);flex-wrap:wrap}
.hmv-new input{flex:1;min-width:200px}
.hmv-it b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hmv-it small{color:var(--muted);font-size:12px}
.hmv-it input[type=checkbox]{width:18px;height:18px;flex:none}
.hmv-acts .btn.sm{padding:4px 10px;font-size:12px}
.hmc-bar label{display:flex;align-items:center;gap:6px;cursor:pointer}
.hmc-sum b{color:var(--ink)}
.hmc-k small{font-weight:500;font-size:11px;color:var(--muted)}
.hm-steps-h>span svg{width:22px;height:22px;color:var(--accent)}
.hm-steps-h small{color:var(--muted);font-size:12px}
.hm-steps-bar>i{display:block;height:100%;background:var(--accent);border-radius:9px;transition:width .4s}
.hm-steps-l button{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:4px 10px 4px 4px;font:600 12px/1.2 inherit;cursor:pointer;white-space:nowrap}
.hm-steps-l li.done .n{background:#22a35a;color:#fff}
.hm-steps-l li.next .n{background:var(--accent);color:#fff}
.hm-coach p{margin:0 0 8px;font-size:13.5px;line-height:1.45}
.hm-pregform svg{width:14px;height:14px;vertical-align:-2px;color:#3d82d0}
.hm-pregsug-h svg{width:14px;height:14px;vertical-align:-2px;color:#c8902a}
.hm-serie-cta svg{width:15px;height:15px;color:#3d82d0}
.hm-serie-cta .btn{color:#22305a;border-color:#9db0e8;background:#fff}
.hm-ptchk svg{width:14px;height:14px;flex:none}
.hm-ptchk span{flex:1;min-width:180px}
.hm-ptchk.ok{background:#e9f7ef;color:#196b3e}
.hm-ptchk.no{background:#fff2e6;color:#8a4a0f}
.hm-minc.on{background:#22305a;color:#fff;border-color:#22305a}
.hm-minnote svg{width:13px;height:13px;vertical-align:-2px;color:#c8902a}
.hm-minro .chip{background:#eef1f7;color:#22305a}
.hm-metodo h3 svg{width:20px;height:20px;color:var(--accent)}
.hm-met-l p{margin:2px 0 0;font-size:13px;color:var(--muted);line-height:1.45}
.hm-met-ej h4{margin:0 0 4px}
.hm-met-q ol,.hm-met-q ul{margin:6px 0 0;padding-left:20px}
.hm-abc i{font-style:normal;font-weight:700;color:var(--accent)}
.ia{display:grid;gap:14px;min-width:0}
.ia-tabs button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:7px 14px;font:inherit;font-size:13.5px;cursor:pointer}
.ia-tabs button[aria-selected="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.ia-tabs svg{width:16px;height:16px}
.ia-eqb.on{background:color-mix(in srgb,#22c55e 14%,var(--surface-2));border:1px solid color-mix(in srgb,#22c55e 40%,transparent)}
.ia-eqb.off{background:color-mix(in srgb,#f59e0b 14%,var(--surface-2));border:1px solid color-mix(in srgb,#f59e0b 40%,transparent)}
.ia-eqb svg{width:16px;height:16px;flex:none}
.ia-eqb span{flex:1;min-width:200px}
.ia-intro p{margin:4px 0;line-height:1.45}
.ia-sec h4,.ia-sech h4{margin:0;display:flex;align-items:center;gap:6px;font-size:15px}
.ia-sec h4 svg{width:17px;height:17px}
.ia-cardh b{font-size:15px;overflow-wrap:anywhere}
.ia-card p{margin:0}
.ia-st svg{width:15px;height:15px;flex:none}
.ia-bar i{display:block;height:100%;background:linear-gradient(90deg,#8b5cf6,#22d3ee);transition:width .6s}
.ia-row.sm{padding:5px 8px;border-radius:10px}
.ia-rowt b{overflow-wrap:anywhere}
.ia-chips .chip{font-style:normal;font-size:11.5px}
.chip.warn{background:color-mix(in srgb,#f59e0b 20%,transparent)}
.chip.ok{background:color-mix(in srgb,#22c55e 16%,transparent)}
.ia-play svg{width:16px;height:16px}
.ia-form h4{margin:0}
.ia-form.sm{padding:10px}
.ia-sug .chip{cursor:pointer;border:1px solid var(--line);font:inherit;font-size:12px}
.ia-card audio,.ia-lec audio,.ial audio{width:100%;height:36px}
.ia-lech .ico-btn{margin-left:auto}
.ia-eq.on{opacity:1;border-color:color-mix(in srgb,#22c55e 60%,var(--line));background:color-mix(in srgb,#22c55e 7%,var(--surface))}
.ia-how ol{margin:6px 0 0 18px;padding:0;line-height:1.5}
.ial-row label{font-weight:600}
.ial-row select{min-width:0;flex:1 1 160px}
.ia-lec a.btn,.ia-lec a.btn:hover{text-decoration:none}
.ia-lech b{flex:1 1 100%}
.ia-lech .hint{flex:1;min-width:0}
@media (max-width:640px) {
.ia-form .f2{grid-template-columns:minmax(0,1fr)}
.ia-form .seg button{flex:1}
}
.hpa-card b{font-size:15.5px;line-height:1.25;padding-right:34px}
.hpa-card small{color:var(--muted);font-size:12.5px;line-height:1.35}
.hpa-mini svg{display:block;width:100%;height:8px;border-radius:4px;overflow:hidden}
.hpa-tabs button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 14px;font:inherit;font-size:13.5px;cursor:pointer}
.hpa-tabs button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.hpa-leg i{display:inline-block;width:14px;height:8px;border-radius:3px;margin-right:5px;vertical-align:middle}
.hpa-tl small{color:var(--muted);font-size:12.5px;line-height:1.4}
.hpa-tl .hpa-vz svg{width:13px;height:13px;flex:none}
.hpa-st h4{margin:8px 0 0}
.hpa-rasgos span{font-size:13px;color:var(--muted);line-height:1.4}
.hpa-bar i{position:absolute;top:0;bottom:0;border-radius:5px}
.hpa-bar em{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--ink);opacity:.5}
[data-hparec].rec,[data-hmparec].rec{background:#ef4444!important;border-color:#ef4444!important;color:#fff!important;animation:hpaPulse 1.4s infinite}
@keyframes hpaPulse{50%{box-shadow:0 0 0 6px color-mix(in srgb,#ef4444 25%,transparent)}}
.hpa-resw audio{width:100%}
.hpa-ml span{font-weight:700;font-variant-numeric:tabular-nums}
.hpa-m small{line-height:1.45;font-size:13px}
.hpa-mbar .you{position:absolute;top:-4px;width:4px;height:20px;margin-left:-2px;background:var(--ink);border-radius:2px}
.hm-pr-rec svg{width:15px;height:15px}
@media (max-width:640px) {
.hpa-tr>span:nth-child(4),.hpa-tr>span:nth-child(5){display:none}
.hpa-tabs button{font-size:12.5px;padding:5px 11px;white-space:nowrap}
.hpa-leg .hint{display:none}
.hm-pr-rec span,.hm-pr-rec{font-size:0}
.hm-pr-rec svg{width:18px;height:18px}
}
.sem-leadb .ico{width:13px;height:13px}
.sem-leadtag .ico{width:13px;height:13px;flex:none}
.sem-leadsum-t .ico{width:16px;height:16px}
.cpg-h b{font-size:16px}
.cpg-seg button{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:999px;padding:5px 11px;font:inherit;font-size:13px;cursor:pointer}
.cpg-seg button.on{background:var(--cp,var(--accent));border-color:var(--cp,var(--accent));color:#fff}
.cpg-bar i{display:block;height:100%;background:var(--cp,var(--accent));transition:width .6s}
.cp-palh b{font:800 13px/1.2 var(--body);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.cp-palh small{color:var(--muted);font-size:11.5px;line-height:1.3}
.cp-pt i{width:8px;height:22px;border-radius:4px;background:var(--c);flex:none}
.cp-pn:hover{border-color:var(--c);color:var(--c)}
.cp-pn.on{background:color-mix(in srgb,var(--c) 18%,var(--surface));border-color:color-mix(in srgb,var(--c) 50%,var(--line));color:var(--c)}
.cp-advt b{display:block;font:800 12.5px/1.2 var(--body)}
.cp-advt small{display:block;color:var(--muted);font-size:11px;line-height:1.3;margin-top:2px}
.cp-advt.on{border-style:solid;border-color:color-mix(in srgb,var(--cp,var(--accent)) 50%,var(--line));background:color-mix(in srgb,var(--cp,var(--accent)) 8%,transparent)}
.cp-tecb i{font-style:normal;font:700 10.5px/1 var(--body);color:var(--c);background:color-mix(in srgb,var(--c) 12%,transparent);border:1px solid color-mix(in srgb,var(--c) 28%,transparent);border-radius:999px;padding:4px 7px;white-space:nowrap}
.cp-tech b{font:800 12px/1 var(--body);text-transform:uppercase;letter-spacing:.05em;color:var(--c)}
.cp-tecg label{display:grid;gap:3px;font:700 11px/1.1 var(--body);color:var(--muted);min-width:0}
@media (max-width:980px) {
.cp-pt i{height:14px;width:6px}
.cp-advt small{display:none}
.cp-advt b{font-size:11.5px}
}
@media (max-width:640px) {
.cp-advt b{display:none}
}
/* 7.129 · Exámenes de los cursos */
#panel-examenes{--ex:#7C3AED}
.ex-tt>.ico{width:38px;height:38px;padding:8px;border-radius:12px;background:color-mix(in srgb,var(--ex) 16%,var(--surface));color:var(--ex);box-sizing:border-box}
.ex-tt small{color:var(--muted)}
.ex-seg button{display:flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--ink);border-radius:999px;padding:7px 14px;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer}
.ex-seg button .ico{width:16px;height:16px}
.ex-seg button.on{background:var(--ex);color:#fff}
.ex-empty>.ico{width:46px;height:46px;color:var(--ex)}
.ex-tile-h>.ico{width:30px;height:30px;color:var(--ex);flex:none}
.ex-tile-h small{display:block;color:var(--muted);font-size:12px}
.ex-tile-h b{font-size:15.5px;line-height:1.25}
.ex-chip.draft{background:color-mix(in srgb,#d97706 16%,var(--surface));color:#b45309}
.ex-chip.pub{background:color-mix(in srgb,#2563eb 14%,var(--surface));color:#1d4ed8}
.ex-chip.ok{background:color-mix(in srgb,#16a34a 16%,var(--surface));color:#15803d}
:root[data-theme="dark"] .ex-chip.draft{color:#fbbf24}
:root[data-theme="dark"] .ex-chip.pub{color:#93c5fd}
:root[data-theme="dark"] .ex-chip.ok{color:#86efac}
.ex-note .ico{width:16px;height:16px;flex:none;margin-top:2px}
.ex-warn .ico,.ex-mut .ico,.ex-map .ico{width:15px;height:15px;vertical-align:-3px}
.ex-map small{color:var(--muted)}
.ex-intro-b>.ico{width:52px;height:52px;color:var(--ex)}
.ex-intro-b small{color:var(--muted)}
.btn.big{font-size:16px;padding:11px 22px;display:inline-flex;align-items:center;gap:8px}
.btn.big .ico{width:18px;height:18px}
.ex-auto .ico{width:16px;height:16px;color:var(--ex)}
.ex-head-b small{color:var(--muted)}
.ex-banner .ico{width:18px;height:18px;flex:none;margin-top:1px}
.ex-banner.ok{background:color-mix(in srgb,#16a34a 12%,var(--surface))}
.ex-banner.pub{background:color-mix(in srgb,#2563eb 11%,var(--surface))}
.ex-banner.draft{background:color-mix(in srgb,#d97706 13%,var(--surface))}
.ex-bar i{display:block;height:100%;background:var(--ex);border-radius:999px;transition:width .25s}
.ex-q h4{margin:0 0 10px;font-size:15.5px;line-height:1.4;display:flex;gap:10px;align-items:flex-start}
.ex-opt.right em{color:#15803d}
.ex-opt.wrong em{color:#b91c1c}
:root[data-theme="dark"] .ex-opt.right em{color:#86efac}
:root[data-theme="dark"] .ex-opt.wrong em{color:#fca5a5}
.ex-opt em.r{color:#15803d}
.ex-mark .ico{width:16px;height:16px}
.ex-frag-h .ico{width:18px;height:18px;color:var(--ex);flex:none;margin-top:2px}
.ex-frag-h b{display:block;font-size:13px;line-height:1.3}
.ex-frag-h small{color:var(--muted);font-size:12px}
.ex-score svg{width:64px;height:64px;transform:rotate(-90deg)}
.ex-kpis b{display:block;font-size:22px}
.ex-kpis small{color:var(--muted);font-size:12px}
.ex-row-m small{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ex-row-m .ico{width:13px;height:13px;vertical-align:-2px}
.ex-row-s small{color:var(--muted);font-size:12px}
.ex-dr i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--surface);font-style:normal;font-weight:800;font-size:11px}
.ex-dr small{color:var(--muted)}
.ex-reg small{color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.ex-hist .ico{width:14px;height:14px;vertical-align:-2px}
.btn.danger.ghost{color:#dc2626}
.ex-edq-h .ico{width:15px;height:15px}
.ex-edopt label{display:flex;align-items:center;gap:4px;cursor:pointer;font-weight:800;font-size:12.5px;flex:none}
.ex-edsrc>b{font-size:13px;display:flex;gap:6px;align-items:center}
.ex-edsrc>b .ico{width:16px;height:16px;color:var(--ex)}
.ex-edsrc-r label{display:flex;flex-direction:column;font-size:11.5px;color:var(--muted);gap:2px}
@media (max-width:760px) {
.ex-kpis>div:nth-child(5){display:none}
.ex-seg button{padding:6px 10px;font-size:12.5px}
}
/* 7.129.1: activar / desactivar examen */
.ex-onbar.on{border-style:solid;border-color:color-mix(in srgb,#22c55e 55%,var(--line));background:color-mix(in srgb,#22c55e 10%,var(--surface))}
.ex-onbar .btn{flex:none}
.ex-rw-h small{display:block;color:var(--muted);font-size:12px}
.ex-rw-c b{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;overflow:hidden;flex:none}
/* 7.129.2: vista previa de líderes */
.ex-prevh .ex-banner{margin:10px 0}
.ex-prevres>div:last-child{flex:1;min-width:220px}
.ex-prevpr.ok{background:color-mix(in srgb,#16a34a 12%,var(--surface-2))}
.ex-prevpr small{display:block;color:var(--muted)}
.ex-timer span .ico{width:16px;height:16px}
.ex-timer b{justify-self:end;font-size:24px;font-variant-numeric:tabular-nums;letter-spacing:.5px}
.ex-timer i{grid-column:1/-1;height:6px;border-radius:999px;background:var(--line);overflow:hidden}
.ex-timer.warn{background:color-mix(in srgb,#d97706 15%,var(--surface))}
.ex-strkc .ico{width:15px;height:15px}
.ex-strkc.on{color:#dc2626;font-weight:600}
.ex-row-c small{white-space:nowrap}
.ex-hrow small{color:var(--muted);font-size:12px}
.ex-hico .ico{width:18px;height:18px}
.ex-apl>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 280px}
.ex-apl>div:first-child>.ico{width:18px;height:18px}
.ex-apl b{font-size:16px}
.ex-apl small{color:var(--muted);font-size:12.5px;line-height:1.35}
.ex-apl.on{background:color-mix(in srgb,#16a34a 10%,var(--surface));border-color:color-mix(in srgb,#16a34a 35%,var(--line))}
.ex-apl.paused{background:color-mix(in srgb,#d97706 10%,var(--surface));border-color:color-mix(in srgb,#d97706 35%,var(--line))}
.ex-apl.done{background:color-mix(in srgb,var(--ex) 8%,var(--surface))}
.ex-apl.none{border-style:dashed}
.ex-apl-c .ico{width:13px;height:13px}
.ex-kpis>div:nth-child(5){display:block}
.ex-dr .btn{margin-left:6px;padding:2px 8px;font-size:12px}
dialog.ex-dlg .mb{padding:6px 16px 10px;display:flex;flex-direction:column;gap:8px;max-height:70vh;overflow:auto}
dialog.ex-dlg .mf{display:flex;justify-content:flex-end;gap:8px;padding:10px 16px 14px}
.ex-pick.on{background:var(--ex);border-color:var(--ex);color:#fff}
.ex-pick small{opacity:.75;font-weight:500}
.ex-st-id small{color:var(--muted);font-size:12.5px}
.ex-kpis.st{margin-top:10px}
.ex-st-g .ex-ch{margin:0}
.ex-donut svg{width:150px;height:150px;flex:none}
.ex-hb i{display:block;width:100%;min-height:2px;border-radius:6px 6px 2px 2px}
.ex-hb small{font-size:12px;font-weight:700;color:var(--ink)}
.ex-qb i{display:block;height:100%;border-radius:999px;background:var(--ex)}
button.ex-cmpr{cursor:pointer}
.ex-cmpr.on{border-color:var(--ex);background:color-mix(in srgb,var(--ex) 8%,var(--bg))}
.ex-cmpr small,.ex-cmpp{color:var(--muted);font-size:12px}
.ex-th.on{background:var(--surface-2);color:var(--ink)}
button.ex-str{cursor:pointer}
.ex-str .ex-av img{width:100%;height:100%;object-fit:cover}
.ex-str-m small{color:var(--muted);font-size:12px}
.ex-chip.no{background:color-mix(in srgb,#dc2626 13%,var(--surface));color:#b91c1c}
:root[data-theme="dark"] .ex-chip.no{color:#fca5a5}
@media (max-width:760px) {
.ex-kpis>div:nth-child(5){display:block}
.ex-cmpr>.ex-qb{grid-area:b}
.ex-cmpr>.ex-cmpp{grid-area:p}
.ex-seg button{padding:7px 10px;font-size:13px}
}
@media (max-width:640px) {
dialog.ex-dlg>.mb{flex:0 1 auto!important}
}
.ex-histc h3 .ico,.ex-st-t h3 .ico{width:18px;height:18px}
.gen-seg button{border:0;background:transparent;color:inherit;padding:4px 10px;font:inherit;cursor:pointer}
.gen-t b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gen-t small{color:var(--muted,#888);font-size:12px}
.ia-gfilter .chip{cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-style:normal;font-size:12px;padding:4px 11px;border-radius:999px}
.ia-chips .chip.wait svg{width:12px;height:12px;animation:ia-spin 1.4s linear infinite}
.ia-tagh svg{width:14px;height:14px}
.ia-tagpick .chip.tpick.sug{border-color:color-mix(in srgb,#f59e0b 55%,var(--line));color:var(--ink)}
.ia-tagpick .chip.tpick.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.ex-lh-niv small{color:var(--muted)}
.ex-hh-t small{color:var(--muted);display:block;max-width:560px}
.ex-hr-m b,.ex-hr-d b{overflow:hidden;text-overflow:ellipsis}
.ex-hr small{color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.dt3-q svg{width:16px;height:16px;color:var(--muted);flex:none}
.dt3-b svg{width:15px;height:15px}
.dt3-chip svg{width:12px;height:12px}
.dt3-f svg{width:13px;height:13px}
.dt3-ph .ico-btn svg{width:15px;height:15px}
.dt3-vgo svg{width:16px;height:16px;color:var(--accent);flex:none}
/* ===== 7.140 · Inicio v3 ===== */
.home.home3{max-width:1320px}

/* ===== Estilos: coleccionables ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.ach-pop .ach-ico{animation:achspin 1.2s ease-out}
@keyframes achspin{from{transform:rotate(-360deg) scale(.4)}to{transform:none}}
@keyframes xpfly{0%{transform:translateY(0);opacity:0}15%{opacity:1}100%{transform:translateY(-90px);opacity:0}}
.ach-coll .locked{opacity:.4;filter:grayscale(1)}
.bd-bn{border-radius:16px 16px 0 0}
.eq-item.locked{opacity:.5;cursor:not-allowed}
.ce-shape{border:2px solid var(--line);background:var(--surface-2);border-radius:12px;padding:6px;cursor:pointer;line-height:0}
.ce-ic{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:5px;cursor:pointer;color:var(--muted)}
.badge-big{text-align:center;padding:6px}
.stars{display:inline-flex;gap:1px;font-size:14px;line-height:1}
.eq-an{position:absolute;right:4px;bottom:4px;font-size:9.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:linear-gradient(100deg,#7C6CF6,#2EE6D6);border-radius:999px;padding:1px 6px;line-height:14px}
.ce-tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.ce-tpl:hover{border-color:var(--accent)}
.ce-tpl.have{opacity:.6}
.ce-tpl .coll-bn{max-width:100%}
.ce-frsm{display:flex;align-items:center;gap:10px}
.ce-bdprev{cursor:default;pointer-events:none}
.fx-list{display:grid;gap:8px}
.fx-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px}
.fx-fig:hover{border-color:var(--accent)}
.fx-r{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}
.fx-cols{display:inline-flex;gap:4px;align-items:center}
.fx-pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:6px;max-height:260px;overflow:auto}
@media (max-width:640px) {
.fx-row{grid-template-columns:1fr}
}
.nfx-brillo{animation:nfxBrillo 2.4s ease-in-out infinite}
@keyframes nfxBrillo{0%,100%{text-shadow:0 0 2px var(--n1),0 1px 2px rgba(0,0,0,.5)}50%{text-shadow:0 0 10px var(--n1),0 0 18px var(--n1),0 1px 2px rgba(0,0,0,.5)}}
.nfx-neon{color:#fff!important;text-shadow:0 0 3px #fff,0 0 8px var(--n1),0 0 16px var(--n1),0 0 26px var(--n2);animation:nfxNeon 3.2s linear infinite}
@keyframes nfxNeon{0%,18%,22%,60%,64%,100%{opacity:1}20%,62%{opacity:.45}}
.nfx-oro,.nfx-fuego,.nfx-hielo,.nfx-arcoiris,.nfx-degradado,.nfx-destello{-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent;text-shadow:none!important}
.nfx-oro{background-image:linear-gradient(100deg,#9c7a1d,#ffe9a3 25%,#c79a22 45%,#fff7d6 55%,#b8891a 75%,#ffe08a);background-size:250% 100%;filter:drop-shadow(0 0 1px rgba(40,20,0,1)) drop-shadow(0 1px 2px rgba(0,0,0,.75));animation:nfxShift 4s linear infinite}
.nfx-fuego{background-image:linear-gradient(0deg,#ffb300,#ffe066 45%,#fff6c2 80%,#fff 100%);background-size:100% 220%;filter:drop-shadow(0 0 1px rgba(80,0,0,1)) drop-shadow(0 1px 2px rgba(0,0,0,.8)) drop-shadow(0 0 5px rgba(255,90,0,.9));animation:nfxFuego 1.1s ease-in-out infinite alternate}
@keyframes nfxFuego{from{background-position:0 0}to{background-position:0 100%}}
.nfx-hielo{background-image:linear-gradient(100deg,#e0f7ff,#8fd8ff 30%,#ffffff 50%,#6ec6ff 70%,#e0f7ff);background-size:250% 100%;filter:drop-shadow(0 0 4px rgba(120,210,255,.9)) drop-shadow(0 1px 1px rgba(0,40,80,.6));animation:nfxShift 5s linear infinite}
.nfx-arcoiris{background-image:linear-gradient(90deg,#ff5f6d,#ffc371,#fff176,#69f0ae,#40c4ff,#b388ff,#ff5f6d);background-size:300% 100%;filter:drop-shadow(0 1px 1px rgba(0,0,0,.55));animation:nfxShift 4.5s linear infinite}
.nfx-degradado{background-image:linear-gradient(90deg,var(--n1),var(--n2),var(--n1));background-size:200% 100%;filter:drop-shadow(0 1px 1px rgba(0,0,0,.5));animation:nfxShift 5s linear infinite}
.nfx-destello{background-image:linear-gradient(110deg,var(--n3) 38%,#fff 48%,var(--n1) 52%,var(--n3) 62%);background-size:300% 100%;filter:drop-shadow(0 1px 1px rgba(0,0,0,.55));animation:nfxShift 2.8s linear infinite}
@keyframes nfxShift{from{background-position:0% 50%}to{background-position:-300% 50%}}
.nfx-contorno{color:var(--n3)!important;-webkit-text-stroke:3px var(--n1);paint-order:stroke fill;text-shadow:none!important;letter-spacing:.02em}
.nfx-sombra3d{text-shadow:1px 1px 0 var(--n1),2px 2px 0 var(--n1),3px 3px 0 var(--n2),4px 4px 6px rgba(0,0,0,.45)!important}
.nfx-latido{animation:nfxLatido 1.4s ease-in-out infinite;transform-origin:left center}
@keyframes nfxLatido{0%,100%{transform:scale(1)}15%{transform:scale(1.08)}30%{transform:scale(1)}45%{transform:scale(1.05)}}
.nfx-electrico{text-shadow:0 0 4px var(--n1),0 0 10px var(--n1);animation:nfxElec 1.6s steps(1) infinite}
@keyframes nfxElec{
0%,100% {
  text-shadow:0 0 4px var(--n1),0 0 10px var(--n1);
  transform:none;
}
8% {
  text-shadow:-1px 0 var(--n1),1px 0 #fff,0 0 14px var(--n1);
  transform:translateX(.5px);
}
12% {
  text-shadow:1px 0 var(--n1),-1px 0 #fff;
  transform:translateX(-.5px);
}
16% {
  transform:none;
}
55% {
  text-shadow:0 0 16px var(--n1),0 0 4px #fff;
}
58% {
  text-shadow:0 0 4px var(--n1);
}
}
.eq-item.eq-new{border-color:#f59e0b;box-shadow:0 0 0 3px color-mix(in srgb,#f59e0b 22%,transparent)}
.eq-item.eq-flash{animation:eqFlash 1.2s ease-in-out 2}
@keyframes eqFlash{50%{transform:scale(1.06);box-shadow:0 0 0 6px color-mix(in srgb,#f59e0b 35%,transparent)}}
.efx-ed{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--surface-2)}
.efx-cats{display:flex;flex-wrap:wrap;gap:4px;margin:2px 0 8px}
.efx-cat{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer;display:inline-flex;gap:5px;align-items:center}
.efx-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px;max-height:320px;overflow:auto;padding:2px}
.efx-b{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px 6px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;color:var(--ink);min-height:90px;justify-content:flex-end;overflow:visible}
.efx-pick.bn .efx-b{min-height:0;padding:6px}
.efx-b .coll-av{margin:6px 0 2px}
.efx-bnp{display:block;width:100%;height:26px;border-radius:6px}
.efx-none{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px dashed var(--line);margin:6px 0 2px}
.efx-pick.bn .efx-none{width:100%;height:26px;border-radius:6px;margin:0}
.efx-pals{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.efx-pal{display:flex;gap:0;padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer}
.efx-cols{display:inline-flex;gap:4px;margin-left:auto}
.efx-rgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px 12px;margin-top:8px}
.efx-rg{display:grid;gap:2px;font-size:12px}
.efx-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}
.efx-ring{display:flex;align-items:center;gap:6px;font-size:12px}
.efx-ring .sel{width:auto}
/* logros por niveles */
.ach-sum{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:13px}
.ach-tier{border:1px solid var(--line);border-radius:12px;margin:0 0 10px;background:var(--surface)}
.ach-tn{margin-left:auto;font-weight:700;font-size:13px}
.ach-tdot{width:16px;height:16px;border-radius:50%;flex:none;box-shadow:0 0 8px rgba(0,0,0,.3)}
.ach-tier .ach-grid{padding:0 10px 10px}
.ach-tt5{border-color:#ff8a65;box-shadow:0 0 0 1px rgba(255,138,101,.35),0 4px 18px rgba(255,95,109,.15)}
.ach-tt4{border-color:#b388ff}
.ach-tt3{border-color:#ffca28}
.ach-tier .ach-coll .locked{opacity:.85;filter:saturate(.55)}
body.fx-quieto .rx-live *{animation:none!important}

/* ===== Estilos: ajustes ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
@keyframes achin{from{transform:translateX(-50%) translateY(-30px) scale(.9);opacity:0}to{transform:translateX(-50%);opacity:1}}
.helper-btn:hover{transform:scale(1.08)}
.hp-m.bot{background:var(--surface-2);align-self:flex-start}
.hp-m.me{background:color-mix(in srgb,var(--accent) 18%,var(--surface));align-self:flex-end}
.chlog details{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-bottom:8px;background:var(--surface)}
.chlog li{margin-bottom:3px}
.sk-card{border:1px solid var(--line);border-radius:12px;padding:10px;cursor:pointer;background:var(--surface);transition:border-color .15s}
.sk-card:hover{border-color:var(--accent)}
.sk-card[aria-selected="true"]{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}
.sk-prev .sk-btn{font-style:normal;font-size:11px;font-weight:800;padding:5px 11px}
.sk-dot{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;box-shadow:0 0 0 1px var(--line)}
.sk-bar{border:1px solid var(--line);border-radius:10px;padding:0;overflow:hidden;cursor:pointer;background:var(--surface);width:150px;text-align:left;font:inherit}
.sk-bar[aria-selected="true"]{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}
#custom-banners{display:flex;flex-direction:column}
#design-panel{position:fixed;right:12px;bottom:12px;z-index:90;width:min(340px,94vw);max-height:80vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 60px -15px rgba(0,0,0,.5);padding:12px;font-size:13px}
#design-panel h4{margin:12px 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
#design-panel .dp-h{display:flex;align-items:center;gap:8px}
#design-panel .dp-row{display:flex;gap:8px;align-items:center;padding:4px 0}
#design-panel .dot{width:14px;height:14px;border-radius:50%;flex:none}
#design-panel .ck{padding:3px 0}
#design-panel .dp-f{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}
/* ajustes con menú lateral */
dialog.st-dlg{width:min(96vw,1000px);max-width:1000px}
.st-body{padding:20px 22px;overflow:auto}
.bgprev.has{cursor:grab}
.bgprev.has:active{cursor:grabbing}
@media (max-width:820px) {
.st-layout{grid-template-columns:1fr}
.bgpick{grid-template-columns:1fr}
}
.bp-sec{border:1px solid var(--line);border-radius:12px;padding:12px}
.bp-preset[aria-selected="true"]{border-color:var(--accent)}
.bp-full{grid-column:1/-1}
.ev-card.selectable{cursor:pointer;transition:box-shadow .15s,transform .15s}
@media (max-width:640px) {
.rep-actions{padding:8px}
}
.ev-date[aria-selected="true"]{border-color:var(--green);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 25%,transparent)}
.ev-date .d{font-weight:800;min-width:60px}
.ev-date .pct{margin-left:auto;font-weight:800}
.md-day.pend{outline:2px dashed var(--gold);outline-offset:-2px}
.md-day.alt{background:repeating-linear-gradient(135deg,var(--surface-2) 0 6px,var(--surface) 6px 12px);opacity:.75}
.md-day.assigned::after{content:'En el rol';font-size:10px;font-weight:800;color:var(--green-ink)}
@media (max-width:800px) {
.mu-side .cu-side-item{flex:none;border:1px solid var(--line);padding:6px 10px}
}
.curso-card:hover{box-shadow:var(--shadow)}
.curso-card .cb{padding:12px}
.curso-card .prog{height:6px;background:var(--surface-2);border-radius:3px;margin-top:10px;overflow:hidden}
.curso-card .cv .ph{position:relative;z-index:1}
.curso-card.locked .cv{filter:grayscale(.6)}
.curso-card.locked h4::after{content:" 🔒"}
/* asistente: arrastrable; en celular se abre desde el menú de usuario */
.helper-btn{touch-action:none;user-select:none;-webkit-user-select:none}
.helper-btn.drag{cursor:grabbing;transform:scale(1.12);transition:none}
@media (max-width:640px) {
.helper-btn{display:none!important}
.helper-panel{left:8px!important;right:8px;top:auto!important;bottom:calc(72px + env(safe-area-inset-bottom));width:auto;height:min(65vh,480px)}
}
/* 7.7: barra por módulo en escritorio: solo el icono del módulo; al pasar el mouse se vuelve el icono de inicio */
.mi-home{display:none}
@keyframes buzz{
0%,100% {
  transform:translate(0);
}
10% {
  transform:translate(-7px,3px);
}
20% {
  transform:translate(7px,-3px);
}
30% {
  transform:translate(-6px,-4px);
}
40% {
  transform:translate(6px,4px);
}
50% {
  transform:translate(-5px,2px);
}
60% {
  transform:translate(5px,-2px);
}
70% {
  transform:translate(-4px,3px);
}
80% {
  transform:translate(4px,-3px);
}
90% {
  transform:translate(-2px,1px);
}
}
body.buzz{animation:buzz .8s linear}
/* 7.16: cursos con solicitud de acceso, quién vio cada video y avance de cursos en Banda */
.curso-card.reqacc{cursor:default}
.curso-card.locked .cv{filter:grayscale(.7) brightness(.72)}
.curso-card.reqacc .cv::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.35))}
.mod-pv{width:44px;height:44px;border-radius:12px;box-shadow:none;display:grid;place-items:center;background:linear-gradient(135deg,var(--mc,var(--accent)),color-mix(in srgb,var(--mc,var(--accent)) 62%,#000));color:#fff;line-height:0}
@media (max-width:640px) {
.snd-row{grid-template-columns:1fr auto}
}
.curso-card.soon .cv{filter:saturate(.7)}
.curso-card.soon .cb h4::after{content:"";}
/* Ajustes en celular */
.st-mbar,.st-mhead{display:none}
@media (max-width:640px) {
.st-layout:has(.st-mbar){align-content:start}
.st-mbar{display:flex;align-items:center;gap:12px;width:calc(100% - 24px);margin:10px 12px 4px;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
dialog.st-open .st-nav .st-mhead b{font-size:18px}
dialog.st-open .st-nav [data-stnav][hidden]{display:none!important}
dialog.st-open .st-nav [data-stnav][aria-selected="true"]{border-color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 14%,var(--surface-2))!important}
}
.md-day.noens{background:repeating-linear-gradient(135deg,var(--surface-2) 0 6px,var(--surface) 6px 12px);opacity:.8;cursor:not-allowed}
.curso-card{transition:transform .18s,box-shadow .18s,border-color .18s}
.curso-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
.curso-card .cv{height:132px}
@media (max-width:640px) {
.curso-card .cv{height:92px}
.curso-card .cb{padding:9px}
.curso-card .cb p:not(:last-child){font-size:11.5px}
}
.st-nav .st-grp{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:12px 10px 4px}
.st-nav .st-grp:first-of-type{padding-top:6px}
.st-nav button .st-i svg{width:15px;height:15px}
.st-sec h3 .st-i svg{width:16px;height:16px}
.st-nav button>span:not(.st-i){display:none}
#st-brand svg,#st-lg-preview svg,#gh-run svg{width:15px;height:15px;vertical-align:-3px}

/* ===== Estilos: semana ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.sem-count.soon{background:var(--warn-bg)}
.sem-count.urgent{background:var(--danger-bg);color:var(--danger)}
.sem-prog .prog{width:120px}
@media (max-width:700px) {
.sem-song{grid-template-columns:36px 1fr;grid-template-rows:auto auto}
.sem-steps{grid-column:1/3}
.sem-res{grid-column:1/3;justify-content:flex-end}
}
.sem-pop{text-align:center;padding:6px 4px}
.devo-it{display:flex;gap:10px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
/* Mi semana: cuando no te toca servir */
.sem-nochip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#111;background:linear-gradient(90deg,#FFD54A,#F0B429);border-radius:999px;padding:3px 10px;white-space:nowrap}
.sh-steps{display:grid;gap:8px}
.sh-step{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface-2)}
.sh-list{display:grid;gap:8px}
.sh-song{border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.sh-chip{font:inherit;font-size:12px;border:1px solid var(--line);background:var(--surface);color:var(--danger,#d92d20);border-radius:999px;padding:3px 10px;cursor:pointer;font-weight:700}
.sh-chip.ready{color:var(--muted);cursor:default}
/* ===== 7.110 · Mi semana: tu voz y modo ensayo ===== */
.sem-voz {
  display:inline-flex;
  align-items:center;
  gap:4px;
  margin-top:4px;
  width:max-content;
  max-width:100%;
  font-size:12px;
  font-weight:600;
  color:var(--ink);
  background:color-mix(in srgb,#0FA3B1 16%,transparent);
  border:1px solid color-mix(in srgb,#0FA3B1 45%,transparent);
  border-radius:999px;
  padding:2px 9px;
  line-height:1.4;
}
.sem-info{display:flex;flex-direction:column}
dialog.enx{position:fixed!important;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:var(--bg,#0d0f14);color:var(--ink)}
dialog.enx::backdrop{background:rgba(0,0,0,.6)}
.enx-in{display:flex;flex-direction:column;height:100%;max-width:980px;margin:0 auto}
.enx-h{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line)}
.enx-ht{flex:1;min-width:0;display:flex;flex-direction:column}
.enx-ib{border:1px solid var(--line);background:var(--surface);color:var(--ink);min-width:36px;height:36px;border-radius:10px;font-weight:800;cursor:pointer;display:inline-grid;place-items:center;padding:0 8px;font-family:inherit}
.enx-tools{display:flex;gap:6px}
.enx-dots{display:flex;gap:5px;flex-wrap:wrap;max-width:40%}
.enx-song{display:flex;align-items:center;gap:14px;padding:12px 16px}
.enx-song:empty{display:none}
.enx-cv{flex:0 0 auto;width:64px;height:64px;border-radius:12px;overflow:hidden;background:var(--surface-2);display:grid;place-items:center;color:var(--muted)}
.enx-si{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.enx-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.enx-lead{background:color-mix(in srgb,#F0B429 22%,transparent)!important}
.enx-voz{background:color-mix(in srgb,#0FA3B1 20%,transparent)!important;cursor:pointer;font-family:inherit;color:var(--ink)}
.enx-noau{opacity:.7}
.enx-ly{flex:1;overflow:auto;padding:8px 18px 24px;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}
.enx-ly .enx-lyt{font-size:calc(19px*var(--enxfs,1));line-height:1.6;white-space:pre-wrap;background:transparent;border:0;padding:0;margin:0;max-height:none;font-family:inherit;color:var(--ink)}
.enx-ly .lyrics-html.enx-lyt{white-space:normal}
.enx-noly,.enx-done{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;min-height:100%;color:var(--muted)}
.enx-done .hf-ring{transform:scale(1.6);margin:14px}
.enx-dact{display:flex;gap:10px;margin-top:6px}
.enx-f{border-top:1px solid var(--line);padding:10px 14px calc(12px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px;background:var(--surface)}
.enx-seek{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.enx-ctrl{display:flex;justify-content:center;align-items:center;gap:18px}
.enx-play{width:62px;height:62px;border-radius:50%;border:0;background:var(--accent);color:#fff;display:grid;place-items:center;cursor:pointer}
.enx-st{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;min-height:34px}
.enx-lbl{font-size:12.5px;color:var(--muted);margin-right:2px}
.enx-pend{border:1px dashed var(--line);background:transparent;color:var(--ink);border-radius:999px;padding:4px 10px;font-size:12.5px;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:4px}
.enx-pend:hover{border-color:var(--accent)}
.enx-ok{color:#22A35A;font-weight:800;display:inline-flex;align-items:center;gap:5px}
.enx-ready{min-width:160px;justify-content:center}
@media (max-width:640px) {
.enx-h{flex-wrap:wrap;padding:8px 10px}
.enx-dots{order:3;max-width:none;flex-basis:100%;justify-content:center}
.enx-cv{width:52px;height:52px}
.enx-ly{padding:6px 14px 18px}
.enx-ly .enx-lyt{font-size:calc(17px*var(--enxfs,1))}
}
.enx-rec{cursor:pointer;font-family:inherit;color:var(--ink);background:color-mix(in srgb,#E4572E 16%,transparent)!important}
.sem-step{position:relative}
.sem-step .sem-na{display:block;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;opacity:.8;margin-top:1px}
/* 7.125.1: Mi semana — las canciones que diriges resaltan (franja dorada, insignia en la portada y resumen arriba) */
.sem-song.lead{--ld:#f59e0b;border-color:color-mix(in srgb,var(--ld) 55%,var(--line));background:linear-gradient(90deg,color-mix(in srgb,var(--ld) 15%,var(--surface)),var(--surface) 65%);box-shadow:inset 4px 0 0 var(--ld)}
.sem-song.lead.ready{background:linear-gradient(90deg,color-mix(in srgb,var(--ld) 15%,var(--surface)),color-mix(in srgb,var(--green) 10%,var(--surface)) 65%)}
.sem-song.lead .rcover{position:relative;overflow:visible}
.sem-song.lead .rcover>img{border-radius:inherit}
.sem-leadb{position:absolute;right:-7px;bottom:-7px;width:22px;height:22px;border-radius:50%;background:var(--ld);color:#fff;display:grid;place-items:center;box-shadow:0 0 0 2px var(--surface)}
.sem-leadtag{display:inline-flex;align-items:center;gap:4px;max-width:100%;font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:color-mix(in srgb,var(--ld) 72%,var(--ink));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sem-leadsum{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0 10px;padding:8px 10px;border-radius:12px;background:color-mix(in srgb,#f59e0b 12%,var(--surface));border:1px solid color-mix(in srgb,#f59e0b 40%,var(--line));min-width:0}
.sem-leadsum-t{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:13px;color:color-mix(in srgb,#f59e0b 70%,var(--ink));margin-right:2px}
.sem-leadchip{border:1px solid color-mix(in srgb,#f59e0b 45%,var(--line));background:var(--surface);color:var(--ink);border-radius:999px;padding:3px 11px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sem-leadchip:hover{border-color:#f59e0b;background:color-mix(in srgb,#f59e0b 10%,var(--surface))}
.sem-song.flash{animation:semLeadFlash 1.7s ease-out}
@keyframes semLeadFlash{0%,55%{outline:3px solid #f59e0b;outline-offset:2px}100%{outline:3px solid transparent;outline-offset:2px}}

/* ===== Estilos: banda ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.ach-grid.small .ach{padding:6px 8px}
@keyframes fsshine{0%{background-position:120% 0}100%{background-position:-120% 0}}
.fs-kicker{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--gold)}
@media (max-width:700px) {
.fs-card{grid-template-columns:1fr}
.fs-photo{max-height:300px}
}
.bdy.today{border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 25%,transparent)}
dialog.bday-dlg{max-width:460px}
.fs-card.fs-v .fs-photo{min-height:0;max-height:none;aspect-ratio:4/5}
.fs-card.fs-v .fs-body{padding:14px 16px 16px}
.fs-card.fs-v .fs-msg{font-size:15.5px}
@keyframes bdwig{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
.bday-list{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.bdy{padding:8px 10px}
.bdy .bdy-t{flex:1;min-width:0}
.bdy.today{background:color-mix(in srgb,var(--gold) 14%,var(--surface))}
/* Banda: tarjetas horizontales compactas */
.bd-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:8px}
@media (max-width:640px) {
.bd-grid{grid-template-columns:1fr}
}
.bd-note{font-size:10.5px}
/* 7.14.2: estado de conexión en la tarjeta de Banda (en celular no hay cómo ver el tooltip del punto) */
.bd-pres{font-size:11px;font-weight:700;color:var(--muted);display:block;line-height:1.3}
/* 7.12.1: foto de la semana que no carga */
.fs-photo.noimg img{visibility:hidden}
.fs-photo.noimg::after{content:'La foto no está disponible';position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:13px;opacity:.75;text-align:center;padding:12px}
.bd-pchip{position:absolute;top:6px;left:6px;z-index:2;background:#F0B429;color:#111;font-size:10px;font-weight:800;border-radius:999px;padding:2px 8px;letter-spacing:.2px}
/* 7.56 · tarjeta de Banda estilo catálogo */
.bdc-dlg .mb{padding-top:0}
.bdc-grid{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);gap:20px;align-items:start}
.bdc-stage{position:relative;aspect-ratio:4/5;max-height:min(58vh,540px);border-radius:16px;overflow:hidden;background:#0a0c12;box-shadow:0 12px 34px rgba(0,0,0,.38)}
.bdc-stage.empty{aspect-ratio:16/10}
.bdc-shot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.045);transition:opacity .75s ease,transform 3.4s ease;cursor:zoom-in;user-select:none}
.bdc-grad{position:absolute;left:0;right:0;bottom:0;height:58%;background:linear-gradient(to top,rgba(5,7,12,.94),rgba(5,7,12,.5) 46%,transparent);pointer-events:none}
.bdc-id{position:absolute;left:14px;right:14px;bottom:14px;display:flex;gap:12px;align-items:flex-end;pointer-events:none}
.bdc-arw{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:0;background:rgba(0,0,0,.45);color:#fff;font-size:24px;line-height:1;cursor:pointer;opacity:0;transition:opacity .2s}
.bdc-stage:hover .bdc-arw{opacity:1}
@media (hover:none) {
.bdc-arw{opacity:.8}
}
.bdc-top{position:absolute;top:9px;right:10px}
.bdc-cnt{background:rgba(0,0,0,.5);color:#fff;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700}
.bdc-dots{position:absolute;top:14px;left:12px;right:74px;display:flex;gap:4px}
.bdc-none{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:8px;color:rgba(255,255,255,.78);font-size:13px}
.bdc-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:6px;max-height:186px;overflow:auto}
.bdc-th{padding:0;border:2px solid transparent;border-radius:9px;overflow:hidden;background:none;cursor:pointer;aspect-ratio:1;line-height:0}
@media (max-width:860px) {
.bdc-grid{grid-template-columns:1fr;gap:14px}
.bdc-stage{aspect-ratio:1;max-height:50vh}
.bdc-stats{grid-template-columns:repeat(2,1fr)}
}
.bdc-bn{height:74px!important}
/* ---- 7.75.5 · Foto de la semana y cumpleaños ---- */
.fs2{display:grid!important;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:16px;align-items:start;overflow:visible!important}
.fs2-pol{position:relative;background:#fff;padding:10px 10px 34px;border-radius:6px;box-shadow:0 18px 40px -16px rgba(0,0,0,.7);transform:rotate(-2.2deg);transition:transform .35s}
.fs2:hover .fs2-pol{transform:rotate(0) scale(1.01)}
.fs2-tape{position:absolute;top:-10px;left:50%;width:90px;height:22px;transform:translateX(-50%) rotate(3deg);background:color-mix(in srgb,#fde68a 80%,transparent);box-shadow:0 2px 4px rgba(0,0,0,.15);z-index:2}
.fs2-cap{position:absolute;left:0;right:0;bottom:8px;text-align:center;color:#333;font:600 14px/1 "Caveat","Segoe Print","Comic Sans MS",cursive}
.fs2 .fs-body{min-width:0}
.soc-qb {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 12px;
  border-radius:99px;
  border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));
  background:color-mix(in srgb,var(--accent) 10%,var(--surface));
  color:var(--ink);
  font:inherit;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
  text-decoration:none;
  transition:transform .12s,background .15s;
}
.soc-qb:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--accent) 22%,var(--surface))}
.soc-me{margin:8px 0;padding:8px 12px;border-radius:12px;background:color-mix(in srgb,#f59e0b 14%,transparent);font-size:13px;font-weight:700}
@media (max-width:700px) {
.fs2{grid-template-columns:1fr}
}
@keyframes bdHat{0%,100%{transform:rotate(-10deg)}50%{transform:rotate(10deg)}}
.fs2.fs-v .fs2-pol{max-width:280px;width:100%;margin:12px auto 4px}
.bd2-today .soc-qb{background:rgba(255,255,255,.75);border-color:transparent;color:#1f1300}
.bd2-today .soc-me{background:rgba(255,255,255,.6)}
.bd2-conf{position:absolute;inset:0;pointer-events:none}
@keyframes bdConf{from{transform:translateY(0) rotate(0)}to{transform:translateY(220px) rotate(540deg)}}
.bd2 .bdy-t{flex:1;min-width:0}
.bd2 .bdy-t em.soon{color:#f59e0b}
.bd2 .bdy.soon .bd2-date{background:color-mix(in srgb,#f59e0b 22%,transparent)}
.bd2 .bdy.soon .bd2-date small{color:#f59e0b}
.bd2 .bdy .ico-btn{flex:none}
/* 7.102 · Banda: solo la foto visible recibe el clic, y el visor nunca se sale de la pantalla */
.bdc-shot{pointer-events:none}
.bdc-shot.on{pointer-events:auto}
/* ===== Banda · tarjeta con portada: el banner arriba y la foto encimada ===== */
.bd-grid .bd-card.bd2,.bd-card.bd2{display:block;padding:0;text-align:left;overflow:hidden;border-radius:18px;background:var(--surface)}
.bd-pchip.inv{background:#b7a4f2;color:#1b1040}
/* ===== Banda · tarjeta abierta: portada grande (5:1, la medida del banner) con foto, nombre y banner ===== */
.bdc-hero{position:relative;margin:-16px -16px 16px;aspect-ratio:5/1;min-height:128px;border-radius:14px 14px 0 0;overflow:hidden;background-size:cover!important;background-position:center!important;color:#fff}
.bdc-hero.nobn{background:radial-gradient(120% 140% at 15% 0,color-mix(in srgb,var(--accent) 70%,#0b0d14),#0b0d14)}
.bdc-hshade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.62));pointer-events:none}
.bdc-hid{position:absolute;left:20px;right:20px;bottom:12px;display:flex;align-items:flex-end;gap:14px}
.bdc-hid .coll-av{flex:none}
.bdc-hid .bdc-idt{min-width:0;padding-bottom:6px;text-shadow:0 2px 6px rgba(0,0,0,.6)}
.bdc-hid .bdc-sub{display:block;font-size:12.5px;opacity:.9;margin-top:2px}
.bdc-bnname{position:absolute;bottom:14px;right:14px;z-index:2;display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;letter-spacing:.03em;padding:3px 10px;border-radius:999px;background:rgba(0,0,0,.4);backdrop-filter:blur(4px);color:#fff}
.bdc-stage.empty{display:grid;place-items:center;background:var(--surface-2)}
@media (max-width:640px) {
.bdc-hero{min-height:118px}
.bdc-hid{left:12px;right:12px;bottom:10px;gap:10px}
.bdc-hid .coll-av{transform:scale(.82);transform-origin:left bottom;margin-right:-14px}
}
.bdc-rbtn{position:absolute;right:12px;bottom:26px;z-index:4;width:40px;height:40px;border-radius:50%;border:0;background:rgba(0,0,0,.45);color:#fff;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(4px);transition:transform .15s}
.bdc-rbtn:hover{transform:scale(1.1);background:rgba(0,0,0,.6)}
.bdc-rbtn.pop{animation:rxPopB .5s ease}
@keyframes rxPopB{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}
.fre{display:inline-flex;align-items:center;gap:0;padding:3px 9px 3px 4px;border-radius:999px;background:rgba(10,12,20,.55);color:#fff;font-size:12.5px;backdrop-filter:blur(4px);position:relative}
.fre-i{display:inline-block;margin-right:-5px;border-radius:50%;box-shadow:0 0 0 2px rgba(10,12,20,.55);line-height:0}
.fre-i:last-of-type{margin-right:4px}
.fre-me{width:6px;height:6px;border-radius:50%;background:#7dd3fc;margin-left:5px}
.fre.big .rx-art{width:24px;height:24px}

/* ===== Estilos: chat ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.chat-side{border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:auto;padding:6px}
.chat-title{font-size:10px;color:var(--gold);font-weight:800;text-transform:uppercase}
.chat-m:hover .chat-del{opacity:.7}
.chat-t{word-break:break-word;white-space:pre-wrap}
.ucard{text-align:center}
@media (max-width:800px) {
.chat-side{max-height:180px}
.chat-main{height:60vh}
}
.cp-share{position:absolute;bottom:56px;left:8px;right:8px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:8px;z-index:6;max-height:62%;overflow:auto}
.cp-share .chat-sh{padding:2px 4px 6px}
.cp-share .chat-sh .ico-btn{margin-right:4px}
.cp-share-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px}
.cp-pend{display:flex;gap:8px;align-items:center;padding:6px 10px;border-top:1px solid var(--line);background:var(--surface-2);font-size:12px}
.cp-pend .lk-t{flex:1;min-width:0}
.chat-link .lk-t{min-width:0;flex:1}
.chat-link:hover{border-color:var(--accent)}
.emo-tabs::-webkit-scrollbar{display:none}
.emo-body{max-height:min(46vh,300px);overflow:auto}
.chat-m.stk .chat-meta{padding:0 6px}
.stk-add{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;font-weight:800;cursor:pointer;display:none;line-height:22px;padding:0}
.emoBeat{animation:emoBeat 1.3s ease-in-out infinite}
.emoFlick{animation:emoFlick .7s ease-in-out infinite alternate}
.emoClap{animation:emoClap .5s ease-in-out infinite}
.emoParty{animation:emoWig .8s ease-in-out infinite}
.emoShake{animation:emoShake .9s ease-in-out infinite}
.emoRock{animation:emoRock 1s ease-in-out infinite}
.emoSpin{animation:emoSpin 2.5s linear infinite}
@keyframes emoPop{0%{transform:scale(.3)}100%{transform:scale(1)}}
@keyframes emoWig{0%,100%{transform:rotate(0)}25%{transform:rotate(-14deg)}75%{transform:rotate(14deg)}}
@keyframes emoBeat{0%,100%{transform:scale(1)}30%{transform:scale(1.25)}60%{transform:scale(1.05)}}
@keyframes emoFlick{0%{transform:scale(1) rotate(-3deg)}100%{transform:scale(1.15) rotate(3deg)}}
@keyframes emoClap{0%,100%{transform:scale(1)}50%{transform:scale(.85)}}
@keyframes emoShake{0%,100%{transform:translateX(0) rotate(0)}20%{transform:translateX(-4px) rotate(-6deg)}40%{transform:translateX(4px) rotate(6deg)}60%{transform:translateX(-3px) rotate(-4deg)}80%{transform:translateX(3px) rotate(4deg)}}
@keyframes emoRock{0%,100%{transform:rotate(-10deg)}50%{transform:rotate(10deg) translateY(-3px)}}
@keyframes emoSpin{to{transform:rotate(360deg)}}
@keyframes buzzMsg{0%,100%{transform:translate(0)}20%{transform:translate(-4px,2px)}40%{transform:translate(4px,-2px)}60%{transform:translate(-3px,-2px)}80%{transform:translate(3px,2px)}}
/* 7.8: chat con fondo (diseños de la cinta) y ajustes */
.chat-msgs.bgart{background-size:cover;background-position:center}
.chat-msgs.bgart .chat-m.me .chat-b{background:color-mix(in srgb,var(--accent) 24%,var(--surface))}
.call-v{position:relative;background:#000;aspect-ratio:4/3}
#call-local{position:absolute;right:10px;bottom:10px;width:28%;height:auto;aspect-ratio:3/4;border-radius:10px;border:2px solid rgba(255,255,255,.5);object-fit:cover}
.call-av{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(135deg,#1B2A4A,#0E1424)}
.call-b{display:flex;gap:8px;justify-content:center;padding:10px}
.call-b .btn.off{opacity:.5;text-decoration:line-through}
@media (max-width:640px) {
.call-win{left:8px;right:8px;bottom:8px;width:auto}
}
.vol-row{display:flex;gap:10px;align-items:center}
.cw-h{display:flex;gap:8px;align-items:center;padding:6px 8px;border-bottom:1px solid var(--line);background:var(--surface-2)}
#cw-bubbles{position:fixed;right:16px;bottom:16px;z-index:395;display:flex;flex-direction:column-reverse;gap:10px;align-items:center}
.cbub{position:relative;width:52px;height:52px;border-radius:50%;cursor:pointer;box-shadow:0 8px 24px -8px rgba(0,0,0,.5);background:var(--surface)}
.cbub-x{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--surface);color:var(--muted);border:1px solid var(--line);font-size:14px;line-height:17px;text-align:center;display:none;cursor:pointer;font-weight:700;z-index:4;padding:0}
.cbub-x:hover{color:var(--danger)}
.chat-st{font-size:10.5px;color:var(--muted);font-style:italic}
.chat-st.fail{color:var(--danger);cursor:pointer;font-style:normal;font-weight:700}
.chat-m.pending{opacity:.7}
@media (max-width:640px) {
#cw-bubbles{right:8px;bottom:calc(140px + env(safe-area-inset-bottom))}
.cbub-pv{display:none!important}
}
@keyframes ringFlash{0%{background:#D64545}100%{background:#1E9E52}}
@media (max-width:640px) {
.call-ring{padding:10px 10px calc(10px + env(safe-area-inset-top))}
}
.chat-in.ro{justify-content:center;color:var(--muted);font-size:12px;padding:10px}
.vrec{position:absolute;inset:0;display:flex;gap:10px;align-items:center;padding:8px 12px;background:var(--surface);z-index:7}
.vrec .dot{width:12px;height:12px;border-radius:50%;background:var(--danger);animation:vblink 1s ease-in-out infinite}
@keyframes vblink{50%{opacity:.25}}
/* 7.23: pestañas del chat, tarjeta elegida en el buscador de reemplazo */
.chat-tabs{display:flex;gap:4px;padding:6px 8px 2px}
.att-dl:hover{opacity:1;background:var(--surface-2)}
.chat-att.img:hover .att-dl{opacity:1}
.chat-att.doc .i.dl{opacity:.7;flex:none}
.att-over{outline:2px dashed var(--accent);outline-offset:-6px}
.att-full{display:flex;align-items:center;justify-content:center}
.re-chip{display:inline-flex;align-items:center;gap:3px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:1px 7px;font-size:12px;line-height:18px;cursor:pointer;color:inherit}
.re-chip.mine{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--surface))}
.chat-m:hover .chat-rb{opacity:.7}
.re-pop{position:fixed;z-index:2147483000;display:flex;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px 6px;box-shadow:0 10px 30px -10px rgba(0,0,0,.55)}
.chat-in .btn.primary.as-mic:active{background:var(--danger);color:#fff;border-color:transparent;transform:scale(1.06)}
.vhint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--surface);z-index:7;font-size:13px;color:var(--muted);pointer-events:none}
.chat-sh .sp{flex:1}
.chat-sh .fold-btn[aria-expanded="true"]{transform:rotate(90deg)}
.gc-h{display:flex;align-items:center;gap:8px;padding:10px 14px;background:rgba(255,255,255,.06)}
.gcall-win.min .gc-grid{grid-template-columns:1fr 1fr;padding:4px;gap:4px}
.gc-tile{position:relative;background:#141a30;border-radius:12px;overflow:hidden;min-height:0;display:grid;place-items:center}
.gc-av{display:grid;place-items:center}
.gc-b{display:flex;gap:10px;justify-content:center;padding:10px;background:rgba(255,255,255,.06)}
@media (max-width:640px) {
.gcall-win{inset:0;border-radius:0}
}
/* 7.24 · lista de "Mensaje directo": filas limpias, sin cajas grises (claro y oscuro) */
.dm-list{gap:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:4px;max-height:58vh}
.dm-list button+button{box-shadow:inset 0 1px 0 color-mix(in srgb,var(--line) 70%,transparent)}
.dm-list button:hover+button{box-shadow:none}
.dm-list .coll-av{background:var(--surface-2)}
#cp-tabs{padding:6px 8px 4px}
#dm-q{border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);padding:9px 12px}
#dm-q:focus{outline:none;border-color:var(--accent)}
/* 7.44: barra de escritura del chat estilo WhatsApp Web — iconos y cuadro de texto en una sola píldora */
.chat-in{gap:8px;align-items:flex-end}
.chat-in .chat-bar textarea::placeholder{color:var(--muted)}
.chat-in .chat-bar .ico-btn .ico{width:21px;height:21px}
/* enviar / micrófono: mismo redondo dentro de la barra, cambia de color al pasar el puntero */
.chat-in .chat-bar>.btn.primary{flex:none;width:38px;height:38px;min-width:0;padding:0;margin:0 0 1px;border-radius:50%;display:grid;place-items:center}
.chat-in .chat-bar>.btn.primary .ico{width:20px;height:20px}
.chat-in .chat-bar>.btn.primary.as-mic{background:transparent;color:var(--muted);border:0;box-shadow:none}
.chat-in .chat-bar>.btn.primary.as-mic:hover{background:var(--accent);color:var(--accent-ink,#fff)}
.chat-in .chat-bar>.btn.primary.as-mic:active{background:var(--danger);color:#fff;border-color:transparent;transform:scale(1.06)}
@media (max-width:640px) {
.chat-in{gap:6px;padding:6px 8px}
.chat-in .chat-bar>.ico-btn,.chat-in .chat-bar .chat-plusw>.ico-btn{width:33px;height:33px}
.chat-in .chat-bar .ico-btn .ico{width:19px;height:19px}
.chat-in .chat-bar>.btn.primary{width:35px;height:35px}
}
.cd-prev{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:8px 10px;background:var(--surface-2);font-size:13px;max-height:80px;overflow:hidden}
/* 7.46: responder mensajes */
.chat-repbar{padding:6px 10px 0}
.chat-repbar .crb .t{flex:1;min-width:0}
.chat-m{transition:transform .18s ease}
.chat-m.swiping .chat-b{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 45%,transparent)}
.chat-m.flash .chat-b{animation:chatFlash 1.3s ease}
@keyframes chatFlash{0%,100%{box-shadow:none}30%{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 60%,transparent)}}
.chat-m.swiping .chat-swi{opacity:1}
/* 7.60 · cinta de videollamada grupal (misma pinta que la de las llamadas) */
#gc-ring{left:0;right:0;top:0;transform:none;width:auto;max-width:none;border-radius:0;border:0;padding:10px 14px;color:#fff;background:linear-gradient(90deg,#3D82D0,#7C6CF6);animation:gcFlash 1.4s ease-in-out infinite alternate;box-shadow:0 10px 30px rgba(0,0,0,.45);z-index:430}
@keyframes gcFlash{from{filter:saturate(1)}to{filter:saturate(1.7) brightness(1.12)}}
#gc-ring b,#gc-ring small{color:#fff}
#gc-ring small{opacity:.85}
#gc-ring .call-ring-av{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.18);flex:none}
#gc-ring .call-ring-av .ico{width:24px;height:24px}
#gc-ring .btn{border:0}
#gc-ring .cr-no{background:rgba(255,255,255,.2);color:#fff}
#gc-ring .cr-si{background:#fff;color:#1b3a6b;font-weight:800}
@media (max-width:640px) {
#gc-ring small{display:none}
#gc-ring .btn{padding:8px 10px}
}
@keyframes cubIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.cub-it{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:none;background:var(--surface);border-radius:10px;padding:6px 8px;cursor:pointer;color:var(--ink);transition:background .15s,transform .15s}
.cub-it:hover{background:color-mix(in srgb,var(--accent) 14%,var(--surface));transform:translateX(2px)}
.chat-side .cub-h{flex-wrap:wrap;row-gap:2px}
.cw-h{gap:4px;padding:6px 6px}
.cw-h .avw{flex:none;margin-left:2px}
#chat-head:has([data-call])>.avw,#chat-head:has([data-call])>.avatar,#chat-head:has([data-call])>div:first-of-type b,
.cp-h:has([data-call])>.avw,.cp-h:has([data-call])>.avatar,.cp-h:has([data-call]) .t b,
.cw-h:has([data-call]) .avw,.cw-h:has([data-call]) .t b{cursor:pointer}
#chat-head:has([data-call])>.avw:hover,.cp-h:has([data-call])>.avw:hover,.cw-h:has([data-call]) .avw:hover{filter:brightness(1.12)}
#chat-head:has([data-call])>div:first-of-type b:hover,.cp-h:has([data-call]) .t b:hover,.cw-h:has([data-call]) .t b:hover,.chat-meta b[data-ucard]:hover{text-decoration:underline}
.chu-hd{display:flex;gap:10px;align-items:center;padding:6px 8px 10px;margin-bottom:4px;border-bottom:1px solid var(--line)}
.emo-load{align-self:center;font-size:11px;color:var(--muted);padding:0 8px;white-space:nowrap}
/* botones al pie de la columna de burbujas: Nuevo mensaje y ··· */
.cw-tool{position:relative;width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 24px -8px rgba(0,0,0,.5);padding:0;font:inherit}
.cw-tool:hover{background:var(--surface-2)}
.cw-more{width:40px;height:40px;font-size:18px;font-weight:900;letter-spacing:1px;line-height:1}
.cw-tip{display:none;position:absolute;right:58px;top:50%;transform:translateY(-50%);white-space:nowrap;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:6px 10px;font-size:12.5px;font-weight:600;box-shadow:var(--shadow)}
.cw-newmsg:hover .cw-tip{display:block}
.cw-toolw{position:relative;display:flex;justify-content:center}
.cw-menu{position:absolute;right:52px;bottom:0;min-width:220px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column;z-index:6}
.cw-menu[hidden]{display:none}
/* ventana "Nuevo mensaje" */
.cw-compose .cw-h .t b{font-size:14px}
.cwn-to{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line)}
.cwn-list{flex:1;overflow:auto;padding:4px 6px 8px}
.cwn-sec{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:8px 6px 4px}
.cwn-it{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;color:inherit;font:inherit;padding:6px;border-radius:10px;cursor:pointer;text-align:left}
.cwn-it:hover{background:var(--surface-2)}
.cwn-it[hidden],.cwn-sec[hidden]{display:none}
.cwn-it .t{flex:1;min-width:0}
@media (max-width:640px) {
/* en pantallas táctiles el botón de reaccionar se ve un poco (no hay "pasar el mouse") */
.cw-tool{width:44px;height:44px}
.cw-more{width:38px;height:38px}
.cw-tip{display:none!important}
}
/* 7.103 · acciones de cada mensaje como en Messenger: 😊 reaccionar · ↩ responder · ⋮ más opciones */
.chat-msgs{overflow-x:hidden}
.chat-m{position:relative}
.chat-acts{position:absolute;top:50%;left:100%;transform:translateY(-50%);display:flex;align-items:center;gap:0;padding:0 4px;opacity:0;pointer-events:none;transition:opacity .12s ease;z-index:2}
.chat-m.me .chat-acts{left:auto;right:100%;flex-direction:row-reverse}
.chat-m:hover .chat-acts,.chat-m.acts-on .chat-acts{opacity:1;pointer-events:auto}
@media (hover:none) {
.chat-m:hover .chat-acts{opacity:0;pointer-events:none}
.chat-m.acts-on .chat-acts{opacity:1;pointer-events:auto}
}
.ca-b{width:28px;height:28px;border-radius:50%;border:0;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;padding:0}
.ca-b:hover,.ca-b:focus-visible{background:color-mix(in srgb,var(--ink) 10%,transparent);color:var(--ink)}
/* la barra de reacciones */
.re-pop{padding:6px 8px;gap:4px;border-radius:999px;align-items:center}
.re-pop .re-more{width:36px;height:36px;display:grid;place-items:center;background:var(--surface-2);color:var(--ink);font-size:0;margin-left:2px}
.re-pop .re-more:hover{transform:none;background:color-mix(in srgb,var(--ink) 14%,var(--surface-2))}
.re-grid{display:grid;grid-template-columns:repeat(8,1fr);max-height:260px;overflow:auto;width:100%}
.re-cat{grid-column:1/-1;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:6px 4px 2px}
/* menú ⋮ */
.cm-menu{position:fixed;z-index:2147483000;min-width:190px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 34px -10px rgba(0,0,0,.55);padding:6px;display:flex;flex-direction:column}
/* reenviado y fijados */
.chat-fwd{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--muted);font-style:italic;margin:1px 0 2px}
.chat-pins{position:sticky;top:-12px;z-index:8;display:flex;align-items:center;gap:8px;margin:-12px -14px 8px;padding:8px 12px;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 6px 14px -12px rgba(0,0,0,.6)}
.chat-pins .cp-go{flex:1;min-width:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:0}
/* reenviar */
.fw-prev{padding:8px 10px;border-radius:10px;background:var(--surface-2);font-size:13px;white-space:pre-line;max-height:80px;overflow:hidden}
.fw-list{max-height:min(52vh,420px);overflow:auto}
.fw-it{display:flex;align-items:center;gap:10px;padding:6px;border-radius:10px;cursor:pointer}
.fw-it:hover{background:var(--surface-2)}
.fw-it[hidden]{display:none}
.fw-it .t{flex:1;min-width:0}
@media (hover:none),(max-width:640px) {
/* en celular (sin mouse) los botones salen como pastilla arriba de la burbuja para no salirse de la pantalla */
.chat-acts{top:auto;bottom:calc(100% - 4px);transform:none;left:auto;right:4px;padding:2px 4px;background:var(--surface);border:1px solid var(--line);border-radius:999px;box-shadow:0 6px 18px -8px rgba(0,0,0,.5)}
.chat-m.me .chat-acts{right:auto;left:4px;flex-direction:row}
.ca-b{width:34px;height:34px}
}
@media (max-width:640px) {
body.cw-winopen #cw-bubbles .cw-newmsg,body.cw-winopen #cw-bubbles .cw-toolw{display:none}
}
/* 7.104 · los botones 😊 ↩ ⋮ van pegados a la burbuja también en los mensajes recibidos */
.chat-m:not(.me){align-self:flex-start}
/* reacciones con arte propio */
.rx-art{display:block;overflow:visible;flex:none}
.rx-beat,.rx-bob,.rx-laugh,.rx-brows,.rx-oh,.rx-tear,.rx-shake,.rx-thumb{transform-box:fill-box;transform-origin:center}
.re-chip .rx-art{width:18px;height:18px}
.re-chip{padding:1px 7px 1px 3px;gap:3px}
.rx-pop{padding:6px 10px;gap:6px}
@keyframes rxIn{from{opacity:0;transform:translateY(10px) scale(.4)}to{opacity:1;transform:none}}
.rx-live .rx-beat{animation:rxBeat 1.1s ease-in-out infinite}
.rx-live .rx-bob{animation:rxBob .9s ease-in-out infinite}
.rx-live .rx-laugh{animation:rxLaugh .45s ease-in-out infinite alternate}
.rx-live .rx-brows{animation:rxBrows 1.4s ease-in-out infinite}
.rx-live .rx-oh{animation:rxOh 1.4s ease-in-out infinite}
.rx-live .rx-tear{animation:rxTear 1.8s ease-in infinite}
.rx-live .rx-shake{animation:rxShake .5s ease-in-out infinite}
.rx-heat{opacity:0}
.rx-live .rx-heat{animation:rxHeat 1.5s ease-in-out infinite}
.rx-live .rx-thumb{transform-origin:30% 90%;animation:rxThumb 1.2s ease-in-out infinite}
@keyframes rxBeat{0%,100%{transform:scale(1)}15%{transform:scale(1.14)}30%{transform:scale(.97)}45%{transform:scale(1.08)}}
@keyframes rxBob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(-4deg)}}
@keyframes rxLaugh{from{transform:scaleY(1)}to{transform:scaleY(.82)}}
@keyframes rxBrows{0%,60%,100%{transform:translateY(0)}20%,40%{transform:translateY(-2.5px)}}
@keyframes rxOh{0%,60%,100%{transform:scale(1)}20%,40%{transform:scale(1.12,1.2)}}
@keyframes rxTear{0%{transform:translateY(-2px);opacity:0}15%{opacity:1}80%{transform:translateY(9px);opacity:1}100%{transform:translateY(11px);opacity:0}}
@keyframes rxShake{0%,100%{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}
@keyframes rxHeat{0%,100%{opacity:0}50%{opacity:.35}}
@keyframes rxThumb{0%,100%{transform:rotate(0)}30%{transform:rotate(-14deg)}55%{transform:rotate(4deg)}}
.cp-tabs,.cp-stabs,.cp-mtabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.cp-tabs::-webkit-scrollbar,.cp-stabs::-webkit-scrollbar,.cp-mtabs::-webkit-scrollbar{display:none}

/* ===== Estilos: rol ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
@media (max-width:960px) {
.rol-layout{grid-template-columns:1fr}
}
@media (max-width:640px) {
.week-head{padding:10px 12px;gap:8px}
}
/* 7.15: recuperar desde respaldos del NAS */
.bk-lay{display:grid;grid-template-columns:260px 1fr;gap:12px}
.bk-it{text-align:left;border:1px solid var(--line);background:var(--surface);color:inherit;font:inherit;border-radius:10px;padding:8px 10px;cursor:pointer}
.bk-it[aria-selected="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface))}
.bk-m{display:flex;gap:10px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.bk-m.hl{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
@media (max-width:640px) {
.bk-lay{grid-template-columns:1fr}
.bk-list{max-height:32vh}
}
.rb-ring::before{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--surface)}
.rb-big{font:800 26px/1 var(--display);font-variant-numeric:tabular-nums;color:var(--ink)}
.rb-sugc{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:99px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.rb-sugc:hover{border-color:var(--accent)}
.rb-week{border-left:4px solid var(--wc)!important;position:relative;transition:box-shadow .2s}
.rb-wprog{display:inline-flex;align-items:center;gap:8px}
.rb-wprog .rb-ring{width:38px;height:38px}
.rb-bad{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:99px;background:color-mix(in srgb,#ef4444 18%,transparent);color:#ef4444;font-size:12px;font-weight:800}
.rb-wbar{position:absolute;left:0;right:0;bottom:-1px;height:3px;background:transparent;border-radius:0 0 4px 4px;overflow:hidden}
.rb-type.jov{background:color-mix(in srgb,#0ea5e9 20%,transparent);color:#0ea5e9}
.rb-week.published .pubbox .chip.pubd .ico{width:12px;height:12px}
.rb-week.rb-hl.folded{box-shadow:0 0 0 2px var(--accent)}
.rb-part .bar{cursor:default;border-radius:6px;transition:background .15s}
.rb-part .bar i s{position:absolute;top:-2px;bottom:-2px;width:2px;background:color-mix(in srgb,var(--ink) 45%,transparent);text-decoration:none}
.rb-part .bar.z>span:first-child{color:var(--muted)}
.rb-rg{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);cursor:pointer}
.rb-rg.lock{opacity:.6;cursor:default}
.rbn-type{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rbn-cols input{display:none}
@media (max-width:640px) {
.rb-hero{padding:12px}
.rbn-type{grid-template-columns:1fr}
}
.ens-strip{display:flex;flex-wrap:wrap;gap:6px;flex-basis:100%;padding:2px 0 0}
/* 7.85 · aviso de servicios del mismo día */
.slot-hint{margin:8px 0 0;padding:8px 10px;border-radius:9px;background:rgba(245,179,1,.14);color:var(--text);line-height:1.35}
.rol-mk{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:6px;font-size:12px;font-weight:800;line-height:1;flex:0 0 auto;cursor:help;border:1px solid transparent}
.rol-avisos{border-left:4px solid #E4262C}
.rol-avisos .ra-d{font-size:12px;font-weight:700;color:var(--muted)}
.rol-avisos .ra-w{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
@media (max-width:700px) {
.rol-avisos .ra-b{justify-content:flex-start}
}
/* 7.94.1 · Rol del mes: casilla con foto y selector con buscador; panel de emojis cargando */
.rp-btn{flex:1;min-width:0;display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:3px 8px 3px 3px;font:inherit;font-size:13px;text-align:left;cursor:pointer;min-height:32px}
.rp-btn:hover:not(:disabled){border-color:var(--accent)}
.rp-btn:disabled{cursor:default;opacity:.85}
.rp-btn.bad{border-color:var(--danger)}
.rp-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.rp-av{flex:0 0 26px;width:26px;height:26px;border-radius:50%;object-fit:cover;background:var(--surface-2)}
.rp-ini{display:grid;place-items:center;font-weight:800;font-size:12px;color:var(--muted)}
dialog.rp-dlg{width:min(420px,calc(100vw - 24px));max-height:min(640px,calc(100dvh - 40px));padding:0;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);display:none;flex-direction:column;overflow:hidden}
dialog.rp-dlg[open]{display:flex;position:fixed;inset:0;margin:auto;height:fit-content}
dialog.rp-dlg::backdrop{background:rgba(0,0,0,.45)}
.rp-h{display:flex;align-items:center;gap:8px;padding:12px 14px 6px}
.rp-q{margin:4px 12px 8px;padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-size:16px}
.rp-l{overflow:auto;padding:0 8px 8px;flex:1}
.rp-it{display:flex;align-items:center;gap:10px;width:100%;padding:7px 8px;border:0;border-radius:10px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.rp-it:hover:not(:disabled){background:var(--surface-2)}
.rp-it .rp-av{flex-basis:34px;width:34px;height:34px}
.rp-t{flex:1;min-width:0;display:flex;flex-direction:column}
.rp-it.no .rp-av{outline:2px solid var(--danger)}
.rp-it.tk{opacity:.45;cursor:not-allowed}
.rp-ck{color:var(--accent);display:grid}
.rp-foot{margin:0;padding:8px 14px 12px;border-top:1px solid var(--line);font-size:12px}
/* 7.99: músicos invitados */
.inv-list{display:flex;flex-direction:column;gap:6px}
.inv-it{display:flex;align-items:center;gap:10px;text-align:left;padding:8px 10px;border-radius:10px;background:var(--surface-2);border:1px solid transparent;color:inherit;font:inherit;cursor:pointer;width:100%}
.inv-it:hover:not([disabled]){border-color:var(--accent)}
.inv-t{display:flex;flex-direction:column;min-width:0}
dialog.inv-dlg{max-width:460px;width:calc(100vw - 24px)}
.inv-int{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 10px}
/* Mis fechas (Rol del mes / Roles de eventos, vista del integrante) */
.mf-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:10px 0 14px;display:flex;flex-direction:column;gap:8px}
.mf-h{font-weight:800;display:flex;align-items:center;gap:8px}
.mf-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:8px 12px;cursor:pointer;color:var(--ink);font:inherit}
.mf-d{font-weight:800;font-size:13px;padding:6px 10px;border-radius:10px;white-space:nowrap}
.mf-q{flex:1;min-width:0;display:flex;flex-direction:column}
.mf-go{font-size:12px;color:var(--muted);white-space:nowrap}
@media (max-width:640px) {
.mf-go{display:none}
}
.rol-mk.ok[data-rolunkeep]{cursor:pointer}
/* 7.136 · foto de referencia de la vestimenta por semana */
.dress-ph{display:inline-flex;align-items:center;gap:2px;vertical-align:middle;margin-left:4px}
.dress-ph-img{padding:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;cursor:pointer;background:var(--surface);line-height:0;width:34px;height:34px}
.dress-ph-img img{width:34px;height:34px;object-fit:cover;display:block}
.dress-ph-x{border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:13px;line-height:1;padding:2px}
.dress-ph-x:hover{color:var(--danger,#e4262c)}

/* ===== Estilos: disponibilidad ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
@media (max-width:1000px) {
.avail-layout{grid-template-columns:1fr}
}
.grid-wrap{overflow:auto;max-height:calc(100vh - 150px);background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.cover-row:first-of-type{border-top:0}
@media (max-width:640px) {
.avail-layout,.lst-layout,.rol-layout{grid-template-columns:1fr}
}
.cover-ask{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}
/* 7.47 · Mi Disponibilidad: un motivo por cada dia marcado */
.md-why{border:1px solid var(--line,rgba(127,127,127,.25))}
@keyframes mdWhyFlash{0%,100%{box-shadow:none}50%{box-shadow:0 0 0 3px var(--danger,#ef4444)}}
.md-why-tag{white-space:nowrap}
@media (max-width:1000px) {
/* ---- 7.75.4 · Disponibilidad y otras vistas con tabla ancha: que no ensanchen la página en el celular (la barra inferior se iba hasta abajo) ---- */
.avail-layout,.lst-layout,.rol-layout{grid-template-columns:minmax(0,1fr)!important}
}
/* 7.80 · días sin ensayo + reemplazos en espera */
.ens-banner{display:flex;gap:12px;align-items:flex-start;margin:0 0 12px;border-color:var(--danger,#dc2626);background:var(--danger-bg,#fdecec)}
.ens-bl{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ens-off-chip{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:12.5px;padding:2px 9px;border-radius:999px;background:var(--danger,#dc2626);color:#fff}
.ens-chip{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12.5px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);cursor:default}
.ens-why{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}
.ens-opt{position:relative;display:block;cursor:pointer}
.ens-opt input:checked+span{border-color:var(--accent,#E4262C);background:var(--surface-2)}
.ens-opt input:focus-visible+span{outline:2px solid var(--accent,#E4262C);outline-offset:2px}
.ens-notify{display:flex;gap:8px;align-items:center;margin-top:10px;font-size:13.5px}
.ens-thb{font:inherit;font-size:inherit;font-weight:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline dotted;line-height:inherit}
.ens-modo{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.ens-mov{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px;padding:10px;border:1px dashed var(--line);border-radius:10px}
.ens-mov[hidden]{display:none}
.ens-whyh{margin:4px 0 6px;font-size:13px}
.ens-ley{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);font-size:13px;line-height:1.35}
.ens-ley-nv{margin-top:4px}
.ensev-row{display:grid;grid-template-columns:150px 120px 1fr auto;gap:6px;align-items:center;margin-bottom:6px}
.ensev-row .ensev-n{grid-column:1/4}
.ensev-row .ensev-x{grid-row:1;grid-column:4}
.ensev-row+.ensev-row{padding-top:6px;border-top:1px dashed var(--line)}
@media (max-width:640px) {
.ens-modo{grid-template-columns:1fr}
.ensev-row{grid-template-columns:1fr 1fr auto}
.ensev-row .ensev-x{grid-column:3}
.ensev-row .ensev-l,.ensev-row .ensev-n{grid-column:1/4}
.ens-ley{flex-wrap:wrap}
}
.ens-card .ens-row.mov i,.ens-card .ens-row.evt i{grid-column:1/-1;white-space:normal}
.ens-card .ens-row.evt b{white-space:normal}
.ens-card .ens-row.evt.off i{color:var(--danger,#dc2626)}
/* Día sin ensayo compacto (Rol y Mi disponibilidad) */
.ens-banner.mini{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px}

/* ===== Estilos: listas ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
@media (max-width:1400px) {
.sl-body{grid-template-columns:1fr}
}
.sl-sec{padding:10px 16px}
.song-row select.lead3.off{opacity:.45}
.song-row select.lead3.off:focus,.song-row select.lead3.off:hover{opacity:1}
.kudos-hint{font-size:11px;color:var(--green-ink);background:var(--accent-soft);border-radius:999px;padding:1px 8px;white-space:nowrap}
.sl-prev{padding:12px 16px;border-left:1px solid var(--line)}
.rep-list{max-height:520px;overflow:auto;border:1px solid var(--line);border-radius:8px}
.rep-item:hover{background:var(--surface-2)}
@media (max-width:640px) {
.song-row{grid-template-columns:26px 1fr 24px 24px}
.sl-prev{border-left:0;border-top:1px solid var(--line)}
.bgv-bar{position:static}
}
.bgv-h{font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);display:inline-flex;align-items:center;gap:4px}
.bgv-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 4px;border-radius:999px;background:var(--accent-soft);color:var(--green-ink);font-weight:700;font-size:12.5px}
.sug-list{max-height:62vh;overflow:auto}
.sug-row{display:flex;gap:10px;align-items:center;padding:8px 2px;border-top:1px solid var(--line)}
.sug-row:first-child{border-top:0}
.sug-lead{color:var(--green-ink)!important;font-weight:600}
.sl-pastbox{margin-top:14px}
/* Listas: filas legibles bajo la imagen */
.lst-rows{display:flex;flex-direction:column;gap:6px;padding:10px 12px 12px;border-top:1px solid var(--line)}
.lst-sec{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.lst-row{display:flex;align-items:center;gap:10px}
.lst-row .lst-info{flex:1;min-width:0;display:flex;flex-direction:column}
.lst-row .lst-btns{display:flex;gap:2px;align-items:center;flex-shrink:0}
/* 7.132.2 · Generar lista */
.gen-top{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-start;justify-content:space-between;margin-bottom:10px}
.gen-top>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 260px}
.gen-opts{display:flex;flex-wrap:wrap;gap:10px}
.gen-opts label{display:flex;align-items:center;gap:6px;font-size:13px}
.gen-seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.gen-seg button.on{background:var(--accent);color:#fff}
.gen-sec{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:8px 0;background:var(--surface)}
.gen-sec.ador{border-color:color-mix(in srgb,#8b5cf6 40%,var(--line))}
.gen-sec h4{margin:0 0 6px;font-size:15px;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.gen-curve{width:100%;max-width:560px;height:auto;display:block;margin:0 0 6px;color:var(--muted,#888)}
.gen-row{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.gen-row:first-of-type{border-top:0}
.gen-n{width:24px;height:24px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;font-size:12px;font-weight:700}
.gen-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.gen-t small.gen-lead{color:var(--ink);font-weight:600}
.gen-t small.gen-lead i{font-weight:400;color:var(--muted,#888)}
.gen-why{font-size:11.5px!important}
@media (max-width:640px) {
.gen-row{grid-template-columns:24px minmax(0,1fr)}
.gen-row>button{grid-column:2;justify-self:start}
}

/* ===== Estilos: reputacion ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.rep-cell{white-space:nowrap}
@media (max-width:800px) {
.ev-layout{grid-template-columns:1fr}
}
.ev-list.past .ev-it{opacity:.6}
.ev-list.past .ev-it:hover{opacity:1}
.ev-mine-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.ev-mine-card:hover{border-color:var(--accent)}
.ev-mine-sc{display:flex;gap:8px;align-items:center}
.ev-tr{font-size:11px;font-weight:800}
.ev-tr.up{color:#0B6E3F}
.ev-tr.down{color:#A01230}
.ev-tr.flat{color:var(--faint)}
/* ===== 7.110 · Autoevaluación del lunes y evaluación rápida ===== */
.ae-card{margin:4px 0 18px;border-radius:16px;padding:14px 16px;background:var(--surface);border:1px solid color-mix(in srgb,#0FA3B1 45%,var(--line));transition:opacity .2s,transform .2s}
.ae-card.bye{opacity:0;transform:translateY(-6px)}
.ae-card header{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.ae-card header>div{flex:1;min-width:0;display:flex;flex-direction:column}
.ae-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:color-mix(in srgb,#0FA3B1 18%,transparent);color:#0FA3B1;flex:0 0 auto}
.ae-xp{font-size:12px;font-weight:800;color:#0FA3B1;background:color-mix(in srgb,#0FA3B1 14%,transparent);border-radius:999px;padding:3px 9px;white-space:nowrap}
.ae-crit{display:flex;flex-wrap:wrap;gap:7px}
.ae-c{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:999px;padding:7px 12px;font-size:13px;cursor:pointer;font-family:inherit;text-align:left;line-height:1.3}
.ae-c[aria-pressed="true"]{background:color-mix(in srgb,#22A35A 18%,var(--surface));border-color:#22A35A}
.ae-more{margin-top:10px}
.ae-note{width:100%;margin-top:6px}
.ae-act{display:flex;align-items:center;gap:8px;margin-top:10px}
.ae-done{display:flex;align-items:center;gap:12px}
.qe-strip{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}
.qe-btn{display:inline-flex;align-items:center;gap:5px;border:1px dashed color-mix(in srgb,#5B5BD6 60%,var(--line));background:color-mix(in srgb,#5B5BD6 10%,transparent);color:var(--ink);border-radius:999px;padding:4px 11px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit}
.qe-btn:hover{background:color-mix(in srgb,#5B5BD6 20%,transparent)}
.qe-areas{margin-bottom:10px}
.qe-list{display:flex;flex-direction:column;gap:8px}
.qe-row{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}
.qe-row.ya{opacity:.75}
.qe-who{display:flex;align-items:center;gap:10px;min-width:0}
.qe-who .avatar{width:36px;height:36px;flex:0 0 auto}
.qe-rub{display:flex;flex-direction:column;gap:6px}
.qe-r{display:flex;align-items:center;justify-content:space-between;gap:10px}
.qe-sc{display:flex;gap:4px}
.qe-n{margin:10px 0 0}
@media (max-width:640px) {
.qe-row{grid-template-columns:minmax(0,1fr);gap:8px}
.qe-r{flex-wrap:wrap}
}

/* ===== Estilos: armonias ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.harm-wrap{overflow-x:auto;padding:0 16px 12px}
@media (max-width:1100px) {
.harm-prev{grid-template-columns:1fr}
}
@media (max-width:640px) {
.harm-prev{grid-template-columns:1fr}
}
.arm-nota{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0 0;padding:7px 10px;border-radius:10px;background:var(--bg2,rgba(127,127,127,.12));font-size:12.5px;color:var(--muted)}

/* ===== Estilos: historial ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
dialog.xwide{max-width:1180px;width:min(96vw,1180px)}
/* 7.15: historial de actividad con la barra de Repertorio y secciones plegables */
#ac-bar .rep-bar{margin-bottom:8px}
/* los botones del historial quedan a la derecha del diálogo: el panel se abre hacia la izquierda para no cortarse */
#ac-bar .rep-pop{left:auto;right:0;max-width:min(460px,calc(100vw - 48px))}
.act-sec.folded .act-h .fold-btn{transform:rotate(-90deg)}
.act-sec .act-tbl{margin:0}
.act-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface));border-radius:999px;padding:2px 4px 2px 10px;font-weight:700}
.act-gn{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--accent);color:#fff;font-size:11px;font-weight:800;font-style:normal}
.act-sec.lv1{margin-left:14px}
.act-sec.lv2{margin-left:28px}
.act-sec.lv3{margin-left:42px}
.act-sec.lv1 .act-h,.act-sec.lv2 .act-h,.act-sec.lv3 .act-h{font-size:13px}
/* 7.68: Historial en celular: la tabla se desliza de lado dentro de cada grupo (antes el grupo la recortaba) */
.act-body{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
.act-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
/* 7.105 · Uso de la app (reporte del administrador) */
.uso-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.uso-bar #uso-q{flex:1;min-width:160px}
.uso-ck{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--muted)}
.uso-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}
.uso-tbl th.on{color:var(--accent)}
.uso-row{cursor:pointer}
.uso-who{display:flex;gap:10px;align-items:center;min-width:170px}
.uso-lv{display:inline-block;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;background:var(--surface-2)}
.uso-lv.nada{background:#E4262C;color:#fff}
.uso-lv.muybajo{background:color-mix(in srgb,#E4262C 22%,transparent);color:#E4262C}
.uso-lv.bajo{background:color-mix(in srgb,#F28C28 22%,transparent);color:#c46a10}
.uso-lv.medio{background:color-mix(in srgb,#3D82D0 20%,transparent);color:#3D82D0}
.uso-lv.alto{background:color-mix(in srgb,#22A55B 22%,transparent);color:#1d8a4c}
.uso-days{height:5px;border-radius:3px;background:var(--surface-2);margin:5px 0 2px;width:110px;overflow:hidden}
.uso-tops{display:flex;flex-wrap:wrap;gap:4px}
.uso-top{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:2px 8px;border-radius:999px;background:var(--surface-2);white-space:nowrap}
.uso-top.first{background:color-mix(in srgb,var(--accent) 16%,transparent);font-weight:700}
.uso-det>td{background:var(--surface-2)}
.uso-detbox{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px;padding:6px 4px}
.uso-mbar{display:grid;grid-template-columns:minmax(120px,190px) 1fr auto;gap:8px;align-items:center;font-size:12px;margin:4px 0}
.uso-mbar .l{display:flex;gap:6px;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uso-mbar .b,.uso-mod .b{height:8px;border-radius:4px;background:color-mix(in srgb,var(--ink) 8%,transparent);overflow:hidden}
.uso-acts{margin:0;padding-left:18px;font-size:13px;columns:2}
.uso-mods{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.uso-mod{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--surface)}
.uso-note{margin-top:12px;font-size:12px}
@media (max-width:700px) {
.uso-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.uso-detbox{grid-template-columns:1fr}
.uso-acts{columns:1}
}

/* ===== Estilos: reproductor ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
/* mini reproductor flotante (sigue sonando o viéndose al cambiar de pestaña) */
#mini-player{position:fixed;right:14px;bottom:14px;z-index:85;width:min(360px,92vw);background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px -12px rgba(0,0,0,.55);overflow:hidden;font-size:13px}
#mini-player .mp-h{display:flex;gap:8px;align-items:center;padding:8px 10px;background:var(--surface-2);cursor:grab;user-select:none;touch-action:none}
#mini-player .mp-cover{width:48px;height:48px;border-radius:8px;overflow:hidden;flex:none;background:var(--surface);box-shadow:0 2px 8px rgba(0,0,0,.3)}
#mini-player .mp-meta{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}
#mini-player .mp-body{background:#000;display:grid;place-items:center}
#mini-player.audio .mp-body{display:none}
#mini-player .mp-ctl{display:flex;gap:8px;align-items:center;padding:8px 10px;background:var(--surface)}
#mini-player .mp-ctl .mp-time{font-variant-numeric:tabular-nums;font-size:12px;color:var(--muted);white-space:nowrap}
#mini-player .mp-ctl .btn{min-width:36px;justify-content:center}
#mini-player .mp-rs{position:absolute;right:0;bottom:0;width:18px;height:18px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 50%,var(--muted) 50%,var(--muted) 60%,transparent 60%,transparent 75%,var(--muted) 75%,var(--muted) 85%,transparent 85%);opacity:.7;touch-action:none}
#mini-player.audio .mp-rs{display:none}
@media (max-width:640px) {
#mini-player{right:8px;left:8px;width:auto;bottom:calc(72px + env(safe-area-inset-bottom))}
}
.apx-rec{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface-2)}
.apx-title{font-weight:700;font-size:15px;min-height:1.2em;color:var(--text)}
#ap-back10,#ap-fwd10{opacity:.85}
.apx-speed{position:relative}
#ap-keypop{min-width:300px}
@media (max-width:760px) {
.apx-main{padding:14px}
.apx-ly{width:100%;border-left:0;border-top:1px solid var(--line);max-height:0;transition:max-height .25s}
.apx-ctrl{gap:8px}
}
.pl-row{display:flex;gap:10px;align-items:center;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;font-weight:600}
.pl-row:hover{border-color:var(--accent)}
.pl-row[aria-selected="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
.pl-row[aria-disabled="true"]{opacity:.5;cursor:default}
.pl-row .pl-acts .fav-btn{padding:4px}
#ap-seek::-webkit-slider-thumb,#mp-seek::-webkit-slider-thumb,#mt-seek::-webkit-slider-thumb,.mtx-tr input[type=range]::-webkit-slider-thumb {
  -webkit-appearance:none;
  width:16px;
  height:16px;
  border-radius:50%;
  background:#fff;
  border:3px solid var(--tc,var(--accent));
  box-shadow:0 2px 8px rgba(0,0,0,.35);
  transition:transform .15s;
}
#ap-seek::-moz-range-thumb,#mp-seek::-moz-range-thumb,#mt-seek::-moz-range-thumb,.mtx-tr input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;border:3px solid var(--tc,var(--accent))}
#ap-seek:hover::-webkit-slider-thumb,#mt-seek:hover::-webkit-slider-thumb{transform:scale(1.2)}
.apx-eq,.mp-eq{position:absolute;right:8px;bottom:8px;display:flex;gap:2px;align-items:flex-end;height:20px;padding:4px 5px;border-radius:8px;background:rgba(0,0,0,.55);opacity:0;transition:opacity .3s;pointer-events:none}
@keyframes apEq{0%,100%{height:25%}50%{height:100%}}
.apx-seek{font-size:12.5px}
.apx-seek #ap-seek{height:6px}
.apx-title{font-size:16px}
@media (pointer:coarse),(max-width:640px) {
.apx-keyhint{display:none}
}
/* ---- mini reproductor ---- */
#mini-player.mp2 {
  width:min(380px,94vw);
  border-radius:18px;
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  backdrop-filter:blur(16px) saturate(1.3);
  -webkit-backdrop-filter:blur(16px) saturate(1.3);
  border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));
  box-shadow:0 22px 50px -14px rgba(0,0,0,.7);
}
@keyframes mpIn{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}
#mini-player.mp2 .mp-seek{display:block;width:100%;margin:0;height:4px;border-radius:0;--tc:var(--accent)}
#mini-player.mp2 .mp-seek[hidden]{display:none}
#mini-player.mp2 .mp-seek::-webkit-slider-thumb{width:12px;height:12px;border-width:2px;opacity:0;transition:opacity .15s}
#mini-player.mp2:hover .mp-seek::-webkit-slider-thumb{opacity:1}
#mini-player.mp2 .mp-h{background:transparent;padding:10px 10px 4px 10px;gap:10px}
#mini-player.mp2 .mp-cover{position:relative;width:52px;height:52px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 40%,#000));box-shadow:0 6px 16px -6px rgba(0,0,0,.6)}
#mini-player.mp2 .mp-cover>i svg,#mini-player.mp2 .mp-cover>i .ico{width:22px;height:22px}
#mini-player.mp2 .mp-eq{right:4px;bottom:4px;height:14px;padding:2px 3px}
#mini-player.mp2 .mp-tx{flex:1;min-width:0}
#mini-player.mp2 .mp-tx small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#mini-player.mp2 .mp-h .ico-btn{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none}
#mini-player.mp2 .mp-h .ico-btn:hover{background:var(--surface-2)}
#mini-player.mp2 .mp-h .ico-btn svg,#mini-player.mp2 .mp-h .ico-btn .ico{width:16px;height:16px}
#mini-player.mp2 .mp-ctl{display:flex;gap:4px;align-items:center;padding:2px 10px 10px;background:transparent}
#mini-player.mp2 .mp-ctl[hidden]{display:none}
#mini-player.mp2 .mp-pl{width:44px;height:44px;border-radius:50%;border:0;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 16px -4px color-mix(in srgb,var(--accent) 70%,transparent);transition:transform .12s}
#mini-player.mp2 .mp-pl:active{transform:scale(.92)}
#mini-player.mp2 .mp-pl svg{width:20px;height:20px}
#mini-player.mp2 .mp-b{width:36px;height:36px;border-radius:50%;border:0;background:transparent;color:var(--ink);opacity:.75;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
#mini-player.mp2 .mp-b:hover{opacity:1;background:var(--surface-2)}
#mini-player.mp2 .mp-b svg{width:19px;height:19px}
#mini-player.mp2 .mp-time{font-variant-numeric:tabular-nums;font-size:12px;color:var(--muted);margin-left:4px;white-space:nowrap}
#mini-player.mp2 .mp-time i{font-style:normal;margin:0 3px;opacity:.5}
#mini-player.mp2 .mp-rate{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:99px;padding:4px 8px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
@media (max-width:640px) {
#mini-player.mp2{left:8px!important;right:8px!important;top:auto!important;width:auto!important;bottom:calc(76px + env(safe-area-inset-bottom))!important;border-radius:16px}
#mini-player.mp2.audio .mp-meta{display:none!important}
#mini-player.mp2.audio{display:grid;grid-template-columns:1fr auto;grid-template-areas:"seek seek" "head ctl"}
#mini-player.mp2.audio .mp-seek{grid-area:seek}
#mini-player.mp2.audio .mp-h{grid-area:head;min-width:0;padding:8px 4px 8px 8px}
#mini-player.mp2.audio .mp-ctl{grid-area:ctl;padding:8px 8px 8px 0}
#mini-player.mp2.audio .mp-cover{width:44px;height:44px}
#mini-player.mp2.audio #mp-open,#mini-player.mp2.audio .mp-time,#mini-player.mp2.audio .mp-rate,#mini-player.mp2.audio #mp-b10{display:none}
#mini-player.mp2.audio[hidden]{display:none}
#mini-player.mp2 .mp-rs{display:none}
}
/* reproductor: barra superior (solo celular) */
.apx-top{display:none}
@media (max-width:640px) {
.apx-main{min-height:100%;padding:0 16px 0!important;gap:12px!important}
.apx-top{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:4;margin:0 -16px;padding:10px 12px 6px;background:linear-gradient(var(--surface) 60%,transparent)}
.apx-top .apx-ib.sm{width:38px;height:38px}
.apx-top [data-aptop="min"] svg{transform:rotate(180deg)}
.apx-top-t{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.apx-info .t{font-size:20px!important}
.apx-main>#ap-list{margin:0}
.apx-main>.apx-ly{width:auto!important;border:1px solid var(--line);border-radius:14px}
.apx-now{position:sticky;bottom:0;z-index:3;margin:auto -16px 0;padding:14px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);border-radius:20px 20px 0 0;box-shadow:0 -14px 30px -18px rgba(0,0,0,.55)}
.apx-ctrl{gap:10px!important;justify-content:space-between!important}
.apx-ctrl2::-webkit-scrollbar{display:none}
}
/* 7.87 · cerrar el reproductor en celular, qué te toca y armonías propias */
.apx-x{position:absolute;top:8px;right:10px;z-index:9;width:38px;height:38px;border-radius:50%;border:0;background:rgba(10,12,18,.62);color:#fff;font-size:17px;line-height:1;cursor:pointer;backdrop-filter:blur(3px);box-shadow:0 4px 14px rgba(0,0,0,.35)}
.apx-x:hover{background:rgba(10,12,18,.88)}
@media (max-width:700px) {
.apx-x{top:6px;right:6px}
}

/* ===== Estilos: integrantes ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.pf-tabs .ap-tab{padding:7px 12px;font-size:13px}
.team-empty{color:var(--faint);font-size:12px;text-align:center;padding:20px 8px;border:1px dashed var(--line);border-radius:8px}
.hist-row .hd{font-weight:800;min-width:56px;font-variant-numeric:tabular-nums}
.hist-row .hb{flex:1;min-width:0}
.hist-row .hc{font-size:11px;color:var(--muted);white-space:nowrap}
.tes-chip{background:linear-gradient(90deg,#ffe600,#ffc93f);color:#3a2f00;font-weight:800}
@media (max-width:700px) {
.pe-bulk{gap:6px;padding:8px}
}
.pe-hero {
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  align-items:center;
  justify-content:space-between;
  padding:18px 20px;
  border-radius:20px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 20%,var(--surface)),var(--surface) 65%);
  border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));
  position:relative;
  overflow:hidden;
}
.pe-hero::after{content:"";position:absolute;right:-40px;bottom:-60px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 22%,transparent),transparent 70%);pointer-events:none}
.pe-kpis{display:flex;flex-wrap:wrap;gap:8px;position:relative}
.pe-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pe-vt{display:inline-flex;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.pe-add{border-radius:12px}
.pe-segs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.pe-segs::-webkit-scrollbar{display:none}
.pe-seg{flex:none;display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:99px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.pe-seg[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.pe-cl{display:flex;flex-direction:column;max-height:300px;overflow:auto;margin:0 -4px}
.pe-cli{display:flex;align-items:center;gap:8px;padding:6px 6px;border-radius:8px;cursor:grab;font-size:13px}
.pe-cli:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}
.pe-cli.dragov,.pe-tbl th.dragov{outline:2px dashed var(--accent);outline-offset:-2px}
.pe-cpre{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0 6px;padding-top:8px;border-top:1px solid var(--line)}
/* avatar, etiquetas */
.pe-av{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:color-mix(in srgb,var(--pc) 22%,var(--surface-2));box-shadow:0 0 0 2px color-mix(in srgb,var(--pc) 55%,transparent);color:var(--pc)}
.pe-av.lg{width:52px;height:52px}
.pe-av.xl{width:76px;height:76px;box-shadow:0 0 0 3px color-mix(in srgb,var(--pc) 70%,transparent),0 12px 30px -12px var(--pc)}
.pe-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.pe-role{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:6px;background:color-mix(in srgb,var(--rc) 22%,transparent);color:color-mix(in srgb,var(--rc) 70%,var(--ink));border:1px solid color-mix(in srgb,var(--rc) 45%,transparent)}
.pe-st{font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:6px}
.pe-st.pausa{background:color-mix(in srgb,#f59e0b 22%,transparent);color:#d97706}
.pe-st.inactivo{background:color-mix(in srgb,#ef4444 20%,transparent);color:#ef4444}
.pe-inc{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:6px;background:color-mix(in srgb,#f59e0b 16%,transparent);color:#d97706}
.pe-type{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:3px 9px 3px 7px;border-radius:99px;background:color-mix(in srgb,var(--pc) 15%,transparent);color:color-mix(in srgb,var(--pc) 75%,var(--ink));white-space:nowrap}
.pe-vl{display:inline-block;font-size:11px;font-weight:800;padding:2px 8px;border-radius:99px;margin:1px 3px 1px 0}
.pe-part{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;margin:1px 6px 1px 0;white-space:nowrap}
.pe-part::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--pc)}
.pe-wrap{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.pe-rule{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px;background:var(--surface-2);border:1px solid var(--line);white-space:nowrap}
.pe-none{color:var(--muted);opacity:.6}
.pe-miss{font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px;background:color-mix(in srgb,#f59e0b 16%,transparent);color:#d97706;white-space:nowrap}
.pe-user{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;white-space:nowrap}
.pe-wa{display:inline-flex;align-items:center;gap:5px;text-decoration:none;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.pe-num{font-variant-numeric:tabular-nums}
.pe-nw{white-space:nowrap}
.pe-mc.z{background:var(--surface-2);color:var(--muted)}
.pe-mc.over{background:color-mix(in srgb,#ef4444 18%,transparent);color:#ef4444}
.pe-sk i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--v);border-radius:inherit;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 55%,#22c55e))}
.pe-sk.voz i::after{background:linear-gradient(90deg,#8b5cf6,#ec4899)}
.pe-acts{display:inline-flex;gap:4px;align-items:center}
.pe-ab{width:32px;height:32px;display:inline-grid;place-items:center;border-radius:9px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;text-decoration:none}
/* tabla */
.pe-tw{border:1px solid var(--line);border-radius:16px;background:var(--surface);max-height:calc(100vh - 250px)}
.pe-tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.pe-tbl thead th{position:sticky;top:0;z-index:3;background:var(--surface-2);text-align:left;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:11px 10px;border-bottom:1px solid var(--line);white-space:nowrap;cursor:pointer;user-select:none}
.pe-tbl thead th.on{color:var(--accent)}
.pe-tbl tbody td{padding:10px;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);vertical-align:middle}
.pe-tbl.dense tbody td{padding:5px 10px}
.pe-tbl.dense .pe-av{width:30px;height:30px}
.pe-tbl.dense .pe-tags{margin-top:2px}
.pe-tbl tbody tr{cursor:pointer;transition:background .12s}
.pe-tbl tbody tr:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}
.pe-tbl tbody tr.sel{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.pe-tbl tbody tr.off{opacity:.55}
.pe-tbl tbody tr.paused .pe-nt>b{color:#d97706}
.pe-tbl tbody tr[style*="--rc"] td.c-name{box-shadow:inset 3px 0 0 var(--rc)}
.pe-tbl tbody tr:hover td.c-name{background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.pe-tbl tbody tr.sel td.c-name{background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
.pe-tbl tbody td.c-sel{background:var(--surface)}
.pe-tbl .c-act .pe-acts{opacity:.35;transition:opacity .15s}
.pe-tbl tr:hover .c-act .pe-acts{opacity:1}
.pe-tbl td.k-parts,.pe-tbl td.k-rules{min-width:150px}
@media (pointer:coarse) {
.pe-tbl .c-act .pe-acts{opacity:1}
}
/* tarjetas */
.pe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}
.pe-ck{position:absolute;top:10px;right:10px}
.pe-ch{display:flex;align-items:center;gap:12px;padding-right:26px}
.pe-card .pe-tags{margin-top:0}
.pe-cv{display:flex;flex-wrap:wrap;align-items:center;gap:2px}
.pe-cs{display:flex;flex-direction:column;gap:5px}
.pe-csr{display:grid;grid-template-columns:96px 1fr;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.pe-cf{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;padding-top:8px;border-top:1px dashed var(--line)}
.pe-cm{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted)}
.pe-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:40px 16px;border:1px dashed var(--line);border-radius:18px;color:var(--muted)}
/* barra de selección */
.pe-bulk{position:sticky;top:calc(var(--tb-h,56px) + 6px);z-index:7;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-radius:14px;background:color-mix(in srgb,var(--accent) 16%,var(--surface));border:1px solid var(--accent);box-shadow:0 14px 30px -20px rgba(0,0,0,.6)}
.pe-bg{display:inline-flex;align-items:center;gap:4px;padding:3px;border-radius:10px;background:var(--surface)}
/* editor */
dialog.pf-dlg{max-width:980px;width:min(96vw,980px)}
.pf2{display:flex;flex-direction:column}
.pf-head{display:flex;align-items:center;gap:16px;padding:18px 20px 14px;background:linear-gradient(135deg,color-mix(in srgb,var(--pc) 18%,var(--surface)),var(--surface) 70%);border-bottom:1px solid var(--line);flex-wrap:wrap}
.pf-hm{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.pf-hm .pe-type{--pc:inherit}
.pf-hs{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.pf-ha{display:flex;flex-direction:column;gap:6px}
.pf-tabs{display:flex!important;flex-wrap:nowrap!important;gap:4px;padding:10px 16px 0;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;position:sticky;top:0;z-index:4;background:var(--surface)}
.pf-tabs::-webkit-scrollbar{display:none}
.pf-tb{flex:none;display:inline-flex;align-items:center;gap:6px;padding:9px 13px 11px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font:inherit;font-size:13.5px;font-weight:700;cursor:pointer}
.pf-tb[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--pc,var(--accent))}
.pf2 .pf-sec[hidden]{display:none}
.pf2 .f>label small{text-transform:none;letter-spacing:0;font-weight:500}
.pf2 .pf-grid.c2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pf-hid{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.pe-segc{display:flex;flex-wrap:wrap;gap:6px}
.pe-segc button[aria-pressed="true"] svg{color:var(--pc,var(--accent))}
.pf-id{font-family:ui-monospace,monospace;font-size:11px}
.pf-note{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--pc,var(--accent)) 10%,transparent);font-size:13.5px}
.pf-lead{margin:0}
.pf-pills{display:flex;flex-wrap:wrap;gap:6px}
.pf-pill{position:relative;display:inline-flex;align-items:center;cursor:pointer}
.pf-pill>span::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--rc,var(--muted));opacity:.55}
.pf-pill input:checked+span::before{opacity:1;box-shadow:0 0 0 3px color-mix(in srgb,var(--rc,var(--accent)) 30%,transparent)}
.pf-pill.big>span::before{display:none}
.pf-pill.big input:checked+span{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--surface-2))}
.pf-rule2{display:grid;grid-template-columns:auto 1fr auto auto;gap:12px;align-items:center;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--surface-2);cursor:pointer;transition:border-color .15s,background .15s}
.pf-rule2 .rc:empty{display:none}
.pf-rule2 .sw::after,.pf-tog .sw::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .2s}
.pf-rule2>input:checked~.sw::after,.pf-tog input:checked+.sw::after{transform:translateX(18px)}
.pf-rule2>input:focus-visible~.sw{outline:2px solid var(--accent);outline-offset:2px}
.pf-skg{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.pf-sk{text-align:left!important;align-items:stretch!important;display:flex!important;flex-direction:column;gap:6px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--surface-2)}
.pf-skh{width:100%;display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.pf-skl{font-size:11px;font-weight:800;color:var(--pc,var(--accent))}
.pf-skr{display:grid;grid-template-columns:1fr 64px;gap:10px;align-items:center}
@media (max-width:700px) {
.pe-hero{padding:14px}
.pe-kpis{display:grid;grid-template-columns:1fr 1fr;width:100%}
.pe-grid{grid-template-columns:minmax(0,1fr)}
.pe-bulk{top:auto;bottom:calc(76px + env(safe-area-inset-bottom));position:sticky}
.pe-bg{flex-wrap:wrap}
dialog.pf-dlg{width:100vw!important;max-width:100vw!important}
.pf-head{padding:14px;gap:12px}
.pf-head .pe-av.xl{width:56px;height:56px}
.pf-hs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;width:100%}
.pf-ha{flex-direction:row;width:100%}
.pf2 .pf-grid.c2{grid-template-columns:1fr}
.pf2 .pf-sec{padding:14px}
.pf-rule2{grid-template-columns:auto 1fr auto;}
}
/* 7.101 · integrante con estado Invitado */
.pe-st.invitado{background:color-mix(in srgb,#7c5cd6 22%,transparent);color:#7c5cd6}
:root[data-theme="dark"] .pe-st.invitado{color:#b7a4f2}
@media (prefers-color-scheme:dark) {
:root:not([data-theme="light"]) .pe-st.invitado{color:#b7a4f2}
}
/* 7.110.2 · periodo de cada regla del integrante */
.pf-rule2 .pf-when{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:6px;font-size:12px;color:var(--muted);cursor:default}
.pf-rule2 .pf-when>span:first-child{font-weight:700}
.pf-rule2 .pf-wd{display:inline-flex;align-items:center;gap:5px}

/* ===== Estilos: asistencia ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.at-sum{font-size:11px;color:var(--muted);white-space:nowrap}
/* 7.29: tickets de falta por decidir */
.inc-pend-box{border-color:var(--gold)}
.inc-pend-list{display:grid;gap:6px}
.inc-pend{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
tr.inc-pendiente{background:color-mix(in srgb,var(--gold) 12%,transparent)}
/* 7.95 · Asistencia con QR */
dialog.asq-dlg,dialog.asc-dlg{padding:0;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink);display:none;flex-direction:column;overflow:hidden}
dialog.asq-dlg[open],dialog.asc-dlg[open]{display:flex;position:fixed;inset:0;margin:auto}
dialog.asq-dlg::backdrop,dialog.asc-dlg::backdrop{background:rgba(0,0,0,.6)}
dialog.asq-dlg{width:min(400px,calc(100vw - 20px));height:fit-content;max-height:calc(100dvh - 20px)}
.asq-h,.asc-h{display:flex;align-items:center;gap:8px;padding:12px 14px}
.asq-me{display:flex;align-items:center;gap:10px;justify-content:center;padding:0 14px 8px}
.asq-me .rp-av{width:34px;height:34px;flex-basis:34px}
.asq-box{position:relative;margin:0 auto;width:min(340px,calc(100vw - 60px));aspect-ratio:1;background:#fff;border-radius:16px;overflow:hidden}
.asq-box canvas{width:100%;height:100%;display:block}
.asq-ok{position:absolute;left:10px;right:10px;bottom:10px;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;background:var(--c);color:#fff;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.asq-bar{height:4px;margin:12px auto 0;width:min(340px,calc(100vw - 60px));background:var(--surface-2);border-radius:4px;overflow:hidden}
.asq-help{text-align:center;padding:8px 18px 16px;margin:0}
dialog.asc-dlg{width:min(560px,100vw);height:min(860px,100dvh)}
@media (max-width:640px) {
dialog.asc-dlg{border-radius:0;border:0}
}
.asc-hora{border:0;background:none;color:var(--accent);font:inherit;padding:0;cursor:pointer;text-decoration:underline dotted}
.asc-cam{position:relative;background:#000;aspect-ratio:4/3;max-height:45dvh;flex:0 0 auto;overflow:hidden}
.asc-cam video{width:100%;height:100%;object-fit:cover;display:block}
.asc-frame{position:absolute;inset:18% 22%;border:3px solid rgba(255,255,255,.85);border-radius:18px;box-shadow:0 0 0 999px rgba(0,0,0,.25);pointer-events:none}
.asc-msg{position:absolute;left:0;right:0;bottom:8px;text-align:center;color:#fff;font-size:13px;margin:0;padding:0 12px;text-shadow:0 1px 3px #000}
.asc-res{position:absolute;left:12px;right:12px;top:12px;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;color:#fff;background:#2e9e5b;box-shadow:0 6px 20px rgba(0,0,0,.35);animation:ascIn .18s ease-out}
.asc-res.late{background:#c98a00}
.asc-res.ya{background:#3b82f6}
.asc-res.bad{background:#E4262C}
.asc-res .rp-av{width:40px;height:40px;flex-basis:40px}
@keyframes ascIn{from{transform:translateY(-8px);opacity:0}to{transform:none;opacity:1}}
.asc-tabs{display:flex;gap:4px;padding:8px 10px 0;border-bottom:1px solid var(--line)}
.asc-body{flex:1;overflow:auto;padding:6px 10px 14px}
.asc-q{width:100%;margin:6px 0;padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-size:16px}
.asc-it{display:flex;align-items:center;gap:10px;padding:7px 4px;border-bottom:1px solid var(--line)}
.asc-it .rp-av{width:32px;height:32px;flex-basis:32px}
.asc-v{font-size:12px;font-weight:800;color:var(--c);border:1px solid var(--c);border-radius:999px;padding:2px 8px;white-space:nowrap}
.asc-bt{display:flex;gap:4px}
.asf-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.asf-users{display:flex;flex-direction:column;max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:6px 10px}

/* ===== Estilos: multitrack ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
/* ---- 6.8: marcadores del multitrack, miniaturas de cursos, acordes, versículo, insignias, audiciones, cintas ---- */
.mtx-seekw #mt-ticks .tk{position:absolute;top:8px;width:2px;height:12px;background:var(--gold);opacity:.8;transform:translateX(-1px);pointer-events:none}
.mtx-mk .lp{padding:4px 6px;border-left:1px solid var(--line);color:var(--muted)}
#mt-ui.busy .mtx-ctl{opacity:.6}
#mt-ui.busy #mt-status::before{content:'';display:inline-block;width:10px;height:10px;border:2px solid var(--accent);border-right-color:transparent;border-radius:50%;margin-right:6px;vertical-align:middle;animation:mtspin .9s linear infinite}
@keyframes mtspin{to{transform:rotate(360deg)}}
.mtx-ltracks .lt{font-size:12px;padding:3px 8px;border-radius:999px;background:var(--surface-2)}
.mtx-gap{width:16px}
#mt-b[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink,#fff);border-color:var(--accent)}
#mt-play{width:56px;height:56px}
@keyframes orb{0%{transform:scale(.3);opacity:.9}100%{transform:scale(1.15);opacity:0}}
@keyframes eqb{0%,100%{height:14px}50%{height:46px}}
.mtx-ltracks .lt{transition:all .3s;border:1px solid transparent}
@keyframes ltp{50%{opacity:.5}}
@media (max-width:640px) {
.mtx-cover{width:64px;height:64px}
}
.mtx-tr.muted .nm{opacity:.45}
.mtx-tr.master{background:var(--surface-2);border-color:var(--accent)}
.mtx-b{width:30px;height:28px;border-radius:7px;border:1px solid var(--line);background:var(--surface);font-weight:800;font-size:12px;cursor:pointer;color:var(--text)}
@media (max-width:640px) {
.mtx-tr{grid-template-columns:minmax(80px,120px) 28px 28px 1fr 40px 14px;gap:5px;padding:5px}
}
/* ---- multitrack ---- */
.mtx-tr[data-tr]{border-left:4px solid var(--tc,var(--accent));transition:background .2s,opacity .2s}
.mtx-tr.master{--tc:var(--accent)}
.mt-mkrow{display:flex;align-items:center;gap:6px}
.mt-mktg:hover{border-color:var(--accent)}
.mt-mktg .n:empty{display:none}
.mt-mktg .cur{color:var(--muted);margin-left:6px;font-size:12.5px}
.mt-mktg[aria-expanded="true"] .car{transform:rotate(180deg)}
#mt-ui:not(.mk-open) #mt-marks{display:none!important}
#mt-ui.mk-open #mt-marks{max-height:190px;overflow:auto;padding:2px;overscroll-behavior:contain}
@media (max-width:640px) {
.mt-deck{position:sticky;top:0;z-index:5;margin:0 -14px;padding:10px 14px;background:color-mix(in srgb,var(--surface) 95%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.mt-deck .mtx-ctrl{justify-content:space-between;flex-wrap:nowrap!important;gap:6px!important}
.mt-deck .mtx-ctrl .mtx-gap{flex:1;min-width:0}
.mt-deck .mtx-ctrl .apx-ib{width:40px;height:40px;flex:none}
.mt-deck .mtx-ctrl .apx-play{width:54px;height:54px;flex:none}
.mtx-tr[data-tr] .nm{grid-column:1/-1;font-size:14px!important}
.mtx-row2{flex-wrap:wrap}
}

/* ===== Estilos: cursos ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.video-wrap .pdfv{height:100%}
.pdfv:fullscreen{background:var(--surface)}
#pdf-float{position:fixed;left:14px;bottom:14px;z-index:86;width:min(520px,94vw);height:min(640px,80vh);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px -12px rgba(0,0,0,.55);display:flex;flex-direction:column;overflow:hidden}
#pdf-float.max{left:3vw!important;top:64px!important;right:3vw!important;bottom:3vh!important;width:auto!important;height:auto!important}
#pdf-float .pf-h{display:flex;gap:6px;align-items:center;padding:8px 10px;background:var(--surface-2);cursor:grab;user-select:none;touch-action:none;flex:none}
#pdf-float .pf-h .pf-i{display:inline-flex;color:var(--accent)}
#pdf-float .pf-h .pf-i .ico{width:16px;height:16px}
#pdf-float .pf-h .ico-btn .ico{width:16px;height:16px}
#pdf-float .pf-h .ico-btn:hover{color:var(--ink)}
#pdf-float .pf-b{flex:1;min-height:0;display:flex}
#pdf-float .pf-b .pdfv{flex:1;min-height:0;height:auto;min-height:0}
#pdf-float .pf-rs{position:absolute;right:0;bottom:0;width:18px;height:18px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 50%,var(--line) 50%)}
#pdf-float:fullscreen{width:100vw;height:100vh;border-radius:0;left:0;top:0}
@media (max-width:640px) {
#pdf-float{left:6px!important;right:6px!important;top:56px!important;bottom:calc(70px + env(safe-area-inset-bottom))!important;width:auto!important;height:auto!important}
#pdf-float .pf-rs{display:none}
}
.rec-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--accent)}
.rec-pv.audio,.rec-pv.video{aspect-ratio:16/10}
.rec-card:hover .rec-del{opacity:1}
.rec-body{border-radius:0}
.ord-it.dragging{opacity:.4}
/* drag & drop */
.dz-on{outline:2px dashed var(--accent);outline-offset:4px;border-radius:10px;position:relative;transition:background .15s}
.dz-over{background:color-mix(in srgb,var(--accent) 16%,transparent)!important}
.dz-hint{position:absolute;right:6px;top:-12px;font-size:11px;font-weight:800;background:var(--accent);color:#fff;padding:2px 8px;border-radius:999px;pointer-events:none;z-index:2}
.cursos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.leccion{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer;text-align:left;font-weight:600}
.leccion[aria-selected="true"]{border-color:var(--green);background:color-mix(in srgb,var(--green) 12%,var(--surface))}
.leccion{position:relative;overflow:hidden}
.leccion .ico-btn:hover{opacity:1}
.mod-head{display:flex;gap:8px;align-items:center;padding:10px 12px;cursor:pointer;user-select:none}
.mod-head .ico-btn:hover{opacity:1}
.mod-body{display:none;padding:0 8px 8px}
.mod-body .leccion{background:var(--surface)}
.cu-layout{display:grid;grid-template-columns:210px 1fr;gap:16px;align-items:start}
@media (max-width:800px) {
.cu-layout{grid-template-columns:1fr}
}
.cu-badge{position:absolute;left:8px;top:8px;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;backdrop-filter:blur(4px)}
.cu-badge.free{background:rgba(0,166,81,.88)}
.cu-badge.paid{background:rgba(217,162,27,.92);color:#111}
.cu-badge.lock{background:rgba(0,0,0,.72)}
.cu-cat{position:absolute;right:8px;bottom:8px;font-size:10px;font-weight:700;padding:3px 8px;border-radius:999px;background:rgba(255,255,255,.88);color:#111}
.cu-res-item[aria-selected="true"]{border-color:var(--green);background:color-mix(in srgb,var(--green) 12%,var(--surface))}
.cu-mbar{position:fixed;left:10px;right:10px;bottom:calc(68px + env(safe-area-inset-bottom));z-index:39;display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:14px;background:var(--surface);border:1px solid var(--line);box-shadow:0 10px 30px -10px rgba(0,0,0,.5)}
.cu-pop-h{display:flex;gap:8px;align-items:center;padding:8px 12px}
.cu-pop-b{background:#000;display:grid;place-items:center}
.cu-pop-b iframe{width:100%;height:78dvh;border:0;background:#fff}
.video-wrap{background:#000;border-radius:12px;overflow:hidden;aspect-ratio:16/9;display:grid;place-items:center}
.video-wrap iframe{width:100%;height:100%;border:0;background:#fff}
.cu-badge.req{background:var(--gold);color:#111}
/* 7.10: cursos por nivel y opiniones con estrellas */
.cu-level{position:absolute;right:8px;bottom:8px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:999px;background:#fff;color:#111}
.cu-level.lv-basico{background:#22C267;color:#fff}
.cu-level.lv-medio{background:#F0B429;color:#111}
.cu-level.lv-intermedio{background:#2F6BD6;color:#fff}
.cu-rv{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
/* 7.12: niveles de cursos editables */
.cu-level.lv-intermedio{background:#F0B429;color:#111}
.cu-level.lv-avanzado{background:#2F6BD6;color:#fff}
.lib-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;background:var(--surface);padding:6px 12px}
.lib-shelf{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:none}
.lib-shelf::-webkit-scrollbar{display:none}
.lib-book .rec-pv{border-radius:10px;box-shadow:var(--shadow);aspect-ratio:3/4}
.lib-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
@media (max-width:640px) {
.lib-grid{grid-template-columns:repeat(2,1fr);gap:10px}
.rec-card .rec-del{opacity:1}
.lib-book{width:104px}
}
.mod-grip:active{cursor:grabbing}
.mod-mv{font-size:11px;line-height:1;opacity:.55}
.mod-mv:hover{opacity:1}
@media (hover:none) {
.mod-grip{display:none}
}
.mod-body .cu-res-sub{border-top:1px dashed var(--line);padding-top:8px}
.cu-badge.soon{background:color-mix(in srgb,#F0B429 84%,#000);color:#231800}
.cuw-body{padding:0 10px 10px;display:grid;gap:8px}
.cuw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.cuw-card:hover{background:var(--surface-2)}
@media (min-width:1100px) {
.cu-play-row{display:grid;grid-template-columns:1fr 260px;gap:12px;align-items:start}
}
.leccion .plays-b{margin-left:6px}
.pr-hero {
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  align-items:center;
  justify-content:space-between;
  padding:20px 22px;
  border-radius:22px;
  background:radial-gradient(circle at 12% 0%,color-mix(in srgb,#f59e0b 26%,transparent),transparent 45%),linear-gradient(135deg,color-mix(in srgb,var(--accent) 24%,var(--surface)),var(--surface) 70%);
  border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));
  position:relative;
  overflow:hidden;
}
.pr-hero::after{content:"";position:absolute;right:-30px;top:-30px;width:160px;height:160px;border-radius:50%;border:18px solid color-mix(in srgb,var(--accent) 12%,transparent);pointer-events:none}
.pr-kpis{display:grid;grid-template-columns:repeat(4,auto);gap:8px;position:relative}
.pr-find{flex:1 1 240px;display:flex;align-items:center;gap:8px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface)}
.pr-chips{display:flex;gap:6px;flex-wrap:wrap}
.pr-chip{padding:7px 12px;border-radius:99px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.pr-chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.pr-player {
  position:sticky;
  top:calc(var(--tb-h,56px) + 8px);
  z-index:6;
  display:flex;
  align-items:center;
  gap:14px;
  padding:12px 14px;
  border-radius:18px;
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));
  box-shadow:0 18px 40px -22px color-mix(in srgb,var(--accent) 70%,#000);
}
.pr-pc{position:relative;flex:none;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 50%,#f59e0b));color:#fff}
.pr-eq{position:absolute;right:4px;bottom:4px;display:none;gap:1.5px;align-items:flex-end;height:12px}
.pr-player.playing .pr-eq{display:flex}
@keyframes prEq{0%,100%{height:3px}50%{height:12px}}
.pr-seek{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.pr-pctl{display:flex;align-items:center;gap:6px;flex:none}
.pr-pctl .pr-pp{width:46px;height:46px}
.pr-pctl #pr-loop[aria-pressed="true"]{background:var(--accent);color:#fff;border-color:var(--accent)}
.pr-list{display:flex;flex-direction:column;gap:16px}
.pr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.pr-card .pr-b{width:38px;height:38px;padding:0}
.pr-ic{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}
.pr-done{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:700;color:#22c55e}
.pr-act{display:flex;gap:6px;flex:none}
.pr-b.play{border-radius:50%;width:38px;height:38px;padding:0;background:var(--accent);border-color:var(--accent);color:#fff}
.pr-b:hover{border-color:var(--accent)}
.pr-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:28px 16px;text-align:center;border:1px dashed var(--line);border-radius:16px;color:var(--muted)}
.pr-cta {
  display:flex;
  align-items:center;
  gap:14px;
  width:100%;
  margin:0 0 14px;
  padding:14px 16px;
  border-radius:18px;
  border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));
  background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 16%,var(--surface)),var(--surface));
  color:var(--ink);
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.pr-cta:hover{border-color:var(--accent)}
.pr-cta .go{color:var(--accent)}
@media (max-width:640px) {
.pr-hero{padding:16px}
.pr-kpis{grid-template-columns:repeat(4,1fr);width:100%}
.pr-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;width:100%}
.pr-chip{flex:none}
.pr-player{flex-wrap:wrap;gap:10px;top:auto;bottom:calc(76px + env(safe-area-inset-bottom));position:sticky}
.pr-pc{width:40px;height:40px}
.pr-pm{flex:1 1 calc(100% - 60px)}
.pr-pctl{width:100%;justify-content:space-between}
.pr-grid{grid-template-columns:minmax(0,1fr)}
.pr-pt{flex-direction:column;gap:0}
}
/* 7.76 · Cursos */
.cu-top{margin:0 0 12px}
.cu-q{max-width:520px}
.cu-resume {
  display:flex;
  align-items:center;
  gap:14px;
  padding:12px;
  border-radius:18px;
  margin:0 0 12px;
  cursor:pointer;
  background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 24%,var(--surface-2)),var(--surface-2) 70%);
  border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);
  transition:transform .18s,box-shadow .18s;
}
.cu-resume:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.3)}
.cu-rz-cv{flex:none;width:170px;aspect-ratio:16/9;border-radius:12px;background:linear-gradient(135deg,var(--navy),var(--green)) center/cover;position:relative;overflow:hidden}
.cu-rz-cv::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.45))}
.cu-rz-play{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.92);color:#111;box-shadow:0 6px 18px rgba(0,0,0,.4)}
.cu-rz-bar{display:block;height:6px;border-radius:6px;background:color-mix(in srgb,var(--ink) 12%,transparent);margin:6px 0 2px;overflow:hidden;max-width:420px}
.cu-rz-go{flex:none}
.cu-stats{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.cu-stats.cu-hello{padding:10px 14px;border-radius:14px;background:var(--surface-2);border:1px dashed var(--line);font-size:13px;color:var(--muted);align-items:center;gap:8px}
/* héroe del curso */
.cu-hero{position:relative;border-radius:20px;overflow:hidden;margin:0 0 14px;background:var(--surface-2);border:1px solid var(--line)}
.cu-hero::before{content:'';position:absolute;inset:-20px;background:var(--cuimg,none) center/cover;filter:blur(18px) saturate(1.2);opacity:.45;transform:scale(1.1)}
.cu-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--surface) 92%,transparent) 30%,color-mix(in srgb,var(--surface) 55%,transparent))}
.cu-hero-in{position:relative;z-index:1;display:flex;align-items:center;gap:18px;padding:18px 20px}
.cu-hero-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:6px}
.cu-hero-meta{font-size:12.5px;color:var(--muted);margin-bottom:10px}
.cu-hero-go{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cu-hero-done{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:#f59e0b}
.cu-hero-ring {
  --p:0;
  flex:none;
  width:96px;
  height:96px;
  border-radius:50%;
  display:grid;
  place-items:center;
  align-content:center;
  background:radial-gradient(closest-side,var(--surface) 78%,transparent 80% 100%),conic-gradient(var(--accent) calc(var(--p)*1%),color-mix(in srgb,var(--ink) 12%,transparent) 0);
}
@media (max-width:640px) {
.cu-resume{flex-wrap:wrap;gap:10px}
.cu-rz-cv{width:112px}
.cu-rz-go{width:100%}
.cursos-grid{grid-template-columns:1fr 1fr!important;gap:10px}
.cu-hero-in{padding:14px;gap:12px}
.cu-hero-ring{width:70px;height:70px}
.cu-hero-go{width:100%}
}
/* 7.107 · Sala de práctica: cursos plegables y elección de recursos */
.pr-grp{border:1px solid var(--line);border-radius:14px;padding:6px 10px;margin-bottom:10px;background:var(--surface)}
.pr-gh{all:unset;cursor:pointer;display:flex;align-items:center;gap:8px;flex:1;min-width:0;padding:6px 0;font-weight:800}
.pr-gh .t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pr-gh .cx{display:inline-flex;transition:transform .18s;color:var(--muted)}
.pr-grp:not(.folded) .pr-gh .cx{transform:rotate(90deg)}
.pr-grp.folded>.pr-grid{display:none}
.pr-gh:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.pr-pickb{flex:none;font-size:12px}
.pr-pickbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.pr-pick{display:flex;flex-direction:column;gap:4px;max-height:55vh;overflow:auto}
.pr-pick .ck{display:flex;align-items:center;gap:10px;padding:7px 8px;border:1px solid var(--line);border-radius:10px;cursor:pointer}
.pr-pick .ck .pr-ic{display:inline-flex;flex:none}
.pr-vac{margin-top:8px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
/* 7.116 · Cursos: maestro que imparte cada curso */
.cu-ma-av{position:relative;display:inline-grid;place-items:center;flex:none;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 70%,#000),var(--blue,#3b82f6));color:#fff;font-weight:800;box-shadow:0 0 0 2px var(--surface)}
.cu-ma{display:flex;align-items:center;gap:7px;margin:4px 0 6px;font-size:12.5px;color:var(--muted);line-height:1.25}
.cu-ma-avs{display:inline-flex}
.cu-ma-avs .cu-ma-av+.cu-ma-av{margin-left:-7px}
.cu-ma-hero{display:flex;flex-wrap:wrap;gap:10px 18px;margin:6px 0 10px}
.cu-ma-h{display:flex;align-items:center;gap:10px;min-width:0;max-width:520px}
.cu-ma-ed{border:1px solid var(--line);border-radius:12px;padding:10px;background:color-mix(in srgb,var(--surface-2) 60%,transparent)}
.cu-ma-row{display:flex;gap:10px;align-items:flex-start;padding:8px 0}
.cu-ma-row+.cu-ma-row{border-top:1px dashed var(--line)}
.cu-ma-ph{width:56px;height:56px;border-radius:50%;flex:none;overflow:hidden;cursor:pointer;display:grid;place-items:center;background:var(--surface);border:2px dashed var(--line);color:var(--muted)}
.cu-ma-ph:hover{border-color:var(--accent);color:var(--accent)}
.cu-ma-fl{flex:1;min-width:0;display:grid;gap:6px}
.cu-ma-l1{display:flex;gap:6px;align-items:center}
.cu-ma-sug{color:var(--accent);font-size:11.5px}
.cu-ma-rm{justify-self:start}
/* 7.117 · Cursos: Material complementario y quién lo usa */
.cu-tabs{display:flex;gap:6px;margin:12px 0 14px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.cu-tabs button i{font-style:normal;font-size:11px;background:var(--surface-2);border-radius:999px;padding:1px 7px;color:var(--muted)}
.cu-hero-mat{border:0;background:rgba(255,255,255,.16);color:inherit;font:inherit;font-weight:700;border-radius:999px;padding:2px 9px;cursor:pointer}
.cu-hero-mat:hover{background:rgba(255,255,255,.28)}
.cu-matn{white-space:nowrap}
.cu-matgo {
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  margin:4px 0 2px;
  padding:9px 12px;
  border:1px dashed color-mix(in srgb,var(--accent) 55%,var(--line));
  border-radius:12px;
  background:color-mix(in srgb,var(--accent) 7%,var(--surface));
  color:var(--ink);
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.cum{display:grid;gap:14px}
.cum-head{display:flex;align-items:center;gap:14px}
.cum-mine{--p:0;flex:none;width:64px;height:64px;border-radius:50%;display:grid;place-content:center;text-align:center;background:radial-gradient(closest-side,var(--surface) 78%,transparent 80% 100%),conic-gradient(var(--accent) calc(var(--p)*1%),var(--surface-2) 0)}
.cum-folders{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.cum-fold {
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:auto auto;
  column-gap:10px;
  align-items:center;
  text-align:left;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface);
  color:var(--ink);
  font:inherit;
  cursor:pointer;
  overflow:hidden;
  transition:transform .12s,border-color .12s;
}
.cum-fold .cum-fic{grid-row:1/3}
.cum-fic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--surface-2);color:var(--muted);flex:none}
.cum-fbar{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--surface-2)}
.cum-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cum-bar .rep-search{flex:1 1 240px;max-width:420px}
.cum-bar .cu-res-chips{margin:0}
.cum-list{display:grid;gap:12px}
.cum-f{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;margin-bottom:6px;min-width:0}
.cum-f.used .cum-fi{box-shadow:inset 0 0 0 2px color-mix(in srgb,#10b981 55%,transparent)}
.cum-fi{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none;background:var(--surface-2);color:var(--muted)}
.cum-fi.t-audio{background:color-mix(in srgb,#10b981 15%,var(--surface));color:#10b981}
.cum-fi.t-pdf{background:color-mix(in srgb,#ef4444 13%,var(--surface));color:#ef4444}
.cum-fi.t-imagen{background:color-mix(in srgb,#8b5cf6 14%,var(--surface));color:#8b5cf6}
.cum-ft{flex:1;min-width:0;display:grid}
.cum-ok{color:#10b981;font-weight:700}
.cum-avs{display:inline-flex;align-items:center;flex:none}
.cum-avs .coll-av{width:22px!important;height:22px!important;margin-left:-6px;border:2px solid var(--surface);border-radius:50%;overflow:hidden}
.cum-avs .coll-av:first-child{margin-left:0}
.cuw-h .cum-avs{margin-left:auto}
.cum-voz{flex:none}
.cum-player{position:sticky;top:calc(var(--tb-h,56px) + 6px);z-index:5;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:14px;background:#14121f;color:#fff;box-shadow:0 6px 20px rgba(0,0,0,.18)}
.cum-player[hidden]{display:none}
.cum-pp{width:38px;height:38px;border-radius:50%;border:0;background:var(--accent);color:#fff;display:grid;place-items:center;cursor:pointer;flex:none}
.cum-pm{flex:1;min-width:0;display:grid;gap:2px}
.cum-seek{display:flex;align-items:center;gap:8px;font-size:11px;opacity:.85}
.cum-player .ico-btn{color:inherit}
.cum-pbar{display:block;height:3px;border-radius:2px;background:var(--surface-2);margin-top:3px;grid-column:1/-1}
.cum-who .cuw-card{flex-wrap:wrap}
.cum-who .cuw-card .t{flex:1;min-width:0}
@media (max-width:640px) {
.cum-folders{grid-template-columns:repeat(2,minmax(0,1fr))}
.cum-fold{padding:9px 10px;column-gap:8px}
.cum-fic{width:32px;height:32px}
.cum-mine{width:54px;height:54px}
.cum-player{top:6px}
.cum-avs{display:none}
}
.cu-ma-acts{display:flex;gap:6px;flex-wrap:wrap}
dialog.cu-ma-pick{width:min(560px,94vw);border:0;border-radius:16px;padding:0;background:var(--surface);color:var(--ink)}
dialog.cu-ma-pick::backdrop{background:rgba(0,0,0,.45)}
.cu-ma-pick .mh{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line)}
.cu-ma-pick .mb{padding:10px 14px 14px;max-height:70vh;overflow:auto}
.cu-ma-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
@media (max-width:640px) {
.cu-tab-lg{display:none}
}
.cu-lvs{display:inline-flex;flex-wrap:wrap;gap:4px}
.cue-lvs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}
.cue-lv{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);cursor:pointer;font-weight:600;font-size:13px}
.cue-lv input{margin:0;accent-color:var(--accent)}
/* 7.118 · Base de maestros (Cursos, Puentes y Composición) */
.mae-av{position:relative;display:inline-grid;place-items:center;flex:none;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 70%,#000),var(--blue,#3b82f6));color:#fff;font-weight:800;vertical-align:middle}
.mae-pline{display:flex;gap:10px;align-items:flex-start;margin:6px 0 2px;padding:8px 10px;border-radius:12px;background:var(--surface-2)}
.mae-curl{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px;font-size:12px;color:var(--muted)}
.mae-curb{border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.mae-curb+.mae-curb::before{content:'· ';color:var(--muted);text-decoration:none;display:inline-block;margin-right:3px}
/* Cursos → Nuestros maestros */
.mae-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.mae-card{position:relative;display:grid;grid-template-columns:96px 1fr;gap:12px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--surface);min-width:0}
.mae-ph{width:96px;height:96px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 70%,#000),var(--blue,#3b82f6));color:#fff;font-weight:800;font-size:30px;box-shadow:0 4px 14px rgba(0,0,0,.14)}
.mae-tx{min-width:0;display:grid;align-content:start;gap:3px}
.mae-cur{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.mae-pu{margin-top:6px;justify-self:start;border-color:color-mix(in srgb,var(--accent) 45%,var(--line))!important;color:var(--accent)!important}
.mae-ed{position:absolute;top:8px;right:8px}
@media (max-width:640px) {
.mae-grid{grid-template-columns:minmax(0,1fr)}
.mae-card{grid-template-columns:72px 1fr}
.mae-ph{width:72px;height:72px;font-size:24px}
}
/* administrar la base */
dialog.mae-dlg{width:min(620px,96vw);max-height:92dvh;border:0;border-radius:18px;padding:0;background:var(--surface);color:var(--ink);display:none;flex-direction:column}
dialog.mae-dlg[open]{display:flex}
dialog.mae-dlg::backdrop{background:rgba(0,0,0,.45)}
.mae-dlg .mh{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line)}
.mae-dlg .mb{padding:12px 14px 14px;overflow:auto;flex:1}
.mae-dlg .mf{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid var(--line)}
.mae-ltop{display:flex;gap:8px;align-items:center;margin-bottom:10px}
.mae-ltop .rep-search{flex:1}
.mae-list{display:grid;gap:6px}
.mae-row{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:inherit;font:inherit;text-align:left;cursor:pointer}
.mae-row:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}
.mae-row[hidden]{display:none}
.mae-rt{flex:1;min-width:0;display:grid}
.mae-nof{font-style:normal;font-size:11px;color:#b45309;background:color-mix(in srgb,#f59e0b 16%,var(--surface));padding:2px 8px;border-radius:999px;flex:none}
.mae-fph{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.mae-bigph{width:120px;height:120px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--surface-2);border:2px dashed var(--line);cursor:pointer;flex:none}
.mae-facts{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.mae-cpick{display:flex;flex-wrap:wrap;gap:6px;align-items:center;width:100%}
.mae-pus{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}
/* editor del curso */
.cu-ma-edh{display:flex;align-items:center;gap:8px;justify-content:space-between;margin-bottom:4px}
.cu-ma-db{display:block;font-size:11.5px;color:#15803d;margin:2px 0 4px}
.cu-ma-db.new{color:var(--muted)}
.cu-ma-db .linkbtn{border:0;background:none;padding:0;font:inherit;color:var(--accent);font-weight:700;cursor:pointer;text-decoration:underline}
.mae-pus .cue-lv{text-transform:none;letter-spacing:0;font-size:12.5px;color:var(--ink);font-weight:600}
/* 7.120.1: semblanza completa ("Ver más…") y nota de que es la misma en todos los cursos */
.bio-more{border:0;background:none;padding:0;margin:3px 0 0;font:inherit;font-size:12px;font-weight:700;color:var(--accent);cursor:pointer;justify-self:start;text-align:left}
.bio-more:hover{text-decoration:underline}
.cu-ma-h.bio-open{align-items:flex-start;max-width:760px}
.cu-ma-bnote{display:block;font-size:11.5px;color:var(--muted);margin:2px 0 4px;line-height:1.35}
.cu-ma-cnt{display:block;text-align:right;font-size:11px;color:var(--muted);margin-top:2px}
/* --- Cursos: reproducciones completas --- */
.cu-plays{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--muted);margin-left:8px}
.cu-fin{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--muted)}
.cuw-plays{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:baseline;padding:4px 2px 8px}
.cuw-me{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:10px;background:var(--surface-2);font-size:13px}
.cuw-adm{margin:0 0 6px;font-size:11px}
/* --- Ruta de estudio (material complementario) --- */
.cur-hero{display:flex;gap:16px;align-items:center;padding:16px;border-radius:20px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 16%,var(--surface)),var(--surface));border:1px solid var(--line);margin-bottom:12px}
.cur-ring{--p:0;flex:none;width:86px;height:86px;border-radius:50%;display:grid;place-content:center;text-align:center;background:radial-gradient(closest-side,var(--surface) 76%,transparent 78% 100%),conic-gradient(var(--accent) calc(var(--p)*1%),var(--surface-2) 0)}
.cur-htx{flex:1;min-width:0}
.cur-msg{margin:4px 0 10px;font-size:14px}
.cur-mile{position:relative;height:8px;border-radius:99px;background:var(--surface-2);margin:6px 8px 22px 0}
.cur-mile span i{display:block;width:16px;height:16px;border-radius:50%;background:var(--surface);border:3px solid var(--line);margin:0 auto}
.cur-mile span.on i{border-color:var(--accent);background:var(--accent)}
.cur-chips{display:flex;flex-wrap:wrap;gap:6px}
.cur-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:99px;background:var(--surface);border:1px solid var(--line);font-size:12px;font-weight:600}
.cur-chip.fire{color:#ea580c;border-color:color-mix(in srgb,#ea580c 40%,var(--line))}
.cur-next{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:18px;background:var(--surface);border:2px solid var(--accent);box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 18%,transparent);margin-bottom:12px}
.cur-nico{flex:none;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--accent);color:#fff}
.cur-next.done .cur-nico{background:#10b981}
.cur-next>div{flex:1;min-width:0}
.cur-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.cur-edhint{margin:-4px 0 10px}
.cur-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
.cur-side{display:grid;gap:12px;position:sticky;top:calc(var(--tb-h,56px) + 56px)}
.cur-card{padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.cur-pg{margin-top:8px}
.cur-ladder{display:flex;align-items:flex-end;gap:6px;height:96px;padding:0 2px}
.cur-step.used i{background:color-mix(in srgb,#10b981 45%,var(--surface-2))}
.cur-step.on i{background:var(--accent)}
.cur-step:hover i{background:color-mix(in srgb,var(--accent) 45%,var(--surface-2))}
.cur-bts{display:flex;flex-wrap:wrap;gap:6px}
.cur-bts .cum-f.used{border-color:color-mix(in srgb,#10b981 55%,var(--line))}
.cur-tl{list-style:none;margin:0;padding:0;position:relative}
.cur-tl::before{content:"";position:absolute;left:17px;top:18px;bottom:18px;width:3px;border-radius:3px;background:var(--line)}
.cur-st{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;margin-bottom:10px}
.cur-node{position:relative;z-index:1;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:14px;background:var(--surface);border:3px solid var(--line);color:var(--muted)}
.cur-st.done .cur-node{background:#10b981;border-color:#10b981;color:#fff}
.cur-st.now .cur-node{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 22%,transparent);animation:curPulse 2s infinite}
@keyframes curPulse{50%{box-shadow:0 0 0 10px color-mix(in srgb,var(--accent) 6%,transparent)}}
.cur-st.ini .cur-node,.cur-st.fin .cur-node,.cur-st.extra .cur-node{border-radius:12px}
.cur-body{min-width:0;padding:8px 12px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.cur-st.now .cur-body{border-color:var(--accent)}
.cur-st.solo .cur-body{padding:6px 12px}
.cur-st.done .cur-body{background:color-mix(in srgb,#10b981 5%,var(--surface))}
.cur-sh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cur-sh small em{font-style:normal;font-weight:800;color:var(--accent)}
.cur-vbtn{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:var(--surface-2);border-radius:99px;padding:4px 10px;font:inherit;font-size:12px;font-weight:700;cursor:pointer;color:var(--ink)}
.cur-vbtn.seen{color:#059669;background:transparent}
.cur-st.now .cur-vbtn:not(.seen){background:var(--accent);border-color:var(--accent);color:#fff}
.cur-its{margin-top:8px;display:grid;gap:6px}
.cur-ck{flex:none;width:20px;height:20px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;color:#fff}
.cur-it.used{background:color-mix(in srgb,#10b981 5%,var(--surface))}
.cur-lsel{max-width:180px;font-size:12px;padding:3px 6px;flex:none}
.cur-ladder .cur-lsel{display:none}
.cur-badge{display:inline-flex;align-items:center;gap:2px;font-size:11px;font-weight:700;color:var(--muted);padding:1px 6px;border-radius:99px;background:var(--surface-2);margin-left:4px;flex:none}
.cur-les{margin:10px 0;padding:12px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--accent) 5%,var(--surface));display:grid;gap:6px}
.cur-lit{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:10px;background:var(--surface);border:1px solid var(--line);cursor:pointer;min-width:0}
.cur-lit>span:last-child{min-width:0}
.cur-les .btn{justify-self:start}
@media (max-width:980px) {
.cur-grid{grid-template-columns:minmax(0,1fr)}
.cur-side{position:static}
}
@media (max-width:640px) {
.cur-hero{flex-direction:column;align-items:stretch;text-align:left;padding:14px}
.cur-ring{width:72px;height:72px}
.cur-hero{display:grid;grid-template-columns:72px minmax(0,1fr)}
.cur-next{flex-wrap:wrap}
.cur-next .btn{width:100%;justify-content:center}
.cur-st{grid-template-columns:30px minmax(0,1fr);gap:8px}
.cur-node{width:30px;height:30px;font-size:12px;border-width:2px}
.cur-tl::before{left:13px}
.cur-lsel{max-width:120px}
}
/* 7.138 · Escuchar el curso: mini reproductor */
.cu-hero-esc{margin-left:8px}
.esc-bar {
  position:fixed;
  left:50%;
  transform:translateX(-50%);
  bottom:calc(14px + env(safe-area-inset-bottom));
  width:min(760px,calc(100% - 24px));
  z-index:950;
  background:var(--surface,#fff);
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:0 10px 30px rgba(0,0,0,.18);
  overflow:hidden;
}
.esc-prog{height:5px;background:var(--line);cursor:pointer}
.esc-prog i{display:block;height:100%;background:#7C3AED;width:0}
.esc-in{display:flex;align-items:center;gap:10px;padding:8px 10px}
.esc-cov{flex:0 0 44px;height:44px;border-radius:10px;border:0;background:#ede9fe center/cover no-repeat;color:#6d28d9;display:grid;place-items:center;cursor:pointer;padding:0}
.esc-tx{flex:1;min-width:0;display:flex;flex-direction:column;cursor:pointer}
.esc-tx b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
.esc-tx small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}
.esc-ctl{display:flex;align-items:center;gap:2px}
.esc-ctl button{border:0;background:transparent;color:var(--ink);width:36px;height:36px;border-radius:50%;display:grid;place-items:center;cursor:pointer;font:inherit;font-size:12px;font-weight:700}
.esc-ctl button:disabled{opacity:.35;cursor:default}
.esc-ctl button:hover:not(:disabled){background:var(--surface-2)}
.esc-ctl .ico{width:18px;height:18px}
.esc-ctl .esc-pp{width:42px;height:42px;background:#7C3AED;color:#fff}
.esc-ctl .esc-pp:hover{background:#6d28d9!important}
.esc-ctl .esc-rate{width:auto;padding:0 8px;border-radius:999px;border:1px solid var(--line)}
.esc-t{font-size:12px;color:var(--muted);min-width:86px;text-align:right;padding:0 4px}
.esc-x{color:var(--muted)!important}
.esc-list{display:grid;gap:6px;max-height:60vh;overflow:auto}
.esc-li{display:flex;align-items:center;gap:10px;text-align:left;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:10px;padding:8px 10px;font:inherit;cursor:pointer}
.esc-li.on{border-color:#7C3AED;background:#f5f3ff}
:root[data-theme="dark"] .esc-li.on{background:#2e1f5e}
.esc-n{flex:0 0 26px;height:26px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;font-size:12px;font-weight:700}
.esc-li.on .esc-n{background:#7C3AED;color:#fff}
.esc-lt{flex:1}
.esc-li small{color:var(--muted)}
@media (max-width:760px) {
.esc-bar{bottom:calc(76px + env(safe-area-inset-bottom))}
.esc-t,.esc-s:not(.esc-rate){display:none!important}
.esc-in{gap:8px}
}

/* ===== Estilos: repertorio ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
#sf-chart{width:100%;font:13px/1.5 ui-monospace,Menlo,Consolas,monospace;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:8px;padding:8px;resize:vertical}
dialog.chart-dlg{max-width:900px;width:min(96vw,900px)}
.cp-br{height:.9em}
dialog.chart-dlg.stage,dialog.chart-dlg:fullscreen{max-width:100vw;width:100vw;height:100vh;max-height:100vh;border-radius:0}
dialog.chart-dlg:fullscreen .chart-v{max-height:100vh}
.top-row.me{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
span.flagb{cursor:default}
#sf-lyrics{width:100%;font:inherit;box-sizing:border-box}
.viewer-txt.lyrics{font-size:17px;line-height:1.6;max-height:70vh;overflow:auto;padding:12px 16px;white-space:pre-wrap}
.top-row .rank{font-size:16px;background:transparent;width:30px;height:auto}
.top-row .vbar{margin-top:5px;height:5px}
.ly-tb .sep{width:1px;height:20px;background:var(--line);margin:0 2px}
.ly-ed{min-height:160px;max-height:45vh;overflow:auto;border:1px solid var(--line);border-radius:0 0 8px 8px;background:var(--bg);color:var(--text);padding:10px;line-height:1.6;font-size:15px;outline:none;white-space:pre-wrap}
.ly-ed:focus{border-color:var(--accent)}
.ly-ed:empty::before{content:attr(data-ph);color:var(--faint)}
.viewer-txt.lyrics-html{white-space:pre-wrap;font-family:inherit}
.sres{display:flex;gap:10px;align-items:center;width:100%;text-align:left;border:1px solid var(--line);background:var(--surface);color:inherit;font:inherit;border-radius:12px;padding:10px 12px;cursor:pointer}
.sres:hover{border-color:var(--accent)}
.tagbar .tag[aria-pressed="true"]::before{content:'✓ ';font-weight:900}
.rp-tbl td.ic .ico-btn[disabled]{opacity:.18}
.rp-tbl .col-name{min-width:240px;max-width:340px}
.rp-tbl .c-artist{min-width:150px;max-width:230px}
.rp-tbl .c-dur{font-variant-numeric:tabular-nums;color:var(--muted)}
.rp-tbl .c-tags{min-width:110px}
.rp-tbl tr:hover .rp-cv .rp-play{opacity:1}
.rep-dense .rp-nm{min-height:28px}
.rp-cat{font-weight:800}
@keyframes rpIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.rc-row{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:9px;background:var(--surface-2);border:1px solid transparent;transition:background .15s}
.rc-row.over{border-color:var(--accent)}
.rc-row.drag{opacity:.35}
.rc-ic{display:inline-flex;width:18px;justify-content:center;color:var(--muted)}
.rc-grip{cursor:grab;color:var(--muted);display:inline-flex}
.rc-mv{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:10px;padding:3px 4px;border-radius:6px}
.rc-mv[disabled]{opacity:.2;cursor:default}
@media (max-width:640px) {
.rp-tbl .col-name{min-width:190px}
}
.ly-hero{display:flex;gap:14px;align-items:center;padding:12px 14px;border-radius:14px;margin-bottom:10px;background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 18%,transparent),transparent 70%);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}
.ly-ring {
  --p:0;
  flex:none;
  width:64px;
  height:64px;
  border-radius:50%;
  display:grid;
  place-items:center;
  align-content:center;
  background:radial-gradient(closest-side,var(--surface) 78%,transparent 80% 100%),conic-gradient(var(--accent) calc(var(--p)*1%),color-mix(in srgb,var(--ink) 12%,transparent) 0);
  transition:background .4s;
}
.ly-list{display:flex;flex-direction:column;gap:6px;max-height:min(58vh,560px);overflow:auto;padding-right:2px}
.ly-row{display:grid;grid-template-columns:40px minmax(0,1fr) minmax(0,1.5fr);gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);transition:border-color .3s,background .3s}
.ly-row.st-ok{border-color:color-mix(in srgb,#22c55e 55%,transparent);background:color-mix(in srgb,#22c55e 8%,var(--surface-2))}
.ly-row.st-no{border-color:color-mix(in srgb,#f59e0b 55%,transparent)}
.ly-row.st-run{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.ly-cv{width:40px;height:40px;border-radius:8px;overflow:hidden;display:grid;place-items:center;background:var(--surface);color:var(--muted)}
.ly-ok{display:flex;flex-direction:column;color:#16a34a;font-weight:700;margin-right:auto}
.ly-row{flex:none}
.ly-run{display:flex;align-items:center;gap:8px;color:var(--accent);font-weight:600}
.ly-spin{width:14px;height:14px;border-radius:50%;border:2px solid color-mix(in srgb,var(--accent) 30%,transparent);border-top-color:var(--accent);animation:lySpin .8s linear infinite}
@keyframes lySpin{to{transform:rotate(360deg)}}
.ly-no{display:flex;flex-direction:column;gap:5px;width:100%}
.ly-cand{text-align:left;border:1px dashed color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--ink);border-radius:10px;padding:5px 9px;font-size:12.5px;cursor:pointer}
.ly-cand:hover{background:color-mix(in srgb,var(--accent) 20%,transparent)}
.ly-link{display:flex;gap:6px}
.ly-pre{flex:none;margin:-2px 0 4px 50px;padding:10px 12px;max-height:220px;overflow:auto;white-space:pre-wrap;font-family:inherit;font-size:13px;line-height:1.45;background:var(--surface);border:1px solid var(--line);border-radius:10px}
@media (max-width:640px) {
.ly-row{grid-template-columns:36px minmax(0,1fr)}
.ly-st{grid-column:1/-1}
.ly-pre{margin-left:0}
.ly-hero{padding:10px}
}
/* 7.74 · carga rápida */
.qu-drop {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  text-align:center;
  padding:20px 16px;
  border:2px dashed color-mix(in srgb,var(--accent) 50%,transparent);
  border-radius:16px;
  cursor:pointer;
  background:radial-gradient(120% 90% at 50% 0,color-mix(in srgb,var(--accent) 14%,transparent),transparent 70%);
  transition:transform .15s,border-color .15s,background .2s;
  margin-bottom:12px;
}
.qu-drop:hover,.qu-drop.over{border-color:var(--accent);transform:scale(1.01);background:radial-gradient(120% 90% at 50% 0,color-mix(in srgb,var(--accent) 26%,transparent),transparent 75%)}
.qu-drop-ic{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 45%,transparent);margin-bottom:4px}
.qu-drop.over .qu-drop-ic{animation:quBob .6s ease-in-out infinite alternate}
@keyframes quBob{to{transform:translateY(-5px)}}
.qu-sum{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0 0 8px}
.qu-g{border:1px solid var(--line);border-radius:14px;margin-bottom:10px;overflow:hidden;background:var(--surface-2)}
.qu-g.nosong{border-color:color-mix(in srgb,#f59e0b 60%,transparent)}
.qu-cv{flex:none;width:38px;height:38px;border-radius:9px;overflow:hidden;display:grid;place-items:center;background:var(--surface);color:var(--muted)}
.qu-songsel{max-width:220px;font-size:12px}
.qu-f{display:grid;grid-template-columns:28px minmax(0,1fr) auto 28px;gap:8px;align-items:center;padding:7px 10px;border-top:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.qu-f:first-of-type{border-top:none}
.qu-ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}
.qu-bar{display:block;height:4px;border-radius:4px;background:color-mix(in srgb,var(--ink) 10%,transparent);margin-top:4px;overflow:hidden}
.qu-cats{display:flex;flex-wrap:wrap;gap:3px;justify-content:flex-end;max-width:430px}
.qu-done{color:#16a34a;font-weight:700;font-size:12.5px;display:flex;gap:4px;align-items:center}
.qu-f.st-ok{background:color-mix(in srgb,#22c55e 7%,transparent)}
.qu-f.st-up .qu-ic{animation:quBob .5s ease-in-out infinite alternate}
@media (max-width:720px) {
.qu-f{grid-template-columns:28px minmax(0,1fr) 28px}
.qu-cats{grid-column:1/-1;justify-content:flex-start;max-width:none;order:3}
.qu-songsel{max-width:100%;width:100%;box-sizing:border-box;flex-basis:100%}
}
.qu-drop.mini .qu-drop-ic{width:36px;height:36px;margin:0;flex:none}
.rp-more{padding:14px;text-align:center;color:var(--muted);font-size:13px}
.lyr-sum{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin:4px 2px 12px;font-size:14px}
.lyr-q{font-weight:800;color:var(--accent)}
.lyr-res{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
@media (max-width:640px) {
.lyr-res{grid-template-columns:minmax(0,1fr)}
}
.lyr-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:10px;min-width:0}
.lyr-t{flex:1;min-width:0;display:flex;flex-direction:column}
.lyr-act{display:flex;align-items:center;gap:2px;flex:0 0 auto}
.lyr-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.lyr-sec{flex:0 0 auto;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:1px 6px;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lyr-ln{flex:1;min-width:0}
.lyr-n{flex:0 0 auto;font-size:11px;font-weight:700;color:var(--muted)}
.lyr-more{color:var(--muted);font-size:12.5px!important}
.lyr-tonly{margin:0}
.lyr-open{align-self:flex-start}
mark.lyr-hit{background:color-mix(in srgb,var(--accent) 26%,transparent);color:inherit;border-radius:3px;padding:0 1px;box-shadow:0 1px 0 color-mix(in srgb,var(--accent) 70%,transparent)}
mark.lyr-hit.first{animation:lyrPulse 1.6s ease-out 1}
@keyframes lyrPulse{0%{background:color-mix(in srgb,var(--accent) 70%,transparent)}100%{background:color-mix(in srgb,var(--accent) 26%,transparent)}}
.lyr-empty{display:flex;gap:14px;align-items:flex-start;background:var(--surface);border:1px dashed var(--line);border-radius:14px;padding:18px;color:var(--ink)}
/* ===== 7.139.4 · App de Android y Compartir ===== */
.fi-share svg{width:15px;height:15px}

/* ===== Estilos: composicion ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.chart-b{overflow:auto;padding:18px 22px 40vh;line-height:1.35;font-family:ui-monospace,Menlo,Consolas,"DejaVu Sans Mono",monospace;white-space:pre-wrap}
.cp-wrap{display:grid;gap:14px}
.cp-hero{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:20px;border-radius:20px;color:#fff;background:radial-gradient(120% 140% at 0% 0%,#8E44AD 0%,#5b21b6 45%,#1e1b4b 100%);box-shadow:0 10px 30px rgba(76,29,149,.25)}
.cp-hl{display:flex;gap:14px;align-items:center;min-width:0;flex:1 1 320px}
.cp-logo{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:rgba(255,255,255,.16);flex:none}
.cp-hs{display:flex;gap:16px;font-size:13px;opacity:.95}
.cp-insp{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:14px 16px;border-radius:16px;border:1px dashed color-mix(in srgb,var(--cp) 45%,var(--line));background:color-mix(in srgb,var(--cp) 6%,var(--surface))}
.cp-k{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--cp)}
.cp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.cp-card{display:flex;gap:14px;align-items:center;text-align:left;padding:14px;border-radius:16px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;box-shadow:var(--shadow);transition:transform .15s,border-color .15s;font:inherit;border-left:4px solid var(--c)}
.cp-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--c) 50%,var(--line))}
.cp-cb{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.cp-tm{color:var(--muted);font-size:13.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cp-chips{display:flex;gap:5px;flex-wrap:wrap;margin:2px 0}
.cp-ring{--p:0;width:54px;height:54px;border-radius:50%;flex:none;display:grid;place-items:center;background:conic-gradient(var(--c) calc(var(--p)*1%),var(--surface-2) 0)}
.cp-empty{display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center;padding:36px 16px;border-radius:16px;border:1px dashed var(--line);color:var(--muted)}
/* editor */
.cp-ed{display:grid;gap:10px}
.cp-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;position:sticky;top:var(--cptop,56px);z-index:6;background:var(--bg);padding:8px 0}
.cp-title{flex:1 1 260px;min-width:0;font:800 22px/1.2 var(--display);border:1px solid transparent;background:transparent;color:var(--ink);padding:6px 8px;border-radius:10px}
.cp-title:hover,.cp-title:focus{border-color:var(--line);background:var(--surface);outline:none}
.cp-est{border-color:var(--c);color:var(--c);font-weight:800}
.cp-save{font-size:12.5px;font-weight:700;color:var(--muted)}
.cp-save.dirty,.cp-save.busy{color:var(--gold,#b45309)}
.cp-save.bad{color:var(--danger,#dc2626)}
.cp-aqui{display:flex;gap:4px;align-items:center}
@keyframes cpAqui{50%{opacity:.6}}
.cp-who{margin-top:-6px}
.cp-cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}
.cp-main{display:grid;gap:12px;min-width:0}
.cp-side{position:sticky;top:calc(var(--cptop,56px) + 62px);display:flex;flex-direction:column;gap:8px;max-height:calc(100dvh - var(--cptop,56px) - 80px);min-width:0}
.cp-sbody{flex:1 1 auto;min-height:0;overflow:auto;border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:12px;min-height:220px}
.cp-mtabs{display:none}
.cp-l{display:block;font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:12px 0 4px}
.cp-vs{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.cp-v{display:inline-flex;gap:4px;align-items:center;padding:4px 6px 4px 10px;border-radius:999px;background:color-mix(in srgb,var(--cp) 12%,transparent)}
#cp-vadd{flex:1;min-width:160px;border:1px dashed var(--line);border-radius:999px;background:transparent;color:var(--ink);padding:6px 12px;font:inherit;font-size:13.5px}
.cp-f4{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}
.cp-sec{border:1px solid var(--line);border-left:5px solid var(--c);border-radius:16px;background:var(--surface);padding:10px 12px;box-shadow:var(--shadow);transition:box-shadow .15s}
.cp-sec.foc{box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 40%,transparent),var(--shadow)}
.cp-sec header select{border:0;background:color-mix(in srgb,var(--c) 14%,transparent);color:var(--c);font:800 12px/1 var(--body);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:6px 10px}
.cp-sec header input{flex:1;min-width:90px;border:0;background:transparent;color:var(--ink);font:700 15px/1.2 var(--body);padding:4px}
.cp-sec header input:focus{outline:none;background:var(--bg);border-radius:8px}
.cp-scheme{font:800 12px/1 ui-monospace,monospace;letter-spacing:.15em;color:var(--muted)}
.cp-stools{display:flex;gap:4px;margin-left:auto}
.cp-stools .ib{width:32px;height:32px;border-radius:9px;border:1px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer;font-size:13px;display:grid;place-items:center}
.cp-stools .ib:disabled{opacity:.35}
.cp-tx{display:flex;border:1px solid var(--line);border-radius:12px;background:var(--bg);overflow:hidden}
.cp-tx textarea:focus{outline:none}
.cp-gut{flex:none;width:46px;padding:8px 0;border-right:1px solid var(--line);background:var(--surface-2);user-select:none}
.cp-gut .g{height:26px;display:flex;align-items:center;justify-content:flex-end;gap:4px;padding-right:6px;font:700 11.5px/1 ui-monospace,monospace;color:var(--muted)}
.cp-chordbar{display:none;gap:4px;flex-wrap:wrap;align-items:center;margin-top:6px}
.cp-sec.foc .cp-chordbar{display:flex}
.cp-snota{width:100%;margin-top:6px;border:0;border-bottom:1px dashed var(--line);background:transparent;color:var(--muted);font:italic 13.5px/1.4 var(--body);padding:4px 2px}
.cp-snota:focus{outline:none;color:var(--ink)}
.cp-add .cp-plant{display:flex;gap:8px;flex-wrap:wrap}
.cp-addb{border-color:color-mix(in srgb,var(--c) 45%,var(--line))!important;color:var(--c)!important}
.cp-estr{display:flex;gap:6px;flex-wrap:wrap}
.cp-ep{display:inline-flex;align-items:center;gap:2px;padding:4px 4px 4px 10px;border-radius:999px;background:color-mix(in srgb,var(--c) 14%,transparent);color:var(--c);font-weight:800;font-size:13px}
.cp-legend{margin:0}
.cp-ed.ro .cp-tx textarea{cursor:default}
/* panel lateral */
.cp-rk{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin:10px 0 4px;color:var(--cp)}
.cp-ws{display:flex;gap:5px;flex-wrap:wrap}
.cp-w{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:999px;padding:4px 10px;font:600 13.5px/1.2 var(--body);cursor:pointer}
.cp-w:hover{border-color:var(--cp);color:var(--cp)}
.cp-recbox{display:flex;gap:12px;align-items:center;padding:12px;border-radius:14px;background:color-mix(in srgb,var(--cp2) 7%,var(--surface-2))}
.cp-recb{width:56px;height:56px;border-radius:50%;border:0;background:var(--cp2);color:#fff;font-size:22px;cursor:pointer;flex:none;box-shadow:0 4px 14px color-mix(in srgb,var(--cp2) 40%,transparent)}
.cp-recbox.on .cp-recb{animation:cpRec 1.2s infinite}
@keyframes cpRec{50%{box-shadow:0 0 0 10px color-mix(in srgb,var(--cp2) 18%,transparent)}}
.cp-lv{height:6px;border-radius:6px;background:var(--surface);overflow:hidden;margin-top:6px}
.cp-memo{border:1px solid var(--line);border-radius:12px;padding:8px 10px;margin-top:8px;display:grid;gap:6px}
.cp-ia .cp-iabtns{display:grid;gap:6px}
.cp-iab{display:flex;flex-direction:column;gap:2px;text-align:left;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:12px;padding:8px 10px;cursor:pointer;font:inherit}
.cp-iab:hover:not(:disabled){border-color:var(--cp)}
.cp-iab:disabled{opacity:.5}
.cp-iaoff{padding:14px;border-radius:14px;background:color-mix(in srgb,var(--cp) 8%,var(--surface-2))}
.cp-iah{display:flex;justify-content:space-between;align-items:center;margin:12px 0 6px}
.cp-iao{border:1px solid color-mix(in srgb,var(--cp) 30%,var(--line));border-radius:12px;padding:10px;margin-top:8px;display:grid;gap:6px;background:color-mix(in srgb,var(--cp) 4%,var(--surface))}
.cp-iao pre{margin:0;white-space:pre-wrap;font:600 14.5px/1.5 var(--body)}
.cp-think{animation:cpAqui 1.2s infinite}
.cp-com{border-bottom:1px solid var(--line);padding:8px 0;position:relative}
.cp-cdel{position:absolute;right:0;top:6px;border:0;background:transparent;color:var(--muted);cursor:pointer}
.cp-coms textarea{margin:10px 0 6px}
.cp-sh .ck{display:flex;gap:8px;align-items:flex-start;padding:8px 0}
.cp-pl{display:grid;gap:4px;max-height:44vh;overflow:auto;margin-top:6px}
.cp-p{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:10px;cursor:pointer}
.cp-p:hover{background:var(--surface-2)}
.cp-hl2{display:grid;gap:6px;max-height:40vh;overflow:auto}
.cp-hi{display:flex;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:12px}
.cp-vista{max-height:60vh;overflow:auto;padding:8px 4px}
@media (max-width:980px) {
.cp-cols{grid-template-columns:minmax(0,1fr)}
.cp-mtabs{display:flex;position:sticky;top:calc(var(--cptop,56px) + 52px);z-index:5;background:var(--bg);padding:4px 0}
.cp-side{position:static;max-height:none}
.cp-stabs{display:none}
.cp-cols[data-mtab="letra"] .cp-side{display:none}
.cp-cols:not([data-mtab="letra"]) .cp-main{display:none}
.cp-f4{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:640px) {
.cp-hero{padding:16px}
.cp-hs{display:none}
.cp-grid{grid-template-columns:minmax(0,1fr)}
.cp-bar{gap:6px}
.cp-title{font-size:19px;flex-basis:100%;order:-1}
.cp-f4{grid-template-columns:repeat(2,minmax(0,1fr))}
.cp-stools .ib{width:30px;height:30px}
.cp-mtabs{top:calc(var(--cptop,56px) + 96px)}
}
.cp-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.cp-row.sb{justify-content:space-between}
.cp-hero>.cp-row{flex:none}
@media (max-width:640px) {
.cp-bar{position:static}
.cp-mtabs{top:var(--cptop,56px)}
}
/* 7.115 · Composición: música y acordes (detector, armonía, batería) */
.cpa{display:flex;flex-direction:column;gap:10px}
.cpa-mus{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.cpa-bpm{display:flex;gap:4px}
.cpa-acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cpa-det{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.cpa-det select{max-width:220px}
.cpa-ana{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--surface-2);display:flex;flex-direction:column;gap:8px}
.cpa-res{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:flex-end}
.cpa-roll{width:100%;height:90px;background:#0b0d13;border-radius:8px}
.cpa-rb{stroke:#ffffff30;stroke-width:1}
.cpa-rn{fill:#FFD54A}
.cpa-harm{display:flex;flex-direction:column;gap:6px}
.cpa-h{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.cpa-chips{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center}
.cpa-bar{display:inline-flex;gap:2px;padding:2px;border-radius:8px;border:1px solid var(--line);font-style:normal}
.cpa-sec{margin:6px 0 4px;padding:8px;border-radius:10px;background:color-mix(in srgb,var(--c,#64748b) 6%,var(--surface));border:1px dashed color-mix(in srgb,var(--c,#64748b) 35%,var(--line))}
.cpa-sh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cpa-l{font-size:12px;font-weight:800;color:var(--muted);display:inline-flex;gap:4px;align-items:center}
.cpa-in{width:100%;margin-top:6px;font:inherit;font-size:13px;padding:6px 8px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.cpa-props{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.cpa-p{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:7px 9px;border-radius:10px;border:1px solid var(--line);background:var(--surface)}
.cpa-p.mel{border-color:#F59E0B;background:color-mix(in srgb,#F59E0B 8%,var(--surface))}
/* 7.115.1: rearmonizar como el maestro */
.cpa-rm{display:flex;flex-direction:column;gap:6px;margin-top:8px;padding:8px;border-radius:12px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));background:color-mix(in srgb,var(--accent) 5%,var(--surface))}
.cpa-rmh{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.cpa-rmt{display:flex;flex-wrap:wrap;gap:4px}
.cpa-rmb{font:inherit;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}
.cpa-p.rm{align-items:flex-start}
.cpa-why{margin:2px 0 0;padding-left:16px;font-size:11.5px;line-height:1.35;color:var(--ink);opacity:.88;display:flex;flex-direction:column;gap:2px}
.cpa-bar.chg{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent)}
@media (max-width:560px) {
.cpa-p.rm{flex-direction:column}
.cpa-p.rm>span{align-self:flex-end}
}
.cpa-rmb{display:inline-flex;align-items:center;gap:5px}
.cpa-rmb .mae-av{margin-left:-5px;box-shadow:0 0 0 1.5px var(--surface)}
/* 7.122 · Composición: rango de la melodía y tono por cantante */
.cpa-rango{border:1px solid var(--line);border-radius:12px;padding:8px 10px;margin:8px 0;background:var(--surface)}
.cpa-rg-hd{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.cpa-rg-hd>span{display:grid}
.cpa-rg-hd em{font-style:normal;font-size:11.5px;color:var(--muted)}
.cpa-rg-who summary{cursor:pointer;font-weight:700;font-size:13px;margin-top:6px}
.cpa-rg-who li{display:grid;gap:1px;padding:6px 8px;border-radius:10px;background:var(--surface-2);font-size:12.5px}
.cpa-rg-who li small{color:var(--muted);font-size:11px}
.cpa-rg-who li.ok{box-shadow:inset 3px 0 0 #22c55e}
.cpa-rg-who li.no{box-shadow:inset 3px 0 0 #f59e0b}
.cpa-rg-who li em{font-style:normal;color:#b45309}
/* 7.122.1 · Composición: paleta de acordes por modo */
.cpa-pal{margin-top:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:8px 12px}
.cpa-pal>summary{cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;list-style:none;padding:4px 0}
.cpa-pal>summary::-webkit-details-marker{display:none}
.cpa-pal>summary .hint{font-size:12px}
.cpa-pal-ctl{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.cpa-pal-seg{display:inline-flex;flex-wrap:wrap;gap:4px}
.cpa-pal-why{margin:2px 0 8px}
.cpa-pal-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cpa-pc{display:flex;flex-direction:column;align-items:center;gap:1px;border:1px solid color-mix(in srgb,var(--cc) 55%,var(--line));background:color-mix(in srgb,var(--cc) 14%,var(--surface));color:var(--ink);border-radius:10px;padding:6px 4px;cursor:pointer;min-width:0;transition:transform .12s}
.cpa-pc:hover{transform:translateY(-1px)}
.cpa-pc em{font-style:normal;font-size:11px;color:var(--muted)}
.cpa-pc.added{outline:2px solid var(--accent)}
.cpa-pal-sub{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:10px 0 6px;font-size:13px}
.cpa-pal-foot{margin-top:10px;font-size:13px}
@media (max-width:640px) {
.cpa-pal-row{grid-template-columns:repeat(4,minmax(0,1fr))}
}
/* 7.126 · Composición: generar la canción con nuestras tarjetas (ACE-Step) */
.cp-genbtn{white-space:nowrap}
.cpg{border:1px solid color-mix(in srgb,var(--cp,var(--accent)) 35%,var(--line));background:linear-gradient(160deg,color-mix(in srgb,var(--cp,var(--accent)) 12%,var(--surface)) 0%,var(--surface) 70%);border-radius:16px;padding:14px;margin-bottom:14px}
.cpg-h{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}
.cpg-eq{font-size:12.5px;margin:4px 0 10px}
.cpg-on{color:#16a34a;font-weight:600}
.cpg-off{color:var(--muted)}
.cpg-form{display:flex;flex-direction:column;gap:6px}
.cpg-fund{font-size:13px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--muted)}
.cpg-l{font-size:12.5px;font-weight:600;color:var(--ink);display:flex;flex-direction:column;gap:4px;margin-top:4px}
.cpg-l .hint{font-weight:400}
.cpg-form select.sel,.cpg-form .cp-in{width:100%;min-width:0}
.cpg-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.cpg-seg{display:flex;flex-wrap:wrap;gap:4px}
.cpg-letra{margin:4px 0 2px}
.cpg-go{align-self:flex-start;font-size:15px;padding:9px 18px}
.cpg-left{font-size:12px}
.cpg-lh{font-weight:700;font-size:13px;margin:14px 0 6px}
.cpg-d{border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:8px;background:var(--surface)}
.cpg-d.error{border-color:color-mix(in srgb,#ef4444 45%,var(--line))}
.cpg-dh{display:flex;justify-content:space-between;align-items:flex-start;gap:6px}
.cpg-tags{display:flex;flex-wrap:wrap;gap:4px}
.cpg-tags span{font-size:11.5px;background:var(--surface-2);border-radius:999px;padding:2px 8px}
.cpg-who{font-size:11.5px;margin:4px 0 6px}
.cpg-st{font-size:13px;color:var(--muted)}
.cpg-st.run{color:var(--ink);font-weight:600}
.cpg-st.bad{color:#dc2626}
.cpg-bar{height:6px;border-radius:99px;background:var(--surface-2);overflow:hidden;margin-top:6px}
.cpg-au{display:flex;flex-direction:column;gap:6px;margin:6px 0}
.cpg-au audio{width:100%}
.cpg-vn{font-size:12px;font-weight:600}
.cpg-acts{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.cp-iah2{margin:6px 0 6px;font-size:14px}
details.cp-iaoff>summary{cursor:pointer;list-style:none}
details.cp-iaoff>summary::-webkit-details-marker{display:none}
details.cp-iaoff>summary::after{content:' ▾';color:var(--muted)}
details.cp-iaoff[open]>summary::after{content:' ▴'}
@media (max-width:640px) {
.cp-genbtn{order:-1}
.cpg{padding:12px}
}
/* 7.127 · Composición: etiquetas de sección, paleta para arrastrar y detalles técnicos */
.cp-cols.has-pal{grid-template-columns:172px minmax(0,1fr) 340px}
@media (min-width:981px) and (max-width:1240px) {
.cp-cols.has-pal{grid-template-columns:150px minmax(0,1fr) 300px}
}
.cp-pal{position:sticky;top:calc(var(--cptop,56px) + 62px);display:flex;flex-direction:column;gap:8px;min-width:0;max-height:calc(100dvh - var(--cptop,56px) - 80px);overflow:auto;scrollbar-width:thin;padding:10px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.cp-palh{display:grid;gap:2px}
.cp-palL{display:grid;gap:5px}
.cp-ptag{display:grid;gap:3px}
.cp-pt {
  display:flex;
  align-items:center;
  gap:7px;
  width:100%;
  border:1px solid color-mix(in srgb,var(--c) 38%,var(--line));
  background:color-mix(in srgb,var(--c) 12%,var(--surface));
  color:var(--ink);
  border-radius:10px;
  padding:7px 9px;
  font:800 13px/1.1 var(--body);
  cursor:grab;
  text-align:left;
  user-select:none;
  -webkit-user-select:none;
  transition:transform .12s,box-shadow .12s,background .12s;
}
.cp-pt span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-pt em{font-style:normal;font:800 10.5px/1 var(--body);background:var(--c);color:#fff;border-radius:999px;padding:3px 6px}
.cp-pt:hover{background:color-mix(in srgb,var(--c) 20%,var(--surface));box-shadow:0 3px 10px color-mix(in srgb,var(--c) 22%,transparent);transform:translateY(-1px)}
.cp-pt:active{cursor:grabbing;transform:scale(.98)}
.cp-pnums{display:flex;gap:4px;padding-left:15px}
.cp-pn{flex:1;min-width:0;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:8px;padding:4px 0;font:800 11.5px/1 var(--body);cursor:grab}
.cp-advt{display:flex;gap:9px;align-items:flex-start;text-align:left;border:1px dashed var(--line);background:transparent;color:var(--ink);border-radius:12px;padding:9px;cursor:pointer;margin-top:4px}
.cp-advt .sw{flex:none;width:30px;height:18px;border-radius:999px;background:var(--line);position:relative;margin-top:1px;transition:background .15s}
.cp-advt .sw::after{content:'';position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .15s}
.cp-advt.on .sw{background:var(--cp,var(--accent))}
.cp-advt.on .sw::after{left:14px}
.cp-palw{margin:0;font-size:11px;line-height:1.35;color:var(--muted);background:var(--surface-2);border-radius:10px;padding:7px 8px}
/* encabezado de la sección */
.cp-drag{cursor:grab;color:var(--muted);font-size:17px;line-height:1;padding:2px 2px 2px 0;user-select:none;-webkit-user-select:none}
.cp-drag:hover{color:var(--c)}
.cp-sec header select.cp-nsel{padding:6px 8px;min-width:46px}
.cp-hsp{flex:1}
.cp-sec header input[data-sapodo]{font-weight:600;color:var(--muted)}
.cp-tecb{display:inline-flex;gap:4px;flex-wrap:wrap;cursor:pointer}
.cp-sec.cp-new{animation:cpNew 1.4s ease}
@keyframes cpNew{0%{box-shadow:0 0 0 3px var(--c);transform:scale(1.01)}100%{box-shadow:0 0 0 0 transparent;transform:none}}
.cp-sec.cp-moving{opacity:.45}
/* línea donde cae lo que arrastras */
#cp-secs{position:relative}
#cp-secs.cp-dragging{min-height:60px}
.cp-dropline{position:absolute;left:0;right:0;height:4px;border-radius:4px;background:var(--cp,var(--accent));box-shadow:0 0 0 4px color-mix(in srgb,var(--cp,var(--accent)) 18%,transparent);pointer-events:none;z-index:4}
.cp-dropline::after{content:attr(data-lab);position:absolute;left:50%;top:-11px;transform:translateX(-50%);background:var(--cp,var(--accent));color:#fff;font:800 11px/1 var(--body);padding:5px 9px;border-radius:999px;white-space:nowrap}
/* detalles técnicos */
.cp-tec{margin-top:8px;border:1px solid color-mix(in srgb,var(--c) 25%,var(--line));background:color-mix(in srgb,var(--c) 5%,var(--surface));border-radius:12px;padding:9px 10px;display:grid;gap:8px}
.cp-tech{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.cp-tech span{font-size:11.5px;color:var(--muted)}
.cp-tecg{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.cp-tecg input,.cp-tecg select{width:100%;min-width:0;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:6px 7px;font:600 13px/1.2 var(--body)}
.cp-tecc{display:flex;gap:14px;flex-wrap:wrap}
.cp-tecc .chk{display:flex;gap:6px;align-items:center;font:600 12.5px/1.2 var(--body);cursor:pointer}
.cp-tecn{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:6px 8px;font:500 12.5px/1.3 var(--body)}
@media (max-width:1240px) {
.cp-tecg{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:980px) {
/* celular y tableta: la paleta es una tira arriba de la letra */
.cp-cols.has-pal{grid-template-columns:minmax(0,1fr)}
.cp-cols:not([data-mtab="letra"]) .cp-pal{display:none}
.cp-pal{position:static;max-height:none;overflow:visible;flex-direction:row;align-items:center;gap:6px;padding:6px;border-radius:14px}
.cp-palh,.cp-pnums,.cp-palw{display:none}
.cp-palL{display:flex;gap:6px;overflow-x:auto;flex:1;min-width:0;scrollbar-width:none;padding:2px}
.cp-palL::-webkit-scrollbar{display:none}
.cp-ptag{flex:none}
.cp-pt{width:auto;padding:7px 10px;cursor:pointer}
.cp-advt{margin:0;flex:none;padding:6px 8px;align-items:center}
.cp-tecg{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px) {
.cp-advt::after{content:'Técnico';font:800 11px/1 var(--body)}
}

/* ===== Estilos: biblia ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
dialog.verse-dlg{max-width:520px;width:min(94vw,520px);background:var(--vb,#fff);color:var(--vi,#111);overflow:hidden;color-scheme:light}
dialog.bib-dlg{border:0;border-radius:16px;padding:0;width:min(560px,94vw);background:var(--surface);color:var(--ink);box-shadow:0 20px 60px rgba(0,0,0,.45);z-index:2147483000}
dialog.bib-dlg::backdrop{background:rgba(0,0,0,.45)}
.bib-h{display:flex;align-items:center;gap:8px;padding:14px 16px 6px;font-size:17px}
.bib-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px}
.bib-body{padding:12px 16px}
.bib-t{font-family:Georgia,'Times New Roman',serif;font-size:17px;line-height:1.55;margin:0 0 8px;white-space:pre-wrap}
.bib-c{display:block;color:var(--muted);font-size:11.5px}
.bib-f{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;padding:10px 16px 14px;border-top:1px solid var(--line)}
.bib-prov{display:flex;gap:14px;flex-wrap:wrap}
.bib-list{max-height:300px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:4px}
.bib-vh{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);padding:2px 8px}
.bib-vr:hover{background:var(--surface-2)}
.bib-ext{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.bib-ext.hm{font-family:var(--font-body,inherit);color:#8a90a0}
.bib-dg{display:grid;grid-template-columns:40px 1fr;gap:2px 8px;font-size:12px;padding:4px 0;border-bottom:1px dashed var(--line)}
.bib-dg code{word-break:break-all}
.bib-add{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}
.bib-lock{font-style:normal;font-size:11px;font-weight:700;color:#E4572E}
.bib-sample{margin-top:10px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface-2)}

/* ===== Estilos: propuestas ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.prop-hero::before{content:'';position:absolute;right:-40px;top:-60px;width:220px;height:220px;border-radius:50%;background:color-mix(in srgb,var(--accent) 22%,transparent);filter:blur(10px)}
.badges.sm .badge{padding:1px 6px 1px 4px;font-size:11px}
.vote-btn{background:var(--accent-soft);color:var(--green-ink);border-color:transparent}
.vp-rank{width:22px;text-align:center;font-weight:800;color:var(--muted)}
.ppod .pp .md{font-size:20px;line-height:1}
.ppod .pp.p1 .cv{outline:3px solid #F0B429;outline-offset:2px}
.ppod .pp.p2 .cv{outline:3px solid #C7CDD6;outline-offset:2px}
.ppod .pp.p3 .cv{outline:3px solid #E2A26B;outline-offset:2px}
/* secciones plegables */
.pacc{border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}
.phrow{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:var(--surface)}
.phrow .v{font-weight:800;font-size:13px}
.pmedal{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;border-radius:999px;padding:3px 9px;background:var(--surface-2)}
.pmedal.p1{background:linear-gradient(90deg,#FFD54A,#E0A100);color:#111}
.pmedal.p2{background:linear-gradient(90deg,#EDF0F4,#B4BDC9);color:#111}
.pmedal.p3{background:linear-gradient(90deg,#F0C49A,#C07B45);color:#111}
@media (max-width:640px) {
.prop-hero{padding:14px 14px}
}
.phrow .pwin{margin-right:2px}
.ppod .pp .cv .md{position:absolute;right:-7px;bottom:-7px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:17px;line-height:1;background:var(--surface);box-shadow:0 2px 8px rgba(0,0,0,.4);border:2px solid var(--surface)}
.ppod .pp.p1 .cv{outline:3px solid #F0B429;outline-offset:2px}
.ppod .pp.p2 .cv{outline:3px solid #C7CDD6;outline-offset:2px}
.ppod .pp.p3 .cv{outline:3px solid #E2A26B;outline-offset:2px}
@media (max-width:640px) {
.ppod{gap:7px}
.ppod .pp .cv .md{width:26px;height:26px;font-size:15px;right:-5px;bottom:-5px}
}
.prj-chips{display:flex;flex-wrap:wrap;gap:6px}
.prep-ok{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}
.prep-hint{margin:0 0 8px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px dashed color-mix(in srgb,var(--accent) 45%,transparent)}
@media (max-width:520px) {
.phrow{flex-wrap:wrap}
.phrow .t{flex:1 1 150px}
}
.prep-pick{display:flex;flex-direction:column;gap:8px}

/* ===== Estilos: audiciones ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.aud-card.nueva{border-color:var(--gold)}
.aud-time{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.aud-fb{border-left:3px solid var(--accent);padding:4px 10px;font-size:13px;background:var(--surface-2);border-radius:0 8px 8px 0}
.rec-meter{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.rec-dot{width:14px;height:14px;border-radius:50%;background:var(--danger);animation:recblink 1s infinite}
@keyframes recblink{50%{opacity:.25}}
#rec-time{font-size:28px;font-variant-numeric:tabular-nums;font-family:var(--display)}
.recx .prop-btns{justify-content:center}
.pr-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
/* ===== 7.110 · Sala de práctica: tus canciones de la semana ===== */
.prw-box:empty{display:none}
.prw{margin:12px 0;border:1px solid color-mix(in srgb,#E4572E 40%,var(--line));border-radius:14px;padding:12px 14px;background:color-mix(in srgb,#E4572E 6%,var(--surface))}
.prw-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:10px}
.prw-l{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.prw-s{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-width:0}
.prw-t{flex:1;min-width:0;display:flex;flex-direction:column}
.prw-a{display:flex;align-items:center;gap:4px;flex:0 0 auto}
@media (max-width:640px) {
.prw-l{grid-template-columns:minmax(0,1fr)}
}

/* ===== Estilos: eventos ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.ev-vtxt .ev-rib{align-self:flex-start;margin-bottom:4px}
.ev-dot{width:10px;height:10px;border-radius:50%;border:0;background:rgba(255,255,255,.45);cursor:pointer;padding:0}
.ev-dot[aria-selected="true"]{background:#fff;width:22px;border-radius:5px}
.ev-arr{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:0;background:rgba(0,0,0,.45);color:#fff;font-size:24px;line-height:1;cursor:pointer;opacity:.7}
.ev-arr:hover{opacity:1}
@media (max-width:640px) {
.ev-viewer{aspect-ratio:16/10;min-height:200px}
.ev-arr{width:32px;height:32px;font-size:20px}
}
.ev-title{font-size:16px}
.ev-group.general{background:var(--accent-soft);color:var(--green-ink)}
.ev-group.youth{background:color-mix(in srgb,#ff6b35 22%,var(--surface-2));color:#ff6b35}
.ev-group.evang{background:color-mix(in srgb,var(--blue) 22%,var(--surface-2));color:var(--blue)}
.ev-group.none{opacity:.7}
.viewer{width:100%;height:70vh;border:1px solid var(--line);border-radius:8px;background:#fff}
.vp-item{display:flex;gap:10px;align-items:center;width:100%;text-align:left;border:0;background:transparent;color:var(--text);padding:8px;border-radius:10px;font:inherit;cursor:pointer}
.vp-item:hover{background:var(--surface-2)}
.vp-st{font-size:11px;font-weight:800;color:var(--accent);white-space:nowrap}
.ev-it{display:flex;gap:12px;align-items:center;padding:8px 10px 8px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden}
.ev-it::before{content:'';position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--evc,var(--accent))}
.ev-txt .ev-group{font-size:11px;padding:2px 8px;margin-top:2px}
.ev-when{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--evc,var(--accent));white-space:nowrap}
@media (max-width:640px) {
.ev-it{gap:8px;padding:8px 8px 8px 12px}
.ev-dt{width:46px;height:46px}
.ev-when{font-size:10px}
}
@media (max-width:860px) {
.ev-cols{grid-template-columns:1fr}
}
.ev-past summary::before{content:'›';display:inline-block;transition:transform .15s;color:var(--faint);font-size:18px;line-height:1}
.ev-past[open] summary::before{transform:rotate(90deg)}
.ev-past .ev-list{margin-top:8px}
.bday-box{border:1px solid var(--line);border-radius:18px;background:linear-gradient(160deg,color-mix(in srgb,#ff5c8a 9%,var(--surface)),color-mix(in srgb,#4cc9f0 9%,var(--surface)));padding:14px 16px}
.bday-box.empty .bd-head{margin:0}
.ev-spark{display:flex;gap:3px;align-items:flex-end;height:44px}
.ev-hsc{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:11.5px}
/* 7.28: imágenes de eventos completas (16:9) con fondo difuminado, y acciones de descargar/compartir */
.ev-viewer{aspect-ratio:16/9!important}
.ev-vacts{position:absolute;top:10px;right:10px;display:flex;gap:6px;z-index:3}
.ev-frame{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#0a0d14;display:grid;place-items:center}
.ev-frame .ev-bg{object-fit:cover;transform:scale(1.12);filter:blur(22px) saturate(1.2) brightness(.65)}
.ev-frame .ev-fit{object-fit:contain}
.ev-imgbox .img{aspect-ratio:16/9;height:auto;width:150px}
#ef-imgw{margin-top:4px;font-size:11.5px}
@keyframes evPulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--evc) 45%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--evc) 0%,transparent)}}
@keyframes evTick{from{transform:translateY(-35%);opacity:.2}to{transform:none;opacity:1}}
.ev-noimg-t{color:#fff;font:800 clamp(22px,3.4vw,40px)/1.1 var(--display);text-align:center;padding:24px;text-shadow:0 3px 18px rgba(0,0,0,.35)}
.ev-kick{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--evc)}
.ev-side .ev-dot{width:10px;height:10px;border-radius:99px;border:0;background:color-mix(in srgb,var(--evc) 35%,var(--line));padding:0;cursor:pointer;transition:width .25s}
.evcd.big .evcd-t:first-child{background:var(--evc);border-color:var(--evc)}
.evcd.live{justify-content:flex-start}
/* agenda + calendario */
.ev-mid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);gap:14px;align-items:start}
.ev-mid .ev-sec{margin:0}
.evg .evtk:nth-child(2){animation-delay:.04s}
.evg .evtk:nth-child(3){animation-delay:.08s}
.evg .evtk:nth-child(4){animation-delay:.12s}
.evtk-stub::before,.evtk-stub::after{content:"";position:absolute;right:-8px;width:14px;height:14px;border-radius:50%;background:var(--bg,var(--surface-2))}
.evtk-stub::before{top:-8px}
.evtk-stub::after{bottom:-8px}
.evtk-body .ev-group{align-self:flex-start}
.evtk.pas{opacity:.62;filter:saturate(.5)}
.evcals{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.evcal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.evcal-h{font-size:10px;color:var(--muted);font-weight:700}
.evcal-d{position:relative;font-size:11.5px;aspect-ratio:1;display:grid;place-items:center;border-radius:8px;color:var(--muted)}
.evcal-d.pas{opacity:.45}
.evcal-d.hoy{outline:2px solid var(--accent);outline-offset:-2px;color:var(--ink);font-weight:800}
.evcal-d.ev{background:var(--evc);color:#fff;font-weight:800;cursor:pointer;box-shadow:0 3px 10px -4px var(--evc);transition:transform .15s}
.evcal-d.ev:hover{transform:scale(1.15)}
.evcal-d.ev.pas{opacity:.5}
@media (max-width:860px) {
.ev-mid{grid-template-columns:1fr}
.ev-side{padding:14px 14px 16px}
}
@media (max-width:420px) {
.evcd{gap:5px}
.evtk-stub{width:56px}
.evtk-when{display:none}
.evcals{grid-template-columns:1fr}
.evcals .evcal+.evcal{display:none}
}

/* ===== Estilos: usuarios ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
#us-group{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;padding:7px 9px;font:inherit}
.us-tbl tr.blocked td{opacity:.55}
.lock-btn:disabled{opacity:.15;cursor:not-allowed}
@media (max-width:640px) {
.presets{gap:6px}
}
.grp-tog:hover{background:var(--accent-soft)}
.perm-sec{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface-2)}
.perm-sec .perm-grid{background:transparent}
.us-ext{background:#E8EFFA;color:#24406B}
.av-h{border:2px solid transparent;border-radius:50%;padding:0;background:none;cursor:pointer;line-height:0}
.av-h:hover{border-color:var(--blue)}
.uav-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;max-height:46vh;overflow:auto}
.uav-pk{border:2px solid transparent;border-radius:10px;padding:0;background:none;cursor:pointer;line-height:0;overflow:hidden;aspect-ratio:1}
.uav-pk:hover{border-color:var(--blue)}
.us-tbl .ico-btn.edit{width:30px;height:30px}
/* 7.89 · permisos con botones, buscador y resumen */
.perm-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px;position:sticky;top:0;z-index:4;background:var(--surface);padding:6px 0}
.perm-res{font-size:12px;color:var(--muted);display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.perm-sec{margin-bottom:14px}
.perm-sh{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap;margin-bottom:6px}
.perm-all{display:inline-flex;gap:3px;align-items:center;flex-wrap:wrap}
.perm-grid{display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.perm-it{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:7px 10px;border-radius:11px;background:var(--bg2,rgba(127,127,127,.09))}
.perm-seg{display:inline-flex;gap:2px;padding:2px;border-radius:999px;background:var(--surface);border:1px solid var(--line)}
.perm-b{border:0;background:none;color:var(--muted);border-radius:999px;padding:5px 10px;font-size:11.5px;font-weight:700;cursor:pointer;line-height:1;white-space:nowrap}
@media (max-width:700px) {
.perm-grid{grid-template-columns:1fr}
.perm-it{padding:9px 10px}
.perm-seg{width:100%;justify-content:space-between}
.perm-b{flex:1;padding:9px 6px;font-size:12px}
.perm-top{gap:6px}
}
/* 7.122 · Plantillas de permisos: lista + una sola en edición */
.pp-md{display:grid;grid-template-columns:250px minmax(0,1fr);gap:14px;align-items:start}
.pp-nav{display:grid;gap:4px;position:sticky;top:0;max-height:calc(100dvh - 230px);overflow:auto;padding-right:4px}
.pp-navh{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:2px 2px 6px;font-size:13px}
.pp-it{display:grid;gap:2px;text-align:left;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);cursor:pointer;font:inherit}
.pp-itn{display:flex;align-items:center;gap:6px;min-width:0}
.pp-dot{width:8px;height:8px;border-radius:50%;background:#f59e0b;flex:none}
.pp-main{min-width:0;border:1px solid var(--line);border-radius:16px;padding:12px 14px;background:var(--surface)}
.pp-edhd{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap;padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--line)}
.pp-edlbl{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-weight:800}
.pp-edt h3{margin:2px 0 2px;font-size:19px}
.pp-acts{display:flex;gap:6px;flex-wrap:wrap}
.pp-warn{background:color-mix(in srgb,#f59e0b 15%,transparent);padding:6px 10px;border-radius:10px}
@media (max-width:760px) {
.pp-md{grid-template-columns:1fr}
.pp-nav{position:static;max-height:none;display:flex;overflow-x:auto;gap:6px;padding:0 0 6px;scroll-snap-type:x mandatory}
.pp-navh{flex:none;flex-direction:column;justify-content:center}
.pp-it{flex:0 0 200px;scroll-snap-align:start}
.pp-main{padding:10px}
}

/* ===== Estilos: musica ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.mu-layout{display:grid;grid-template-columns:230px 1fr;gap:16px;align-items:start}
.mu-row{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;font-weight:600}
.mu-row:hover{border-color:var(--accent)}
@media (max-width:800px) {
.mu-layout{grid-template-columns:1fr}
.mu-cover{width:100px;height:100px}
}
.mu-row .pl-t .hint{font-size:12px}
.mu-row{transition:background .15s}
.mu-row:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}
/* 7.105 · Mi música: playlists compartidas */
.mu-shdot{display:inline-flex;vertical-align:-2px;opacity:.7;margin-left:4px}
.mu-shav{width:22px;height:22px;border-radius:50%;object-fit:cover;display:block}
.mu-shchip{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-weight:700}
.mush-list{display:grid;gap:4px;max-height:min(46vh,420px);overflow:auto;padding:2px}
.mush-p{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:10px;border:1px solid var(--line);cursor:pointer;background:var(--surface)}
.mush-ph{display:grid;place-items:center;background:var(--surface-2);font-weight:800;color:var(--muted)}
.mush-sum{margin:12px 0 0;font-weight:700;color:var(--accent)}
/* ===== 7.112 · Mi reproductor ===== */
.mu-offok{display:inline-grid;place-items:center;color:#16A34A;width:22px}

/* ===== Estilos: buzon ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.modulo{border:1px solid var(--line);border-radius:10px;background:var(--surface-2);overflow:hidden}
.modulo.open .mod-head .chev{transform:rotate(90deg)}
/* 7.33: arrastrar módulos y subcarpetas de material */
.modulo.drag .mod-head{cursor:grab}
.modulo.dragging{opacity:.45}
/* con las manijas y las flechas el encabezado ya no cabe en una línea: el título abajo, los botones en su bloque */
.modulo.drag .mod-head{flex-wrap:wrap;row-gap:2px;gap:6px}
.modulo.drag:hover .mod-grip{opacity:.9}
.buz-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:12px;overflow-x:auto;scrollbar-width:none}
.buz-new{font-style:normal;font-size:10.5px;background:#0EA5E9;color:#fff;border-radius:99px;padding:2px 7px}
.buz-lead{margin:0 0 12px;font-size:14px;line-height:1.5}
.buz-kinds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}
.buz-k{display:grid;gap:3px;justify-items:start;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);cursor:pointer;font:inherit}
.buz-k[aria-pressed="true"]{border-color:var(--kc);background:color-mix(in srgb,var(--kc) 12%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--kc) 18%,transparent)}
.buz-form textarea{width:100%;font:inherit;min-height:110px}
.buz-shotrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0 12px}
.buz-shotpv{position:relative;display:inline-block}
.buz-shotpv .ico-btn{position:absolute;top:-8px;right:-8px;width:24px;height:24px;background:var(--surface);border:1px solid var(--line);border-radius:50%}
.buz-send{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.buz-list{display:grid;gap:8px}
.buz-it{border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}
@keyframes buzfl{50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 40%,transparent)}}
.buz-it.hecho,.buz-it.descartado{opacity:.78}
.buz-ki{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--kc) 16%,transparent);color:var(--kc)}
.buz-st{min-width:0;display:grid;gap:1px}
.buz-pv{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.buz-it[open] .buz-pv{display:none}
.buz-chip{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:99px;color:var(--sc);background:color-mix(in srgb,var(--sc) 15%,transparent);white-space:nowrap}
.buz-body{padding:0 12px 12px 56px}
.buz-txt{margin:0 0 8px;font-size:14px;line-height:1.5}
.buz-shot{border:0;padding:0;background:none;cursor:zoom-in;display:block;margin-bottom:8px}
.buz-shot img{max-height:180px;max-width:100%;border-radius:10px;border:1px solid var(--line)}
.buz-meta{font-size:11.5px;margin:0 0 8px;word-break:break-word}
.buz-resp{background:color-mix(in srgb,#22C55E 10%,var(--surface-2));border-radius:12px;padding:8px 12px;margin:0 0 8px}
.buz-notas{margin:0 0 8px;padding-left:18px;font-size:12.5px}
.buz-adm{display:grid;gap:6px;border-top:1px dashed var(--line);padding-top:8px}
.buz-adm textarea{width:100%;font:inherit}
.buz-sts{display:flex;gap:5px;flex-wrap:wrap}
.buz-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.buz-fbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.buz-note{display:flex;gap:6px;align-items:center;font-size:12px;margin:0 0 10px}
.buz-empty{display:grid;justify-items:center;gap:6px;padding:28px 10px;color:var(--muted);text-align:center}
@media (max-width:640px) {
.buz-kinds{grid-template-columns:1fr 1fr}
.buz-body{padding:0 10px 10px}
.buz-it>summary{grid-template-columns:auto minmax(0,1fr)}
.buz-chip{grid-column:2;justify-self:start}
}
#buz-sendf svg{width:15px;height:15px;vertical-align:-3px}
.buz-adm textarea,.buz-form textarea{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:8px 10px}

/* ===== Estilos: avisos ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.ntoast {
  pointer-events:auto;
  display:flex;
  gap:8px;
  align-items:flex-start;
  padding:10px 12px;
  border-radius:12px;
  background:var(--surface);
  color:var(--text);
  border:1px solid var(--line);
  border-left:4px solid var(--accent);
  box-shadow:0 16px 40px -12px rgba(0,0,0,.5);
  cursor:pointer;
  opacity:0;
  transform:translateY(12px);
  transition:opacity .25s,transform .25s;
  font-size:13px;
}
.ntoast .nt-x{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:14px;padding:0 2px}
.pd-k{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;opacity:.7;display:inline-flex;gap:4px;align-items:center}
.pend-flash{animation:pendfl 2.6s ease;border-radius:12px}
@keyframes pendfl{0%,100%{box-shadow:none}12%,68%{box-shadow:0 0 0 3px var(--accent)}}
#off-bar {
  position:fixed;
  left:50%;
  transform:translateX(-50%);
  bottom:calc(76px + env(safe-area-inset-bottom));
  z-index:9000;
  display:flex;
  gap:10px;
  align-items:flex-start;
  width:min(560px,calc(100vw - 24px));
  padding:10px 14px;
  border-radius:14px;
  background:#1f2937;
  color:#fff;
  box-shadow:0 12px 30px -10px rgba(0,0,0,.5);
  font-size:13px;
  line-height:1.4;
}
#off-bar .ico{width:18px;height:18px;flex:none;color:#F59E0B;margin-top:1px}
@media (min-width:641px) {
#off-bar{bottom:18px}
}
.cover-wait{border-color:var(--line);border-style:dashed;margin-bottom:12px}
.cover-wait .cover-row{flex-wrap:wrap}
@media (max-width:640px) {
.cover-wait .cover-row .btn,.cover-pend .cover-row .btn{flex:1 1 auto}
}
.nt2.nt2-seen .nt2-dot{transition:opacity .9s,transform .9s;opacity:0;transform:scale(.4)}
.nt2.nt2-seen{transition:background 1.2s}
.nt2-h{padding:12px 14px 8px;border-bottom:1px solid var(--line);background:var(--surface)}
.nt2-hr{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.nt2-all{border:0;background:none;color:var(--accent);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;padding:2px 4px}
.nt2-tabs{display:flex;gap:4px;background:var(--surface-2);border-radius:999px;padding:3px}
.nt2-tabs .nt-c{font-style:normal;font-size:10.5px;background:#E4572E;color:#fff;border-radius:999px;padding:0 6px;min-width:16px;line-height:16px}
.nt2-chips{display:flex;gap:6px;overflow-x:auto;padding:8px 14px;border-bottom:1px solid var(--line);scrollbar-width:none}
.nt2-list{overflow:auto;padding:4px 8px 10px;display:flex;flex-direction:column;gap:4px}
.nt2-day{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:10px 6px 2px}
.nt2{position:relative;display:grid;grid-template-columns:40px 1fr;gap:10px;align-items:start;text-align:left;width:100%;border:0;border-radius:14px;background:transparent;color:var(--ink);padding:10px 12px 10px 8px;cursor:pointer;font:inherit;transition:background .15s,transform .1s}
.nt2:hover{background:var(--surface-2)}
.nt2:active{transform:scale(.99)}
.nt2.unread{background:color-mix(in srgb,var(--c) 9%,transparent)}
.nt2.unread:hover{background:color-mix(in srgb,var(--c) 15%,transparent)}
.nt2-ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 18%,var(--surface));color:var(--c)}
.nt2-top{display:flex;gap:8px;align-items:baseline;font-size:11.5px}
.nt2-top time{color:var(--muted);margin-left:auto;white-space:nowrap}
.nt2-t{font-weight:700;font-size:14px;line-height:1.3}
.nt2-x{color:var(--muted);font-size:13px;line-height:1.35;white-space:pre-line;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nt2-go{margin-top:3px;font-size:12.5px;font-weight:800;color:var(--c)}
.nt2:hover .nt2-go i,.nt2-toast:hover .nt2-go i{transform:translateX(3px)}
.nt2-dot{position:absolute;top:14px;right:10px;width:9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 25%,transparent)}
.nt2.unread .nt2-top time{margin-right:14px}
.nt2-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:30px 20px;color:var(--muted)}
.ntoast.nt2-toast.in{transform:none}
.nt2-toast .nt2-t{font-size:14px}
.nt2-toast .nt-t{font-size:12.5px;-webkit-line-clamp:2}
.nt2-bar{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--c);transform-origin:left;animation:nt2bar 9s linear forwards}
.nt2-toast.hold .nt2-bar{animation-play-state:paused}
@keyframes nt2bar{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media (max-width:640px) {
.ntoast.nt2-toast{transform:translateY(-16px)}
}
@media (prefers-reduced-motion:reduce) {
.nt2-bar{animation:none}
}
/* ===== 7.139.5 · Sin conexión ===== */
#off-bar{display:none!important}

/* ===== Estilos: inicio ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.home-chip{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;font-family:inherit}
.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
@media (max-width:640px) {
.mod-grid{grid-template-columns:repeat(3,1fr);gap:10px}
}
.mod-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px 8px}
@media (max-width:640px) {
.mod-grid{grid-template-columns:repeat(3,1fr)}
}
/* 7.53 · carga, tesitura */
.home-loading{display:flex;gap:10px;align-items:center;color:var(--muted);padding:18px 4px;font-size:14px}
@keyframes hlspin{to{transform:rotate(360deg)}}
.ini-res{position:absolute;left:0;right:0;top:calc(100% + 6px);padding:6px;border-radius:16px;border:1px solid var(--line);background:var(--surface);box-shadow:0 24px 50px -20px rgba(0,0,0,.6);max-height:min(60vh,440px);overflow:auto}
.ini-it{display:flex;align-items:center;gap:12px;width:100%;padding:9px 10px;border-radius:12px;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.ini-it .go{color:var(--muted);opacity:0;transition:opacity .15s}
.ini-it:hover .go,.ini-it.sel .go{opacity:1}
.ini-none{padding:14px;color:var(--muted);font-size:13.5px}
/* 7.77 · Mi camino */
.cam{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.hf-h{display:flex;align-items:center;gap:8px;margin:0 0 8px}
.hf-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:14px}
.hf-ic{flex:none;width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 20%,transparent);color:var(--c)}
.hf-ring{--p:0;flex:none;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(closest-side,var(--surface-2) 76%,transparent 78% 100%),conic-gradient(var(--accent) calc(var(--p)*1%),color-mix(in srgb,var(--ink) 12%,transparent) 0)}
.hf-bar{display:block;height:5px;border-radius:5px;background:color-mix(in srgb,var(--ink) 12%,transparent);margin:5px 0 3px;overflow:hidden}
.hf-go{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 45%,transparent)}
@media (max-width:640px) {
.hf-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;margin:0 -12px 12px;padding-left:12px;padding-right:12px;scrollbar-width:none}
}
/* 7.99: tarjeta "Hoy" en Inicio */
.hoy-card{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 14px;padding:16px 18px;border-radius:18px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--hc,var(--accent)) 22%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,var(--hc,var(--accent)) 40%,transparent)}
.hoy-card.off{--hc:#94a3b8}
.hoy-ic{flex:0 0 auto;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--hc,var(--accent));color:#fff}
.hoy-tx{flex:1 1 220px;min-width:0;display:flex;flex-direction:column;gap:3px}
.hoy-dress{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:.88rem}
.hoy-sw{display:inline-block;width:16px;height:16px;border-radius:50%;border:1px solid rgba(127,127,127,.4)}
.hoy-btns{display:flex;gap:6px;flex-wrap:wrap}
@media (max-width:640px) {
.hoy-card{padding:14px}
.hoy-btns{width:100%}
}
/* ===== 7.110 · Qué hay de nuevo (Inicio) ===== */
.nv-card {
  margin:4px 0 18px;
  border-radius:16px;
  padding:14px 16px 12px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 16%,var(--surface)),var(--surface) 60%);
  border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));
  box-shadow:0 6px 22px -14px color-mix(in srgb,var(--accent) 70%,transparent);
  transition:opacity .2s,transform .2s;
}
.nv-x:hover{background:var(--surface-2);color:var(--ink)}
.nv-list{display:flex;flex-direction:column;gap:8px}
.nv-it{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.nv-ic{flex:0 0 auto;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.nv-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.nv-go{flex:0 0 auto}
@media (max-width:640px) {
.nv-card{padding:12px 12px 10px}
.nv-it{padding:8px 10px;gap:10px}
.nv-ic{width:32px;height:32px}
.nv-go{padding:6px 10px}
}
.pw-h{display:flex;align-items:center;gap:12px}
.pw-ht{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pw-streak{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:12.5px;color:#E8590C;background:color-mix(in srgb,#E8590C 12%,transparent);padding:4px 9px;border-radius:999px;white-space:nowrap}
.pw-help{flex:none}
.pw-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:12px 0 10px}
.pw-d{display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 2px 6px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);cursor:pointer;font:inherit;min-width:0}
.pw-d.miss:not(.sel){opacity:.75}
.pw-d.svc b::after{content:'★';font-size:10px;color:#E4262C;margin-left:2px;vertical-align:top}
.pw-d.sel.svc b::after{color:inherit}
.pw-dots{display:flex;gap:3px;height:6px;align-items:center}
.pw-d.sel .pw-dots i:not(.ok):not(.miss){background:color-mix(in srgb,currentColor 55%,transparent)}
.pw-lh{font-size:12.5px;color:var(--muted);font-weight:600;margin:2px 2px 6px}
.pw-list{display:flex;flex-direction:column;gap:6px}
.pw-s{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:12px;background:var(--surface-2);border-left:4px solid var(--c)}
.pw-si{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 16%,transparent);color:var(--c)}
.pw-st{flex:1;min-width:0;display:flex;flex-direction:column}
.pw-s.ok{opacity:.8}
.pw-s.ok .pw-si{background:#16A34A;color:#fff}
.pw-s.info{border-left-style:dashed}
.pw-chip{font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;white-space:nowrap;background:color-mix(in srgb,var(--ink) 9%,transparent);color:var(--muted)}
.pw-chip.hoy{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.pw-chip.late{background:color-mix(in srgb,#F59E0B 18%,transparent);color:#B45309}
.pw-chip.miss{background:color-mix(in srgb,#DC2626 14%,transparent);color:#B91C1C}
.pw-free{padding:12px;border-radius:12px;background:var(--surface-2);color:var(--muted);font-size:13px;display:flex;gap:8px;align-items:center}
.pw-done{margin-top:10px;padding:10px 12px;border-radius:12px;background:linear-gradient(90deg,color-mix(in srgb,#C9A227 22%,transparent),transparent);font-weight:700;display:flex;gap:8px;align-items:center}
@media (max-width:640px) {
.pw-days{gap:4px}
.pw-d{padding:6px 0 5px;border-radius:10px}
.pw-s{flex-wrap:wrap}
.pw-chip{order:3}
}
/* ===== 7.112 · indicador del carrusel "Para ti hoy" ===== */
.hf-car{display:none;align-items:center;justify-content:center;gap:10px;margin:-6px 0 12px}
.hf-car[hidden]{display:none!important}
@media (max-width:760px) {
.hf-car{display:flex}
}
.hf-dots{display:flex;gap:6px}
.hf-arr{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:18px;line-height:1;cursor:pointer}
.hf-row.more-r{-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}
.hf-row.more-l.more-r{-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 85%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 85%,transparent)}
.hf-row.more-l:not(.more-r){-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%);mask-image:linear-gradient(90deg,transparent,#000 8%)}
/* 7.112.2: botón de novedades en Inicio */
.nv-chip{position:relative}
.nv-dot{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:4px;border-radius:999px;background:var(--accent);color:var(--accent-ink,#fff);font-style:normal;font-size:11px;font-weight:800}
.nv-dlg{display:flex;flex-direction:column;gap:8px}
.nv-ver{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-top:6px}
.nv-dlg .nv-it.new{box-shadow:0 0 0 1px var(--accent) inset}
.home3 .h3-urg{display:grid;gap:10px;margin:0 0 14px}
.home3 .h3-urg>*{margin:0}
.home3 .h3-main{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;align-items:start}
.home3 .h3-main.solo{grid-template-columns:minmax(0,1fr)}
.home3 .h3-mods .mod-grid{margin:0}
.home3 .h3-side{display:grid;gap:14px;align-content:start}
.home3 .h3-sec{display:grid;gap:8px}
.home3 .h3-sh{display:flex;align-items:center;gap:6px;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:800;padding:0 2px}
.home3 .h3-sh svg{width:14px;height:14px}
.home3 .h3-list{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.home3 .h3-list>*{grid-column:1/-1!important;grid-row:auto!important}
.home3 .h3-list>.hf-card,.home3 .h3-list>.hf-card.hf-main{flex:none;width:100%;min-height:0;padding:10px 12px;border-radius:14px;gap:10px;background:var(--surface);box-shadow:none}
.home3 .h3-list .hf-card .hf-ic{width:38px;height:38px;border-radius:11px}
.home3 .h3-list .hf-card .hf-ic svg{width:19px;height:19px}
.home3 .h3-list .hf-card .hf-ring{transform:scale(.78);transform-origin:center;margin:-6px}
.home3 .h3-list .hf-card .hf-tx b{font-size:14px;line-height:1.25}
.home3 .h3-list .hf-card .hf-tx small{font-size:10.5px}
.home3 .h3-list .hf-card .hf-tx>span{font-size:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.home3 .h3-list .hf-card .hf-go{width:30px;height:30px}
.home3 .h3-list .hf-card.hf-main{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 16%,var(--surface)),var(--surface))}
.home3 .h3-ae{border-color:color-mix(in srgb,#0FA3B1 50%,var(--line))!important}
/* plan de la semana resumido */
.home3 .h3-list>.pw{margin:0;padding:10px 12px;border-radius:14px;box-shadow:none}
.home3 .pw .pw-h{gap:10px;flex-wrap:wrap}
.home3 .pw .pw-h .hf-ring{transform:scale(.78);margin:-6px}
.home3 .pw .pw-ht b{font-size:14px}
.home3 .pw .pw-ht small{font-size:11.5px}
.home3 .pw .pw-tog{margin-left:auto;padding:4px 10px;font-size:12px}
.home3 .pw:not(.open) .pw-days,.home3 .pw:not(.open) .pw-lh,.home3 .pw:not(.open) .pw-done,.home3 .pw:not(.open) .pw-help{display:none}
.home3 .pw:not(.open) .pw-list{margin-top:8px}
.home3 .pw:not(.open) .pw-list>.pw-s~.pw-s{display:none}
.home3 .pw .pw-days{gap:4px}
.home3 .pw .pw-d{padding:6px 0 5px;border-radius:10px}
.home3 .pw .pw-d b{font-size:15px}
.home3 .pw .pw-d small{font-size:9.5px}
.home3 .pw .pw-s{padding:8px 10px;gap:8px}
.home3 .pw .pw-s .pw-st b{font-size:13px}
.home3 .pw .pw-s .pw-st small{font-size:11.5px}
/* reconocimientos lado a lado */
.home3 .h3-rec{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.home3 .h3-rec .em-rmes{margin:0;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px}
.home3 .h3-rec .em-rmes svg{width:18px;height:18px}
.home3 .h3-rec .em-rmes small{font-size:10px}
.home3 .h3-rec .em-rmes b{font-size:14px}
.home3 .h3-rec .em-rmes em{font-size:11.5px;margin:0}
.home3 .h3-rec .em-rmes:only-child{grid-column:1/-1}
.home3 .h3-avchip{display:none}
.h3-aedlg .ae-card{margin:0;border:0;padding:0;background:none}
@media (max-width:1180px) {
.home3 .h3-main{grid-template-columns:minmax(0,1fr) 320px;gap:18px}
}
@media (max-width:900px) {
.home3 .h3-main{grid-template-columns:minmax(0,1fr)}
.home3 .h3-side{margin-top:8px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start}
.home3 .h3-avchip{display:inline-flex}
}
@media (max-width:640px) {
.home3 .h3-side{grid-template-columns:minmax(0,1fr)}
.home3 .mod-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 4px}
.home3 .mod-tile{padding:6px 2px 4px;gap:6px}
.home3 .mod-ico{width:58px;height:58px;border-radius:18px}
.home3 .mod-ico svg{width:29px;height:29px}
.home3 .mod-tile b{font-size:11.5px;line-height:1.2;max-width:100%;overflow-wrap:anywhere}
.home3 .mod-ico .n{transform:scale(.85)}
}
@media (max-width:360px) {
.home3 .mod-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* ===== Estilos: ventas ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.vt-acard{border-top:4px solid var(--ac,#3D82D0)}
.vt-ahd{display:flex;gap:8px;align-items:center;width:100%;background:none;border:0;padding:0 0 8px;cursor:pointer;color:inherit;text-align:left;font-size:14px}
.vt-achip{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.2px;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--ac,#3D82D0) 16%,transparent);color:var(--ac,#3D82D0);width:fit-content}
.vt-ap{display:grid;grid-template-columns:1fr 110px auto;gap:8px;align-items:center;padding:6px 8px;border-radius:9px;background:var(--surface-2)}
.vt-apm{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:5px 7px;font-size:13px}
.vt-apn{white-space:nowrap;font-size:11.5px}
.vt-aptask{grid-column:2/4;width:100%;border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:6px 8px;font-size:13px}
.vt-amb{display:inline-block;width:fit-content;font-size:10.5px;font-weight:800;color:#8a6d1f;background:#FFF3C4;border-radius:999px;padding:1px 7px}
@media (max-width:640px) {
.vt-ap{grid-template-columns:1fr auto}
.vt-apm{width:100px}
.vt-aptask{grid-column:1/3}
}
/* 7.34: enlace para compartir la votación y ventana de respuesta */
.vt-share{display:flex;gap:6px;align-items:center}
/* 7.34: despedida del recuadro de votación (verde → se desvanece → el resto sube) */
.vt-voto{transition:opacity .5s ease,height .5s ease,margin .5s ease,padding .5s ease,border-color .35s ease,background-color .35s ease;overflow:hidden}
@media (prefers-reduced-motion:reduce) {
.vt-voto{transition:none}
}
.vt-voto.urge{border-color:var(--gold,#F0B429);background:color-mix(in srgb,var(--gold,#F0B429) 7%,var(--surface))}
.vt-voto.listo{border-color:color-mix(in srgb,var(--green,#22C267) 55%,transparent)}
.vt-vt-list{display:grid;gap:10px}
.vt-vt-item{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}
.vt-vt-item.listo{opacity:.85}
.vt-vt-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.vt-vt-o[disabled]{opacity:.55;cursor:default}
.vt-pb{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
.vt-pblk{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--surface-2)}
@media (max-width:640px) {
.vt-vt-opts{grid-template-columns:repeat(2,1fr)}
.vt-vt-o{min-height:84px;padding:10px 6px}
}
.vt-goal-b{height:7px;border-radius:999px;background:color-mix(in srgb,var(--line) 70%,transparent);overflow:hidden}
.vt-money b+b{margin-left:0}
.vt-pend-h{display:flex;align-items:center;gap:6px;font-size:14px}
.vt-pend-i{display:inline-flex;align-items:center;gap:4px;font-size:12px;border:1px solid var(--line);border-radius:999px;padding:3px 9px;background:var(--surface-2)}
.vt-acl{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;padding:8px 0;border-top:1px solid var(--line)}
.vt-acl:first-of-type{border-top:0}
.vt-acl.atendida{opacity:.62}
.vt-flag{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;border-radius:999px;padding:2px 8px;line-height:1.6}
.vt-flag.voto{background:color-mix(in srgb,var(--gold,#F0B429) 22%,transparent);color:var(--gold-ink,#7a5600)}
.vt-flag.debe{background:color-mix(in srgb,var(--danger,#d92d20) 13%,transparent);color:var(--danger,#d92d20)}
.vt-flag.listo{background:color-mix(in srgb,var(--green,#22C267) 16%,transparent);color:var(--green-ink,#0d8a45)}
@media (max-width:640px) {
.vt-money{align-items:flex-start}
}
.vt-sv{display:grid;gap:4px;max-height:56vh;overflow:auto}
.vt-sv-row{display:grid;grid-template-columns:1fr 170px 1fr;gap:8px;align-items:center;padding:4px 0;border-bottom:1px solid var(--line)}
@media (max-width:640px) {
.vt-sv-row{grid-template-columns:1fr 1fr}
}
.vt-fondo{display:grid;grid-template-columns:minmax(190px,260px) 1fr;gap:16px;align-items:center}
.vt-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.vt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.vt-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.14)}
.vt-cover{height:120px;background:linear-gradient(135deg,#F0B429,#FF8C00);display:grid;place-items:center;color:#fff;position:relative}
.vt-cover .vt-ini{font-size:30px;font-weight:800;opacity:.85}
.vt-pill{position:absolute;top:8px;right:8px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff}
.vt-pill.vt-act{background:#12a150}
.vt-pill.vt-cer{background:#3b4a5a}
.vt-pill.vt-plan{background:#8a6d1f}
.vt-bar{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden;display:flex}
.vt-net{font-weight:800}
.vt-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:8px 10px;background:var(--surface-2);border-radius:10px}
.vt-row .vt-am{font-weight:800;white-space:nowrap}
.vt-rec{width:36px;height:36px;border-radius:8px;object-fit:cover;cursor:zoom-in;border:1px solid var(--border)}
.vt-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.vt-cklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:2px;max-height:46vh;overflow:auto}
.vt-hd .vt-cover{width:130px;height:90px;border-radius:12px;flex:none}
@media (max-width:640px) {
.vt-fondo{grid-template-columns:1fr}
.vt-row{grid-template-columns:auto 1fr auto;row-gap:6px}
.vt-cklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:2px;max-height:46vh;overflow:auto}
.vt-hd .vt-cover{width:100%;height:120px}
}
.vt-mrow{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:7px 10px;background:var(--surface)}
.vt-pk{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:inherit;font:inherit;font-size:12.5px;border-radius:999px;padding:5px 10px;cursor:pointer}
.vt-pk:hover{border-color:var(--accent)}
.vt-irow .a{font-weight:800;white-space:nowrap}
.vt-pgrp{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--surface)}
.vt-pr{display:flex;gap:8px;align-items:center;font-size:12.5px;padding:4px 6px;border-radius:8px}
.vt-pr.best{background:color-mix(in srgb,var(--green,#22C267) 14%,transparent)}
.vt-pr .pu{font-weight:800;white-space:nowrap}
.vt-pr .pd{color:var(--muted);font-size:11px;white-space:nowrap}
.vt-acard{position:relative}
.vt-acfg{position:absolute;right:8px;top:8px;z-index:2}
@media (max-width:640px) {
.vt-erow{grid-template-columns:1fr 78px 30px}
.vt-menu .vt-mrow{padding:6px 8px}
}
/* 7.39: el engrane del área ya no se encima con "ver sólo esta" */
.vt-acard .vt-ahd{padding-right:36px}
/* ventas completadas: apagadas y selladas */
.vt-card{position:relative}
.vt-card.vt-done{filter:grayscale(.9);opacity:.68}
.vt-card.vt-done:hover{filter:grayscale(.4);opacity:.95}
.vt-donetag {
  position:absolute;
  left:50%;
  top:44%;
  transform:translate(-50%,-50%) rotate(-9deg);
  z-index:3;
  font-size:15px;
  font-weight:900;
  letter-spacing:.14em;
  color:#fff;
  background:rgba(17,17,17,.72);
  border:3px solid rgba(255,255,255,.85);
  border-radius:10px;
  padding:6px 14px;
  pointer-events:none;
  white-space:nowrap;
}
.vt-drafttag{position:absolute;left:8px;top:8px;z-index:3;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:var(--surface-2);color:var(--muted);border-radius:999px;padding:3px 9px}
.vt-turno{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:var(--surface)}
.vt-turno .hr{flex:none;width:96px;font-weight:800;font-size:12.5px;color:var(--accent);font-variant-numeric:tabular-nums}
.vt-turno .tb{flex:1;min-width:0}
.vt-carr .m{font-weight:800;font-size:16px}
@media (max-width:640px) {
.vt-turno .hr{width:74px;font-size:11.5px}
.vt-donetag{font-size:13px;padding:5px 11px}
}
.vt-drafttag{display:none}
/* 7.41: la portada de la venta se recorta SIEMPRE dentro de su caja, gane la regla que gane */
.vt-cover{overflow:hidden!important}
/* ---- 7.75.3 · Ventas (participación) ---- */
@keyframes vthIn{from{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:none}}
@keyframes vthShine{from{transform:translateX(-120%)}to{transform:translateX(220%)}}
.vth-cv{position:relative;background:linear-gradient(135deg,var(--vc),color-mix(in srgb,var(--vc) 40%,#000)) center/cover;min-height:180px;display:grid;place-items:center}
.vth-cvi{color:rgba(255,255,255,.9)}
.vth-area{position:absolute;left:10px;bottom:10px;padding:3px 10px;border-radius:99px;background:rgba(0,0,0,.55);color:#fff;font-size:11px;font-weight:700;backdrop-filter:blur(4px)}
.vth-kick{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--vc)}
.vth .evcd{--evc:var(--vc)}
.vth-gbar{background:var(--surface-2);overflow:hidden;position:relative}
.vth-me-h{display:flex;gap:12px;align-items:center}
.vth-ring::before{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--surface)}
.vth-step{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:var(--surface);border:1px solid var(--line);font-size:13px}
.vth-opts{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.vth-o {
  display:flex;
  align-items:center;
  gap:6px;
  padding:9px 10px;
  border-radius:12px;
  border:1px solid color-mix(in srgb,var(--vc) 40%,var(--line));
  background:var(--surface);
  color:var(--ink);
  font:inherit;
  font-size:12.5px;
  font-weight:700;
  cursor:pointer;
  text-align:left;
  transition:transform .12s,background .12s;
}
.vth-o:hover{transform:translateY(-1px);background:color-mix(in srgb,var(--vc) 12%,var(--surface))}
@media (max-width:1000px) {
.vth{grid-template-columns:150px minmax(0,1fr)}
.vth-me{grid-column:1/-1;border-left:0;border-top:1px solid var(--line)}
}
@media (max-width:620px) {
.vth{grid-template-columns:1fr}
.vth-cv{min-height:130px}
}
.vt-prep-h{display:flex;align-items:center;gap:6px;font-weight:700}
.vt-prep-bar{background:var(--line);overflow:hidden}
.vo-funds{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.vo-fund{justify-content:center}
.vo-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.vo-sec>summary::before{content:"▸";color:var(--muted);transition:transform .2s}
.vo-sec[open]>summary::before{transform:rotate(90deg)}
.vo-n{font-size:11px;font-weight:800;padding:1px 8px;border-radius:99px;background:var(--surface-2)}
.vo-sec.pendw{border-left:4px solid #ef4444}
@media (max-width:900px) {
.vo-hero{grid-template-columns:1fr}
}
@media (max-width:520px) {
.vo-kpis{grid-template-columns:1fr 1fr;gap:8px}
.vo-kpi em{display:none}
.vo-ic{width:32px;height:32px}
.vo-fund{padding:10px 12px}
}
.vto-pane{animation:rpIn .2s ease}
.vto-prep{padding:14px}
.vto-ph{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.vto-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px}
.vto-it{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:12px;border:1px dashed color-mix(in srgb,#f59e0b 55%,var(--line));background:color-mix(in srgb,#f59e0b 6%,transparent);color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer;text-align:left}
/* 7.81 · Ventas: plantillas, historial y lista de compras */
.vt-ib{display:inline-grid;place-items:center;width:30px;height:30px;flex:none;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;padding:0}
.vt-ib:hover{background:var(--surface-2);color:var(--ink)}
.vt-cmp-bar{display:block;height:6px;border-radius:99px;background:var(--surface-2);overflow:hidden;margin:2px 0 4px}
.vt-cmp-add{display:flex;gap:6px;margin:0 0 10px;flex-wrap:wrap}
.vt-cmp-list{display:flex;flex-direction:column;gap:6px}
.vt-cmp-row{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:8px 8px 8px 10px;background:var(--surface)}
.vt-cmp-ck{position:relative;flex:none;cursor:pointer;margin:0}
.vt-cmp-ck input:focus-visible+i{outline:2px solid var(--accent);outline-offset:2px}
.vt-cmp-ck input:disabled+i{opacity:.6}
.vt-cmp-cost{font-weight:800;font-size:13px;color:#16a34a;white-space:nowrap}
.vt-cmp-g{white-space:nowrap}
.vt-cmp-sep{font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin:8px 2px 0}
.vt-cmp-foot{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.vt-subdlg{max-width:520px}
.vt-apchk{display:flex;flex-wrap:wrap;gap:4px 16px}
.vt-from{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.vt-plsec{margin-bottom:12px}
.vt-tpls{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.vt-tpl{margin:0;padding:12px;border-top:4px solid var(--ac);display:flex;flex-direction:column;gap:8px}
.vt-tpl-h{display:flex;gap:10px;align-items:center}
.vt-tpl-dow{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:color-mix(in srgb,var(--ac) 18%,transparent);color:var(--ac);font-weight:900;font-size:13px;text-transform:uppercase}
.vt-tpl-n{display:flex;gap:6px;flex-wrap:wrap}
.vt-tpl-t{display:flex;flex-direction:column;gap:2px;font-size:12.5px;color:var(--muted)}
.vt-tpl-b{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}
.vt-pldow{display:flex;gap:4px;flex-wrap:wrap}
.vt-hist{display:flex;flex-direction:column;gap:6px}
.vt-hrow{display:grid;grid-template-columns:56px 1fr auto auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:var(--surface)}
.vt-hdate{display:flex;flex-direction:column;align-items:center;line-height:1.1;border-radius:10px;background:var(--surface-2);padding:4px 0}
.vt-hdate.past{opacity:.75}
.vt-hmain .vt-st{font-size:10.5px;font-weight:800;padding:1px 7px;border-radius:99px;background:var(--surface-2)}
.vt-hmoney{display:flex;flex-direction:column;align-items:flex-end;text-align:right}
.vt-hbtns{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.vt-red-h{margin:14px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.vt-red-rows{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}
.vt-red-row{display:flex;gap:6px;align-items:center}
.vt-red-ppl{display:inline-flex;align-items:center;gap:2px;font-size:12px;color:var(--muted);white-space:nowrap}
@media (max-width:700px) {
.vt-hrow{grid-template-columns:52px 1fr}
.vt-hmoney{grid-column:2;align-items:flex-start;text-align:left}
.vt-hbtns{grid-column:1/-1;justify-content:flex-start}
.vt-red-row{flex-wrap:wrap}
}
/* 7.79 · permisos de Ventas */
.vt-plegend{margin:0 0 10px;border:1px solid var(--line);border-radius:12px;padding:8px 12px;background:var(--surface-2)}
.vt-plegend dt{font-weight:700}
.vt-plegend dd{margin:0;color:var(--muted,#888)}
@media (max-width:640px) {
.vt-plegend dd{margin-bottom:6px}
}
.vt-pchips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.vt-pchip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;padding:3px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line)}
.vt-pchip.r-admin,.vt-prow select.r-admin{border-color:#dc2626}
.vt-pchip.r-tes,.vt-prow select.r-tes{border-color:#16a34a}
.vt-pchip.r-lider,.vt-prow select.r-lider{border-color:#7c3aed}
.vt-pchip.r-staff,.vt-prow select.r-staff{border-color:#2563eb}
.vt-prow select.r-none{opacity:.7}
.vt-plist{display:grid;gap:2px}
.vt-prow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line)}
@media (max-width:640px) {
.vt-prow{flex-wrap:wrap}
.vt-prow .who{flex:1 1 100%}
}
/* 7.78 · caja, compartir cuentas, links de pago */
.vt-mseg{display:flex;flex-wrap:wrap;gap:6px}
.vt-ln .f2>.f{min-width:0}
.vt-mseg input:checked+span{background:color-mix(in srgb,var(--accent) 16%,var(--surface));border-color:var(--accent);color:var(--ink);font-weight:600}
.vt-mseg input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.vt-medio{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:1px 7px;border-radius:999px;vertical-align:1px}
.vt-medio.efectivo{background:color-mix(in srgb,#16a34a 16%,transparent);color:#15803d}
.vt-medio.banco{background:color-mix(in srgb,#2563eb 16%,transparent);color:#1d4ed8}
.vt-caja{margin:10px 0;padding:12px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);display:grid;gap:8px}
.vt-cic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,#16a34a 16%,transparent);color:#16a34a}
.vt-cgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.vt-cbar{height:8px;border-radius:99px;background:color-mix(in srgb,#2563eb 55%,var(--surface));overflow:hidden}
.vt-cbtns{display:flex;flex-wrap:wrap;gap:6px}
.vt-cjtot{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:12px;background:var(--surface-2);margin-bottom:10px}
.vt-cjbn{padding:9px 0;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}
#cj-chk.ok{color:#16a34a}
#cj-chk.bad{color:#d97706}
.vt-cjh{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.vt-cjr{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px dashed var(--line)}
.vt-bshare{margin-top:6px;justify-self:start}
.vt-bsh{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:16px;align-items:start}
.vt-bsh-areas{display:grid;gap:4px}
.vt-bsh-btns{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
#bsh-msg{width:100%}
@media (max-width:700px) {
.vt-bsh{grid-template-columns:1fr}
.vt-bsh-r{order:-1;max-width:260px;margin:0 auto}
}
.vo-sharebar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.vt-lic{flex:none;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.vt-lbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
.vt-lf{margin:12px 0 8px}
.vt-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.vt-link{display:flex;flex-direction:column;gap:4px;border-top:4px solid var(--ac,#3D82D0)}
.vt-lt{display:flex;align-items:flex-start;gap:8px;justify-content:space-between}
.vt-lam{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums}
.vt-lbtns{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.vt-lsh{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start}
.vt-lurl{display:flex;gap:6px;margin:10px 0 0}
.vt-lpays{display:grid;gap:2px}
.vt-lpay{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px dashed var(--line)}
@media (max-width:700px) {
.vt-lsh{grid-template-columns:1fr}
.vt-lsh-r{order:-1;justify-self:center}
}
.vt-gpay{margin-top:14px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface-2)}
.vt-gpay code{font-size:12.5px;background:var(--surface);padding:1px 5px;border-radius:5px}
.vt-mediobar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px;padding:8px 10px;border-radius:12px;background:var(--surface-2)}
.vt-bitdel{float:right;margin-left:8px;color:#ef4444;border-color:color-mix(in srgb,#ef4444 40%,var(--line))}
/* 7.66 · Ventas en dos menús, rol de la venta, aportación, pagos en línea y bitácora */
.vt-modes{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 14px}
.vt-orgbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}
.vt-sech{margin:18px 0 8px;font-size:15px;display:flex;align-items:center;gap:6px}
.vt-mine{margin-bottom:12px}
.vt-mine-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.vt-mc{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px;border-radius:12px;background:var(--surface-2);margin-top:6px}
.vt-menus{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.vt-menuc{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--surface)}
.vt-paybar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.vt-online{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;background:color-mix(in srgb,#3D82D0 16%,transparent);color:#3D82D0;border-radius:999px;padding:1px 7px;vertical-align:middle}
.vt-apmode label:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface));font-weight:700}
.vt-aprow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vt-aprow .vt-apsig{font-weight:800;color:var(--muted)}
.vt-apobra{align-items:start}
.vt-tch{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.vt-tchip{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--ink);border-radius:999px;padding:2px 9px}
.vt-libres{padding:6px 8px;border-radius:8px;background:var(--surface-2)}
.vt-payopts{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin-top:6px}
.vt-payo{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:1.5px solid var(--line);border-radius:12px;padding:12px;background:var(--surface);color:var(--ink);cursor:pointer;font:inherit;text-align:left}
.vt-payo:hover{border-color:var(--accent)}
.vt-payo.busy{opacity:.6;pointer-events:none}
.vt-paydlg{border:0;border-radius:18px;padding:0;max-width:min(440px,92vw);background:var(--surface);color:var(--ink);box-shadow:0 20px 60px rgba(0,0,0,.35)}
.vt-paydlg::backdrop{background:rgba(0,0,0,.45)}
.vt-paydlg-b{padding:18px}
.vt-payok{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:10px}
.vt-bitbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.vt-bit{display:flex;flex-direction:column;gap:4px}
.vt-bitr{display:grid;grid-template-columns:150px 1fr;gap:10px;padding:7px 9px;border-radius:9px;background:var(--surface-2);font-size:13px}
.vt-bitr .w{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.vt-bitr.a-mov_del,.vt-bitr.a-venta_del{border-left:3px solid #E4572E}
.vt-bitr.a-mov_edit{border-left:3px solid #F0B429}
.vt-bitr.a-pago_linea{border-left:3px solid #3D82D0}
.vt-pst{font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 8px;background:var(--surface);border:1px solid var(--line)}
.vt-pst.pagado{background:#22A35A;color:#fff;border-color:#22A35A}
.vt-pst.cancelado,.vt-pst.vencido,.vt-pst.error{color:#E4572E}
@media (max-width:640px) {
.vt-bitr{grid-template-columns:1fr;gap:2px}
.vt-mc .m{align-items:flex-start}
}
/* 7.88 · QR de transferencia y selector de grabaciones */
.qr-box{display:flex;flex-direction:column;align-items:center;gap:10px}
.qr-info{display:grid;gap:3px;width:100%;font-size:13px}
.qr-nota{margin:0;text-align:center;line-height:1.4}
.vt-aylist{display:flex;flex-direction:column;gap:6px}
.vt-ayr{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--surface-2);border-left:3px solid transparent}
.vt-ayn{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.vt-aychs{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}
.vt-aych{display:inline-flex;align-items:center;gap:3px;padding:1px 8px;border-radius:999px;font-size:.76rem;background:var(--surface);border:1px solid var(--line,rgba(127,127,127,.25));max-width:100%;overflow-wrap:anywhere}
.vt-aych.d{border-color:color-mix(in srgb,#22c55e 55%,transparent)}
.vt-aych.o{border-color:color-mix(in srgb,#3b82f6 55%,transparent)}
.vt-aych.a{border-color:color-mix(in srgb,#f59e0b 60%,transparent)}
.vt-aysi{margin-top:10px}
.vt-aysi>summary span{padding:1px 8px;border-radius:999px;background:color-mix(in srgb,#22c55e 18%,var(--surface-2));font-size:.8rem}
.vt-aytipo{display:flex;flex-direction:column;gap:6px;margin:0 0 10px}
.vt-part-cero{padding:8px 10px;border-radius:10px;background:color-mix(in srgb,#ef4444 12%,var(--surface-2));margin:0 0 10px;overflow-wrap:anywhere}
.vt-part-wrap{overflow-x:auto;max-width:100%}
.vt-part-t{border-collapse:collapse;width:100%;font-size:.86rem}
.vt-part-t th,.vt-part-t td{padding:5px 8px;border-bottom:1px solid var(--line,rgba(127,127,127,.2));text-align:center;white-space:nowrap}
.vt-part-v{background:none;border:0;color:inherit;font:inherit;font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:1px;margin:auto}
.vt-part-t tr.cero td:first-child{color:#ef4444;font-weight:600}
.vt-pt{font-weight:600}
@media (max-width:640px) {
.vt-ayr{flex-wrap:wrap}
}
/* 7.98: quién pagó el gasto y reembolsos */
.vt-mseg3{flex-wrap:wrap}
.vt-medio.reemb{background:color-mix(in srgb,#f59e0b 20%,var(--surface-2));color:var(--ink)}
.vt-cre{display:block;margin:6px 0 2px;padding:6px 8px;border-radius:8px;background:color-mix(in srgb,#f59e0b 14%,var(--surface-2));overflow-wrap:anywhere}
/* 7.98: la venta lleva sus cuentas aparte del fondo */
.vt-fnote{margin:-4px 0 12px;display:flex;gap:6px;align-items:flex-start;overflow-wrap:anywhere}
.vt-encurso{display:block;margin-top:4px;overflow-wrap:anywhere}
/* ===== 7.112 · Ventas: tarjetas y cuentas del fondo ===== */
.vt-cta{position:relative;border:1px solid var(--line);border-radius:12px;padding:8px 40px 4px 10px;margin:0 0 8px;background:var(--surface-2)}

/* ===== Estilos: audio ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.au-svc{padding:0;overflow:hidden}
.au-svc-h:hover{background:var(--bg2,rgba(127,127,127,.08))}
.au-cov .chip.off{opacity:.45}
.au-ch{width:18px;text-align:center;color:var(--muted)}
.au-tbl{padding:0 14px 14px}
.au-th{text-align:center;white-space:nowrap}
.au-td{text-align:center}
.au-ck{display:inline-flex;cursor:pointer}
.au-g{background:var(--bg2,rgba(127,127,127,.15));font-size:10px}
.au-empty{padding:12px 14px}
.au-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.au-acts .chip.off{opacity:.4}
.au-med{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;color:#7a5200;background:linear-gradient(180deg,#ffe9a8,#ffcf5c)}
.au-stars{display:flex;gap:2px}
.au-star{background:none;border:0;cursor:pointer;font-size:22px;line-height:1;color:var(--line,rgba(127,127,127,.35));padding:0 1px}
.au-lvls{display:flex;gap:4px}
.au-lvl{cursor:pointer;border:1px solid var(--line,rgba(127,127,127,.3));background:none;color:var(--muted);border-radius:999px;padding:4px 12px;font-size:12px;font-weight:700}
.au-sm{color:#f5b301;white-space:nowrap}
.au-pk{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:8px;cursor:pointer}
@media (max-width:700px) {
.au-svc-h{gap:6px}
.au-cov{width:100%}
}
/* 7.54 · Team Audio v2 */
.au-me{display:flex;gap:14px;align-items:flex-start;border-left:4px solid #2ee6d6;background:linear-gradient(135deg,rgba(46,230,214,.10),transparent 60%)}
.au-me-row.next{outline:2px solid #2ee6d6}
.au-draft{background:rgba(245,179,1,.18);color:#a67c00}
.au-who{display:inline-flex;gap:8px;align-items:center}
.au-tbl tr.au-na td{opacity:.55}
.au-tbl tr.au-na td.name{opacity:1}
.au-nachip{background:var(--danger-bg,rgba(239,68,68,.15));color:var(--danger,#ef4444)}
.au-sem{border-left:4px solid #2ee6d6}
.au-vb{position:relative;display:inline-flex;flex-direction:column;align-items:center;gap:3px;min-width:74px;padding:7px 8px 6px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--muted);font:600 11.5px/1.15 var(--body,inherit);cursor:pointer;white-space:nowrap}
.au-vn{position:absolute;top:2px;right:8px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--danger,#E4262C);color:#fff;font:700 10px/17px system-ui;font-style:normal;text-align:center}
@media (max-width:640px) {
.au-vb{min-width:0;width:68px;flex:0 0 68px;white-space:normal;text-align:center;font-size:10.5px;padding:6px 3px}
}
.au-tec{display:block}
/* 7.94 · Team Audio: necesidades de Miguel (actividades en rol, acólitos, habilidad 0-100, inventario, incidentes, préstamos, actividades del staff) */
.au-line-act{flex-wrap:wrap}
.au-inrol{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;white-space:nowrap;color:var(--muted)}
.au-td.au-low input:not(:checked)+span{opacity:.35}
.au-warn{display:block;font-size:10px;color:var(--danger);font-weight:700}
.au-gpick{display:flex;flex-direction:column;gap:2px;max-height:48vh;overflow:auto;margin-top:8px}
.au-gp{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;cursor:pointer}
.au-gp:hover{background:var(--surface-2)}
.au-sa-new{display:grid;grid-template-columns:190px minmax(0,1fr) minmax(0,1.4fr) auto;gap:6px;align-items:center}
.au-sa-list{display:flex;flex-direction:column;gap:4px;margin-top:10px}
.au-sa-it{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:8px;align-items:center;padding:6px 8px;border-radius:8px;background:var(--surface-2)}
.au-sa-it.past{opacity:.55}
.au-prox{display:flex;gap:12px;align-items:flex-start;border-left:4px solid #8e44ad}
.au-prox-i{flex:0 0 40px;height:40px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,#8e44ad 18%,var(--surface));color:#8e44ad}
.au-prox-f{display:inline-block;margin-top:6px;font-weight:700;font-size:12.5px;color:#8e44ad}
@media (max-width:760px) {
.au-sa-new{grid-template-columns:1fr}
.au-sa-it{grid-template-columns:1fr auto}
}

/* ===== Estilos: monitor ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.pm-f{display:inline-flex;gap:6px;align-items:center}
.pm-wrap{position:relative;border-radius:14px;overflow:hidden;background:#0b0d13;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
#pm-cv{display:block;width:100%;height:clamp(300px,58vh,620px);touch-action:none}
.pm-idle{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:20px;background:rgba(6,8,13,.72)}
.pm-pk:hover{background:var(--bg2,rgba(127,127,127,.14))}
.pm-c{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 8px;border-radius:8px;background:var(--bg2,rgba(127,127,127,.1))}
@media (max-width:700px) {
#pm-cv{height:clamp(280px,62vh,560px)}
}
.pm-ib.pm-rec.on .ico{color:#fff}
@keyframes pmBlink{50%{opacity:.6}}
.pm-keych{background:rgba(46,230,214,.18);color:#0b7f78;font-weight:700}
.pm-wrap.rec{box-shadow:0 0 0 2px #ef4444}
.pm-wrap.rev #pm-cv{cursor:col-resize}
.pm-recdot{position:absolute;top:10px;left:12px;display:flex;gap:6px;align-items:center;background:rgba(239,68,68,.9);color:#fff;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:800}
.pm-recdot::before{content:"";width:7px;height:7px;border-radius:50%;background:#fff;animation:pmBlink 1.2s infinite}
.pm-grp2{border:1px solid var(--line,rgba(127,127,127,.22));border-radius:12px;overflow:hidden}
.pm-grp-h{display:flex;gap:10px;align-items:center;width:100%;padding:10px 12px;border:0;background:none;color:inherit;cursor:pointer;text-align:left}
.pm-grp-h:hover{background:var(--bg2,rgba(127,127,127,.1))}
.pm-grp2.off .pm-grp-h{cursor:not-allowed}
.pm-wrap.rev #pm-cv{cursor:ew-resize;touch-action:none}
.pmv{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:8px 12px;margin:0 0 8px;border:1px solid color-mix(in srgb,#7CF3C1 45%,var(--line));border-radius:12px;background:color-mix(in srgb,#7CF3C1 8%,var(--surface));font-size:13px}
.pmv-g{display:inline-flex;gap:4px;align-items:center}
/* 7.82 · Monitor de voz: los grupos no se encogen dentro de la lista con scroll (antes un Multitrack largo quedaba cortado) */
.pm-grps>.pm-grp2{flex-shrink:0}
/* 7.62 · monitor en celular, zoom de la revisión */
.pm-float{position:absolute;left:8px;bottom:8px;display:flex;gap:6px;z-index:3}
.pm-fb{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:0;background:rgba(10,12,18,.72);color:#e8eaf0;cursor:pointer;backdrop-filter:blur(3px);box-shadow:0 4px 14px rgba(0,0,0,.35)}
.pm-fb.pm-rec.on .ico{color:#fff}
.pm-rota{display:flex;gap:14px;align-items:center;margin-bottom:10px;border-left:4px solid var(--blue)}
@media (max-width:820px) and (orientation:portrait) {
#pm-cv{height:clamp(240px,42vh,420px)}
}
/* 7.63: los flotantes van ARRIBA del lienzo (abajo los tapaba la barra de la app) */
.pm-float{top:8px;bottom:auto}
/* aviso de girar: tapa el monitor */
.pm-girar{position:fixed;inset:0;z-index:950;background:rgba(8,10,16,.94);display:grid;place-items:center;padding:24px;color:#fff;text-align:center}
.pm-girar-in{max-width:320px;display:grid;gap:12px;justify-items:center}
.pm-girar-no{border:0;background:none;color:rgba(255,255,255,.62);font:inherit;font-size:13px;text-decoration:underline;cursor:pointer;padding:6px}
/* pantalla completa del monitor */
body.pm-fs-on:has(#panel-pitch:not([hidden])) #sv-topbar,body.pm-fs-on:has(#panel-pitch:not([hidden])) #mainnav{display:none!important}
body.pm-fs-on #panel-pitch:not([hidden]) {
  position:fixed;
  inset:0;
  z-index:900;
  margin:0;
  max-width:none;
  background:var(--pm-bg,#0b0d13);
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:6px 8px;
  padding-top:max(6px,env(safe-area-inset-top));
  padding-bottom:max(6px,env(safe-area-inset-bottom));
  overflow:hidden;
}
body.pm-fs-on #panel-pitch .pm-bar{display:flex;flex-wrap:nowrap;overflow-x:auto;align-items:center;gap:6px;padding:6px;scrollbar-width:none}
body.pm-fs-on #panel-pitch .pm-bar::-webkit-scrollbar{display:none}
body.pm-fs-on #panel-pitch .pm-ib{flex:none;min-width:44px;padding:6px 8px}
body.pm-fs-on #panel-pitch .pm-ib span{display:none}
body.pm-fs-on #panel-pitch .pm-f{flex:none}
body.pm-fs-on #panel-pitch .pm-f label{display:none}
body.pm-fs-on #panel-pitch .pm-sep{display:none}
body.pm-fs-on #panel-pitch .pm-fs-b{background:var(--accent);color:#fff;border-color:var(--accent)}
body.pm-fs-on #panel-pitch .pm-wrap{flex:1 1 auto;min-height:120px;position:relative;display:flex}
body.pm-fs-on #panel-pitch .pm-tip{display:none}
body.pm-fs-on #panel-pitch .pm-tape{padding:6px 8px;display:flex;flex-wrap:nowrap;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:none}
body.pm-fs-on #panel-pitch .pm-tape::-webkit-scrollbar{display:none}
body.pm-fs-on #panel-pitch .pm-tape .pm-rh{display:none}
body.pm-fs-on #panel-pitch .pm-tape .pm-tstats{display:flex;gap:4px;margin:0;flex:none}
body.pm-fs-on #panel-pitch .pm-tape .pm-ts{padding:3px 8px;display:flex;align-items:baseline;gap:4px;min-width:0}
body.pm-fs-on #panel-pitch .pm-tape .pm-ts b{font-size:13px}
body.pm-fs-on #panel-pitch .pm-tape .pm-ts small{font-size:10.5px}
body.pm-fs-on #panel-pitch .pm-tape .pm-ract{flex:1 0 auto}
body.pm-fs-on #panel-pitch .pm-tape .pm-ract{flex-wrap:nowrap;overflow-x:auto;gap:6px;scrollbar-width:none}
body.pm-fs-on #panel-pitch .pm-tape .pm-ract::-webkit-scrollbar{display:none}
body.pm-fs-on #panel-pitch .pm-tape .pm-ract>*{flex:none}
body.pm-fs-on #panel-pitch .pm-tape .btn{padding:5px 10px}
body.pm-fs-on #panel-pitch .pm-tape [data-pmt="again"]{font-size:0;padding:5px 9px}
body.pm-fs-on #panel-pitch .pm-tape [data-pmt="again"] .ico{width:16px;height:16px;margin:0}
body.pm-fs-on #panel-pitch .pm-tape [data-pmt="close"]{font-size:0;padding:5px 8px}
body.pm-fs-on #panel-pitch .pm-tape [data-pmt="close"]::after{content:"Cerrar";font-size:13px}
@media (max-width:820px) and (orientation:landscape) {
#pm-cv{height:min(76vh,460px)}
}
/* 7.86 · mis grabaciones del Monitor */
.pmv-list{display:flex;flex-direction:column;gap:6px;max-height:54vh;overflow:auto}
.pmv-it{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:11px;background:var(--bg2,rgba(127,127,127,.1))}
.pmv-avance{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;margin-bottom:10px;background:var(--bg2,rgba(127,127,127,.12));border-left:4px solid var(--muted)}
.pmv-avance.sube{border-left-color:#22c55e}
.pmv-avance.baja{border-left-color:#f5b301}
@media (max-width:700px) {
.pmv-it{flex-wrap:wrap}
.pmv-t{flex-basis:100%}
}
.pmv-sel{display:flex;gap:8px;align-items:center;margin-bottom:10px}
/* Monitor de voz: inicio rápido en vertical (ya no bloquea) */
.pm-girar-in.qs{max-width:340px;display:flex;flex-direction:column;gap:10px;text-align:left}
.pm-qs{display:flex;align-items:center;gap:12px;width:100%;background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:12px 14px;color:var(--ink);font:inherit;cursor:pointer;text-align:left}
.pm-qs:hover{border-color:var(--accent)}
.pm-qs-foot{display:flex;justify-content:space-between;gap:8px;margin-top:2px}
/* 7.111 · Material pendiente */
.pmt{display:flex;flex-direction:column;gap:14px;max-width:1100px;margin:0 auto}
/* 7.114.1 · Monitor de voz: entrenador vocal y solfeo de oído interno */
.pm-ent{margin-bottom:10px}
.pme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin:8px 0}
.pme-tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);cursor:pointer;font:inherit}
.pme-tile:hover{border-color:var(--accent)}
.pme-racha{font-size:13px;margin:4px 0 2px;color:#B45309}
.pme-de{font-size:11.5px;margin:6px 0}
.pme-de a{color:inherit;text-decoration:underline}
.pme-foot{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.pme-ruth{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12.5px;padding:6px 10px;margin:-2px 0 8px;border-radius:10px;background:color-mix(in srgb,var(--accent) 12%,transparent)}
.pme-ej{display:flex!important;justify-content:space-between;align-items:center;gap:10px;width:100%;text-align:left;margin-bottom:6px;text-transform:none}
.pme-st{white-space:nowrap;color:#f5b301}
.pme-gr{margin:12px 0 6px;font-size:13.5px}
.pme-src{display:inline-block;font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:999px;background:color-mix(in srgb,#a855f7 16%,transparent);color:#7e22ce;vertical-align:1px}
.pme-opts{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.pme-seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.pme-g{display:inline-flex;align-items:center;gap:4px;font-size:12.5px}
.pme-txt{margin:4px 0 8px;line-height:1.5}
.pme-ritmo{overflow-x:auto;overflow-y:hidden;border-radius:10px;background:var(--surface-2);padding:2px 0;margin:6px 0 2px}
.pme-sb{stroke:currentColor;stroke-opacity:.45;stroke-width:1.4}
.pme-sk{stroke:currentColor;stroke-opacity:.12}
.pme-sn{font-size:9.5px;fill:currentColor;fill-opacity:.5}
.pme-ss{font-size:10.5px;font-weight:700;fill:currentColor;fill-opacity:.75}
.pme-sr{font-size:11px;font-style:italic;fill:#3b82f6}
.pme-sm{fill:#3b82f6;fill-opacity:.75}
.pme-sg{stroke:#3b82f6;stroke-opacity:.75;stroke-width:7;stroke-linecap:round}
.pme-fig{margin:2px 0 6px;font-size:11.5px}
.pme-live{display:flex;flex-wrap:wrap;gap:8px 24px;margin:6px 0}
.pme-cent{font-size:15px;font-weight:700;min-height:22px}
.pme-big{font-size:42px;font-weight:800;text-align:center;line-height:1.1;margin:8px 0 4px;font-variant-numeric:tabular-nums}
.pme-pb{position:relative;height:12px;border-radius:6px;background:var(--line);margin:8px 0}
.pme-cv{display:block;width:100%;height:96px;margin:8px 0 4px;border-radius:10px;background:#0b0d13}
.pme-ring{--p:0%;width:150px;height:150px;margin:8px auto;border-radius:50%;background:conic-gradient(var(--accent) var(--p),var(--line) 0);display:grid;place-items:center}
.pme-gauge{position:relative;height:10px;margin:8px 0 18px;border-radius:5px;background:linear-gradient(90deg,#f5b301 0 33.3%,#22c55e 33.3% 66.6%,#f5b301 66.6%)}
.pme-reto{margin:6px 0}
.pme-reps{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0}
.pme-not{margin:6px 0}
.pme-cuid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.pm-soliv{margin-top:8px;font-size:14px}
@media (max-width:560px) {
.pme-big{font-size:34px}
.pme-grid{grid-template-columns:1fr 1fr}
}
/* ===== 7.112 · nivel como músico ===== */
.niv{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:14px;margin:0 0 14px}
@media (max-width:640px) {
.niv{padding:12px;border-radius:16px}
}

/* ===== Estilos: alertas ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
/* 7.83 · alertas urgentes de líderes */
#al-bars{position:fixed;top:0;left:0;right:0;z-index:9990;display:flex;flex-direction:column;gap:4px;padding:6px max(8px,env(safe-area-inset-right)) 6px max(8px,env(safe-area-inset-left));padding-top:max(6px,env(safe-area-inset-top));pointer-events:none}
.al-bar{pointer-events:auto;display:flex;align-items:center;gap:12px;max-width:980px;width:100%;margin:0 auto;box-sizing:border-box;padding:10px 12px;border-radius:14px;color:#fff;box-shadow:0 10px 30px -8px rgba(0,0,0,.55);border:2px solid rgba(255,255,255,.35)}
.al-bar.rojo{background:linear-gradient(90deg,#b91c1c,#ef4444,#b91c1c);background-size:200% 100%}
.al-bar.ambar{background:linear-gradient(90deg,#b45309,#f59e0b,#b45309);background-size:200% 100%;color:#1a1204}
@keyframes alFlash{0%,100%{filter:brightness(1);box-shadow:0 0 0 0 rgba(239,68,68,.75),0 10px 30px -8px rgba(0,0,0,.55)}50%{filter:brightness(1.25);box-shadow:0 0 0 8px rgba(239,68,68,0),0 10px 30px -8px rgba(0,0,0,.55)}}
@keyframes alSlide{from{background-position:0 0}to{background-position:200% 0}}
.al-ic{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.2)}
.al-bar.flash .al-ic{animation:alShake .6s ease-in-out infinite}
@keyframes alShake{0%,100%{transform:rotate(0)}25%{transform:rotate(-14deg)}75%{transform:rotate(14deg)}}
.al-ok{flex:none;display:inline-flex;align-items:center;gap:6px;font:inherit;font-weight:800;font-size:14px;padding:9px 14px;border-radius:999px;border:0;background:#fff;color:#b91c1c;cursor:pointer}
.al-x,.al-end{flex:none;font:inherit;font-size:12.5px;font-weight:700;border:0;border-radius:999px;padding:6px 10px;background:rgba(255,255,255,.2);color:inherit;cursor:pointer}
.al-acks{font:inherit;font-weight:800;color:inherit;background:rgba(0,0,0,.18);border:0;border-radius:99px;padding:0 7px;cursor:pointer;text-decoration:underline dotted}
.al-more{pointer-events:auto;margin:0 auto;font-size:12px;font-weight:700;color:#fff;background:#b91c1c;border-radius:99px;padding:2px 10px}
.al-hbtn{color:#ef4444}
.al-chips{display:flex;flex-wrap:wrap;gap:6px;margin:-2px 0 12px}
.al-chip{font:inherit;font-size:12.5px;padding:5px 10px;border-radius:99px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);cursor:pointer}
.al-chip:hover{border-color:var(--ink)}
.al-seg{display:flex;flex-wrap:wrap;gap:4px}
.al-prev{margin:12px 0 4px;display:flex;flex-direction:column;gap:4px}
.al-prev .al-bar{box-shadow:none}
.al-send{background:#dc2626;border-color:#dc2626;color:#fff}
.al-rec{display:flex;flex-direction:column;gap:6px}
.al-ri{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:7px 10px;flex-wrap:wrap}
.al-ri.live{border-color:#ef4444}
.al-dot{width:10px;height:10px;border-radius:50%;background:#ef4444;flex:none}
.al-dot.ambar{background:#f59e0b}
.al-ackl{display:flex;flex-direction:column;gap:4px;max-height:50vh;overflow:auto}
@media (max-width:640px) {
.al-bar{gap:8px;padding:8px 10px}
.al-ic{width:32px;height:32px}
.al-end{display:none}
.al-ok{padding:8px 11px;font-size:13px}
}
#al-btn{color:#ef4444!important}
.al-grps{display:flex;flex-wrap:wrap;gap:6px}
.al-pend{display:flex;flex-wrap:wrap;gap:4px}

/* ===== Estilos: audiotec ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
body.al-on{padding-top:var(--alh,64px)}
.at-top{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.at-acts{display:flex;gap:8px;flex-wrap:wrap}
.at-h4{margin:0 0 8px;font-size:14px}
.at-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font:700 11px/1.4 system-ui;color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent);border:1px solid color-mix(in srgb,var(--c) 35%,transparent);white-space:nowrap}
.at-q{font-weight:600;color:var(--muted);font-size:12px}
.at-in{width:100%;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:8px 10px;font:inherit}
.at-tabs{display:flex;gap:4px;overflow-x:auto;margin:0 0 10px;padding:3px;background:var(--surface-2);border-radius:10px;scrollbar-width:none}
.at-tabs::-webkit-scrollbar{display:none}
/* equipo */
.at-cov{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.at-covi{display:flex;flex-direction:column;padding:10px;border-radius:10px;background:var(--surface-2);border-left:4px solid #2e9e5b}
.at-covi.low{border-left-color:#E4262C}
.at-covn{font:800 26px/1.1 var(--display,inherit)}
.at-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.at-memh{display:flex;gap:10px;align-items:center}
.at-roles{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.at-role{display:inline-flex;gap:5px;align-items:center;padding:3px 8px;border-radius:8px;background:var(--surface-2);font:700 11.5px system-ui}
.at-role.lv1{opacity:.75}
.at-memf{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}
.at-sw{display:inline-flex;gap:5px;align-items:center;font-size:12px;color:var(--muted);margin-left:auto}
.at-pick{display:flex;flex-direction:column;gap:4px;max-height:42vh;overflow:auto;margin:8px 0}
.at-pi{display:flex;justify-content:space-between;gap:8px;align-items:center;text-align:left;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer}
.at-pi:hover{border-color:var(--accent)}
.at-new{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.at-rrow{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--line)}
.at-logi{font-size:12.5px;padding:3px 0;border-bottom:1px solid var(--line)}
/* tablas */
.at-tblc{padding:10px}
.at-tscroll{overflow-x:auto;max-width:100%}
.at-t{width:100%;border-collapse:collapse;font-size:13px}
.at-t tr.best td{background:color-mix(in srgb,#2e9e5b 10%,transparent)}
.at-ti{width:100%;min-width:70px;border:1px solid transparent;background:transparent;color:var(--ink);border-radius:6px;padding:5px 6px;font:inherit;font-size:13px}
.at-ti:hover{border-color:var(--line)}
.at-ti:focus{border-color:var(--accent);background:var(--bg);outline:0}
.at-num{width:58px;min-width:58px;display:inline-block;border-color:var(--line)}
.at-chn{width:40px}
.at-colbtn{display:inline-grid;place-items:center;min-width:30px;height:26px;border-radius:6px;border:1px solid var(--line);background:var(--surface-2);font:800 12px system-ui;color:var(--ink);cursor:pointer}
.at-48{color:#E4572E;font-size:11px}
.at-tfoot{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px}
.at-empty{padding:12px;margin-bottom:10px;border-radius:10px;background:color-mix(in srgb,var(--accent) 8%,var(--surface-2))}
.at-savebar{position:sticky;bottom:calc(10px + var(--kb,0px));z-index:5;display:none;gap:8px;align-items:center;justify-content:flex-end;padding:10px 12px;border-radius:12px;background:var(--ink);color:var(--surface);box-shadow:0 6px 20px rgba(0,0,0,.25);margin-top:8px}
@media (max-width:640px) {
.at-savebar{bottom:calc(72px + var(--kb,0px))}
}
.at-tioh{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.at-tion{font-weight:700;max-width:180px;border-color:var(--line)}
.at-tiog{display:grid;grid-template-columns:3fr 2fr;gap:14px}
@media (max-width:900px) {
.at-tiog{grid-template-columns:1fr}
}
.at-dwrap{overflow-x:auto}
.at-dsvg{display:block;width:100%;max-width:760px;margin:0 auto;min-width:560px;height:auto;color:#8a97a6}
.at-dbox{fill:var(--surface-2);stroke:var(--line);stroke-width:1.5}
.at-dsw{fill:color-mix(in srgb,var(--accent) 14%,var(--surface))}
.at-dtf{fill:color-mix(in srgb,#8e44ad 12%,var(--surface))}
.at-dt{font:700 13px system-ui;fill:var(--ink)}
.at-ds{font:11px system-ui;fill:var(--muted)}
.at-dl{stroke:#3b82f6;stroke-width:2;color:#3b82f6}
.at-dl2{stroke:#E4572E;color:#E4572E;stroke-dasharray:5 4}
.at-patchh{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
/* inventario */
.at-filt{display:flex;flex-direction:column;gap:8px}
.at-cats{display:flex;gap:5px;flex-wrap:wrap}
.at-inv{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.at-it{display:flex;gap:10px;align-items:flex-start;text-align:left;margin:0;cursor:pointer;color:var(--ink);font:inherit;border:1px solid var(--line)}
.at-it:hover{border-color:var(--accent)}
.at-iti{flex:0 0 52px;width:52px;height:52px;border-radius:10px;background:var(--surface-2);display:grid;place-items:center;overflow:hidden;color:var(--muted)}
.at-itb{display:flex;flex-direction:column;gap:3px;min-width:0}
.at-itm{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.at-thumb{border:0;padding:0;background:none;cursor:zoom-in;border-radius:8px;overflow:hidden;width:72px;height:72px}
.at-file{display:inline-flex;gap:4px;align-items:center;border:1px solid var(--line);background:var(--surface-2);border-radius:6px;padding:3px 7px;font:600 11px system-ui;color:var(--ink);cursor:pointer}
.at-fotorow{display:flex;gap:10px;align-items:center;margin-top:8px}
.at-fmini{padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}
/* compras y fallas */
.at-kpis{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.at-kpi{flex:1 1 140px;padding:10px 12px;border-radius:12px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--c,var(--accent))}
.at-cmp,.at-fal{display:block;width:100%;text-align:left;cursor:pointer;color:var(--ink);font:inherit;border:1px solid var(--line);border-left:5px solid var(--c)}
.at-cmp:hover,.at-fal:hover{border-color:var(--accent);border-left-color:var(--c)}
.at-cmph{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.at-cmpj{margin:6px 0;color:var(--ink);opacity:.85;font-size:13.5px}
.at-cotr{display:grid;grid-template-columns:2fr 1fr 1fr;gap:6px;padding:8px;border:1px solid var(--line);border-radius:10px;margin-bottom:6px}
.at-cotf{grid-column:span 3;display:flex;gap:8px;align-items:center}
.at-cotl{white-space:nowrap}
.at-cotl .at-thumb{width:36px;height:36px;vertical-align:middle}
.at-dec{margin-top:10px;padding:10px;border-radius:10px;background:var(--surface-2);font-size:13px}
.at-nota{padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}
.at-nrow{display:flex;gap:6px;margin:8px 0}
.at-resbox{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:8px}
/* ----------------------------- Aprende (laboratorio) ----------------------------- */
.al-srcbar{display:flex;flex-direction:column;gap:10px}
.al-srcs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.al-srcs::-webkit-scrollbar{display:none}
.al-sb{flex:0 0 auto;display:inline-flex;gap:6px;align-items:center;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:600 12.5px system-ui;cursor:pointer}
.al-play{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.al-ab{font-weight:500}
.al-vol{display:inline-flex;gap:4px;align-items:center;color:var(--muted)}
.al-sname{font-size:12px;flex:1 1 180px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.al-tf{background:#1d2126;color:#e8edf2;border-color:#0e1114;padding:12px}
.al-tf .hint{color:#9aa4ae}
.al-cvw{position:relative}
.al-cv{display:block;width:100%;height:260px;border-radius:10px;background:#14181c;touch-action:none}
.al-cvs{height:200px}
.al-cvhint{position:absolute;right:8px;bottom:22px;font:10px system-ui;color:rgba(255,255,255,.35);pointer-events:none}
@media (max-width:640px) {
.al-cv{height:210px}
.al-cvhint{display:none}
}
.al-bands{display:grid;grid-template-columns:0.7fr repeat(4,1fr);gap:8px;margin-top:10px}
@media (max-width:980px) {
.al-bands{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
}
.al-band{background:#262b31;border-radius:10px;padding:8px;border-top:3px solid var(--bc);transition:opacity .15s}
.al-bh{display:flex;gap:6px;align-items:center;margin-bottom:6px;font:700 12px system-ui;letter-spacing:.04em}
.al-on{border:1px solid #4b535c;background:#14181c;color:#9aa4ae;border-radius:5px;padding:2px 6px;font:800 10px system-ui;cursor:pointer}
.al-solo{margin-left:auto;border:1px solid #4b535c;background:transparent;color:#9aa4ae;border-radius:5px;padding:2px 6px;font:800 10px system-ui;cursor:pointer}
.al-type{background:#14181c;color:#e8edf2;border:1px solid #4b535c;border-radius:5px;font:700 10px system-ui;padding:2px}
.al-type0{font:600 10px system-ui;color:#9aa4ae}
.al-knobs{display:flex;justify-content:space-around;gap:4px;flex-wrap:wrap}
.al-knob{display:flex;flex-direction:column;align-items:center;width:64px;cursor:ns-resize;user-select:none;touch-action:none;outline:0;border-radius:8px}
.al-knob:focus-visible{box-shadow:0 0 0 2px #3fd3ff}
.al-kbg{fill:none;stroke:#0b0d10;stroke-width:5}
.al-karc{fill:none;stroke:var(--kc);stroke-width:5;stroke-linecap:round;filter:drop-shadow(0 0 3px var(--kc))}
.al-kcap{fill:#3a4149;stroke:#555e68}
.al-kptr{stroke:#fff;stroke-width:2.5;stroke-linecap:round}
.al-knob.drag .al-kcap{fill:#4a525b}
.al-kv{font:700 11px/1.2 ui-monospace,Menlo,monospace;color:#3fd3ff;background:#0b0d10;padding:1px 5px;border-radius:4px;margin-top:2px;white-space:nowrap}
.al-kl{font:700 9.5px system-ui;letter-spacing:.06em;color:#9aa4ae;margin-top:2px}
.al-foot{display:grid;grid-template-columns:1fr 1.4fr;gap:10px;margin-top:10px}
@media (max-width:760px) {
.al-foot{grid-template-columns:1fr}
}
.al-pre{display:flex;gap:6px;flex-wrap:wrap;align-content:flex-start}
.al-info{background:#0f1215;border:1px solid #2e353c;border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.45;min-height:64px}
.al-geqw{overflow-x:auto;margin-top:10px;padding-bottom:4px}
.al-geq{display:grid;grid-template-columns:repeat(31,minmax(24px,1fr));gap:2px;min-width:760px}
.al-gf{display:flex;flex-direction:column;align-items:center;gap:2px}
.al-gv{font:700 9.5px ui-monospace,monospace;color:#ffc53d;min-height:12px}
.al-gl{font:600 9px system-ui;color:#9aa4ae;white-space:nowrap}
.al-fbbtn{border-color:#ff5a5a!important}
.al-dgrid{display:grid;grid-template-columns:5fr 6fr;gap:10px}
@media (max-width:900px) {
.al-dgrid{grid-template-columns:1fr}
}
.al-dsec{background:#262b31;border-radius:10px;padding:8px;border-top:3px solid #52d68a}
.al-dsec+.al-dsec{border-top-color:#ffae3d}
.al-dsec.off .al-knobs{opacity:.5}
.al-led{margin-left:auto;font:800 10px system-ui;padding:2px 7px;border-radius:5px;background:#1f6b40;color:#bff5d4}
.al-led.shut{background:#6b1f1f;color:#ffd0d0}
.al-dvis{display:grid;grid-template-columns:220px 120px 1fr;gap:8px;margin-top:10px}
.al-cvt{height:220px}
.al-cvm{height:220px}
.al-cvh{height:220px}
@media (max-width:760px) {
.al-dvis{grid-template-columns:1fr 110px}
.al-cvh{grid-column:span 2;height:150px}
.al-cvt,.al-cvm{height:190px}
}
.al-reto{display:flex;flex-direction:column;gap:12px}
.al-rh{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.al-rh .seg{border-color:#4b535c}
.al-rs{font:600 12px system-ui;color:#9aa4ae}
.al-rq{margin:0;font-size:15px}
.al-ropts{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:6px}
.al-ro{padding:12px 6px;border-radius:10px;border:1px solid #4b535c;background:#262b31;color:#e8edf2;font:700 13px system-ui;cursor:pointer}
.al-ro:hover:not(:disabled){border-color:#3fd3ff}
.al-rres{margin:0;padding:10px;border-radius:10px;font-weight:600}
.al-rbtn{display:flex;gap:8px}
.at-role.low{opacity:.7}
.at-acoh{margin-top:18px}
.at-aco{border-left:4px solid #8e44ad}
.at-sleg{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11px;color:var(--muted);margin:0 0 8px}
.at-srow{padding:8px 0;border-bottom:1px solid var(--line)}
.at-srh{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.at-sv{margin-left:auto;font-size:12.5px}
.at-sv.low{color:var(--danger)}
.at-frow{display:flex;gap:6px;flex-wrap:wrap}
.at-frow .at-ti{flex:1 1 180px;width:auto;min-width:0}
.at-ubl{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted)}
.at-doc{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--surface-2);color:var(--accent)}
.at-doc:hover{background:var(--accent);color:#fff}
.at-prestck{margin-left:6px}
.at-pr{display:block;width:100%;text-align:left;cursor:pointer;color:var(--ink);font:inherit;border:1px solid var(--line);border-left:5px solid var(--c)}
.at-pr:hover{border-color:var(--accent);border-left-color:var(--c)}
.at-pri{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr) auto;gap:6px;align-items:end;padding:8px 0;border-bottom:1px solid var(--line)}
.at-pri select{grid-column:1/4}
.at-prbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
@media (max-width:760px) {
.at-pri{grid-template-columns:1fr 1fr auto}
.at-pri select{grid-column:1/3}
.at-pri>input{grid-column:1/-1}
}

/* ===== Estilos: camino ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.cam-hero{display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:20px 22px;border-radius:18px;color:#fff;background:radial-gradient(120% 140% at 0% 0%,#F2A93B 0%,#E0A526 22%,#C2410C 58%,#7C2D12 100%);box-shadow:0 14px 40px -18px rgba(194,65,12,.55)}
.cam-hero-k{display:flex;gap:14px;align-items:center}
.cam-hero-k .rring text,.cam-hero-k svg text{fill:#fff}
.cam-kpis{display:flex;flex-direction:column;gap:4px;font-size:13px}
.cam-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px}
.cam-tabs::-webkit-scrollbar{display:none}
.cam-h{display:flex;gap:8px;align-items:center;margin:10px 0 2px;font-size:16px}
.cam-sh{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.cam-empty{display:flex;gap:14px;align-items:flex-start}
.cam-llamado{border-left:4px solid #E0A526}
.cam-lltx{white-space:pre-line;font-size:16px;line-height:1.55;margin:10px 0 6px}
.cam-vers{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0}
.cam-share{display:inline-flex;gap:5px;align-items:center;font-size:12px;color:var(--muted,#8a93a8)}
.cam-areas{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.cam-metas{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:10px}
.cam-mh{display:flex;gap:10px;align-items:center}
.cam-mic{width:32px;height:32px;border-radius:10px;flex:none;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 16%,transparent);color:var(--c)}
.cam-st{flex:none;font-size:11px;font-weight:800;letter-spacing:.03em;padding:3px 8px;border-radius:999px;background:var(--surface-2);display:inline-flex;gap:4px;align-items:center}
.cam-md,.cam-how,.cam-back,.cam-ev,.cam-note{margin:0;font-size:13.5px;line-height:1.45}
.cam-how{color:var(--muted,#8a93a8)}
.cam-back{padding:8px 10px;border-radius:10px;background:color-mix(in srgb,#F59E0B 12%,var(--surface-2))}
.cam-ev{color:var(--muted,#8a93a8);font-style:italic}
.cam-note{font-style:italic;color:var(--muted,#8a93a8)}
.cam-ma{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.cam-rutas{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px}
.cam-ruta.mine{border-color:color-mix(in srgb,var(--c) 55%,var(--line));box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 18%,transparent)}
.cam-rh{display:flex;gap:10px;align-items:center}
.cam-bar{height:6px;border-radius:999px;background:var(--surface-2);margin:10px 0 8px;overflow:hidden}
.cam-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.cam-steps li:not(:last-child)::before{content:"";position:absolute;left:13px;top:34px;bottom:0;width:2px;background:var(--line)}
.cam-steps li.ok:not(:last-child)::before{background:var(--c)}
.cam-dot{width:28px;height:28px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;border:2px solid var(--line);background:var(--surface);color:var(--muted,#8a93a8);z-index:1}
.cam-tl{display:flex;flex-direction:column;gap:10px}
.cam-tli{display:flex;gap:12px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 12px}
.cam-tld{width:30px;height:30px;flex:none;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--c,#E0A526) 18%,transparent);color:var(--c,#E0A526)}
.cam-lb{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;margin:0 0 10px}
.cam-pick{display:flex;flex-wrap:wrap;gap:6px;font-weight:400}
.cam-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.cam-chk{display:flex;gap:8px;align-items:center;font-size:13.5px}
.cam-mentor .cam-sh{align-items:center}
.cam-retros{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:10px}
.cam-ae{border-top:1px dashed var(--line);padding-top:6px}
.cam-guia{display:flex;flex-direction:column;gap:8px}
.cam-gx{margin-top:8px;line-height:1.6;font-size:14.5px}
.cam-today{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-top:12px;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,#E0A526 12%,var(--surface-2))}
.cam-ta{display:flex;gap:6px;flex-wrap:wrap}
.cam-lstats{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:13px;color:var(--muted,#8a93a8)}
.cam-who{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.cam-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px}
.cam-day.fut{opacity:.5;cursor:default}
.cam-plans{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.cam-lock{display:flex;gap:7px;align-items:center;font-size:12.5px;color:var(--muted,#8a93a8);margin-bottom:8px}
.cam-dtipos{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.cam-dtipos input{display:none}
.cam-mes{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#8a93a8);margin:8px 0 -4px}
.cam-dia.resp{border-color:color-mix(in srgb,#22c55e 45%,var(--line))}
.cam-dt{display:inline-flex;gap:5px;align-items:center;font-weight:700;font-size:13px}
.cam-old{display:flex;gap:12px;align-items:flex-start}
.cam-glist{display:flex;flex-direction:column;gap:8px}
.cam-gi{display:flex;gap:12px;align-items:center;text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:var(--surface)}
.cam-gic{width:40px;height:40px;border-radius:12px;flex:none;display:grid;place-items:center;background:color-mix(in srgb,#7C4DDB 16%,transparent);color:#7C4DDB}
.cam-gc{display:flex;gap:4px;align-items:center;font-size:12.5px;color:var(--muted,#8a93a8)}
.cam-media{margin:12px 0;position:relative}
.cam-media video{max-height:60vh;background:#000}
.cam-tlbar{position:relative;height:14px;margin:6px 12px 0}
.cam-cbox{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface-2)}
.cam-cl{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.cam-c{display:flex;gap:10px;align-items:flex-start}
.cam-ct{flex:none;font:inherit;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;padding:4px 8px;border-radius:8px;border:1px solid color-mix(in srgb,#E0A526 50%,var(--line));background:color-mix(in srgb,#E0A526 12%,transparent);color:inherit;cursor:pointer}
.cam-prog{height:10px;border-radius:999px;background:var(--surface-2);position:relative;overflow:hidden;margin-top:6px}
.cam-avph{display:inline-grid;place-items:center;border-radius:50%;background:var(--surface-2);color:var(--muted,#8a93a8)}
.cam-kpis2{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
.cam-plist{display:flex;flex-direction:column;gap:8px}
.cam-pr{display:flex;flex-direction:column;gap:8px}
.cam-sig{display:flex;flex-wrap:wrap;gap:6px}
.cam-sig .buscar{background:color-mix(in srgb,#ef4444 14%,transparent);color:#dc2626}
.cam-sig .aviso{background:color-mix(in srgb,#F59E0B 16%,transparent);color:#b45309}
.cam-sig .accion{background:color-mix(in srgb,#2F6BD6 14%,transparent);color:#2F6BD6}
.cam-ment{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--muted,#8a93a8)}
.cam-mini{display:flex;flex-wrap:wrap;gap:6px}
.cam-priv{color:#b45309}
@media (max-width:640px) {
.cam-hero{padding:14px 16px;gap:10px}
.cam-hero-k .cam-kpis{flex-direction:row;flex-wrap:wrap;gap:10px}
.cam-hero-k{width:100%;justify-content:flex-start}
.cam-days{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}
}
.cam-form summary>b::before{content:"";display:none}
/* ===== 7.110 · Mi camino: metas automáticas ===== */
.cam-auto{margin-bottom:14px;border-color:color-mix(in srgb,#E0A526 45%,var(--line))}
.cam-auto-k{font-size:12.5px;font-weight:800;color:#B7791F;background:color-mix(in srgb,#E0A526 16%,transparent);border-radius:999px;padding:3px 10px}
.cam-auto-l{display:flex;flex-direction:column;gap:8px}
.cam-ag{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 12px;cursor:pointer;color:var(--ink);font-family:inherit;width:100%}
.cam-agi{flex:0 0 auto;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 16%,transparent);color:var(--c)}
.cam-ag.ok .cam-agi{background:#22A35A;color:#fff}
.cam-agt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.cam-agb{display:block;height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin-top:3px}
.cam-agn{flex:0 0 auto;font-weight:800;font-variant-numeric:tabular-nums}
.cam-llamado.opt .cam-empty{opacity:.92}
.cam-opt{display:block;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.cam-otras{margin-top:8px}

/* ===== Estilos: homiletica ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.hm-asbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px;padding:10px 12px;border-radius:12px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 16%,transparent),transparent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}
.hm-as{position:fixed;top:0;right:0;bottom:0;width:min(400px,100vw);z-index:5;background:var(--surface);border-left:1px solid var(--line);box-shadow:-12px 0 32px rgba(0,0,0,.35);display:flex;flex-direction:column;animation:hasIn .25s ease}
@keyframes hasIn{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
dialog.hm-dlg.has-open{margin-right:400px}
@media (max-width:1100px) {
dialog.hm-dlg.has-open{margin-right:auto}
.hm-as{top:auto;height:62vh;width:100vw;border-left:none;border-top:1px solid var(--line);border-radius:18px 18px 0 0;box-shadow:0 -12px 32px rgba(0,0,0,.4)}
}
.has-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:12px 14px 6px}
.has-tabs{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:4px 8px 8px;border-bottom:1px solid var(--line)}
.has-body{flex:1;overflow:auto;padding:10px 12px 20px}
.has-done{margin:8px 12px 0;padding:6px 10px;border-radius:8px;background:color-mix(in srgb,#22c55e 18%,transparent);font-size:12px;display:flex;align-items:center;gap:6px}
.has-note{padding:8px 10px;border-radius:10px;background:var(--surface-2);font-size:12.5px;margin-bottom:8px}
.has-help{font-size:12.5px;color:var(--muted);margin:2px 0 8px}
.has-card{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 8px;background:var(--surface-2)}
.has-ex{color:var(--muted);font-style:italic}
.has-ol{margin:4px 0 2px 18px;padding:0;font-size:13px}
.has-ol li{margin:2px 0}
.has-btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.has-use{display:inline-flex;align-items:center;gap:4px;border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--ink);border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer}
.has-chips{display:flex;gap:6px;margin-bottom:6px}
.has-h{margin:14px 0 6px;font-size:13px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.has-mini{margin-left:auto;border:none;background:none;color:var(--accent);font-size:12px;cursor:pointer;display:inline-flex;gap:4px;align-items:center}
.has-tgt{display:flex;align-items:center;gap:8px;font-size:12px;margin-bottom:6px}
.has-tgt .sel{flex:1;font-size:12px}
.has-tag{display:inline-block;font-size:10.5px;padding:1px 8px;border-radius:999px;background:color-mix(in srgb,#22c55e 22%,transparent);margin-top:4px}
.hm-flash{animation:hmFlash 1.2s ease}
@keyframes hmFlash{0%{box-shadow:0 0 0 3px var(--accent)}100%{box-shadow:0 0 0 0 transparent}}
/* 7.69 · versiones de la Biblia */
.bib-chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:3px 10px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.hm-vtools{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin-top:6px;font-family:var(--font-body,inherit)}
.hm-vsel{border:1px solid #cfd8ee;border-radius:999px;background:#fff;color:#1d4f9a;font:inherit;font-size:12px;font-weight:700;padding:3px 8px}
.hm-paper .bib-chip{background:#fff;color:#1d4f9a;border-color:#cfd8ee}
.hm-vcopy{flex-basis:100%;text-align:right;color:#8a90a0;font-size:10.5px}
.hm-vver{font-size:11px;font-weight:700;color:#6b7a99}
.hm-vc .hm-vread{border:0;border-left:1px solid #e3e8f4;background:none;padding:0 8px;color:#6b7a99;font:inherit;font-size:11px;font-weight:700;cursor:pointer;align-self:stretch;font-family:var(--font-body,inherit)}
.hm-vc.on .hm-vread{color:#fff}
.hm-head{display:flex;align-items:flex-end;gap:12px;margin:4px 0 10px}
.hm-tabs{margin-bottom:12px;flex-wrap:wrap}
.hm-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.hm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.hm-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);padding:12px 14px;cursor:pointer;font:inherit}
.hm-card:hover{border-color:var(--accent);transform:translateY(-1px)}
.hm-card-h{display:flex;gap:8px;align-items:center;width:100%;justify-content:space-between}
.hm-by{font-size:12px;font-weight:700;color:var(--muted)}
.hm-score{display:inline-flex;gap:4px;align-items:center;font-size:12px;font-weight:700}
.hm-st{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.02em;border-radius:999px;padding:2px 9px;color:#fff;background:var(--c)}
.hm-tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.hm-tema{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px 12px}
.hm-vs{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.hm-v{font-size:12.5px;font-weight:700;border-radius:999px;padding:3px 10px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--ink);text-decoration:none}
.hm-v:hover{background:color-mix(in srgb,var(--accent) 24%,var(--surface))}
.hm-guia{display:grid;gap:10px}
.hmg-row{display:grid;gap:6px;margin-bottom:12px}
.hm-dlg{max-width:min(860px,96vw)!important}
.hm-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.hm-top{margin-bottom:10px}
/* la hoja: blanca como el formato de la clase */
.hm-paper{background:#fff;color:#1b1f2a;border-radius:10px;box-shadow:0 2px 14px rgba(0,0,0,.18);padding:30px 34px;font-family:Georgia,'Times New Roman',serif;line-height:1.5}
.hm-in,.hm-ta{width:100%;border:0;border-bottom:1px dashed #c9cedb;background:transparent;color:#1b1f2a;font:inherit;padding:4px 2px;box-sizing:border-box;resize:none;outline:none}
.hm-in:focus,.hm-ta:focus{border-bottom-color:#3D82D0;background:#f5f8ff}
.hm-in::placeholder,.hm-ta::placeholder{color:#a3a9b8;font-style:italic}
.hm-c{text-align:center;display:grid;gap:2px}
.hm-c .hm-in,.hm-c .hm-ro{text-align:center}
.hm-tema{font-size:20px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.hm-paper .hm-tema{border:0;border-bottom:1px dashed #c9cedb;background:none;padding:4px 2px;border-radius:0}
.hm-titulo{font-size:18px;font-weight:700}
.hm-r{display:flex;justify-content:flex-end;margin:18px 0 6px}
.hm-vbox{width:min(360px,100%);text-align:right}
.hm-vbox .hm-in,.hm-vbox .hm-ta,.hm-vbox .hm-ro{text-align:right}
.hm-vref{font-weight:700}
.hm-vtext{font-style:italic;font-size:14px}
.hm-sec{margin-top:16px}
.hm-lbl{font-weight:700;margin-bottom:2px}
.hm-ptt{display:flex;gap:6px;align-items:baseline;font-weight:700}
.hm-ptt .hm-in{font-weight:700}
.hm-inc{display:flex;gap:6px;align-items:baseline;margin-left:26px}
.hm-ro{display:block;padding:3px 2px;min-height:1.2em}
.hm-help{display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:center;font-family:var(--font-body,inherit);font-size:12px;margin:8px 0 0}
.hm-ck{font-weight:700;border-radius:999px;padding:1px 8px}
.hm-sug{font-family:var(--font-body,inherit);font-size:13px;background:#f5f8ff;border:1px solid #dbe4f7;border-radius:10px;padding:8px 10px;margin:6px 0 4px}
.hm-sug-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.hm-vc{display:inline-flex;align-items:center;border-radius:999px;background:#fff;border:1px solid #cfd8ee;overflow:hidden}
.hm-eval{border-radius:12px;padding:10px 12px;margin:0 0 12px;background:color-mix(in srgb,#22A35A 10%,var(--surface));border:1px solid color-mix(in srgb,#22A35A 40%,var(--line))}
.hm-eval.ajustes{background:color-mix(in srgb,#E4572E 10%,var(--surface));border-color:color-mix(in srgb,#E4572E 40%,var(--line))}
.hm-eval-h{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.hm-er{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;padding:2px 0}
.hm-ec{margin:8px 0 0;font-size:14px}
.hm-evf{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}
.hm-evr{display:grid;grid-template-columns:minmax(160px,1fr) auto minmax(140px,1fr);gap:8px;align-items:center;padding:4px 0;border-bottom:1px dashed var(--line)}
.hm-evl{font-size:13.5px;font-weight:600}
.hm-evn{border:1px solid var(--line);border-radius:8px;padding:5px 8px;background:var(--bg);color:var(--ink);font:inherit;font-size:13px}
@media (max-width:640px) {
.hm-dlg .mf .btn{flex:1 1 auto}
.hm-paper{padding:18px 14px}
.hm-inc{margin-left:10px}
.hm-evr{grid-template-columns:1fr}
.hm-tema{font-size:17px}
}
.hm-paper .hm-ro,.hm-paper .hm-ta,.hm-paper textarea.hm-in{white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}
.hm-ptt{display:flex;gap:6px;align-items:baseline}
.hm-ptt>.hm-in,.hm-ptt>.hm-ro{flex:1 1 auto;min-width:0}
.hm-inc>.hm-ta,.hm-inc>.hm-ro{flex:1 1 auto;min-width:0}
@media (max-width:640px) {
.hm-tabs{margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;max-width:100%}
dialog.hm-dlg{max-width:100vw!important;width:100vw!important;margin:0!important;left:0;right:0}
}
/* 7.97 · Homilética: enfoque, preguntas por parte, revisión, modo predicar, series y práctica */
.hm-qb{display:inline-flex;align-items:center;gap:4px;border:1px dashed #b9c2d6;background:#f4f6fb;color:#3a4561;border-radius:999px;padding:2px 9px;font:600 11.5px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;cursor:pointer;vertical-align:middle;white-space:nowrap;flex:0 0 auto}
.hm-qb:hover{border-style:solid;border-color:var(--accent);color:var(--accent)}
.hm-lbl{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hm-qrow{display:flex;justify-content:flex-end;margin:-8px 0 4px}
.hm-r{align-items:flex-start;gap:8px;flex-wrap:wrap}
.hm-ptt .hm-qb{align-self:center}
.hm-pref{display:flex;align-items:baseline;gap:6px;margin:2px 0 4px 22px;font-size:13px;color:#56607a}
/* tarjeta "Tu enfoque" */
.hm-enf{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--accent) 6%,var(--surface));margin:0 0 12px}
.hm-enf>summary>span{display:flex;align-items:center;gap:6px}
.hm-enf-b{padding:0 14px 12px;display:grid;gap:8px}
.hm-enf-b textarea.hm-one{border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--bg);color:var(--ink);font:inherit;resize:none}
.hm-chips{display:flex;flex-wrap:wrap;gap:6px}
.hm-lentes{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px;margin-bottom:6px}
.hm-lente{border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}
.hm-lente-h{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;border:0;background:none;color:var(--ink);text-align:left;padding:8px 10px;cursor:pointer;font:inherit}
.hm-enf-foot{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.hm-enfv{border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface));border-radius:0 10px 10px 0;padding:8px 12px;margin:0 0 12px}
/* preguntas en el asistente */
.has-secs{flex-wrap:wrap}
.has-chips button.on small{background:rgba(255,255,255,.3)}
.has-q{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 8px;background:var(--surface-2)}
/* revisión con lo de la clase */
.hm-chk{border:1px solid var(--line);border-radius:14px;background:var(--surface);margin:12px 0 0}
.hm-chk>summary>span:first-child{display:flex;align-items:center;gap:6px}
.hm-chk-bar{flex:1 1 80px;height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden;min-width:60px}
.hm-chk li.ok>span{color:#22c55e}
.hm-chk li.no>span{color:var(--muted)}
.hm-chk li.ok b{font-weight:500;color:var(--muted)}
.hm-chk>.hint{padding:0 14px 10px}
/* modo predicar / ensayar */
body.hm-pr-on{overflow:hidden}
dialog.hm-pr{position:fixed!important;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#0e1118;color:#f3f5fa;box-shadow:none}
dialog.hm-pr[open]{display:flex;flex-direction:column}
dialog.hm-pr::backdrop{background:#0e1118}
.hm-pr-top{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid #232a38;flex-wrap:wrap}
.hm-pr-clock{flex:1 1 160px;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.hm-pr-bar{flex:1 1 100%;height:5px;border-radius:99px;background:#232a38;overflow:hidden;margin-top:4px}
.hm-pr-nav{display:flex;gap:6px;padding:8px 14px;overflow-x:auto;border-bottom:1px solid #232a38;scrollbar-width:thin}
.hm-pr-body{flex:1 1 auto;overflow-y:auto;padding:22px min(6vw,60px) 30px;-webkit-overflow-scrolling:touch}
.hm-pr-sub{margin:0 0 14px;color:#f0b429;font-style:italic;font-size:clamp(15px,2.2vw,19px)}
.hm-pr-txt{font:400 clamp(18px,2.6vw,24px)/1.55 Georgia,'Times New Roman',serif;white-space:normal;overflow-wrap:anywhere;max-width:900px}
.hm-pr-foot{display:flex;align-items:center;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #232a38}
/* crecimiento y series */
.hm-growth{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.hm-kpi{flex:1 1 110px;border:1px solid var(--line);border-radius:12px;padding:8px 12px;background:var(--surface);display:flex;flex-direction:column}
.hm-grow-t{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13.5px}
.hm-serie{margin:0 0 14px}
.hm-serie-chip{display:inline-block;font-size:11px;border-radius:999px;padding:1px 8px;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--ink);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* práctica en Aprende */
.hm-prac{margin-top:12px}
.hm-prac-tt{display:grid;gap:4px}
.hm-prac-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;align-items:center;border-bottom:1px dashed var(--line);padding:4px 0}
.hm-prac-tit{display:grid;gap:6px}
.hm-prac-dud{display:grid;gap:6px;margin-bottom:10px}
@media (max-width:640px) {
.hm-lentes{grid-template-columns:1fr}
.hm-pref{margin-left:0;flex-wrap:wrap}
.hm-pr-top .btn{order:5}
.hm-pr-body{padding:16px 16px 24px}
}
/* 8 pestañas en el asistente: se desplazan de lado en vez de cortar el texto */
.has-tabs{display:flex!important;overflow-x:auto;scrollbar-width:none;gap:2px}
.has-tabs::-webkit-scrollbar{display:none}
.has-tabs button span{overflow:visible;text-overflow:clip}
/* ===== 7.123 · Homilética: menú Descargar (PDF Carta/A4 · Imprimir), versiones y comparativa ===== */
.hm-dlm{position:absolute;z-index:60;min-width:250px;max-width:calc(100vw - 16px);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 44px -12px rgba(0,0,0,.45);padding:6px;display:flex;flex-direction:column;gap:2px}
.hm-dlm-h{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:8px 10px 4px}
.hm-dlm button span{flex:1;display:flex;flex-direction:column;line-height:1.25}
.hm-dlm button small{color:var(--muted);font-size:11px}
.hm-dlm button i{font-style:normal;font-size:10px;font-weight:700;color:var(--accent);border:1px solid var(--accent);border-radius:20px;padding:1px 7px}
/* diálogo de versiones */
dialog.hm-vdlg{max-width:min(1100px,96vw);width:min(1100px,96vw);max-height:92dvh;display:none;flex-direction:column}
dialog.hm-vdlg[open]{display:flex}
dialog.hm-vdlg .mh h3{margin:0;font-size:16px;display:flex;align-items:center;gap:8px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
dialog.hm-vdlg .mh h3 svg{width:18px;height:18px;flex:none}
.hmv-new{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 12px}
.hmv-list{display:flex;flex-direction:column;gap:6px}
.hmv-it{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);cursor:pointer}
.hmv-it.now{border-style:dashed}
.hmv-it>div{flex:1;min-width:0;display:flex;flex-direction:column}
.hmv-acts{display:flex;gap:4px;align-items:center;flex:none}
.hmc{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.hmc-bar{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:8px}
.hmc-sum{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:13px;color:var(--muted);margin-bottom:10px}
.hmc-leg del,.hmc-row del{background:color-mix(in srgb,#e5484d 22%,transparent);color:inherit;text-decoration:line-through;text-decoration-color:#e5484d;border-radius:3px;padding:0 2px}
.hmc-leg ins,.hmc-row ins{background:color-mix(in srgb,#22a35a 25%,transparent);color:inherit;text-decoration:none;border-radius:3px;padding:0 2px}
.hmc-head,.hmc-row{display:grid;grid-template-columns:150px minmax(0,1fr) minmax(0,1fr);gap:10px}
.hmc-head{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:0 2px 6px}
.hmc-row{padding:10px 2px;border-top:1px solid var(--line);font-size:14px;line-height:1.5}
.hmc-row.same{opacity:.62}
.hmc-k{font-weight:700;display:flex;flex-direction:column;gap:2px}
.hmc-k small.chg{color:var(--accent)}
.hmc-a,.hmc-b{background:var(--surface-2);border-radius:8px;padding:8px 10px;overflow-wrap:anywhere}
@media (max-width:700px) {
.hmc-head{display:none}
.hmc-row{grid-template-columns:1fr}
.hmc-a::before{content:'Antes';display:block;font-size:11px;font-weight:700;color:var(--muted)}
.hmc-b::before{content:'Después';display:block;font-size:11px;font-weight:700;color:var(--muted)}
dialog.hm-vdlg{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;border-radius:0;margin:0}
.hmv-it{flex-wrap:wrap}
.hmv-acts{width:100%;justify-content:flex-end}
}
/* ===== 7.123 · el método del Pastor Adrián (clase 4) ===== */
.hm-steps{margin:0 0 12px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%,var(--surface)),var(--surface));padding:12px 14px}
.hm-steps:empty{display:none}
.hm-steps-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hm-steps-h>div{display:flex;flex-direction:column;line-height:1.25;flex:1;min-width:180px}
.hm-steps-bar{display:block;flex:0 0 140px;height:6px;border-radius:9px;background:var(--surface-2);overflow:hidden}
.hm-steps-l{list-style:none;margin:10px 0 0;padding:0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:thin;padding-bottom:2px}
.hm-steps-l li{flex:0 0 auto}
@media (min-width:641px) {
.hm-steps-l{flex-wrap:wrap;overflow:visible}
}
.hm-steps-l .n{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--surface-2);color:var(--muted);font-size:11px}
.hm-steps-l li.done button{color:var(--muted)}
.hm-steps-l li.next button{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent);color:var(--ink)}
.hm-steps-l li.on button{background:var(--accent);color:#fff;border-color:var(--accent)}
.hm-coach{margin-top:10px;border-left:3px solid var(--accent);background:var(--surface-2);border-radius:10px;padding:10px 12px}
.hm-coach>div{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.hm-coach>div .ico-btn{margin-left:auto}
/* dentro de la hoja (papel claro) */
.hm-preg{background:#f3f6ff;border:1px dashed #9db0e8;border-radius:10px;padding:10px 12px}
.hm-preg.ro{background:#f6f7fb;border-style:solid;border-color:#e2e6f0}
.hm-preg-h{margin:2px 0 6px;color:#5a647e!important;font:13px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}
.hm-paper .hm-pregq{font-style:italic;font-weight:700;font-size:17px;width:100%}
.hm-pregform{margin-top:6px;font:12.5px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;color:#2d3a63}
.hm-pregform:empty{display:none}
.hm-pregform .hint{color:#6a748e!important}
.hm-pregsug{margin-top:8px;font:12.5px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;color:#3a4561}
.hm-pregsug .hint{color:#6a748e!important}
.hm-pregchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.hm-pregc{border:1px solid #c9d3ee;background:#fff;color:#22305a;border-radius:999px;padding:4px 10px;font:600 12.5px/1.3 system-ui,-apple-system,Segoe UI,sans-serif;cursor:pointer;text-align:left}
.hm-pregc:hover{background:#e9efff;border-color:#8ea6e6}
.hm-serie-cta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px dashed #c9d3ee}
.hm-ptchkw:empty{display:none}
.hm-ptchk{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:2px 0 4px 22px;font:12.5px/1.35 system-ui,-apple-system,Segoe UI,sans-serif;border-radius:8px;padding:5px 9px}
.hm-ptchk.soft{background:#f2f4f8;color:#5a647e}
.hm-ptfix{border:1px solid currentColor;background:#fff;color:inherit;border-radius:999px;padding:2px 10px;font:700 12px/1.4 inherit;cursor:pointer}
.hm-incl{flex:none;font:700 10.5px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;color:#5a647e;background:#eef1f7;border-radius:999px;padding:1px 7px;white-space:nowrap;align-self:center}
.hm-conclb{border-style:solid!important;background:#fff8e8!important;border-color:#e2c27a!important;color:#6b4c0c!important}
.hm-conclb:disabled{opacity:.5;cursor:default}
.hm-minbox{margin:4px 0 6px}
.hm-minchips{display:flex;flex-wrap:wrap;gap:6px}
.hm-minc{border:1px solid #c9d3ee;background:#fff;color:#22305a;border-radius:999px;padding:4px 11px;font:600 12.5px/1.3 system-ui,-apple-system,Segoe UI,sans-serif;cursor:pointer}
.hm-minnote{margin:6px 0 0;font:12px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;color:#6a748e!important}
.hm-minro{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 4px}
/* Aprende: el método */
.hm-metodo h3{display:flex;align-items:center;gap:8px}
.hm-met-l{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.hm-met-l li{display:flex;gap:10px;align-items:flex-start;background:var(--surface-2);border-radius:12px;padding:10px 12px}
.hm-met-l .n{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-weight:800;font-size:13px}
.hm-met-ej{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:14px}
.hm-met-q{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-top:8px}
.hm-abc{list-style:none;padding-left:4px!important}
.hm-abc li{margin:4px 0;font-size:13.5px}
.hm-prac4{margin-top:4px}
.hms-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}
@media (max-width:640px) {
.hm-ptchk{margin-left:0}
.hm-steps-bar{flex-basis:100%}
.hm-paper .hm-pregq{font-size:15px}
.hm-inc{flex-wrap:wrap}
.hm-incl{order:0}
}
dialog.hm-vozdlg{width:min(560px,96vw)}
/* 7.125: Así predica el Pastor Adrián (Homilética → Aprende) + Mide tu ensayo */
.hpa-sec{display:grid;gap:10px;min-width:0}
.hpa-hd{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.hpa-hd h3{margin:0 0 4px;display:flex;align-items:center;gap:8px}
.hpa-hd h3 svg{width:20px;height:20px;color:var(--accent)}
.hpa-hd p{margin:0;max-width:640px}
.hpa-hbtn{display:flex;gap:8px;flex-wrap:wrap}
.hpa-serie{margin:6px 0 0;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.hpa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.hpa-card{display:grid;gap:5px;text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:14px;padding:12px 14px;font:inherit;cursor:pointer;position:relative;transition:transform .15s,box-shadow .15s,border-color .15s;min-width:0}
.hpa-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.08);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.hpa-n{position:absolute;top:10px;right:12px;font-size:11.5px;font-weight:700;color:var(--muted);background:var(--surface-2);border-radius:999px;padding:2px 7px}
.hpa-k {
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:11.5px;
  font-weight:600;
  border-radius:999px;
  padding:2px 8px;
  white-space:nowrap;
  background:color-mix(in srgb,var(--k) 16%,var(--surface));
  color:color-mix(in srgb,var(--k) 75%,var(--ink));
  border:1px solid color-mix(in srgb,var(--k) 35%,transparent);
}
.hpa-k::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--k)}
dialog.hpa-dlg{width:min(1020px,96vw)}
.hpa-v{display:grid;gap:12px;min-width:0}
.hpa-refs{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.hpa-au{width:100%}
.hpa-stick{position:sticky;top:-1px;z-index:3;display:grid;gap:8px;background:var(--surface);padding:4px 0 6px;margin-top:-4px;box-shadow:0 -24px 0 var(--surface),0 8px 10px -10px rgba(0,0,0,.35)}
.hpa-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:8px}
.hpa-chartw{background:var(--surface-2);border-radius:12px;padding:10px 10px 6px}
.hpa-chart{display:block;width:100%;height:170px;cursor:pointer}
.hpa-band{cursor:pointer;opacity:.9}
.hpa-band:hover{opacity:1}
.hpa-tk{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.hpa-tt{font-size:11px;fill:var(--muted)}
.hpa-zero{stroke:var(--muted);stroke-dasharray:3 4;stroke-width:1;vector-effect:non-scaling-stroke;opacity:.6}
.hpa-vol{fill:color-mix(in srgb,var(--accent) 30%,transparent);stroke:color-mix(in srgb,var(--accent) 70%,transparent);stroke-width:1.2;vector-effect:non-scaling-stroke}
.hpa-pitch{fill:none;stroke:#ec4899;stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.hpa-ph{stroke:var(--ink);stroke-width:2;vector-effect:non-scaling-stroke}
.hpa-leg{display:flex;gap:14px;flex-wrap:wrap;align-items:center;font-size:12.5px;margin-top:4px}
.hpa-leg i.v{background:color-mix(in srgb,var(--accent) 45%,transparent)}
.hpa-leg i.p{background:#ec4899;height:3px}
.hpa-tl{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.hpa-tl li{display:grid;grid-template-columns:52px auto 1fr;gap:10px;align-items:start;padding:8px 10px;border-radius:10px;cursor:pointer;border:1px solid transparent}
.hpa-tl li:hover{background:var(--surface-2)}
.hpa-tl li.now{background:color-mix(in srgb,var(--accent) 10%,var(--surface));border-color:color-mix(in srgb,var(--accent) 40%,transparent)}
.hpa-tl li>div{display:grid;gap:2px;min-width:0}
.hpa-tl .hpa-vz{display:flex;gap:5px;align-items:center;color:color-mix(in srgb,var(--accent) 70%,var(--ink))}
.hpa-t{font-variant-numeric:tabular-nums;font-weight:600;color:var(--muted);font-size:13px;padding-top:2px}
.hpa-act{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}
.hpa-act .hint{flex:1;min-width:200px}
.hpa-lec{margin:4px 0;padding-left:20px;display:grid;gap:6px;line-height:1.45}
.hpa-fr{display:flex;gap:6px;flex-wrap:wrap}
.hpa-st{display:grid;gap:10px}
.hpa-rasgos{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.hpa-rasgos>div{background:var(--surface-2);border-radius:10px;padding:9px 12px;display:grid;gap:3px}
.hpa-tbl{display:grid;gap:2px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.hpa-tr{display:grid;grid-template-columns:130px 1fr 1fr 110px 140px;gap:10px;align-items:center;padding:7px 10px;font-size:13px}
.hpa-tr:nth-child(even){background:var(--surface-2)}
.hpa-th{font-weight:700;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.hpa-bar{position:relative;display:block;height:10px;background:color-mix(in srgb,var(--line) 60%,transparent);border-radius:5px}
.hpa-bar i.up{background:#f97316}
.hpa-bar i.dn{background:#3b82f6}
.hpa-mide{display:grid;gap:10px}
.hpa-mide p{margin:0;line-height:1.45}
.hpa-recrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.hpa-rect{font-variant-numeric:tabular-nums;font-size:18px;color:#ef4444}
.hpa-resw{display:grid;gap:10px}
.hpa-m{display:grid;gap:5px;padding:10px 12px;border-radius:12px;background:var(--surface-2);border-left:4px solid #22c55e}
.hpa-m.lo,.hpa-m.hi{border-left-color:#f59e0b}
.hpa-ml{display:flex;justify-content:space-between;gap:10px}
.hpa-mbar{position:relative;height:12px;background:color-mix(in srgb,var(--line) 70%,transparent);border-radius:6px}
.hpa-mbar .ref{position:absolute;top:0;bottom:0;background:color-mix(in srgb,#22c55e 45%,transparent);border-radius:6px}
.hpa-yours{display:grid;gap:4px;font-size:13px}
.hpa-spark{width:100%;height:40px}
.hpa-spark polyline{fill:none;stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke}
@media (max-width:640px) {
.hpa-tr{grid-template-columns:96px 1fr 1fr;font-size:12px}
.hpa-tl li{grid-template-columns:44px 1fr}
.hpa-tl li>.hpa-k{grid-column:2;justify-self:start}
.hpa-tl li>div{grid-column:1/-1}
.hpa-chart{height:110px}
.hpa-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px}
}

/* ===== Estilos: puentes ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
/* ===== 7.111 · Puentes ===== */
.pu-ch {
  --cc:#94a3b8;
  display:inline-flex;
  align-items:center;
  gap:2px;
  padding:3px 9px;
  border-radius:999px;
  background:color-mix(in srgb,var(--cc) 26%,var(--surface));
  border:1.5px solid var(--cc);
  color:var(--ink);
  font-weight:800;
  font-size:13px;
  line-height:1.2;
  white-space:nowrap;
  transition:transform .15s,box-shadow .15s;
}
.pu-chips{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px}
.pu-chips.mini .pu-ch{font-size:11.5px;padding:2px 7px}
.pu-ar{font-style:normal;color:var(--muted);font-weight:700}
.pu-kc{--cc:#94a3b8;font-style:normal;display:inline-block;padding:1px 7px;border-radius:7px;background:color-mix(in srgb,var(--cc) 30%,var(--surface));border:1px solid var(--cc);font-weight:800;font-size:12px}
/* caja en Listas */
.pu-junc{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:10px 0;padding:10px 12px;border-radius:14px;border:1.5px dashed color-mix(in srgb,#0EA5A4 60%,var(--line));background:color-mix(in srgb,#0EA5A4 8%,var(--surface))}
.pu-junc .pu-jt{display:flex;flex-direction:column;min-width:180px;flex:1}
.pu-junc.none .hint{flex:1}
.pu-hero {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  padding:16px;
  border-radius:20px;
  background:linear-gradient(120deg,color-mix(in srgb,#0EA5A4 22%,var(--surface)),color-mix(in srgb,#F472B6 14%,var(--surface)) 60%,color-mix(in srgb,#38BDF8 16%,var(--surface)));
  border:1px solid var(--line);
}
.pu-hl{display:flex;gap:12px;align-items:center}
.pu-logo{width:52px;height:52px;border-radius:16px;background:#0EA5A4;color:#fff;display:grid;place-items:center;flex:none;box-shadow:0 6px 18px -6px #0EA5A4}
.pu-tabs{display:flex;flex-wrap:wrap;gap:6px}
.pu-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.pu-dsel{display:inline-flex;align-items:center;gap:6px;font-weight:600}
.pu-empty{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:28px 16px;border:1px dashed var(--line);border-radius:16px;color:var(--muted)}
/* camino de canciones */
.pu-path{display:flex;align-items:stretch;gap:0;overflow-x:auto;padding:22px 4px 10px;scroll-snap-type:x proximity}
.pu-song{flex:none;width:150px;display:flex;flex-direction:column;gap:5px;padding:10px;border-radius:14px;background:var(--surface);border:1px solid var(--line);scroll-snap-align:center;position:relative}
.pu-cv{width:100%;aspect-ratio:1.6;border-radius:9px;overflow:hidden;background:var(--surface-2);display:grid;place-items:center;color:var(--muted)}
.pu-keys{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:12px}
.pu-secl{flex:none;writing-mode:vertical-rl;transform:rotate(180deg);font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:0 4px;align-self:center}
.pu-link{flex:none;width:64px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;background:none;color:var(--muted);font:inherit;cursor:pointer;padding:0 2px}
.pu-link::before{content:'';position:absolute;left:0;right:0;top:50%;height:3px;border-radius:3px;background:var(--line)}
.pu-link.same .pu-arrow{border-color:#22c55e;color:#22c55e}
.pu-link.has::before{background:#0EA5A4}
.pu-link.has .pu-arrow{border-color:#0EA5A4;color:#0EA5A4}
.pu-link.junc{width:86px}
.pu-link.junc::before{background:linear-gradient(90deg,#F472B6,#FACC15,#38BDF8);height:5px}
.pu-link.junc .pu-arrow{border-color:#FACC15;background:#FEF3C7;color:#92400E;width:40px;height:40px;animation:pu-pulse 2.2s infinite}
.pu-link.on .pu-arrow{background:#0EA5A4;border-color:#0EA5A4;color:#fff;animation:none}
@keyframes pu-pulse{0%,100%{box-shadow:0 0 0 0 #FACC1588}50%{box-shadow:0 0 0 8px #FACC1500}}
/* taller */
.pu-pairh{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;padding:14px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.pu-pk{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
.pu-prel{display:flex;flex-direction:column;align-items:center;gap:4px;color:#0E8F8E;font-size:12px;font-weight:600;text-align:center;max-width:180px}
.pu-h3{margin:4px 0 0;font-size:16px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.pu-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.pu-card:hover{transform:translateY(-2px)}
.pu-ct{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pu-sabor{margin-left:auto;font-size:11px;font-weight:700;color:var(--sc);border:1px solid var(--sc);padding:1px 8px;border-radius:999px}
.pu-mini{width:100%;height:44px;color:var(--ink)}
.pu-gl{margin-left:auto;font-size:11px;color:var(--muted);display:inline-flex;align-items:center;gap:3px}
.pu-det{padding:14px;border-radius:18px;background:var(--surface);border:1.5px solid #0EA5A4}
.pu-dh{display:flex;flex-direction:column;gap:10px}
.pu-dbody{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;margin-top:12px}
.pu-vmap{width:100%;height:auto;max-height:300px;color:var(--ink);background:var(--surface-2);border-radius:14px}
.pu-vcol{cursor:pointer}
.pu-leg{font-size:11.5px;color:var(--muted);margin:6px 0}
.pu-keep,.pu-move{display:inline-block;width:22px;height:0;vertical-align:middle;border-top:4px solid #22c55e;border-radius:2px}
.pu-move{border-top:2px dashed var(--muted)}
.pu-kbd{width:100%;height:70px;display:block;border-radius:8px;overflow:hidden}
.pu-tips{background:var(--surface-2);border-radius:12px;padding:10px 12px}
.pu-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.pu-pop{position:fixed;z-index:1200;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:8px;max-height:60vh;display:flex;flex-direction:column}
.pu-poph{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 6px}
.pu-popl{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:5px;overflow:auto}
.pu-popf{display:flex;gap:6px;justify-content:flex-end;padding-top:8px}
/* libre */
.pu-free{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center}
.pu-fcol{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.pu-swap{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:#0EA5A4;cursor:pointer;display:grid;place-items:center}
.pu-kp{display:flex;flex-direction:column;gap:6px}
.pu-kroots{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}
.pu-kmode{display:flex;gap:4px}
/* vecinos */
.pu-nbw{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px}
.pu-nbl,.pu-nbr{padding:12px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.pu-nbl .pu-kp{flex:1;min-width:240px}
.pu-nbmap{width:100%;max-width:520px;display:block;margin:8px auto;color:var(--ink)}
.pu-nb{cursor:pointer}
.pu-nb:hover circle{stroke:var(--ink);stroke-width:3}
.pu-tray{min-height:44px;padding:8px;border-radius:12px;background:var(--surface-2);margin:8px 0;display:flex;align-items:center}
.pu-legend{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:12px;font-size:12px}
/* rueda */
.pu-whw{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px}
.pu-wheel{width:100%;max-width:520px;display:block;margin:0 auto;color:var(--ink)}
.pu-ws{cursor:pointer;transition:opacity .15s}
.pu-ws:hover{opacity:.8}
.pu-diat{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:6px}
.pu-fn{display:flex;align-items:center;gap:6px;margin:6px 0;font-size:12.5px}
.pu-quick{display:flex;flex-direction:column;gap:6px}
.pu-qb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit;cursor:pointer;text-align:left}
/* aprende */
.pu-learn{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.pu-lc{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.pu-lch{display:flex;align-items:center;gap:7px}
.pu-lc .btn{align-self:flex-start}
.pu-modes{display:flex;flex-direction:column;gap:6px}
.pu-mode {
  display:grid;
  grid-template-columns:150px 1fr auto;
  gap:10px;
  align-items:center;
  padding:8px 12px;
  border-radius:12px;
  border:1px solid var(--line);
  color:var(--ink);
  font:inherit;
  cursor:pointer;
  text-align:left;
  background:linear-gradient(90deg,color-mix(in srgb,#FACC15 calc(var(--br) * .35),var(--surface)),var(--surface));
}
.pu-bl{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.pu-book{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;text-align:left}
/* ensayar */
dialog.pu-prac{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#0b1020;color:#fff}
dialog.pu-prac::backdrop{background:#000}
.pu-pr{height:100%;display:flex;flex-direction:column;gap:10px;padding:14px 18px}
.pu-prt{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.pu-prc{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center}
.pu-prbig{--cc:#fff;font-size:clamp(70px,20vw,200px);font-weight:900;line-height:1;color:var(--cc);text-shadow:0 0 40px color-mix(in srgb,var(--cc) 50%,transparent)}
.pu-prbig.pop{animation:pu-pop .35s ease-out}
@keyframes pu-pop{0%{transform:scale(.8);opacity:.4}100%{transform:scale(1);opacity:1}}
.pu-prdots{display:flex;gap:12px}
.pu-prnext{font-size:clamp(18px,4vw,30px);opacity:.8}
.pu-prk{max-width:900px;width:100%;margin:0 auto}
.pu-prk .pu-kbd{height:90px}
.pu-prf{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.pu-prchips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pu-prchips .pu-ch{color:#fff;background:color-mix(in srgb,var(--cc) 30%,#0b1020)}
@media (max-width:760px) {
.pu-dbody,.pu-nbw,.pu-whw{grid-template-columns:minmax(0,1fr)}
.pu-free{grid-template-columns:minmax(0,1fr)}
.pu-swap{justify-self:center;transform:rotate(90deg)}
.pu-pairh{grid-template-columns:1fr;gap:6px}
.pu-prel{flex-direction:row;max-width:none;justify-content:center}
.pu-mode{grid-template-columns:1fr}
.pu-song{width:132px}
.pu-card{flex:0 0 84%;scroll-snap-align:start}
}
.pu-prt .btn .ico{color:#fff}
/* 7.111: sonido, tempo y compás */
.pu-snd{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:10px 0 4px}
.pu-tempo{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0 4px}
.pu-songtm{font-size:11.5px;color:var(--muted);margin:4px 0}
.pu-metro{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;font-size:12px;color:var(--muted)}
.pu-mtxt{font-weight:700;color:var(--ink)}
.pu-mdots{display:flex;flex-wrap:wrap;gap:4px}
.pu-mdots i.bar{box-shadow:inset 0 0 0 2px #0EA5A4}
.pu-mdots i.grp{box-shadow:inset 0 0 0 1px #0EA5A4}
.pu-prtm{font-size:clamp(14px,3vw,20px);opacity:.75;font-weight:700}
.pu-prdots i.bar{outline:2px solid #ffffff55;outline-offset:2px}
/* 7.112.3 · Puentes: cómo se toca en el piano (voicings de los cursos) */
.pu-piano{display:flex;flex-direction:column;gap:6px;margin:10px 0 4px;padding:10px 12px;border-radius:12px;background:var(--surface-2)}
.pu-topl{margin:2px 0;font-size:12.5px;display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.pu-topdot{display:inline-block;width:11px;height:11px;border-radius:50%;background:#F59E0B;border:1.5px solid #0006;vertical-align:middle;flex:none}
.pu-klh,.pu-krh{display:inline-block;width:14px;height:11px;border-radius:3px;background:#38BDF8;vertical-align:middle}
.pu-howto{display:flex;flex-direction:column;gap:4px;margin-top:2px}
.pu-hr{display:grid;grid-template-columns:minmax(64px,auto) minmax(70px,auto) 1fr;gap:4px 8px;align-items:center;padding:5px 6px;border-radius:10px;background:var(--surface);border:1px solid var(--line);transition:box-shadow .15s}
.pu-hr .pu-ch{justify-self:start}
.pu-hlh{font-size:12px;font-weight:700;color:#0284C7}
.pu-hrh{display:flex;flex-wrap:wrap;gap:3px;align-items:flex-end}
.pu-hrh i sub{font-size:9px;font-weight:600;opacity:.65;margin-left:2px}
.pu-src{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--muted)}
.pu-lc.curso{border-color:color-mix(in srgb,#F59E0B 45%,var(--line))}
@media (max-width:640px) {
.pu-hr{grid-template-columns:auto 1fr}
.pu-hrh{grid-column:1/-1}
}
/* 7.113 · Puentes: ¿quién lo toca? (producción) */
.pu-pro{display:flex;flex-direction:column;gap:8px;margin:10px 0 4px;padding:12px;border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,#F59E0B 10%,var(--surface)),color-mix(in srgb,#0EA5E9 8%,var(--surface)));border:1px solid var(--line)}
.pu-pros{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;scroll-snap-type:x proximity}
.pu-capa{border:1px solid var(--line);background:var(--surface);color:var(--muted);font:inherit;font-size:12px;font-weight:700;padding:5px 11px;border-radius:999px;cursor:pointer}
/* 7.114 · Puentes: partitura del puente, acordes de paso, energía */
.pu-score{margin:10px 0 12px;padding:12px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}
.pu-scw{overflow-x:auto;overflow-y:hidden;border-radius:10px;background:var(--surface-2);padding:4px 0}
.pu-scsvg{display:block;color:var(--ink)}
.pu-scc.now rect{fill-opacity:.7;stroke-width:2.5}
.pu-ritmo{margin:8px 0 0;font-size:12px;line-height:1.5;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}
.pu-kpaso{font-size:11.5px;font-weight:700;color:#B45309;background:color-mix(in srgb,#F59E0B 18%,transparent);border-radius:999px;padding:1px 8px}
.pu-hpaso{color:#B45309!important}
/* 7.114.2: partitura con articulación y dinámica */
.pu-ritmo .pu-artleg{background:transparent;padding:0;color:var(--muted);font-size:11px;width:100%}
.pu-scsvg .pu-rest{cursor:help}
/* 7.114.2: ¿Quién lo toca? — los maestros sugieren */
.pu-mzh{display:flex;gap:12px;align-items:flex-start;margin-bottom:10px}
.pu-mcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px}
.pu-mc:hover{transform:translateY(-2px)}
.pu-mav{--pc:#64748B;font-style:normal;width:46px;height:46px;border-radius:50%;display:inline-grid;place-items:center;font-weight:900;font-size:15px;color:#fff;background:linear-gradient(135deg,var(--pc),color-mix(in srgb,var(--pc) 55%,#000));box-shadow:0 4px 12px -6px var(--pc)}
.pu-msl{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}
.pu-msay{margin:0;font-size:12.5px;line-height:1.4}
@media (max-width:760px) {
.pu-mc{flex:0 0 118px;scroll-snap-align:start}
.pu-msl{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}
}
/* 7.114.3: idea de maestro con llegada cromática */
:root[data-theme="dark"] .pu-clitag{color:#C4B5FD}
.pu-tecs .pu-tec{border-left:3px solid #F59E0B;padding-left:6px}
.pu-tec-resp{border-left-color:#94A3B8!important}
.pu-tec-ant{border-left-color:#DC2626!important}
.pu-tec-roll{border-left-color:#0EA5E9!important}
/* cabecera */
.pz-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:4px 2px}
.pz-brand{display:flex;align-items:center;gap:12px;min-width:0}
.pz-brand h2{margin:0;font-size:24px;letter-spacing:-.01em}
.pz-views{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--surface);border:1px solid var(--line)}
/* escenario */
.pz-stage{--pc:#0EA5A4;position:relative;display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:24px;
  background:radial-gradient(120% 90% at 0% 0%,color-mix(in srgb,var(--pc) 16%,transparent),transparent 55%),radial-gradient(90% 80% at 100% 100%,color-mix(in srgb,var(--pz) 12%,transparent),transparent 60%),var(--surface);
  border:1px solid color-mix(in srgb,var(--pc) 35%,var(--line));box-shadow:0 18px 40px -30px color-mix(in srgb,var(--pc) 70%,#000)}
.pz-sh{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.pz-st{min-width:0}
.pz-acts{display:flex;align-items:center;gap:6px;flex:none}
.pz-ib{width:36px;height:36px;border-radius:50%;display:inline-grid;place-items:center;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;padding:0;flex:none}
.pz-ib:hover{border-color:var(--pz);color:var(--pz)}
.pz-fix{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:999px;border:1.5px solid var(--pz);background:var(--pz);color:#fff;font:inherit;font-size:13px;font-weight:800;cursor:pointer}
/* ¿quién lo toca? */
.pz-who{display:flex;align-items:flex-start;gap:4px;overflow-x:auto;padding:2px 2px 4px;scrollbar-width:thin}
.pz-wl{flex:none;align-self:center;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);writing-mode:vertical-rl;transform:rotate(180deg);margin-right:4px}
.pz-tch{--pc:#64748B;flex:none;width:80px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;border:0;border-radius:14px;background:none;color:var(--ink);font:inherit;cursor:pointer;opacity:.72;transition:opacity .15s,background .15s}
.pz-tch .pu-mav{width:46px!important;height:46px!important;font-size:14px;transition:transform .15s}
.pz-tch.on .pu-mav{transform:scale(1.08);box-shadow:0 0 0 3px var(--pc),0 0 0 7px color-mix(in srgb,var(--pc) 28%,transparent)!important}
/* acordes del puente */
.pz-rail{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.pz-chip {
  --cc:#94a3b8;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1px;
  min-width:62px;
  padding:8px 12px;
  border-radius:14px;
  border:2px solid color-mix(in srgb,var(--cc) 70%,transparent);
  background:color-mix(in srgb,var(--cc) 16%,var(--surface));
  color:var(--ink);
  font:inherit;
  cursor:pointer;
  transition:transform .14s,box-shadow .14s,background .14s;
}
.pz-ar{width:8px;height:8px;border-top:2px solid var(--muted);border-right:2px solid var(--muted);transform:rotate(45deg);opacity:.5;margin:0 2px}
.pz-add{width:38px;height:38px;border-radius:12px;border:1.5px dashed var(--line);background:none;color:var(--muted);display:grid;place-items:center;cursor:pointer}
.pz-add:hover{border-color:var(--pz);color:var(--pz)}
/* el acorde que suena, explicado */
.pz-now{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;min-height:74px;padding:10px 12px;border-radius:16px;background:color-mix(in srgb,var(--surface-2) 70%,transparent)}
.pz-nc{--cc:#94a3b8;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:96px;padding:8px 12px;border-radius:14px;background:color-mix(in srgb,var(--cc) 22%,var(--surface));border:2px solid var(--cc);animation:pz-pop .25s ease-out}
.pz-nc.paso{border-style:dashed}
.pz-nt{min-width:0}
.pz-next{font-size:12px;color:var(--muted)}
.pz-tag{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--pz) 18%,transparent);color:var(--pz)}
@keyframes pz-pop{from{transform:scale(.92);opacity:.4}to{transform:none;opacity:1}}
/* piano */
.pz-kbw{width:100%;border-radius:12px;padding:6px 6px 0;background:linear-gradient(#111827,#0b1220);box-shadow:inset 0 2px 0 rgba(255,255,255,.06),0 10px 24px -18px #000;overflow:hidden}
.pz-kb{display:block;width:100%;height:clamp(92px,11vw,150px)}
.pz-kb .k rect{transition:fill .07s}
.pz-kb .k.w rect{fill:#F8FAFC;stroke:#94a3b8;stroke-width:.6}
.pz-kb .k.b rect{fill:#1f2937;stroke:#000;stroke-width:.6}
.pz-kb text{font:700 8.5px/1 system-ui,sans-serif;text-anchor:middle;fill:#64748b;pointer-events:none}
.pz-kb .k.b text{fill:#fff}
.pz-kb .k.l-lh rect{fill:#38BDF8}
.pz-kb .k.l-rh rect{fill:#F472B6}
.pz-kb .k.l-mel rect{fill:#F59E0B}
.pz-kb .k.l-lh text,.pz-kb .k.l-rh text,.pz-kb .k.l-mel text{fill:#111;font-size:10px;font-weight:900}
.pz-kb .k.b.l-lh text,.pz-kb .k.b.l-rh text,.pz-kb .k.b.l-mel text{font-size:8px}
.pz-leg{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:11.5px;color:var(--muted)}
.pz-hint{margin-left:auto;font-style:italic}
/* transporte */
.pz-tr{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding-top:4px;border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent);padding-top:12px}
.pz-play{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 22px 0 16px;border-radius:999px;border:0;background:var(--pz);color:#fff;font:inherit;font-size:15px;font-weight:900;cursor:pointer;box-shadow:0 10px 22px -12px var(--pz);transition:transform .12s}
.pz-play:active{transform:scale(.97)}
.pz-tg{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.pz-metro{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.pz-dur{font-size:12px;font-weight:700;color:var(--muted)}
.pz-tm{display:flex;flex-direction:column;gap:3px}
.pz-seg{display:inline-flex;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.pz-seg button.on small{color:#e6fffd}
/* ideas y aprende */
.pz-grid{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1.35fr);gap:16px;align-items:start}
.pz-ideas,.pz-learn{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:20px;background:var(--surface);border:1px solid var(--line);min-width:0}
.pz-h{margin:0;font-size:15px;display:flex;align-items:center;gap:6px}
.pz-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.pz-tabs::-webkit-scrollbar{display:none}
.pz-tabs button.on em{background:var(--pz);color:#fff}
.pz-list{display:flex;flex-direction:column;gap:8px;max-height:min(720px,72vh);overflow-y:auto;padding-right:2px;scrollbar-width:thin}
.pz-idea{display:flex;flex-direction:column;gap:6px;padding:11px 12px;border-radius:14px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface-2) 35%,var(--surface));cursor:default;transition:border-color .15s}
.pz-ih{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.pz-badge{font-size:9.5px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:999px;background:var(--pz);color:#fff}
.pz-sab{--sc:#94a3b8;font-size:10px;font-weight:800;padding:1px 7px;border-radius:999px;border:1px solid var(--sc);color:var(--sc)}
.pz-iq{margin:0;font-size:12.5px;font-style:italic;line-height:1.4;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pz-iq.plain{font-style:normal;-webkit-line-clamp:2}
.pz-idea.on .pz-iq{-webkit-line-clamp:unset}
.pz-if{display:flex;align-items:center;justify-content:space-between;gap:8px}
.pz-if .pz-ib{width:32px;height:32px}
.pz-use{height:32px;padding:0 14px;border-radius:999px;border:0;background:var(--pz);color:#fff;font:inherit;font-size:12.5px;font-weight:800;cursor:pointer}
.pz-lbody{min-width:0}
.pz-empty{display:flex;gap:12px;align-items:center;padding:18px;border-radius:14px;background:var(--surface-2);color:var(--muted);font-size:13px}
/* por qué funciona */
.pz-why{display:flex;flex-direction:column;gap:10px}
.pz-rel{margin:0;font-size:13.5px}
.pz-lead{margin:0;font-size:13px;color:var(--muted)}
.pz-q{margin:0;padding:10px 14px;border-left:4px solid var(--pz);border-radius:0 12px 12px 0;background:var(--pz-soft)}
.pz-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.pz-steps li::before{content:'';position:absolute;left:16px;top:42px;bottom:-8px;width:2px;background:color-mix(in srgb,var(--cc) 50%,var(--line))}
.pz-steps li:last-child::before{display:none}
.pz-sd{width:34px;height:34px;border-radius:50%;border:2px solid var(--cc);background:color-mix(in srgb,var(--cc) 20%,var(--surface));color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0;position:relative;z-index:1}
.pz-sh2{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
/* banda y ajustes */
.pz-band{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.pz-bt{display:flex;gap:10px;padding:10px 12px;border-radius:14px;background:color-mix(in srgb,var(--surface-2) 55%,transparent)}
.pz-cfg{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.pz-cg{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:14px;background:color-mix(in srgb,var(--surface-2) 55%,transparent)}
.pz-cg h5{margin:0;font-size:13px;display:flex;align-items:center;gap:6px}
.pz-sl{display:flex;flex-direction:column;gap:4px;font-size:12.5px}
.pz-row{display:flex;flex-direction:column;gap:4px}
.pz-ck{display:flex;gap:8px;align-items:flex-start;font-size:12.5px}
.pz-caps{display:flex;flex-wrap:wrap;gap:6px}
.pz-cg .pu-snd{display:flex;flex-direction:column;gap:6px}
.pz-voc .pu-vmap{max-height:300px}
/* aprende */
.pz-ap{display:flex;flex-direction:column;gap:12px}
.pz-apk{position:sticky;top:calc(var(--tb-h,56px) + 6px);z-index:5;display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:18px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(8px);border:1px solid var(--line);box-shadow:0 12px 30px -24px #000}
.pz-apnow{font-size:13px;color:var(--muted);min-height:20px}
.pz-apk .pz-kb{height:clamp(70px,8vw,104px)}
@media (max-width:980px) {
/* celular */
.pz-grid{grid-template-columns:minmax(0,1fr)}
.pz-list{max-height:none}
}
@media (max-width:640px) {
.pz-top{flex-direction:column;align-items:stretch}
.pz-brand h2{font-size:20px}
.pz-views{width:100%}
.pz-stage{padding:12px;border-radius:18px;gap:11px}
.pz-sh{flex-direction:column}
.pz-acts{align-self:stretch;justify-content:flex-end}
.pz-wl{display:none}
.pz-tch{width:68px}
.pz-tch .pu-mav{width:40px!important;height:40px!important}
.pz-rail{flex-wrap:nowrap;overflow-x:auto;padding:4px 2px 6px;scrollbar-width:none}
.pz-rail::-webkit-scrollbar{display:none}
.pz-chip{flex:none;min-width:54px;padding:6px 9px}
.pz-now{grid-template-columns:1fr;gap:8px;padding:9px}
.pz-nc{flex-direction:row;gap:8px;justify-content:flex-start;min-width:0;align-self:start;justify-self:start}
.pz-kbw{padding:4px 3px 0;border-radius:10px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.pz-kbw::-webkit-scrollbar{display:none}
.pz-kb{height:124px;width:calc(var(--nw,22) * 25px);min-width:100%;max-width:none}
.pz-apk .pz-kb{height:96px}
.pz-hint{display:none}
.pz-tr{gap:8px}
.pz-play{flex:1 1 100%;justify-content:center;height:50px}
.pz-tg{flex:1}
.pz-metro{width:100%;justify-content:center}
.pz-dur{display:none}
.pz-tm .pz-seg{display:flex}
.pz-ideas,.pz-learn{padding:12px;border-radius:16px}
.pz-band,.pz-cfg{grid-template-columns:minmax(0,1fr)}
.pz-apk{top:6px}
}
.pz-cg{min-width:0}
.pz-cg .hint,.pz-cg .pu-snd .hint{white-space:normal;overflow-wrap:anywhere}
.pz-cg .pu-snd .hint{flex-basis:auto;margin:0;align-self:stretch;position:static;transform:none;max-width:100%}
/* 7.114.6 · Puentes: menú Sonido (piano, qué suena y volúmenes) */
.pu-cfgpop{max-height:80vh;padding:10px 10px 8px}
.pu-cfgb{overflow:auto;padding:0 4px;min-height:0}
.pu-cfgb h5{margin:12px 0 6px;font-size:12.5px;display:flex;align-items:center;gap:5px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.pu-cfgf{display:flex;flex-direction:column;gap:3px;margin:0 0 8px;font-size:12px;font-weight:700}
.pu-cfgcaps{display:grid;grid-template-columns:1fr;gap:5px}
.pu-cfgcap{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;padding:7px 9px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.pu-sw{flex:none;position:relative;width:34px;height:20px;margin-top:1px;border-radius:999px;background:var(--line);transition:background .15s}
.pu-sw::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:left .15s}
.pu-cfgcap.on .pu-sw{background:var(--accent)}
.pu-cfgcap.on .pu-sw::after{left:16px}
.pu-cfgrow{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}
.pu-cfgmix{display:grid;grid-template-columns:78px 1fr 44px;align-items:center;gap:8px;margin:4px 0;font-size:13px}
@media (max-width:560px) {
.pu-cfgpop{left:8px!important;width:calc(100vw - 16px)!important}
}
/* 7.114.8 · Puentes experto: análisis de los dos tonos, Drop 2 y paneles flotantes bien ubicados */
.pu-pop .pu-popl{min-height:0}
.pu-pop.sheet{box-shadow:0 -8px 30px #0006}
.pz-anal{margin:0 0 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:0}
.pz-anal summary::after{content:'▾';margin-left:auto;color:var(--muted);transition:transform .15s}
.pz-anal[open] summary::after{transform:rotate(180deg)}
.pz-anc{--cc:#94a3b8;font:inherit;font-size:12px;font-weight:800;padding:1px 9px;margin:2px 2px 0 0;border-radius:999px;border:1.5px solid var(--cc);background:color-mix(in srgb,var(--cc) 16%,var(--surface));color:var(--ink);cursor:pointer}
.pz-shape{display:flex;align-items:center;gap:5px;margin-top:4px;font-size:11.5px;color:var(--muted)}
/* 7.114.8b · Puentes: cómo termina la canción que sale */
.pz-fins{display:flex;flex-wrap:wrap;gap:6px;align-items:stretch;margin:10px 0 4px}
.pz-finl{display:flex;align-items:center;gap:5px;width:100%;font-size:12.5px;font-weight:700;color:var(--muted)}
.pz-fin{--cc:#94a3b8;position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:6px 11px;border-radius:12px;border:1.5px solid color-mix(in srgb,var(--cc) 55%,var(--line));background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;text-align:left}
.pz-finwhy{margin:2px 0 10px;font-size:12.5px;color:var(--muted);line-height:1.45}
.pz-finsel{display:block;margin-top:2px;font-size:11.5px;color:var(--muted)}
@media (max-width:560px) {
.pz-fin{flex:1 1 calc(50% - 6px)}
}
/* 7.122.2 · Guitarras en Puentes (Julio Alberto) */
.pu-tec-gtr{border-left-color:#F97316!important}

/* ===== Estilos: material-pendiente ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.pu-lp{display:inline-flex;align-items:center;gap:5px;font-size:13px}
.pu-seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;align-self:flex-start}
.pmt-hero{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;padding:18px;border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,#F59E0B 16%,var(--surface)),var(--surface));border:1px solid var(--line)}
.pmt-kpis{display:flex;gap:10px;flex-wrap:wrap}
.pmt-k{display:flex;flex-direction:column;align-items:center;min-width:96px;padding:8px 12px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}
.pmt-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pmt-req{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}
.pmt-rq{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;cursor:pointer;background:var(--surface);color:var(--muted)}
.pmt-rq input{display:none}
.pmt-day{border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden}
.pmt-day.urg{border-color:#E11D48;box-shadow:0 0 0 1px color-mix(in srgb,#E11D48 40%,transparent)}
.pmt-dh{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;padding:10px 14px;background:var(--surface-2);border-bottom:1px solid var(--line)}
.pmt-st{margin-left:auto;font-size:12px;font-weight:700;color:#E11D48;display:inline-flex;align-items:center;gap:4px}
.pmt-day.ok .pmt-st{color:#16A34A}
.pmt-row{display:flex;gap:12px;align-items:center;padding:10px 14px;border-top:1px solid var(--line)}
.pmt-row:first-of-type{border-top:0}
.pmt-dh+.pmt-row{border-top:0}
.pmt-row.done{opacity:.7}
.pmt-row .rcover{width:44px;height:44px;border-radius:10px;overflow:hidden;flex:none;display:grid;place-items:center;background:var(--surface-2)}
.pmt-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.pmt-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}
.pmt-c{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;padding:2px 7px;border-radius:999px}
.pmt-act{display:flex;gap:6px;align-items:center;flex:none}
@media (max-width:640px) {
.pmt-row{flex-wrap:wrap}
.pmt-act{width:100%;justify-content:flex-end}
.pmt-k{min-width:80px}
.pmt-c{padding:3px 5px}
}

/* ===== Estilos: extras ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
/* ===== 7.112 · ¿Cómo funciona? y siguiente paso ===== */
.how-row{display:flex;justify-content:flex-end;margin:0 0 6px;min-height:0}
.how-btn{display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:12px;font-weight:600;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:999px;padding:3px 10px;cursor:pointer}
.how-btn:hover{color:var(--accent);border-color:var(--accent)}
.how-sub{margin:0 0 8px;color:var(--muted)}
.how-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;line-height:1.45}
.ns-card{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));margin-top:8px}
.ns-ic{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink,#fff)}
.ns-acts{display:flex;flex-wrap:wrap;gap:6px}
.niv-band{margin:12px 0 0;background:var(--surface-2)}
.niv-h{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.niv-t{display:flex;flex-direction:column;min-width:0}
.niv-bars{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:6px 14px}
.niv-b{display:grid;grid-template-columns:110px 1fr 28px;align-items:center;gap:8px;font-size:12.5px}
.niv-go{margin-top:10px}
/* ===== 7.112 · reto con el click ===== */
dialog.ckr{width:min(560px,96vw);max-height:94dvh;border:none;border-radius:20px;padding:0;background:var(--surface);color:var(--ink);box-shadow:0 30px 80px rgba(0,0,0,.4)}
dialog.ckr::backdrop{background:rgba(10,14,30,.55)}
.ckr-h{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line);font-size:16px}
.ckr-b{padding:14px 16px 18px;display:flex;flex-direction:column;gap:10px}
.ckr-lead{margin:0;line-height:1.45}
.ckr-warn{display:flex;gap:8px;align-items:center;padding:9px 11px;border-radius:12px;background:var(--warn-bg,#FFF7E6);font-size:13px}
.ckr-set{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ckr-go{justify-content:center;padding:12px;font-size:16px}
.ckr-live{display:flex;flex-direction:column;align-items:center;gap:12px;padding:10px 0}
.ckr-beats{display:flex;gap:10px}
.ckr-beats i.acc{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 45%,transparent) inset}
.ckr-st{font-size:16px}
.ckr-meter{width:220px;height:6px;border-radius:999px;background:color-mix(in srgb,var(--ink) 10%,transparent);overflow:hidden}
.ckr-res{display:flex;flex-direction:column;gap:10px}
.ckr-pct{display:flex;align-items:center;gap:14px}
.ckr-pct .hf-ring{width:76px;height:76px}
.ckr-plot{width:100%;height:70px;background:var(--surface-2);border-radius:12px}
.ckr-plot line{stroke:color-mix(in srgb,var(--ink) 25%,transparent);stroke-dasharray:3 3}
.ckr-plot circle.ok{fill:#16A34A}
.ckr-plot circle.mid{fill:#F59E0B}
.ckr-plot circle.bad{fill:#DC2626}
.ckr-ax{display:flex;justify-content:space-between;margin-top:-6px}
.ckr-msg{margin:0;line-height:1.45}
.ckr-pts{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:#B45309}
.ckr-acts{display:flex;gap:8px;justify-content:flex-end}
/* ===== 7.112 · cursos: ruta por instrumento y reto de la lección ===== */
.cur-ruta{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px;margin:0 0 12px}
.cur-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.cur-nodes{display:flex;align-items:stretch;gap:0;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.cur-ln{flex:none;width:18px;align-self:center;height:2px;background:var(--line)}
.cur-n{flex:none;width:150px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.cur-dot{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--ink) 10%,transparent)}
.cur-n.done .cur-dot{background:#16A34A;color:#fff}
.cur-n.now .cur-dot{background:var(--accent);color:var(--accent-ink,#fff)}
.cur-n.lock{opacity:.6}
.cu-reto {
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:60;
  width:min(340px,calc(100vw - 32px));
  background:var(--surface);
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:16px;
  padding:12px 14px;
  box-shadow:0 18px 50px rgba(0,0,0,.28);
  transform:translateY(20px);
  opacity:0;
  transition:transform .25s,opacity .25s;
}
.cur-rh{display:flex;align-items:center;gap:6px}
.cur-rl{margin:4px 0 0;font-size:12px;color:var(--muted)}
.cur-ra{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
@media (max-width:640px) {
.cu-reto{bottom:calc(76px + env(safe-area-inset-bottom));right:12px}
}
/* ===== 7.112 · reto de composición ===== */
.creto{background:linear-gradient(135deg,color-mix(in srgb,#9B3FB5 14%,var(--surface)),var(--surface) 70%);border:1px solid color-mix(in srgb,#9B3FB5 30%,var(--line));border-radius:18px;padding:14px;margin:0 0 14px}
@keyframes creFl{0%,100%{box-shadow:none}30%{box-shadow:0 0 0 4px color-mix(in srgb,#9B3FB5 40%,transparent)}}
.creto.empty{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:space-between}
.cre-k{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#9B3FB5}
.cre-cita{font-style:italic}
.cre-acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0 4px}
.cre-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-top:10px}
.cre-e{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:6px}
.cre-e.voted{border-color:#9B3FB5;box-shadow:0 0 0 1px #9B3FB5 inset}
.cre-e.mine{background:color-mix(in srgb,#9B3FB5 6%,var(--surface))}
.cre-e.p1{border-color:#C9A227;box-shadow:0 0 0 1px #C9A227 inset}
.cre-eh{display:flex;align-items:center;gap:8px}
.cre-eh .avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:var(--surface-2)}
.cre-md{font-size:22px}
.cre-ly{margin:0;white-space:pre-wrap;font:inherit;font-size:13px;line-height:1.45;color:var(--ink);background:var(--surface-2);border-radius:10px;padding:8px 10px;max-height:none}
.cre-ea{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.creto-prev{margin:0 0 14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 12px}
.cre-pick{display:flex;flex-direction:column;gap:6px}
.cre-pi{display:flex;flex-direction:column;align-items:flex-start;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.cre-pi:disabled{opacity:.55;cursor:default}
@media (max-width:640px) {
.niv-bars{grid-template-columns:1fr}
.niv-b{grid-template-columns:118px 1fr 28px}
}

/* ===== Estilos: emergencias ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
/* 7.120 · Emergencias del mero día, equipo de rescate y rol publicado vs. real */
dialog.em-dlg{width:min(560px,96vw);max-height:92dvh;border:0;border-radius:18px;padding:0;background:var(--surface);color:var(--ink);display:none;flex-direction:column}
dialog.em-dlg.wide{width:min(920px,97vw)}
dialog.em-dlg[open]{display:flex}
dialog.em-dlg::backdrop{background:rgba(0,0,0,.5)}
.em-dlg .mh{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line)}
.em-dlg .mh b svg{width:20px;height:20px;color:#E4262C}
.em-dlg .mb{padding:12px 14px 14px;overflow:auto;flex:1;min-height:0;align-content:start}
.em-dlg .mf{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding:10px 14px;border-top:1px solid var(--line)}
.em-err{color:#c62828;font-weight:600;font-size:13px;margin:8px 0 0}
.em-top{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.em-lv {
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:11.5px;
  font-weight:800;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--lc);
  background:color-mix(in srgb,var(--lc) 13%,var(--surface));
  border:1px solid color-mix(in srgb,var(--lc) 40%,transparent);
  padding:3px 9px;
  border-radius:999px;
  white-space:nowrap;
}
.em-stt{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--muted)}
.em-stt.s-abierta{background:color-mix(in srgb,#F28C28 16%,var(--surface));color:#b45309}
.em-stt.s-cubierta{background:color-mix(in srgb,#22c55e 16%,var(--surface));color:#15803d}
.em-mots{display:flex;flex-wrap:wrap;gap:6px}
.em-pase{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,#7C4DDB 10%,var(--surface));border:1px solid color-mix(in srgb,#7C4DDB 30%,var(--line));cursor:pointer}
.em-pase input{margin-top:3px}
.em-wait,.em-cov,.em-ask{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:10px 12px;border-radius:12px;background:var(--surface-2)}
.em-cov{background:color-mix(in srgb,#22c55e 12%,var(--surface));border:1px solid color-mix(in srgb,#22c55e 35%,var(--line))}
.em-cov.mine{background:color-mix(in srgb,#ffd740 18%,var(--surface));border-color:color-mix(in srgb,#ffb300 45%,var(--line))}
.em-ask{display:grid;gap:2px;background:color-mix(in srgb,#E4262C 9%,var(--surface));border:1px solid color-mix(in srgb,#E4262C 30%,var(--line))}
.em-rew{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-top:10px}
.em-rw{display:grid;place-items:center;text-align:center;gap:2px;padding:10px 6px;border-radius:12px;background:var(--surface-2)}
.em-accbtn{background:#E4262C!important;border-color:#E4262C!important;color:#fff!important}
.em-note{margin:10px 0 0;font-size:12.5px;color:var(--muted);display:flex;gap:5px;align-items:flex-start;flex-wrap:wrap}
.em-cgrp{margin-top:12px;display:grid;gap:6px}
.em-cand{display:flex;align-items:center;gap:9px;padding:7px 10px;border:1px solid var(--line);border-radius:12px;cursor:pointer;background:var(--surface)}
.em-tg{font-style:normal;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap;display:inline-flex;align-items:center;gap:3px}
.em-acts2{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}
.em-acts2 .linkbtn{border:0;background:none;padding:2px 0;font:inherit;font-size:12.5px;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.em-acts2 .linkbtn:hover{color:var(--accent);text-decoration:underline}
.em-winb{text-align:center;display:grid;gap:8px;justify-items:center;align-content:start}
.em-winb .em-cov{text-align:left;width:100%}
.em-wbig{font-size:46px;font-weight:900;color:#E4262C;line-height:1;display:grid;justify-items:center;margin-top:6px}
/* equipo de rescate */
.em-resc{display:grid;gap:10px;border-color:color-mix(in srgb,#E4262C 25%,var(--line))}
.em-rh{display:flex;gap:10px;align-items:flex-start}
.em-ri{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#E4262C;color:#fff;flex:none}
.em-rsw{display:flex;flex-wrap:wrap;gap:8px}
.em-sw{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px 6px 6px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.em-sw i::after{content:'';position:absolute;top:1px;left:1px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.3);transition:left .2s}
.em-sw.on i::after{left:13px}
.em-sw:disabled{opacity:.5;cursor:default}
.em-rstats{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:8px;align-items:center}
@media (max-width:520px) {
.em-rstats{grid-template-columns:1fr 1fr}
}
/* pedidos para mí y avisos para líderes */
.em-asks,.em-lead{display:grid;gap:6px}
.em-asks{border-color:color-mix(in srgb,#E4262C 45%,var(--line));background:color-mix(in srgb,#E4262C 6%,var(--surface))}
.em-askrow,.em-lrow{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid var(--line);background:var(--surface);color:inherit;font:inherit;border-radius:12px;padding:9px 11px;cursor:pointer}
.em-askrow:hover,.em-lrow:hover{border-color:color-mix(in srgb,#E4262C 50%,var(--line))}
.em-askrow .em-tx,.em-lrow .em-tx{flex:1;min-width:0;display:grid;gap:1px}
.em-askrow .em-lv,.em-lrow .em-lv{flex:none}
.em-lead.hot{border-color:color-mix(in srgb,#E4262C 45%,var(--line))}
.em-lh{display:flex;align-items:center;gap:8px;justify-content:space-between}
@media (max-width:520px) {
.em-lrow{flex-wrap:wrap}
}
.em-rmes{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:14px;margin:8px 0;background:linear-gradient(90deg,color-mix(in srgb,#ffd740 22%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,#ffb300 40%,var(--line))}
/* resumen del mes */
.em-mnav{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:8px}
.em-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin-bottom:10px;scrollbar-width:thin}
.em-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.em-k{display:grid;gap:2px;padding:10px 12px;border-radius:12px;background:var(--surface-2);border-left:4px solid var(--kc,var(--accent))}
.em-cols{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;margin-top:12px}
@media (max-width:700px) {
.em-cols{grid-template-columns:minmax(0,1fr)}
}
.em-drow{display:grid;gap:4px;margin-bottom:10px}
.em-dchip{display:grid;gap:1px;text-align:left;border:1px solid var(--line);background:var(--surface);color:inherit;font:inherit;font-size:13px;font-weight:600;border-radius:10px;padding:6px 10px;cursor:pointer}
.em-dchip.s-cubierta{border-left:4px solid #22c55e}
.em-dchip.s-sin-cubrir{border-left:4px solid #E4262C}
.em-dchip.s-abierta{border-left:4px solid #F28C28}
.em-bar{display:grid;grid-template-columns:minmax(90px,auto) 1fr auto;align-items:center;gap:8px;font-size:12.5px;margin-bottom:6px}
.em-tbl{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px}
.em-tbl th,.em-tbl td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.em-tbl th{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.em-tbl tr.top td{background:color-mix(in srgb,#ffd740 14%,var(--surface));font-weight:700}
.em-tbl td.old{color:var(--muted);text-decoration:line-through;text-decoration-color:color-mix(in srgb,#E4262C 60%,transparent)}
.em-tbl td.old .em-at{text-decoration:none}
.em-frow{display:grid;grid-template-columns:minmax(0,auto) auto;gap:2px 10px;padding:8px 10px;border-radius:12px;background:var(--surface-2);margin-bottom:6px}
.em-cmp{padding:10px 0;border-bottom:1px solid var(--line)}
.em-ch{display:flex;align-items:center;justify-content:space-between;gap:8px}
.em-at{font-style:normal;font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:999px;margin-left:6px;white-space:nowrap;display:inline-block}
.em-at.a{background:color-mix(in srgb,#22c55e 16%,var(--surface));color:#15803d}
.em-at.r{background:color-mix(in srgb,#F28C28 16%,var(--surface));color:#b45309}
.em-at.f{background:color-mix(in srgb,#E4262C 16%,var(--surface));color:#c62828}
@media (max-width:640px) {
.em-tbl{font-size:12px}
.em-tbl th,.em-tbl td{padding:5px 4px}
}
/* 7.134: segunda tarjeta de reconocimiento "Quien más cubrió" (reemplazos), en otro color para distinguirla del rescatista */
.em-rmes.cov{background:linear-gradient(90deg,color-mix(in srgb,#22c55e 18%,var(--surface)),var(--surface));border-color:color-mix(in srgb,#0fa3b1 40%,var(--line))}
.em-rmes.cov>svg{color:#0fa3b1}
.em-rmes.cov em{color:#0f766e}
:root[data-theme="dark"] .em-rmes.cov em{color:#5eead4}

/* ===== Estilos: estadisticas ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.est-hd{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.est-hd h2{display:flex;align-items:center;gap:8px;margin:0;font:800 24px/1.1 var(--display)}
.est-ctl{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.est-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:12px}
.est-kpi{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.est-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line);margin-bottom:10px}
.est-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.est-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.est-row{display:grid;grid-template-columns:34px 34px minmax(0,1.3fr) minmax(0,1.4fr) 92px 140px;gap:10px;align-items:center;padding:8px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer}
.est-row.cero{opacity:.62}
.est-crow,.est-vrow{grid-template-columns:34px minmax(0,1.4fr) minmax(0,1.2fr);cursor:default}
.est-mrow{grid-template-columns:34px 34px minmax(0,1.2fr) minmax(0,1.6fr)}
.est-rk{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:12px;background:var(--surface-2);color:var(--muted)}
.est-rk.oro{background:linear-gradient(135deg,#FCD34D,#D97706);color:#fff}
.est-rk.plata{background:linear-gradient(135deg,#E5E7EB,#9CA3AF);color:#fff}
.est-rk.bronce{background:linear-gradient(135deg,#FDBA74,#B45309);color:#fff}
.est-av{border-radius:50%;object-fit:cover;flex:none;display:inline-grid;place-items:center;background:var(--surface-2);color:var(--muted);font-style:normal;font-weight:800;font-size:12px}
.est-mi{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--surface-2);color:var(--accent)}
.est-who{min-width:0}
.est-meter{min-width:0}
.est-b{display:block;height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden}
.est-top{overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);white-space:nowrap}
.est-det{grid-column:1/-1;cursor:default;border-top:1px dashed var(--line);padding-top:10px;margin-top:2px}
.est-mini{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.est-sec{margin:16px 0}
.est-comp{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.est-ccard{padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.est-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.est-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px 2px 3px;border-radius:99px;background:var(--surface-2);font-size:12px}
.est-empty{padding:20px}
.est-note{margin:10px 2px}
@media (max-width:760px) {
.est-row{grid-template-columns:30px auto minmax(0,1fr);row-gap:6px}
.est-crow,.est-vrow{grid-template-columns:30px minmax(0,1fr)}
.est-mrow{grid-template-columns:30px auto minmax(0,1fr)}
}
.est-row>.uso-lv{justify-self:start}
/* 7.122 · Estadísticas: desglose de cursos y personas, gráficas de uso */
.est-clk{cursor:pointer!important}
.est-more{color:var(--muted);display:grid;place-items:center}
.est-sub{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.est-pl{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:6px}
.est-pr{display:grid;grid-template-columns:auto minmax(0,1fr) 120px;gap:8px;align-items:center;padding:6px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);cursor:pointer}
.est-pr:hover{border-color:var(--accent)}
.est-pr .n small svg{width:12px;height:12px;color:#d4a017}
.est-pg{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center}
.est-b i.mid{background:color-mix(in srgb,#f59e0b 70%,transparent)!important}
.est-b{display:flex}
.est-vl{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.est-vn{width:24px;height:24px;border-radius:7px;background:var(--surface-2);display:grid;place-items:center;font:700 11.5px/1 inherit;color:var(--muted)}
.est-vt{min-width:0}
.est-pd-hd{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:13px}
.est-pc{border:1px solid var(--line);border-radius:12px;background:var(--surface-2);margin-bottom:6px;padding:0 10px}
.est-pc>summary b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.est-tag{display:inline-flex;gap:4px;align-items:center;font-size:11.5px;font-weight:700;color:#a16207;background:color-mix(in srgb,#eab308 18%,transparent);padding:2px 8px;border-radius:99px}
.est-il{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:2px}
.est-il .st{display:grid;place-items:center;height:22px;border-radius:7px;font-size:11px;font-weight:700}
.est-g{padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.est-g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.est-svg{width:100%;height:auto;display:block;overflow:visible}
.est-svg .gl{stroke:var(--line);stroke-width:1}
.est-svg .ax{fill:var(--muted);font:500 10.5px/1 system-ui,sans-serif}
.est-svg .bar rect{fill:color-mix(in srgb,var(--accent) 55%,var(--surface-2));transition:fill .15s}
.est-svg .bar.best rect,.est-svg .bar:hover rect{fill:var(--accent)}
.est-svg .ln{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.est-svg .ar{fill:color-mix(in srgb,var(--accent) 14%,transparent)}
.est-svg .avg{stroke:var(--muted);stroke-dasharray:4 4;stroke-width:1}
.est-svg .pt circle{fill:var(--surface);stroke:var(--accent);stroke-width:1.6}
.est-svg .pt.svc circle{r:4.2;fill:var(--accent)}
.est-heat{display:grid;gap:3px;overflow-x:auto}
.est-heat .dl{font-size:11.5px;color:var(--muted);font-weight:600}
.est-heat .c{height:20px;border-radius:4px;background:var(--surface-2);position:relative;overflow:hidden}
.est-heat .c::after{content:"";position:absolute;inset:0;background:var(--accent);opacity:var(--a)}
.est-heat-lg{display:flex;align-items:center;gap:4px;justify-content:flex-end;font-size:11px;color:var(--muted);margin-top:4px}
.est-heat-lg i::after{content:"";position:absolute;inset:0;background:var(--accent);opacity:var(--a)}
@media (max-width:760px) {
.est-g2{grid-template-columns:1fr}
.est-row.est-crow .est-meter{grid-column:2/3}
.est-vm{grid-column:2}
.est-pr{grid-template-columns:auto minmax(0,1fr) 90px}
.est-pc>summary .est-tag,.est-pc>summary small{grid-column:1/-1;justify-self:start}
.est-il>li>small{grid-column:2;white-space:normal}
}
.est-vl>li.cero{opacity:.6;padding:4px 8px}
.est-vl>li.cero .est-chips{display:none}
.est-pg .est-b,.est-vm .est-b{background:color-mix(in srgb,var(--ink) 12%,transparent)}
.est-pl{grid-template-columns:repeat(auto-fill,minmax(330px,1fr))}

/* ===== Estilos: ia ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
/* 7.124: Entrenar la IA + lector con voz */
dialog.ia-dlg{width:min(980px,96vw)}
.ia-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:8px}
.ia-eqb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-radius:12px;padding:9px 12px;font-size:13.5px;line-height:1.4}
.ia-intro{background:var(--surface-2);border-radius:12px;padding:10px 14px}
.ia-sec{display:grid;gap:10px;min-width:0}
.ia-sech{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ia-sec h4 small{color:var(--muted);font-weight:500}
.ia-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:10px}
.ia-card{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--surface);display:grid;gap:8px;align-content:start;min-width:0}
.ia-cardh{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ia-carda{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ia-pill{font-style:normal;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--muted);white-space:nowrap}
.ia-pill.listo{background:color-mix(in srgb,#22c55e 18%,transparent);color:#15803d}
.ia-pill.fila{background:color-mix(in srgb,#f59e0b 20%,transparent);color:#b45309}
.ia-pill.trabajando{background:color-mix(in srgb,#8b5cf6 20%,transparent);color:#6d28d9}
.ia-pill.error{background:color-mix(in srgb,#ef4444 18%,transparent);color:#b91c1c}
.ia-pill.cambios{background:color-mix(in srgb,#0ea5e9 18%,transparent);color:#0369a1}
:root[data-theme="dark"] .ia-pill.listo{color:#4ade80}
:root[data-theme="dark"] .ia-pill.fila{color:#fbbf24}
:root[data-theme="dark"] .ia-pill.trabajando{color:#c4b5fd}
:root[data-theme="dark"] .ia-pill.error{color:#fca5a5}
:root[data-theme="dark"] .ia-pill.cambios{color:#7dd3fc}
.ia-st{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.ia-st.trab{color:var(--ink)}
.ia-bar{display:block;height:6px;border-radius:6px;background:var(--surface-2);overflow:hidden}
.ia-err{color:var(--danger);font-size:13px}
.ia-list{display:grid;gap:6px}
.ia-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:var(--surface)}
.ia-rowt{min-width:0;display:grid;gap:4px}
.ia-rowa{display:flex;gap:2px}
.ia-chips{display:flex;flex-wrap:wrap;gap:4px}
.ia-play{width:36px;height:36px;border-radius:50%;border:none;background:var(--accent);color:#fff;display:grid;place-items:center;cursor:pointer;flex:none}
.ia-row.sm .ia-play{width:30px;height:30px}
.ia-form{border:1px dashed color-mix(in srgb,var(--accent) 55%,var(--line));border-radius:14px;padding:12px;display:grid;gap:10px;background:color-mix(in srgb,var(--accent) 5%,var(--surface))}
.ia-fa{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.ia-files{display:grid;gap:6px;max-height:260px;overflow:auto}
.ia-sug{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.ia-der{display:grid;gap:4px}
.ia-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:4px 12px;max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:8px}
.ia-pick .ck{overflow-wrap:anywhere}
.ia-lvls{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.ia-lvl{border:1px solid var(--line);border-radius:12px;padding:8px 10px;display:grid;gap:2px;cursor:pointer;background:var(--surface)}
.ia-lvl:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 30%,transparent)}
.ia-lvl input{justify-self:start}
.ia-pruebas{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:8px}
.ia-prueba{display:grid;gap:4px}
.ia-muestra{display:grid;gap:4px}
.ia-auds summary{cursor:pointer;font-size:13px;color:var(--muted)}
.ia-auds{display:grid;gap:4px}
.ia-auds[open]{gap:6px}
.ia-try{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:end}
.ia-try textarea{min-height:44px}
.ia-perm{border:1px solid color-mix(in srgb,#f59e0b 50%,var(--line));border-radius:12px;padding:10px;display:grid;gap:8px;background:color-mix(in srgb,#f59e0b 7%,var(--surface))}
.ia-lec{border:1px solid var(--line);border-radius:12px;padding:10px;display:grid;gap:6px;background:var(--surface)}
.ia-lech{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ia-eqs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:8px}
.ia-eq{border:1px solid var(--line);border-radius:12px;padding:10px;display:grid;gap:3px;opacity:.7}
.ia-how summary{cursor:pointer;font-weight:600}
/* lector */
.ial{display:grid;gap:10px}
.ial-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ial-row .ial-r{flex:0 1 120px}
.ial-list{display:grid;gap:8px}
@media (max-width:640px) {
.ia-row{grid-template-columns:auto minmax(0,1fr)}
.ia-rowa{grid-column:1/-1;justify-content:flex-end}
.ia-try{grid-template-columns:1fr}
.ia-tabs button span{font-size:12.5px}
.ia-form .seg{display:flex}
}
/* 7.133: auto-etiquetado de música (género/ánimo/instrumentos) */
.ia-gfilter{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0}
.ia-gfilter .chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
/* chips de etiqueta en la fila de cada canción */
.ia-chips .chip.gen{background:color-mix(in srgb,#8b5cf6 18%,transparent);color:#6d28d9;font-weight:600}
.ia-chips .chip.ani{background:color-mix(in srgb,#ec4899 16%,transparent);color:#be185d}
.ia-chips .chip.ins{background:color-mix(in srgb,#0ea5e9 15%,transparent);color:#0369a1}
.ia-chips .chip.wait{background:color-mix(in srgb,#8b5cf6 14%,transparent);color:#6d28d9;display:inline-flex;align-items:center;gap:4px}
.ia-chips .chip.sug{background:color-mix(in srgb,#f59e0b 14%,transparent);color:#b45309;font-style:italic}
@keyframes ia-spin{to{transform:rotate(360deg)}}
:root[data-theme="dark"] .ia-chips .chip.gen{color:#c4b5fd}
:root[data-theme="dark"] .ia-chips .chip.ani{color:#f9a8d4}
:root[data-theme="dark"] .ia-chips .chip.ins{color:#7dd3fc}
:root[data-theme="dark"] .ia-chips .chip.sug,:root[data-theme="dark"] .ia-chips .chip.wait{color:#fcd34d}
/* editor de etiquetas dentro de "Editar canción" */
.ia-tags{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:12px;padding:10px;display:grid;gap:8px;background:color-mix(in srgb,var(--accent) 4%,var(--surface))}
.ia-tagh{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.ia-tagpick{display:flex;flex-wrap:wrap;gap:5px;margin-top:3px}
.ia-tagpick .chip.tpick{cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-style:normal;font-size:12px;padding:4px 11px;border-radius:999px}

/* 7.141: elegir acento de una voz */
.ia-acento{margin-top:6px}
.ia-acento summary{cursor:pointer;font-weight:600}
.ia-acento .ia-row.on{border-color:color-mix(in srgb,#22c55e 55%,var(--line))}

/* ===== Estilos: examenes ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.ex-wrap{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:12px;padding-bottom:90px}
.ex-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ex-tt{display:flex;align-items:center;gap:10px}
.ex-tt h2{margin:0;font-size:22px}
.ex-seg{display:flex;gap:4px;background:var(--surface-2);border-radius:999px;padding:4px}
.ex-card{border-radius:16px;padding:16px}
.ex-card h3{margin:0 0 10px}
.ex-card h3 small{color:var(--muted);font-weight:500}
.ex-empty{text-align:center;padding:34px 16px}
.ex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}
.ex-tile {
  display:flex;
  flex-direction:column;
  gap:8px;
  text-align:left;
  border:1px solid var(--line);
  background:linear-gradient(160deg,color-mix(in srgb,var(--ex) 10%,var(--surface)) 0%,var(--surface) 65%);
  border-radius:16px;
  padding:14px;
  color:var(--ink);
  font:inherit;
  cursor:pointer;
  transition:transform .12s,box-shadow .12s;
}
.ex-tile:hover{transform:translateY(-2px);box-shadow:0 8px 22px color-mix(in srgb,var(--ex) 18%,transparent)}
.ex-tile-h{display:flex;gap:10px;align-items:flex-start}
.ex-tile p{margin:0;color:var(--muted);font-size:13px;line-height:1.4}
.ex-tile-f{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:auto}
.ex-go{margin-left:auto;color:var(--ex);font-weight:700;font-size:13px}
.ex-chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--muted);white-space:nowrap}
.ex-note{display:flex;gap:6px;align-items:flex-start}
.ex-mut{color:var(--muted)}
.ex-warn{color:#c2410c;font-weight:600}
.ex-map{color:var(--ink);text-decoration:none;border-bottom:1px dashed var(--line)}
/* intro y encabezado */
.ex-intro-b{text-align:center;max-width:620px;margin:6px auto 0;display:flex;flex-direction:column;align-items:center;gap:6px}
.ex-intro-b h2{margin:0}
.ex-intro-b p{margin:0;color:var(--muted)}
.ex-facts{text-align:left;margin:6px 0;padding-left:20px;line-height:1.6}
.ex-auto{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13.5px;background:var(--surface-2);border-radius:12px;padding:10px 12px;margin:10px 0 4px;align-items:center}
.ex-auto>div{display:flex;align-items:center;gap:6px}
.ex-head-b{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:6px;flex-wrap:wrap}
.ex-head-b h2{margin:2px 0 0}
.ex-banner{display:flex;gap:8px;align-items:flex-start;border-radius:12px;padding:10px 12px;margin-top:10px;font-size:14px;line-height:1.4}
.ex-prog{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.ex-bar{flex:1;min-width:120px;height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.ex-saved{font-size:12px;color:#16a34a;font-weight:600}
/* preguntas */
.ex-qs{display:flex;flex-direction:column;gap:10px}
.ex-q{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:14px;scroll-margin-top:90px;transition:box-shadow .2s,border-color .2s}
.ex-n{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);font-size:13px;font-weight:800}
.ex-q.done .ex-n{background:var(--ex);color:#fff}
.ex-q.miss{border-color:#dc2626;box-shadow:0 0 0 3px color-mix(in srgb,#dc2626 22%,transparent)}
.ex-opts{display:flex;flex-direction:column;gap:6px}
.ex-opt{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:11px;padding:9px 11px;cursor:pointer;background:var(--bg);font-size:14.5px;line-height:1.35;position:relative}
.ex-opt input{position:absolute;opacity:0;pointer-events:none}
.ex-l{flex:none;width:24px;height:24px;border-radius:7px;display:grid;place-items:center;font-size:12.5px;font-weight:800;background:var(--surface-2);color:var(--muted)}
.ex-opt:hover:not(.ro){border-color:color-mix(in srgb,var(--ex) 50%,var(--line))}
.ex-opt.sel{border-color:var(--ex);background:color-mix(in srgb,var(--ex) 10%,var(--bg))}
.ex-opt.sel .ex-l{background:var(--ex);color:#fff}
.ex-opt.ro{cursor:default}
.ex-opt em{margin-left:auto;font-style:normal;font-size:11.5px;font-weight:700;color:var(--muted);white-space:nowrap}
.ex-opt.right{border-color:#16a34a;background:color-mix(in srgb,#16a34a 13%,var(--bg))}
.ex-opt.right .ex-l{background:#16a34a;color:#fff}
.ex-opt.wrong{border-color:#dc2626;background:color-mix(in srgb,#dc2626 12%,var(--bg))}
.ex-opt.wrong .ex-l{background:#dc2626;color:#fff}
.ex-q.good{border-left:5px solid #16a34a}
.ex-q.bad{border-left:5px solid #dc2626}
.ex-mark{margin-left:auto;flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff}
.ex-q.good .ex-mark{background:#16a34a}
.ex-q.bad .ex-mark{background:#dc2626}
.ex-qs.res .ex-q{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px;align-items:start}
.ex-qs.res .ex-q:not(:has(.ex-frag)){grid-template-columns:minmax(0,1fr)}
/* fragmento del video */
.ex-frag{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--surface-2);display:flex;flex-direction:column;gap:8px}
.ex-q.bad .ex-frag{border-color:color-mix(in srgb,#dc2626 40%,var(--line));background:color-mix(in srgb,#dc2626 6%,var(--surface-2))}
.ex-frag-h{display:flex;gap:8px;align-items:flex-start}
.ex-frag blockquote{margin:0;padding:6px 10px;border-left:3px solid var(--ex);font-size:13px;line-height:1.45;color:var(--ink);background:var(--surface);border-radius:0 8px 8px 0}
.ex-vid video{width:100%;border-radius:10px;background:#000;max-height:260px;display:block}
.ex-vid-msg{font-size:12px;color:var(--muted);margin-top:4px}
.ex-vid-msg:empty{display:none}
.ex-frag .btn{align-self:flex-start;display:inline-flex;align-items:center;gap:6px}
.ex-frag .btn .ico{width:14px;height:14px}
/* calificación */
.ex-score{display:flex;align-items:center;gap:8px;position:relative}
.ex-score circle{fill:none;stroke-width:7}
.ex-score .bg{stroke:var(--surface-2)}
.ex-score .fg{stroke:var(--sc);stroke-linecap:round;transition:stroke-dashoffset .6s}
.ex-score>div{position:absolute;left:0;width:64px;top:0;height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.ex-score>div b{font-size:18px;color:var(--sc)}
.ex-score>div small{font-size:10px;color:var(--muted)}
.ex-score>span{font-size:13px;font-weight:600;max-width:90px;line-height:1.25}
/* pie para publicar */
.ex-foot {
  position:sticky;
  bottom:calc(10px + env(safe-area-inset-bottom));
  z-index:5;
  display:flex;
  align-items:center;
  gap:10px;
  justify-content:space-between;
  background:color-mix(in srgb,var(--surface) 92%,transparent);
  backdrop-filter:blur(8px);
  border:1px solid var(--line);
  border-radius:999px;
  padding:8px 8px 8px 16px;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
}
.ex-foot span{font-size:13.5px;font-weight:600;color:var(--muted)}
.ex-foot .btn{display:inline-flex;align-items:center;gap:6px;border-radius:999px}
.ex-foot .btn .ico{width:16px;height:16px}
/* líderes */
.ex-lh-row{display:flex;gap:10px;flex-wrap:wrap}
.ex-lab{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--muted);flex:1;min-width:200px;margin-bottom:8px}
.ex-lab select,.ex-lab input,.ex-lab textarea,.ex-edq textarea,.ex-edopt input,.ex-edsrc select,.ex-edsrc input{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:9px;padding:8px 10px;font:inherit;font-size:14px;width:100%;box-sizing:border-box;min-width:0}
.ex-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:6px 0 10px}
.ex-kpis>div{background:var(--surface-2);border-radius:12px;padding:10px;text-align:center}
.ex-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.ex-actions .btn{display:inline-flex;align-items:center;gap:6px}
.ex-actions .btn .ico{width:16px;height:16px}
.ex-tbl{display:flex;flex-direction:column;gap:6px}
.ex-row{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:10px 12px;font:inherit;color:var(--ink);cursor:pointer}
.ex-row:hover{border-color:color-mix(in srgb,var(--ex) 45%,var(--line))}
.ex-av{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--ex) 18%,var(--surface));color:var(--ex);font-style:normal;font-weight:800;font-size:13px}
.ex-row-m{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.ex-av2{color:#b45309!important}
.ex-av2.full{color:#15803d!important}
.ex-row-s{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.ex-cal{font-size:20px;color:var(--sc)}
.ex-drafts{display:flex;flex-wrap:wrap;gap:6px}
.ex-dr{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border-radius:999px;padding:4px 10px 4px 4px;font-size:13px}
.ex-reg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.ex-reg>div{background:var(--surface-2);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:3px;font-size:13px;min-width:0}
.ex-hist{display:flex;flex-direction:column;gap:4px;margin-top:8px;font-size:12.5px;color:var(--muted)}
/* editor */
.ex-edqs{display:flex;flex-direction:column;gap:10px}
.ex-edq{border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px}
.ex-edq-h{display:flex;justify-content:space-between;align-items:center}
.ex-edq-h span{display:flex;gap:4px}
.ex-edopts{display:flex;flex-direction:column;gap:6px}
.ex-edopt{display:flex;gap:6px;align-items:center}
.ex-edopt.ok input[data-exopt]{border-color:#16a34a;background:color-mix(in srgb,#16a34a 9%,var(--bg))}
.ex-edsrc{display:flex;flex-direction:column;gap:6px;border-top:1px dashed var(--line);padding-top:8px}
.ex-edsrc-r{display:grid;grid-template-columns:minmax(0,2fr) 90px 90px;gap:6px;align-items:end}
.ex-frag-ed{background:transparent;border:0;padding:0}
.ex-edfoot{position:sticky;bottom:calc(10px + env(safe-area-inset-bottom));display:flex;gap:8px;align-items:center;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:14px;padding:8px;z-index:5}
.ex-sp{flex:1}
@media (max-width:760px) {
.ex-qs.res .ex-q{grid-template-columns:minmax(0,1fr)}
.ex-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.ex-reg{grid-template-columns:minmax(0,1fr)}
.ex-tt h2{font-size:19px}
.ex-edsrc-r{grid-template-columns:minmax(0,1fr) 80px 80px}
.ex-score>span{display:none}
}
.ex-onbar>div svg{width:18px;height:18px;flex:none}
/* 7.129.2: logros de exámenes */
.ex-rw{padding:12px 14px}
.ex-rw-h{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.ex-rw-l{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.ex-rw-i{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:12px;background:var(--surface-2);opacity:.55;font-size:13px;min-width:0}
.ex-rw-i span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ex-rw-i.on{opacity:1;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,#7C3AED 45%,transparent)}
.ex-rw-c{display:flex;gap:2px;font-style:normal}
@media (max-width:640px) {
.ex-rw-l{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.ex-rw-c{flex:none;align-items:center}
.ex-rw-c b.ex-rw-bn{width:26px;height:14px;border-radius:4px;background-size:cover!important}
.ex-rw-c b.ex-rw-cp>*{transform:scale(.8);transform-origin:center}
@media (max-width:640px) {
.ex-rw-i{gap:6px;padding:6px}
.ex-rw-i span{white-space:normal;line-height:1.15;font-size:12.5px;overflow-wrap:anywhere}
.ex-rw-c b.ex-rw-bn{width:18px}
}
.ex-prevres{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.ex-prevpr{margin-top:12px;padding:10px 12px;border-radius:12px;font-size:14px}
.ex-prevpr.bad{background:color-mix(in srgb,#dc2626 10%,var(--surface-2))}
.ex-prevpr ul{margin:6px 0 0;padding-left:18px}
.ex-prevpr li{margin:3px 0}
.ex-q.flash{box-shadow:0 0 0 3px #7C3AED}
/* 7.130 · Exámenes: aplicaciones con ID, tiempo, strikes, historial y estadísticas */
.ex-seg{flex-wrap:wrap}
.ex-timer{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;margin-top:10px;padding:10px 14px;border-radius:12px;background:color-mix(in srgb,var(--ex) 10%,var(--surface));position:sticky;top:calc(var(--tb-h,56px) + 6px);z-index:6}
.ex-timer span{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--muted)}
.ex-timer u{display:block;height:100%;background:var(--ex);border-radius:999px;transition:width 1s linear}
.ex-timer.warn u{background:#d97706}
.ex-timer.crit{background:color-mix(in srgb,#dc2626 15%,var(--surface));animation:exPulse 1.2s ease-in-out infinite}
.ex-timer.crit u{background:#dc2626}
.ex-timer.crit b{color:#dc2626}
@keyframes exPulse{50%{box-shadow:0 0 0 4px color-mix(in srgb,#dc2626 22%,transparent)}}
.ex-banner.crit{background:color-mix(in srgb,#dc2626 13%,var(--surface))}
.ex-foot.venc{border-color:#dc2626;box-shadow:0 8px 24px rgba(220,38,38,.25)}
.ex-strkc{display:inline-flex;align-items:center;gap:5px;color:var(--muted)}
.ex-sk{color:#dc2626!important;font-weight:600}
.ex-autoc{color:#b45309!important}
.ex-row-c{display:flex;flex-wrap:wrap;gap:2px 10px}
/* historial del integrante */
.ex-histc{margin-top:14px}
.ex-hl{display:flex;flex-direction:column;gap:8px}
.ex-hrow{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:10px 12px;font:inherit;color:var(--ink);cursor:pointer}
.ex-hrow:hover{border-color:color-mix(in srgb,var(--ex) 45%,var(--line))}
.ex-hrow>div{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.ex-hico{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--ex) 14%,var(--surface));color:var(--ex)}
/* aplicación (líderes) */
.ex-asel{margin:8px 0 2px}
.ex-apl{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;border-radius:14px;padding:12px 14px;margin:8px 0 6px;background:var(--surface-2);border:1px solid var(--line)}
.ex-apl-b{display:flex;gap:6px;flex-wrap:wrap}
.ex-apl-b .btn{display:inline-flex;align-items:center;gap:6px}
.ex-apl-b .btn .ico{width:15px;height:15px}
.ex-apl-c{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.ex-code{align-self:flex-start;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:700;letter-spacing:.5px;padding:2px 8px;border-radius:6px;background:var(--ex);color:#fff}
.ex-kpis{grid-template-columns:repeat(auto-fit,minmax(104px,1fr))}
.ex-kpis>div.g b{color:#16a34a}
.ex-kpis>div.r b{color:#dc2626}
/* ventanitas */
dialog.ex-dlg{max-width:460px;width:calc(100vw - 24px);border:0;border-radius:16px;padding:0;background:var(--surface);color:var(--ink);box-shadow:0 20px 60px rgba(0,0,0,.35)}
dialog.ex-dlg::backdrop{background:rgba(0,0,0,.45)}
dialog.ex-dlg .mh{padding:14px 16px 4px}
dialog.ex-dlg .mh h2{margin:0;font-size:18px}
dialog.ex-dlg .mb p{margin:0;line-height:1.45}
dialog.ex-alert{border-top:5px solid #dc2626}
.ex-dlg .ex-lab{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:13.5px}
.ex-dlg input[type=number],.ex-dlg select{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:7px 9px;font:inherit;max-width:160px}
.ex-dlg select{max-width:100%}
.ex-picks{display:flex;flex-wrap:wrap;gap:6px}
.ex-pick{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:999px;padding:5px 11px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
/* estadísticas */
.ex-st-h .ex-lab{max-width:100%}
.ex-st-h select{max-width:100%}
.ex-st-id{display:flex;gap:10px;align-items:center;margin:10px 0 4px;flex-wrap:wrap}
.ex-st-id>div{display:flex;flex-direction:column;gap:2px;flex:1 1 240px;min-width:0}
.ex-st-g{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:12px;margin:12px 0}
.ex-ch{margin:12px 0}
.ex-donut{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.ex-donut text.big{font-size:17px;font-weight:800;fill:var(--ink)}
.ex-donut text.sm{font-size:7.5px;fill:var(--muted)}
.ex-donut ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.ex-donut li{display:flex;align-items:center;gap:8px}
.ex-donut li i{width:12px;height:12px;border-radius:3px}
.ex-hist-ch{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:6px;align-items:end;height:170px;padding-top:6px}
.ex-hb{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:3px}
.ex-hb span{font-size:12px;color:var(--muted)}
.ex-qst{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.ex-qsi{border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.ex-qsi summary{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(70px,160px) 44px;gap:10px;align-items:center;padding:8px 10px;cursor:pointer;list-style:none}
.ex-qsi summary::-webkit-details-marker{display:none}
.ex-qsi summary b{text-align:right}
.ex-qt{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ex-qsi[open] .ex-qt{white-space:normal}
.ex-qb{display:block;height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.ex-qb.sm{height:8px}
.ex-qd{display:flex;flex-direction:column;gap:5px;padding:4px 12px 12px}
.ex-qd>div{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(60px,140px) 30px;gap:8px;align-items:center;font-size:13px;padding:3px 6px;border-radius:8px}
.ex-qd>div.ok{background:color-mix(in srgb,#16a34a 12%,var(--surface))}
.ex-qd>div.ok .ex-qb i{background:#16a34a}
.ex-qd>div b{text-align:right}
.ex-qo{overflow-wrap:anywhere}
.ex-cmp{display:flex;flex-direction:column;gap:6px}
.ex-cmpr{display:grid;grid-template-columns:90px minmax(0,1fr) minmax(80px,200px) 40px auto;gap:10px;align-items:center;padding:7px 10px;border-radius:10px;border:1px solid var(--line);background:var(--bg);font:inherit;color:var(--ink);text-align:left}
.ex-all summary{list-style:none;cursor:pointer}
.ex-all summary::-webkit-details-marker{display:none}
.ex-all summary h3{margin:0}
.ex-all[open] summary{margin-bottom:10px}
.ex-sf{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}
.ex-sq{margin-left:auto;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:999px;padding:6px 12px;font:inherit;min-width:160px}
.ex-st-ord{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:12.5px;color:var(--muted);margin-bottom:8px}
.ex-th{border:0;background:transparent;color:var(--muted);font:inherit;font-weight:600;padding:3px 8px;border-radius:999px;cursor:pointer}
.ex-stt{display:flex;flex-direction:column;gap:6px;max-height:640px;overflow:auto;overscroll-behavior:contain;padding-right:2px}
.ex-str{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:9px 12px;font:inherit;color:var(--ink)}
button.ex-str:hover{border-color:color-mix(in srgb,var(--ex) 45%,var(--line))}
.ex-str.off{opacity:.78}
.ex-str .ex-av{overflow:hidden}
.ex-str-m{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
@media (max-width:760px) {
.ex-st-g{grid-template-columns:minmax(0,1fr)}
.ex-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.ex-cmpr{grid-template-columns:76px minmax(0,1fr) 40px;grid-template-areas:"c d n" "b b b" "p p p"}
.ex-cmpr>b:first-child{grid-area:c}
.ex-cmpr>small{grid-area:d}
.ex-cmpr>b:nth-of-type(2){grid-area:n;text-align:right}
.ex-qsi summary{grid-template-columns:auto minmax(0,1fr) 44px}
.ex-qsi summary .ex-qb{grid-column:2/4;grid-row:2}
.ex-sq{margin-left:0;flex:1 1 100%}
.ex-hist-ch{gap:3px;height:140px}
}
@media (max-width:640px) {
dialog.ex-dlg{height:auto!important;min-height:0!important;max-height:86dvh!important;width:calc(100vw - 24px)!important;max-width:460px!important;margin:0!important;inset:auto!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;border-radius:16px!important}
}
.ex-histc h3,.ex-st-t h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* 7.137 · niveles de examen e historial de aplicaciones */
.ex-niv{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap;letter-spacing:.2px}
.ex-niv.n1{background:#dcfce7;color:#166534}
.ex-niv.n2{background:#fef3c7;color:#92400e}
.ex-niv.n3{background:#fee2e2;color:#991b1b}
:root[data-theme="dark"] .ex-niv.n1{background:#14532d;color:#bbf7d0}
:root[data-theme="dark"] .ex-niv.n2{background:#78350f;color:#fde68a}
:root[data-theme="dark"] .ex-niv.n3{background:#7f1d1d;color:#fecaca}
.ex-lh-niv{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 2px}
.ex-chip.ex-para{background:#ede9fe;color:#5b21b6}
:root[data-theme="dark"] .ex-chip.ex-para{background:#3b2a6b;color:#ddd6fe}
.ex-hh-t{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.ex-hh-t h3{margin:0 0 4px}
.ex-hh-f{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
.ex-hl2{display:grid;gap:8px;margin-top:4px}
.ex-hr{display:grid;grid-template-columns:auto minmax(0,1.6fr) minmax(0,1.4fr) minmax(0,1fr) auto;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:10px 12px;font:inherit;color:var(--ink);cursor:pointer;width:100%}
.ex-hr:hover{border-color:var(--ex)}
.ex-hr-c{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.ex-hr-m,.ex-hr-d,.ex-hr-n{display:flex;flex-direction:column;gap:3px;min-width:0}
.ex-hr-d b::first-letter{text-transform:uppercase}
.ex-hr-n span{font-weight:600;font-size:13px}
.ex-hr-s{display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:64px}
@media (max-width:760px) {
.ex-hr{grid-template-columns:1fr auto;gap:6px 10px}
.ex-hr-c{flex-direction:row;grid-column:1/-1}
.ex-hr-m,.ex-hr-d,.ex-hr-n{grid-column:1}
.ex-hr-s{grid-column:2;grid-row:2/span 3;align-self:center}
}
/* 7.137: los diálogos de Exámenes se abren fuera de #panel-examenes y no heredaban el color --ex: la opción marcada se veía en blanco */
.ex-dlg{--ex:#7C3AED}

/* ===== Estilos: tablas ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
/* ===== 7.140 · Tablas (estilo Conciliación) ===== */
.dt3-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 8px}
.dt3-q{display:flex;align-items:center;gap:6px;flex:1 1 260px;max-width:420px;min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:0 10px;margin:0}
.dt3-q:focus-within{border-color:var(--accent)}
.dt3-q input{border:0;background:none;padding:8px 0;outline:none;width:100%;min-width:0;color:var(--ink);font:inherit;font-size:13.5px;box-shadow:none}
.dt3-l{display:inline-flex;align-items:center;gap:6px;margin:0;font-weight:600;font-size:12.5px;color:var(--muted);white-space:nowrap}
.dt3-l>span{display:inline-flex;align-items:center;gap:5px}
.dt3-l>span svg{width:15px;height:15px}
.dt3-l em{font-style:normal}
.dt3-l select{width:auto;margin:0;padding:5px 8px;font-size:12.5px;min-height:0}
.dt3-b{display:inline-flex;align-items:center;gap:6px}
.dt3-b em{font-style:normal}
.dt3-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 8px}
.dt3-chips[hidden]{display:none}
.dt3-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 10px;border-radius:99px;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--ink);font-size:12.5px;font-weight:600}
.dt3-chip.g{border-style:dashed}
.dt3-chip button{border:0;background:none;color:var(--muted);cursor:pointer;padding:2px;border-radius:50%;display:grid}
.dt3-chip button:hover{background:color-mix(in srgb,var(--danger) 18%,transparent);color:var(--danger)}
.dt3-pag{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:6px 0 14px;padding:4px 2px;font-size:12.5px;color:var(--muted)}
.dt3-pag[hidden]{display:none}
.dt3-pags{display:inline-flex;gap:6px;align-items:center}
table.dt3 th.dt3-th{position:relative;padding-right:28px}
table.dt3 th.dt3-sortable{cursor:pointer;user-select:none}
table.dt3 th.dt3-sortable:hover{color:var(--ink)}
table.dt3 th[data-orden="asc"]::after{content:" ▲";color:var(--accent);font-size:10px}
table.dt3 th[data-orden="desc"]::after{content:" ▼";color:var(--accent);font-size:10px}
.dt3-f{position:absolute;right:5px;top:50%;transform:translateY(-50%);border:0;background:none;padding:4px;border-radius:6px;color:var(--muted);cursor:pointer;opacity:.4;display:grid;line-height:0}
th:hover .dt3-f,.dt3-f:focus-visible{opacity:1}
.dt3-f:hover{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
th.dt3-fil{color:var(--accent)!important}
th.dt3-fil .dt3-f{opacity:1;color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,transparent)}
@media (hover:none) {
.dt3-f{opacity:.75}
}
tr.dt-grp td{background:color-mix(in srgb,var(--accent) 9%,var(--surface));cursor:pointer;font-size:13px;padding:8px 12px;border-top:1px solid var(--line)}
tr.dt-grp:hover td{background:color-mix(in srgb,var(--accent) 15%,var(--surface))}
.dt3-ar{display:inline-block;width:14px;color:var(--accent)}
.dt3-gn{display:inline-block;min-width:22px;padding:1px 7px;margin-left:4px;border-radius:99px;background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--ink);font-size:11.5px;font-weight:700;text-align:center}
.dt3-gs{margin-left:14px;color:var(--muted);font-size:12px}
.dt3-vacio{text-align:center;padding:22px!important;color:var(--muted)}
.dt3-pop{position:absolute;z-index:9000;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:10px 12px;box-shadow:0 24px 50px -18px rgba(0,0,0,.55);font-size:13px}
.dt3-pop[hidden]{display:none}
.dt3-ph{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.dt3-so{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.dt3-rg{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}
.dt3-rg label{display:block;font-size:12px;color:var(--muted);font-weight:600}
.dt3-rg input{width:100%;margin-top:3px}
.dt3-fq{width:100%;margin:0 0 6px}
.dt3-acc{display:flex;gap:6px;align-items:center;font-size:12px;padding:2px 0 6px;border-bottom:1px solid var(--line);margin-bottom:4px}
.dt3-acc span{margin-left:auto;color:var(--muted)}
.lnk{border:0;background:none;padding:0;color:var(--accent);font:inherit;font-weight:600;cursor:pointer}
.lnk:hover{text-decoration:underline}
.dt3-vals{max-height:260px;overflow:auto}
.dt3-vals label{display:flex;gap:8px;align-items:center;padding:5px 2px;margin:0;font-weight:500;cursor:pointer;white-space:nowrap}
.dt3-vals label[hidden]{display:none}
.dt3-vals label input{width:auto;margin:0;flex:none}
.dt3-vals label span{flex:1;overflow:hidden;text-overflow:ellipsis}
.dt3-vals label small{color:var(--muted)}
.dt3-pb{display:flex;justify-content:space-between;margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}
.dt3-vw{display:grid;gap:2px;margin-bottom:8px}
.dt3-vi{display:flex;align-items:center;gap:4px}
.dt3-vgo{flex:1;display:flex;align-items:center;gap:8px;border:0;background:none;color:var(--ink);font:inherit;font-weight:600;text-align:left;padding:8px;border-radius:9px;cursor:pointer}
.dt3-vgo:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.dt3-vs{display:flex;gap:6px;padding-top:8px;border-top:1px solid var(--line)}
.dt3-vs input{flex:1;min-width:0;margin:0}
@media (max-width:640px) {
.dt3-bar{gap:6px}
.dt3-q{flex:1 1 100%;max-width:none}
.dt3-b em,.dt3-l>span em{display:none}
.dt3-b{padding:7px 9px}
.dt3-pag{justify-content:center}
.dt3-cnt{width:100%;text-align:center}
}
.dt3-bar select,.dt3-pag select{height:34px;padding:4px 28px 4px 10px;border-radius:9px;max-width:180px;background-color:var(--surface);color:var(--ink);border:1px solid var(--line)}
.dt3-bar .btn.small{height:34px}
@media (max-width:640px) {
.dt3-bar select{max-width:130px}
}

/* ===== Estilos: app-android ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.inst-apk{border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 10%,var(--surface));border-radius:14px;padding:12px 14px;margin:12px 0;display:grid;gap:10px}
.inst-apk-h{display:flex;gap:10px;align-items:flex-start}
.inst-apk-h>svg{width:26px;height:26px;color:var(--accent);flex:none;margin-top:2px}
.inst-apk-h b{display:block;font-size:15px}
.inst-apk-h .hint{display:block;margin-top:2px}
.inst-apk .btn{justify-self:start}
.inst-apk ol{margin:0;padding-left:18px;display:grid;gap:4px}
.inst-apk a.btn{text-decoration:none}
.apx-share{margin-left:auto}
.apx-share svg{width:18px;height:18px}
/* 7.139.7 · pantalla de actualización obligatoria de la app */
dialog#app-upd {
  position:fixed;
  inset:0;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:rgba(8,10,20,.96)!important;
  padding:24px!important;
  box-sizing:border-box;
  align-items:center;
  justify-content:center;
  overflow:auto;
}
dialog#app-upd[open]{display:flex!important}
dialog#app-upd::backdrop{background:rgba(8,10,20,.96)}
#app-upd .au-box{width:100%;max-width:380px;background:var(--panel,#141a2e);color:var(--ink,#eef1f8);border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:26px 22px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.5)}
#app-upd .au-ic{width:64px;height:64px;margin:0 auto 12px;border-radius:20px;display:grid;place-items:center;background:rgba(124,92,255,.18);color:#a893ff}
#app-upd .au-ic svg{width:32px;height:32px}
#app-upd h2{margin:0 0 8px;font-size:22px}
#app-upd p{margin:0 0 12px;line-height:1.5;font-size:15px}
#app-upd .au-notas{text-align:left;margin:0 0 14px;padding-left:20px;font-size:14px;line-height:1.5;opacity:.9}
#app-upd .au-bar{height:8px;border-radius:4px;background:rgba(255,255,255,.1);overflow:hidden;margin:6px 0 10px}
#app-upd .au-bar i{display:block;height:100%;width:0;background:#7c5cff;transition:width .3s}
#app-upd .au-st{font-size:13px;opacity:.85;min-height:1.2em}
#app-upd .au-go{width:100%;min-height:52px;font-size:16px}
#app-upd .au-alt{margin-top:10px;width:100%}

/* ===== Estilos: sin-conexion ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
.off-chip {
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-left:10px;
  padding:4px 10px 4px 8px;
  border-radius:99px;
  border:1px solid color-mix(in srgb,var(--warn,#f59e0b) 60%,transparent);
  background:color-mix(in srgb,var(--warn,#f59e0b) 16%,transparent);
  color:var(--ink);
  font:600 12px/1.2 inherit;
  cursor:pointer;
  white-space:nowrap;
}
.off-chip[hidden]{display:none}
.off-chip i{width:8px;height:8px;border-radius:50%;background:var(--warn,#f59e0b);box-shadow:0 0 0 0 color-mix(in srgb,var(--warn,#f59e0b) 60%,transparent);animation:offdot 2s infinite}
.off-chip.pulse{animation:offpulse .6s 2}
@keyframes offdot{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--warn,#f59e0b) 55%,transparent)}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
@keyframes offpulse{50%{transform:scale(1.12)}}
@media (max-width:640px) {
.off-chip{margin-left:6px;padding:3px 8px 3px 7px;font-size:11px}
}
.off-sbtns{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 10px}
.off-ok{display:inline-flex;align-items:center;gap:5px;color:var(--ok,#22c55e);font-weight:600;font-size:13px}
.off-ok svg{width:15px;height:15px}
.off-dlg{display:grid;gap:12px}
.off-sum{display:flex;gap:10px}
.off-sum>div{flex:1;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}
.off-sum b{display:block;font-size:20px}
.off-sum span{font-size:12px;color:var(--muted)}
.off-auto{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0;cursor:pointer}
.off-auto input{width:auto;margin:3px 0 0}
.off-auto b{display:block}
.off-auto small{color:var(--muted);font-weight:400}
.off-prox{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px}
.off-prox svg{width:15px;height:15px}
.off-list{display:grid;gap:6px;max-height:46vh;overflow:auto}
.off-row{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:8px 10px}
.off-rt{flex:1;min-width:0}
.off-rt b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.off-rt small{color:var(--muted)}
.off-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.off-c{font-size:10.5px;padding:1px 7px;border-radius:99px;background:color-mix(in srgb,var(--accent) 14%,transparent)}
.off-c.mt{background:color-mix(in srgb,var(--warn,#f59e0b) 20%,transparent)}
.off-sz{font-size:12px;color:var(--muted);white-space:nowrap}
.off-ra{display:flex;gap:4px}
.off-info ul{margin:6px 0 0;padding-left:18px;display:grid;gap:3px}
.off-can,.off-cant{border-radius:12px;padding:10px 12px;margin:10px 0}
.off-can{background:color-mix(in srgb,var(--ok,#22c55e) 10%,transparent)}
.off-cant{background:color-mix(in srgb,var(--danger) 9%,transparent)}
.off-can b,.off-cant b{display:flex;gap:6px;align-items:center}
.off-can svg,.off-cant svg{width:15px;height:15px}
.off-sbtns.in-apx{margin:8px 0 4px}

/* ===== Estilos: revision ===== (reorganizado por módulo en 7.141; antes repartido en archivos por versión) */
/* 7.140 · aviso de la revisión automática del código (solo administradores) */
.rev-chip{margin-left:6px;border:0;border-radius:999px;padding:2px 9px;background:var(--danger,#e5484d);color:#fff;font:600 11px/1.6 inherit;cursor:pointer}
.rev-list{margin:8px 0 0;padding-left:18px;max-height:60vh;overflow:auto;font-size:13px;line-height:1.45}
.rev-list li{margin-bottom:8px}
.rev-list code{font-size:12px;opacity:.85}
