/* OMEGA — guía de marca.
   Títulos: Bizmo (aprox. Syncopate). Cuerpo: Mollen (aprox. Outfit).
   Para usar las fuentes oficiales: copia los archivos a /fonts y descomenta @font-face. */
/*
@font-face { font-family: 'Mollen'; src: url('fonts/Mollen.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Bizmo';  src: url('fonts/Bizmo.woff2')  format('woff2'); font-display: swap; }
*/
:root {
  --navy: #14256D; --violet: #6B00F7; --cyan: #00BAFF; --gray: #F1F2F2; --white: #fff;
  --ink: #14256D; --muted: #5b6488; --line: #dfe1ea; --bg: #F1F2F2;
  --green: #0f8a5f; --green-bg: #e3f6ee; --amber: #9a5b00; --amber-bg: #fff1d6; --red: #c0243a; --red-bg: #fde6e9;
  --font-body: 'Mollen', 'Outfit', system-ui, sans-serif; --font-title: 'Bizmo', 'Syncopate', 'Outfit', sans-serif;
  --r: 14px; --shadow: 0 1px 2px rgba(20,37,109,.06), 0 6px 20px rgba(20,37,109,.06);
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { margin: 0; height: 100%; }
body { font-family: var(--font-body); background: var(--bg); color: var(--ink); font-size: 15px; line-height: 1.45; -webkit-font-smoothing: antialiased; }
h1, h2, h3 { font-family: var(--font-title); font-weight: 700; letter-spacing: .02em; margin: 0; }
h1 { font-size: 17px; text-transform: uppercase; } h2 { font-size: 13px; text-transform: uppercase; } h3 { font-size: 12px; text-transform: uppercase; color: var(--muted); }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: var(--violet); }
.ico { flex: none; }
:focus-visible { outline: 3px solid var(--cyan); outline-offset: 2px; border-radius: 6px; }
.muted { color: var(--muted); } .right { text-align: right; } .nowrap { white-space: nowrap; } .mono { font-variant-numeric: tabular-nums; }
.row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; } .grow { flex: 1; } .gap-s { gap: 6px; }
.hide { display: none !important; }

/* ---------- Layout ---------- */
.shell { display: grid; grid-template-columns: 236px 1fr; min-height: 100vh; }
.side { background: var(--navy); color: #fff; display: flex; flex-direction: column; padding: 18px 14px; position: sticky; top: 0; height: 100vh; }
.side .brand { margin: 0 0 14px; } .side .brand .lg { background: #fff; border-radius: 12px; padding: 8px 10px; } .side .brand img { width: 100%; max-width: 170px; display: block; margin: 0 auto; }
.side .brand small { display: block; margin-top: 10px; font-size: 11px; opacity: .65; letter-spacing: .04em; text-transform: uppercase; }
.nav { display: flex; flex-direction: column; gap: 2px; margin-top: 6px; }
.nav a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; color: rgba(255,255,255,.78); text-decoration: none; font-weight: 500; }
.nav a:hover { background: rgba(255,255,255,.08); color: #fff; }
.nav a[aria-current="page"] { background: #fff; color: var(--navy); }
.nav .badge { margin-left: auto; background: var(--violet); color: #fff; border-radius: 99px; font-size: 11px; padding: 1px 8px; }
.side .who { margin-top: auto; padding: 12px; border-radius: 12px; background: rgba(255,255,255,.07); font-size: 13px; }
.side .who b { display: block; font-weight: 600; overflow: hidden; text-overflow: ellipsis; }
.side .who button { margin-top: 8px; background: none; border: 0; color: rgba(255,255,255,.8); padding: 0; cursor: pointer; display: inline-flex; gap: 6px; align-items: center; }
.strip { height: 4px; background: linear-gradient(90deg, var(--violet), var(--cyan)); }
.main { min-width: 0; display: flex; flex-direction: column; }
.top { display: flex; align-items: center; gap: 14px; padding: 16px 28px; background: #fff; border-bottom: 1px solid var(--line); flex-wrap: wrap; position: sticky; top: 0; z-index: 5; }
.top .sub { font-size: 12.5px; color: var(--muted); }
.page { padding: 24px 28px 60px; max-width: 1500px; width: 100%; }

/* ---------- Componentes ---------- */
.card { background: #fff; border-radius: var(--r); box-shadow: var(--shadow); padding: 18px 20px; }
.card + .card { margin-top: 16px; }
.card-h { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; flex-wrap: wrap; }
.grid { display: grid; gap: 16px; } .g4 { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); } .g2 { grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); }
.tile { background: #fff; border-radius: var(--r); box-shadow: var(--shadow); padding: 16px 18px; border-top: 3px solid var(--violet); }
.tile:nth-child(2) { border-top-color: var(--cyan); } .tile:nth-child(3) { border-top-color: var(--navy); } .tile:nth-child(4) { border-top-color: var(--violet); }
.tile .k { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.tile .v { font-family: var(--font-title); font-size: 24px; margin-top: 6px; font-weight: 700; }
.tile .s { font-size: 12.5px; color: var(--muted); margin-top: 4px; }
.btn { display: inline-flex; align-items: center; gap: 8px; border: 1.5px solid var(--navy); background: #fff; color: var(--navy); padding: 8px 14px; border-radius: 10px; cursor: pointer; font-weight: 500; min-height: 38px; }
.btn:hover { background: var(--gray); } .btn:disabled { opacity: .5; cursor: not-allowed; }
.btn.primary { background: var(--violet); border-color: var(--violet); color: #fff; } .btn.primary:hover { background: #5a00d1; }
.btn.navy { background: var(--navy); color: #fff; } .btn.navy:hover { background: #0e1b52; }
.btn.danger { border-color: var(--red); color: var(--red); } .btn.sm { padding: 4px 10px; min-height: 30px; font-size: 13px; }
.btn.ghost { border-color: transparent; background: transparent; }
.chip { display: inline-block; padding: 2px 10px; border-radius: 99px; font-size: 12px; font-weight: 500; white-space: nowrap; }
.chip-gray { background: var(--gray); color: var(--muted); } .chip-green { background: var(--green-bg); color: var(--green); } .chip-amber { background: var(--amber-bg); color: var(--amber); }
.chip-red { background: var(--red-bg); color: var(--red); } .chip-navy { background: #e4e8f7; color: var(--navy); } .chip-violet { background: #efe3ff; color: #5400c4; } .chip-cyan { background: #dff5ff; color: #00587a; }
.field { display: flex; flex-direction: column; gap: 4px; min-width: 0; } .field label { font-size: 12.5px; color: var(--muted); font-weight: 500; }
.field input, .field select, .field textarea, .in { border: 1.5px solid var(--line); background: #fff; border-radius: 10px; padding: 8px 10px; min-height: 38px; width: 100%; }
.field input:focus, .field select:focus, .field textarea:focus, .in:focus { outline: none; border-color: var(--violet); box-shadow: 0 0 0 3px rgba(107,0,247,.15); }
.field input[readonly], .field input:disabled, .field select:disabled, .field textarea:disabled { background: var(--gray); color: var(--muted); }
.field .h { font-size: 11.5px; color: var(--muted); }
.in { width: auto; min-width: 140px; }
.tabs { display: inline-flex; background: var(--gray); padding: 3px; border-radius: 10px; gap: 2px; }
.tabs button { border: 0; background: none; padding: 6px 14px; border-radius: 8px; cursor: pointer; font-weight: 500; color: var(--muted); }
.tabs button[aria-pressed="true"] { background: #fff; color: var(--navy); box-shadow: 0 1px 3px rgba(0,0,0,.1); }

/* ---------- Tablas ---------- */
.tw { overflow: auto; border-radius: 12px; border: 1px solid var(--line); background: #fff; max-height: 70vh; }
table { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 13.5px; }
th { position: sticky; top: 0; background: #f7f8fb; text-align: left; font-weight: 600; font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; padding: 10px 12px; border-bottom: 1px solid var(--line); white-space: nowrap; z-index: 1; }
td { padding: 10px 12px; border-bottom: 1px solid #eef0f5; vertical-align: top; }
tr:last-child td { border-bottom: 0; }
tbody tr.click { cursor: pointer; } tbody tr.click:hover { background: #f7f4ff; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
td .sm { font-size: 12px; color: var(--muted); }
.bar { height: 8px; border-radius: 99px; background: var(--gray); overflow: hidden; min-width: 80px; position: relative; }
.bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--violet), var(--cyan)); border-radius: 99px; }
.bar b { position: absolute; top: -2px; bottom: -2px; width: 2px; background: var(--navy); }
.pill-alert { display: inline-flex; gap: 4px; align-items: center; color: var(--red); font-weight: 500; font-size: 12.5px; }
.empty { text-align: center; padding: 40px 16px; color: var(--muted); }

/* ---------- Drawer / modal ---------- */
.overlay { position: fixed; inset: 0; background: rgba(20,37,109,.45); z-index: 40; display: flex; justify-content: flex-end; }
.overlay.center { justify-content: center; align-items: center; padding: 16px; }
.drawer { background: var(--bg); width: min(760px, 100%); height: 100%; overflow: auto; display: flex; flex-direction: column; animation: slide .18s ease-out; }
.drawer-h { background: var(--navy); color: #fff; padding: 18px 22px; display: flex; gap: 12px; align-items: flex-start; position: sticky; top: 0; z-index: 2; }
.drawer-h .x { margin-left: auto; background: none; border: 0; color: #fff; cursor: pointer; }
.drawer-b { padding: 18px 22px 30px; display: flex; flex-direction: column; gap: 16px; }
.drawer-f { position: sticky; bottom: 0; background: #fff; border-top: 1px solid var(--line); padding: 12px 22px; display: flex; gap: 10px; justify-content: flex-end; }
.modal { background: #fff; border-radius: 16px; padding: 24px; width: min(520px, 100%); max-height: 90vh; overflow: auto; box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.modal h2 { margin-bottom: 10px; font-size: 14px; } .modal .acts { display: flex; gap: 10px; justify-content: flex-end; margin-top: 18px; flex-wrap: wrap; }
@keyframes slide { from { transform: translateX(30px); opacity: 0; } to { transform: none; opacity: 1; } }
.fg { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.grp { background: #fff; border-radius: var(--r); padding: 16px; border-left: 4px solid var(--violet); box-shadow: var(--shadow); }
.grp.meta { border-left-color: var(--cyan); } .grp.calc { border-left-color: var(--navy); }
.grp > h3 { margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.kv { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px 16px; }
.kv div span { display: block; font-size: 12px; color: var(--muted); } .kv div b { font-weight: 600; font-variant-numeric: tabular-nums; }
.alertbox { background: var(--red-bg); color: var(--red); border-radius: 12px; padding: 10px 14px; font-size: 13.5px; }
.alertbox.warn { background: var(--amber-bg); color: var(--amber); } .alertbox.info { background: #dff5ff; color: #00587a; }
.alertbox + .alertbox { margin-top: 8px; }
.check { display: flex; gap: 10px; align-items: center; padding: 10px 12px; border: 1.5px dashed var(--line); border-radius: 12px; }
.check.done { border-style: solid; border-color: var(--green); background: var(--green-bg); }
.rec { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid #eef0f5; } .rec:last-child { border: 0; }
.rec .dot { width: 10px; height: 10px; border-radius: 50%; margin-top: 6px; flex: none; background: var(--cyan); }
.rec .dot.high { background: var(--red); } .rec .dot.mid { background: #FF5C74; }

/* ---------- Login ---------- */
.login { min-height: 100vh; display: grid; place-items: center; padding: 20px; background: linear-gradient(135deg, var(--navy) 0%, #2a1a86 55%, var(--violet) 100%); }
.login .box { background: #fff; width: min(420px, 100%); border-radius: 20px; padding: 32px; box-shadow: 0 30px 80px rgba(0,0,0,.35); }
.login img { width: 190px; display: block; margin-bottom: 18px; } .login p.tag { color: var(--muted); margin: 0 0 22px; font-size: 13.5px; }
.login form { display: flex; flex-direction: column; gap: 14px; } .login .alt { text-align: center; font-size: 13.5px; margin-top: 14px; }
.login .alt button { background: none; border: 0; color: var(--violet); cursor: pointer; text-decoration: underline; }

/* ---------- Toasts ---------- */
.toasts { position: fixed; right: 16px; bottom: 16px; z-index: 60; display: flex; flex-direction: column; gap: 8px; }
.toast { background: var(--navy); color: #fff; padding: 10px 16px; border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.25); max-width: 360px; transition: opacity .4s; }
.toast-err { background: var(--red); } .toast.out { opacity: 0; }
.spin { display: inline-block; width: 16px; height: 16px; border: 2.5px solid rgba(107,0,247,.25); border-top-color: var(--violet); border-radius: 50%; animation: sp .7s linear infinite; }
@keyframes sp { to { transform: rotate(360deg); } }
.loading { padding: 60px; text-align: center; color: var(--muted); }
.legend { display: flex; gap: 14px; font-size: 12.5px; color: var(--muted); flex-wrap: wrap; } .legend i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 5px; }
@media print { .side, .top .btn, .drawer-f { display: none; } .shell { display: block; } }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }

/* ---------- Campañas: tarjetas de clientes → campañas → detalle ---------- */
.crumb { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: 13.5px; color: var(--muted); margin: 0 0 14px; }
.crumb a { color: var(--navy); font-weight: 600; text-decoration: none; } .crumb a:hover { text-decoration: underline; } .crumb .cur { color: var(--ink); font-weight: 600; }
.cgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)); gap: 16px; }
.cgrid.sm { grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 14px; }
.ccard, .mcard { display: flex; flex-direction: column; gap: 14px; background: #fff; border-radius: var(--r); padding: 18px; box-shadow: var(--shadow); text-decoration: none; color: inherit; border: 1px solid transparent; transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease; }
.ccard:hover, .mcard:hover { transform: translateY(-2px); border-color: var(--violet); box-shadow: 0 2px 4px rgba(20,37,109,.08), 0 12px 28px rgba(20,37,109,.12); }
.ccard h3, .mcard h3 { font-size: 15px; color: var(--ink); text-transform: none; letter-spacing: 0; }
.avatar { width: 46px; height: 46px; border-radius: 13px; background: var(--navy); color: #fff; display: grid; place-items: center; font-family: var(--font-title); font-weight: 700; font-size: 14px; flex: none; }
.avatar.v { background: var(--violet); } .avatar.c { background: var(--cyan); color: var(--navy); }
.mini { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.mini span { display: block; font-size: 11.5px; color: var(--muted); } .mini b { font-variant-numeric: tabular-nums; font-size: 14.5px; }
.go { color: var(--violet); font-weight: 600; font-size: 13px; white-space: nowrap; }
.mcard .nm { font-weight: 600; font-size: 14.5px; line-height: 1.3; word-break: break-word; }
.mcard.risk-critical { border-left: 4px solid var(--red); } .mcard.risk-risk { border-left: 4px solid #FF5C74; } .mcard.risk-good { border-left: 4px solid var(--green); }
.split { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; } .split > .l { flex: 1 1 520px; min-width: 0; } .split > .r { flex: 0 1 380px; min-width: 300px; }
@media (prefers-reduced-motion: reduce) { .ccard, .mcard { transition: none; } .ccard:hover, .mcard:hover { transform: none; } }
/* ---------- Creativos ---------- */
.adgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.ad { display: flex; flex-direction: column; gap: 12px; min-width: 0; background: #f8f9fc; border: 1px solid #e8eaf3; border-radius: 12px; padding: 12px; } .ad.best { border-color: var(--green); background: #f3fbf7; }
.ad-b { min-width: 0; flex: 1; } .ad .nm { font-weight: 600; font-size: 14px; line-height: 1.3; word-break: break-word; }
.thumb { width: 104px; height: 104px; border-radius: 10px; background: linear-gradient(135deg, var(--navy), var(--violet)); position: relative; overflow: hidden; flex: none; display: grid; place-items: center; color: rgba(255,255,255,.8); font-size: 11px; text-align: center; padding: 6px; }
.thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #fff; }
.thumb .rk { position: absolute; left: 6px; top: 6px; background: rgba(20,37,109,.9); color: #fff; border-radius: 99px; padding: 1px 8px; font-size: 12px; }

/* Vista previa del creativo (estilo publicación de Meta) */
.pv { display: block; color: inherit; text-decoration: none; background: #fff; border: 1px solid #e3e6f0; border-radius: 10px; overflow: hidden; position: relative; }
a.pv:hover { border-color: var(--violet); box-shadow: 0 2px 10px rgba(80,30,200,.15); }
.pv-media { position: relative; aspect-ratio: 1 / 1; max-height: 340px; width: 100%; background: linear-gradient(135deg, var(--navy), var(--violet)); display: grid; place-items: center; overflow: hidden; }
.pv-none { color: rgba(255,255,255,.8); font-size: 12px; }
.pv-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #fff; }
.pv-play { position: absolute; width: 46px; height: 46px; border-radius: 50%; background: rgba(0,0,0,.55); color: #fff; display: grid; place-items: center; font-size: 18px; padding-left: 3px; }
.pv-media .rk { position: absolute; left: 8px; top: 8px; background: rgba(20,37,109,.92); color: #fff; border-radius: 99px; padding: 1px 9px; font-size: 12px; }
.pv-body { margin: 0; padding: 10px 12px 4px; font-size: 13px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pv-foot { display: flex; align-items: center; gap: 10px; padding: 8px 12px 10px; background: #f0f2f5; margin-top: 6px; }
.pv-t { flex: 1; min-width: 0; font-weight: 600; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pv-cta { flex: none; background: #e4e6eb; border-radius: 6px; padding: 5px 10px; font-size: 12.5px; font-weight: 600; }
.pv-open { position: absolute; right: 8px; top: 8px; background: rgba(255,255,255,.95); border-radius: 99px; padding: 2px 10px; font-size: 12px; font-weight: 600; color: var(--violet); opacity: 0; transition: opacity .15s; }
a.pv:hover .pv-open, a.pv:focus-visible .pv-open { opacity: 1; }
.ad .mini { grid-template-columns: 1fr 1fr; } .ad .mini .wide { grid-column: 1 / -1; }


/* ---------- Logos de clientes ---------- */
.mark { position: relative; flex: none; width: 100px; height: 58px; background: #fff; border: 1px solid #e8eaf3; border-radius: 12px; display: grid; place-items: center; overflow: hidden; }
.mark b { font-family: var(--font-title); color: var(--navy); font-size: 15px; }
.mark img { position: absolute; inset: 6px; width: calc(100% - 12px); height: calc(100% - 12px); object-fit: contain; background: #fff; }

/* Optimizaciones: antes y después */
.opt { border: 1px solid #e3e6f0; border-left: 4px solid var(--navy); border-radius: 12px; padding: 14px 16px; margin-bottom: 12px; background: #fff; }
.opt.v-worked { border-left-color: var(--green); } .opt.v-failed { border-left-color: var(--red); } .opt.v-mixed { border-left-color: #FF5C74; } .opt.v-neutral, .opt.v-inconclusive { border-left-color: #9aa1b5; }
.card > .opt:last-child { margin-bottom: 0; }
.cmp { margin-top: 8px; max-width: 560px; } .cmp-r { display: grid; grid-template-columns: 64px 1fr 64px 52px; align-items: center; gap: 10px; margin: 4px 0; font-size: 13px; }
.cmp-r > span { color: var(--muted); } .cmp-r b { font-variant-numeric: tabular-nums; text-align: right; } .cmp-r em { font-style: normal; font-weight: 700; font-size: 12.5px; }
.cmp-b { height: 12px; background: var(--gray); border-radius: 99px; overflow: hidden; } .cmp-b i { display: block; height: 100%; background: #9aa1b5; border-radius: 99px; }
.cmp-b.good i { background: var(--green); } .cmp-b.bad i { background: var(--red); } em.good { color: var(--green); } em.bad { color: var(--red); }
.prog { margin: 8px 0 4px; max-width: 560px; } .prog-b { position: relative; height: 8px; background: var(--gray); border-radius: 99px; overflow: hidden; margin-bottom: 4px; }
.prog-b i { display: block; height: 100%; background: var(--cyan); border-radius: 99px; } .prog-b u { position: absolute; top: 0; bottom: 0; width: 2px; background: #fff; }
.next { margin-top: 10px; background: #f4f5fb; border-radius: 10px; padding: 8px 12px; }
@media (max-width: 520px) { .cmp-r { grid-template-columns: 52px 1fr 58px 44px; gap: 6px; } }

/* Planet Solar: logo más grande en su encabezado */
.mark.planet { width: 112px; height: 84px; }

/* Resumen de la pauta a todo el ancho: datos en fila y conjuntos de anuncios en columnas que se acomodan solas */
.setup-card .setup-facts { grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr)); }
.setup-sep { border: 0; border-top: 1px solid #e4e7f0; margin: 16px 0; }
.setup-sets { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 12px; margin-top: 14px; }
.setup-set { background: #f7f8fc; border: 1px solid #e4e7f0; border-radius: 12px; padding: 12px 14px; min-width: 0; overflow-wrap: anywhere; }

/* Nivel de optimización y comportamiento diario */
.lvl { display: flex; flex-wrap: wrap; gap: 20px 28px; align-items: flex-start; }
.lvl-l { flex: 0 1 270px; min-width: 240px; } .lvl-m { flex: 1 1 260px; min-width: 240px; display: grid; gap: 12px; } .lvl-r { flex: 2 1 420px; min-width: 0; }
.lvl-t { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.gauge { width: 100%; max-width: 250px; display: block; margin: 4px auto 0; } .g-big { font-size: 30px; font-weight: 800; } .g-sm { font-size: 13px; fill: #64748b; }
.chart { width: 100%; height: auto; display: block; } .chart .ax { font-size: 11px; fill: #64748b; }
.lv-row.na { opacity: .6; } .lv-h { display: flex; justify-content: space-between; font-size: 14px; margin-bottom: 4px; } .lv-h span { font-variant-numeric: tabular-nums; font-weight: 700; }
.lv-b { height: 8px; border-radius: 99px; background: #eceff6; overflow: hidden; } .lv-b i { display: block; height: 100%; border-radius: 99px; }
.lv-how summary { cursor: pointer; }
.seg { display: inline-flex; border: 1px solid #d5daea; border-radius: 99px; overflow: hidden; } .seg button { border: 0; background: #fff; padding: 4px 12px; font: inherit; font-size: 13px; cursor: pointer; color: #475569; } .seg button.on { background: var(--navy); color: #fff; }
@media (prefers-reduced-motion: no-preference) { .lv-b i { transition: width .4s ease; } }

/* Antes · Después · ¿Funciona? */
.trio { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 12px; }
.tp { background: #f7f8fc; border: 1px solid #e4e7f0; border-radius: 14px; padding: 14px; min-width: 0; }
.tp.after { border-color: #c7d2fe; background: #f5f6ff; }
.tp.verdict.v-worked { border-color: #86efac; background: #f0fdf4; } .tp.verdict.v-failed { border-color: #fca5a5; background: #fef2f2; } .tp.verdict.v-mixed { border-color: #fcd34d; background: #fffbeb; }
.tp h4 { margin: 0 0 2px; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.tp .big { font-size: 26px; font-weight: 800; margin-top: 4px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tp-r { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; padding: 5px 0; border-top: 1px solid #e4e7f0; } .tp-r span { color: var(--muted); } .tp-r b { display: flex; align-items: center; gap: 6px; }
.chks { display: grid; gap: 6px; margin-top: 8px; } .chk { display: flex; gap: 8px; align-items: flex-start; } .chk > span { flex: 0 0 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; font-size: 11px; font-weight: 800; color: #fff; background: #94a3b8; }
.chk.ok > span { background: #2EE6D6; } .chk.bad > span { background: #dc2626; } .chk.warn > span { background: #FF5C74; }
.trk { margin-top: 10px; padding-top: 8px; border-top: 1px solid #e4e7f0; } .tdot { width: 12px; height: 12px; border-radius: 50%; background: #94a3b8; display: inline-block; } .tdot.worked { background: #2EE6D6; } .tdot.failed { background: #dc2626; } .tdot.mixed { background: #FF5C74; }
.trio-wrap { padding-bottom: 12px; }
@media (max-width: 700px) { .chead { flex-wrap: wrap !important; } .chead > .grow { flex: 1 1 200px; min-width: 0; } }

/* Ficha de campaña: nivel de optimización a la izquierda y resumen de la pauta a la derecha */
.pauta { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 16px; align-items: start; margin-bottom: 16px; }
.pauta > .card { margin: 0 !important; }
@media (max-width: 1100px) { .pauta { grid-template-columns: minmax(0, 1fr); } }
.lvl2-top { display: flex; gap: 8px 18px; align-items: center; flex-wrap: wrap; }
.lvl2-g { flex: 0 0 190px; max-width: 190px; } .lvl2-g .gauge { max-width: 190px; margin: 0; }
.lvl2-s { flex: 1 1 200px; min-width: 0; }
.lvl2-comps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 12px 20px; margin-top: 14px; padding-top: 14px; border-top: 1px solid #e4e7f0; }
.lvl2-comps .lv-h { font-size: 13.5px; }

/* Panel lateral de auditoría */
.drawer.aud { width: min(640px, 100%); background: var(--bg); transition: width .2s ease; }
.drawer.aud.wide { width: min(920px, 100%); }
.drawer.aud .drawer-b > .card { margin: 0; }
.cvr { padding: 12px 0; border-top: 1px solid #eef0f5; } .cvr-h { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 6px; }
.cvr-g { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 18px; font-size: 13.5px; line-height: 1.5; overflow-wrap: anywhere; } .cvr-g span { display: block; font-size: 12px; color: var(--muted); margin-bottom: 2px; }
@media (max-width: 560px) { .cvr-g { grid-template-columns: 1fr; } }

/* Conjuntos pausados o de meses anteriores: plegados por defecto */
.setup-old { margin-top: 14px; }
.setup-old > summary { cursor: pointer; font-size: 13px; font-weight: 600; color: var(--muted); padding: 4px 0; }
.setup-old[open] > summary { margin-bottom: 4px; }

/* Checklist de acciones (derecha de cada recomendación) */
.rec.act { display: grid; grid-template-columns: auto minmax(0, 1fr) 150px; column-gap: 14px; align-items: start; }
.rec.act .act-r { border-left: 1px solid #eef0f5; padding-left: 14px; min-width: 0; }
.chk-h { font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
.chk-list { display: grid; gap: 6px; }
.chk { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; font: inherit; font-size: 13.5px; font-weight: 600; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 7px 10px; cursor: pointer; }
.chk i { width: 16px; height: 16px; flex: none; border: 2px solid #a9b0cc; border-radius: 4px; background: #fff; }
.chk:hover:not(:disabled) { border-color: var(--navy, #14256D); background: #f4f6ff; }
.chk:hover:not(:disabled) i { border-color: var(--navy, #14256D); }
.chk:disabled { opacity: .5; cursor: not-allowed; }
@media (max-width: 560px) { .rec.act { grid-template-columns: auto minmax(0, 1fr); } .rec.act .act-r { grid-column: 1 / -1; border-left: 0; padding: 10px 0 0; } .chk-list { grid-template-columns: 1fr 1fr; } }

/* Cierre de campaña */
.cierre-g { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(0, 1.4fr); gap: 20px; align-items: start; }
@media (max-width: 900px) { .cierre-g { grid-template-columns: 1fr; } }
.cr-row { display: flex; gap: 14px; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid #eef0f5; } .cr-row:last-of-type { border: 0; }
.cr-st { flex: none; max-width: 190px; text-align: right; }

.pv-open { max-width: calc(100% - 16px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.verif b { display:block; margin-bottom:4px; }
.sq h4 { margin: 14px 0 6px; font-size: 13px; }
.sq .tw { max-height: none; overflow-x: auto; }
.sq th { position: static; text-transform: none; letter-spacing: 0; font-size: 11.5px; white-space: nowrap; }
.sq td { vertical-align: top; }
.drawer-f { z-index: 6; }
.sq .tw table { font-size: 12.5px; width: 100%; }
.sq .tw th, .sq .tw td { padding: 6px 8px; }
.sq-wrap .chip.gray { font-size: 11px; }

/* ---- Mapa de calor por municipio y vista por plataforma ---- */
.geo-body { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(280px, 1fr); gap: 20px; align-items: start; }
.geo-map svg { width: 100%; height: auto; display: block; }
.geo-map path { stroke: #fff; stroke-width: .7; cursor: pointer; transition: opacity .15s; }
.geo-map path:hover { opacity: .75; }
.geo-map path.sel { stroke: var(--navy); stroke-width: 2; }
.geo-leg { display: flex; align-items: center; gap: 10px; font-size: 12px; color: var(--muted); margin-top: 8px; }
.geo-leg i { flex: 1; max-width: 240px; height: 8px; border-radius: 99px; background: linear-gradient(90deg, rgb(239,230,255), rgb(84,0,196)); }
.geo-sel h3 { font-size: 16px; margin: 0 0 2px; }
.geo .tw tr[data-muni] { cursor: pointer; } .geo .tw tr.on td { background: #f4edff; }
@media (max-width: 860px) { .geo-body { grid-template-columns: 1fr; } }

/* Digital at Home (vallas y pantallas) */
.ooh-map { touch-action: none; cursor: grab; background: #eef3fb; border-radius: 12px; overflow: hidden; }
.ooh-map:active { cursor: grabbing; }
.ooh-map svg { width: 100%; height: auto; display: block; }
.ooh-base path { fill: #fff; stroke: #c9cfe3; stroke-width: .8px; vector-effect: non-scaling-stroke; }
.ooh-base path.on { fill: #efe3ff; }
.ooh-dot { stroke: #fff; cursor: pointer; opacity: .9; } .ooh-dot:hover { opacity: 1; } .ooh-dot.sel { stroke: var(--navy); }
.ooh-tog { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.ooh-tog i { width: 12px; height: 12px; border-radius: 50%; display: inline-block; }
.ooh-photo { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 10px; background: var(--gray); display: block; }
.ooh-nophoto { display: flex; align-items: center; justify-content: center; color: var(--muted); font-size: 13px; }
.ooh .tw tr.on td, .tw tr.on td { background: #f4edff; }

/* ---------- Mapa 3D ---------- */
.m3-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 390px; gap: 14px; align-items: stretch; }
.m3-mapbox { position: relative; border-radius: var(--r); overflow: hidden; box-shadow: var(--shadow); background: #dfe6f3; min-height: 560px; height: calc(100vh - 170px); }
.m3-mapbox .m3-map { position: absolute; inset: 0; } /* gana a .maplibregl-map { position: relative } */
.m3-tools { position: absolute; top: 10px; left: 10px; display: flex; gap: 6px; flex-wrap: wrap; z-index: 2; }
.m3-tools .btn { background: rgba(255,255,255,.94); }
.m3-legend { position: absolute; left: 10px; bottom: 28px; z-index: 2; background: rgba(255,255,255,.94); border-radius: 10px; padding: 8px 10px; font-size: 12px; max-width: 320px; box-shadow: var(--shadow); display: flex; flex-direction: column; gap: 4px; }
.m3-legend:empty { display: none; }
.m3-ramp { display: flex; gap: 8px; flex-wrap: wrap; } .m3-ramp span { display: inline-flex; align-items: center; gap: 4px; color: var(--muted); }
.m3-ramp i { width: 14px; height: 10px; border-radius: 3px; display: inline-block; border: 1px solid rgba(20,37,109,.15); }
.m3-side { height: calc(100vh - 170px); min-height: 560px; overflow: auto; padding: 14px; }
.m3-side .tabs { width: 100%; display: flex; } .m3-side .tabs button { flex: 1; padding: 6px 4px; }
.m3-body { margin-top: 12px; }
.m3-sec { border-top: 1px solid var(--line); padding: 10px 0; } .m3-sec:first-child { border-top: 0; padding-top: 0; }
.m3-face { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; margin-top: 8px; }
.m3-plat { margin: 8px 0; } .m3-plat .in { min-width: 0; flex: 1; }
.m3-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.m3-k { background: var(--gray); border-radius: 10px; padding: 8px 10px; display: flex; flex-direction: column; } .m3-k b { font-size: 17px; font-variant-numeric: tabular-nums; }
.m3-total { margin-top: 10px; background: #efe3ff; border-radius: 12px; padding: 12px; }
@media (max-width: 1000px) { .m3-wrap { grid-template-columns: 1fr; } .m3-mapbox { height: 62vh; min-height: 420px; } .m3-side { height: auto; max-height: none; } }

/* ---------- Planificador de pauta ---------- */
.pz-kpis { margin-bottom: 14px; }
.pz-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 16px; align-items: start; }
.pz-left { min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.pz-mapbox { position: relative; border-radius: var(--r); overflow: hidden; box-shadow: var(--shadow); background: #dfe6f3; height: 600px; }
.pz-mapbox .m3-map { position: absolute; inset: 0; }
.pz-mtools { position: absolute; top: 10px; left: 10px; right: 56px; z-index: 2; display: flex; flex-direction: column; gap: 6px; align-items: flex-start; pointer-events: none; }
.pz-mtools > * { pointer-events: auto; }
.pz-mtools .in { background: rgba(255,255,255,.96); font-weight: 600; max-width: 100%; }
.pz-tgs { display: flex; gap: 6px; flex-wrap: wrap; }
.pz-tg { border: 1px solid var(--line); background: rgba(255,255,255,.94); color: var(--muted); border-radius: 999px; padding: 5px 12px; font: inherit; font-size: 13px; cursor: pointer; }
.pz-tg[aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: #fff; }
.pz-tg:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }
.pz-charts .card { min-width: 0; }
.pz-svg { width: 100%; height: auto; display: block; }
.pz-bars { display: flex; flex-direction: column; gap: 7px; }
.pz-bar { display: grid; grid-template-columns: minmax(90px, 170px) 1fr minmax(110px, auto); gap: 10px; align-items: center; font-size: 13px; }
.pz-bar-l { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pz-bar-t { background: var(--gray); border-radius: 6px; height: 12px; overflow: hidden; } .pz-bar-t i { display: block; height: 100%; border-radius: 6px; }
.pz-bar-v { font-variant-numeric: tabular-nums; font-weight: 600; text-align: right; white-space: nowrap; } .pz-bar-v small { font-weight: 400; color: var(--muted); }
.pz-catalog { padding: 16px; }
.pz-main-tabs { margin-bottom: 14px; flex-wrap: wrap; }
.pz-fams { flex-wrap: wrap; margin-bottom: 14px; }
.pz-filters { display: flex; gap: 8px; flex-wrap: wrap; } .pz-filters .in { min-width: 0; }
.pz-cat { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }
.pz-prod { display: flex; flex-direction: column; gap: 8px; border: 1px solid var(--line); border-radius: 12px; padding: 14px; background: #fff; transition: border-color .12s ease, box-shadow .12s ease; }
.pz-prod:hover { border-color: #cdbcff; box-shadow: 0 6px 18px rgba(20,37,109,.08); }
.pz-prod.on { border-color: var(--violet); box-shadow: inset 0 0 0 1px var(--violet); background: #fbf8ff; }
.pz-prod-h { display: flex; justify-content: space-between; font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--fc, var(--violet)); }
.pz-prod-n { font-size: 15px; line-height: 1.25; }
.pz-prod-d { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pz-price { font-size: 20px; font-family: var(--font-title); }
.pz-ph { width: 100%; height: 130px; object-fit: cover; border-radius: 8px; background: var(--gray); }
.pz-noph { display: grid; place-items: center; color: #b4b8cc; }
.pz-dooh .mini { grid-template-columns: repeat(3, 1fr); }
.pz-plan { position: sticky; top: 12px; max-height: calc(100vh - 24px); display: flex; flex-direction: column; padding: 0; overflow: hidden; }
.pz-plan-h { padding: 16px 16px 12px; border-bottom: 1px solid var(--line); }
.pz-plan-h h2 { font-size: 16px; margin-bottom: 8px; } .pz-plan-h .in { width: 100%; }
.pz-plan-b { padding: 12px 16px; overflow: auto; flex: 1; display: flex; flex-direction: column; gap: 10px; }
.pz-line { border: 1px solid var(--line); border-left: 4px solid var(--fc, var(--violet)); border-radius: 10px; padding: 10px 12px; }
.pz-line-f { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--fc, var(--violet)); }
.pz-line-g { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 8px; margin-top: 8px; }
.pz-line-g label { display: flex; flex-direction: column; gap: 3px; font-size: 11.5px; color: var(--muted); }
.pz-line-g .in { min-width: 0; width: 100%; padding: 6px 8px; }
.pz-ro { padding: 6px 0; font-weight: 600; color: var(--ink); font-size: 14px; }
.pz-range { width: 100%; margin-top: 8px; accent-color: var(--violet); }
.pz-line-r { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 8px; font-size: 12.5px; color: var(--muted); }
.pz-line-r b { color: var(--ink); font-variant-numeric: tabular-nums; }
.pz-line-r em { flex-basis: 100%; font-style: normal; color: var(--amber); display: flex; gap: 4px; align-items: center; } .pz-line-r em.muted { color: var(--muted); }
.pz-plan-t { padding: 14px 16px 16px; border-top: 1px solid var(--line); background: #fbfaff; }
.pz-tot-k { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.pz-tot-v { font-family: var(--font-title); font-size: 30px; font-weight: 700; margin: 2px 0 8px; }
.pz-tot-g, .pz-pop-g { display: grid; grid-template-columns: auto 1fr; gap: 3px 12px; font-size: 13px; } .pz-tot-g b, .pz-pop-g b { text-align: right; font-variant-numeric: tabular-nums; }
.pz-tot-g span, .pz-pop-g span { color: var(--muted); }
.pz-pop { font-family: var(--font-body); color: var(--ink); display: flex; flex-direction: column; gap: 6px; min-width: 220px; }
.pz-pop-g { margin: 2px 0 4px; font-size: 12.5px; }
.pz-pop-img { width: 100%; height: 120px; object-fit: cover; border-radius: 8px; }
.pz-how summary { cursor: pointer; } .pz-rates { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; }
.pz-rates label { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--muted); flex-wrap: wrap; } .pz-rates .in { width: 70px; min-width: 0; padding: 4px 6px; }
@media (max-width: 1100px) { .pz-wrap { grid-template-columns: 1fr; } .pz-plan { position: static; max-height: none; } .pz-mapbox { height: 62vh; min-height: 420px; } }
@media (max-width: 560px) { .pz-bar { grid-template-columns: 90px 1fr; } .pz-bar-v { grid-column: 1 / -1; text-align: left; } .pz-line-g { grid-template-columns: 1fr; } }

/* ---------- Propuesta (one pager) ---------- */
.pp-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 14px; }
.pp { background: #fff; border-radius: var(--r); box-shadow: var(--shadow); padding: 34px 38px; max-width: 1060px; margin: 0 auto; color: var(--ink); }
.pp-h { display: flex; gap: 22px; align-items: center; border-bottom: 3px solid var(--violet); padding-bottom: 16px; }
.pp-logo { width: 150px; }
.pp-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--violet); }
.pp-title { font-size: 26px; text-transform: none; letter-spacing: 0; margin: 2px 0; }
.pp-meta { color: var(--muted); font-size: 13.5px; }
.pp-lead { font-size: 17px; line-height: 1.5; margin: 18px 0; }
.pp-lead b { color: var(--violet); }
.pp-kpis { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-bottom: 20px; }
.pp-kpi { background: linear-gradient(160deg, #f6f1ff, #eef6ff); border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; }
.pp-kpi span { font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); } .pp-kpi b { font-family: var(--font-title); font-size: 20px; margin: 3px 0 1px; } .pp-kpi small { font-size: 11px; color: var(--muted); }
.pp-two { display: grid; grid-template-columns: 1.25fr 1fr; gap: 22px; margin-bottom: 18px; align-items: start; } .pp-two-eq { grid-template-columns: 1fr 1fr; }
.pp-map { margin: 0; } .pp-map img { width: 100%; border-radius: 12px; display: block; border: 1px solid var(--line); } .pp-map figcaption { font-size: 11.5px; color: var(--muted); margin-top: 5px; }
.pp-nomap { display: grid; place-items: center; background: var(--gray); color: var(--muted); border-radius: 12px; min-height: 220px; }
.pp-sh { font-size: 12px; color: var(--navy); letter-spacing: .08em; margin: 0 0 10px; }
.pp-t { width: 100%; border-collapse: collapse; font-size: 13px; margin-bottom: 20px; }
.pp-t th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); border-bottom: 2px solid var(--line); padding: 6px 8px; } .pp-t th.num, .pp-t td.num { text-align: right; }
.pp-t td { border-bottom: 1px solid var(--line); padding: 7px 8px; vertical-align: top; font-variant-numeric: tabular-nums; }
.pp-sub { font-size: 11.5px; color: var(--muted); } .pp-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 6px; }
.pp-pend td { color: var(--muted); } .pp-total td { border-bottom: 0; border-top: 2px solid var(--navy); background: #faf8ff; }
.pp-note { font-size: 12.5px; color: var(--muted); margin: 6px 0 0; }
.pp-screens { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 18px; }
.pp-scr { display: flex; flex-direction: column; gap: 2px; font-size: 11.5px; } .pp-scr img, .pp-scr-n { width: 100%; height: 92px; object-fit: cover; border-radius: 8px; background: var(--gray); display: grid; place-items: center; color: #b4b8cc; margin-bottom: 4px; } .pp-scr span { color: var(--muted); }
.pp-f { border-top: 1px solid var(--line); padding-top: 12px; font-size: 11px; color: var(--muted); line-height: 1.5; }
.pp-sign { margin-top: 8px; font-weight: 700; color: var(--violet); letter-spacing: .04em; }
.pp-card { padding: 0; overflow: hidden; gap: 12px; } .pp-card > :not(img):not(.pp-card-img) { padding: 0 16px; } .pp-card > :last-child { padding-bottom: 16px; }
.pp-card-img { width: 100%; height: 150px; object-fit: cover; background: var(--gray); display: grid; place-items: center; color: #b4b8cc; }
@media (max-width: 900px) { .pp { padding: 20px; } .pp-kpis { grid-template-columns: repeat(3, 1fr); } .pp-two, .pp-two-eq { grid-template-columns: 1fr; } .pp-screens { grid-template-columns: repeat(2, 1fr); } .pp-h { flex-wrap: wrap; } }
@media print {
  @page { size: letter; margin: 10mm; }
  body.pp-print { background: #fff; }
  body.pp-print .side, body.pp-print .top, body.pp-print .strip, body.pp-print .pp-actions, body.pp-print #toasts { display: none !important; }
  body.pp-print .page { padding: 0 !important; } body.pp-print .main { display: block; }
  body.pp-print .pp { box-shadow: none; border-radius: 0; padding: 0; max-width: none; font-size: 12px; }
  body.pp-print .pp-kpi, body.pp-print .pp-total td, body.pp-print .pz-bar-t i, body.pp-print .pp-dot { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body.pp-print .pp-two, body.pp-print .pp-t tr, body.pp-print .pp-screens { break-inside: avoid; }
  body.pp-print .pp-lead { font-size: 13px; margin: 10px 0; } body.pp-print .pp-title { font-size: 20px; } body.pp-print .pp-logo { width: 110px; }
  body.pp-print .pp-kpis { grid-template-columns: repeat(6, 1fr) !important; gap: 6px; margin-bottom: 12px; } body.pp-print .pp-kpi { padding: 7px 8px; } body.pp-print .pp-kpi b { font-size: 15px; }
  body.pp-print .pp-two { grid-template-columns: 1.2fr 1fr !important; gap: 16px; margin-bottom: 12px; } body.pp-print .pp-two-eq { grid-template-columns: 1fr 1fr !important; }
  body.pp-print .pp-screens { grid-template-columns: repeat(4, 1fr) !important; } body.pp-print .pp-scr img, body.pp-print .pp-scr-n { height: 70px; }
  body.pp-print .pp-t { font-size: 11px; margin-bottom: 12px; } body.pp-print .pp-t td { padding: 4px 6px; } body.pp-print .pz-bar { font-size: 11px; grid-template-columns: 110px 1fr auto; gap: 6px; } body.pp-print .pz-bars { gap: 4px; }
  body.pp-print .pp-h { flex-wrap: nowrap; padding-bottom: 10px; }
}
.pp-logos { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.pp-x { font-size: 22px; color: var(--muted); font-weight: 300; }
.pp-clogo { max-height: 56px; max-width: 150px; object-fit: contain; }
.pp-cname { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; }
.pp-plats { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 14px; }
.pp-plats-k { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin-right: 4px; }
.pp-plat { display: inline-flex; align-items: center; gap: 6px; border: 1px solid color-mix(in srgb, var(--pc) 35%, #fff); background: color-mix(in srgb, var(--pc) 9%, #fff); color: var(--pc); border-radius: 999px; padding: 3px 10px 3px 8px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.pp-plat::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--pc); }
.pp-plat img { height: 16px; width: auto; } .pp-plat img + span { margin-left: 0; } .pp-plat:has(img)::before { display: none; }
.pp-t .pp-sub .pp-plat { font-size: 10.5px; padding: 1px 8px 1px 6px; margin-top: 3px; }
.pp-svgmap { width: 100%; height: auto; display: block; background: #e8f1f8; border-radius: 12px; border: 1px solid var(--line); }
.pp-legend { display: flex; flex-wrap: wrap; gap: 8px; font-size: 11px; color: var(--muted); margin-top: 6px; } .pp-legend i { display: inline-block; width: 12px; height: 9px; border-radius: 2px; margin-right: 4px; vertical-align: middle; }
.pp-doohmap { margin-bottom: 12px; }
@media print { body.pp-print .pp-plat, body.pp-print .pp-svgmap path, body.pp-print .pp-svgmap, body.pp-print .pp-legend i { -webkit-print-color-adjust: exact; print-color-adjust: exact; } body.pp-print .pp-clogo { max-height: 44px; } }
.pz-geo { margin-top: 10px; display: flex; flex-direction: column; gap: 4px; } .pz-geo .in { width: 100%; }
.pz-geo-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 4px; }
.pz-gchip { display: inline-flex; align-items: center; gap: 4px; border: 1px solid #cdbcff; background: #f4edff; color: var(--violet); border-radius: 999px; padding: 3px 8px; font: inherit; font-size: 12px; cursor: pointer; }
.pz-gchip.pz-gclear { background: #fff; border-color: var(--line); color: var(--navy); font-weight: 600; }
.pz-pop .btn + .btn { margin-top: 4px; }

/* Planificador v2: mapa a todo lo ancho, resultados debajo, taller con menú de tecnologías */
.pz-mapbox { height: 72vh; min-height: 520px; margin-bottom: 16px; }
.pz-mtools { right: 70px; }
.pz-mrow { display: flex; gap: 6px; flex-wrap: wrap; width: 100%; } .pz-search { width: 280px; max-width: 100%; }
.pz-h3m { padding: 4px 8px; font-size: 13px; }
.pz-views { position: absolute; right: 10px; bottom: 34px; z-index: 2; display: flex; flex-direction: column; gap: 6px; }
.pz-views .pz-tg { text-align: center; box-shadow: var(--shadow); }
.pz-hover { position: absolute; left: 50%; transform: translateX(-50%); bottom: 12px; z-index: 3; background: rgba(20,37,109,.92); color: #fff; border-radius: 999px; padding: 6px 14px; font-size: 13px; pointer-events: none; white-space: nowrap; max-width: 90%; overflow: hidden; text-overflow: ellipsis; }
.pz-warn { background: var(--amber-bg); color: var(--amber); border-radius: 8px; padding: 4px 8px; font-weight: 600; }
.pz-linkbtn { background: none; border: 0; color: inherit; text-decoration: underline; font: inherit; cursor: pointer; padding: 0; }
.pz-results { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 16px; margin-bottom: 22px; } .pz-results .card { min-width: 0; }
.pz-build-h { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; } .pz-build-h h2 { font-size: 15px; }
.pz-build-g { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 16px; align-items: start; }
.pz-build .pz-plan { position: sticky; top: 12px; max-height: calc(100vh - 24px); }
.pz-catalog { padding: 0; overflow: hidden; }
.pz-wb { display: grid; grid-template-columns: 210px minmax(0, 1fr); min-height: 560px; }
.pz-menu { border-right: 1px solid var(--line); padding: 10px; display: flex; flex-direction: column; gap: 2px; background: #fafbfd; }
.pz-menu hr { border: 0; border-top: 1px solid var(--line); margin: 8px 4px; width: auto; }
.pz-mi { display: flex; align-items: center; gap: 8px; border: 0; background: none; text-align: left; font: inherit; font-size: 13.5px; color: var(--ink); padding: 8px 10px; border-radius: 9px; cursor: pointer; }
.pz-mi i { width: 9px; height: 9px; border-radius: 50%; background: var(--fc); flex-shrink: 0; }
.pz-mi small { color: var(--muted); font-size: 11.5px; } .pz-mi-n { background: var(--violet); color: #fff; border-radius: 999px; font-size: 11px; padding: 0 7px; }
.pz-mi:hover { background: #eef0f7; } .pz-mi.on { background: #fff; box-shadow: inset 3px 0 0 var(--fc), 0 1px 3px rgba(20,37,109,.08); font-weight: 700; }
.pz-wb-c { padding: 14px 16px; max-height: 640px; overflow: auto; }
.pz-wb-h { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; } .pz-wb-h h3 { font-size: 13px; color: var(--navy); margin-right: 6px; } .pz-wb-h .in { min-width: 0; }
.pz-rows { display: flex; flex-direction: column; }
.pz-row { display: flex; align-items: center; gap: 12px; padding: 9px 6px; border-bottom: 1px solid var(--line); }
.pz-row:hover { background: #fafaff; } .pz-row.on { background: #f7f2ff; }
.pz-row-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--fc); flex-shrink: 0; }
.pz-row-m { flex: 1; min-width: 0; display: flex; flex-direction: column; } .pz-row-m b { font-size: 14px; } .pz-row-m span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pz-row-p, .pz-row-k { display: flex; flex-direction: column; align-items: flex-end; min-width: 74px; } .pz-row-p b { font-family: var(--font-title); font-size: 15px; } .pz-row-p small, .pz-row-k small { color: var(--muted); font-size: 11px; } .pz-row-k b { font-variant-numeric: tabular-nums; }
.pz-thumb { width: 54px; height: 40px; border-radius: 6px; object-fit: cover; flex-shrink: 0; background: var(--gray); display: grid; place-items: center; color: #b4b8cc; }
.pz-filters { margin-bottom: 8px; }
@media (max-width: 1200px) { .pz-results { grid-template-columns: 1fr 1fr; } .pz-results .card:last-child { grid-column: 1 / -1; } }
@media (max-width: 1050px) { .pz-build-g { grid-template-columns: 1fr; } .pz-build .pz-plan { position: static; max-height: none; } .pz-wb { grid-template-columns: 1fr; } .pz-menu { flex-direction: row; flex-wrap: wrap; border-right: 0; border-bottom: 1px solid var(--line); } .pz-menu hr { display: none; } .pz-wb-c { max-height: none; } .pz-row-k { display: none; } }
@media (max-width: 700px) { .pz-results { grid-template-columns: 1fr; } .pz-mapbox { height: 64vh; } .pz-views { flex-direction: row; bottom: auto; top: 120px; } }
.pz-kfoot { text-align: right; margin: -6px 2px 10px; font-size: 12.5px; }
.nav-sec { margin: 14px 12px 4px; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.5); border-top: 1px solid rgba(255,255,255,.12); padding-top: 12px; }
/* Planificador v3: barra guiada del mapa, capas, curvas e incremental */
.pz-mapbar { display: grid; grid-template-columns: minmax(220px, 1.1fr) minmax(280px, 1.6fr) minmax(180px, .8fr); gap: 14px; background: #fff; border-radius: var(--r) var(--r) 0 0; box-shadow: var(--shadow); padding: 12px 16px; align-items: start; }
.pz-mb-i { display: flex; flex-direction: column; gap: 4px; min-width: 0; } .pz-mb-i > label { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); font-weight: 700; } .pz-mb-i small { color: var(--muted); font-size: 12px; } .pz-mb-i .in { width: 100%; font-weight: 600; }
.pz-zone { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .pz-zone b { font-size: 15px; color: var(--violet); }
.pz-mapbar + .pz-mapbox { border-radius: 0 0 var(--r) var(--r); }
.pz-layers { position: absolute; top: 10px; left: 10px; z-index: 3; background: rgba(255,255,255,.97); border-radius: 10px; box-shadow: var(--shadow); max-width: 320px; }
.pz-layers summary { cursor: pointer; padding: 8px 12px; font-weight: 600; font-size: 13px; display: flex; gap: 6px; align-items: center; list-style: none; } .pz-layers summary::-webkit-details-marker { display: none; }
.pz-layers-b { padding: 4px 12px 12px; display: flex; flex-direction: column; gap: 8px; }
.pz-ly { display: flex; gap: 8px; align-items: flex-start; cursor: pointer; } .pz-ly input { margin-top: 3px; accent-color: var(--violet); } .pz-ly b { display: block; font-size: 13px; } .pz-ly small { color: var(--muted); font-size: 11.5px; }
.pz-zonehint { position: absolute; top: 12px; left: 50%; transform: translateX(-50%); z-index: 3; background: var(--violet); color: #fff; border-radius: 999px; padding: 8px 16px; font-size: 13.5px; box-shadow: 0 6px 18px rgba(107,0,247,.35); }
.pz-results { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pz-span2 { grid-column: span 2; }
.pz-curves { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.pz-curve { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; } .pz-curve-h { display: flex; gap: 6px; align-items: center; font-size: 13px; } .pz-curve-h i { width: 9px; height: 9px; border-radius: 50%; }
.pz-inc { display: flex; flex-direction: column; gap: 8px; }
.pz-inc-r { display: grid; grid-template-columns: minmax(100px, 150px) 1fr auto; gap: 8px; align-items: center; font-size: 12.5px; }
.pz-inc-l { display: flex; gap: 6px; align-items: center; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .pz-inc-l i { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.pz-inc-b { display: flex; height: 12px; background: var(--gray); border-radius: 6px; overflow: hidden; } .pz-inc-b i { display: block; height: 100%; } .pz-inc-b i.b, .pz-inc-k i.b { background: repeating-linear-gradient(45deg, #c9cdd8, #c9cdd8 3px, #e4e6ee 3px, #e4e6ee 6px); }
.pz-inc-v { white-space: nowrap; text-align: right; } .pz-inc-v small { color: var(--muted); }
.pz-inc-k { display: flex; gap: 14px; flex-wrap: wrap; font-size: 11.5px; color: var(--muted); margin-top: 8px; } .pz-inc-k i { display: inline-block; width: 14px; height: 9px; border-radius: 2px; margin-right: 4px; vertical-align: middle; } .pz-inc-k i.a { background: var(--violet); }
@media (max-width: 1200px) { .pz-results { grid-template-columns: 1fr 1fr; } .pz-results .card:last-child { grid-column: auto; } }
@media (max-width: 900px) { .pz-mapbar { grid-template-columns: 1fr; } .pz-span2 { grid-column: auto; } .pz-results { grid-template-columns: 1fr; } }
/* Propuesta v2: layout de presentación con tarjetas por plataforma */
.pp-mapsec { display: grid; grid-template-columns: 1.5fr 1fr; gap: 22px; margin-bottom: 20px; align-items: start; }
.pp-mapwrap { position: relative; } .pp-mapwrap .pp-svgmap path { transition: opacity .12s; cursor: default; } .pp-mapwrap .pp-svgmap path:hover { opacity: .75; stroke: #14256D; stroke-width: 1.4; }
.pp-tip { position: absolute; z-index: 2; background: rgba(20,37,109,.94); color: #fff; font-size: 12.5px; padding: 5px 10px; border-radius: 8px; pointer-events: none; white-space: nowrap; }
.pp-map3d { margin: 14px 0 0; } .pp-map3d img { width: 100%; border-radius: 10px; border: 1px solid var(--line); } .pp-map3d figcaption { font-size: 11px; color: var(--muted); }
.pp-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; margin-bottom: 20px; }
.pp-card2 { border: 1px solid var(--line); border-top: 4px solid var(--pc); border-radius: 12px; padding: 14px; display: flex; flex-direction: column; gap: 10px; break-inside: avoid; background: #fff; }
.pp-c2-h { display: flex; align-items: center; gap: 8px; } .pp-c2-h b { font-family: var(--font-title); font-size: 18px; }
.pp-c2-k { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; } .pp-c2-k div { background: color-mix(in srgb, var(--pc) 7%, #fff); border-radius: 8px; padding: 6px 8px; display: flex; flex-direction: column; } .pp-c2-k span { font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); } .pp-c2-k b { font-size: 18px; } .pp-c2-k small { font-size: 11px; color: var(--muted); }
.pp-c2-s > span { font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--pc); font-weight: 700; } .pp-c2-s p { margin: 2px 0 0; font-size: 13px; }
.pp-ul { margin: 2px 0 0; padding-left: 18px; font-size: 13px; display: flex; flex-direction: column; gap: 3px; } .pp-specs { font-size: 12px; color: var(--muted); }
.pp-box { border-radius: 12px; padding: 14px 16px; background: #faf8ff; border: 1px solid #ece4ff; margin-bottom: 18px; break-inside: avoid; }
.pp-recs { background: #fff8ec; border-color: #ffe2b0; } .pp-recs .pp-sh { color: #9a5b00; } .pp-recs li { font-size: 13.5px; }
@media (max-width: 900px) { .pp-mapsec { grid-template-columns: 1fr; } }
@media print { body.pp-print .pp-mapsec { grid-template-columns: 1.4fr 1fr !important; gap: 14px; } body.pp-print .pp-cards { grid-template-columns: 1fr 1fr !important; gap: 10px; } body.pp-print .pp-card2 { padding: 10px; gap: 6px; } body.pp-print .pp-ul { font-size: 11px; } body.pp-print .pp-c2-k b { font-size: 14px; } body.pp-print .pp-tip, body.pp-print .pp-mapwrap .pp-note { display: none; } body.pp-print .pp-card2, body.pp-print .pp-box, body.pp-print .pp-c2-k div { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }
@media print { body.pp-print .pp-cards { grid-template-columns: repeat(3, 1fr) !important; } body.pp-print .pp-card2 .pz-svg { max-height: 80px; } body.pp-print .pp-c2-s p, body.pp-print .pp-ul { font-size: 10px; } body.pp-print .pp-sh { margin-bottom: 6px; } }
/* Propuesta con la identidad de P2P (Simple Brand Guide 2026): navy #14256D, violeta #6B00F7, cian #00BAFF, gris #F1F2F2; títulos Bizmo, texto Mollen */
.pp { padding-top: 0; overflow: hidden; }
.pp-gbar { height: 6px; margin: 0 -38px; background: linear-gradient(90deg, #14256D, #6B00F7 55%, #00BAFF); }
.pp-h { margin: 0 -38px 0; padding: 26px 38px 24px; background: radial-gradient(120% 140% at 100% 0%, rgba(0,186,255,.28), transparent 45%), linear-gradient(120deg, #14256D 0%, #2a1a8f 55%, #6B00F7 100%); color: #fff; border-bottom: 0; align-items: center; }
.pp-h .pp-logo { width: 150px; }
.pp-h .pp-x { color: rgba(255,255,255,.6); }
.pp-h .pp-clogo { background: #fff; border-radius: 12px; padding: 8px 12px; max-height: 64px; box-shadow: 0 4px 14px rgba(0,0,0,.18); }
.pp-h .pp-cname { background: #fff; color: var(--navy); border-radius: 12px; padding: 6px 12px; }
.pp-h .pp-eyebrow { color: #7fdcff; } .pp-h .pp-title { color: #fff; font-family: var(--font-title); text-transform: uppercase; letter-spacing: .02em; font-size: 24px; } .pp-h .pp-meta { color: rgba(255,255,255,.78); }
.pp-h .chip { background: rgba(255,255,255,.16); color: #fff; border-color: rgba(255,255,255,.3); }
.pp-plats { margin-top: 18px; }
.pp-lead b { background: linear-gradient(90deg, #6B00F7, #00BAFF); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pp-kpi { background: #fff; border: 1px solid var(--line); position: relative; overflow: hidden; } .pp-kpi::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, #14256D, #6B00F7, #00BAFF); } .pp-kpi b { color: var(--navy); }
.pp-sh { font-family: var(--font-title); text-transform: uppercase; color: var(--navy); font-size: 12.5px; letter-spacing: .08em; padding-bottom: 6px; position: relative; } .pp-sh::after { content: ''; position: absolute; left: 0; bottom: 0; width: 42px; height: 3px; border-radius: 3px; background: linear-gradient(90deg, #6B00F7, #00BAFF); }
.pp-recs .pp-sh::after { background: linear-gradient(90deg, #e8a000, #ff8a00); }
.pp-f { border-top: 0; position: relative; padding-top: 16px; } .pp-f::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: linear-gradient(90deg, #14256D, #6B00F7, #00BAFF); }
.pp-sign { display: flex; align-items: center; gap: 10px; font-family: var(--font-body); font-size: 14px; color: var(--navy); font-weight: 600; margin-top: 12px; letter-spacing: 0; } .pp-sign .v { color: #6B00F7; } .pp-sign .c { color: #00BAFF; } .pp-sign-ic { width: 28px; height: 28px; object-fit: contain; }
.pz-brand, .pz-newbrand { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; } .pz-newbrand .in { flex: 1; min-width: 140px; }
.pz-blogo { max-height: 40px; max-width: 120px; object-fit: contain; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 4px 6px; } .pz-nologo { font-size: 12px; color: var(--muted); }
@media print { body.pp-print .pp-h, body.pp-print .pp-gbar, body.pp-print .pp-kpi::before, body.pp-print .pp-sh::after { -webkit-print-color-adjust: exact; print-color-adjust: exact; } body.pp-print .pp-gbar, body.pp-print .pp-h { margin-left: 0; margin-right: 0; } }
@media (max-width: 900px) { .pp-gbar, .pp-h { margin-left: -20px; margin-right: -20px; padding-left: 20px; padding-right: 20px; } }
.pz-bad { color: var(--red); }
/* Submenú de Transacciones (Meta / Google DV360) */
.nav a.nav-sub { padding: 6px 12px 6px 44px; font-size: 13px; font-weight: 500; }
.nav a.nav-sub[aria-current="page"] { background: rgba(255,255,255,.92); }
@media (max-width: 760px) { .nav a.nav-sub { padding: 8px 10px; } .nav a.nav-sub span.l { display: inline; } }
/* Planificador · correcciones de UX (14-oct-2026) */
.pz-build .pz-plan { top: calc(var(--toph, 110px) + 12px); max-height: calc(100vh - var(--toph, 110px) - 24px); overflow: auto; display: block; }
.pz-build .pz-plan .pz-plan-b { overflow: visible; flex: none; }
.pz-build .pz-plan .pz-plan-t { position: sticky; bottom: 0; z-index: 2; box-shadow: 0 -8px 16px rgba(20, 37, 109, .07); }
.pz-mapbar { grid-template-columns: minmax(200px, .9fr) minmax(380px, 2fr) minmax(200px, .9fr); }
.pz-seg { display: flex; flex-wrap: wrap; gap: 0; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; width: fit-content; max-width: 100%; }
.pz-segb { border: 0; border-right: 1px solid var(--line); background: #fff; padding: 7px 12px; font: inherit; font-size: 13px; cursor: pointer; color: var(--navy); }
.pz-segb:last-child { border-right: 0; } .pz-segb:hover:not(:disabled) { background: #f4f0ff; }
.pz-segb.on { background: var(--violet); color: #fff; font-weight: 600; } .pz-segb:disabled { color: #b7bccb; cursor: not-allowed; }
.pz-zchips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 8px; }
.pz-zchips .pz-gchip { display: inline-flex; align-items: center; gap: 4px; border: 1px solid #d9ccff; background: #f4f0ff; color: var(--violet); border-radius: 999px; padding: 3px 10px; font-size: 12.5px; cursor: pointer; }
.pz-gclear { display: inline-flex; align-items: center; gap: 4px; border: 1px solid #f0c2c2; background: #fff5f5; color: #b42318; border-radius: 999px; padding: 3px 10px; font-size: 12.5px; cursor: pointer; font-weight: 600; }
.pz-addm { max-width: 290px; min-width: 200px; flex: 1; padding: 6px 10px; font-size: 13px; }
@media (max-width: 1050px) { .pz-build .pz-plan { max-height: none; overflow: visible; } }
/* Planificador v3: barra fija de resumen + pasos 1 Arma · 2 Dónde · 3 Qué logra */
.pz-sum { position: sticky; top: var(--toph, 70px); z-index: 4; display: flex; align-items: center; gap: 6px 18px; flex-wrap: wrap; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; margin-bottom: 16px; box-shadow: 0 6px 18px rgba(20, 37, 109, .08); }
.pz-sum-n { display: flex; flex-direction: column; min-width: 150px; max-width: 260px; } .pz-sum-n b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pz-sum-i { display: flex; flex-direction: column; line-height: 1.2; color: inherit; text-decoration: none; } .pz-sum-i span { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); } .pz-sum-i b { font-variant-numeric: tabular-nums; font-size: 15px; }
.pz-sum-inv b { font-family: var(--font-title); font-size: 21px; color: var(--violet); }
.pz-sum-l:hover b { text-decoration: underline; }
.pz-sum-w { color: var(--amber); display: flex; gap: 4px; align-items: center; }
.pz-sum-a { margin-left: auto; display: flex; gap: 6px; align-items: center; }
.pz-step { margin-bottom: 26px; scroll-margin-top: calc(var(--toph, 70px) + 90px); }
.pz-step-h { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; } .pz-step-h h2 { font-size: 17px; margin: 0; }
.pz-step-n { width: 26px; height: 26px; border-radius: 50%; background: var(--violet); color: #fff; display: inline-grid; place-items: center; font-weight: 700; font-size: 13px; }
.pz-head { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(220px, 1.4fr) 130px minmax(160px, .8fr); gap: 12px; align-items: start; padding: 14px 16px; margin-bottom: 12px; }
.pz-head-b select.in { margin: 0 !important; }
.pz-head-i { display: flex; flex-direction: column; gap: 4px; min-width: 0; } .pz-head-i > label { font-size: 11.5px; color: var(--muted); font-weight: 600; } .pz-head-i .in { width: 100%; }
.pz-head-z { padding: 8px 0; font-weight: 600; }
.pz-step .pz-catalog { margin-bottom: 14px; }
.pz-planbox { scroll-margin-top: calc(var(--toph, 70px) + 90px); }
.pz-lines-h { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; } .pz-lines-h h3 { margin: 0; font-size: 15px; }
.pz-lines { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 12px; align-items: start; }
.pz-lines .pz-line { background: #fff; }
.pz-lines-e { grid-column: 1 / -1; padding: 22px 12px; border: 1px dashed var(--line); border-radius: 12px; background: #fff; }
.pz-step .pz-mapbox { margin-top: 10px; }
@media (max-width: 900px) { .pz-head { grid-template-columns: 1fr 1fr; } .pz-sum { gap: 6px 12px; } .pz-sum-a { margin-left: 0; width: 100%; } .pz-sum-a .btn.primary { flex: 1; } }
@media (max-width: 560px) { .pz-head { grid-template-columns: 1fr; } .pz-sum-n { max-width: none; width: 100%; } }
/* Catálogo en tarjetas: el panel mide lo mismo que el menú (que no se mueve) y las tarjetas se desplazan por dentro */
.pz-wb.pz-wb-fit { min-height: 0; align-items: stretch; }
.pz-wb-fit .pz-wb-c { height: 0; min-height: 100%; max-height: none; overflow: auto; }
.pz-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.pz-card-g { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; color: var(--fc); margin-top: 4px; }
.pz-card-g i { width: 9px; height: 9px; border-radius: 50%; background: var(--fc); } .pz-card-g small { color: var(--muted); font-weight: 400; }
.pz-card { border: 1px solid var(--line); border-radius: 14px; background: #fff; overflow: hidden; display: flex; flex-direction: column; transition: transform .15s, box-shadow .15s; }
.pz-card:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(24, 33, 98, .08); }
.pz-card.on { border-color: var(--fc); box-shadow: inset 0 0 0 1px var(--fc); }
.pz-card-b { padding: 10px 12px 12px; display: flex; flex-direction: column; flex: 1; }
.pz-card-m { display: flex; justify-content: space-between; gap: 6px; font-size: 11px; color: var(--muted); }
.pz-card-s { border: 1px solid var(--line); border-radius: 5px; padding: 0 5px; } .pz-card-s.rev { background: #fff6e8; color: #946020; border: 0; }
.pz-card h4 { font-size: 14.5px; line-height: 1.25; margin: 6px 0 4px; }
.pz-card-d { font-size: 12px; color: var(--muted); margin: 0 0 8px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pz-card-p { margin-top: auto; font-size: 16px; } .pz-card-p small { font-size: 11px; color: var(--muted); }
.pz-card-a { display: flex; gap: 6px; margin-top: 8px; } .pz-card-a .btn { flex: 1; justify-content: center; }
.pz-more { text-align: center; margin: 12px 0 4px; }
.dm-thumb { height: 92px; background: #eeeafa; position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.dm-thumb[data-kind=video], .dm-thumb[data-kind=vertical] { background: #e5eefb; } .dm-thumb[data-kind=audio] { background: #e5f2f1; } .dm-thumb[data-kind=social] { background: #e8ebf7; }
.dm-tag { position: absolute; left: 10px; top: 8px; font-size: 10px; letter-spacing: .08em; font-weight: 700; color: #5c438b; }
.dm-win { width: 128px; height: 66px; background: #fff; border-radius: 7px; border: 1px solid #d4cfeb; box-shadow: 7px 7px 0 #dad2ef; overflow: hidden; transform: rotate(-4deg); display: flex; flex-direction: column; }
.dm-win.v { width: 52px; height: 74px; }
.dm-bar { height: 12px; background: #f4f3f8; border-bottom: 1px solid #e0ddef; font-size: 7px; padding-left: 6px; color: #a195bd; }
.dm-ad { flex: 1; background: linear-gradient(120deg, #222267, #7729e7); margin: 6px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 11px; font-weight: 700; text-align: center; border-radius: 3px; }
.dm-thumb[data-kind=audio] .dm-ad { background: #123f44; letter-spacing: 3px; } .dm-thumb[data-kind=search] .dm-ad { background: #fff; color: #334cb3; }
@media (max-width: 1250px) { .pz-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1050px) { .pz-wb-fit .pz-wb-c { height: auto; min-height: 0; max-height: 70vh; } }
@media (max-width: 640px) { .pz-cards { grid-template-columns: 1fr; } .pz-wb-fit .pz-wb-c { max-height: none; } }
/* Ficha con demo */
.dm-dlg { border: 0; padding: 0; border-radius: 20px; width: min(1000px, 94vw); max-height: 90vh; color: var(--ink); box-shadow: 0 30px 100px rgba(14, 10, 57, .25); }
.dm-dlg::backdrop { background: rgba(22, 18, 45, .75); backdrop-filter: blur(4px); }
.dm-head { display: flex; justify-content: space-between; gap: 16px; padding: 18px 22px; border-bottom: 1px solid var(--line); } .dm-head h2 { margin: 2px 0; font-size: 22px; } .dm-head p { margin: 0; }
.dm-grid2 { display: grid; grid-template-columns: 1.1fr 1fr; min-height: 440px; }
.dm-area { background: #f0eff8; padding: 22px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; }
.dm-label { font-size: 11px; letter-spacing: .12em; color: #746988; }
.dm-surface { width: 100%; max-width: 380px; background: #fff; border: 1px solid #dbd7e8; border-radius: 14px; overflow: hidden; }
.dm-chrome { display: flex; justify-content: space-between; padding: 10px 14px; font-size: 11px; border-bottom: 1px solid var(--line); color: #77728b; }
.dm-adbig { background: linear-gradient(135deg, #171e64, #5e26d3 70%, #9138ef); padding: 24px; color: #fff; min-height: 190px; display: flex; flex-direction: column; justify-content: center; }
.dm-adbig.vert { min-height: 330px; max-width: 220px; margin: auto; }
.dm-adbig h3 { font-size: 28px; line-height: 1.05; margin: 0 0 10px; color: #fff; } .dm-adbig p { margin: 0 0 12px; font-size: 13.5px; }
.dm-adbig button, .dm-search button, .dm-push button, .dm-ch button { align-self: flex-start; background: #fff; color: #4c21b3; border: 1px solid var(--line); border-radius: 10px; padding: 7px 12px; font-weight: 600; cursor: pointer; }
.dm-brand { font-size: 11px; letter-spacing: .25em; margin-bottom: 14px; }
.dm-play { border-radius: 50% !important; width: 52px; height: 52px; align-self: center !important; font-size: 20px; }
.dm-prog { height: 4px; background: rgba(255, 255, 255, .2); border-radius: 4px; overflow: hidden; margin: 14px 0 6px; } .dm-prog i { display: block; width: 0; height: 100%; background: #58e0f2; transition: width .2s; }
.dm-timer { font-size: 12px; display: flex; justify-content: space-between; }
.dm-waves { height: 54px; display: flex; align-items: center; gap: 5px; margin: 10px 0; } .dm-waves i { width: 7px; border-radius: 7px; height: 24px; background: #6bf0d2; }
.playing .dm-waves i { animation: dmpulse .6s infinite alternate; } .dm-waves i:nth-child(3n) { height: 46px; } .dm-waves i:nth-child(2n) { height: 34px; animation-delay: .3s; } @keyframes dmpulse { to { height: 8px; } }
.dm-search { padding: 20px; } .dm-search h3 { font-size: 20px; color: #293eac; font-weight: 500; margin: 8px 0; } .dm-search p { font-size: 13px; color: #5c6474; } .dm-eyebrow { font-size: 11px; letter-spacing: .12em; color: var(--violet); }
.dm-push { padding: 18px; background: #f6f6fa; } .dm-push h3 { margin: 6px 0; }
.dm-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 8px; } .dm-grid button { background: rgba(255, 255, 255, .12); color: #fff; border: 1px solid rgba(255, 255, 255, .25); border-radius: 8px; font-size: 20px; padding: 8px; cursor: pointer; } .dm-grid button.hit { background: #40d8c8; color: #172260; }
.dm-bubble { padding: 10px 14px; border-radius: 12px; background: #f0edfc; margin: 12px; font-size: 13.5px; } .dm-ch { display: flex; gap: 6px; flex-wrap: wrap; padding: 0 12px 12px; }
.dm-count { font-size: 12px; opacity: .7; } .dm-note { padding: 10px 14px; font-size: 12px; color: #76708b; }
.dm-game { padding: 18px; background: #25223d; color: #fff; font-size: 12px; } .dm-frame { border: 4px solid #9a88d7; margin: 10px 0; }
.dm-mock { height: 8px; background: #eeedf5; border-radius: 5px; margin: 10px 16px; } .dm-mock.s { width: 60%; }
.dm-cap { font-size: 12px; color: var(--muted); text-align: center; max-width: 380px; }
.dm-info { padding: 22px; min-width: 0; } .dm-info p { font-size: 14px; } .dm-info label { display: block; font-size: 12px; font-weight: 700; margin: 12px 0 4px; } .dm-info .in { width: 100%; }
.dm-price { font-size: 26px; font-weight: 700; margin: 10px 0 2px; } .dm-price small { font-size: 12px; color: var(--muted); font-weight: 400; }
@media (max-width: 800px) { .dm-grid2 { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .pz-card, .dm-waves i { transition: none; animation: none; } }
/* Plan estratégico (5 P) */
.pz-strat { display: flex; align-items: center; gap: 12px; padding: 12px 16px; margin-bottom: 16px; text-decoration: none; color: inherit; border: 1px dashed var(--violet); }
.pz-strat:hover { background: #f7f3ff; } .pz-strat .grow { display: flex; flex-direction: column; }
.es-intro { margin-bottom: 16px; }
.es-steps { display: flex; gap: 8px; list-style: none; padding: 0; margin: 14px 0 0; flex-wrap: wrap; }
.es-steps li { display: flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; background: #f2f3f8; font-size: 13px; color: var(--muted); }
.es-steps li b { width: 22px; height: 22px; border-radius: 50%; display: inline-grid; place-items: center; background: #dfe2ee; color: var(--ink); font-size: 12px; }
.es-steps li.on { background: #efe7ff; color: var(--ink); font-weight: 700; } .es-steps li.on b { background: var(--violet); color: #fff; } .es-steps li.done b { background: var(--green); color: #fff; }
.es-g2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } .es-g2 .field { margin: 0; } .es-g2 textarea { width: 100%; }
.es-drop { display: flex; flex-direction: column; gap: 8px; } .es-drop-h { display: flex; flex-direction: column; } .es-drop textarea { width: 100%; resize: vertical; }
.es-dz { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 18px; border: 2px dashed var(--line); border-radius: 12px; background: #fafbfd; cursor: pointer; text-align: center; color: var(--muted); }
.es-dz:hover, .es-drop.over .es-dz { border-color: var(--violet); background: #f7f3ff; } .es-dz input { display: none; } .es-dz small { font-size: 11px; }
.es-files { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; } .es-files li { display: flex; align-items: center; gap: 6px; font-size: 13px; }
.es-ficha td { vertical-align: middle; } .es-ficha .in { width: 100%; } .es-miss td { background: #fff4f4; } .es-req { color: var(--red); font-weight: 700; }
.es-q { margin-top: 12px; padding: 10px 14px; background: #f7f8fc; border-radius: 10px; } .es-q ul { margin: 6px 0 0; }
.es-bar { position: sticky; top: var(--toph, 70px); z-index: 3; margin-bottom: 16px; }
.es-5p { display: flex; flex-direction: column; gap: 12px; margin: 16px 0; }
.es-p { border: 1px solid var(--line); border-left: 5px solid var(--pc); border-radius: 14px; background: #fff; padding: 14px 18px; }
.es-p-h { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; } .es-p-h h3 { margin: 0; font-size: 17px; color: var(--pc); }
.es-p-n { width: 28px; height: 28px; border-radius: 50%; background: var(--pc); color: #fff; display: inline-grid; place-items: center; font-weight: 700; }
.es-p-b p { margin: 4px 0; } .es-big { font-size: 17px; font-weight: 700; }
.es-tags { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; margin: 6px 0 0; } .es-tags li { background: #f2f3f8; border-radius: 999px; padding: 2px 10px; font-size: 12.5px; }
.es-personas { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.es-personas article { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; font-size: 13px; } .es-personas dl { margin: 6px 0 0; display: grid; grid-template-columns: 70px 1fr; gap: 3px 8px; } .es-personas dt { color: var(--muted); font-size: 12px; } .es-personas dd { margin: 0; }
.es-draft { margin-bottom: 8px; }
.es-reco { margin-bottom: 16px; } .es-mix td { vertical-align: top; } .es-mix .es-off td { opacity: .55; } .es-mix .es-why td { border-top: 0; padding-top: 0; } .es-mix .es-tot td { border-top: 2px solid var(--line); }
.es-hist { margin-top: 16px; } .es-hist summary { cursor: pointer; }
@media (max-width: 900px) { .es-g2 { grid-template-columns: 1fr; } .es-bar { position: static; } }
.es-tw { max-height: none !important; overflow: visible; }
.es-draft { background: #fff8e8; color: #7a5200; border-radius: 8px; padding: 6px 10px; font-size: 12.5px; }
.dm-adbig h3, .dm-head h2, .dm-search h3, .dm-push h3 { text-transform: none; letter-spacing: normal; }
/* Hoja de montaje */
.es-exec { margin-bottom: 16px; }
.es-mt { border: 1px solid var(--line); border-radius: 12px; margin-top: 10px; padding: 10px 14px; background: #fff; } .es-mt > summary { cursor: pointer; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.es-mt-g { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 20px; margin-top: 10px; } .es-mt-g h4 { margin: 0 0 6px; font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--violet); }
.es-mt-n { font-family: monospace; font-size: 11.5px; color: var(--muted); margin: 6px 0 2px; word-break: break-all; }
.es-kv { width: 100%; border-collapse: collapse; font-size: 12.5px; } .es-kv th { text-align: left; color: var(--muted); font-weight: 600; width: 38%; padding: 4px 8px 4px 0; vertical-align: top; } .es-kv td { padding: 4px 0; vertical-align: top; border-bottom: 1px solid #f0f1f6; }
.es-hand { color: #9a5b00; }
.es-ck { display: flex; gap: 8px; align-items: flex-start; font-size: 12.5px; margin: 4px 0; } .es-ck input { margin-top: 3px; }
@media (max-width: 900px) { .es-mt-g { grid-template-columns: 1fr; } }
/* DOOH por zonas */
.pz-zones { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.pz-zchip { border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: 4px 11px; font: inherit; font-size: 12.5px; cursor: pointer; color: var(--ink); }
.pz-zchip small { color: var(--muted); margin-left: 3px; } .pz-zchip.on { background: #ff8a00; border-color: #ff8a00; color: #fff; } .pz-zchip.on small { color: #fff; }
.pz-dph { height: 92px; background: #fff3e6; position: relative; display: flex; align-items: center; justify-content: center; color: #c86f00; overflow: hidden; }
.pz-dph img { width: 100%; height: 100%; object-fit: cover; } .pz-dph .dm-tag { background: rgba(255, 255, 255, .85); padding: 1px 6px; border-radius: 4px; color: #a85a00; }
.pz-dsee { position: absolute; right: 8px; top: 8px; padding: 3px 6px; background: #fff; }
.pz-dk { display: flex; gap: 10px; flex-wrap: wrap; font-size: 11.5px; color: var(--muted); margin-bottom: 6px; } .pz-dk b { color: var(--ink); font-size: 13px; }
.pz-faces { display: flex; flex-wrap: wrap; gap: 5px; }
.pz-face { border: 1px solid var(--line); background: #fff; border-radius: 8px; padding: 4px 8px; font: inherit; font-size: 12px; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; color: var(--ink); }
.pz-face:hover { border-color: #ff8a00; } .pz-face.on { background: #fff3e6; border-color: #ff8a00; font-weight: 700; }
.pz-dcard.on { border-color: #ff8a00; box-shadow: inset 0 0 0 1px #ff8a00; }
.pz-subf { display: flex; flex-wrap: wrap; gap: 6px; margin: -2px 0 10px; }
/* Hoja 5 P de la propuesta */
.pp5 { margin-bottom: 18px; }
.pp5-g { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0; }
.pp5-b { border: 1px solid var(--line); border-left: 4px solid var(--pc); border-radius: 10px; padding: 10px 12px; break-inside: avoid; } .pp5-b:nth-child(3) { grid-row: span 2; }
.pp5-b h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font-size: 14px; color: var(--pc); text-transform: none; letter-spacing: 0; }
.pp5-b h3 span { width: 22px; height: 22px; border-radius: 50%; background: var(--pc); color: #fff; display: inline-grid; place-items: center; font-size: 12px; }
.pp5-b p { margin: 3px 0; font-size: 12.5px; }
.pp5-warn { background: #fff8e8; color: #7a5200; border-radius: 8px; padding: 8px 12px; font-size: 12.5px; margin-top: 10px; }
@media print { body.pp-print .pp5 { break-after: page; } body.pp-print .pp5-b { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }
@media (max-width: 800px) { .pp5-g { grid-template-columns: 1fr; } .pp5-b:nth-child(3) { grid-row: auto; } }
/* Tarifa competitiva */
.pz-comp { margin-top: 8px; font-size: 12.5px; } .pz-comp-t { display: flex; gap: 6px; align-items: center; color: var(--muted); cursor: pointer; }
.pz-comp.on { background: #fff8e8; border-radius: 8px; padding: 8px; } .pz-comp.on .pz-comp-t { color: #7a5200; font-weight: 700; }
.pz-comp .in { width: 100%; margin-top: 6px; } .pz-comp-a { margin-top: 6px; color: #7a5200; }
/* Generador Search */
.es-sg { border: 1px dashed var(--violet); border-radius: 12px; padding: 12px 14px; margin: 10px 0; background: #fbf9ff; } .es-sg h4 { margin: 0 0 8px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.es-sg-g { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 12px; } .es-sf { display: flex; flex-direction: column; gap: 3px; font-size: 12px; color: var(--muted); } .es-sf .in { width: 100%; resize: vertical; }
.es-sgc { border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; margin: 6px 0; background: #fff; } .es-sgc summary { cursor: pointer; }
.es-sgg { margin: 8px 0; padding-top: 6px; border-top: 1px solid #f0f1f6; }
.es-kw { display: flex; flex-wrap: wrap; gap: 4px; margin: 6px 0; } .es-kw span { font-family: monospace; font-size: 11.5px; border-radius: 6px; padding: 1px 6px; } .es-kw .ex { background: #eef6ff; } .es-kw .ph { background: #f3eefe; }
@media (max-width: 900px) { .es-sg-g { grid-template-columns: 1fr; } }
/* Generador Meta */
.es-mg h5 { margin: 12px 0 6px; font-size: 13px; color: var(--violet); }
.es-mp { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; }
.es-mpi { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; background: #fff; display: flex; flex-direction: column; gap: 2px; } .es-mpi.on { border-color: var(--violet); box-shadow: inset 0 0 0 1px var(--violet); }
.es-ed { margin-bottom: 6px; } .es-ed td { padding: 3px 4px; } .es-ed .in { width: 100%; padding: 6px 8px; } .es-ed th { width: auto; font-size: 11.5px; } .nowrap { white-space: nowrap; }
/* Menú por secciones: el lateral se desplaza si no cabe y los ítems son más compactos */
.side { overflow-y: auto; scrollbar-width: thin; }
.nav a { padding: 8px 12px; } .nav-sec { margin: 10px 12px 2px; padding-top: 9px; }

/* Naming y UTMs */
.nm-box { border: 1px dashed var(--line); border-radius: 10px; padding: 8px 10px; margin: 6px 0 10px; background: #fafbff; }
.nm-h { font-size: 12.5px; margin-bottom: 6px; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.nm-g { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px 10px; }
.nm-utm { background: #f4f0ff; border-radius: 8px; padding: 6px 10px; margin: 8px 0; font-size: 12.5px; }
.nm-utm code, .nm-out .mono { word-break: break-all; font-size: 12px; }
.nm-list { background: var(--gray); border-radius: 8px; padding: 6px 10px; margin: 6px 0; word-break: break-all; }
.nm-h5 { margin: 12px 0 6px; font-size: 13px; color: var(--violet); }
.nm-out { margin: 12px 0 8px; } .nm-out th { width: 140px; }
.yt-alert { display: flex; gap: 12px; align-items: flex-start; background: var(--red-bg); color: var(--red); border: 2px solid var(--red); border-radius: 10px; padding: 12px 14px; margin: 10px 0; font-size: 13px; }
.yt-alert b { font-size: 16px; letter-spacing: .02em; display: block; margin-bottom: 2px; }
@media (max-width: 900px) { .nm-g { grid-template-columns: 1fr 1fr; } }

/* Radar */
.rd-hero { border-top: 3px solid var(--violet); }
.rd-logo { width: 40px; height: 40px; border-radius: 10px; background: linear-gradient(135deg, var(--violet), var(--cyan)); color: #fff; display: grid; place-items: center; }
.rd-form { display: flex; gap: 10px; align-items: flex-end; margin-top: 12px; flex-wrap: wrap; }
.rd-form .grow { flex: 1 1 360px; } .rd-url { font-size: 16px; padding: 10px 12px; }
.rd-sum { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; margin-top: 14px; }
.rd-grade { width: 84px; height: 84px; border-radius: 16px; display: grid; place-items: center; align-content: center; color: #fff; }
.rd-grade b { font-size: 38px; line-height: 1; } .rd-grade span { font-size: 12px; opacity: .9; }
.rd-grade.rd-green { background: var(--green); } .rd-grade.rd-amber { background: #d48806; } .rd-grade.rd-red { background: var(--red); }
.rd-top { margin: 0; padding-left: 20px; font-size: 13px; } .rd-top li { margin: 4px 0; }
.rd-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
.rd-card { background: #fff; border-radius: var(--r); box-shadow: var(--shadow); padding: 14px 16px; border-top: 3px solid var(--violet); min-width: 0; }
.rd-card:nth-child(2) { border-top-color: var(--cyan); } .rd-card:nth-child(3) { border-top-color: var(--navy); } .rd-card:nth-child(4) { border-top-color: var(--green); }
.rd-card header { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; margin-bottom: 8px; } .rd-card h3 { margin: 0; }
.rd-card h5 { margin: 10px 0 4px; font-size: 12.5px; color: var(--violet); }
.rd-ring { width: 62px; height: 62px; border-radius: 50%; border: 5px solid var(--line); display: grid; place-items: center; align-content: center; flex: none; }
.rd-ring b { font-size: 18px; line-height: 1; } .rd-ring span { font-size: 10px; color: var(--muted); }
.rd-ring.rd-green { border-color: var(--green); color: var(--green); } .rd-ring.rd-amber { border-color: #d48806; color: #9a5b00; } .rd-ring.rd-red { border-color: var(--red); color: var(--red); }
.rd-t { width: 100%; border-collapse: collapse; font-size: 12.5px; } .rd-t td, .rd-t th { padding: 4px 6px; border-bottom: 1px solid var(--gray); text-align: left; vertical-align: top; }
.rd-t th { font-size: 11px; text-transform: uppercase; color: var(--muted); background: #fafbff; } .rd-t td.mono { word-break: break-all; }
.rd-ok { color: var(--green); } .rd-no { color: var(--red); }
.rd-recs { margin-top: 10px; } .rd-rec { font-size: 12.5px; padding: 5px 0; border-top: 1px solid var(--gray); }
@media (max-width: 1000px) { .rd-grid { grid-template-columns: 1fr; } }
.rd-explain { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; } .rd-explain div { background: var(--gray); border-radius: 10px; padding: 10px 12px; font-size: 12.5px; }
.rd-explain b { display: block; color: var(--violet); font-size: 15px; margin-bottom: 2px; }
@media (max-width: 900px) { .rd-explain { grid-template-columns: 1fr; } }
/* Inventario DOOH: ficha debajo de la fila seleccionada */
tr.ooh-detail td { background: #f6f2ff; padding: 10px 12px; }
.ooh-dwrap { display: flex; gap: 14px; align-items: flex-start; }
.ooh-dphoto { width: 220px; height: 140px; object-fit: cover; border-radius: 10px; flex: none; background: var(--gray); }
.ooh-dphoto.ooh-nophoto { display: grid; place-items: center; font-size: 12px; color: var(--muted); }
@media (max-width: 700px) { .ooh-dwrap { flex-direction: column; } .ooh-dphoto { width: 100%; } }
/* Ubicaciones de clientes */
.u-drop { border: 2px dashed var(--line); border-radius: 10px; padding: 12px; display: flex; flex-direction: column; gap: 6px; background: #fafbff; }
tr.u-off td { opacity: .45; }
.u-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.u-map { width: 100%; height: auto; background: #eef3fb; border-radius: 10px; }
.u-map path { fill: #fff; stroke: #c9cfe0; stroke-width: .3; }
.u-rad { fill: rgba(0, 186, 255, .08); stroke: rgba(0, 186, 255, .55); stroke-width: .35; stroke-dasharray: 1.2 1; }
.u-scr { fill: #a3a9bf; } .u-loc { fill: var(--cyan); stroke: var(--navy); stroke-width: .3; }
.u-pick { fill: #ff8a00; stroke: #fff; stroke-width: .4; } .u-pickn { fill: #fff; font-weight: 700; pointer-events: none; }
.u-lg { display: inline-block; width: 10px; height: 10px; margin-right: 4px; vertical-align: middle; border-radius: 50%; }
.u-lg-loc { background: var(--cyan); border-radius: 2px; } .u-lg-pick { background: #ff8a00; } .u-lg-scr { background: #a3a9bf; } .u-lg-rad { border: 1px dashed var(--cyan); }
@media (max-width: 1000px) { .u-grid { grid-template-columns: 1fr; } }
.es-radar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; background: #f4f0ff; border-radius: 10px; padding: 8px 12px; margin: 0 0 10px; font-size: 13px; }
.es-radar span { flex: 1 1 300px; }
/* Auditorías Spotify, TikTok y LinkedIn */
tr.pa-row td { background: #faf8ff; padding: 12px 14px; }
.pa-det { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 18px; }
.pa-det h5 { margin: 0 0 8px; font-size: 12.5px; color: var(--violet); } .pa-det h6 { margin: 8px 0 4px; font-size: 12px; }
.pa-flag { padding: 6px 0; border-bottom: 1px solid var(--gray); font-size: 12.5px; }
.pa-ai { margin-top: 10px; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; }
.pa-ai ul, .pa-ai ol { margin: 4px 0 8px 18px; padding: 0; }
@media (max-width: 1000px) { .pa-det { grid-template-columns: 1fr; } }
/* Plataformas (OMEGA) */
.pl-hero { border-top: 3px solid var(--violet); }
.pl-omegamark { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; font-size: 30px; font-weight: 700; color: #fff; background: radial-gradient(circle at 50% 50%, var(--cyan), var(--violet) 70%); box-shadow: 0 0 18px rgba(0, 186, 255, .45); flex: none; }
.pl-method { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 10px; } .pl-method div { background: var(--gray); border-radius: 10px; padding: 8px 10px; font-size: 12.5px; } .pl-method b { display: block; color: var(--violet); }
.pl-f { background: none; border: 0; padding: 0; cursor: pointer; } .pl-f.on .chip { outline: 2px solid var(--violet); }
.pl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; margin-top: 14px; align-items: start; }
.pl-card { background: #fff; border-radius: var(--r); box-shadow: var(--shadow); padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; border-top: 3px solid var(--cyan); }
.pl-card header { display: flex; gap: 10px; align-items: center; } .pl-card h3 { margin: 0; font-size: 14px; color: var(--ink); text-transform: none; }
.pl-card p { margin: 2px 0; } .pl-card ul { margin: 4px 0 4px 18px; padding: 0; }
.pl-mark { width: 38px; height: 38px; border-radius: 10px; background: var(--navy); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 13px; flex: none; }
.pl-lema { font-style: italic; color: var(--muted); font-size: 12.5px; }
.pl-valor { background: #f4f0ff; border-radius: 8px; padding: 6px 8px; }
.pl-fmt { background: var(--gray); border-radius: 99px; padding: 2px 8px; font-size: 11.5px; }
.pl-omega { font-size: 12.5px; border-left: 3px solid var(--violet); padding: 4px 8px; background: #fafbff; }
@media (max-width: 900px) { .pl-method { grid-template-columns: 1fr; } }
/* Menú con secciones que se contraen y expanden */
.nav-grp { display: flex; flex-direction: column; gap: 2px; }
button.nav-sec { display: flex; align-items: center; justify-content: space-between; width: calc(100% - 24px); background: none; border: 0; border-top: 1px solid rgba(255,255,255,.12); cursor: pointer; font: inherit; font-size: 10.5px; text-align: left; }
button.nav-sec:hover { color: #fff; } button.nav-sec:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; border-radius: 4px; }
.nav-chev { font-size: 15px; line-height: 1; transition: transform .2s ease; }
.nav-grp.open .nav-chev { transform: rotate(90deg); }
.nav-grp:not(.open) .nav-items { display: none; }
.nav-items { display: flex; flex-direction: column; gap: 2px; }
.side { overflow-y: auto; }
@media (prefers-reduced-motion: reduce) { .nav-chev { transition: none; } }
/* Seguimiento */
.sg-head { border-top: 3px solid var(--violet); }
.sg-list { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.sg-item { display: grid; grid-template-columns: 74px minmax(0, 1fr) auto; gap: 14px; align-items: center; background: #fff; border-radius: var(--r); box-shadow: var(--shadow); padding: 12px 14px; color: var(--ink); text-decoration: none; border-left: 5px solid var(--line); transition: transform .12s ease; }
.sg-item:hover { transform: translateX(3px); } .sg-critical { border-left-color: var(--red); } .sg-risk { border-left-color: #d48806; } .sg-watch { border-left-color: var(--cyan); } .sg-good { border-left-color: var(--green); }
.sg-score { width: 64px; height: 64px; border-radius: 50%; border: 5px solid var(--line); display: grid; place-items: center; align-content: center; }
.sg-score b { font-size: 20px; line-height: 1; } .sg-score span { font-size: 9.5px; color: var(--muted); }
.sg-score.green { border-color: var(--green); } .sg-score.amber { border-color: #d48806; } .sg-score.red { border-color: var(--red); }
.sg-alert { color: var(--red); margin-top: 4px; } .sg-todo { margin-top: 3px; }
.sg-go { font-size: 12.5px; font-weight: 600; color: var(--violet); white-space: nowrap; display: flex; gap: 4px; align-items: center; }
@media (max-width: 700px) { .sg-item { grid-template-columns: 56px 1fr; } .sg-go { display: none; } }
@media (prefers-reduced-motion: reduce) { .sg-item { transition: none; } }

/* Resumen gerencial (pantalla completa, estilo OMEGA) */
#gx-host { position: fixed; inset: 0; z-index: 1000; }
.gx { position: absolute; inset: 0; display: grid; grid-template-columns: minmax(260px, 30%) 1fr; background: radial-gradient(circle at 75% 40%, rgba(107, 0, 247, .25), transparent 55%), radial-gradient(circle at 20% 90%, rgba(0, 186, 255, .18), transparent 50%), #060a19; color: #e7ecff; font-size: 15px; }
.gx::before { content: ''; position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(0, 186, 255, .06) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 186, 255, .06) 1px, transparent 1px); background-size: 42px 42px; }
.gx-side { position: relative; padding: 28px 24px; display: flex; flex-direction: column; gap: 16px; border-right: 1px solid rgba(0, 186, 255, .2); background: rgba(6, 10, 25, .6); overflow-y: auto; }
.gx-brand { display: flex; gap: 14px; align-items: center; } .gx-brand b { display: block; font-size: 26px; letter-spacing: .2em; } .gx-brand span { font-size: 12px; letter-spacing: .3em; color: var(--cyan); text-transform: uppercase; }
.gx-omega { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; font-size: 34px; font-weight: 700; border: 3px solid var(--cyan); box-shadow: 0 0 22px rgba(0, 186, 255, .6), inset 0 0 16px rgba(107, 0, 247, .6); }
.gx-month { font-size: 13px; letter-spacing: .15em; text-transform: uppercase; opacity: .7; }
.gx-stats, .gx-health { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } .gx-stats div, .gx-health div { background: rgba(255, 255, 255, .05); border: 1px solid rgba(0, 186, 255, .18); border-radius: 12px; padding: 10px 12px; }
.gx-stats span, .gx-health span { display: block; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; opacity: .7; } .gx-stats b, .gx-health b { font-size: 22px; }
.gx-ctrl { display: flex; gap: 10px; justify-content: center; } .gx-ctrl button { width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--cyan); background: rgba(0, 186, 255, .1); color: #fff; font-size: 18px; cursor: pointer; }
.gx-ctrl button:hover { background: rgba(0, 186, 255, .3); }
.gx-toggle { font-size: 13px; display: flex; gap: 8px; align-items: center; justify-content: center; }
.gx-exit { margin-top: auto; background: none; border: 1px solid rgba(255, 255, 255, .3); color: #fff; border-radius: 10px; padding: 8px; cursor: pointer; }
.gx-sm { font-size: 12.5px; opacity: .75; }
.gx-stage { position: relative; padding: 36px 48px; display: flex; flex-direction: column; overflow-y: auto; }
.gx-prog { height: 3px; background: rgba(255, 255, 255, .1); border-radius: 3px; overflow: hidden; margin-bottom: 26px; } .gx-prog i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--violet), var(--cyan)); }
.gx-prog i.run { animation: gxprog linear forwards; } @keyframes gxprog { to { width: 100%; } }
.gx-slide { flex: 1; animation: gxin .45s ease; } @keyframes gxin { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.gx-slide h2 { font-size: 28px; margin: 4px 0 10px; color: #fff; text-transform: none; letter-spacing: 0; }
.gx-clients { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.gx-cl, .gx-kpis div { background: rgba(255, 255, 255, .05); border: 1px solid rgba(0, 186, 255, .2); border-radius: 14px; padding: 14px 16px; }
.gx-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 18px 0; } .gx-kpis span { display: block; font-size: 11.5px; text-transform: uppercase; letter-spacing: .07em; opacity: .7; } .gx-kpis b { font-size: 30px; display: block; } .gx-kpis small { opacity: .7; }
.gx-bar { position: relative; height: 10px; border-radius: 10px; background: rgba(255, 255, 255, .1); margin-top: 12px; } .gx-bar i { position: absolute; inset: 0 auto 0 0; border-radius: 10px; background: linear-gradient(90deg, var(--violet), var(--cyan)); box-shadow: 0 0 12px rgba(0, 186, 255, .5); }
.gx-bar em { position: absolute; top: -4px; width: 2px; height: 18px; background: #fff; } .gx-bl { font-size: 12.5px; opacity: .75; margin-top: 4px; }
.gx-ring { width: 104px; height: 104px; border-radius: 50%; display: grid; place-items: center; align-content: center; background: conic-gradient(var(--gxc) calc(var(--p) * 1%), rgba(255, 255, 255, .1) 0); position: relative; flex: none; }
.gx-ring::before { content: ''; position: absolute; inset: 9px; border-radius: 50%; background: #0a1028; } .gx-ring b, .gx-ring span { position: relative; } .gx-ring b { font-size: 30px; line-height: 1; } .gx-ring span { font-size: 11px; opacity: .7; }
.gx-green { --gxc: #2bd99a; } .gx-amber { --gxc: #ffb547; } .gx-red { --gxc: #ff5c7a; } .gx-gray { --gxc: #8892b0; }
.gx-alert { margin-top: 18px; padding: 12px 14px; border-radius: 12px; background: rgba(255, 92, 122, .12); border: 1px solid rgba(255, 92, 122, .4); }
.gx-ok { margin-top: 18px; padding: 12px 14px; border-radius: 12px; background: rgba(43, 217, 154, .1); border: 1px solid rgba(43, 217, 154, .4); }
.gx-todo { margin-top: 10px; padding: 12px 14px; border-radius: 12px; background: rgba(0, 186, 255, .08); border: 1px solid rgba(0, 186, 255, .3); }
.gx-dots { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; margin-top: 18px; } .gx-dots button { width: 8px; height: 8px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .25); cursor: pointer; padding: 0; } .gx-dots button.on { background: var(--cyan); box-shadow: 0 0 8px var(--cyan); }
.gx .chip { box-shadow: none; }
@media (max-width: 900px) { .gx { grid-template-columns: 1fr; overflow-y: auto; } .gx-kpis { grid-template-columns: 1fr 1fr; } .gx-stage { padding: 20px; } }
@media (prefers-reduced-motion: reduce) { .gx-slide { animation: none; } .gx-prog i.run { animation: none; width: 100%; } }
/* Seguimiento más liviano */
.sg-list { gap: 6px; }
.sg-item { grid-template-columns: 52px minmax(0, 1fr) auto; padding: 8px 12px; gap: 12px; }
.sg-score { width: 46px; height: 46px; border-width: 4px; } .sg-score b { font-size: 15px; } .sg-score span { display: none; }
.sg-item .sm { font-size: 12.5px; } .sg-alert, .sg-todo { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sg-score.cyan { border-color: var(--cyan); }
/* Verificación en dos pasos */
.mfa-steps { margin: 6px 0 8px 18px; padding: 0; text-align: left; } .mfa-steps li { margin: 4px 0; }
.mfa-qr { display: grid; place-items: center; margin: 8px 0; } .mfa-qr img { width: 190px; height: 190px; background: #fff; padding: 8px; border-radius: 12px; border: 1px solid var(--line); }
.mfa-secret { display: block; word-break: break-all; background: var(--gray); padding: 6px 8px; border-radius: 6px; margin-top: 4px; }
/* ---------- OMEGA: marca y menú por etapas (段取り · 自働化 · 見える化 · 改善) ---------- */
.om-lock { display: flex; align-items: center; gap: 12px; }
.om-lock img { width: 46px; height: 46px; flex: none; margin: 0 !important; }
.om-lock b { display: block; font-family: 'Cinzel', serif; font-weight: 600; font-size: 24px; letter-spacing: .22em; line-height: 1; }
.om-lock small { display: block; font-family: 'Syncopate', sans-serif; font-weight: 700; font-size: 8.5px; letter-spacing: .5em; margin-top: 6px; opacity: .75; }
.login .om-lock { margin-bottom: 18px; color: #0B0C12; } .login .om-lock img { width: 52px !important; height: 52px; }
.side { background: #0B0D12; }
.side .brand.om-side { padding: 4px 8px 6px; color: #E9E6DF; }
.nav-jpsec { align-items: center !important; gap: 10px; text-transform: none !important; letter-spacing: 0 !important; }
.nav-jp { font-family: 'Noto Sans JP', sans-serif; font-weight: 700; font-size: 17px; color: #8B93A7; min-width: 52px; }
.nav-es { display: flex; flex-direction: column; flex: 1; gap: 1px; }
.nav-es b { font-family: 'Syncopate', sans-serif; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: #E9E6DF; }
.nav-es small { font-size: 12px; font-weight: 600; letter-spacing: .04em; color: #FFF1D6; }
.nav-grp.here .nav-jp { color: #FF2E4D; }
.nav a[aria-current="page"] { background: #2EE6D6; color: #07080C; }
.side .brand.om-side img { width: 44px; height: 44px; max-width: none; margin: 0; }
/* Resumen gerencial = Centro de mando OMEGA (nivel 1, modo comando): obsidiana, aguamarina; rojo solo para lo crítico. */
.gx { background: #07080C; color: #E9E6DF; font-family: 'Outfit', system-ui, sans-serif; }
.gx::before { background-image: linear-gradient(#11141B 1px, transparent 1px), linear-gradient(90deg, #11141B 1px, transparent 1px); background-size: 40px 40px; }
.gx-side { background: #0B0D12; border-right: 1px solid #1E222E; }
.gx-brand b { font-family: 'Cinzel', serif; font-weight: 600; font-size: 26px; letter-spacing: .22em; } .gx-brand span { font-family: 'Syncopate', sans-serif; font-weight: 700; font-size: 9px; letter-spacing: .5em; color: #B7BCCB; }
img.gx-omega { width: 60px; height: 60px; border: 0; border-radius: 0; box-shadow: none; }
.gx-kicker { font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: #2EE6D6; } .gx-kicker span { font-family: 'Noto Sans JP', sans-serif; font-weight: 700; color: #FF2E4D; letter-spacing: 0; margin-right: 6px; }
.gx-stats div, .gx-health div, .gx-cl, .gx-kpis div { background: #0B0D12; border: 1px solid #1E222E; border-radius: 4px; position: relative; }
.gx-cl::before, .gx-kpis div::before { content: ''; position: absolute; left: -1px; top: -1px; width: 10px; height: 10px; border-left: 2px solid #2EE6D6; border-top: 2px solid #2EE6D6; }
.gx-stats b, .gx-health b, .gx-kpis b, .gx-ring b { font-family: ui-monospace, 'SFMono-Regular', Menlo, monospace; font-weight: 500; }
.gx-ctrl button { border-radius: 4px; border-color: #2EE6D6; background: transparent; } .gx-ctrl button:hover { background: rgba(46, 230, 214, .15); }
.gx-exit { border-radius: 4px; border-color: #262A38; }
.gx-prog i, .gx-bar i { background: #2EE6D6; box-shadow: none; }
.gx-ring::before { background: #07080C; }
.gx-good, .gx-green { --gxc: #2EE6D6; } .gx-watch, .gx-gray { --gxc: #8B93A7; } .gx-risk, .gx-amber { --gxc: #FF5C74; } .gx-critical, .gx-red { --gxc: #FF2E4D; }
.gx-alert { border-radius: 4px; background: rgba(255, 46, 77, .08); border-color: rgba(255, 46, 77, .45); } .gx-alert.gx-al-critical { background: rgba(255, 46, 77, .1); border-color: rgba(255, 46, 77, .55); }
.gx-ok { border-radius: 4px; background: rgba(46, 230, 214, .07); border-color: rgba(46, 230, 214, .4); }
.gx-todo { border-radius: 4px; background: transparent; border-color: #262A38; }
.gx-dots button.on { background: #2EE6D6; box-shadow: none; }
.gx-slide h2 { font-family: 'Cinzel', serif; font-weight: 600; letter-spacing: .03em; }
/* Login y verificación OMEGA: negro obsidiana (nivel 1, modo comando). El QR va sobre blanco para que el celular lo lea. */
.login { background: #07080C; background-image: linear-gradient(#11141B 1px, transparent 1px), linear-gradient(90deg, #11141B 1px, transparent 1px); background-size: 40px 40px; color: #E9E6DF; }
.login .box { background: #0B0D12; border: 1px solid #1E222E; border-radius: 6px; box-shadow: 0 30px 80px rgba(0,0,0,.6); color: #E9E6DF; position: relative; }
.login .box::before { content: ''; position: absolute; left: -1px; top: -1px; width: 16px; height: 16px; border-left: 2px solid #2EE6D6; border-top: 2px solid #2EE6D6; }
.login .box::after { content: ''; position: absolute; right: -1px; bottom: -1px; width: 16px; height: 16px; border-right: 2px solid #2EE6D6; border-bottom: 2px solid #2EE6D6; }
.login .om-lock { color: #E9E6DF; }
.login p.tag, .login .field label, .login .field .h, .login .sm { color: #B7BCCB; }
.login h2, .login b { color: #E9E6DF; }
.login .field input { background: #07080C; border-color: #2C3046; color: #E9E6DF; border-radius: 4px; }
.login .field input:focus { border-color: #2EE6D6; box-shadow: 0 0 0 3px rgba(46,230,214,.18); }
.login .btn.primary { background: #2EE6D6; border-color: #2EE6D6; color: #07080C; font-weight: 600; border-radius: 4px; } .login .btn.primary:hover { background: #5FF0E3; }
.login .alt button, .login a { color: #2EE6D6; }
.login .alertbox { background: rgba(255,46,77,.1); border: 1px solid rgba(255,46,77,.5); color: #FF8A99; }
.login .mfa-qr { background: #fff; border-radius: 4px; }
.login code.mfa-secret { background: #07080C; color: #2EE6D6; border: 1px solid #2C3046; }
.login details summary { color: #B7BCCB; cursor: pointer; }
/* ---------- Núcleo Ω (intro y login) ---------- */
.oi-core { position: relative; width: var(--oi, 340px); height: var(--oi, 340px); flex: none; }
.oi-core svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.oi-ring { transform: rotate(-90deg); } .oi-seg { transition: stroke-dasharray .7s cubic-bezier(.2,.8,.2,1); }
.oi-spin { animation: oiSpin 14s linear infinite; } .oi-spinr { animation: oiSpin 22s linear infinite reverse; }
@keyframes oiSpin { to { transform: rotate(360deg); } }
.oi-disc { position: absolute; inset: 20.5%; border-radius: 50%; background: #0B0D12; border: 1px solid #262A38; display: grid; place-items: center; }
.oi-disc img { width: 66%; height: 66%; }
.oi-lab { position: absolute; font: 500 11px/1 ui-monospace, 'SFMono-Regular', Menlo, monospace; letter-spacing: .15em; text-transform: uppercase; padding: 6px 9px; border: 1px solid #262A38; color: #6B7288; background: #07080C; transition: color .3s, border-color .3s; white-space: nowrap; }
.oi-lab.on { color: #2EE6D6; border-color: #2EE6D6; }
.oi-l0 { right: -8%; top: 4%; } .oi-l1 { right: -8%; bottom: 4%; } .oi-l2 { left: -8%; bottom: 4%; } .oi-l3 { left: -8%; top: 4%; }
.oi-brand { display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; }
.oi-brand b { font-family: 'Cinzel', serif; font-weight: 600; font-size: clamp(40px, 6vw, 72px); letter-spacing: .24em; padding-left: .24em; line-height: 1; color: #E9E6DF; }
.oi-by { display: flex; align-items: center; gap: 14px; } .oi-by i { display: block; width: 60px; height: 2px; background: #FF2E4D; }
.oi-by span { font-family: 'Syncopate', sans-serif; font-weight: 700; font-size: 12px; letter-spacing: .55em; padding-left: .55em; color: #E9E6DF; }
.oi-brand p { margin: 2px 0 0; font-size: 18px; font-weight: 300; color: #B7BCCB; }
/* Intro a pantalla completa */
#om-intro { position: fixed; inset: 0; z-index: 9999; background: #07080C; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 34px; cursor: pointer; overflow: hidden; transition: opacity .45s ease; font-family: 'Outfit', system-ui, sans-serif; }
#om-intro.out { opacity: 0; }
#om-intro .oi-core { --oi: min(340px, 70vw); animation: oiIn 1s cubic-bezier(.2,.8,.2,1) both; }
@keyframes oiIn { from { opacity: 0; transform: scale(.7); } to { opacity: 1; transform: none; } }
#om-intro .oi-brand { opacity: 0; transform: translateY(10px); transition: opacity .8s ease, transform .8s ease; } #om-intro.ready .oi-brand { opacity: 1; transform: none; }
.oi-planes i { position: absolute; display: block; animation: oiPlane 1s cubic-bezier(.2,.8,.2,1) both; }
.oi-planes i:nth-child(1) { left: -80px; bottom: 16%; width: 40vw; height: 110px; background: #12151D; clip-path: polygon(0 0, 88% 0, 100% 100%, 0 100%); }
.oi-planes i:nth-child(2) { left: -40px; bottom: 9%; width: 30vw; height: 54px; background: #0F3A38; clip-path: polygon(0 0, 85% 0, 100% 100%, 0 100%); animation-delay: .15s; }
.oi-planes i:nth-child(3) { right: -60px; top: 10%; width: 36vw; height: 100px; background: #12151D; clip-path: polygon(12% 0, 100% 0, 100% 100%, 0 100%); animation-delay: .3s; }
.oi-planes i:nth-child(4) { right: -30px; top: 21%; width: 24vw; height: 40px; background: #2EE6D6; opacity: .85; clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%); animation-delay: .45s; }
@keyframes oiPlane { from { opacity: 0; transform: translateX(-60px); } }
.oi-skip { position: absolute; bottom: 22px; right: 26px; font: 11px ui-monospace, Menlo, monospace; letter-spacing: .15em; color: #565B70; text-transform: uppercase; }
/* Login dividido: núcleo Ω a la izquierda, formulario en gris grafito a la derecha */
.login { display: grid; grid-template-columns: minmax(0, 1fr) minmax(380px, 460px); place-items: stretch; padding: 0; }
.login-hero { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 40px; padding: 40px; min-width: 0; }
.login-hero .oi-core { --oi: min(360px, 34vw); }
.login-hero .oi-seg { animation: oiLoop 8s ease-in-out infinite; } .login-hero .oi-seg[data-i="1"] { animation-delay: 1s; } .login-hero .oi-seg[data-i="2"] { animation-delay: 2s; } .login-hero .oi-seg[data-i="3"] { animation-delay: 3s; }
@keyframes oiLoop { 0%, 8% { stroke-dasharray: 0 830; } 30%, 80% { stroke-dasharray: 199 830; } 100% { stroke-dasharray: 0 830; } }
.login-hero .oi-lab { animation: oiLab 8s ease-in-out infinite; } .login-hero .oi-l1 { animation-delay: 1s; } .login-hero .oi-l2 { animation-delay: 2s; } .login-hero .oi-l3 { animation-delay: 3s; }
@keyframes oiLab { 0%, 20% { color: #6B7288; border-color: #262A38; } 30%, 80% { color: #2EE6D6; border-color: #2EE6D6; } 100% { color: #6B7288; border-color: #262A38; } }
.login .box { width: auto; min-height: 100vh; border-radius: 0; border: 0; border-left: 1px solid #262A38; background: #14161E; display: flex; flex-direction: column; justify-content: center; padding: 48px 44px; box-shadow: none; overflow-y: auto; }
.login .box::before, .login .box::after { display: none; }
.login .box .om-lock { display: none; }
@media (max-width: 900px) {
  .login { grid-template-columns: 1fr; }
  .login-hero { display: none; }
  .login .box { min-height: 100vh; border-left: 0; padding: 32px 22px; }
  .login .box .om-lock { display: flex; }
}
@media (prefers-reduced-motion: reduce) { .oi-spin, .oi-spinr, .login-hero .oi-seg, .login-hero .oi-lab, #om-intro .oi-core, .oi-planes i { animation: none; } .login-hero .oi-seg { stroke-dasharray: 199 830; } }
.nav-es b { font-size: 12.5px !important; letter-spacing: .16em !important; }
.login h2.login-h { font-family: 'Syncopate', sans-serif; font-size: 15px; letter-spacing: .18em; text-transform: uppercase; color: #E9E6DF; margin: 0 0 6px; }
/* ---------- Presencia: saludo, atmósfera por hora, aviso de inactividad y despedida ---------- */
.oi-greet { font-family: 'Outfit', system-ui, sans-serif; font-size: clamp(18px, 2.2vw, 26px); font-weight: 300; color: #E9E6DF; letter-spacing: .02em; min-height: 1.3em; text-align: center; position: relative; }
.login-hero { position: relative; overflow: hidden; }
.login-hero .oi-planes i, #om-intro .oi-planes i { position: absolute; }
.login-hero .oi-planes i:nth-child(1) { width: 34vw; } .login-hero .oi-planes i:nth-child(3) { width: 26vw; } .login-hero .oi-planes i:nth-child(4) { width: 18vw; }
.login-hero > .oi-core, .login-hero > .oi-brand { position: relative; z-index: 1; }
/* Mañana: un amanecer suave en los planos */
.om-dawn .oi-planes i:nth-child(2) { background: #3A2418; } .om-dawn .oi-planes i:nth-child(4) { background: #F4A27A; opacity: .7; }
.om-dawn .oi-planes i:nth-child(1), .om-dawn .oi-planes i:nth-child(3) { background: #16131A; }
/* Noche: más oscuro y el núcleo brilla */
.om-night .oi-planes i:nth-child(1), .om-night .oi-planes i:nth-child(3) { background: #0C0E14; } .om-night .oi-planes i:nth-child(2) { background: #0B2624; } .om-night .oi-planes i:nth-child(4) { opacity: .35; }
.om-night .oi-disc { box-shadow: 0 0 70px rgba(46, 230, 214, .22); }
/* Aviso de inactividad */
.om-idle { position: fixed; inset: 0; z-index: 9998; background: rgba(7, 8, 12, .78); display: grid; place-items: center; padding: 20px; }
.om-idle-box { background: #12151D; border: 1px solid #2C3046; border-radius: 6px; padding: 28px; width: min(420px, 100%); color: #E9E6DF; display: flex; flex-direction: column; gap: 12px; text-align: center; font-family: 'Outfit', system-ui, sans-serif; }
.om-idle-box b { font-size: 22px; font-weight: 600; } .om-idle-box p { margin: 0; color: #B7BCCB; } .om-idle-c { font-family: ui-monospace, Menlo, monospace; color: #FF8A9C; }
.om-idle-box .btn.primary { justify-content: center; background: #2EE6D6; border-color: #2EE6D6; color: #07080C; min-height: 44px; }
/* Despedida */
.om-bye { position: fixed; inset: 0; z-index: 10000; background: #07080C; color: #E9E6DF; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; text-align: center; padding: 20px; font-family: 'Outfit', system-ui, sans-serif; transition: opacity .4s ease; }
.om-bye.out { opacity: 0; }
.om-bye img { width: 110px; height: 110px; animation: omBye 1.6s ease forwards; }
@keyframes omBye { 0% { opacity: 1; transform: scale(1); } 100% { opacity: .15; transform: scale(.85); } }
.om-bye b { font-size: clamp(22px, 3vw, 32px); font-weight: 500; } .om-bye p { margin: 0; color: #B7BCCB; }
@media (prefers-reduced-motion: reduce) { .om-bye img { animation: none; } }
/* ---------- Inicio: mini brief del día y tarjetas por cliente ---------- */
.in-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 16px; }
.in-hi, .in-brief { background: var(--white); border: 1px solid var(--line); border-radius: 6px; padding: 20px 22px; position: relative; }
.in-hi::before, .in-brief::before { content: ''; position: absolute; left: -1px; top: -1px; width: 14px; height: 14px; border-left: 2px solid #2EE6D6; border-top: 2px solid #2EE6D6; }
.in-date { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.in-hi h2 { font-family: 'Cinzel', serif; font-size: 30px; text-transform: none; letter-spacing: .02em; margin: 6px 0 8px; }
.in-hi p { margin: 0 0 12px; color: var(--muted); line-height: 1.5; } .in-hi p b { color: var(--ink); }
.in-health { display: flex; gap: 8px; flex-wrap: wrap; }
.in-bh { display: flex; align-items: baseline; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; } .in-bh b { font-size: 16px; flex: 1; }
.in-k { font-family: 'Noto Sans JP', sans-serif; font-weight: 700; color: #FF2E4D; }
.in-brief ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.in-bi { display: flex; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 4px; border: 1px solid var(--line); text-decoration: none; color: var(--ink); min-height: 44px; transition: border-color .15s, transform .15s; }
.in-bi:hover { border-color: #2EE6D6; transform: translateX(2px); }
.in-dot { width: 10px; height: 10px; border-radius: 50%; flex: none; background: #8B93A7; }
.in-critical .in-dot { background: #FF2E4D; } .in-risk .in-dot { background: #FF5C74; } .in-watch .in-dot { background: #8B93A7; } .in-good .in-dot { background: #2EE6D6; }
.in-bt { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; } .in-bt b { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.in-go { font-size: 22px; color: var(--muted); } .in-ok { margin: 6px 0 0; color: #2EE6D6; }
.in-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; align-items: start; }
.in-card { display: flex; flex-direction: column; gap: 8px; padding: 16px 18px; border-radius: 6px; background: var(--white); border: 1px solid var(--line); border-top: 3px solid #8B93A7; text-decoration: none; color: var(--ink); transition: transform .15s, border-color .15s; }
.in-card:hover { transform: translateY(-2px); border-color: #2EE6D6; }
.in-card.in-critical { border-top-color: #FF2E4D; } .in-card.in-risk { border-top-color: #FF5C74; } .in-card.in-good { border-top-color: #2EE6D6; }
.in-kpi { display: flex; justify-content: space-between; align-items: baseline; } .in-kpi span { font-size: 12px; color: var(--muted); } .in-kpi b { font-family: ui-monospace, Menlo, monospace; font-size: 22px; font-weight: 500; }
.in-bar { position: relative; height: 6px; border-radius: 3px; background: var(--line); } .in-bar i { position: absolute; inset: 0 auto 0 0; border-radius: 3px; background: #2EE6D6; } .in-bar em { position: absolute; top: -4px; bottom: -4px; width: 2px; background: var(--ink); }
.in-link { font-size: 13px; color: #2EE6D6; font-weight: 500; }
@media (max-width: 900px) { .in-hero { grid-template-columns: minmax(0, 1fr); } }
.in-hero > *, .in-bi, .in-cards > * { min-width: 0; }
/* ---------- Bienvenida (una vez por persona) ---------- */
.om-wel { position: fixed; inset: 0; z-index: 9997; display: grid; grid-template-columns: minmax(0, 1fr) minmax(380px, 560px); background: #07080C; color: #E9E6DF; font-family: 'Outfit', system-ui, sans-serif; transition: opacity .35s ease; }
.om-wel.out { opacity: 0; }
.om-wel-l { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 36px; padding: 40px; }
.om-wel-l > .oi-core, .om-wel-l > .oi-brand { position: relative; z-index: 1; } .om-wel-l .oi-core { --oi: min(340px, 32vw); }
.om-wel-l .oi-seg { animation: oiLoop 8s ease-in-out infinite; } .om-wel-l .oi-seg[data-i="1"] { animation-delay: 1s; } .om-wel-l .oi-seg[data-i="2"] { animation-delay: 2s; } .om-wel-l .oi-seg[data-i="3"] { animation-delay: 3s; }
.om-wel-l .oi-lab { animation: oiLab 8s ease-in-out infinite; } .om-wel-l .oi-l1 { animation-delay: 1s; } .om-wel-l .oi-l2 { animation-delay: 2s; } .om-wel-l .oi-l3 { animation-delay: 3s; }
.om-wel-r { background: #14161E; border-left: 1px solid #262A38; overflow-y: auto; display: flex; align-items: center; }
.om-wel-in { padding: 44px 44px 40px; display: flex; flex-direction: column; gap: 14px; }
.om-wel-k { font: 500 11px ui-monospace, Menlo, monospace; letter-spacing: .2em; text-transform: uppercase; color: #2EE6D6; }
.om-wel h2 { font-family: 'Cinzel', serif; font-weight: 600; font-size: 30px; letter-spacing: .03em; line-height: 1.2; margin: 0; text-transform: none; color: #E9E6DF; }
.om-wel-lead { margin: 0; font-size: 16px; line-height: 1.55; color: #B7BCCB; } .om-wel-lead b { color: #E9E6DF; font-weight: 500; }
.om-wel-st { list-style: none; margin: 6px 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.om-wel-st li { display: flex; gap: 14px; align-items: flex-start; }
.om-wel-jp { font-family: 'Noto Sans JP', sans-serif; font-weight: 700; font-size: 18px; color: #FF2E4D; min-width: 64px; }
.om-wel-st b { font-family: 'Syncopate', sans-serif; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; } .om-wel-es { font-size: 12px; color: #8B93A7; }
.om-wel-st p { margin: 3px 0 0; font-size: 14px; line-height: 1.45; color: #B7BCCB; }
.om-wel-h, .om-wel-why { margin: 0; font-size: 14px; line-height: 1.5; color: #B7BCCB; padding: 12px 14px; border: 1px solid #262A38; border-radius: 4px; } .om-wel-h b { color: #2EE6D6; } .om-wel-why b { color: #E9E6DF; }
.om-wel-go { align-self: flex-start; min-height: 46px; padding: 0 28px; border: 0; border-radius: 4px; background: #2EE6D6; color: #07080C; font: 600 16px 'Outfit', system-ui, sans-serif; cursor: pointer; margin-top: 4px; }
.om-wel-go:hover { background: #5FF0E3; } .om-wel-go:focus-visible { outline: 3px solid #E9E6DF; outline-offset: 3px; }
.side .who #wq { display: inline-flex; gap: 6px; align-items: center; margin-top: 6px; background: none; border: 0; color: #2EE6D6; padding: 0; cursor: pointer; font: inherit; font-size: 13px; }
.in-hero { align-items: start; }
.in-bt > span.sm:last-child { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.om-wel .oi-brand b, .om-wel .oi-by span { color: #E9E6DF !important; } .om-wel .oi-disc { background: #0B0D12 !important; }
.om-wel-jp { min-width: 80px; white-space: nowrap; }
/* Explicación al pasar el mouse por cada concepto (login, bienvenida) */
[data-tip] { cursor: help; }
.oi-brand [data-tip] { position: relative; }
.login-hero [data-tip]:hover::after, .om-wel-l [data-tip]:hover::after { content: attr(data-tip); position: absolute; z-index: 5; width: 270px; padding: 12px 14px; background: #12151D; color: #E9E6DF; border: 1px solid #2EE6D6; border-radius: 4px; font: 400 13px/1.45 'Outfit', system-ui, sans-serif; letter-spacing: 0; text-transform: none; white-space: normal; text-align: left; box-shadow: 0 12px 30px rgba(0,0,0,.5); pointer-events: none; }
.login-hero .oi-l0:hover::after, .om-wel-l .oi-l0:hover::after { top: calc(100% + 8px); right: 0; }
.login-hero .oi-l3:hover::after, .om-wel-l .oi-l3:hover::after { top: calc(100% + 8px); left: 0; }
.login-hero .oi-l1:hover::after, .om-wel-l .oi-l1:hover::after { bottom: calc(100% + 8px); right: 0; }
.login-hero .oi-l2:hover::after, .om-wel-l .oi-l2:hover::after { bottom: calc(100% + 8px); left: 0; }
.login-hero .oi-disc:hover::after, .om-wel-l .oi-disc:hover::after { top: calc(100% + 14px); left: 50%; transform: translateX(-50%); }
.login-hero .oi-brand [data-tip]:hover::after, .om-wel-l .oi-brand [data-tip]:hover::after { top: calc(100% + 10px); left: 50%; transform: translateX(-50%); font-size: 13px; }
.login-hero .oi-lab:hover, .om-wel-l .oi-lab:hover { color: #2EE6D6; border-color: #2EE6D6; animation-play-state: paused; }
.oi-core .oi-lab, .oi-core .oi-disc { z-index: 2; }
/* Login en celular: arriba el núcleo Ω cargando (igual que en escritorio, más pequeño); abajo el formulario */
@media (max-width: 900px) {
  .login { grid-template-columns: 1fr; grid-template-rows: auto 1fr; min-height: 100vh; min-height: 100dvh; }
  .login-hero { display: flex; gap: 18px; padding: 36px 20px 22px; }
  .login-hero .oi-core { --oi: min(250px, 58vw); }
  .login-hero .oi-lab { font-size: 9.5px; padding: 4px 6px; letter-spacing: .1em; }
  .login-hero .oi-l0, .login-hero .oi-l1 { right: -14%; } .login-hero .oi-l2, .login-hero .oi-l3 { left: -14%; }
  .login-hero .oi-brand b { font-size: 34px; } .login-hero .oi-by i { width: 36px; } .login-hero .oi-brand p { font-size: 14px; }
  .login-hero .oi-planes i:nth-child(1) { width: 70vw; height: 70px; } .login-hero .oi-planes i:nth-child(2) { width: 50vw; height: 34px; }
  .login-hero .oi-planes i:nth-child(3) { width: 60vw; height: 60px; } .login-hero .oi-planes i:nth-child(4) { width: 40vw; height: 26px; }
  .login .box { min-height: 0; border-left: 0; border-top: 1px solid #262A38; justify-content: flex-start; padding: 26px 22px 40px; }
  .login .box .om-lock { display: none; }
  .om-wel { grid-template-columns: 1fr; grid-template-rows: auto 1fr; overflow-y: auto; }
  .om-wel-l { display: flex; padding: 28px 20px 12px; gap: 14px; } .om-wel-l .oi-core { --oi: min(200px, 50vw); } .om-wel-l .oi-brand { display: none; }
  .om-wel-l .oi-lab { font-size: 9px; padding: 3px 5px; } .om-wel-l .oi-l0, .om-wel-l .oi-l1 { right: -22%; } .om-wel-l .oi-l2, .om-wel-l .oi-l3 { left: -22%; }
  .om-wel-r { border-left: 0; border-top: 1px solid #262A38; }
}

/* ---------- Celular: barra superior fija + menú completo con nombres (sin íconos sueltos) ---------- */
.m-bar, .m-close { display: none; }
@media (max-width: 900px) {
  .shell { grid-template-columns: 1fr; }
  .m-bar { display: flex; align-items: center; gap: 8px; position: sticky; top: 0; z-index: 60; padding: 10px 14px; padding-top: max(10px, env(safe-area-inset-top)); background: #0B0D12; border-bottom: 1px solid #1E222E; color: #E9E6DF; }
  .m-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: inherit; margin-right: auto; }
  .m-brand img { width: 34px; height: 34px; } .m-brand b { font-family: 'Cinzel', serif; font-weight: 600; font-size: 19px; letter-spacing: .2em; }
  .m-bar button { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 12px; border-radius: 4px; border: 1px solid #2C3046; background: #12151D; color: #E9E6DF; font: 500 14px 'Outfit', system-ui, sans-serif; cursor: pointer; }
  .m-bar #m-menu { border-color: #2EE6D6; color: #2EE6D6; }
  .side { display: none; position: fixed; inset: 0; z-index: 70; height: 100dvh; width: 100%; padding: 14px 16px 28px; padding-top: max(14px, env(safe-area-inset-top)); overflow-y: auto; flex-direction: column; background: #0B0D12; }
  .shell.m-open .side { display: flex; } body.m-lock { overflow: hidden; }
  .side .brand.om-side { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
  .m-close { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 4px; border: 1px solid #2C3046; background: #12151D; color: #E9E6DF; font-size: 22px; cursor: pointer; }
  .nav { flex-direction: column; flex-wrap: nowrap; }
  .nav a { padding: 12px 14px; font-size: 16px; min-height: 44px; } .nav a span.l { display: inline; } .nav a.nav-sub { padding-left: 46px; font-size: 15px; }
  .nav-grp { display: flex; flex-direction: column; } .nav-grp:not(.open) .nav-items { display: none; } .nav-items { display: flex; flex-direction: column; }
  button.nav-sec { display: flex; min-height: 52px; width: 100%; }
  .nav-jp { font-size: 20px; min-width: 64px; } .nav-es b { font-size: 14px !important; } .nav-es small { font-size: 13px; }
  .side .who { display: block; margin-top: 18px; }
  .top { position: static; padding: 14px 16px; gap: 10px; } .top h1 { font-size: 14px; line-height: 1.3; } .top .sub { font-size: 12px; }
  .top > .grow { display: none; } .top #mlabel { display: none; } .top #mm { flex: 1; min-width: 0; } .top #sync { flex: none; }
  .page { padding: 16px 14px 60px; }
  .card { padding: 14px; }
  .sg-item { grid-template-columns: 56px minmax(0, 1fr); } .sg-go { grid-column: 1 / -1; justify-self: end; }
  .sg-head .row > a.btn { width: 100%; justify-content: center; }
  .in-hi h2 { font-size: 24px; } .in-cards { grid-template-columns: 1fr; }
  /* Bienvenida en celular: Ω arriba fijo con X; botón Empezar siempre visible abajo */
  .om-wel { display: block; overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; }
  .om-wel-l { overflow: hidden; }
  .om-wel-top { display: flex; position: sticky; top: 0; z-index: 3; align-items: center; gap: 10px; padding: 10px 16px; padding-top: max(10px, env(safe-area-inset-top)); background: #07080C; border-bottom: 1px solid #1E222E; }
  .om-wel-top img { width: 32px; height: 32px; } .om-wel-top b { font-family: 'Cinzel', serif; font-weight: 600; font-size: 18px; letter-spacing: .2em; margin-right: auto; }
  .om-wel-l { display: flex; padding: 22px 20px 6px; gap: 10px; } .om-wel-l .oi-core { --oi: min(190px, 48vw); } .om-wel-l .oi-brand { display: none; } .om-wel-l .oi-planes { display: none; }
  .om-wel-l .oi-lab { font-size: 9px; padding: 3px 5px; } .om-wel-l .oi-l0, .om-wel-l .oi-l1 { right: -24%; } .om-wel-l .oi-l2, .om-wel-l .oi-l3 { left: -24%; }
  .om-wel-r { border-left: 0; overflow: visible; display: block; } .om-wel-in { padding: 18px 18px 0; } .om-wel h2 { font-size: 24px; }
  .om-wel-jp { min-width: 0; font-size: 16px; } .om-wel-st li { flex-direction: column; gap: 2px; }
  .om-wel-go { position: sticky; bottom: 0; align-self: stretch; width: 100%; margin: 8px 0 0; min-height: 52px; border-radius: 0; box-shadow: 0 -12px 24px #14161E; padding-bottom: env(safe-area-inset-bottom); z-index: 3; }
}
@media (min-width: 901px) { .om-wel-top { display: none; } }
.om-wel-top .m-close { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 4px; border: 1px solid #2C3046; background: #12151D; color: #E9E6DF; font-size: 20px; cursor: pointer; }
@media (max-width: 900px) {
  .top > div:first-child { flex: 1 1 100%; min-width: 0; }
  .top #mm { flex: 1 1 auto; } .top #sync { flex: 0 0 auto; }
  .in-bh b { flex: 1 1 auto; } .in-bh a { flex: 1 1 100%; }
  .sg-main { min-width: 0; } .sg-main b { overflow-wrap: anywhere; } .sg-item { overflow: hidden; }
}
@media (max-width: 900px) { .tabs { max-width: 100%; overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; scrollbar-width: thin; } .tabs > * { flex: none; } }
@media (max-width: 900px) { .main { overflow-x: clip; } }
.login-hero [data-tip]:hover::after, .om-wel-l [data-tip]:hover::after { white-space: pre-line; width: 300px; }
/* Intro: escenario, modo cine (primera vez) y "Saltar intro" a los 3 s */
#om-intro { cursor: default; gap: 26px; padding: 24px; }
.oi-stage { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; gap: 48px; }
#om-intro .oi-greet, #om-intro .oi-brand, #om-intro .oi-note { position: relative; z-index: 1; }
.oi-skip { position: fixed; right: 26px; bottom: 22px; z-index: 3; min-height: 44px; padding: 0 18px; border-radius: 4px; border: 1px solid #2C3046; background: rgba(18, 21, 29, .85); color: #B7BCCB; font: 500 13px 'Outfit', system-ui, sans-serif; letter-spacing: .06em; cursor: pointer; opacity: 0; pointer-events: none; transition: opacity .4s ease; }
#om-intro.can-skip .oi-skip { opacity: 1; pointer-events: auto; } .oi-skip:hover { color: #E9E6DF; border-color: #2EE6D6; }
.oi-note { margin: 0; max-width: 560px; text-align: center; font-size: 16px; line-height: 1.5; color: #2EE6D6; opacity: 0; transform: translateY(6px); transition: opacity .6s ease .3s, transform .6s ease .3s; }
#om-intro.ready.has-note .oi-note { opacity: 1; transform: none; cursor: pointer; } .oi-note:hover { text-decoration: underline; }
/* Modo cine: el Ω mucho más grande y la explicación de cada etapa al lado */
#om-intro.oi-cine .oi-core { --oi: min(520px, 62vh, 52vw); }
.oi-explain { width: min(380px, 34vw); min-height: 220px; white-space: pre-line; font: 400 17px/1.55 'Outfit', system-ui, sans-serif; color: #E9E6DF; padding: 22px 24px; border: 1px solid #1E5E5A; border-left: 3px solid #2EE6D6; background: rgba(11, 13, 18, .85); border-radius: 4px; opacity: 0; transform: translateX(14px); transition: opacity .5s ease, transform .5s ease; }
.oi-explain.in { opacity: 1; transform: none; }
.oi-explain::first-line { font-family: 'Syncopate', sans-serif; font-weight: 700; font-size: 15px; letter-spacing: .14em; color: #FF2E4D; }
#om-intro.oi-cine .oi-brand b { font-size: clamp(36px, 5vw, 64px); }
#om-intro.oi-cine:not(.ready) .oi-brand { opacity: 0; }
@media (max-width: 900px) {
  .oi-skip { top: max(14px, env(safe-area-inset-top)); bottom: auto; right: 14px; }
  .oi-stage { flex-direction: column; gap: 18px; }
  #om-intro.oi-cine .oi-core { --oi: min(300px, 70vw, 40vh); }
  .oi-explain { width: min(92vw, 420px); min-height: 0; font-size: 14.5px; padding: 14px 16px; transform: translateY(10px); }
  #om-intro .oi-greet { margin-top: 40px; }
  #om-intro { justify-content: flex-start; overflow-y: auto; }
}
@media (prefers-reduced-motion: reduce) { .oi-explain, .oi-note, .oi-skip { transition: none; } }
/* Inicio: la columna del saludo se completa con el pulso del mes (sin huecos) */
.in-hero { align-items: stretch; }
.in-left { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.in-pulse { flex: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-content: stretch; }
.in-tile { display: flex; flex-direction: column; justify-content: center; gap: 4px; padding: 16px 18px; background: var(--white); border: 1px solid var(--line); border-radius: 6px; color: var(--ink); text-decoration: none; min-height: 96px; }
.in-tile span { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.in-tile b { font-family: ui-monospace, Menlo, monospace; font-size: 28px; font-weight: 500; line-height: 1.1; }
.in-tile small { font-size: 12.5px; color: var(--muted); }
.in-tile-a { grid-column: 1 / -1; border-color: #1E5E5A; } .in-tile-a small { color: #2EE6D6; } .in-tile-a:hover { border-color: #2EE6D6; }
@media (max-width: 900px) { .in-tile b { font-size: 22px; } .in-tile { min-height: 0; padding: 12px 14px; } }
/* En celular: saludo, luego el mini brief (lo más útil) y después el pulso del mes */
@media (max-width: 900px) { .in-left { display: contents; } .in-hi { order: 1; } .in-brief { order: 2; } .in-pulse { order: 3; } }
/* Conexiones: panel de estado por plataforma */
.cx-intro { display: flex; flex-direction: column; gap: 4px; margin-bottom: 14px; } .cx-intro b { font-size: 16px; }
.cx-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 460px), 1fr)); gap: 14px; align-items: start; }
.cx-card { background: var(--white); border: 1px solid var(--line); border-top: 3px solid #5A6178; border-radius: 6px; padding: 16px 18px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.cx-card.cx-ok { border-top-color: #2EE6D6; } .cx-card.cx-warn { border-top-color: #FF5C74; } .cx-card.cx-bad { border-top-color: #FF2E4D; }
.cx-h { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; } .cx-h > div { display: flex; flex-direction: column; } .cx-h b { font-size: 17px; }
.cx-st { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; white-space: nowrap; } .cx-st i { width: 10px; height: 10px; border-radius: 50%; background: #5A6178; }
.cx-ok .cx-st { color: #2EE6D6; } .cx-ok .cx-st i { background: #2EE6D6; } .cx-warn .cx-st { color: #FF8A9C; } .cx-warn .cx-st i { background: #FF5C74; } .cx-bad .cx-st { color: #FF6B80; } .cx-bad .cx-st i { background: #FF2E4D; }
.cx-wait .cx-st i { animation: cxPulse 1s ease-in-out infinite alternate; } @keyframes cxPulse { to { opacity: .3; } }
.cx-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px 18px; } .cx-grid > div { display: flex; flex-direction: column; gap: 4px; min-width: 0; } .cx-acc { grid-column: 1 / -1; }
.cx-k { font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); } .cx-old { color: #FF8A9C; }
.cx-can { list-style: none; margin: 0; padding: 0; font-size: 14px; } .cx-can .y { color: #2EE6D6; } .cx-can .n { color: var(--muted); }
.cx-tags { display: flex; flex-wrap: wrap; gap: 6px; } .cx-tags span { font-size: 12.5px; padding: 3px 9px; border-radius: 99px; border: 1px solid var(--line); }
.cx-issue { margin: 0; font-size: 13.5px; padding: 10px 12px; border-radius: 4px; border: 1px solid rgba(255, 46, 77,.45); background: rgba(255, 46, 77,.08); color: #FF8A9C; line-height: 1.45; }
.cx-bad .cx-issue { border-color: rgba(255,46,77,.5); background: rgba(255,46,77,.08); color: #FF8A99; }
.cx-msg { margin: 0; font-size: 13px; color: #2EE6D6; }
.cx-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.cx-raw summary { cursor: pointer; font-size: 12.5px; color: var(--muted); } .cx-raw pre { font-size: 11.5px; max-height: 300px; overflow: auto; white-space: pre-wrap; margin: 8px 0 0; padding: 10px; border-radius: 4px; background: var(--bg); }
.in-conn { display: block; margin: 0 0 14px; padding: 12px 16px; border-radius: 4px; border: 1px solid rgba(255, 46, 77,.45); background: rgba(255, 46, 77,.08); color: #FF8A9C; text-decoration: none; font-size: 14px; } .in-conn span { text-decoration: underline; }
@media (max-width: 900px) { .cx-grid { grid-template-columns: 1fr; } }

/* Montar en pausa (diálogo de lanzamiento) y su registro */
.lz-back { position: fixed; inset: 0; z-index: 9990; background: rgba(7,8,12,.62); display: grid; place-items: center; padding: 16px; overflow-y: auto; }
.lz { width: min(760px, 100%); max-height: calc(100vh - 32px); overflow-y: auto; background: #fff; color: var(--ink); border-radius: 16px; box-shadow: 0 20px 60px rgba(0,0,0,.35); padding: 20px 22px; }
.lz-h { display: flex; gap: 12px; align-items: flex-start; justify-content: space-between; }
.lz-h h2 { margin: 2px 0 0; font-size: 20px; }
.lz-k { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.lz-x { border: 0; background: transparent; font-size: 20px; cursor: pointer; color: var(--muted); min-width: 40px; min-height: 40px; }
.lz-rule { display: flex; gap: 8px; align-items: flex-start; background: var(--amber-bg); color: var(--amber); border-radius: 10px; padding: 10px 12px; font-size: 13px; margin: 12px 0; }
.lz-g { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; }
.lz-g .in { width: 100%; }
.lz-wide { grid-column: 1 / -1; }
.lz-h4 { margin: 14px 0 6px; font-size: 14px; }
.lz-groups { display: grid; gap: 6px; }
.lz-grp { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; font-size: 13px; }
.lz-grp .grow { word-break: break-all; min-width: 0; flex: 1 1 200px; }
.lz .btn:disabled { opacity: .45; cursor: not-allowed; }
.lz-res { margin-top: 14px; border-radius: 12px; padding: 12px 14px; font-size: 13px; border: 1px solid var(--line); }
.lz-res.ok { background: var(--green-bg); border-color: transparent; }
.lz-res.bad { background: var(--red-bg); border-color: transparent; color: var(--red); }
.lz-plan { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 12px; margin: 10px 0; color: var(--ink); }
.lz-plan dt { font-weight: 600; text-transform: capitalize; }
.lz-plan dd { margin: 0; word-break: break-word; }
.lz-plan ul { margin: 0; padding-left: 18px; }
.lz-ok { display: flex; gap: 8px; align-items: flex-start; margin: 14px 0 0; font-size: 13px; }
.lz-act { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 12px; }
.lz-btn { margin-top: 10px; }
@media (max-width: 640px) { .lz { padding: 16px; } .lz-g { grid-template-columns: 1fr; } .lz-act .btn { flex: 1 1 100%; justify-content: center; } }

/* Histórico de control interno (pantalla completa) */
.hx { position: fixed; inset: 0; z-index: 9995; background: #fff; color: var(--ink); display: flex; flex-direction: column; }
.hx-top { display: flex; gap: 16px; align-items: flex-start; padding: 18px 24px 10px; border-bottom: 1px solid var(--line); }
.hx-top h2 { margin: 2px 0 6px; font-size: 20px; }
.hx-k { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.hx-lock { display: flex; gap: 8px; align-items: flex-start; margin: 0; font-size: 13px; color: var(--muted); max-width: 900px; }
.hx-x { border: 0; background: transparent; font-size: 22px; cursor: pointer; color: var(--muted); min-width: 44px; min-height: 44px; }
.hx-bar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; padding: 10px 24px; border-bottom: 1px solid var(--line); }
.hx-bar .in { min-width: 220px; }
.hx-f { display: inline-flex; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.hx-f button { border: 0; background: transparent; padding: 8px 12px; cursor: pointer; color: var(--ink); font: inherit; font-size: 13px; min-height: 38px; }
.hx-f button[aria-pressed="true"] { background: var(--navy); color: #fff; }
.hx-f b { font-weight: 600; opacity: .7; margin-left: 4px; }
.hx-body { flex: 1; overflow-y: auto; padding: 8px 24px 40px; }
.hx-day h3 { position: sticky; top: 0; background: #fff; margin: 0; padding: 14px 0 8px; font-size: 13px; text-transform: capitalize; color: var(--muted); z-index: 1; }
.hx-day ol { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--line); }
.hx-it { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 12px; padding: 10px 0 10px 14px; position: relative; }
.hx-it::before { content: ''; position: absolute; left: -6px; top: 16px; width: 10px; height: 10px; border-radius: 50%; background: var(--cyan); }
.hx-it time { font-size: 13px; color: var(--muted); padding-top: 2px; }
.hx-h { display: flex; gap: 8px; flex-wrap: wrap; align-items: baseline; font-size: 14px; }
.hx-src { font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; border-radius: 6px; padding: 2px 7px; }
.hx-omega { background: #e6fbf9; color: #0b6e66; }
.hx-meta { background: #e8eefc; color: #1d3f9a; }
.hx-google { background: #fff1d6; color: #9a5b00; }
.hx-d { margin: 4px 0 0; font-size: 13px; color: var(--muted); word-break: break-word; }
.hx-t { margin-top: 8px; border-collapse: collapse; font-size: 12.5px; width: 100%; max-width: 820px; }
.hx-t th, .hx-t td { text-align: left; padding: 5px 8px; border-bottom: 1px solid var(--line); vertical-align: top; word-break: break-word; }
.hx-t th { color: var(--muted); font-weight: 600; }
.hx-old { color: var(--red); text-decoration: line-through; text-decoration-color: rgba(192,36,58,.35); }
.hx-new { color: var(--green); }
.hx-empty { color: var(--muted); padding: 30px 0; }
@media (max-width: 640px) { .hx-top, .hx-bar, .hx-body { padding-left: 16px; padding-right: 16px; } .hx-it { grid-template-columns: 1fr; gap: 2px; } .hx-bar .in { min-width: 0; flex: 1 1 100%; } .hx-t { display: block; overflow-x: auto; } }

/* Media Kit dentro de OMEGA */
.mki-bar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; }
.mki-frame { width: 100%; height: calc(100vh - 250px); min-height: 620px; border: 1px solid var(--line); border-radius: var(--r); background: #07080C; }
.mki-reqs { display: grid; gap: 12px; }
.mki-opt { display: flex; gap: 6px; align-items: center; margin: 3px 0; } .mki-opt .in { width: 84px; min-width: 0; } .mki-opt b { min-width: 40px; }
.mki-rates td { vertical-align: top; }

/* ---------- Research · Puerto Rico en datos ---------- */
.rs-empty { text-align: left; } .rs-empty .btn { margin-top: 8px; }
.rs-src { display: flex; gap: 6px; align-items: flex-start; font-size: 12px; color: var(--muted); margin: 12px 2px 0; }
.rs-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; margin-bottom: 14px; }
.rs-kpi { background: #fff; border-radius: 12px; box-shadow: var(--shadow); padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; }
.rs-kpi span { font-size: 12px; color: var(--muted); } .rs-kpi b { font-size: 22px; font-variant-numeric: tabular-nums; } .rs-kpi small { font-size: 11px; color: var(--muted); line-height: 1.3; }
.rs-two { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.rs-pyr { display: flex; flex-direction: column; gap: 4px; margin-top: 10px; }
.rs-pyr-h, .rs-pyr-r { display: grid; grid-template-columns: 1fr 52px 1fr; gap: 6px; align-items: center; font-size: 12px; }
.rs-pyr-h span:first-child { text-align: right; color: var(--muted); } .rs-pyr-h span:last-child { color: var(--muted); }
.rs-pyr-r > span { text-align: center; font-variant-numeric: tabular-nums; color: var(--muted); }
.rs-bar { position: relative; height: 18px; display: flex; align-items: center; } .rs-bar.m { justify-content: flex-end; }
.rs-bar i { display: block; height: 100%; border-radius: 4px; } .rs-bar.m i { background: #1f9fe0; } .rs-bar.f i { background: #e5487f; }
.rs-bar em { font-style: normal; font-size: 11px; position: absolute; color: var(--ink); } .rs-bar.m em { left: 0; } .rs-bar.f em { right: 0; }
.rs-hbars { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; }
.rs-hb { display: grid; grid-template-columns: minmax(120px, 210px) 1fr 52px; gap: 8px; align-items: center; font-size: 13px; }
.rs-hb div { background: var(--gray); border-radius: 4px; height: 12px; } .rs-hb i { display: block; height: 100%; background: #6f7cff; border-radius: 4px; } .rs-hb b { text-align: right; font-variant-numeric: tabular-nums; }
.rs-mapwrap { display: grid; grid-template-columns: 1fr 320px; gap: 14px; margin-top: 10px; align-items: start; }
.rs-map svg { width: 100%; height: auto; display: block; }
.rs-map path { stroke: #fff; stroke-width: .8; cursor: pointer; transition: opacity .15s; } .rs-map path:hover, .rs-map path:focus-visible { opacity: .75; outline: none; } .rs-map path.on { stroke: var(--navy); stroke-width: 2.2; }
.rs-legend { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--muted); margin-top: 6px; } .rs-legend i { flex: 1; max-width: 220px; height: 8px; border-radius: 4px; }
.rs-mcard { border: 1px solid var(--line); border-radius: 12px; padding: 12px; font-size: 13px; }
.rs-mt { width: 100%; border-collapse: collapse; font-size: 12.5px; margin: 8px 0; } .rs-mt td, .rs-mt th { padding: 4px 2px; border-bottom: 1px solid var(--line); text-align: left; } .rs-mt .num { text-align: right; font-variant-numeric: tabular-nums; }
.rs-dlt { font-size: 10px; } .rs-dlt.up { color: var(--green); } .rs-dlt.dn { color: var(--red); }
.rs-rank { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 14px; } .rs-rank ol { list-style: none; padding: 0; margin: 6px 0 0; } .rs-rank li { display: flex; justify-content: space-between; gap: 8px; padding: 3px 0; border-bottom: 1px dashed var(--line); font-size: 13px; }
.linkish { border: 0; background: none; padding: 0; color: var(--violet); cursor: pointer; text-align: left; font: inherit; } .linkish:hover { text-decoration: underline; }
.rs-cats { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; } .rs-cats button { border: 1px solid var(--line); background: #fff; border-radius: 99px; padding: 4px 12px; cursor: pointer; font-size: 13px; min-height: 32px; } .rs-cats button[aria-pressed="true"] { background: var(--navy); color: #fff; border-color: var(--navy); }
.rs-it { width: 100%; border-collapse: collapse; font-size: 13px; } .rs-it th, .rs-it td { padding: 8px 6px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; } .rs-it .num { text-align: right; font-variant-numeric: tabular-nums; } .rs-it th { font-size: 12px; color: var(--muted); font-weight: 500; }
.rs-ab { display: flex; gap: 3px; align-items: flex-end; height: 38px; } .rs-ab span { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; width: 30px; }
.rs-ab i { display: block; width: 14px; background: #8a6cff; opacity: .45; border-radius: 3px 3px 0 0; } .rs-ab i.hi { opacity: 1; } .rs-ab i.lo { opacity: .2; } .rs-ab em { font-style: normal; font-size: 9px; color: var(--muted); white-space: nowrap; }
.rs-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; } .rs-x { border: 1px solid var(--violet); color: var(--violet); background: #f6efff; border-radius: 99px; padding: 3px 10px; font-size: 12.5px; cursor: pointer; min-height: 30px; }
.rs-big { display: flex; flex-direction: column; gap: 2px; margin: 8px 0 12px; } .rs-big b { font-size: 34px; color: var(--violet); font-variant-numeric: tabular-nums; } .rs-big small { color: var(--muted); }
.rs-warn { background: var(--amber-bg); color: var(--amber); border-radius: 10px; padding: 8px 12px; font-size: 13px; }
.rs-upg { display: grid; grid-template-columns: 1.3fr 1.3fr 1fr .5fr; gap: 10px; } .rs-upg label { display: flex; flex-direction: column; gap: 4px; }
.rs-lic { border: 1px solid var(--line); border-radius: 10px; margin: 12px 0; padding: 8px 12px; display: flex; flex-direction: column; gap: 6px; } .rs-lic label { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.rs-ft { width: 100%; border-collapse: collapse; font-size: 12.5px; } .rs-ft th, .rs-ft td { padding: 6px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; } .rs-ft .num { text-align: right; white-space: nowrap; }
.rs-study details summary { cursor: pointer; color: var(--violet); margin: 6px 0; }
.rs-sugg { margin: 8px 0; padding-left: 18px; display: flex; flex-direction: column; gap: 8px; }
@media (max-width: 980px) { .rs-two, .rs-mapwrap, .rs-rank { grid-template-columns: 1fr; } .rs-upg { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .rs-upg { grid-template-columns: 1fr; } .rs-hb { grid-template-columns: 110px 1fr 46px; } }
/* Research · Perfiles */
.rs-pfg { display: grid; grid-template-columns: 1.3fr 1fr; gap: 18px; } .rs-pfg label { font-weight: 500; }
.rs-x.on { background: var(--violet); color: #fff; }
.rs-pcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; margin-top: 8px; }
.rs-pcard { text-align: left; border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: 12px; cursor: pointer; display: flex; flex-direction: column; gap: 4px; font: inherit; color: inherit; min-height: 44px; } .rs-pcard:hover { border-color: #8a6cff; } .rs-pcard span { font-size: 13px; color: var(--muted); } .rs-pcard small { font-size: 11px; color: var(--muted); }
.rs-phead { margin: 6px 0 10px; } .rs-phead h2 { font-size: 26px; text-transform: none; letter-spacing: 0; margin: 2px 0; } .rs-frase { font-size: 16px; margin: 0 0 8px; }
.rs-retrato { font-size: 15px; line-height: 1.55; border-left: 4px solid #8a6cff; padding: 8px 14px; background: rgba(138,108,255,.07); border-radius: 0 10px 10px 0; }
.rs-pgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 14px; } .rs-pgrid section { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; }
.rs-gbar { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0; } .rs-gbar > div { flex: 1; min-width: 110px; border-radius: 10px; background: rgba(138,108,255,.08); padding: 8px 10px; display: flex; flex-direction: column; gap: 2px; } .rs-gbar span { font-size: 12px; color: var(--muted); } .rs-gbar b { font-size: 20px; }
.rs-ix { display: inline-block; font-size: 11px; font-weight: 600; border-radius: 6px; padding: 0 6px; background: rgba(120,130,160,.15); align-self: flex-start; } .rs-ix.hi { background: #e3f6ee; color: #0f8a5f; } .rs-ix.lo { background: #fde6e9; color: #c0243a; }
.rs-agebars { display: flex; gap: 6px; align-items: flex-end; height: 150px; margin-top: 8px; } .rs-agebars > div { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: 2px; font-size: 11px; } .rs-agebars i { display: block; width: 70%; background: #8a6cff; border-radius: 4px 4px 0 0; } .rs-agebars span { color: var(--muted); }
.rs-aff { display: flex; flex-direction: column; gap: 5px; margin-top: 8px; } .rs-aff > div { display: grid; grid-template-columns: minmax(120px, 190px) 1fr 40px; gap: 8px; align-items: center; font-size: 13px; } .rs-aff small { display: block; font-size: 10.5px; color: var(--muted); } .rs-aff > div > div { background: rgba(120,130,160,.15); border-radius: 4px; height: 10px; } .rs-aff i { display: block; height: 100%; background: #1f9fe0; border-radius: 4px; } .rs-aff b { text-align: right; font-variant-numeric: tabular-nums; }
.rs-medios { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; } .rs-medios > div { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; font-size: 13px; display: flex; flex-direction: column; gap: 4px; align-items: flex-start; } .rs-medios p { margin: 0; } .rs-medios small { font-size: 11px; color: var(--muted); }
.rs-ul { margin: 6px 0 12px; padding-left: 18px; } .rs-ul li { margin: 4px 0; }
@media (max-width: 980px) { .rs-pfg, .rs-pgrid { grid-template-columns: 1fr; } .rs-medios { grid-template-columns: 1fr; } }

/* ---------- Constructor por piezas (Lego) ---------- */
.lg-top { margin-bottom: 14px; } .lg-top kbd { font: 11px/1 ui-monospace, monospace; border: 1px solid var(--line); border-bottom-width: 2px; border-radius: 4px; padding: 1px 5px; }
.lg-rail { display: flex; gap: 4px; margin-top: 12px; flex-wrap: wrap; }
.lg-mini { flex: 1; min-width: 74px; border: 0; background: none; padding: 0; cursor: pointer; display: flex; flex-direction: column; gap: 4px; align-items: stretch; font: inherit; color: var(--muted); }
.lg-mini i { display: block; height: 12px; border-radius: 4px; background: rgba(120,130,160,.18); position: relative; transition: background .3s; }
.lg-mini.done i { background: var(--c); } .lg-mini.cur i { background: var(--c); opacity: .55; animation: lgpulse 1.4s infinite; }
.lg-mini span { font-size: 10.5px; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .lg-mini:disabled { cursor: not-allowed; opacity: .6; }
@keyframes lgpulse { 50% { opacity: 1; } }
.lg-stack { display: flex; flex-direction: column; gap: 0; padding-top: 10px; }
.lg-brick { position: relative; background: #fff; border-radius: 14px; margin-top: 14px; border: 2px solid transparent; box-shadow: 0 6px 0 rgba(20,37,109,.08), var(--shadow); transition: transform .25s, box-shadow .25s; }
.lg-brick::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 8px; border-radius: 12px 0 0 12px; background: var(--c); }
.lg-studs { position: absolute; top: -9px; left: 34px; display: flex; gap: 14px; } .lg-studs i { width: 26px; height: 10px; border-radius: 6px 6px 0 0; background: var(--c); box-shadow: inset 0 -2px 0 rgba(0,0,0,.15); }
.lg-brick.locked { opacity: .55; box-shadow: none; border: 2px dashed rgba(120,130,160,.35); } .lg-brick.locked::before, .lg-brick.locked .lg-studs i { background: rgba(120,130,160,.35); }
.lg-brick.on { border-color: var(--c); box-shadow: 0 8px 0 color-mix(in srgb, var(--c) 35%, transparent), var(--shadow); }
.lg-brick.done:not(.on) { background: color-mix(in srgb, var(--c) 9%, #fff); }
.lg-brick.snap { animation: lgsnap .45s cubic-bezier(.2,1.6,.4,1); }
@keyframes lgsnap { 0% { transform: translateY(-14px) scale(1.01); } 60% { transform: translateY(3px); } 100% { transform: none; } }
.lg-h { display: flex; align-items: center; gap: 10px; padding: 14px 16px 12px 22px; } .lg-h b { font-size: 15px; }
.lg-n { width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; font-weight: 700; font-size: 13px; color: #fff; background: var(--c); }
.lg-brick.locked .lg-n { background: rgba(120,130,160,.45); }
.lg-sum { font-size: 13px; color: var(--muted); max-width: 46%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lg-body { padding: 0 18px 8px 26px; } .lg-f { display: flex; align-items: center; gap: 10px; padding: 10px 16px 14px 26px; border-top: 1px dashed var(--line); }
.lg-err { color: var(--red); }
.lg-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; margin: 10px 0; }
.lg-tile { border: 2px solid var(--line); background: #fff; border-radius: 12px; padding: 10px 12px; text-align: left; cursor: pointer; font: inherit; color: inherit; display: flex; flex-direction: column; gap: 3px; min-height: 48px; transition: transform .15s, border-color .15s; }
.lg-tile:hover { transform: translateY(-2px); border-color: var(--pc, var(--c)); } .lg-tile small { font-size: 12px; color: var(--muted); } .lg-tile .lg-as { font-size: 11px; color: var(--pc, var(--c)); }
.lg-tile.big { min-height: 92px; } .lg-tile.sel { border-color: var(--pc, var(--c)); background: color-mix(in srgb, var(--pc, var(--c)) 12%, #fff); box-shadow: 0 4px 0 color-mix(in srgb, var(--pc, var(--c)) 40%, transparent); }
.lg-emo { font-size: 24px; line-height: 1; }
.lg-branches { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; margin: 6px 0 4px; }
.lg-branch, .lg-rv, .lg-split > div { border-left: 6px solid var(--pc); border-radius: 10px; background: color-mix(in srgb, var(--pc) 8%, #fff); padding: 10px 12px; display: flex; flex-direction: column; gap: 6px; }
.lg-split { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; margin: 10px 0; } .lg-split em { font-style: normal; font-size: 13px; } .lg-split input[type=range] { width: 100%; accent-color: var(--pc); }
.lg-h4 { margin: 12px 0 0; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.lg-names { display: grid; gap: 8px; margin: 10px 0; } .lg-names label { display: flex; flex-direction: column; gap: 4px; }
.lg-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; } .lg-chips button { border: 1px solid var(--c); color: var(--c); background: color-mix(in srgb, var(--c) 10%, #fff); border-radius: 99px; padding: 3px 10px; cursor: pointer; font-size: 12.5px; min-height: 30px; }
.lg-ck { display: flex; gap: 8px; align-items: flex-start; margin: 10px 0; }
.lg-review { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; margin: 8px 0; } .lg-rv dl { display: grid; grid-template-columns: auto 1fr; gap: 3px 10px; margin: 4px 0 0; font-size: 12.5px; } .lg-rv dt { color: var(--muted); } .lg-rv dd { margin: 0; word-break: break-word; } .lg-rv p { margin: 4px 0; }
@media (prefers-reduced-motion: reduce) { .lg-brick.snap, .lg-mini.cur i { animation: none; } .lg-tile:hover { transform: none; } }
@media (max-width: 560px) { .lg-studs { left: 22px; gap: 8px; } .lg-studs i { width: 18px; } .lg-sum { display: none; } .lg-tiles { grid-template-columns: 1fr 1fr; } }
.rs-nf { margin: 8px 0; font-size: 13px; } .rs-nf summary { cursor: pointer; color: var(--muted); } .rs-nf ul { margin: 6px 0; padding-left: 18px; }
.lg-off { opacity: .55; cursor: not-allowed; border-style: dashed; } .lg-off .lg-as { color: var(--muted); }
/* Constructor: identidad OMEGA (Cinzel + kanji) */
.tabs button.tab-lego { display: inline-flex; flex-direction: column; align-items: center; gap: 1px; padding: 10px 22px; min-width: 190px; background: linear-gradient(135deg, #14256D, #6B00F7); color: #fff; border-radius: 10px; box-shadow: 0 4px 0 rgba(107,0,247,.35); }
.tabs button.tab-lego span[lang="ja"] { font-family: 'Noto Sans JP', sans-serif; font-weight: 700; font-size: 20px; color: #ff2d6f; line-height: 1.1; }
.tabs button.tab-lego b { font-family: 'Cinzel', serif; font-weight: 600; font-size: 17px; letter-spacing: .22em; } .tabs button.tab-lego small { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; opacity: .8; }
.tabs button.tab-lego[aria-pressed="true"] { outline: 2px solid #00BAFF; outline-offset: 2px; }
.lg-hero { position: relative; overflow: hidden; display: flex; align-items: center; gap: 24px; padding: 28px 32px; margin-bottom: 14px; border-radius: 18px; color: #fff; background: radial-gradient(circle at 85% 20%, rgba(0,186,255,.35), transparent 45%), linear-gradient(120deg, #0b1440 0%, #14256D 45%, #6B00F7 100%); box-shadow: var(--shadow); }
.lg-hero-kj { font-family: 'Noto Sans JP', sans-serif; font-weight: 700; font-size: clamp(64px, 9vw, 120px); line-height: 1; color: #ff2d6f; text-shadow: 0 6px 30px rgba(255,45,111,.45); flex: none; }
.lg-hero-t { flex: 1; min-width: 0; } .lg-hero-k { font-size: 12px; letter-spacing: .24em; color: #7fdcff; font-weight: 600; } .lg-hero-k span { font-family: 'Noto Sans JP', sans-serif; letter-spacing: .1em; }
.lg-hero h2 { font-family: 'Cinzel', serif; font-weight: 600; font-size: clamp(26px, 3.4vw, 44px); letter-spacing: .2em; line-height: 1.12; text-transform: uppercase; margin: 6px 0 8px; color: #fff; }
.lg-hero p { margin: 0; max-width: 560px; color: rgba(255,255,255,.82); font-size: 15px; }
.lg-hero-p { flex: none; width: 120px; height: 120px; border-radius: 50%; display: grid; place-items: center; align-content: center; border: 3px solid rgba(255,255,255,.25); background: rgba(255,255,255,.06); } .lg-hero-p b { font-family: 'Cinzel', serif; font-size: 32px; line-height: 1; } .lg-hero-p span { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; opacity: .8; }
.lg-kj { font-family: 'Noto Sans JP', sans-serif; font-weight: 700; font-size: 20px; color: var(--c); line-height: 1; } .lg-brick.locked .lg-kj { color: rgba(120,130,160,.6); }
.lg-title { font-family: 'Cinzel', serif; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; font-size: 16px; }
.lg-brick.on .lg-title { font-size: 19px; }
@media (max-width: 760px) { .lg-hero { flex-wrap: wrap; padding: 22px; } .lg-hero-p { width: 90px; height: 90px; } .tabs button.tab-lego { min-width: 150px; } }
/* Pieza 3.1 · Seteo de plataformas (izquierda seteo / derecha vista previa) */
.lg-n.sub { width: auto; padding: 0 7px; }
.lg-dual { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, 1fr); gap: 16px; align-items: start; }
.lg-dual-l { min-width: 0; } .lg-dual-r { position: sticky; top: 12px; }
.lg-layers { display: flex; gap: 6px; margin-bottom: 12px; flex-wrap: wrap; } .lg-layers button { flex: 1; min-width: 120px; border: 2px solid var(--line); background: #fff; border-radius: 10px; padding: 8px 10px; font: inherit; font-weight: 600; cursor: pointer; min-height: 42px; } .lg-layers button[aria-pressed="true"] { border-color: var(--c); background: color-mix(in srgb, var(--c) 12%, #fff); }
.lg-fields { display: flex; flex-direction: column; gap: 14px; } .lg-lbl { display: block; font-weight: 600; font-size: 13px; margin-bottom: 6px; } .lg-lbl small { font-weight: 400; color: var(--muted); }
.lg-goals { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; } .lg-goal { text-align: left; border: 2px solid var(--line); background: #fff; border-radius: 10px; padding: 8px 10px; cursor: pointer; font: inherit; display: flex; flex-direction: column; gap: 2px; min-height: 56px; } .lg-goal small { color: var(--muted); font-size: 11.5px; } .lg-goal.sel { border-color: var(--c); background: color-mix(in srgb, var(--c) 12%, #fff); }
.lg-sets { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; } .lg-setb { border: 1px solid var(--line); background: #fff; border-radius: 99px; padding: 4px 12px; font: 12px/1.4 ui-monospace, monospace; cursor: pointer; min-height: 32px; } .lg-setb.sel { border-color: var(--c); background: color-mix(in srgb, var(--c) 14%, #fff); }
.lg-opts { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; max-height: 180px; overflow: auto; } .lg-opts button { border: 1px dashed var(--c); background: #fff; border-radius: 8px; padding: 4px 9px; cursor: pointer; font-size: 12.5px; min-height: 30px; } .lg-opts small { color: var(--muted); }
.lg-geo { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--c); border-radius: 99px; padding: 2px 4px 2px 10px; font-size: 12.5px; } .lg-geo select { font-size: 12px; border: 0; background: transparent; } .lg-geo button { border: 0; background: none; cursor: pointer; min-width: 26px; min-height: 26px; }
.lg-place { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-top: 8px; } .lg-place > div { display: flex; flex-direction: column; gap: 3px; border: 1px solid var(--line); border-radius: 10px; padding: 8px; }
.lg-crea { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px; } .lg-cr { position: relative; border: 2px solid var(--line); background: #fff; border-radius: 10px; padding: 6px; cursor: pointer; font: inherit; text-align: left; display: flex; flex-direction: column; gap: 4px; } .lg-cr.sel { border-color: var(--c); } .lg-cr small { font-size: 11px; color: var(--muted); line-height: 1.3; } .lg-cr i { position: absolute; top: 6px; right: 8px; background: var(--c); color: #fff; border-radius: 50%; width: 22px; height: 22px; display: grid; place-items: center; font-style: normal; }
.lg-cr-img { display: grid; place-items: center; aspect-ratio: 1; border-radius: 8px; background: #dfe3ef center / cover no-repeat; color: #fff; font-size: 22px; text-shadow: 0 1px 6px rgba(0,0,0,.6); } .lg-cr-img.sm { width: 40px; height: 40px; flex: none; aspect-ratio: auto; }
.lg-tree { border: 2px solid var(--c); border-radius: 14px; padding: 12px; background: color-mix(in srgb, var(--c) 6%, #fff); display: flex; flex-direction: column; gap: 8px; }
.lg-tree-h { font-family: 'Cinzel', serif; letter-spacing: .14em; text-transform: uppercase; font-size: 13px; font-weight: 600; } .lg-tree-h span { font-family: 'Noto Sans JP', sans-serif; color: var(--c); font-size: 16px; margin-right: 4px; }
.lg-node { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; display: flex; flex-direction: column; gap: 2px; font-size: 12.5px; } .lg-node small { font-size: 10px; letter-spacing: .1em; color: var(--muted); } .lg-node b { font-size: 12px; word-break: break-all; }
.lg-node.camp { border-left: 5px solid #4F7CFF; } .lg-node.set { border-left: 5px solid var(--c); margin-left: 10px; } .lg-node.ad { flex-direction: row; align-items: center; gap: 8px; margin: 4px 0 0 8px; border-left: 4px solid #8b5cf6; } .lg-node.ad.empty { opacity: .7; }
.lg-est { color: #0f8a5f; font-weight: 600; } .lg-ok { color: #0f8a5f; }
.lg-other { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; margin-top: 14px; }
@media (max-width: 1100px) { .lg-dual { grid-template-columns: 1fr; } .lg-dual-r { position: static; } }
.lg-fields input.mono { width: 100%; }
/* BUILDER 3.1 · Google Search */
.lg-psw { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; } .lg-psw button { flex: 1; min-width: 160px; text-align: left; border: 2px solid var(--line); border-left: 6px solid var(--pc); background: #fff; border-radius: 12px; padding: 10px 12px; cursor: pointer; font: inherit; display: flex; flex-direction: column; gap: 2px; } .lg-psw button[aria-pressed="true"] { border-color: var(--pc); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pc) 20%, transparent); }
.gs-brief { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; } .gs-brief label { display: flex; flex-direction: column; gap: 3px; }
.gs-hist, .gs-diag, .gs-up { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: #f8fafc; display: flex; flex-direction: column; gap: 4px; } .gs-diag { border-left: 5px solid #2EE6D6; background: #f0fdfa; } .gs-diag ul { margin: 4px 0 0 18px; padding: 0; }
.gs-kwt { width: 100%; border-collapse: collapse; font-size: 12.5px; } .gs-kwt th, .gs-kwt td { text-align: left; padding: 5px 6px; border-bottom: 1px solid var(--line); } .gs-kwt th { font-size: 11px; color: var(--muted); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.gs-src { font-size: 11px; border-radius: 99px; padding: 1px 8px; background: #eef2ff; color: #3730a3; } .gs-src.cliente { background: #fff7ed; color: #9a3412; } .gs-src.historial { background: #ecfdf5; color: #065f46; } .gs-src.manual { background: #f1f5f9; color: #475569; }
.gs-copy, .gs-co { display: flex; flex-direction: column; gap: 6px; } .gs-line { display: flex; align-items: center; gap: 8px; } .gs-line .in { flex: 1; } .gs-line > span:first-child { width: 18px; text-align: right; font-size: 12px; }
.gs-cnt { font: 11px ui-monospace, monospace; color: #64748b; min-width: 42px; text-align: right; } .gs-cnt.over { color: var(--red); font-weight: 700; }
.gs-sl { display: grid; grid-template-columns: 1fr 1fr 1fr 1.2fr; gap: 6px; margin-bottom: 6px; } @media (max-width: 700px) { .gs-sl { grid-template-columns: 1fr 1fr; } }
.gs-serp { background: #fff; border: 1px solid #dadce0; border-radius: 12px; padding: 12px 14px; font-family: Arial, Helvetica, sans-serif; display: flex; flex-direction: column; gap: 4px; color: #202124; } .gs-serp p { margin: 0; font-size: 13px; line-height: 1.45; color: #4d5156; }
.gs-dom { display: flex; align-items: center; gap: 8px; font-size: 13px; } .gs-dom div { display: flex; flex-direction: column; } .gs-dom small { color: #4d5156; font-size: 12px; } .gs-fav { width: 26px; height: 26px; border-radius: 50%; background: #f1f3f4; border: 1px solid #dadce0; display: grid; place-items: center; font-weight: 700; font-size: 12px; color: #1a0dab; }
.gs-h { color: #1a0dab; font-size: 19px; line-height: 1.3; text-decoration: none; cursor: default; } .gs-sls { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 4px; } .gs-sls span { color: #1a0dab; font-size: 14px; }
.gs-serp .btn { align-self: flex-start; margin-top: 4px; font-family: inherit; }
.gs-gn { text-align: left; cursor: pointer; font: inherit; width: calc(100% - 10px); } .gs-gn.sel { box-shadow: 0 0 0 2px #2EE6D6; }
.lg-audn { margin: 0 0 8px 18px; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.gs-url { width: 100%; }
.lg-fields label.sm:not(.lg-ck) { display: flex; flex-direction: column; gap: 4px; } .lg-fields .row > label.sm:not(.lg-ck) { flex-direction: row; align-items: center; }
.lg-fields label.gs-blk { display:flex; flex-direction: column; }
.lg-ddual .lg-opts span { display: inline-flex; gap: 2px; } .lg-ddual .lg-opts button.sel { border-style: solid; background: color-mix(in srgb, #8B5CF6 12%, #fff); }
/* BUILDER 3.1 · DV360 en embudo: piezas apiladas del mismo tamaño que se repliegan al terminar */
.dv-funnel { display: flex; flex-direction: column; gap: 8px; }
.dv-stage { border: 2px solid var(--line); border-left: 6px solid #8B5CF6; border-radius: 12px; background: #fff; overflow: hidden; transition: box-shadow .2s; }
.dv-stage.open { box-shadow: 0 0 0 3px color-mix(in srgb, #8B5CF6 22%, transparent); }
.dv-stage.ok { border-left-color: #0f8a5f; }
.dv-sh { width: 100%; display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 8px 12px; background: none; border: 0; font: inherit; text-align: left; cursor: pointer; }
.dv-n { width: 24px; height: 24px; border-radius: 6px; background: #8B5CF6; color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 12px; flex: none; } .dv-stage.ok .dv-n { background: #0f8a5f; }
.dv-kj { font-family: 'Noto Sans JP', sans-serif; color: #8B5CF6; font-size: 15px; flex: none; } .dv-sh b { font-family: 'Cinzel', serif; letter-spacing: .08em; text-transform: uppercase; font-size: 13px; flex: none; }
.dv-sum { flex: 1; min-width: 0; font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dv-st { color: #0f8a5f; font-weight: 700; } .dv-tg { font-size: 12px; color: #8B5CF6; flex: none; }
.dv-sb { padding: 4px 14px 12px; border-top: 1px solid var(--line); } .dv-sf { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-top: 1px dashed var(--line); background: #faf9ff; }
/* Setup guiado (guide.js): interruptor, bloques de decisión, ficha de ayuda y distintivo "Sugerido P2P" */
.g-mode { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 10px; } .g-mode button { border: 2px solid var(--line); background: #fff; border-radius: 99px; padding: 6px 14px; font: inherit; font-weight: 600; cursor: pointer; min-height: 36px; } .g-mode button[aria-pressed="true"] { border-color: #8B5CF6; background: color-mix(in srgb, #8B5CF6 12%, #fff); }
.g-blocks { display: flex; flex-direction: column; gap: 8px; }
.g-block { border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.g-block.done { display: flex; align-items: center; gap: 10px; padding: 6px 10px; min-height: 40px; background: #f6fbf8; border-color: #cfe9dc; } .g-block.done .g-n { background: #0f8a5f; }
.g-block.open { border: 2px solid #8B5CF6; }
.g-n { width: 22px; height: 22px; border-radius: 6px; background: #8B5CF6; color: #fff; display: grid; place-items: center; font-size: 12px; font-weight: 700; flex: none; }
.g-sum { flex: 1; min-width: 0; font-size: 12.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.g-bh { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-bottom: 1px solid var(--line); } .g-bb { padding: 10px 12px; } .g-bf { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-top: 1px dashed var(--line); background: #faf9ff; border-radius: 0 0 10px 10px; }
.g-i { width: 28px; height: 28px; border-radius: 50%; border: 1px solid #8B5CF6; color: #8B5CF6; background: #fff; cursor: pointer; font-size: 14px; }
.g-locked { font-size: 12.5px; color: var(--muted); margin: 2px 0 0; }
.g-sug { display: inline-flex; margin-top: 6px; font-size: 12px; border-radius: 99px; padding: 3px 10px; background: #fff7e6; border: 1px solid #f5c76b; color: #8a5a00; } .g-sug a { color: inherit; text-decoration: none; }
.g-help { border: 2px solid #8B5CF6; border-radius: 14px; background: #fff; padding: 12px 14px; margin-bottom: 10px; font-size: 13px; } .g-help.g-empty { border-style: dashed; }
.g-help-h { display: flex; align-items: baseline; gap: 8px; margin-bottom: 6px; } .g-help-h b { font-size: 15px; } .g-help-h small { color: var(--muted); } .g-help-h .btn { margin-left: auto; }
.g-help dl { margin: 0; } .g-help dt { font-weight: 700; color: #6B00F7; margin-top: 8px; font-size: 12px; } .g-help dd { margin: 2px 0 0; line-height: 1.45; }
.g-ojo { margin: 10px 0 0; padding: 8px 10px; background: #fff7e6; border-radius: 8px; } .g-src { display: inline-block; margin-top: 10px; font-weight: 600; }

/* Recomendación OMEGA de audiencias (DV360) */
.g-rec { border: 1px solid var(--line, #e3e6ee); border-left: 3px solid #7c5cff; border-radius: 10px; padding: 12px 14px; margin: 0 0 14px; display: grid; gap: 8px; }
.g-rec .gs-brief { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 8px; }
.g-recst { display: grid; gap: 6px; padding-top: 8px; border-top: 1px dashed var(--line, #e3e6ee); }
.g-recit p { margin: 2px 0 0 4px; }
.g-recit .row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.g-recok { font-size: 13px; font-weight: 600; color: #1a8f5a; }

/* Botón Sincronizar · 同期する (Dōki suru) */
.btn-doki { gap: 8px; align-items: center; }
.btn-doki .doki-jp { font-weight: 700; letter-spacing: .02em; }
.btn-doki .doki-ro { font-weight: 700; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; opacity: .9; }
.btn-doki .doki-es { font-size: 12px; padding-left: 8px; border-left: 1px solid currentColor; opacity: .75; }
@media (max-width: 720px) { .btn-doki .doki-ro, .btn-doki .doki-es { display: none; } }

/* ───────── Reporte en vivo cliente (rp-) ───────── */
.rp-bar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 14px; }
.rp-switch { display: inline-flex; gap: 8px; align-items: center; font-size: 13px; cursor: pointer; }
.rp-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rp-switch span { width: 34px; height: 20px; border-radius: 20px; background: var(--line); position: relative; transition: background .2s; }
.rp-switch span::after { content: ''; position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; border-radius: 50%; background: var(--white); box-shadow: 0 1px 2px rgba(0,0,0,.25); transition: transform .2s; }
.rp-switch input:checked + span { background: var(--violet); }
.rp-switch input:checked + span::after { transform: translateX(14px); }
.rp-switch input:focus-visible + span { outline: 2px solid var(--violet); outline-offset: 2px; }
.rp-asclient { margin-bottom: 14px; padding: 10px 14px; border-radius: 12px; background: color-mix(in srgb, var(--violet) 10%, transparent); font-size: 13px; }
.rp-card, .rp-hero { background: var(--white); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); padding: 20px 22px; margin-bottom: 18px; }
.rp-card-h { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.rp-card-h h3 { margin: 0; font-size: 15px; letter-spacing: .02em; }
.rp-note { font-size: 13px; color: var(--muted); }
.rp-hero { padding: 26px 28px; background: linear-gradient(135deg, color-mix(in srgb, var(--violet) 8%, var(--white)), var(--white) 60%); }
.rp-eyebrow { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.rp-head { font-family: var(--font-body); font-size: clamp(20px, 2.6vw, 30px); line-height: 1.25; font-weight: 500; margin: 0 0 18px; color: var(--ink); text-transform: none; letter-spacing: 0; }
.rp-head em { font-style: normal; font-weight: 800; color: var(--violet); }
.rp-prog { position: relative; height: 12px; border-radius: 12px; background: color-mix(in srgb, var(--ink) 8%, transparent); margin: 30px 0 8px; }
.rp-prog-f { height: 100%; border-radius: 12px; background: linear-gradient(90deg, var(--violet), var(--cyan)); transition: width .6s ease; }
.rp-prog-m { position: absolute; top: -8px; bottom: -8px; width: 2px; background: var(--ink); opacity: .55; }
.rp-prog-m span { position: absolute; bottom: calc(100% + 4px); left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: 11px; color: var(--muted); }
.rp-prog-l { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; color: var(--muted); margin-bottom: 18px; flex-wrap: wrap; }
.rp-prog-l b { color: var(--ink); }
.rp-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.rp-kpis > div { padding: 12px 14px; border-radius: 14px; background: color-mix(in srgb, var(--ink) 4%, transparent); display: flex; flex-direction: column; gap: 2px; }
.rp-kpis span { font-size: 12px; color: var(--muted); }
.rp-kpis b { font-size: 22px; color: var(--ink); }
.rp-kpis small { font-size: 12px; color: var(--muted); }
.rp-legend { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--muted); }
.rp-legend span { display: inline-flex; align-items: center; gap: 6px; }
.rp-legend i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
.rp-legend .rp-l-cum { height: 3px; width: 16px; background: var(--ink); border-radius: 2px; }
.rp-legend .rp-l-plan { height: 0; width: 16px; border-top: 2px dashed var(--muted); border-radius: 0; }
.rp-legend .rp-l-off { background: repeating-linear-gradient(45deg, var(--muted) 0 2px, transparent 2px 5px); }
.rp-chart { position: relative; }
.rp-svg { width: 100%; height: auto; display: block; overflow: visible; }
.rp-svg .rp-grid { stroke: var(--line); stroke-width: 1; }
.rp-svg .rp-ax { font-size: 11px; fill: var(--muted); }
.rp-svg .rp-cum { fill: none; stroke: var(--ink); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.rp-svg .rp-plan { fill: none; stroke: var(--muted); stroke-width: 1.5; stroke-dasharray: 5 5; }
.rp-svg .rp-dot { fill: var(--ink); stroke: var(--white); stroke-width: 2; }
.rp-svg .rp-fut { fill: var(--line); }
.rp-svg .rp-hatch { fill: var(--muted); opacity: .6; }
.rp-svg .rp-hit { fill: transparent; cursor: pointer; }
.rp-svg .rp-hit:hover, .rp-svg .rp-hit.sel { fill: color-mix(in srgb, var(--violet) 10%, transparent); }
.rp-tip { position: absolute; z-index: 5; min-width: 190px; max-width: 260px; pointer-events: none; padding: 10px 12px; border-radius: 12px; background: var(--white); border: 1px solid var(--line); box-shadow: 0 10px 30px rgba(0,0,0,.18); font-size: 12px; color: var(--ink); }
.rp-tip-v { font-size: 20px; font-weight: 800; margin: 2px 0 6px; }
.rp-tip-r { display: flex; align-items: center; gap: 6px; }
.rp-tip-r i { width: 8px; height: 8px; border-radius: 2px; }
.rp-tip-r span { margin-left: auto; font-weight: 700; }
.rp-tip-s { display: flex; flex-wrap: wrap; gap: 4px 10px; margin: 6px 0; color: var(--muted); }
.rp-tip-off { color: var(--amber); margin-bottom: 4px; }
.rp-day { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); animation: rp-in .25s ease; }
.rp-day-h { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.rp-day-h .btn { margin-left: auto; }
.rp-day-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px; }
.rp-day-g > div { display: grid; grid-template-columns: 10px 1fr; gap: 2px 8px; padding: 10px 12px; border-radius: 12px; background: color-mix(in srgb, var(--ink) 4%, transparent); font-size: 13px; }
.rp-day-g i { width: 10px; height: 10px; border-radius: 3px; margin-top: 4px; grid-row: span 2; }
.rp-day-g span { color: var(--muted); font-size: 12px; }
.rp-cre { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(250px, 300px); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 2px 10px; }
.rp-post { scroll-snap-align: start; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--white); display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.rp-post:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(0,0,0,.12); }
.rp-post-h { display: flex; gap: 10px; align-items: center; padding: 10px 12px; }
.rp-post-h b { display: block; font-size: 13px; }
.rp-post-h small { color: var(--muted); font-size: 11px; }
.rp-av { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; color: #fff; background: linear-gradient(135deg, var(--violet), var(--cyan)); }
.rp-post-img { aspect-ratio: 4 / 5; background: #e9e9ef center / cover no-repeat; position: relative; }
.rp-play { position: absolute; inset: 0; margin: auto; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: rgba(0,0,0,.55); color: #fff; font-size: 18px; }
.rp-post-b { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 10px; }
.rp-post-x { margin: 0; font-size: 13px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.rp-post-k { padding: 10px 12px; border-radius: 12px; background: color-mix(in srgb, var(--violet) 9%, transparent); display: flex; flex-direction: column; gap: 2px; font-size: 13px; }
.rp-post-k em { font-style: normal; font-weight: 800; color: var(--violet); }
.rp-plats { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 14px; margin-bottom: 18px; }
.rp-plat { text-align: left; font: inherit; color: var(--ink); cursor: pointer; display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; border-radius: 16px; border: 1px solid var(--line); background: var(--white); box-shadow: var(--shadow); transition: border-color .2s, transform .2s; }
.rp-plat:hover { transform: translateY(-2px); }
.rp-plat.on { border-color: var(--pc); box-shadow: 0 0 0 2px color-mix(in srgb, var(--pc) 40%, transparent); }
.rp-plat-n { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--muted); }
.rp-plat-n i { width: 10px; height: 10px; border-radius: 50%; background: var(--pc); }
.rp-plat b { font-size: 22px; }
.rp-plat small { font-size: 12px; color: var(--muted); }
.rp-plat-bar { height: 6px; border-radius: 6px; background: color-mix(in srgb, var(--ink) 8%, transparent); margin-top: 6px; overflow: hidden; }
.rp-plat-bar span { display: block; height: 100%; background: var(--pc); border-radius: 6px; }
.rp-spark { width: 100%; height: 30px; margin-top: 6px; }
.rp-camps table td { vertical-align: middle; }
.rp-row { cursor: pointer; transition: background .15s; }
.rp-row:hover, .rp-row.open { background: color-mix(in srgb, var(--violet) 5%, transparent); }
.rp-pill { display: inline-block; font-size: 11px; padding: 2px 8px; border-radius: 20px; color: var(--pc); background: color-mix(in srgb, var(--pc) 12%, transparent); font-weight: 700; margin-right: 4px; }
.rp-mini { height: 6px; border-radius: 6px; background: color-mix(in srgb, var(--ink) 8%, transparent); overflow: hidden; margin-bottom: 4px; }
.rp-mini span { display: block; height: 100%; border-radius: 6px; }
.rp-detail td { background: color-mix(in srgb, var(--violet) 3%, transparent); }
.rp-detail-g { display: grid; grid-template-columns: minmax(160px, 260px) 1fr; gap: 16px; align-items: center; animation: rp-in .25s ease; }
.rp-total td { font-weight: 700; }
.rp-how summary { cursor: pointer; font-weight: 700; font-size: 14px; }
.rp-how ul { margin: 10px 0 0; padding-left: 18px; color: var(--muted); }
@keyframes rp-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .rp-post, .rp-plat, .rp-prog-f, .rp-day, .rp-detail-g { transition: none; animation: none; } }
@media (max-width: 720px) { .rp-hero { padding: 20px; } .rp-detail-g { grid-template-columns: 1fr; } .rp-kpis b { font-size: 18px; } }
.rp-comp { display: flex; flex-direction: column; gap: 2px; }
.rp-sem { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; vertical-align: middle; }

/* ───────── Radar energético (en-) ───────── */
:root { --en-empty: #e6e8f0; }
html.om-dark { --en-empty: #1f2330; }
.en-map { width: 100%; height: auto; display: block; }
.en-map path { stroke: var(--white); stroke-width: .6; cursor: pointer; transition: opacity .15s; }
.en-map path:hover { opacity: .8; }
.en-map path.sel { stroke: var(--ink); stroke-width: 1.8; }
.en-badges { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.en-regions { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; }
.en-regions > div { padding: 10px 12px; border-radius: 12px; background: color-mix(in srgb, var(--ink) 4%, transparent); display: flex; flex-direction: column; gap: 3px; }
.en-regions span { font-size: 12px; color: var(--muted); } .en-regions b { font-size: 20px; } .en-regions small { font-size: 11px; color: var(--muted); }
.en-trend { width: 100%; height: auto; } .en-tw { fill: none; stroke: var(--red); stroke-width: 2.2; } .en-tp { fill: none; stroke: var(--muted); stroke-width: 1.5; stroke-dasharray: 4 4; }
.rp-en-head { font-size: 15px; line-height: 1.5; margin: 0 0 12px; } .rp-en-head b { color: var(--violet); }
.rp-en-g { display: grid; grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr); gap: 18px; align-items: start; }
.rp-en-top { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; font-size: 13px; }
.rp-en-top li span { display: block; color: var(--muted); font-size: 12px; } .rp-en-top li em { font-style: normal; font-weight: 700; color: var(--violet); }
@media (max-width: 820px) { .rp-en-g { grid-template-columns: 1fr; } }
.rp-portal { font-size: 16px; letter-spacing: .02em; }
.pv-bar { display: flex; align-items: center; gap: 12px; justify-content: space-between; flex-wrap: wrap; padding: 10px 18px; background: linear-gradient(90deg, var(--violet), var(--cyan)); color: #fff; font-size: 13px; }
.pv-bar .btn { background: rgba(255,255,255,.18); color: #fff; border-color: rgba(255,255,255,.5); }
.en-dot { fill: var(--red); stroke: var(--white); stroke-width: 1.5; }
.pt-nav-h { padding: 14px 16px 8px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--cyan); font-weight: 700; }
.pt-has-logo { padding: 18px 20px 14px; }
.pt-logo { width: 150px; max-width: 100%; height: auto; display: block; }
.pt-l { display: none; } /* la barra lateral siempre es oscura: se usa el logo con letras blancas */
html.om-dark .pt-nav-h.pt-has-logo img.pt-logo, .pt-nav-h.pt-has-logo img.pt-logo { background: transparent; } /* omega-dark pone fondo blanco a [class*=logo] img */

/* ───────── Cobertura de auditoría (cv-) ───────── */
.cv-table td { vertical-align: middle; }
.cv-cell { display: inline-flex; flex-direction: column; min-width: 92px; padding: 6px 10px; border-radius: 10px; text-decoration: none; color: var(--ink); line-height: 1.2; }
.cv-cell b { font-size: 16px; } .cv-cell span { font-size: 11px; color: var(--muted); }
.cv-ok { background: var(--green-bg); } .cv-ok b { color: var(--green); }
.cv-part { background: var(--amber-bg); } .cv-part b { color: var(--amber); }
.cv-bad { background: var(--red-bg); } .cv-bad b { color: var(--red); }
.cv-rules { background: color-mix(in srgb, var(--cyan) 12%, transparent); }
.cv-none { color: var(--muted); }
.cv-plats { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; }
.cv-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.cv-list li { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 13px; }
/* Bandeja Preguntas de clientes */
.pq{margin-bottom:12px;border-left:4px solid #9aa3b2}.pq.pq-ok{border-left-color:#2EE6D6}.pq.pq-mid{border-left-color:#2EE6D6}.pq.pq-warn{border-left-color:#d97706}.pq.pq-bad{border-left-color:#dc2626}
.pq-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pq-clock{font-weight:600;font-size:13px}.pq-bad .pq-clock{color:#dc2626}.pq-warn .pq-clock{color:#b45309}
.pq-q{font-size:15px;margin:10px 0}.pq textarea{width:100%;margin:4px 0 8px}

/* Portal: Auditorías OMEGA */
.au-hero{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap}.au-hero h2{margin:0 0 4px}
.au-bal{display:flex;gap:14px}.au-bal div{min-width:120px;padding:10px 14px;border:1px solid var(--line,#e3e6ee);border-radius:12px;text-align:center}.au-bal b{display:block;font-size:26px}.au-bal span{font-size:12px;opacity:.75}
.au-h{margin:22px 0 10px;font-size:15px}
.au-camps{display:grid;gap:8px}.au-camp{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border:1px solid var(--line,#e3e6ee);border-radius:12px}
.au-item{margin-bottom:12px}.au-ih{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}.au-pend{opacity:.85}
.au-acts{padding-left:20px}.au-acts li{margin:6px 0}.au-acts li span{display:block;font-size:13px;opacity:.8}
.pq-ver label{display:block;margin:8px 0}.pq-ver textarea,.pq-ver select{display:block;width:100%;margin-top:4px}
.pf-t td{vertical-align:top}.pf-ul{margin:0;padding-left:16px}
/* Chat / Copiloto OMEGA: identidad OMEGA (Ω rojo, Cinzel + Syncopate, acento turquesa, tarjeta oscura) */
.oc{--oc-acc:var(--navy);--oc-acc-tx:#fff;--oc-red:#FF2E4D;position:fixed;right:22px;bottom:22px;z-index:60;font-family:var(--font-body);font-size:14px}
html.om-dark .oc{--oc-acc:#2EE6D6;--oc-acc-tx:#07080C}
.oc-fab{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:999px;padding:7px 18px 7px 7px;background:var(--white);color:var(--ink);cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.28),0 0 0 1px rgba(46,230,214,.18);transition:transform .15s,box-shadow .2s}
.oc-fab:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(0,0,0,.34),0 0 0 2px rgba(46,230,214,.45)}
.oc-fab .oc-orb{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#07080C;box-shadow:inset 0 0 0 1.5px rgba(46,230,214,.55);animation:ocPulse 3.2s ease-in-out infinite}
.oc-fab .oc-orb img{width:22px;height:22px}
.oc-fab .oc-lbl{display:flex;flex-direction:column;line-height:1.1;text-align:left}
.oc-fab .oc-lbl b{font-family:'Cinzel',serif;font-weight:600;letter-spacing:.18em;font-size:13px}
.oc-fab .oc-lbl small{font-family:'Syncopate',sans-serif;font-weight:700;font-size:8px;letter-spacing:.32em;color:var(--muted);text-transform:uppercase;margin-top:3px}
.oc-fab .oc-lbl small.oc-jp{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:none;margin-top:4px}
@keyframes ocPulse{0%,100%{box-shadow:inset 0 0 0 1.5px rgba(46,230,214,.55),0 0 0 0 rgba(46,230,214,.0)}50%{box-shadow:inset 0 0 0 1.5px rgba(46,230,214,.9),0 0 0 6px rgba(46,230,214,.10)}}
.oc-panel{width:min(400px,calc(100vw - 28px));height:min(600px,calc(100vh - 90px));display:flex;flex-direction:column;background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:18px;box-shadow:0 22px 60px rgba(0,0,0,.45);overflow:hidden;position:relative}
.oc-panel::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#FF2E4D,#2EE6D6 55%,transparent)}
.oc-h{display:flex;gap:12px;align-items:center;padding:16px 16px 12px;border-bottom:1px solid var(--line)}
.oc-h .oc-orb{width:40px;height:40px;flex:none;border-radius:50%;display:grid;place-items:center;background:#07080C;box-shadow:inset 0 0 0 1.5px rgba(46,230,214,.55)}
.oc-h .oc-orb img{width:24px;height:24px}
/* 4-nov: ícono propio de Mentor (no es el Ω de OMEGA); toma el color de cada tema con var(--cyan) */
.oc-orb-mentor{color:var(--cyan)}
.oc-orb-mentor .mt-ic{width:22px;height:22px;display:block}
.oc-h .oc-orb-mentor .mt-ic{width:24px;height:24px}
.oc-h .oc-t span span[lang="ja"]{display:inline;margin:0;letter-spacing:0;font-family:'Noto Sans JP',sans-serif;font-size:11px}
.oc-h div.oc-t{flex:1;min-width:0}.oc-h .oc-t b{display:block;font-family:'Cinzel',serif;font-weight:600;letter-spacing:.22em;font-size:16px}
.oc-h .oc-t span{display:block;font-family:'Syncopate',sans-serif;font-weight:700;font-size:8px;letter-spacing:.34em;color:var(--muted);text-transform:uppercase;margin-top:3px}
.oc-h .oc-t small{display:block;font-size:11.5px;color:var(--muted);margin-top:6px;line-height:1.35}
.oc-x{border:1px solid var(--line);background:transparent;color:var(--muted);width:30px;height:30px;border-radius:9px;font-size:18px;line-height:1;cursor:pointer}.oc-x:hover{color:var(--ink);border-color:var(--muted)}
.oc-body{flex:1;overflow:auto;padding:14px 16px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin}
.oc-m{max-width:90%}.oc-m>span{display:flex;align-items:center;gap:6px;font-family:'Syncopate',sans-serif;font-weight:700;font-size:8px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.oc-m.oc-assistant>span::before{content:"";width:14px;height:14px;background:url(assets/omega.svg) center/contain no-repeat}
.oc-m p{margin:0;padding:10px 13px;border-radius:4px 14px 14px 14px;white-space:pre-wrap;background:var(--gray);border:1px solid var(--line);line-height:1.5}
.oc-user{align-self:flex-end}.oc-user>span{justify-content:flex-end}.oc-user p{background:var(--oc-acc);color:var(--oc-acc-tx);border-color:transparent;border-radius:14px 4px 14px 14px}
.oc-p2p p{background:rgba(46,230,214,.10);border-color:rgba(46,230,214,.4)}
.oc-sug{display:block;width:100%;text-align:left;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--ink);cursor:pointer;font:inherit;font-size:13px;transition:border-color .15s,background .15s}
.oc-sug:hover{border-color:#2EE6D6;background:rgba(46,230,214,.07)}
.oc-empty{display:flex;flex-direction:column;gap:8px}
.oc-f{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line)}
.oc-f input{flex:1;min-width:0;background:var(--gray);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit}
.oc-f input:focus{outline:none;border-color:#2EE6D6;box-shadow:0 0 0 3px rgba(46,230,214,.15)}
.oc-foot{margin:0;padding:0 14px 12px;font-size:11px;color:var(--muted)}
.oc-dots i{display:inline-block;width:6px;height:6px;margin:0 2px;border-radius:50%;background:#2EE6D6;opacity:.35;animation:ocd 1s infinite}.oc-dots i:nth-child(2){animation-delay:.2s}.oc-dots i:nth-child(3){animation-delay:.4s}
@keyframes ocd{50%{opacity:1}}
.oc-aud,.oc-go{margin:8px 6px 0 0;display:inline-block}
@media (max-width:600px){.oc{right:12px;bottom:12px}.oc-fab .oc-lbl{display:none}.oc-fab{padding:7px}}
/* Radar: tendencia legible */
.en-story{margin:2px 0 12px;font-size:15px;line-height:1.5}
.en-trend2{width:100%;height:auto;display:block;font-family:var(--font-body)}
.en-trend2 .en-grid{stroke:var(--line);stroke-width:1}
.en-trend2 .en-ax{fill:var(--muted);font-size:11px}
.en-trend2 .en-lab{fill:var(--ink);font-size:12px;font-weight:600}
.en-a-plan{fill:rgba(139,147,167,.35)}
.en-a-unpl{fill:rgba(255,46,77,.28)}
.en-tw2{fill:none;stroke:#FF2E4D;stroke-width:2.2;stroke-linejoin:round}
.en-dot2{fill:#FF2E4D;stroke:var(--white);stroke-width:2}
.en-hit{fill:transparent;cursor:pointer}.en-hit:hover{fill:rgba(255,46,77,.18)}
.en-l-unpl,.en-l-plan{display:inline-block;width:12px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.en-l-unpl{background:rgba(255,46,77,.6)}.en-l-plan{background:rgba(139,147,167,.6)}
.en-gapnote{margin:8px 0 0}
/* Selector de periodo */
.pwrap{display:inline-flex;align-items:center;gap:8px;margin-left:10px}.pwrap[hidden]{display:none}
.pp-dates{display:inline-flex;align-items:center;gap:6px}.pp-dates[hidden]{display:none}.pp-dates input{width:150px}
.pp-card{border-color:rgba(46,230,214,.35)}.pp-d{display:block;font-size:11.5px;margin-top:4px;color:var(--muted)}.pp-up{color:#16a34a}.pp-dn{color:#dc2626}
html.om-dark .pp-up{color:#2EE6D6}html.om-dark .pp-dn{color:#FF6B80}
.pp-t{margin-top:12px}
@media (max-width:900px){.pwrap{margin:8px 0 0;flex-wrap:wrap}}
/* Radar: pestañas, clima y mercado */
.en-tabs{margin:18px 0 14px;flex-wrap:wrap}
.en-cl{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
.en-clc p{margin:6px 0}.en-climap{width:100%;max-height:260px;object-fit:contain;border-radius:10px;margin:8px 0;background:#fff}
.en-big{display:flex;align-items:baseline;gap:8px;margin:8px 0}.en-big b{font-size:30px;font-family:var(--font-title)}
.en-al{margin:8px 0;padding-left:18px}.en-al li{margin:6px 0}.en-al small{display:block;color:var(--muted)}
.en-mk{margin-bottom:12px}.en-mk h3{margin:8px 0 4px;font-size:16px}.en-mk-h{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.en-met{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}.en-met div{border:1px solid var(--line);border-radius:10px;padding:8px 12px;min-width:120px}.en-met b{display:block;font-size:18px}.en-met span{font-size:12px;color:var(--muted)}.en-met small{display:block;font-size:11px;color:var(--muted)}
.en-imp{background:rgba(46,230,214,.08);border-left:3px solid #2EE6D6;padding:8px 12px;border-radius:6px}
.en-tech{margin:6px 0}.en-tech summary{cursor:pointer}

/* Estratega OMEGA: fee, chat sobre el plan y visor de la presentación */
.es-fee{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin:10px 0 4px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--cyan) 6%,transparent)}
.es-chat{margin:16px 0;border-color:color-mix(in srgb,var(--cyan) 35%,var(--line))}
.es-orb{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#07080C;box-shadow:inset 0 0 0 1.5px rgba(46,230,214,.55);flex:none}.es-orb img{width:22px;height:22px}
.es-msgs{max-height:420px;overflow:auto;display:flex;flex-direction:column;gap:10px;margin:12px 0;padding-right:4px}
.es-m{max-width:88%;border:1px solid var(--line);border-radius:14px;padding:10px 14px}.es-m>span{display:block;font-family:'Syncopate',sans-serif;font-weight:700;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.es-m p{margin:0;font-size:14px;line-height:1.5}
.es-user{align-self:flex-end;background:color-mix(in srgb,var(--cyan) 10%,transparent)}.es-assistant{align-self:flex-start;background:var(--gray)}.es-assistant>span{color:#FF2E4D}
.es-li{display:block;padding-left:4px}.es-cambios{margin:8px 0 0;padding:0;list-style:none;font-size:12.5px;color:var(--green)}
.es-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.es-cf{display:flex;gap:8px;align-items:flex-end}.es-cf textarea{flex:1;resize:vertical;min-height:64px}
.es-deckov{position:fixed;inset:0;z-index:1000;background:#05060A;display:flex;flex-direction:column}
.es-dbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid #262A38;background:#0B0D12;color:#E9E6DF}.es-dbar .btn{color:#E9E6DF}
.es-dwrap{flex:1;overflow:auto;padding:16px}.es-dwrap::after{content:"";display:block;height:var(--h,0)}.es-dwrap iframe{position:absolute;left:16px;top:16px;width:1600px;border:0;transform-origin:top left;background:#05060A}
.es-dwrap{position:relative}
.es-qcd{position:relative;color:#E9E6DF}.es-qcd summary{cursor:pointer;list-style:none;padding:4px 10px;border:1px solid #262A38;border-radius:999px}.es-qcd ul{position:absolute;right:0;top:34px;z-index:5;width:min(560px,90vw);background:#12151D;border:1px solid #262A38;border-radius:12px;padding:12px 14px 12px 28px;font-size:13px;line-height:1.5}
.es-qcd li.bloquea,.es-qc li.bloquea{color:#FF8095}.es-qcd li.aviso,.es-qc li.aviso{color:#F5D08A}
.es-qc{flex:1;display:grid;place-items:center;padding:24px;overflow:auto}.es-qcbox{max-width:760px;background:#0B0D12;border:1px solid #262A38;border-radius:18px;padding:26px 28px;color:#E9E6DF}.es-qcbox h2{margin:0 0 6px;font-family:'Cinzel',serif}.es-qcbox ul{margin:14px 0 18px;padding-left:20px;line-height:1.6}
/* ALFA (アルファ): auditor hermano de OMEGA, fuego dorado */
.alfa-btn{border-color:rgba(255,178,26,.6)!important;color:#FFB21A!important;background:rgba(255,178,26,.08)!important}.alfa-a{font-family:'Cinzel',serif;font-size:15px}
.es-dmain{flex:1;display:flex;min-height:0}.es-dmain .es-dwrap{flex:1}
.alfa-panel{width:380px;flex:none;overflow:auto;border-left:1px solid rgba(255,178,26,.35);background:linear-gradient(180deg,rgba(255,178,26,.07),#0B0D12 40%);color:#E9E6DF;padding:18px 18px 28px;font-size:13.5px;line-height:1.5}
.alfa-h{display:flex;gap:12px;align-items:center;margin-bottom:12px}.alfa-h b{font-family:'Cinzel',serif;letter-spacing:.2em;font-size:16px;color:#FFB21A}.alfa-h small{display:block;color:#9AA1B5;font-size:11px}
.alfa-orb{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-family:'Cinzel',serif;font-size:24px;color:#FFB21A;background:#07080C;box-shadow:inset 0 0 0 1.5px rgba(255,178,26,.7),0 0 18px rgba(255,140,0,.35)}
.alfa-v{border:1px solid var(--vc);border-radius:12px;padding:10px 12px;margin-bottom:10px}.alfa-v b{display:block;color:var(--vc);font-size:15px}.alfa-v span{font-size:11px;color:#9AA1B5}
.alfa-panel h4{margin:14px 0 6px;font-family:'Syncopate',sans-serif;font-size:10px;letter-spacing:.2em;color:#FFB21A;text-transform:uppercase}.alfa-panel ol,.alfa-panel ul{margin:0;padding-left:18px}.alfa-panel li{margin-bottom:10px}
.alfa-panel li>span{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:#9AA1B5}.alfa-panel li em{display:block;font-style:normal;color:#F5D08A;margin-top:2px}.alfa-panel li.g-alta>span{color:#FF8095}
@media (max-width:900px){.es-dmain{flex-direction:column}.alfa-panel{width:auto;border-left:0;border-top:1px solid rgba(255,178,26,.35)}}
/* Alertas de OMEGA */
.om-alert{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;background:rgba(5,6,10,.72);backdrop-filter:blur(4px);padding:16px}
.om-alert-box{width:min(560px,100%);background:#0B0D12;color:#E9E6DF;border:1px solid rgba(255,46,77,.55);border-radius:18px;padding:22px 24px;box-shadow:0 20px 60px rgba(0,0,0,.5),0 0 0 1px rgba(255,46,77,.15)}
.om-alert-h{display:flex;gap:14px;align-items:center;margin-bottom:10px}.om-alert-h small{display:block;font-family:'Syncopate',sans-serif;font-weight:700;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#FF2E4D}.om-alert-h h2{margin:2px 0 0;font-family:'Cinzel',serif;font-size:20px;line-height:1.25}
.om-alert-orb{width:46px;height:46px;flex:none;border-radius:50%;display:grid;place-items:center;background:#07080C;box-shadow:inset 0 0 0 1.5px rgba(255,46,77,.7);animation:ocPulse 2.4s ease-in-out infinite}.om-alert-orb img{width:26px}
.om-alert-box p{margin:6px 0;color:#C9CDD8;line-height:1.5}.om-alert-todo{margin:12px 0;padding:10px 14px;border-left:3px solid #2EE6D6;background:rgba(46,230,214,.06);border-radius:0 10px 10px 0}.om-alert-todo b{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#2EE6D6}
.om-alert-box details{font-size:12px;color:#9AA1B5;margin:8px 0}.om-alert-box pre{white-space:pre-wrap;max-height:160px;overflow:auto}
.om-alert-acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-top:14px}.om-alert-acts .btn{color:#E9E6DF}

/* Camino del plan en 3 fases */
.es-camino{margin-top:12px;padding:12px 14px;border:1px solid #262A38;border-radius:14px;background:linear-gradient(180deg,rgba(46,230,214,.05),rgba(46,230,214,.01));display:flex;flex-direction:column;gap:12px;position:sticky;top:8px;z-index:5;backdrop-filter:blur(6px)}
.es-fases{display:grid;grid-template-columns:1.4fr 1fr .8fr;gap:10px}
.es-fase{border:1px solid #232838;border-radius:10px;padding:8px 10px;opacity:.7}.es-fase b{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#9AA1B5}
.es-fase.now{opacity:1;border-color:#2EE6D6;box-shadow:0 0 0 1px rgba(46,230,214,.25)}.es-fase.done{opacity:.95}.es-fase.done b{color:#2EE6D6}
.es-fase ol{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:#9AA1B5}
.es-fase li{display:flex;align-items:center;gap:6px}.es-fase li span{width:18px;height:18px;border-radius:50%;border:1px solid #3A4052;display:grid;place-items:center;font-size:10px}
.es-fase li.done{color:#E9E6DF}.es-fase li.done span{background:#2EE6D6;border-color:#2EE6D6;color:#0B0D12;font-weight:700}
@media (max-width:900px){.es-fases{grid-template-columns:1fr}}
.btn.al-go{background:linear-gradient(90deg,#FF2E4D,#FFB21A);border-color:transparent;color:#0B0D12}
/* Cambios propuestos (antes / después) */
.es-pend{margin:10px 0;border:1px solid #2EE6D6;background:rgba(46,230,214,.05)}.es-pend.from-alpha{border-color:#FFB21A;background:rgba(255,178,26,.06)}
.es-pend-t{font-weight:600;display:flex;align-items:center;gap:8px}
.es-diff{display:flex;flex-direction:column;gap:8px;margin-top:10px}.es-dr{display:grid;grid-template-columns:170px 1fr 1fr;gap:10px;padding:8px 0;border-top:1px solid #232838}
.es-dr b{font-size:13px}.es-dr small{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#7D8496}.es-dr p{margin:2px 0 0;font-size:13px}
.es-dr div:nth-child(2) p{color:#9AA1B5;text-decoration:line-through;text-decoration-color:rgba(255,46,77,.5)}.es-dr div:nth-child(3) p{color:#E9E6DF}
@media (max-width:800px){.es-dr{grid-template-columns:1fr}}
/* Alpha: confirmación y transformación OMEGA → Alpha */
.al-ask{position:absolute;inset:0;display:grid;place-items:center;background:rgba(5,6,10,.72);z-index:20;animation:alfade .25s ease}
.al-ask-box{max-width:520px;text-align:center;padding:28px 30px;border-radius:18px;border:1px solid #FFB21A;background:radial-gradient(120% 90% at 50% 0%,rgba(255,178,26,.18),#0E1016 60%);box-shadow:0 0 60px rgba(255,140,0,.25)}
.al-ask-box .al-orb{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:50%;font:700 34px Cinzel,serif;color:#0B0D12;background:radial-gradient(circle,#FFE08A,#FFB21A 55%,#FF6A00);box-shadow:0 0 30px rgba(255,160,0,.6)}
.al-ask-box small{display:block;margin-top:8px;color:#FFB21A;letter-spacing:.3em}.al-ask-box h2{margin:6px 0 10px;font-family:Cinzel,serif}.al-ask-box ul{text-align:left;margin:10px 0 16px;padding-left:20px;font-size:14px;color:#D9D6CF}
.btn.al-yes{background:linear-gradient(90deg,#FF6A00,#FFB21A);border-color:transparent;color:#0B0D12;font-weight:700}
.es-deckov{transition:background .8s ease,box-shadow .8s ease}
.es-deckov.al-on{background:radial-gradient(120% 80% at 50% -10%,rgba(255,140,0,.28),#07080C 55%)!important;box-shadow:inset 0 0 0 2px rgba(255,178,26,.6)}
.es-deckov.al-on .es-dbar{border-bottom-color:#FFB21A;background:linear-gradient(90deg,rgba(255,106,0,.18),rgba(255,178,26,.08))}
.es-deckov.al-on .es-dwrap{box-shadow:0 0 0 2px #FFB21A,0 0 50px rgba(255,140,0,.35);border-radius:10px;animation:alpulse 1.6s ease-in-out infinite}
.al-trans{display:flex;align-items:center;gap:16px;margin:10px 16px 0;padding:12px 18px;border-radius:14px;border:1px solid #FFB21A;background:linear-gradient(90deg,rgba(255,46,77,.14),rgba(255,178,26,.16));overflow:hidden;position:relative}
.al-trans::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,220,140,.25) 50%,transparent 70%);animation:alsweep 1.8s linear infinite}
.al-trans b{font-family:Cinzel,serif;letter-spacing:.12em}.al-trans small{display:block;color:#FFB21A;letter-spacing:.28em}.al-trans p{margin:4px 0 0;font-size:13px;color:#D9D6CF}
.al-om,.al-al{font:700 40px Cinzel,serif;line-height:1}.al-om{color:#FF2E4D;animation:alout 2.4s ease-in-out infinite}.al-al{color:#FFB21A;text-shadow:0 0 18px rgba(255,170,0,.8);animation:alin 2.4s ease-in-out infinite}.al-arrow{color:#FFB21A;font-size:22px}
@keyframes alfade{from{opacity:0}to{opacity:1}}@keyframes alpulse{50%{box-shadow:0 0 0 2px #FFB21A,0 0 80px rgba(255,140,0,.55)}}@keyframes alsweep{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@keyframes alout{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.25;transform:scale(.85) rotate(-12deg)}}@keyframes alin{0%,100%{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1.12)}}
@media (prefers-reduced-motion:reduce){.al-trans::after,.al-om,.al-al,.es-deckov.al-on .es-dwrap{animation:none}}

/* Menú: Plan estratégico 5P seleccionado = rojo OMEGA con letras blancas; sin seleccionar = igual que el resto */
.nav a[data-k="estrategia"]{white-space:nowrap}
.nav a[data-k="estrategia"][aria-current="page"]{background:#FF2E4D;color:#fff;box-shadow:0 0 18px rgba(255,46,77,.35)}
.nav a[data-k="estrategia"][aria-current="page"] svg{color:#fff;stroke:#fff}

/* Agencia del grupo para el plan (P2P · Influmedia · OMEGA interno) */
.es-ag{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;padding-bottom:12px;border-bottom:1px solid #232838}
.es-agb{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 14px;border-radius:10px;border:1px solid #2A3042;background:transparent;color:#C9CDD8;cursor:pointer;min-width:120px}
.es-agb b{font-size:14px}.es-agb small{font-size:11px;opacity:.7}
.es-agb:hover{border-color:#4A5168}
.es-agb.ag-p2p.on{background:linear-gradient(90deg,#14256D,#6B00F7);border-color:#00BAFF;color:#fff}
.es-agb.ag-influmedia.on{background:linear-gradient(90deg,#493088,#6E3EE8);border-color:#D48EAA;color:#fff}
.es-agb.ag-omega.on{background:#FF2E4D;border-color:#FF2E4D;color:#fff}

/* Cliente nuevo: logos encontrados en su sitio */
.es-plogos{display:flex;flex-wrap:wrap;gap:8px}.es-pl{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;border-radius:10px;border:1px solid #2A3042;background:#fff;cursor:pointer;width:130px}
.es-pl img{max-width:110px;max-height:48px;object-fit:contain}.es-pl small{font-size:10px;color:#4A5168}.es-pl.on{outline:3px solid #2EE6D6;outline-offset:2px}
.es-logoscard{margin:0 0 12px;padding:0 0 12px;border-bottom:1px solid #232838}.es-logoscard summary{cursor:pointer}

/* Salir de la presentación: volver al plan (Dandori); dorado si Alpha ya auditó esta versión */
.btn.es-back{border-color:#3A4052;font-weight:600}.btn.es-back .es-back-jp{font-size:11px;opacity:.7;margin-left:4px}
.btn.es-back.al-ok{border-color:#FFB21A;color:#FFB21A;box-shadow:0 0 12px rgba(255,178,26,.25)}

.btn.es-logowarn{border-color:#F5B841;color:#F5B841;background:rgba(245,184,65,.1);animation:lgpulse 1.8s ease-in-out infinite}.btn.es-logook{color:#2EE6D6}
@keyframes lgpulse{50%{box-shadow:0 0 0 3px rgba(245,184,65,.25)}}
.lg-box{max-width:760px;width:calc(100% - 32px);text-align:left;border-color:#2EE6D6;background:#0E1016;box-shadow:0 0 40px rgba(46,230,214,.15)}
@media (prefers-reduced-motion:reduce){.btn.es-logowarn{animation:none}}

/* DV360 BUILDER · 3 capas (Esencial / Avanzado / Experto) y mapa de la API */
.dv-capa { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 10px; padding: 8px 10px; border: 1px dashed var(--line); border-radius: 12px; }
.dv-capa button { border: 2px solid var(--line); background: #fff; border-radius: 99px; padding: 6px 14px; font: inherit; font-weight: 700; cursor: pointer; min-height: 36px; }
.dv-capa button[aria-pressed="true"] { border-color: #FF2E4D; background: color-mix(in srgb, #FF2E4D 10%, #fff); }
.dv-capa > span { flex: 1 1 320px; }
.dv-mas { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 10px; padding-top: 8px; border-top: 1px dashed var(--line); }
.dv-met { display: flex; flex-direction: column; gap: 4px; margin-top: 12px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--line); }
.dv-mst { margin: 8px 0; gap: 6px; }
.dv-mapg { border: 1px solid var(--line); border-radius: 10px; padding: 6px 10px; margin: 6px 0; }
.dv-mapg summary { cursor: pointer; min-height: 32px; display: flex; align-items: center; gap: 8px; }
.dv-mapr { padding: 8px 0; border-top: 1px solid var(--line); }
.dv-mapr p { margin: 3px 0; }
.dv-mapr code { word-break: break-all; }
.dv-cap { font-size: 11px; font-weight: 800; padding: 2px 8px; border-radius: 99px; text-transform: uppercase; letter-spacing: .04em; }
.dv-cap.cE { background: #dcfce7; color: #14532d; } .dv-cap.cA { background: #fef3c7; color: #78350f; } .dv-cap.cX { background: #fee2e2; color: #7f1d1d; }
.dv-st2 { font-size: 12px; padding: 2px 8px; border-radius: 6px; background: #eef2f7; color: #334155; }
.dv-st2.ok { background: #e0f2fe; color: #075985; } .dv-st2.man { background: #fde2e7; color: #9f1239; } .dv-st2.pend { background: #f3e8ff; color: #5b21b6; }
/* DV360 · subir creativos */
.dv-up { margin-top: 14px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; display: flex; flex-direction: column; gap: 8px; }
.dv-items { display: flex; flex-direction: column; gap: 8px; }
.dv-item { border: 1px solid var(--line); border-left: 4px solid #94a3b8; border-radius: 10px; padding: 8px 10px; display: flex; flex-direction: column; gap: 6px; }
.dv-item.ok { border-left-color: #2EE6D6; } .dv-item.bad { border-left-color: #e11d48; } .dv-item.warn { border-left-color: #FF5C74; background: color-mix(in srgb, #FF5C74 6%, transparent); }
.dv-item p { margin: 0; }
/* 反省 Hansei · Resultados */
.hs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; margin-top: 14px; }
.hs-card { display: flex; flex-direction: column; gap: 8px; padding: 14px 16px; border-radius: 14px; border: 1px solid var(--line); border-left: 4px solid #e11d48; background: #fff; color: inherit; text-decoration: none; }
.hs-card.ok { border-left-color: #2EE6D6; } .hs-card:hover { box-shadow: var(--shadow); }
.hs-ch, .hs-ph { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .hs-ph h2 { margin: 0; }
.hs-bar { height: 6px; border-radius: 99px; background: #e5e7eb; overflow: hidden; } .hs-bar i { display: block; height: 100%; background: linear-gradient(90deg, #FF2E4D, #2EE6D6); }
.hs-chk { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; } .hs-chk li { display: flex; gap: 8px; align-items: flex-start; }
.hs-chk.sm li { font-size: 12.5px; } .hs-i { width: 20px; text-align: center; font-weight: 800; } .hs-chk .ok .hs-i { color: #2EE6D6; } .hs-chk .bad .hs-i { color: #e11d48; } .hs-chk .warn .hs-i { color: #d97706; }
.hs-h3 { margin: 0 0 8px; font-size: 16px; } .hs-ficha { display: flex; flex-direction: column; gap: 10px; } .hs-ficha textarea, .hs-ficha select { width: 100%; }
.hs-t { width: 100%; border-collapse: collapse; } .hs-t th, .hs-t td { padding: 7px 8px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; } .hs-t .num { text-align: right; }
.hs-kp { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; } .hs-kp div { display: flex; flex-direction: column; padding: 10px; border-radius: 10px; border: 1px dashed var(--line); } .hs-kp span { font-size: 12px; opacity: .75; } .hs-kp b { font-size: 20px; }
.hs-nav .nav-sub .l { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Paleta OMEGA para capas DV360 y Hansei (sin semáforo rojo/verde/amarillo): turquesa = listo/básico, rojo OMEGA = falta/experto, neutro = intermedio */
.dv-cb { display: inline-flex; align-items: center; gap: 8px; text-align: left; }
.dv-cb .dv-kj { font-size: 18px; font-weight: 800; line-height: 1; }
.dv-cb span b { display: block; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; } .dv-cb span small { display: block; font-size: 11px; opacity: .75; font-weight: 600; }
.dv-capa button[aria-pressed="true"] { border-color: #2EE6D6; background: color-mix(in srgb, #2EE6D6 12%, #fff); }
.dv-cap { border: 1px solid; background: transparent !important; }
.dv-cap.cE { color: #0e7f76 !important; border-color: #2EE6D6; } .dv-cap.cA { color: #475569 !important; border-color: #94a3b8; } .dv-cap.cX { color: #c8102e !important; border-color: #FF2E4D; }
.dv-st2.ok { background: color-mix(in srgb, #2EE6D6 14%, transparent); color: #0e7f76; } .dv-st2.man { background: color-mix(in srgb, #FF2E4D 12%, transparent); color: #c8102e; } .dv-st2.pend { background: #eef2f7; color: #475569; }
.dv-item.ok { border-left-color: #2EE6D6; } .dv-item.bad { border-left-color: #FF2E4D; } .dv-item.warn { border-left-color: #94a3b8; background: transparent; }
.hs-card { border-left-color: #FF2E4D; } .hs-card.ok { border-left-color: #2EE6D6; }
.hs-chk .ok .hs-i { color: #0e9f94; } .hs-chk .bad .hs-i { color: #FF2E4D; } .hs-chk .warn .hs-i { color: #94a3b8; }
.hs-jp { color: #FF2E4D; font-weight: 800; margin-right: 6px; letter-spacing: .04em; }
.hs-two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 10px; } .hs-hi { color: #FF2E4D; } .hs-lo { color: #64748b; }
:where(html.om-dark) .hs-lo { color: #94a3b8; }
.hs-fix { border: 1px solid #2EE6D6; background: transparent; color: inherit; border-radius: 99px; padding: 1px 8px; margin: 2px 4px 2px 0; font: inherit; cursor: pointer; } .hs-fix:hover { background: color-mix(in srgb, #2EE6D6 15%, transparent); }
.adj-btn { margin-left: auto; order: 9; }
.adj-dlg { border: 1px solid #262a38; border-radius: 16px; padding: 0; max-width: min(960px, 96vw); width: 100%; background: #0B0D12; color: #e7e9ee; }
.adj-dlg::backdrop { background: rgba(5,6,10,.7); }
.adj-f { padding: 18px 20px; display: flex; flex-direction: column; gap: 12px; } .adj-f h3 { margin: 0; }
.adj-t { width: 100%; border-collapse: collapse; } .adj-t th, .adj-t td { padding: 6px 8px; border-bottom: 1px solid #262a38; text-align: left; vertical-align: top; } .adj-t .num { text-align: right; } .adj-t input { width: 100%; }
/* Capas DV360: turquesa · rojo OMEGA · turquesa (Kihon / Ōyō / Tatsujin) */
.dv-cb[data-dvcapa="E"] .dv-kj, .dv-cb[data-dvcapa="X"] .dv-kj { color: #2EE6D6; } .dv-cb[data-dvcapa="A"] .dv-kj { color: #FF2E4D; }
.dv-capa .dv-cb[data-dvcapa="A"][aria-pressed="true"] { border-color: #FF2E4D; background: color-mix(in srgb, #FF2E4D 12%, transparent); }
/* 新規 Shinki · Nuevo cliente (Jidoka pieza 1) */
.lg-tile-new { border-style: dashed; border-color: #2EE6D6; } .lg-tile-new b { color: #0f9c91; }
.lg-nc { margin: 6px 0 12px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; }
.lg-nc-h { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; } .lg-nc-k { font-size: 22px; color: #2EE6D6; line-height: 1; }
.lg-nc-seg { display: inline-flex; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.lg-nc-seg button { font: inherit; font-size: 13px; padding: 7px 14px; background: transparent; color: inherit; border: 0; border-right: 1px solid var(--line); cursor: pointer; } .lg-nc-seg button:last-child { border-right: 0; }
.lg-nc-seg button.on { background: color-mix(in srgb, #2EE6D6 18%, transparent); color: #0f9c91; font-weight: 600; box-shadow: inset 0 -2px 0 #2EE6D6; }
.lg-nc-code { max-width: 120px; letter-spacing: .08em; text-transform: uppercase; } .lg-nc-pct { width: 90px; }
.lg-nc-dup { border-left: 3px solid #FF2E4D; padding: 8px 12px; border-radius: 8px; background: color-mix(in srgb, #FF2E4D 7%, transparent); display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; font-size: 13px; }
.lg-nc-dup .lg-ck { flex-basis: 100%; } .lg-nc-use { font: inherit; font-size: 12px; border: 1px solid var(--line); background: transparent; color: inherit; border-radius: 999px; padding: 3px 10px; cursor: pointer; } .lg-nc-use:disabled { opacity: .5; cursor: default; }
.lg-nc-f { display: flex; align-items: center; gap: 10px; margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--line); }
/* 口座 Kōza · Cuenta de Meta del cliente (Jidoka pieza 1) */
.lg-ma { margin: 6px 0 12px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; display: flex; flex-direction: column; gap: 10px; }
.lg-ma-h { display: flex; gap: 12px; align-items: center; } .lg-ma-k { font-size: 22px; color: #2EE6D6; line-height: 1; }
.lg-ma-mine { display: flex; flex-direction: column; gap: 6px; } .lg-ma-acc { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.lg-ma-tag { font-size: 11px; border: 1px solid #2EE6D6; color: #0f9c91; border-radius: 999px; padding: 1px 8px; }
.lg-ma-tabs { align-self: flex-start; flex-wrap: wrap; } .lg-ma-tk { color: #FF2E4D; margin-right: 2px; } .lg-ma-tabs button.on .lg-ma-tk { color: inherit; }
.lg-ma-body { display: flex; flex-direction: column; gap: 10px; } .lg-ma-body p { margin: 0; }
.lg-ma-list { display: flex; flex-direction: column; gap: 6px; }
.lg-ma-row { display: grid; grid-template-columns: auto 1fr; column-gap: 10px; row-gap: 2px; align-items: baseline; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; cursor: pointer; }
.lg-ma-row > :not(input) { grid-column: 2; } .lg-ma-row > b { grid-column: 2; grid-row: 1; } .lg-ma-row input { grid-row: 1; }
.lg-ma-row.off { opacity: .75; cursor: default; } .lg-ma-id input { max-width: 260px; }
.lg-ma-ck { display: flex; flex-direction: column; gap: 8px; border-left: 3px solid #2EE6D6; padding: 8px 12px; border-radius: 8px; background: color-mix(in srgb, #2EE6D6 6%, transparent); }
.lg-ma-note { border-left: 3px solid #FF2E4D; padding: 6px 10px; border-radius: 6px; background: color-mix(in srgb, #FF2E4D 7%, transparent); }
.lg-ma textarea { width: 100%; resize: vertical; }
/* Ajuste de presupuesto: que la columna de unidad no se corte */
.adj-dlg { max-width: min(1120px, 96vw); } .adj-t th:last-child, .adj-t td:last-child { min-width: 190px; } .adj-t td:first-child { word-break: break-word; }
/* Jidoka · BUILDER: kanji en lugar de emojis, y que la burbuja del asistente no tape "Encajar pieza" */
.lg-emo { font-size: 22px; font-weight: 600; color: #2EE6D6; letter-spacing: .02em; } .lg-tile.sel .lg-emo { color: #FF2E4D; }
.lg-off .lg-emo { color: var(--muted); } .lg-kj { color: #FF2E4D; font-weight: 600; margin-right: 2px; }
@media (min-width: 761px) { .lg-f { padding-right: 210px; } }
@media (max-width: 760px) { .lg-f { padding-bottom: 76px; } }
/* 改善 Kaizen · ajustes en Meta desde el detalle de la línea */
.kz h3 small { font-weight: 400; font-size: 12px; margin-left: 6px; }
.kz-cap { margin: 8px 0 12px; } .kz-cap-t { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; margin-bottom: 6px; }
.kz-cap-b { height: 8px; border-radius: 99px; background: color-mix(in srgb, #2EE6D6 12%, transparent); overflow: hidden; } .kz-cap-b i { display: block; height: 100%; background: #2EE6D6; border-radius: 99px; } .kz-cap-b i.over { background: #FF2E4D; }
.kz-camp { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; margin: 10px 0; }
.kz-set { border-left: 2px solid #2EE6D6; margin: 10px 0 4px 6px; padding-left: 12px; }
.kz-row { display: flex; gap: 10px; align-items: flex-start; } .kz-ctl { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.kz-ads { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; } .kz-ad { display: flex; align-items: center; gap: 8px; font-size: 13px; padding: 4px 0; border-top: 1px dashed var(--line); }
.kz-form { display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; margin: 6px 0 10px; border-radius: 10px; background: color-mix(in srgb, #2EE6D6 6%, transparent); border: 1px solid color-mix(in srgb, #2EE6D6 35%, transparent); }
.kz-form label.sm { display: flex; flex-direction: column; gap: 4px; } .kz-form .row { gap: 8px; align-items: center; } .kz-file { align-self: flex-start; cursor: pointer; }
.kz-pend { border: 1px solid #FF2E4D; border-radius: 12px; padding: 10px 12px; margin: 10px 0; background: color-mix(in srgb, #FF2E4D 6%, transparent); display: flex; flex-direction: column; gap: 8px; }
.kz-ch { display: flex; justify-content: space-between; gap: 10px; align-items: center; font-size: 13px; padding: 6px 0; border-top: 1px dashed var(--line); } .kz-pend .kz-ch:first-of-type { border-top: 0; }
.kz-st { font-size: 11px; border: 1px solid var(--line); border-radius: 99px; padding: 1px 8px; margin-left: 4px; } .kz-st.hl-t { border-color: #2EE6D6; color: #0f9c91; } .kz-st.hl-r { border-color: #FF2E4D; color: #FF2E4D; }
.btn.kz-danger { background: #FF2E4D; border-color: #FF2E4D; color: #fff; }
.kz-hist { margin-top: 10px; } .kz-hist summary { cursor: pointer; }
:where(html.om-dark) .kz-camp { border-color: #262a38; } :where(html.om-dark) .kz-st.hl-t { color: #2EE6D6; }
/* KPI cumplido: borde turquesa OMEGA, sin alarma */
.mcard.risk-done { border-left: 4px solid #2EE6D6; }
.pf-h { display: flex; flex-direction: column; gap: 2px; margin: 4px 0; }
.kz-form input.kz-bad { border-color: #FF2E4D; }
/* Volver al cliente (navegación) */
.om-back { border-color: #2EE6D6; color: #0f9c91; } :where(html.om-dark) .om-back { color: #2EE6D6; }
/* 改善 Kaizen · pantalla completa (#/kaizen): sin menú ni barra superior, OMEGA grande arriba a la izquierda */
body.kz-fs .side, body.kz-fs .m-bar, body.kz-fs .top, body.kz-fs .strip { display: none !important; }
body.kz-fs .shell { display: block; } body.kz-fs .main { margin: 0 !important; padding: 0 !important; width: 100%; max-width: none; }
body.kz-fs .page { padding: 0 !important; max-width: none !important; }
.kzf { min-height: 100vh; padding: 18px 28px 40px; background: radial-gradient(1200px 500px at 0% 0%, rgba(46,230,214,.07), transparent 60%), #0B0D12; color: #e7e9ee; }
.kzf-h { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; flex-wrap: wrap; }
.kzf-brand { display: flex; align-items: center; gap: 14px; text-decoration: none; color: inherit; }
.kzf-brand img { width: 54px; height: 54px; } .kzf-brand b { display: block; font-size: 30px; letter-spacing: .28em; font-family: var(--font-display, inherit); }
.kzf-brand small { display: block; font-size: 12px; letter-spacing: .14em; color: #2EE6D6; text-transform: uppercase; }
.kzf-m { font-size: 13px; color: #9aa1b5; margin-right: 6px; }
.kzf-k { color: #FF2E4D; margin-right: 4px; } .kzf-n { display: inline-block; min-width: 26px; padding: 0 8px; border-radius: 99px; background: rgba(46,230,214,.15); color: #2EE6D6; font-size: 14px; text-align: center; margin-left: 6px; }
.kzf-home { display: grid; grid-template-columns: minmax(320px, 420px) minmax(0, 1fr); gap: 22px; align-items: start; }
.kzf-inbox, .kzf-list { background: #12151d; border: 1px solid #262a38; border-radius: 16px; padding: 16px 18px; }
.kzf-inbox { position: sticky; top: 16px; border-color: rgba(255,46,77,.45); } .kzf-inbox h2, .kzf-list h2 { font-size: 18px; margin: 0 0 6px; }
.kzf-ch { display: flex; flex-direction: column; gap: 8px; padding: 10px 0; border-top: 1px dashed #262a38; font-size: 13px; } .kzf-act { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.kzf-empty { color: #9aa1b5; font-size: 13px; padding: 10px 0; }
.kzf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; margin-top: 12px; }
.kzf-card { display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; border-radius: 12px; border: 1px solid #262a38; border-left-width: 4px; background: #0f1219; color: inherit; text-decoration: none; transition: transform .15s, border-color .15s; }
.kzf-card:hover { transform: translateY(-2px); border-color: #2EE6D6; } .kzf-open { color: #2EE6D6; font-size: 13px; margin-top: auto; }
.kzf-card.risk-critical { border-left-color: #FF2E4D; } .kzf-card.risk-risk { border-left-color: #FF5C74; } .kzf-card.risk-good, .kzf-card.risk-done { border-left-color: #2EE6D6; }
.kzf-ctx { display: flex; gap: 16px; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid #262a38; }
.kzf-ctx h1 { margin: 4px 0 0; font-size: 22px; } .kzf-strip { display: flex; gap: 10px; align-items: center; font-size: 14px; flex-wrap: wrap; }
.kzf-work { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 20px; align-items: start; }
.kzf-work > h3 { display: none; } .kzf-work .kz-r { position: sticky; top: 16px; display: flex; flex-direction: column; gap: 12px; }
.kzf-work .kz-r > * { background: #12151d; border: 1px solid #262a38; border-radius: 14px; padding: 12px 14px; margin: 0; }
.kzf-work .kz-r .kz-pend { border-color: #FF2E4D; } .kzf-work .kz-camp { background: #12151d; padding: 14px 16px; font-size: 15px; }
.kzf-work .kz-form { font-size: 15px; } .kzf-work .kz-form .in { font-size: 15px; padding: 10px 12px; }
.kz-go { display: inline-flex; align-items: center; font-size: 12px; padding: 3px 10px; border-radius: 99px; border: 1px solid #2EE6D6; color: #2EE6D6; cursor: pointer; margin-top: 4px; }
.kz-go:hover { background: rgba(46,230,214,.12); }
.btn.kz-btn { border-color: #2EE6D6; color: #2EE6D6; } .kz-cta { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
@media (max-width: 960px) { .kzf { padding: 14px 16px 30px; } .kzf-home, .kzf-work { grid-template-columns: 1fr; } .kzf-inbox, .kzf-work .kz-r { position: static; } .kzf-brand b { font-size: 22px; } }
.kzf-card b, .kzf-ctx h1 { overflow-wrap: anywhere; }
.kzf-nav { display: flex; flex-wrap: wrap; gap: 4px; margin: -6px 0 16px; padding: 6px; border: 1px solid #262a38; border-radius: 12px; background: #0f1219; }
.kzf-nav a { padding: 6px 12px; border-radius: 8px; color: #c9cede; text-decoration: none; font-size: 13px; } .kzf-nav a:hover { background: rgba(46,230,214,.1); color: #2EE6D6; }
.kzf-nav a[aria-current] { background: rgba(46,230,214,.16); color: #2EE6D6; font-weight: 600; }
/* ---------- 学 Manabu · Aprender (paleta OMEGA: turquesa = aprendizaje y bien; rojo = corregir) ---------- */
.mb-wrap { display: flex; flex-direction: column; gap: 14px; }
.mb-intro { display: flex; gap: 16px; align-items: center; padding: 16px 18px; border: 1px solid var(--line); border-left: 4px solid #2EE6D6; border-radius: 14px; background: var(--white, #12151D); }
.mb-intro > span { font-size: 44px; line-height: 1; color: #2EE6D6; font-family: 'Noto Serif JP', serif; }
.mb-intro p { margin: 4px 0 0; color: var(--muted); font-size: 14px; }
.mb-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.mb-tabs button { font: inherit; font-size: 14px; font-weight: 600; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--line); background: transparent; color: var(--muted); cursor: pointer; }
.mb-tabs button[aria-pressed="true"] { border-color: #2EE6D6; color: var(--ink); background: rgba(46,230,214,.10); }
.mb-tabs button span[lang] { color: #2EE6D6; }
.mb-badge { display: inline-block; min-width: 20px; padding: 0 6px; border-radius: 999px; background: #FF2E4D; color: #fff; font-size: 12px; text-align: center; }
.mb-lesson { margin: 4px 0 12px; border: 1px solid rgba(46,230,214,.35); border-radius: 12px; background: rgba(46,230,214,.05); padding: 10px 14px; }
.mb-lesson summary { display: flex; align-items: center; gap: 8px; cursor: pointer; list-style: none; }
.mb-lesson summary::-webkit-details-marker { display: none; }
.mb-lesson summary span[lang] { color: #2EE6D6; font-size: 18px; }
.mb-why { margin: 10px 0 6px 18px; padding: 0; font-size: 14px; }
.mb-why li { margin: 4px 0; }
.mb-rule { font-size: 14px; margin: 8px 0; padding: 8px 10px; border-left: 3px solid #2EE6D6; background: rgba(46,230,214,.06); border-radius: 0 8px 8px 0; }
.mb-manual { font-size: 13.5px; margin: 8px 0; }
.mb-manual ol { margin: 6px 0 4px 18px; padding: 0; }
.mb-mist { font-size: 13.5px; margin: 6px 0 0; padding: 8px 10px; border-left: 3px solid #FF2E4D; background: rgba(255,46,77,.06); border-radius: 0 8px 8px 0; }
.mb-quiz { margin: 12px 0 4px; padding: 12px 14px; border: 1px dashed rgba(46,230,214,.5); border-radius: 12px; }
.mb-quiz.ok { border-style: solid; }
.mb-quiz b span[lang] { color: #2EE6D6; }
.mb-opts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.mb-opts button { font: inherit; font-size: 13.5px; padding: 8px 12px; border-radius: 10px; border: 1px solid var(--line); background: transparent; color: var(--ink); cursor: pointer; text-align: left; }
.mb-opts button:hover:not([disabled]) { border-color: #2EE6D6; }
.mb-opts button.right { border-color: #2EE6D6; background: rgba(46,230,214,.14); }
.mb-opts button.wrong { border-color: #FF2E4D; background: rgba(255,46,77,.10); }
.mb-opts button[disabled] { cursor: default; opacity: .85; }
.mb-brief { margin: 10px 0 4px; padding: 12px 14px; border: 1px solid var(--line); border-left: 4px solid #2EE6D6; border-radius: 10px; }
.mb-brief p { margin: 4px 0; font-size: 14px; }
.mb-rv { list-style: none; margin: 8px 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.mb-rv li { display: grid; grid-template-columns: 76px 150px 1fr; gap: 10px; align-items: baseline; font-size: 13.5px; padding: 6px 10px; border-radius: 8px; border: 1px solid var(--line); }
.mb-lv { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.mb-rv .mb-err { border-color: rgba(255,46,77,.5); } .mb-rv .mb-err .mb-lv { color: #FF2E4D; }
.mb-rv .mb-warn .mb-lv { color: var(--ink); } .mb-rv .mb-ok .mb-lv { color: #2EE6D6; } .mb-rv .mb-info .mb-lv { color: var(--muted); }
@media (max-width: 640px) { .mb-rv li { grid-template-columns: 1fr; gap: 2px; } }
.mb-score { display: inline-flex; align-items: baseline; gap: 8px; margin-top: 6px; } .mb-score b { font-size: 28px; color: #2EE6D6; }
.mb-sent { display: flex; gap: 14px; align-items: center; padding: 14px; border: 1px solid #2EE6D6; border-radius: 12px; }
.mb-sent > span { font-size: 30px; color: #2EE6D6; }
.mb-row { cursor: pointer; } .mb-row:hover td, .mb-row.sel td { background: rgba(46,230,214,.06); }
.mb-detail { margin-top: 16px; border-left: 4px solid #2EE6D6; }
.mb-detail h2 span[lang] { color: #2EE6D6; margin-right: 6px; }
.mb-dl { display: grid; grid-template-columns: 110px 1fr; gap: 6px 12px; font-size: 13.5px; margin: 0; } .mb-dl dt { color: var(--muted); } .mb-dl dd { margin: 0; }
.mb-notes { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.mb-note { border: 1px solid var(--line); border-radius: 10px; padding: 10px; display: flex; flex-direction: column; gap: 6px; }
.mb-note.ok { border-color: rgba(46,230,214,.5); } .mb-note.fix { border-color: rgba(255,46,77,.6); }
.mb-note.fix .mb-lv { color: #FF2E4D; } .mb-note.ok .mb-lv { color: #2EE6D6; }
.mb-note p { margin: 0; }
.mb-mount { margin-top: 14px; padding: 12px 14px; border: 1px dashed #FF2E4D; border-radius: 12px; }
.mb-level .mb-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.mb-step { border: 1px solid var(--line); border-radius: 12px; padding: 12px; display: flex; flex-direction: column; gap: 2px; opacity: .6; }
.mb-step span[lang] { font-size: 22px; color: var(--muted); }
.mb-step.done { opacity: .9; } .mb-step.done span[lang] { color: #2EE6D6; }
.mb-step.cur { opacity: 1; border-color: #2EE6D6; background: rgba(46,230,214,.07); } .mb-step.cur span[lang] { color: #FF2E4D; }
.mb-step p { margin: 6px 0 0; }
@media (max-width: 640px) { .mb-level .mb-steps { grid-template-columns: 1fr; } }
.mb-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 14px 0 6px; }
.mb-kpis div { border: 1px solid var(--line); border-radius: 10px; padding: 10px; display: flex; flex-direction: column; } .mb-kpis b { font-size: 22px; } .mb-kpis span { font-size: 12px; color: var(--muted); }
@media (max-width: 640px) { .mb-kpis { grid-template-columns: repeat(2, 1fr); } }
.mb-person { margin: 6px 0 -4px; color: var(--ink); text-transform: none; letter-spacing: 0; font-size: 16px; }
.mb-hero .lg-hero-kj { color: #2EE6D6; }
/* Título de página parejo (17-oct-2026): kanji + romaji + español, sin mayúsculas forzadas */
#ptitle { text-transform: none; letter-spacing: 0; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
#ptitle .pt-kj { font-family: 'Noto Sans JP', sans-serif; color: #FF2E4D; font-size: 1.15em; }
#ptitle .pt-ro { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
#ptitle .pt-es { font-size: 1.05em; }
.g-layer { margin-top: 10px; padding-top: 8px; border-top: 1px solid rgba(127,127,127,.25); } .g-layer p { margin: 4px 0 0; } .g-mi { border: 0; background: none; cursor: pointer; padding: 0 4px; font-size: 13px; line-height: 1; color: inherit; opacity: .75; } .g-mi:hover, .g-mi[aria-pressed="true"] { opacity: 1; }
.rs-pcw { position: relative; display: flex; } .rs-pcw > .rs-pcard { flex: 1; } .rs-pdx { position: absolute; top: 6px; right: 6px; font-size: 12px; padding: 2px 8px; }
/* Botones de cerrar (17-oct-2026): siempre "閉じる Cerrar" en naranja, en todo OMEGA. Aplica a todo botón con aria-label que empiece por "Cerrar". */
button[aria-label^="Cerrar"] { font-size: 0 !important; width: auto !important; min-width: 0 !important; height: auto !important; padding: 5px 11px !important; border-radius: 999px !important; border: 1px solid rgba(255, 159, 67, .6) !important; background: rgba(255, 159, 67, .12) !important; color: #FF9F43 !important; line-height: 1 !important; vertical-align: middle; cursor: pointer; box-shadow: none !important; white-space: nowrap !important; flex-shrink: 0 !important; }
button[aria-label^="Cerrar"] > * { display: none !important; }
button[aria-label^="Cerrar"]::before { content: "閉じる"; font-size: 13px; font-weight: 700; letter-spacing: .02em; }
button[aria-label^="Cerrar"]::after { content: "Cerrar"; font-size: 12px; font-weight: 600; margin-left: 6px; }
button[aria-label^="Cerrar"]:hover, button[aria-label^="Cerrar"]:focus-visible { background: rgba(255, 159, 67, .24) !important; border-color: #FF9F43 !important; outline: none; }
/* ☀/☾ Cambio de modo (17-oct-2026) */
.om-theme { margin-top: 10px; display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 999px; border: 1px solid rgba(46, 230, 214, .45); background: rgba(46, 230, 214, .08); color: #2EE6D6; font-size: 12px; font-weight: 600; cursor: pointer; }
.om-theme span { font-size: 13px; font-weight: 700; }
html.om-light .om-theme { border-color: rgba(14, 124, 116, .45); background: rgba(14, 124, 116, .07); color: #0E7C74; }

/* Pantalla de carga OMEGA (loader.js): núcleo Ω del login girando mientras la IA lee o genera */
#om-load { position: fixed; inset: 0; z-index: 9998; background: rgba(7,8,12,.96); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; padding: 24px; overflow: hidden; transition: opacity .4s ease; }
#om-load.out { opacity: 0; }
#om-load .oi-planes i { position: absolute; }
#om-load .oi-core { --oi: min(300px, 62vw, 42vh); animation: oiIn 1s cubic-bezier(.2,.8,.2,1) both; }
#om-load .oi-seg { animation: oiLoop 8s ease-in-out infinite; } #om-load .oi-seg[data-i="1"] { animation-delay: 1s; } #om-load .oi-seg[data-i="2"] { animation-delay: 2s; } #om-load .oi-seg[data-i="3"] { animation-delay: 3s; }
#om-load .oi-lab { animation: oiLab 8s ease-in-out infinite; } #om-load .oi-l1 { animation-delay: 1s; } #om-load .oi-l2 { animation-delay: 2s; } #om-load .oi-l3 { animation-delay: 3s; }
#om-load .oi-brand b { font-size: clamp(28px, 4vw, 44px); }
#om-load .ol-txt { text-align: center; max-width: 560px; position: relative; z-index: 1; }
#om-load .ol-t { margin: 0 0 8px; font-size: 18px; font-weight: 600; color: #E9E6DF; letter-spacing: .02em; }
#om-load .ol-msg { margin: 0; color: #2EE6D6; font-size: 15px; min-height: 1.4em; }
#om-load .ol-msg.ol-in { animation: olIn .5s ease both; }
#om-load .ol-time { margin: 10px 0 0; color: #6B7183; font: 500 12px/1 ui-monospace, Menlo, monospace; letter-spacing: .12em; }
@keyframes olIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { #om-load .oi-core, #om-load .oi-seg, #om-load .oi-lab, #om-load .ol-msg.ol-in { animation: none; } #om-load .oi-seg { stroke-dasharray: 199 830; } }
/* Revisión de plan por meses */
.pl-m { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 6px 0; border-bottom: 1px dashed rgba(46,230,214,.14); }
.pl-m:last-child { border-bottom: 0; }
.pl-ml { min-width: 118px; color: #2EE6D6; text-transform: capitalize; }
.pl-past { padding: 6px 8px; margin-bottom: 4px; border: 1px solid rgba(245,184,65,.35); border-radius: 8px; background: rgba(245,184,65,.06); }
tr.pl-off td { opacity: .45; }
.pl-m input.in { width: 96px !important; min-width: 0; } .pl-m select.in { width: auto; max-width: 280px; min-width: 0; }

/* Avisos OMEGA (core.js toast): arriba al centro, encima de todo, nunca debajo del botón flotante de OMEGA */
.toasts { left: 50%; right: auto; top: 18px; bottom: auto; transform: translateX(-50%); z-index: 10000; align-items: center; width: min(520px, calc(100vw - 32px)); pointer-events: none; }
.toast { display: flex; align-items: flex-start; gap: 12px; width: 100%; max-width: none; padding: 12px 14px; border-radius: 14px; background: #0B0D12 !important; color: #E9E6DF !important; border: 1px solid #262A38; border-left: 4px solid #2EE6D6; box-shadow: 0 14px 40px rgba(0,0,0,.55) !important; pointer-events: auto; animation: toastIn .35s cubic-bezier(.2,.8,.2,1) both; }
.toast-err { border-left-color: #FF2E4D; } .toast-warn { border-left-color: #FF9F43; }
.toast-o { width: 26px; height: 26px; flex: none; margin-top: 1px; }
.toast-b { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.toast-h { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #2EE6D6; }
.toast-err .toast-h { color: #FF2E4D; } .toast-warn .toast-h { color: #FF9F43; }
.toast-m { font-size: 14px; line-height: 1.4; overflow-wrap: anywhere; }
.toast-x { flex: none; background: none; border: 0; color: #8A90A2; font-size: 20px; line-height: 1; cursor: pointer; padding: 0 2px; }
.toast-x:hover { color: #E9E6DF; }
.toast.out { opacity: 0; transform: translateY(-8px); transition: opacity .35s, transform .35s; }
@keyframes toastIn { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .toast { animation: none; } }
/* 学 Aprende japonés en la pantalla de carga */
@media (max-height: 760px) { #om-load .oi-core { --oi: min(220px, 50vw, 30vh); } }
.es-why { margin: 8px 0 0; padding: 8px 10px; border: 1px solid rgba(255,159,67,.45); border-radius: 10px; color: #FF9F43; background: rgba(255,159,67,.06); }
.es-why b { color: #FF9F43; }

/* Ventanas OMEGA: fondo obsidiana con desenfoque (antes quedaba turquesa al 45 %) y campo de archivo con diseño propio */
html .overlay { background: rgba(7, 8, 12, .78) !important; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
html.om-light .overlay { background: rgba(11, 13, 18, .55) !important; }
.modal input[type="file"], .card input[type="file"]:not(.hide) { display: block; width: 100%; box-sizing: border-box; padding: 22px 18px; border: 2px dashed #2EE6D6; border-radius: 14px; background: rgba(46, 230, 214, .05); color: #9AA1B5; font: 15px 'Outfit', system-ui, sans-serif; cursor: pointer; }
.modal input[type="file"]:hover, .modal input[type="file"]:focus-visible { background: rgba(46, 230, 214, .1); outline: none; border-color: #2EE6D6; }
.modal input[type="file"]::file-selector-button, .card input[type="file"]::file-selector-button { margin-right: 14px; padding: 10px 18px; border: 0; border-radius: 10px; background: #2EE6D6; color: #0B0D12; font: 600 15px 'Outfit', system-ui, sans-serif; cursor: pointer; }
html.om-light .modal input[type="file"] { border-color: #0E7C74; background: rgba(14, 124, 116, .05); color: #5B6273; }
html.om-light .modal input[type="file"]::file-selector-button { background: #0E7C74; color: #FFFFFF; }
.modal h2 { display: flex; align-items: center; gap: 10px; }
.modal h2::before { content: ""; width: 26px; height: 26px; flex: none; background: url(assets/omega.svg) center / contain no-repeat; }
.om-file { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 20px 18px; border: 2px dashed #2EE6D6; border-radius: 14px; background: rgba(46, 230, 214, .05); cursor: pointer; transition: background .2s; }
.om-file:hover, .om-file.drag, .om-file:focus-within { background: rgba(46, 230, 214, .12); }
.om-file.has { border-style: solid; }
.om-file input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.om-file-b { padding: 10px 18px; border-radius: 10px; background: #2EE6D6; color: #0B0D12; font: 600 15px 'Outfit', system-ui, sans-serif; white-space: nowrap; }
.om-file-b span { font-family: 'Noto Sans JP', sans-serif; margin-right: 4px; }
.om-file-n { color: #9AA1B5; font-size: 14px; overflow-wrap: anywhere; min-width: 0; }
.om-file.has .om-file-n { color: #E9E6DF; font-weight: 500; }
html.om-light .om-file { border-color: #0E7C74; background: rgba(14, 124, 116, .05); }
html.om-light .om-file-b { background: #0E7C74; color: #FFFFFF; }
html.om-light .om-file-n { color: #5B6273; } html.om-light .om-file.has .om-file-n { color: #0B0D12; }

/* Recuadros de aviso con la regla OMEGA (18-oct): rojo SOLO para lo crítico; atención en naranja; información en neutro con borde turquesa */
html.om-dark .alertbox { background: rgba(255, 46, 77, .10); color: #FF6B80; border: 1px solid rgba(255, 46, 77, .35); }
html.om-dark .alertbox.warn { background: rgba(255, 159, 67, .08); color: #FFB774; border: 1px solid rgba(255, 159, 67, .35); }
html.om-dark .alertbox.info { background: #12151D; color: #C9CDD8; border: 1px solid #262A38; border-left: 3px solid #2EE6D6; }
html.om-dark .alertbox.info b { color: #E9E6DF; }
html.om-dark.om-light .alertbox { background: rgba(200, 16, 46, .07); color: #A00D25; border-color: rgba(200, 16, 46, .3); }
html.om-dark.om-light .alertbox.warn { background: rgba(184, 92, 0, .07); color: #8A4500; border-color: rgba(184, 92, 0, .35); }
html.om-dark.om-light .alertbox.info { background: #FFFFFF; color: #3A4150; border-color: #D5D9E1; border-left-color: #0E7C74; }
html.om-dark.om-light .alertbox.info b { color: #0B0D12; }
.alertbox details summary { cursor: pointer; font-weight: 600; }
.alertbox details[open] summary { margin-bottom: 6px; }
.pm-next { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 0 0 16px; padding: 16px 18px; border: 1px solid #262A38; border-left: 3px solid #2EE6D6; border-radius: 14px; background: #12151D; }
.pm-next b span { color: #FF2E4D; font-family: 'Noto Sans JP', sans-serif; margin-right: 6px; }
.pm-next > div { min-width: 0; flex: 1 1 420px; }
html.om-light .pm-next { background: #FFFFFF; border-color: #D5D9E1; border-left-color: #0E7C74; }
/* 設置完了 Ventana de éxito OMEGA y Ω miniatura girando en procesos del builder */
.om-done-box { border-color: rgba(46, 230, 214, .55); box-shadow: 0 20px 60px rgba(0,0,0,.5), 0 0 0 1px rgba(46,230,214,.15), 0 0 48px rgba(46,230,214,.12); }
.om-done-orb { box-shadow: inset 0 0 0 1.5px rgba(46, 230, 214, .8); }
.om-done-box small { color: #2EE6D6; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; }
.om-done-box small span { font-family: 'Noto Sans JP', sans-serif; color: #FF2E4D; margin-right: 4px; }
.om-done-dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; margin: 14px 0; padding: 12px 14px; background: #12151D; border: 1px solid #262A38; border-radius: 12px; font-size: 14px; }
.om-done-dl dt { color: #9AA1B5; } .om-done-dl dd { margin: 0; color: #E9E6DF; font-weight: 500; overflow-wrap: anywhere; }
.om-mini { display: inline-flex; align-items: center; gap: 8px; }
.om-mini img { width: 18px; height: 18px; animation: omMini 1.1s linear infinite; }
@keyframes omMini { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .om-mini img { animation: none; } }
/* Ω OMEGA y Α Alpha se turnan mientras se procesa: OMEGA trabaja, Alpha revisa */
.om-duo { position: relative; display: inline-block; width: 20px; height: 20px; flex: none; }
.om-duo img, .om-duo b { position: absolute; inset: 0; width: 20px; height: 20px; }
.om-duo img { animation: omDuoA 2.4s ease-in-out infinite; }
.om-duo b { display: grid; place-items: center; border-radius: 50%; border: 1.5px solid #FFB21A; color: #FFB21A; font: 600 12px/1 'Cinzel', serif; animation: omDuoB 2.4s ease-in-out infinite; }
@keyframes omDuoA { 0%, 40% { opacity: 1; transform: rotate(0) scale(1); } 50%, 90% { opacity: 0; transform: rotate(180deg) scale(.6); } 100% { opacity: 1; transform: rotate(360deg) scale(1); } }
@keyframes omDuoB { 0%, 40% { opacity: 0; transform: rotateY(90deg); } 50%, 90% { opacity: 1; transform: rotateY(0); } 100% { opacity: 0; transform: rotateY(90deg); } }
#om-load .oi-disc img { animation: omDuoA 5s ease-in-out infinite; }
#om-load .ol-alpha { position: absolute; inset: 22%; display: grid; place-items: center; border-radius: 50%; border: 2px solid #FFB21A; color: #FFB21A; font: 600 calc(var(--oi, 300px) * .22)/1 'Cinzel', serif; box-shadow: 0 0 24px rgba(255,178,26,.25); animation: omDuoB 5s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .om-duo img, .om-duo b, #om-load .oi-disc img, #om-load .ol-alpha { animation: none; } .om-duo b, #om-load .ol-alpha { opacity: 0; } }

/* アルファ Marca de Alpha (sync230): la Α de texto se reemplaza por el logo de pincel (assets/alpha.svg), misma mano que el Ω. El texto queda para lectores de pantalla. */
.om-duo b { border: none; border-radius: 0; color: transparent; background: url(assets/alpha.svg) center/contain no-repeat; }
#om-load .ol-alpha { inset: 24%; border: none; border-radius: 0; color: transparent; box-shadow: none; background: url(assets/alpha.svg) center/contain no-repeat; filter: drop-shadow(0 0 18px rgba(255,178,26,.35)); }
.alfa-a { display: inline-block; width: 1.15em; height: 1.15em; vertical-align: -.2em; color: transparent; overflow: hidden; background: url(assets/alpha.svg) center/contain no-repeat; }
.alfa-orb { color: transparent; background: url(assets/alpha.svg) center/64% no-repeat, #07080C; }
.al-om, .al-al { display: inline-block; width: 44px; height: 44px; color: transparent !important; text-shadow: none !important; overflow: hidden; }
.al-om { background: url(assets/omega.svg) center/contain no-repeat; }
.al-al { background: url(assets/alpha.svg) center/contain no-repeat; filter: drop-shadow(0 0 14px rgba(255,170,0,.6)); }

/* 鏡 Kagami · Espejo de plataforma (sync231): estructura del Administrador de anuncios con el diseño OMEGA. Solo lectura. */
.kg { display: grid; gap: 14px; }
.kg, .kg-admodal { --kg-soft: #161922; --kg-ac: #2EE6D6; --kg-warn: #FF9F43; --kg-bad: #FF2E4D; }
html:not(.om-dark) :is(.kg, .kg-admodal), html.om-light :is(.kg, .kg-admodal) { --kg-soft: #F2F4F7; --kg-ac: #0E7C74; --kg-warn: #B35A00; --kg-bad: #C0243A; }
.kg-head { display: grid; gap: 8px; }
.kg-brand { display: flex; align-items: center; gap: 14px; }
.kg-brand img { width: 46px; height: 46px; }
.kg-k { font: 700 11px/1.2 Syncopate, sans-serif; letter-spacing: .18em; color: var(--kg-ac); }
.kg-k span { font-family: 'Noto Sans JP', sans-serif; font-size: 15px; margin-right: 4px; color: #FF2E4D; }
.kg-brand h2 { margin: 2px 0 0; font: 600 26px/1.1 Cinzel, serif; letter-spacing: .14em; }
.kg-brand h2 span { color: var(--muted); }
.kg-meta { font: 700 20px Outfit, sans-serif; letter-spacing: 0; padding: 2px 12px; border-radius: 999px; border: 1px solid var(--line); background: var(--kg-soft); }
.kg-ctl { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.kg-ctl select { width: auto; min-width: 220px; }
.kg-ro { margin: 0; font-size: 13.5px; color: var(--muted); }
.kg-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.kg-kpis > div { background: var(--white); border: 1px solid var(--line); border-top: 3px solid #2EE6D6; border-radius: 12px; padding: 12px 14px; display: grid; gap: 2px; }
.kg-kpis small { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }
.kg-kpis b { font-size: 24px; font-variant-numeric: tabular-nums; }
.kg-kpis span { font-size: 12.5px; color: var(--muted); }
.kg-kpis .kg-warn { border-top-color: #FF9F43; } .kg-kpis .kg-warn b { color: var(--kg-warn); }
.kg-box { padding: 0; overflow: hidden; }
.kg-tabs { display: flex; align-items: center; gap: 4px; border-bottom: 1px solid var(--line); padding: 0 12px; flex-wrap: wrap; }
.kg-tabs button { font: inherit; font-weight: 600; font-size: 14px; color: var(--muted); background: none; border: 0; border-bottom: 3px solid transparent; padding: 12px 14px 10px; cursor: pointer; }
.kg-tabs button span { font-weight: 500; font-size: 12px; margin-left: 4px; padding: 1px 7px; border-radius: 999px; background: var(--kg-soft); }
.kg-tabs button.on { color: var(--ink); border-bottom-color: var(--kg-ac); }
.kg-selnote { margin-left: auto; font-size: 12.5px; color: var(--muted); display: flex; gap: 8px; align-items: center; }
.kg-bar { display: flex; gap: 14px; align-items: center; padding: 10px 14px; flex-wrap: wrap; border-bottom: 1px solid var(--line); }
.kg-bar .in { width: 260px; }
.kg-bar label { display: flex; gap: 6px; align-items: center; color: var(--muted); }
.kg-scroll { overflow: auto; max-height: 68vh; }
.kg-t { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.kg-t th { position: sticky; top: 0; z-index: 1; background: var(--kg-soft); text-transform: none; letter-spacing: 0; font-size: 12.5px; white-space: nowrap; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.kg-t td { padding: 9px 12px; border-bottom: 1px solid var(--line); vertical-align: middle; white-space: nowrap; }
.kg-t .r { text-align: right; font-variant-numeric: tabular-nums; }
.kg-t td small { display: block; font-size: 11px; color: var(--muted); font-weight: 400; }
.kg-t tr.sel td { background: rgba(46, 230, 214, .07); }
.kg-t tr.kg-tot td { font-weight: 600; background: var(--kg-soft); border-top: 2px solid var(--line); }
.kg-ck { width: 34px; }
.kg-name { display: flex; align-items: center; gap: 10px; min-width: 300px; white-space: normal; }
.kg-open { font: inherit; font-weight: 600; color: var(--kg-ac); background: none; border: 0; padding: 0; text-align: left; cursor: pointer; }
.kg-open:hover { text-decoration: underline; }
.kg-sw { flex: none; width: 34px; height: 19px; border-radius: 999px; background: var(--line); position: relative; cursor: not-allowed; }
.kg-sw i { position: absolute; top: 2px; left: 2px; width: 15px; height: 15px; border-radius: 50%; background: #9AA1B5; transition: left .2s; }
.kg-sw.on { background: rgba(46, 230, 214, .35); } .kg-sw.on i { left: 17px; background: #2EE6D6; }
.kg-dl { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; }
.kg-dl i { width: 8px; height: 8px; border-radius: 50%; background: #9AA1B5; }
.kg-dl.kg-on i { background: #2EE6D6; } .kg-dl.kg-wait i { background: #9AA1B5; box-shadow: 0 0 0 2px rgba(154,161,181,.3); }
.kg-dl.kg-warn i { background: #FF9F43; } .kg-dl.kg-warn { color: var(--kg-warn); } .kg-dl.kg-bad i { background: #FF2E4D; } .kg-dl.kg-bad { color: var(--kg-bad); } .kg-dl.kg-off { color: var(--muted); }
.kg-pc { white-space: normal !important; min-width: 190px; }
.kg-plan { display: block; color: var(--kg-ac); font-weight: 600; font-size: 13px; }
.kg-plan small { display: inline !important; color: var(--muted); }
.kg-noplan { display: inline-block; font-weight: 700; font-size: 12px; color: var(--kg-warn); border: 1px solid rgba(255, 159, 67, .5); background: rgba(255, 159, 67, .12); border-radius: 999px; padding: 2px 10px; margin-right: 6px; }
.kg-link { padding: 3px 10px !important; min-height: 0 !important; }
.kg-th { width: 38px; height: 38px; flex: none; border-radius: 6px; object-fit: cover; background: var(--kg-soft); border: 1px solid var(--line); }
@media (max-width: 720px) { .kg-bar .in { width: 100%; } .kg-ctl select { min-width: 0; flex: 1; } }

.kg-back { margin-right: 6px; }
.kg-was { display: block; font-size: 11.5px; color: var(--muted); margin-top: 3px; }
.kg-hint { margin: 0; padding: 6px 14px; font-size: 12px; color: var(--muted); }
@media (min-width: 1700px) { .kg-hint { display: none; } }
.kg-scroll { scrollbar-width: auto; scrollbar-color: #2EE6D6 transparent; }
.kg-scroll::-webkit-scrollbar { height: 12px; width: 10px; } .kg-scroll::-webkit-scrollbar-thumb { background: rgba(46,230,214,.55); border-radius: 999px; } .kg-scroll::-webkit-scrollbar-track { background: var(--kg-soft); }
.kg-t th:nth-child(2), .kg-t td:nth-child(2) { position: sticky; left: 0; z-index: 2; background: var(--white); box-shadow: 1px 0 0 var(--line); }
.kg-t th:nth-child(2) { z-index: 3; background: var(--kg-soft); }
.kg-t tr.kg-tot td:nth-child(2) { background: var(--kg-soft); }
.kg-name { min-width: 240px; max-width: 320px; }

.kg-thb { position: relative; flex: none; padding: 0; border: 0; background: none; cursor: zoom-in; border-radius: 6px; }
.kg-thb:focus-visible { outline: 2px solid #2EE6D6; }
.kg-th0 { display: grid; place-items: center; font-size: 9px; line-height: 1.1; text-align: center; color: var(--muted); }
.kg-pop { display: none; position: fixed; z-index: 40; width: 240px; height: auto; max-height: 300px; object-fit: contain; border-radius: 10px; border: 1px solid var(--line); background: var(--white); box-shadow: 0 12px 40px rgba(0,0,0,.6); pointer-events: none; transform: translate(52px, -40%); }
.kg-thb:hover .kg-pop, .kg-thb:focus-visible .kg-pop { display: block; }
.kg-admodal { max-width: 560px; }
.kg-adimg { display: grid; place-items: center; background: var(--kg-soft); border: 1px solid var(--line); border-radius: 12px; padding: 10px; min-height: 120px; }
.kg-adimg img { max-width: 100%; max-height: 420px; border-radius: 8px; }
.kg-adbody { white-space: pre-wrap; font-size: 14px; max-height: 140px; overflow: auto; }
.kg-adm { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 13px; color: var(--muted); margin: 8px 0; } .kg-adm b { color: var(--ink); margin-left: 4px; }
.kg-t tr:hover td:nth-child(2), .kg-t tr:focus-within td:nth-child(2) { z-index: 6; }
.kg-pop { transform: translate(48px, -45%); }
.kg .kg-t th { background: var(--kg-soft) !important; color: var(--muted) !important; }

/* Kagami · compacto (sync235) */
.kg-kpis > div { padding: 10px 14px; gap: 0; align-content: start; }
.kg-kpis b { font-size: 22px; line-height: 1.3; }
.kg-kpis span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.kg-kpis small { font-size: 11px; }
.kg-todo { border: 1px solid rgba(255,159,67,.45); background: rgba(255,159,67,.10); color: var(--ink); border-radius: 12px; padding: 10px 14px; font-size: 14px; }
.kg-todo b { color: var(--kg-warn, #FF9F43); margin-right: 4px; }
html:not(.om-dark) .kg-todo, html.om-light .kg-todo { --kg-warn: #B35A00; }
.kg-pl { display: flex; align-items: center; gap: 6px; flex-wrap: nowrap; }
.kg-pl .kg-noplan { margin: 0; }
.kg-was { cursor: help; white-space: nowrap; }
.kg-pc { min-width: 170px; }
.kg-t td { padding: 8px 12px; }
.kg-name { max-width: 300px; }
.kg-open, .kg-name > span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.kg-noplan { white-space: nowrap; }
.kg-kpis { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }

/* Loader: la palabra larga en japonés no aplasta la explicación; nada del tema claro entra al loader (siempre oscuro) */
#om-load .ol-msg, #om-load .ol-jw { background: none !important; border: 0 !important; padding: 0; min-height: 0; width: auto; }

/* Kagami · selector de plataforma y vista de anuncio de Google (sync237) */
.kg-plats { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.kg-plats button { font: inherit; font-weight: 600; font-size: 13.5px; padding: 7px 16px; border-radius: 999px; border: 1px solid var(--line); background: var(--white); color: var(--muted); cursor: pointer; }
.kg-plats button.on { border-color: var(--kg-ac); color: var(--kg-ac); background: rgba(46,230,214,.08); }
.kg-soon { font-size: 12px; color: var(--muted); margin-left: 6px; }
.kg-serp { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: var(--kg-soft); display: grid; gap: 4px; }
.kg-serp small { font-size: 12px; color: var(--muted); } .kg-serp b { color: var(--kg-ac); font-size: 16px; } .kg-serp p { margin: 0; font-size: 13.5px; }

.kg-go { flex: none; display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 6px; border: 1px solid var(--line); color: var(--kg-ac); font-size: 13px; text-decoration: none; }
.kg-go:hover, .kg-go:focus-visible { background: rgba(46,230,214,.12); border-color: var(--kg-ac); }

/* 精査 Inspección a fondo (sync240) */
.kg-ins-sum { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; padding: 12px 14px 0; }
.kg-ins-t { font: inherit; text-align: left; cursor: pointer; border: 1px solid var(--line); border-top: 3px solid var(--muted); border-radius: 12px; padding: 10px 12px; background: var(--white); color: var(--ink); display: grid; gap: 2px; }
.kg-ins-t small { font-size: 11.5px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; } .kg-ins-t small b { font-family: 'Noto Sans JP', sans-serif; margin-right: 4px; }
.kg-ins-t > b { font-size: 22px; } .kg-ins-t span { font-size: 12px; color: var(--muted); }
.kg-ins-t.on { box-shadow: 0 0 0 2px var(--kg-ac) inset; }
.kg-ins-t.kg-v-bad { border-top-color: var(--kg-bad); } .kg-ins-t.kg-v-bad > b { color: var(--kg-bad); }
.kg-ins-t.kg-v-warn { border-top-color: var(--kg-warn); } .kg-ins-t.kg-v-warn > b { color: var(--kg-warn); }
.kg-ins-t.kg-v-on { border-top-color: var(--kg-ac); } .kg-ins-t.kg-v-on > b { color: var(--kg-ac); }
.kg-ins-f { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 6px 14px 10px; }
.kg-ins-f button { font: inherit; font-size: 12.5px; padding: 4px 11px; border-radius: 999px; border: 1px solid var(--line); background: none; color: var(--muted); cursor: pointer; }
.kg-ins-f button.on { color: var(--kg-ac); border-color: var(--kg-ac); }
.kg-sep { width: 1px; height: 18px; background: var(--line); margin: 0 4px; }
.kg-vd { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: 12px; padding: 3px 10px; border-radius: 999px; white-space: nowrap; }
.kg-vd b { font-family: 'Noto Sans JP', sans-serif; }
.kg-vd.kg-v-bad { color: var(--kg-bad); background: rgba(255,46,77,.12); } .kg-vd.kg-v-warn { color: var(--kg-warn); background: rgba(255,159,67,.12); } .kg-vd.kg-v-on { color: var(--kg-ac); background: rgba(46,230,214,.12); }
.kg-in { font-weight: 600; display: block; }
.kg-wrap { white-space: normal !important; min-width: 180px; max-width: 320px; }
.kg-why { color: var(--kg-warn); }
.kg-ins td .kg-go + .kg-go { margin-left: 4px; }
.kg-errs { padding: 0 14px 8px; color: var(--muted); }
.kg-ins .kg-do { min-width: 280px; max-width: 380px; }
.kg-ins .kg-why { display: block; margin-bottom: 2px; }

/* 基準 Referencia P2P y evidencia (sync242) */
.kg-kij { margin: 12px 14px 0; border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; background: var(--kg-soft); display: grid; gap: 8px; }
.kg-kij-h { font-size: 13px; } .kg-kij-h b { font-family: 'Noto Sans JP', sans-serif; color: var(--kg-ac); margin-right: 4px; } .kg-kij-h small { color: var(--muted); margin-left: 6px; }
.kg-kij-r { display: grid; grid-template-columns: minmax(150px, 1.3fr) repeat(auto-fit, minmax(110px, 1fr)); gap: 10px; align-items: end; font-size: 13.5px; border-top: 1px solid var(--line); padding-top: 8px; }
.kg-kij-r small { display: block; font-size: 11px; color: var(--muted); } .kg-kij-o { font-weight: 600; }
.kg-kij-r em { font-style: normal; font-size: 12px; font-weight: 700; } .kg-good { color: var(--kg-ac); } .kg-bad { color: var(--kg-warn); }
.kg-few { font-style: normal; font-size: 11px; color: var(--muted); border: 1px dashed var(--line); border-radius: 999px; padding: 0 6px; }
.kg-kij-empty { font-size: 13px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.kg-ev { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; } .kg-ev i { font-style: normal; font-size: 11px; border: 1px solid var(--line); border-radius: 6px; padding: 1px 6px; color: var(--muted); }
.kg-cf { font-size: 11px; border-radius: 6px; padding: 1px 6px; } .kg-cf-alta { color: var(--kg-ac); border: 1px solid var(--kg-ac); } .kg-cf-media { color: var(--muted); border: 1px solid var(--line); } .kg-cf-baja { color: var(--kg-warn); border: 1px solid var(--kg-warn); }

/* Builder Technique: ladrillos de colores clásicos */
.lg-n { color: var(--ct, #fff) !important; }
.lg-hero h2 { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; }
.lg-tech { display: inline-flex; gap: 4px; font-family: 'Inter', system-ui, sans-serif; letter-spacing: 0; }
.lg-tech i { font-style: normal; font-weight: 800; font-size: .52em; line-height: 1; width: 1.45em; height: 1.45em; display: grid; place-items: center; border-radius: 5px; background: var(--c); color: #fff; position: relative; box-shadow: inset 0 -3px 0 rgba(0,0,0,.22); text-shadow: 0 1px 0 rgba(0,0,0,.35); }
.lg-tech i::before { content: ''; position: absolute; top: -5px; left: 50%; width: 46%; height: 5px; transform: translateX(-50%); border-radius: 3px 3px 0 0; background: var(--c); filter: brightness(1.08); }
@media (max-width: 560px) { .lg-tech i { font-size: .46em; } }

/* Kagami · modal de plan */
.kg-lm-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 12px; }
.kg-lm-tabs button { font: inherit; font-size: 13px; padding: 7px 12px; border-radius: 10px; border: 1px solid var(--line); background: transparent; color: inherit; cursor: pointer; }
.kg-lm-tabs button.on { border-color: var(--kg-ac, #2EE6D6); box-shadow: inset 0 -2px 0 var(--kg-ac, #2EE6D6); font-weight: 600; }
.kg-lm-f { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 8px 0; }
.kg-lm-f label { display: flex; flex-direction: column; gap: 4px; }
.kg-lm-why { border-left: 3px solid var(--kg-warn, #FF9F43); padding: 6px 10px; border-radius: 6px; background: color-mix(in srgb, #FF9F43 8%, transparent); }
.kg-link { white-space: nowrap; }

/* Menú desplegable OMEGA (js/omselect.js) */
.oms { position: fixed; z-index: 10000; display: flex; flex-direction: column; background: #0E1016; color: #E8ECF3; border: 1px solid rgba(46,230,214,.45); border-radius: 12px; box-shadow: 0 18px 50px rgba(0,0,0,.55), 0 0 0 1px rgba(0,0,0,.4), 0 0 28px rgba(46,230,214,.10); padding: 6px; font: inherit; font-size: 14px; animation: omsIn .12s ease-out; }
@keyframes omsIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.oms-l { overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: rgba(46,230,214,.35) transparent; }
.oms-q { margin: 0 0 6px; padding: 8px 10px; border-radius: 8px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04); color: inherit; font: inherit; font-size: 13px; outline: none; }
.oms-q:focus { border-color: #2EE6D6; }
.oms-g { padding: 8px 10px 4px; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: #8A93A6; }
.oms-o { position: relative; padding: 8px 12px 8px 30px; border-radius: 8px; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.3; }
.oms-o.hi { background: rgba(46,230,214,.12); color: #fff; }
.oms-o.on { color: #2EE6D6; font-weight: 600; }
.oms-o.on::before { content: '✓'; position: absolute; left: 10px; top: 50%; transform: translateY(-50%); font-weight: 700; }
.oms-o[data-dis] { opacity: .4; cursor: not-allowed; }
select.oms-open { border-color: #2EE6D6 !important; box-shadow: 0 0 0 3px rgba(46,230,214,.18); }
html.om-light .oms { background: #FFFFFF; color: #14181F; border-color: rgba(14,124,116,.45); box-shadow: 0 18px 50px rgba(11,13,18,.18), 0 0 0 1px rgba(11,13,18,.06); }
html.om-light .oms-o.hi { background: rgba(14,124,116,.10); color: #0B0D12; }
html.om-light .oms-o.on { color: #0E7C74; }
html.om-light .oms-q { background: #F4F6F8; border-color: #D8DDE5; } html.om-light .oms-q:focus { border-color: #0E7C74; }
html.om-light .oms-g { color: #5B6273; }
html.om-light select.oms-open { border-color: #0E7C74 !important; box-shadow: 0 0 0 3px rgba(14,124,116,.15); }
@media (prefers-reduced-motion: reduce) { .oms { animation: none; } }

/* Kagami · DV360, Spotify y TikTok */
.kg-fl { display: block; color: var(--kg-soft, #8A93A6); font-size: 11.5px; white-space: nowrap; }
.kg-warn-t { color: var(--kg-warn, #FF9F43); font-weight: 600; }
.kg-t td small { display: block; }
.kg-pend { margin-top: 12px; padding: 14px 16px; border-radius: 12px; border: 1px dashed var(--kg-warn, #FF9F43); background: color-mix(in srgb, #FF9F43 6%, transparent); }
.kg-pend b span { color: #FF2E4D; margin-right: 4px; }
.kg-pend ol { margin: 8px 0 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; } .kg-pend li.ok { color: var(--kg-ac, #2EE6D6); }
.kg-crs ul { list-style: none; margin: 6px 0 10px; padding: 0; display: flex; flex-direction: column; gap: 4px; max-height: 220px; overflow: auto; }
.kg-crs li { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 8px; }

/* ペース Pēsu · Ritmo de gasto (Kagami) */
.kg-pace { margin: 12px 0; padding: 12px 16px; }
.kg-pace summary { display: flex; align-items: center; gap: 10px; cursor: pointer; list-style: none; } .kg-pace summary::-webkit-details-marker { display: none; }
.kg-pace summary b span { color: #FF2E4D; margin-right: 4px; }
.kg-pace-cnt { font-size: 12.5px; font-weight: 600; color: var(--kg-warn, #FF9F43); border: 1px solid var(--kg-warn, #FF9F43); border-radius: 999px; padding: 2px 10px; }
.kg-pace-r { display: grid; grid-template-columns: minmax(180px, 1.1fr) minmax(140px, 1fr) minmax(220px, 1.6fr); gap: 8px 16px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); }
.kg-pace-n b { display: block; font-size: 13.5px; } .kg-pace-n small, .kg-pace-t small { display: block; color: var(--muted); font-size: 12px; margin-top: 2px; }
.kg-pace-bar { position: relative; height: 10px; border-radius: 6px; background: rgba(138,147,166,.18); }
.kg-pace-bar i { position: absolute; inset: 0 auto 0 0; border-radius: 6px; background: var(--kg-ac, #2EE6D6); }
.kg-pace-behind .kg-pace-bar i, .kg-pace-under .kg-pace-bar i, .kg-pace-ahead .kg-pace-bar i { background: var(--kg-warn, #FF9F43); }
.kg-pace-bar em { position: absolute; top: -4px; bottom: -4px; width: 2px; margin-left: -1px; background: currentColor; opacity: .8; }
.kg-pace-do { color: var(--kg-warn, #FF9F43) !important; } .kg-pace-do b { color: inherit; }
@media (max-width: 760px) { .kg-pace-r { grid-template-columns: 1fr; } }
.kg-pace-left { font-size: 12.5px; font-weight: 600; color: #FF2E4D; border: 1px solid rgba(255,46,77,.5); border-radius: 999px; padding: 2px 10px; }
.kg-pace.kg-close { border-color: rgba(255,159,67,.55); }
.kg-pace-t .kg-dl + .kg-dl { margin-left: 6px; }

/* 見積 Mitsumori · propuesta táctica (one pager) */
.tq { display: grid; gap: 16px; }
.tq-k { font-size: 11px; letter-spacing: .14em; font-weight: 700; color: var(--tq-ac); text-transform: uppercase; margin-bottom: 6px; }
.tq-head h2 { margin: 0 0 4px; }
.tq-f { display: grid; grid-template-columns: 2fr auto 1.4fr 1fr 1fr; gap: 12px; margin-top: 14px; align-items: end; }
.tq-f label, .tq-notes { display: grid; gap: 6px; font-size: 12px; color: var(--muted); }
.tq-f label .in + .in { margin-top: 6px; }
.tq-seg, .tq-mode { display: inline-flex; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.tq-seg button, .tq-mode button { background: transparent; border: 0; color: var(--muted); padding: 8px 14px; font: inherit; font-weight: 600; cursor: pointer; }
.tq-mode button { padding: 4px 9px; }
.tq-seg button.on, .tq-mode button.on { background: var(--tq-acb); color: var(--tq-ac); }
.tq-add { margin-bottom: 12px; } .tq-add select { max-width: 560px; width: 100%; }
.tq-t td { vertical-align: top; } .tq-t td small { display: block; color: var(--muted); font-size: 11px; margin-top: 2px; }
.tq-t td > div.tq-mode { margin-bottom: 4px; }
.tq-num { width: 110px; text-align: right; }
.tq-reason { width: 170px; margin-top: 4px; font-size: 12px; }
.tq-sp { display: flex; gap: 5px; align-items: center; justify-content: flex-end; font-size: 11px; color: #FF9F43; margin-top: 4px; white-space: nowrap; }
.tq-t small.tq-below { color: #FF9F43; font-weight: 700; }
.tq-warn td { color: #FF9F43; font-size: 12px; padding-top: 0 !important; }
.tq-sum { display: flex; flex-wrap: wrap; gap: 12px; margin: 14px 0; }
.tq-sum > div { border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; min-width: 140px; display: grid; gap: 2px; }
.tq-sum span { font-size: 11px; color: var(--muted); } .tq-sum b { font-size: 18px; } .tq-sum small { font-size: 11px; color: var(--muted); }
.tq-sum .tq-int { border-style: dashed; }
.tq-acts { margin-top: 12px; }
.tq-prevh { margin: 6px 0 0; font-size: 14px; color: var(--muted); font-weight: 600; }
.tq-prev { display: flex; justify-content: center; overflow-x: auto; padding: 8px 0 24px; }
.tq-tabs { display: flex; gap: 6px; margin-bottom: 14px; border-bottom: 1px solid var(--line); }
.tq-tabs a { padding: 8px 14px; color: var(--muted); text-decoration: none; border-bottom: 2px solid transparent; font-weight: 600; font-size: 13px; }
.tq-tabs a.on { color: var(--tq-ac); border-bottom-color: var(--tq-ac); }
.tq-card-img { display: grid !important; place-content: center; text-align: center; gap: 2px; color: #fff !important; }
.tq-card-img span { font-size: 26px; opacity: .85; } .tq-card-img b { font-size: 18px; letter-spacing: .06em; } .tq-card-img small { font-size: 11px; opacity: .75; }
.tq-ag-p2p { background: radial-gradient(120% 90% at 85% 10%, rgba(155, 107, 255, .55), transparent 60%), radial-gradient(90% 80% at 0% 100%, rgba(0, 186, 255, .45), transparent 60%), #0A1033 !important; }
.tq-ag-influmedia { background: radial-gradient(120% 90% at 85% 10%, rgba(212, 142, 170, .55), transparent 60%), radial-gradient(90% 80% at 0% 100%, rgba(83, 167, 188, .45), transparent 60%), #131031 !important; }

/* La hoja: tamaño carta, fondo de la marca de la agencia, independiente del tema de la app */
.tq-op { position: relative; width: 816px; min-height: 1056px; flex-shrink: 0; box-sizing: border-box; padding: 54px 56px 40px; color: #F4F6FF; font-family: inherit; overflow: hidden; border-radius: 14px; box-shadow: 0 20px 60px rgba(0, 0, 0, .45);
  background: linear-gradient(160deg, var(--bg) 0%, var(--bg2) 100%); display: flex; flex-direction: column; gap: 26px; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.tq-op > :not(.tq-op-art) { position: relative; z-index: 1; }
.tq-op-art { position: absolute; inset: 0; pointer-events: none; color: var(--a1); }
.tq-op-art svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.tq-op-art i { position: absolute; border-radius: 50%; filter: blur(70px); }
.tq-op-art .g1 { width: 520px; height: 520px; right: -170px; top: -190px; background: var(--a2); opacity: .5; }
.tq-op-art .g2 { width: 460px; height: 460px; left: -200px; bottom: 120px; background: var(--a1); opacity: .32; }
.tq-op-art .g3 { width: 300px; height: 300px; right: 60px; bottom: -150px; background: var(--a3); opacity: .45; }
.tq-op-logos { display: flex; align-items: center; gap: 18px; margin-bottom: 34px; }
.tq-op-ag { height: 46px; max-width: 200px; object-fit: contain; }
.tq-op-x { font-size: 24px; font-weight: 200; opacity: .6; }
.tq-op-cl { background: #fff; border-radius: 12px; padding: 8px 14px; display: inline-flex; align-items: center; } .tq-op-cl img { height: 38px; max-width: 150px; object-fit: contain; }
.tq-op-cn { font-size: 20px; font-weight: 700; }
.tq-op-eyebrow { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--a1); font-weight: 700; }
.tq-op h1 { font-size: 40px; line-height: 1.08; margin: 10px 0 10px; font-weight: 800; letter-spacing: -.01em; color: #fff; max-width: 640px; }
.tq-op-meta { font-size: 14px; opacity: .78; }
.tq-op-k { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.tq-op-k > div { background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); border-radius: 16px; padding: 16px; display: grid; gap: 4px; backdrop-filter: blur(6px); }
.tq-op-k > div:first-child { background: linear-gradient(135deg, var(--a1), var(--a2)); border: 0; color: #fff; }
.tq-op-k span { font-size: 11px; text-transform: uppercase; letter-spacing: .1em; opacity: .85; } .tq-op-k b { font-size: 26px; font-weight: 800; } .tq-op-k small { font-size: 11px; opacity: .75; }
.tq-op-t table { width: 100%; border-collapse: collapse; font-size: 13px; }
.tq-op-t th { text-align: left; font-size: 10.5px; text-transform: uppercase; letter-spacing: .1em; color: var(--a1); padding: 0 8px 10px; border-bottom: 1px solid rgba(255, 255, 255, .2); font-weight: 700; }
.tq-op-t td { padding: 11px 8px; border-bottom: 1px solid rgba(255, 255, 255, .09); vertical-align: top; }
.tq-op-t td small { display: block; opacity: .65; font-size: 11px; margin-top: 2px; }
.tq-op-t .r { text-align: right; white-space: nowrap; }
.tq-op-f { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 11px; font-weight: 700; background: color-mix(in srgb, var(--fc) 35%, transparent); border: 1px solid color-mix(in srgb, var(--fc) 70%, white 10%); white-space: nowrap; }
.tq-op-sp { color: var(--a1); opacity: 1 !important; font-weight: 700; }
.tq-op-tot td { border-bottom: 0; font-size: 16px; font-weight: 800; padding-top: 14px; color: #fff; }
.tq-op-tot td:last-child { color: var(--a1); font-size: 20px; }
.tq-op-ben { margin-top: 12px; padding: 12px 16px; border-radius: 12px; background: rgba(255, 255, 255, .08); border-left: 3px solid var(--a1); font-size: 13px; }
.tq-op-n span { font-size: 10.5px; text-transform: uppercase; letter-spacing: .1em; color: var(--a1); font-weight: 700; } .tq-op-n p { margin: 6px 0 0; font-size: 13px; opacity: .9; white-space: pre-wrap; }
.tq-op-f2 { margin-top: auto; display: flex; justify-content: space-between; gap: 24px; align-items: flex-end; font-size: 10.5px; opacity: .7; border-top: 1px solid rgba(255, 255, 255, .15); padding-top: 14px; }
.tq-op-f2 b { font-size: 12px; letter-spacing: .08em; white-space: nowrap; opacity: 1; color: var(--a1); }
@media (max-width: 900px) { .tq-f { grid-template-columns: 1fr 1fr; } .tq-prev { justify-content: flex-start; } }
@media print {
  body.tq-print > :not(.tq-printhost) { display: none !important; }
  body.tq-print { background: none !important; margin: 0 !important; padding: 0 !important; }
  body.tq-print .tq-printhost .tq-op { width: 8.5in; height: 10.98in; min-height: 0; border-radius: 0; box-shadow: none; margin: 0; break-inside: avoid; }
}
.tq-printhost { display: none; } body.tq-print .tq-printhost { display: block; }
:root { --tq-ac: #2EE6D6; --tq-acb: rgba(46, 230, 214, .14); }
html.om-light { --tq-ac: #0E7C74; --tq-acb: rgba(14, 124, 116, .1); }
.tq-k { font-family: Syncopate, sans-serif; } .tq-k span { font-family: 'Noto Sans JP', sans-serif; font-size: 15px; margin-right: 4px; color: #FF2E4D; }
.tq-op .tq-op-ag { background: transparent !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; filter: none !important; }
.tq-fdot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 5px; vertical-align: 0; }
.tq > * { min-width: 0; } .tq .kg-scroll { overflow-x: auto; }
.tq-op thead, .tq-op thead tr, .tq-op th, .tq-op td, .tq-op tr { background: transparent !important; }
.tq-op th { color: var(--a1) !important; } .tq-op td { color: #F4F6FF; }
/* Plan estratégico OMEGA en el menú: la palabra OMEGA con su logo; en negro cuando la opción está activa (fondo rojo) */
.nav-omega { display: inline-flex; align-items: center; gap: 3px; font-weight: 800; letter-spacing: .06em; }
.nav-omega img { width: 15px; height: 15px; }
.nav a[data-k="estrategia"][aria-current="page"] .nav-omega { color: #000; }
.nav a[data-k="estrategia"][aria-current="page"] .nav-omega img { filter: brightness(0); }
html.om-light .nav a[data-k="estrategia"] .nav-omega { color: #000; }
html.om-light .nav a[data-k="estrategia"] .nav-omega img { filter: brightness(0); }
.nav a[data-k="estrategia"]{white-space:normal} .nav a[data-k="estrategia"] .nav-omega{white-space:nowrap}
.nav a[data-k="estrategia"]{white-space:nowrap}
.nav a[data-k="estrategia"] .l { display: inline-flex; align-items: center; gap: 6px; line-height: 1; }
.nav a[data-k="estrategia"] .nav-omega { line-height: 1; gap: 4px; }
.nav a[data-k="estrategia"] .nav-omega img { display: block; width: 16px; height: 16px; }
.ga-jp { font-family: 'Noto Sans JP', sans-serif; color: #FF2E4D; margin-right: 4px; }
/* 点検 TENKEN · revisión rápida del Espejo de Meta */
.kg-tenken summary { display: flex; align-items: center; gap: 10px; cursor: pointer; list-style: none; }
.kg-tenken summary b span { font-family: 'Noto Sans JP', sans-serif; color: #FF2E4D; margin-right: 4px; }
.kg-tk { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; }
.kg-tk > li { border-left: 3px solid var(--tq-ac); padding: 6px 10px; border-radius: 6px; background: rgba(46, 230, 214, .05); }
.kg-tk > li.kg-tk-red { border-left-color: #FF2E4D; background: rgba(255, 46, 77, .06); }
.kg-tk > li.kg-tk-warn { border-left-color: #FF9F43; background: rgba(255, 159, 67, .06); }
.kg-tk ul { margin: 4px 0 0; padding-left: 18px; word-break: break-all; }
/* 限度 límite de la cuenta (18-oct-2026) */
.cap-alert { display: grid; gap: 8px; margin: 0 0 14px; }
.cap-row { display: flex; gap: 12px; align-items: flex-start; padding: 12px 16px; border-radius: 4px; font-size: 14px; line-height: 1.45; }
.cap-row small { display: block; margin-top: 4px; opacity: .8; font-size: 12px; }
.cap-crit { border: 1px solid rgba(255, 46, 77, .5); background: rgba(255, 46, 77, .08); color: #FF8A9C; }
.cap-warn { border: 1px solid rgba(255, 159, 67, .5); background: rgba(255, 159, 67, .08); color: #FFB877; }
.cap-jp { font-size: 18px; line-height: 1; font-weight: 700; white-space: nowrap; text-align: center; } .cap-jp small { display: block; font-size: 9px; letter-spacing: .12em; margin-top: 3px; opacity: .8; }
html.om-light .cap-crit { color: #B3122E; } html.om-light .cap-warn { color: #9A5300; }
.cap-row details { margin-top: 6px; } .cap-row summary { cursor: pointer; font-size: 12px; text-decoration: underline; }
.cap-row ul { margin: 6px 0 0; padding-left: 18px; font-size: 13px; } .cap-row li { margin: 4px 0; } .cap-row li span { opacity: .75; }
/* 18-oct-2026 · ritmo con corte a ayer en la tarjeta de campaña */
.pace-y { color: var(--muted, #9AA3AE); } .pace-y b { font-weight: 700; }
.pace-y.ok b { color: #2EE6D6; } .pace-y.late b { color: #FF9F43; } .pace-y.bad b { color: #FF2E4D; }
html.om-light .pace-y.ok b { color: #0E7C74; } html.om-light .pace-y.late b { color: #B86400; }
/* 来店 Raiten · visitas a tienda (StackAdapt) */
.ff-card { margin-bottom: 14px; } .ff-head { display: flex; gap: 12px; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; }
.ff-t td, .ff-t th { white-space: nowrap; } .ff-ns { display: inline-block; margin-left: 4px; font-size: 11px; color: #FF9F43; border: 1px solid rgba(255,159,67,.5); border-radius: 3px; padding: 0 4px; }
/* 地理 Chiri · prueba geográfica */
.ch .card { margin-bottom: 0; } .ch > .card:first-child { margin-bottom: 12px; }
.ch-ctl { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin-top: 14px; } .ch-ctl label { display: grid; gap: 4px; font-size: 12px; color: var(--muted, #9AA3AE); }
.ch-row { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin-top: 12px; } .ch-warn { color: #FF9F43; }
.ch-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 12px; } @media (max-width: 980px) { .ch-grid { grid-template-columns: 1fr; } }
.ch-map { width: 100%; height: auto; display: block; } .ch-map path { stroke: rgba(255,255,255,.18); stroke-width: .6; fill: rgba(255,255,255,.04); }
.ch-map path.exp { fill: rgba(46,230,214,.72); } .ch-map path.ctl { fill: rgba(255,159,67,.62); } .ch-map path[data-chp] { cursor: pointer; transition: fill-opacity .15s; } .ch-map path[data-chp]:hover { stroke: #fff; stroke-width: 1.2; } .ch-map path.on { stroke: #fff; stroke-width: 2; filter: drop-shadow(0 0 4px rgba(46,230,214,.9)); } .ch-map path:focus-visible { outline: none; stroke: #2EE6D6; stroke-width: 2; } .ch-dot { fill: #fff; stroke: #0B0D12; stroke-width: 1; }
html.om-light .ch-map path { stroke: rgba(0,0,0,.2); fill: rgba(0,0,0,.03); } html.om-light .ch-map path.exp { fill: rgba(14,124,116,.5); } html.om-light .ch-dot { fill: #111; stroke: #fff; }
.ch-legend { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 8px; } .ch-legend i { display: inline-block; width: 12px; height: 12px; border-radius: 2px; margin-left: 6px; }
.ch-legend i.exp { background: rgba(46,230,214,.7); } .ch-legend i.ctl { background: rgba(255,159,67,.7); } .ch-legend i.out { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); } .ch-legend i.dot { background: #fff; border-radius: 50%; }
.ch-pw { display: grid; gap: 8px; padding: 12px 14px; border-radius: 4px; border: 1px solid; } .ch-pw > div { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; } .ch-pw small { text-transform: uppercase; letter-spacing: .08em; font-size: 11px; opacity: .8; } .ch-pw b { font-size: 26px; } .ch-pw p { margin: 0; }
.ch-ok { border-color: rgba(46,230,214,.5); background: rgba(46,230,214,.07); } .ch-mid { border-color: rgba(255,159,67,.5); background: rgba(255,159,67,.07); } .ch-bad { border-color: rgba(255,46,77,.5); background: rgba(255,46,77,.07); }
.ch-h3 { margin: 14px 0 8px; font-size: 15px; } .ch-t { width: 100%; border-collapse: collapse; font-size: 13px; } .ch-t th, .ch-t td { padding: 6px 8px; border-bottom: 1px solid rgba(255,255,255,.08); text-align: left; } .ch-t .num { text-align: right; } .ch-off { color: #FF9F43; font-weight: 700; }
.ch-steps { display: grid; gap: 10px; padding-left: 18px; } .ch-steps .btn { margin-left: 6px; }
/* 地図 Chizu · mapa de Google (19-oct-2026) */
.gm-ov { position: fixed; inset: 0; z-index: 900; display: grid; grid-template-rows: auto 1fr auto; background: #0B0D12; color: #E8EBF0; }
.gm-head { display: flex; align-items: center; gap: 10px; padding: 10px 16px; border-bottom: 1px solid rgba(46,230,214,.25); flex-wrap: wrap; }
.gm-t { font-weight: 700; letter-spacing: .08em; margin-right: auto; } .gm-t span { font-family: 'Noto Sans JP', sans-serif; color: #2EE6D6; margin-right: 6px; } .gm-t small { display: block; font-weight: 400; letter-spacing: 0; color: #9AA3AE; font-size: 12px; }
.gm-brand { width: auto; min-width: 200px; } .gm-x { min-width: 38px; }
.gm-body { display: grid; grid-template-columns: minmax(0, 1fr) 360px; min-height: 0; } @media (max-width: 860px) { .gm-body { grid-template-columns: 1fr; grid-template-rows: 58vh auto; overflow: auto; } }
.gm-map { position: relative; min-height: 300px; } .gm-map.picking { outline: 2px solid #2EE6D6; outline-offset: -2px; cursor: crosshair; }
.gm-wait { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; padding: 20px; color: #9AA3AE; }
.gm-card { overflow: auto; padding: 16px; border-left: 1px solid rgba(255,255,255,.08); background: #10131A; } @media (max-width: 860px) { .gm-card { border-left: 0; border-top: 1px solid rgba(255,255,255,.08); } }
.gm-empty p { margin: 8px 0 0; } .gm-c-brand { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; } .gm-c-name { margin: 2px 0 4px; font-size: 17px; text-transform: none; color: inherit; }
.gm-c-st { margin: 10px 0; padding: 6px 10px; border-radius: 4px; font-size: 12.5px; border: 1px solid; } .gm-c-st.ok { border-color: rgba(46,230,214,.5); color: #2EE6D6; background: rgba(46,230,214,.07); } .gm-c-st.warn { border-color: rgba(255,159,67,.5); color: #FFB877; background: rgba(255,159,67,.07); }
.gm-ph { margin: 8px 0; } .gm-ph img { width: 100%; border-radius: 6px; display: block; } .gm-ph figcaption { font-size: 11px; color: #9AA3AE; margin-top: 4px; } .gm-ph figcaption a { color: inherit; }
.gm-g { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; font-size: 13px; margin: 8px 0; } .gm-g span { color: #9AA3AE; }
.gm-attr { font-size: 11px; color: #9AA3AE; margin-top: 6px; } .gm-acts { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; }
.gm-sv { height: 240px; border-radius: 6px; overflow: hidden; margin-bottom: 10px; background: #000; }
.gm-pickbox { border: 1px dashed #2EE6D6; border-radius: 6px; padding: 10px; margin-bottom: 10px; } .gm-pickbox p { margin: 4px 0 8px; }
.gm-near { font-size: 13px; margin: 10px 0; } .gm-near ul { margin: 6px 0 0; padding-left: 18px; } .gm-near li { margin: 2px 0; }
.gm-foot { display: flex; flex-wrap: wrap; gap: 16px; padding: 8px 16px; border-top: 1px solid rgba(255,255,255,.08); color: #C9CED6; } .gm-foot .muted { margin-left: auto; }
.gm-k { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; vertical-align: -1px; } .gm-k.own { background: #2EE6D6; box-shadow: 0 0 0 2px #0B0D12 inset; } .gm-k.gg { background: transparent; border: 2px solid #fff; } .gm-k.scr { background: #6B00F7; border-radius: 2px; }
.gm-scr { width: 9px; height: 9px; border-radius: 2px; border: 1px solid #fff; opacity: .85; }
.gm-mine { width: 18px; height: 18px; border-radius: 50%; background: #2EE6D6; border: 3px solid #0B0D12; box-shadow: 0 0 0 3px rgba(46,230,214,.45); }
.gm-3d { position: absolute; inset: 60px 24px 50px; z-index: 5; display: grid; grid-template-rows: auto 1fr; background: #0B0D12; border: 1px solid rgba(46,230,214,.4); border-radius: 8px; overflow: hidden; }
.gm-3d-h { display: flex; gap: 8px; align-items: center; padding: 8px 12px; } .gm-3d-h button { margin-left: auto; } .gm-3d-m { width: 100%; height: 100%; display: block; }
.pz-gm span { font-family: 'Noto Sans JP', sans-serif; color: #2EE6D6; margin-right: 3px; }
html.om-light .gm-ov { background: #F4F6F8; color: #0B0D12; } html.om-light .gm-card { background: #FFFFFF; border-color: #D5D9E1; } html.om-light .gm-t span, html.om-light .pz-gm span { color: #0E7C74; }
html.om-light .gm-c-st.ok { color: #0E7C74; border-color: rgba(14,124,116,.45); } html.om-light .gm-c-st.warn { color: #9A5300; } html.om-light .gm-foot { color: #3A4150; border-color: #D5D9E1; } html.om-light .gm-3d { background: #fff; }
/* 国 Kuni · Research por país (19-oct-2026) */
.co-note { margin-bottom: 14px; border-left: 3px solid #2EE6D6; } .co-note b span { font-family: 'Noto Sans JP', sans-serif; color: #2EE6D6; margin-right: 4px; }
.co-map path { stroke: rgba(11,13,18,.55); stroke-width: .35; } .co-map path.on { stroke: #FF9F43; stroke-width: 1.6; } .co-map path.dim { pointer-events: none; }
.co-yr { display: block; font-size: 10.5px; color: var(--muted, #9AA3AE); letter-spacing: .02em; }
html.om-light .co-note { border-left-color: #0E7C74; } html.om-light .co-note b span { color: #0E7C74; }
.rs-mapwrap.co-wrap { grid-template-columns: minmax(0, 1fr) 440px; } .co-wrap .rs-mt { width: 100%; table-layout: fixed; } .co-wrap .rs-mt td:first-child { width: 44%; } @media (max-width: 980px) { .rs-mapwrap.co-wrap { grid-template-columns: 1fr; } }
.co-toll { fill: #FF9F43; fill-opacity: .85; stroke: #0B0D12; stroke-width: .5; vector-effect: non-scaling-stroke; } .co-toll.nt { fill: #9AA3AE; fill-opacity: .6; }
.co-tolls { margin-top: 10px; font-size: 12.5px; } .co-tolls ul { margin: 4px 0 0; padding-left: 16px; } .co-tg { display: inline-flex; gap: 6px; align-items: center; }
/* 競合 Kyōgō · cliente vs competencia (19-oct-2026) */
#kg-ov { grid-template-rows: auto auto auto 1fr auto; }
.kg-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; padding: 10px 16px 0; } .kg-f { display: grid; gap: 4px; font-size: 12px; color: #9AA3AE; min-width: 200px; flex: 1; } .kg-f.kg-r { flex: 0 0 120px; min-width: 120px; }
.kg-sel { width: auto; min-width: 160px; }
.kg-cities { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 8px 16px 10px; border-bottom: 1px solid rgba(46,230,214,.18); }
.kg-chip { border: 1px solid rgba(255,255,255,.18); background: transparent; color: inherit; border-radius: 999px; padding: 3px 10px; font-size: 12px; cursor: pointer; } .kg-chip.on { border-color: #2EE6D6; color: #2EE6D6; background: rgba(46,230,214,.08); }
.kg-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; vertical-align: -1px; } .kg-dot.cl { background: #2EE6D6; } .kg-dot.rv { background: #FF9F43; }
.kg-sum { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; } .kg-sum > div { border: 1px solid rgba(255,255,255,.1); border-radius: 6px; padding: 10px; } .kg-sum small { display: block; font-size: 12px; color: #9AA3AE; } .kg-sum b { font-size: 26px; margin-right: 6px; } .kg-sum span { font-size: 12px; color: #9AA3AE; }
.kg-hi { color: #2EE6D6; } .kg-h { margin: 14px 0 4px; font-size: 13px; } .kg-list { margin: 0 0 8px; padding-left: 18px; font-size: 13px; } .kg-list li { margin: 2px 0; }
html.om-light .kg-chip { border-color: #D5D9E1; } html.om-light .kg-chip.on { border-color: #0E7C74; color: #0E7C74; background: rgba(14,124,116,.07); } html.om-light .kg-hi { color: #0E7C74; } html.om-light .kg-cities { border-color: #D5D9E1; }
/* 街 Machi · barrios y zoom del mapa de Colombia */
.co-map { position: relative; } .co-map svg { touch-action: none; cursor: grab; } .co-map svg.grab { cursor: grabbing; }
.co-map path { vector-effect: non-scaling-stroke; }
.co-zoom { position: absolute; top: 8px; right: 8px; display: flex; flex-direction: column; gap: 4px; z-index: 2; }
.co-zoom button { width: 30px; height: 30px; border-radius: 8px; border: 1px solid rgba(46,230,214,.35); background: rgba(11,13,18,.85); color: #2EE6D6; font-size: 17px; line-height: 1; cursor: pointer; }
.co-zoom button:hover, .co-zoom button:focus-visible { background: rgba(46,230,214,.15); outline: none; }
.co-map path.co-sect { stroke: rgba(11,13,18,.7); stroke-width: .6; } .co-map path.co-sect.on { stroke: #FF9F43; stroke-width: 2.2; }
.co-map path.co-hex { stroke: rgba(11,13,18,.5); stroke-width: .5; pointer-events: none; }
.co-map path.co-sline { fill: transparent; stroke: rgba(255,255,255,.18); stroke-width: .5; }
.co-estr { display: flex; height: 12px; border-radius: 6px; overflow: hidden; margin: 10px 0 4px; background: rgba(255,255,255,.06); } .co-estr i { display: block; height: 100%; }
.co-estr-l { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 11.5px; color: var(--muted, #9AA3AE); } .co-estr-l b { color: inherit; font-weight: 600; }
.co-drill { margin-top: 8px; } .co-drill span[lang="ja"], .co-jp { font-family: 'Noto Sans JP', sans-serif; color: #2EE6D6; }
html.om-light .co-zoom button { background: rgba(255,255,255,.92); color: #0E7C74; border-color: rgba(14,124,116,.35); } html.om-light .co-jp { color: #0E7C74; }
.kg-f.kg-cat { flex: 0.8; min-width: 170px; }
/* 円 En · Rueda 360 de P2P */
.rd-grid { display: grid; grid-template-columns: minmax(280px, 520px) minmax(0, 1fr); gap: 18px; align-items: start; margin-top: 12px; }
@media (max-width: 980px) { .rd-grid { grid-template-columns: 1fr; } }
.rd-svg { width: 100%; height: auto; display: block; }
.rd-seg { cursor: pointer; outline: none; } .rd-seg .rd-out { transition: opacity .15s; } .rd-seg .rd-in { opacity: .32; }
.rd-seg:hover .rd-out, .rd-seg:focus-visible .rd-out { opacity: .85; } .rd-seg.on .rd-out { stroke: #F2F5F7; stroke-width: 3; } .rd-seg.on .rd-in { opacity: .6; }
.rd-seg.dim { opacity: .18; } svg:not(.rd-svg) .rd-seg { cursor: default; }
.rd-t { font: 800 13px/1 'Inter', system-ui, sans-serif; letter-spacing: .06em; fill: #0B0D12; pointer-events: none; }
.rd-j { font: 600 10.5px/1 'Noto Sans JP', 'Inter', sans-serif; fill: #E8EEF2; pointer-events: none; }
.rd-cap path:first-child { fill: rgba(46,230,214,.1); stroke: rgba(46,230,214,.35); stroke-width: 1; }
.rd-c { font: 600 10.5px/1 'Noto Sans JP', 'Inter', sans-serif; fill: #2EE6D6; pointer-events: none; }
.rd-core { fill: #0B0D12; stroke: #2EE6D6; stroke-width: 2; } .rd-k1 { font: 800 30px/1 'Inter', sans-serif; fill: #F2F5F7; letter-spacing: .08em; } .rd-k2 { font: 700 11px/1 'Inter', sans-serif; fill: #2EE6D6; letter-spacing: .18em; }
.rd-card { border: 1px solid rgba(255,255,255,.08); border-left: 3px solid var(--rc, #2EE6D6); border-radius: 12px; padding: 14px; background: rgba(255,255,255,.02); }
.rd-card-h { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 8px; } .rd-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--rc); margin-top: 5px; flex: none; }
.rd-opt { border-top: 1px solid rgba(255,255,255,.07); padding: 10px 0; } .rd-opt p { margin: 4px 0 6px; font-size: 13px; }
.rd-opt-h { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; } .rd-plat { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--rc); border: 1px solid var(--rc); border-radius: 999px; padding: 1px 8px; }
.rd-opt dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; font-size: 12px; } .rd-opt dt { color: var(--muted, #9AA3AE); font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em; } .rd-opt dd { margin: 2px 0 0; }
@media (max-width: 640px) { .rd-opt dl { grid-template-columns: 1fr; } }
.rd-act { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.rd-caps { list-style: none; padding: 0; margin: 10px 0; display: grid; gap: 8px; } .rd-caps li { display: grid; gap: 2px; } .rd-caps span[lang] { color: #2EE6D6; font-family: 'Noto Sans JP', sans-serif; }
.rd-pp-g { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 16px; align-items: center; } @media (max-width: 760px) { .rd-pp-g { grid-template-columns: 1fr; } }
html.om-light .rd-core { fill: #FFFFFF; stroke: #0E7C74; } html.om-light .rd-k1 { fill: #0B0D12; } html.om-light .rd-k2, html.om-light .rd-c { fill: #0E7C74; } html.om-light .rd-j { fill: #0B0D12; }
html.om-light .rd-card { border-color: rgba(0,0,0,.1); background: #fff; }
.pp .rd-j { fill: #0B0D12; } .pp .rd-core { fill: #fff; stroke: #0E7C74; } .pp .rd-k1 { fill: #14256D; } .pp .rd-k2, .pp .rd-c { fill: #0E7C74; } .pp .rd-cap path:first-child { fill: rgba(14,124,116,.08); stroke: rgba(14,124,116,.35); } .pp .rd-seg.dim { opacity: .14; }
/* 外 Soto · proveedores DOOH LATAM */
.pv-grid { display: grid; grid-template-columns: minmax(260px, 430px) minmax(0, 1fr); gap: 18px; align-items: start; } @media (max-width: 980px) { .pv-grid { grid-template-columns: 1fr; } }
.pv-map svg { width: 100%; height: auto; display: block; }
.pv-c path { stroke: #0B0D12; stroke-width: .6; } .pv-c[data-pv] { cursor: pointer; outline: none; } .pv-c[data-pv]:hover path, .pv-c[data-pv]:focus-visible path { opacity: .8; } .pv-c.on path { stroke: #FF9F43; stroke-width: 2; }
.pv-c circle { fill: #0B0D12; stroke: rgba(255,255,255,.55); stroke-width: 1; } .pv-c.on circle { stroke: #FF9F43; stroke-width: 2; } .pv-c text { font: 700 9px/1 'Inter', sans-serif; fill: #F2F5F7; pointer-events: none; }
.pv-leg { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12px; margin-top: 8px; } .pv-leg i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 5px; vertical-align: -2px; }
.pv-nota { font-size: 13px; margin: 8px 0; padding: 8px 10px; border-left: 3px solid #2EE6D6; background: rgba(46,230,214,.06); border-radius: 6px; }
.pv-f { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
.pv-t { width: 100%; font-size: 13px; } .pv-t td { vertical-align: top; } .pv-aud { font-size: 11.5px; color: var(--muted, #9AA3AE); margin-top: 2px; }
.pv-ssp { display: inline-block; font-size: 11px; font-weight: 600; border: 1px solid rgba(46,230,214,.4); color: #2EE6D6; border-radius: 999px; padding: 1px 8px; margin: 0 4px 4px 0; white-space: nowrap; }
.pv-b { display: inline-block; font-size: 11px; font-weight: 700; border-radius: 6px; padding: 2px 7px; white-space: nowrap; }
.pv-si { background: rgba(46,230,214,.16); color: #2EE6D6; } .pv-prob { background: rgba(0,186,255,.14); color: #5CCBFF; } .pv-nc { background: rgba(255,159,67,.14); color: #FF9F43; } .pv-no { background: rgba(255,255,255,.06); color: #9AA3AE; }
.pv-steps { padding-left: 20px; margin: 0; } .pv-steps li { margin-bottom: 8px; } .pv-steps p { margin: 2px 0 0; font-size: 13px; } .pv-check { margin: 6px 0 0; padding-left: 18px; font-size: 13px; } .pv-check li { margin-bottom: 4px; }
html.om-light .pv-c circle { fill: #fff; stroke: rgba(0,0,0,.35); } html.om-light .pv-c text { fill: #0B0D12; } html.om-light .pv-ssp { color: #0E7C74; border-color: rgba(14,124,116,.4); } html.om-light .pv-si { color: #0E7C74; } html.om-light .pv-prob { color: #0369A1; } html.om-light .pv-nc { color: #B45309; }
.pv-panel .pv-t { table-layout: fixed; } .pv-panel .pv-t th:nth-child(1) { width: 47%; } .pv-panel .pv-t th:nth-child(2) { width: 23%; } .pv-panel .pv-t th:nth-child(3), .pv-panel .pv-t th:nth-child(4) { width: 15%; } .pv-panel .pv-ssp { white-space: normal; } .pv-panel .pv-b { white-space: normal; }
.kg-osm { width: 12px; height: 12px; border-radius: 50%; border: 3px solid; background: rgba(11,13,18,.85); box-shadow: 0 0 0 1px rgba(255,255,255,.4); } .kg-dot.osm { background: transparent; border: 2px solid #FF9F43; } .kg-conq { margin-top: 12px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.08); }
.kg-tg { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 8px; font-size: 12.5px; } .kg-tg label { display: inline-flex; gap: 6px; align-items: center; cursor: pointer; }
.gm-nophoto { margin: 8px 0; padding: 18px; border: 1px dashed rgba(255,255,255,.18); border-radius: 10px; text-align: center; font-size: 12.5px; color: var(--muted, #9AA3AE); } .gm-scr { cursor: pointer; }
.kg-iw { color: #0B0D12; max-width: 300px; font-size: 13px; } .kg-iw .gm-c-name { color: #0B0D12; margin: 2px 0 6px; font-size: 15px; } .kg-iw .gm-ph img { width: 100%; border-radius: 8px; } .kg-iw .rs-mt td { color: #0B0D12; } .kg-iw .co-yr { color: #555; } .kg-iw .gm-nophoto { color: #555; border-color: rgba(0,0,0,.2); }
/* Chizu: pines en abanico con etiqueta de marca (sin logos) */
.gm-fan { position: relative; width: 0; height: 0; }
.gm-fan-pin { position: absolute; left: 0; top: 0; display: flex; flex-direction: column; align-items: center; }
.gm-fan-lab { margin-top: 2px; font: 700 10.5px/1.2 'Inter', sans-serif; color: #0B0D12; padding: 2px 6px; border-radius: 999px; white-space: nowrap; box-shadow: 0 1px 3px rgba(0,0,0,.45); border: 1px solid rgba(11,13,18,.5); }
.gm-fan-ln { position: absolute; left: 0; top: 0; height: 1.5px; background: rgba(255,255,255,.75); transform-origin: 0 50%; }
.gm-fan-dot { position: absolute; left: -4px; top: -4px; width: 8px; height: 8px; border-radius: 50%; border: 1.5px solid #0B0D12; }
.gm-fan-lab { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); }

/* Chiri: orden planificador → mapa → resultado */
.ch-mapc, .ch-res { margin-top: 12px; } .ch-mapc .ch-map { max-height: 440px; } .ch-pick { margin: 8px 0 0; min-height: 22px; }
.ch-say { font-size: 15px; line-height: 1.5; margin: 0; } .ch-good { color: #2EE6D6; } html.om-light .ch-good { color: #0E7C74; }
.ch-tag { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; } .ch-tag.ok, .ch-tag.exp { background: rgba(46,230,214,.16); color: #2EE6D6; } .ch-tag.off, .ch-tag.ctl { background: rgba(255,159,67,.16); color: #FF9F43; }
html.om-light .ch-tag.ok, html.om-light .ch-tag.exp { color: #0E7C74; background: rgba(14,124,116,.12); } html.om-light .ch-map path.on { stroke: #111; }

.ch-data { padding: 10px 12px; border-radius: 4px; border: 1px solid; font-size: 13px; line-height: 1.5; margin: 8px 0 10px; } .ch-data .btn { margin: 4px 6px 0 0; }
.ch-data.ok { border-color: rgba(46,230,214,.5); background: rgba(46,230,214,.07); } .ch-data.mid, .ch-data.none { border-color: rgba(255,159,67,.55); background: rgba(255,159,67,.08); }
.ch-met { margin-top: 12px; } .ch-met summary { cursor: pointer; display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; list-style: none; } .ch-met summary::before { content: '▸'; color: #2EE6D6; } .ch-met[open] summary::before { content: '▾'; }
.ch-ej { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; } .ch-ej > div { border: 1px solid rgba(255,255,255,.1); border-radius: 4px; padding: 10px; display: grid; gap: 2px; } .ch-ej small { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted, #9AA3AE); } .ch-ej b { font-size: 22px; } .ch-ej span { font-size: 12px; color: var(--muted, #9AA3AE); } .ch-ej .hi { border-color: rgba(46,230,214,.6); background: rgba(46,230,214,.08); } .ch-ej .hi b { color: #2EE6D6; }
html.om-light .ch-ej .hi b { color: #0E7C74; } html.om-light .ch-ej > div { border-color: rgba(0,0,0,.12); }

.ch-flow { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 12px; } .ch-flow span { display: inline-flex; gap: 6px; align-items: baseline; padding: 3px 10px; border-radius: 999px; border: 1px solid rgba(255,255,255,.12); color: var(--muted, #9AA3AE); } .ch-flow span i { font-style: normal; font-size: 11px; opacity: .8; } .ch-flow span.on { border-color: #2EE6D6; color: #2EE6D6; background: rgba(46,230,214,.08); font-weight: 600; }
html.om-light .ch-flow span { border-color: rgba(0,0,0,.14); } html.om-light .ch-flow span.on { border-color: #0E7C74; color: #0E7C74; background: rgba(14,124,116,.08); }

.pz-ch-off { border-style: dashed !important; opacity: .92; } .pz-ch-sel { display: inline-block; width: auto; padding: 2px 6px; font-size: 13px; }

.pp-clause { margin-top: 8px; padding: 10px 12px; border-left: 3px solid #FF9F43; background: rgba(255,159,67,.08); border-radius: 0 4px 4px 0; font-size: 13px; line-height: 1.5; }

/* 国 País de trabajo */
#pc { max-width: 190px; } #pclabel span { color: #2EE6D6; margin-right: 2px; } html.om-light #pclabel span { color: #0E7C74; }
.pa-gate { border-left: 3px solid #2EE6D6; } html.om-light .pa-gate { border-left-color: #0E7C74; }

/* 鏡 Espejo de plataforma (TikTok, StackAdapt) en el BUILDER */
.ej-wrap { display: grid; gap: 10px; } .ej-top .dv-capa { margin-top: 6px; }
.ej-lv { border: 1px solid rgba(255,255,255,.1); border-radius: 6px; padding: 10px 12px; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px 14px; }
.ej-lv legend { padding: 0 6px; font-weight: 700; color: #2EE6D6; font-size: 13px; } html.om-light .ej-lv legend { color: #0E7C74; } html.om-light .ej-lv { border-color: rgba(0,0,0,.12); }
.ej-f { display: grid; gap: 4px; align-content: start; } .ej-f label { font-size: 13px; } .ej-f small { font-size: 11.5px; line-height: 1.4; }
.ej-ck { grid-template-columns: auto 1fr; align-items: center; } .ej-ck small { grid-column: 1 / -1; }
.ej-req { font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: #FF9F43; font-weight: 600; }
.ej-multi { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 13px; }

/* 計画 Planificador Colombia */
.pc-map path { fill: rgba(255,255,255,.05); stroke: rgba(255,255,255,.14); stroke-width: .4; cursor: pointer; } .pc-map path.on { fill: rgba(46,230,214,.75); stroke: #2EE6D6; }
.pc-map path.dim { opacity: .35; } .pc-map path:hover { stroke: #fff; stroke-width: 1; }
html.om-light .pc-map path { fill: rgba(0,0,0,.05); stroke: rgba(0,0,0,.18); } html.om-light .pc-map path.on { fill: rgba(14,124,116,.6); stroke: #0E7C74; }

/* 組立 Plan aprobado → BUILDER */
.jd-lines td { padding-top: 0 !important; } .jd-lines summary { cursor: pointer; color: #2EE6D6; } html.om-light .jd-lines summary { color: #0E7C74; }
.jd-lgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; margin-top: 8px; }
.jd-line { display: grid; gap: 3px; padding: 10px; border: 1px solid rgba(255,255,255,.1); border-radius: 6px; } .jd-line .btn { justify-self: start; margin-top: 4px; } html.om-light .jd-line { border-color: rgba(0,0,0,.12); }

/* 循環 Junkan · ciclo por etapas: botón redondo que se despliega + rueda con el Ω al centro (19-oct-2026) */
.cy-fab { position: fixed; top: 74px; right: 22px; z-index: 70; }
.cy-fabb { display: flex; flex-direction: row-reverse; align-items: center; gap: 0; height: 58px; padding: 0; border-radius: 999px; border: 1px solid rgba(46,230,214,.55); background: rgba(11,13,18,.9); color: #E9E6DF; cursor: pointer; font: inherit; box-shadow: 0 10px 30px rgba(0,0,0,.5); backdrop-filter: blur(10px); transition: gap .35s ease, padding .35s ease, border-color .25s ease; }
.cy-fabb { position: relative; z-index: 71; }
.cy-fcore { position: relative; width: 56px; height: 56px; flex: none; display: grid; place-items: center; }
.cy-fcore img { width: 30px; height: 30px; position: relative; }
.cy-fspin { position: absolute; inset: 0; width: 100%; height: 100%; animation: cySpin 9s linear infinite; }
.cy-ftx { display: flex; flex-direction: column; line-height: 1.15; text-align: right; white-space: nowrap; overflow: hidden; max-width: 0; opacity: 0; transition: max-width .4s ease, opacity .25s ease; }
.cy-ftx b { font-size: 13.5px; font-weight: 600; } .cy-ftx b span { font-family: "Noto Sans JP", sans-serif; color: #FF2E4D; margin-right: 4px; }
.cy-ftx small { font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: #2EE6D6; }
.cy-fabb:hover, .cy-fabb:focus-visible, .cy-fabb[aria-expanded="true"] { gap: 10px; padding-left: 18px; border-color: #2EE6D6; outline: none; }
.cy-fabb:hover .cy-ftx, .cy-fabb:focus-visible .cy-ftx, .cy-fabb[aria-expanded="true"] .cy-ftx { max-width: 260px; opacity: 1; }
.cy-fabb:hover .cy-fspin { animation-duration: 2.5s; }
.cy-pulse { animation: cyPulse 2.2s ease-in-out infinite; } @keyframes cyPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(46,230,214,.45); } 50% { box-shadow: 0 0 0 12px rgba(46,230,214,0); } }
@keyframes cySpin { to { transform: rotate(360deg); } } @keyframes cySpinR { to { transform: rotate(-360deg); } }
@keyframes cyIn { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: none; } }
/* la rueda: capa transparente sobre la pantalla, el Ω fuerte (sin transparencia) al centro */
.cy-pop { position: fixed; inset: 0; z-index: 69; background: rgba(8,10,14,.6); backdrop-filter: blur(14px) saturate(1.15); -webkit-backdrop-filter: blur(14px) saturate(1.15); overflow: auto; }
.cy-pop:not([hidden]) .cy-wl { animation: cyIn .35s ease both; }
.cy-wl { min-height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 28px 20px 40px; }
.cy-whead { width: min(760px, 100%); display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.cy-h { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; }
.cy-jp { font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 22px; color: #2EE6D6; }
.cy-ro { font-family: Syncopate, sans-serif; font-size: 10px; letter-spacing: .3em; color: #9AA1B5; }
.cy-es { font-weight: 600; font-size: 16px; } .cy-tag { font-size: 11px; padding: 2px 9px; border-radius: 999px; border: 1px solid rgba(46,230,214,.5); color: #2EE6D6; }
.cy-x { border-color: #FF9F43 !important; color: #FF9F43 !important; border-radius: 999px !important; background: rgba(255,159,67,.08) !important; }
.cy-wheel { position: relative; width: min(520px, 62vh, 92vw); aspect-ratio: 1; }
.cy-wheel > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.cy-sp1 { animation: cySpin 40s linear infinite; } .cy-sp2 { animation: cySpinR 22s linear infinite; }
.cy-ring { transform: rotate(-90deg); }
.cy-arc { transition: stroke .3s; } .cy-a-done { stroke: #2EE6D6; } .cy-a-now { stroke: #2EE6D6; animation: cyArc 1.6s ease-in-out infinite; } .cy-a-todo { stroke: #262A38; } .cy-a-off { stroke: #1A1D27; }
@keyframes cyArc { 50% { opacity: .35; } }
.cy-disc { position: absolute; left: 50%; top: 50%; width: 38%; aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; background: #0B0D12; border: 1px solid #262A38; box-shadow: 0 0 0 10px rgba(11,13,18,.55), 0 0 60px rgba(46,230,214,.18); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; }
.cy-disc img { width: 52%; height: auto; filter: drop-shadow(0 4px 18px rgba(255,46,77,.35)); }
.cy-dtx { font-size: 13px; font-weight: 600; text-align: center; padding: 0 10px; } .cy-dtx span { font-family: "Noto Sans JP", sans-serif; color: #FF2E4D; }
.cy-node { position: absolute; width: 21%; aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; text-decoration: none; color: #E9E6DF; background: #12151D; border: 1px solid #262A38; box-shadow: 0 8px 24px rgba(0,0,0,.45); transition: transform .2s ease, border-color .2s, background .2s; text-align: center; }
.cy-node:hover, .cy-node:focus-visible { transform: translate(-50%, -50%) scale(1.08); border-color: #2EE6D6; outline: none; }
.cy-nkj { font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: clamp(14px, 2.4vh, 20px); color: #2EE6D6; white-space: nowrap; }
.cy-node b { font-size: clamp(11px, 1.6vh, 13.5px); } .cy-node small { font-size: clamp(9.5px, 1.3vh, 11px); color: #9AA1B5; }
.cy-done { border-color: rgba(46,230,214,.6); } .cy-done small { color: #2EE6D6; }
.cy-now { border: 2px solid #2EE6D6; background: rgba(46,230,214,.14); box-shadow: 0 0 0 6px rgba(46,230,214,.12), 0 10px 30px rgba(0,0,0,.5); } .cy-now .cy-nkj { color: #FF2E4D; } .cy-now small { color: #E9E6DF; font-weight: 600; }
.cy-next { border-style: dashed; } .cy-later { opacity: .55; } .cy-out { opacity: .3; }
.cy-winfo { width: min(760px, 100%); display: grid; gap: 12px; justify-items: center; text-align: center; }
.cy-msg { margin: 0; font-size: 14px; line-height: 1.55; max-width: 640px; }
.cy-ok { color: #2EE6D6; } .cy-wait { color: #FF9F43; }
.cy-acts { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: center; } .cy-sel { max-width: 340px; }
.cy-go { font-size: 15px; padding: 12px 22px; border-radius: 999px; } .cy-go[disabled] { opacity: .45; cursor: not-allowed; }
.cy-force { background: none; border: 0; color: #9AA1B5; font: inherit; font-size: 12px; text-decoration: underline; cursor: pointer; }
body.cy-open { overflow: hidden; }
.cy-modal { max-width: 640px; } .cy-routes { border: 0; padding: 0; margin: 10px 0 0; display: grid; gap: 8px; } .cy-routes legend { font-weight: 600; margin-bottom: 6px; }
.cy-route { display: flex; gap: 12px; align-items: flex-start; padding: 12px; border-radius: 10px; border: 1px solid #262A38; background: #1A1D27; cursor: pointer; }
.cy-route:has(input:checked) { border-color: #2EE6D6; background: rgba(46,230,214,.08); } .cy-route input { margin-top: 4px; accent-color: #2EE6D6; }
.cy-rjp { font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: 20px; color: #2EE6D6; } .cy-route small { display: block; color: #9AA1B5; font-size: 12.5px; } .cy-rpath { display: block; margin-top: 4px; font-size: 12px; color: #2EE6D6; }
.cy-nocl { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 10px; padding: 10px 12px; border-radius: 10px; border: 1px solid rgba(255,159,67,.45); color: #FF9F43; background: rgba(255,159,67,.06); }
.nav-grp.cy-off { display: none; }
.nav-grp.cy-lock { opacity: .5; } .nav-grp.cy-lock .nav-items a { cursor: help; }
.cy-mk { margin-left: auto; margin-right: 6px; font-size: 11px; color: #2EE6D6; } .nav-grp.cy-lock .cy-mk { color: #9AA1B5; }
@media (prefers-reduced-motion: reduce) { .cy-pulse, .cy-fspin, .cy-sp1, .cy-sp2, .cy-a-now, .cy-pop:not([hidden]) .cy-wl { animation: none; } }
@media (max-width: 760px) { .cy-fab { top: auto; bottom: 90px; right: 14px; } .cy-node { width: 23%; } .cy-dtx { font-size: 11px; } }
html.om-light .cy-fabb { background: rgba(255,255,255,.95); color: #0B0D12; border-color: #0E7C74; box-shadow: 0 10px 26px rgba(11,13,18,.16); }
html.om-light .cy-fspin circle { stroke: #0E7C74; } html.om-light .cy-ftx small { color: #0E7C74; } html.om-light .cy-ftx b span, html.om-light .cy-dtx span, html.om-light .cy-now .cy-nkj { color: #C8102E; }
html.om-light .cy-pop { background: rgba(247,248,250,.62); }
html.om-light .cy-disc { background: #FFFFFF; border-color: #D5D9E1; box-shadow: 0 0 0 10px rgba(255,255,255,.6), 0 0 50px rgba(14,124,116,.18); }
html.om-light .cy-node { background: #FFFFFF; color: #0B0D12; border-color: #D5D9E1; box-shadow: 0 8px 20px rgba(11,13,18,.12); } html.om-light .cy-node:hover { border-color: #0E7C74; }
html.om-light .cy-now { border-color: #0E7C74; background: #E6F4F2; } html.om-light .cy-done { border-color: rgba(14,124,116,.6); }
html.om-light .cy-jp, html.om-light .cy-nkj, html.om-light .cy-rjp, html.om-light .cy-rpath, html.om-light .cy-ok, html.om-light .cy-tag, html.om-light .cy-mk, html.om-light .cy-done small { color: #0E7C74; }
html.om-light .cy-a-done, html.om-light .cy-a-now { stroke: #0E7C74; } html.om-light .cy-a-todo { stroke: #D5D9E1; } html.om-light .cy-a-off { stroke: #EEF1F5; } html.om-light .cy-ring > circle:first-child { stroke: #EEF1F5; }
html.om-light .cy-sp1 circle, html.om-light .cy-sp2 circle { stroke: #0E7C74; }
html.om-light .cy-route { background: #EEF1F5; border-color: #D5D9E1; } html.om-light .cy-route:has(input:checked) { border-color: #0E7C74; background: rgba(14,124,116,.08); }
html.om-light .cy-wait, html.om-light .cy-x { color: #B85C00 !important; } html.om-light .cy-x { border-color: #B85C00 !important; } html.om-light .cy-nocl { color: #B85C00; border-color: rgba(184,92,0,.45); }
html.om-light .cy-ro, html.om-light .cy-node small, html.om-light .cy-route small, html.om-light .cy-force { color: #5B6273; }

/* ブランド Marca blanca (white label) · fase 1 */
html:not([data-brand="omega"]) .om-lock > div::after { content: var(--brand-sub); display: block; font-family: Syncopate, sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .5em; color: #2EE6D6; margin-top: 4px; }
html.om-light:not([data-brand="omega"]) .om-lock > div::after { color: #0E7C74; }
.mb-mark { width: 34px; height: 34px; flex: none; }
#brandsw { margin-top: 2px; }
/* 循環 rueda: explicación al pasar el mouse por cada etapa */
.cy-disc.cy-hov { gap: 4px; padding: 0 8%; }
.cy-dkj { font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: clamp(22px, 4vh, 34px); color: #FF2E4D; line-height: 1.1; }
.cy-dro { font-size: clamp(13px, 1.9vh, 16px); letter-spacing: .04em; }
.cy-dlit { font-size: clamp(10.5px, 1.5vh, 12.5px); color: #9AA1B5; text-align: center; line-height: 1.3; }
.cy-hint { display: block; animation: cyIn .25s ease both; } .cy-hint b span { font-family: "Noto Sans JP", sans-serif; color: #FF2E4D; }
.cy-hmods { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 8px 0 6px; }
.cy-hmods i { font-style: normal; font-size: 12px; padding: 3px 10px; border-radius: 999px; border: 1px solid rgba(46,230,214,.45); color: #2EE6D6; background: rgba(46,230,214,.06); }
.cy-hint small { display: block; color: #9AA1B5; font-size: 12.5px; }
html.om-light .cy-dkj, html.om-light .cy-hint b span { color: #C8102E; } html.om-light .cy-hmods i { color: #0E7C74; border-color: rgba(14,124,116,.45); background: rgba(14,124,116,.06); } html.om-light .cy-dlit, html.om-light .cy-hint small { color: #5B6273; }

/* 組立 ¿Qué armo hoy? · planes aprobados en tarjetas (19-oct-2026) */
.jd-top { margin-bottom: 14px; } .jd-h { margin: 0; font-size: 20px; } .jd-h span { font-family: "Noto Sans JP", sans-serif; color: #2EE6D6; margin-right: 6px; }
.jd-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 12px; } .jd-filters #jdq { flex: 1 1 280px; min-width: 220px; } .jd-filters #jdcl { flex: 0 1 240px; }
.jd-cyc { font-size: 12.5px; padding: 4px 12px; border-radius: 999px; border: 1px solid rgba(46,230,214,.45); color: #2EE6D6; } .jd-cyc span { font-family: "Noto Sans JP", sans-serif; }
.jd-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
.jd-card { display: flex; flex-direction: column; gap: 10px; padding: 18px; border-radius: 14px; border: 1px solid #262A38; background: #12151D; transition: border-color .2s, transform .2s; }
.jd-card:hover { border-color: rgba(46,230,214,.55); transform: translateY(-2px); } .jd-card[hidden] { display: none; }
.jd-full { opacity: .72; }
.jd-ch { display: flex; justify-content: space-between; align-items: center; gap: 8px; } .jd-cl { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #2EE6D6; } .jd-nocl { color: #FF9F43; }
.jd-ct { margin: 0; font-size: 15.5px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.jd-meta { display: flex; flex-wrap: wrap; gap: 14px; font-size: 13px; color: #9AA1B5; } .jd-meta b { color: #E9E6DF; }
.jd-plats { display: flex; flex-wrap: wrap; gap: 6px; } .jd-plats i { font-style: normal; font-size: 11.5px; padding: 2px 9px; border-radius: 999px; background: #1A1D27; border: 1px solid #262A38; }
.jd-prog { height: 6px; border-radius: 99px; background: #1A1D27; overflow: hidden; } .jd-prog span { display: block; height: 100%; background: #2EE6D6; border-radius: 99px; }
.jd-pt { margin: -4px 0 0; color: #9AA1B5; }
.jd-assign { padding: 10px 12px; border-radius: 10px; border: 1px solid rgba(255,159,67,.45); background: rgba(255,159,67,.06); color: #FF9F43; display: grid; gap: 6px; } .jd-assign p { margin: 0; } .jd-assign select { min-width: 180px; }
.jd-acts { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: auto; } .jd-go { border-radius: 999px; } .jd-go[disabled] { opacity: .45; cursor: not-allowed; } .jd-ok { color: #2EE6D6; }
.jd-ld summary { cursor: pointer; color: #2EE6D6; } .jd-ll { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; }
.jd-ll li { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; background: #1A1D27; } .jd-dot { width: 20px; text-align: center; color: #9AA1B5; } .jd-done .jd-dot { color: #2EE6D6; }
.jd-lt { flex: 1; display: flex; flex-direction: column; line-height: 1.25; } .jd-lt small { color: #9AA1B5; font-size: 12px; }
html.om-light .jd-card { background: #FFFFFF; border-color: #D5D9E1; } html.om-light .jd-card:hover { border-color: #0E7C74; }
html.om-light .jd-cl, html.om-light .jd-cyc, html.om-light .jd-ok, html.om-light .jd-ld summary, html.om-light .jd-done .jd-dot, html.om-light .jd-h span { color: #0E7C74; } html.om-light .jd-cyc { border-color: rgba(14,124,116,.45); }
html.om-light .jd-nocl, html.om-light .jd-assign { color: #B85C00; } html.om-light .jd-meta b { color: #0B0D12; }
html.om-light .jd-plats i, html.om-light .jd-ll li, html.om-light .jd-prog { background: #EEF1F5; border-color: #D5D9E1; } html.om-light .jd-prog span { background: #0E7C74; }
html.om-light .jd-meta, html.om-light .jd-pt, html.om-light .jd-lt small { color: #5B6273; }
.jd-cur { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; border-left: 3px solid #2EE6D6; } .jd-cur > div { display: grid; gap: 3px; flex: 1 1 420px; } html.om-light .jd-cur { border-left-color: #0E7C74; }
.lg-proj { display: grid; gap: 4px; margin: 0 0 12px; max-width: 560px; } .lg-proj label { font-weight: 600; font-size: 13px; } .lg-proj label span { font-family: "Noto Sans JP", sans-serif; color: #2EE6D6; margin-right: 4px; } html.om-light .lg-proj label span { color: #0E7C74; }

/* 捨てる Descartar: naranja de atención (nunca rojo: no es crítico) + lista de descartados con Restaurar */
.ds-btn { border-color: rgba(255,159,67,.55) !important; color: #FF9F43 !important; background: rgba(255,159,67,.06) !important; }
.ds-btn:hover, .ds-btn:focus-visible { background: rgba(255,159,67,.16) !important; border-color: #FF9F43 !important; }
.ds-list { margin-top: 12px; } .ds-list summary { cursor: pointer; color: #9AA1B5; } .ds-list ul { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; text-align: left; }
.ds-list li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 12px; border-radius: 10px; border: 1px dashed #262A38; }
.ds-list li span { display: flex; flex-direction: column; line-height: 1.3; } .ds-list li small { color: #9AA1B5; font-size: 12px; }
.cy-winfo .ds-list { width: min(560px, 100%); }
html.om-light .ds-btn { color: #B85C00 !important; border-color: rgba(184,92,0,.5) !important; background: rgba(184,92,0,.06) !important; } html.om-light .ds-list li { border-color: #D5D9E1; } html.om-light .ds-list summary, html.om-light .ds-list li small { color: #5B6273; }
.nav-grp.cy-out { opacity: .38; } .nav-grp.cy-out .cy-mk { color: #9AA1B5; } .nav-grp.cy-out:hover, .nav-grp.cy-lock:hover { opacity: .85; }

/* 歓迎 Bienvenida de COSMO con el video oficial (noche azul marino de P2P, como la intro) */
.cw-wrap { position: fixed; inset: 0; z-index: 120; display: flex; align-items: center; justify-content: center; padding: 24px; background: radial-gradient(circle at 70% 30%, #6b00f7 0%, #3a1bb0 28%, #14256d 60%, #0a1240 100%); animation: cyIn .4s ease both; overflow: auto; }
.cw-box { width: min(980px, 100%); display: grid; gap: 16px; justify-items: center; text-align: center; color: #ffffff; }
.cw-logo { width: min(320px, 60vw); filter: drop-shadow(0 10px 40px rgba(0, 186, 255, .35)); }
.cw-vid { width: 100%; max-height: 62vh; border-radius: 18px; background: #000; box-shadow: 0 30px 80px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .12); }
.cw-vid::cue { background: rgba(10, 18, 64, .82); color: #ffffff; font-size: 1.05em; }
.cw-acts { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.cw-go { border-radius: 999px; padding: 12px 24px; background: linear-gradient(100deg, #6b00f7 0%, #4d3bff 55%, #00baff 100%) !important; color: #fff !important; border: 0 !important; }
.cw-skip { border-radius: 999px; color: #ff9f43 !important; border-color: #ff9f43 !important; background: rgba(255, 159, 67, .08) !important; }
.cw-snd { border-radius: 999px; color: #ffffff !important; border-color: rgba(255, 255, 255, .5) !important; background: rgba(255, 255, 255, .08) !important; }
.cw-foot { margin: 0; font-size: 13px; letter-spacing: .04em; color: #c7cdea; }
@media (prefers-reduced-motion: reduce) { .cw-wrap { animation: none; } }
.cw-omega { background: radial-gradient(circle at 50% 30%, rgba(46, 230, 214, .16) 0%, #0b0d12 60%); }
.cw-om { display: flex; align-items: center; gap: 14px; } .cw-om img { width: 56px; } .cw-om b { font-family: Cinzel, serif; font-size: 40px; letter-spacing: .24em; color: #e9e6df; } .cw-om small { font-family: Syncopate, sans-serif; font-size: 11px; letter-spacing: .5em; color: #2ee6d6; align-self: flex-end; margin-bottom: 8px; }
.cw-omega .cw-go { background: #2ee6d6 !important; color: #0b0d12 !important; }
.cw-omega .cw-foot { color: #9aa1b5; }
.cw-omega { background: radial-gradient(circle at 50% 30%, #12302e 0%, #0b0d12 62%) !important; }
.cw-cos { display: grid; justify-items: center; gap: 2px; } .cw-cos img { width: min(300px, 55vw); filter: drop-shadow(0 10px 40px rgba(0, 186, 255, .35)); }
.cw-cos b { font-family: Bizmo, Mollen, Montserrat, sans-serif; font-weight: 800; font-size: 46px; letter-spacing: .02em; background: linear-gradient(90deg, #00baff 0%, #3b6fff 50%, #9b5cff 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* 起動 Activar / 停止 Pausar en el Registro de montajes */
.la-st { display: grid; gap: 4px; justify-items: start; } .la-on { color: #2ee6d6; font-weight: 600; font-size: 12.5px; } .la-off { color: #9aa1b5; font-size: 12.5px; }
.la-pause { border-color: rgba(255, 159, 67, .55) !important; color: #ff9f43 !important; }
.la-sum { width: 100%; font-size: 13.5px; border-collapse: collapse; } .la-sum th { text-align: left; color: #9aa1b5; font-weight: 500; padding: 4px 10px 4px 0; width: 38%; } .la-sum td { padding: 4px 0; }
html.om-light .la-on { color: #0e7c74; } html.om-light .la-off, html.om-light .la-sum th { color: #5b6273; } html.om-light .la-pause { color: #b85c00 !important; border-color: rgba(184, 92, 0, .5) !important; }
.cy-lvl { font-size: 12.5px; padding: 4px 12px; border-radius: 999px; border: 1px dashed rgba(46, 230, 214, .5); color: #2ee6d6; } .cy-lvl span { font-family: "Noto Sans JP", sans-serif; }
/* 今日 Mi día (19-oct-2026): saludo + máx. 3 recomendaciones + 航 Navegar. Pantalla de noche (como la intro) y tarjeta en Inicio */
.md-wrap { position: fixed; inset: 0; z-index: 118; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(7, 8, 12, .82); backdrop-filter: blur(6px); animation: cyIn .35s ease both; overflow: auto; }
.md-box { width: min(760px, 100%); background: #0b0d12; color: #e9e6df; border: 1px solid rgba(46, 230, 214, .35); border-radius: 22px; padding: 28px; box-shadow: 0 30px 80px rgba(0, 0, 0, .55), 0 0 60px rgba(46, 230, 214, .12); display: grid; gap: 18px; }
.md-head { display: flex; gap: 16px; align-items: center; }
.md-jp { font-size: 34px; color: #2ee6d6; line-height: 1; padding: 10px 12px; border: 1px solid rgba(46, 230, 214, .4); border-radius: 14px; }
.md-hi { margin: 0; font-size: 26px; }
.md-sub { margin: 4px 0 0; color: #b9bdc8; }
.md-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.md-step { display: grid; grid-template-columns: 34px 1fr auto; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 14px; border: 1px solid #262a38; background: #12151d; }
.md-n { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; border: 1px solid #3a4052; color: #b9bdc8; }
.md-tx { display: grid; gap: 2px; } .md-tx b span { color: #2ee6d6; margin-right: 4px; } .md-tx small { color: #b9bdc8; font-size: 13px; }
.md-next { border-color: #2ee6d6; box-shadow: inset 3px 0 0 #2ee6d6; } .md-next .md-n { background: #2ee6d6; color: #0b0d12; border-color: #2ee6d6; }
.md-done { opacity: .62; } .md-done .md-n { color: #2ee6d6; border-color: #2ee6d6; }
.md-crit { box-shadow: inset 3px 0 0 #ff2e4d; }
.md-navh { margin: 0 0 8px; font-weight: 700; } .md-navh span { color: #ff9f43; margin-right: 6px; }
.md-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; }
.md-tile { display: grid; gap: 4px; padding: 14px; border-radius: 14px; border: 1px solid #262a38; background: #12151d; color: inherit; text-decoration: none; transition: border-color .15s, transform .15s; }
.md-tile:hover, .md-tile:focus-visible { border-color: #ff9f43; transform: translateY(-2px); }
.md-tile span { font-size: 20px; color: #ff9f43; } .md-tile small { color: #b9bdc8; font-size: 12px; line-height: 1.35; }
.md-acts { display: flex; justify-content: flex-end; gap: 8px; }
.md-skip { border-radius: 999px; }
.md-card { display: grid; gap: 12px; margin-bottom: 14px; border-left: 3px solid #2ee6d6; }
.md-card .md-jp { font-size: 22px; padding: 6px 8px; } .md-card .md-hi { font-size: 20px; }
html.om-light .md-card .md-step, html.om-light .md-card .md-tile { background: #ffffff; border-color: #e3e6ec; }
html.om-light .md-card .md-tx small, html.om-light .md-card .md-sub, html.om-light .md-card .md-n { color: #5b6273; }
html.om-light .md-card .md-jp, html.om-light .md-card .md-tx b span { color: #0e7c74; border-color: rgba(14, 124, 116, .4); }
html.om-light .md-card .md-next { border-color: #0e7c74; box-shadow: inset 3px 0 0 #0e7c74; } html.om-light .md-card .md-next .md-n { background: #0e7c74; border-color: #0e7c74; color: #ffffff; }
html.om-light .md-card { border-left-color: #0e7c74; }
@media (max-width: 640px) { .md-step { grid-template-columns: 30px 1fr; } .md-step .btn { grid-column: 1 / -1; } .md-box { padding: 20px; } }
@media (prefers-reduced-motion: reduce) { .md-wrap { animation: none; } .md-tile { transition: none; } }
.md-scope { margin: 2px 0 0; font-size: 12px; color: #8a90a0; }
.md-step .btn, .md-tile { text-decoration: none !important; }
.mc-modal { max-width: 560px; } .mc-set { border: 1px solid var(--line); border-radius: 12px; padding: 8px 12px; margin: 0 0 10px; max-height: 40vh; overflow: auto; } .mc-set legend { font-weight: 700; padding: 0 6px; }
.mc-row { display: flex; gap: 8px; align-items: center; padding: 5px 0; font-size: 14px; } .mc-row input { accent-color: #2ee6d6; } html.om-light .mc-row input { accent-color: #0e7c74; }
/* 今日 Mi día · pantalla partida (19-oct-2026): izquierda la marca, derecha las viñetas */
.md-wrap { padding: 0; background: #07080c; backdrop-filter: none; align-items: stretch; z-index: 118; }
.md-split { width: 100%; min-height: 100%; display: grid; grid-template-columns: 1fr 1fr; }
.md-split > .loading { grid-column: 1 / -1; place-self: center; color: #b9bdc8; }
.md-left { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 48px 32px; text-align: center; background: radial-gradient(circle at 50% 42%, rgba(46, 230, 214, .16) 0%, #07080c 62%); color: #e9e6df; }
.md-logo { width: min(220px, 40vw); height: auto; filter: drop-shadow(0 0 40px rgba(46, 230, 214, .35)); animation: cyIn .6s ease both; }
.md-brand { font-family: Cinzel, serif; font-size: 44px; letter-spacing: .28em; margin-top: 8px; }
.md-bsub { font-family: Syncopate, sans-serif; font-size: 11px; letter-spacing: .5em; color: #2ee6d6; }
.md-left .md-hi { margin: 28px 0 0; font-size: 28px; color: #e9e6df; }
.md-date { margin: 0; color: #8a90a0; }
.md-right { display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 48px clamp(24px, 5vw, 72px); background: #0b0d12; color: #e9e6df; border-left: 1px solid rgba(46, 230, 214, .25); overflow: auto; }
.md-rh { margin: 0; font-size: 18px; font-weight: 700; } .md-rh span { color: #2ee6d6; margin-right: 6px; } .md-rh2 { margin-top: 22px; } .md-rh2 span { color: #ff9f43; }
.md-ok { color: #b9bdc8; margin: 8px 0; }
.md-bul { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 2px; }
.md-bul a { display: grid; grid-template-columns: 34px 1fr 20px; gap: 10px; align-items: start; padding: 10px 12px; border-radius: 12px; color: inherit; text-decoration: none; border: 1px solid transparent; transition: background .15s, border-color .15s; }
.md-bul a:hover, .md-bul a:focus-visible { background: #12151d; border-color: #262a38; outline: none; }
.md-bul b { display: block; } .md-bul b span { color: #2ee6d6; margin-right: 4px; } .md-bul small { display: block; color: #b9bdc8; font-size: 13px; margin-top: 2px; line-height: 1.4; }
.md-bul i { font-style: normal; color: #5b6273; align-self: center; } .md-bul a:hover i { color: #2ee6d6; }
.md-dot { font-size: 22px; line-height: 1; color: #2ee6d6; text-align: center; }
.md-bul .md-next a { border-color: rgba(46, 230, 214, .45); background: rgba(46, 230, 214, .06); } .md-bul .md-next i { color: #2ee6d6; }
.md-bul .md-done a { opacity: .55; } .md-bul .md-crit .md-dot { color: #ff2e4d; }
.md-nbul .md-dot { font-size: 15px; color: #ff9f43; padding-top: 2px; } .md-nbul small { font-size: 12px; }
.md-right .md-acts { margin-top: 18px; justify-content: flex-start; }
/* COSMO: la mitad de la marca en el violeta noche de P2P (como la intro) y la mitad de trabajo en blanco */
.md-cosmo .md-left { background: radial-gradient(circle at 60% 35%, #6b00f7 0%, #3a1bb0 30%, #14256d 65%, #0a1240 100%); color: #ffffff; }
.md-cosmo .md-logo { filter: drop-shadow(0 0 40px rgba(0, 186, 255, .45)); }
.md-cosmo .md-brand { font-family: Bizmo, Mollen, sans-serif; letter-spacing: .08em; background: linear-gradient(90deg, #00baff 0%, #3b6fff 50%, #b98cff 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.md-cosmo .md-bsub { color: #00baff; } .md-cosmo .md-left .md-hi { color: #ffffff; } .md-cosmo .md-date { color: #c7cdea; }
.md-cosmo .md-right { background: #ffffff; color: #14256d; border-left: 0; }
.md-cosmo .md-rh span, .md-cosmo .md-bul b span, .md-cosmo .md-dot, .md-cosmo .md-bul a:hover i { color: #6b00f7; }
.md-cosmo .md-bul small, .md-cosmo .md-ok, .md-cosmo .md-scope { color: #5a6283; }
.md-cosmo .md-bul a:hover, .md-cosmo .md-bul a:focus-visible { background: #f5f6f6; border-color: #e4e6ea; }
.md-cosmo .md-bul .md-next a { border-color: rgba(107, 0, 247, .4); background: rgba(107, 0, 247, .05); }
.md-cosmo .md-nbul .md-dot, .md-cosmo .md-rh2 span { color: #ff9f43; } .md-cosmo .md-bul .md-crit .md-dot { color: #d6246e; }
.md-cosmo .md-skip { color: #14256d; border-color: #d8dbe1; background: #ffffff; }
@media (max-width: 860px) { .md-split { grid-template-columns: 1fr; } .md-left { padding: 32px 16px 20px; } .md-logo { width: 110px; } .md-brand { font-size: 30px; } .md-left .md-hi { margin-top: 12px; font-size: 22px; } .md-right { border-left: 0; padding: 20px 16px 32px; justify-content: flex-start; } }
.md-plain li > div { display: grid; grid-template-columns: 34px 1fr; gap: 10px; align-items: start; padding: 8px 12px; }
.md-plain .md-crit .md-dot { color: #ff2e4d; }
.md-bul li { box-shadow: none !important; border: 0 !important; }
.md-cosmo .md-bul .md-next i { color: #6b00f7; }
/* Mi día: los pendientes con la misma tarjeta del Seguimiento (calificación, plataforma, estado, alerta, qué hacer y Resolver) */
.md-split { grid-template-columns: minmax(300px, 2fr) 3fr; }
.md-pend { display: grid; gap: 8px; margin: 10px 0 6px; }
.md-ph { margin: 0; font-weight: 700; } .md-ph > span { color: #2ee6d6; margin-right: 6px; } .md-ph small { display: block; font-weight: 400; color: #8a90a0; font-size: 12px; margin-top: 2px; }
.md-cards { gap: 8px; } .md-cards .sg-item { text-decoration: none; }
.md-more { justify-self: start; font-size: 13px; font-weight: 600; color: #2ee6d6; text-decoration: none; padding: 4px 2px; } .md-more:hover { text-decoration: underline; }
.md-cosmo .md-ph > span, .md-cosmo .md-more { color: #6b00f7; } .md-cosmo .md-ph small { color: #5a6283; }
@media (max-width: 860px) { .md-split { grid-template-columns: 1fr; } }
.md-right { justify-content: safe center; outline: none; }
/* Bienvenida con video: todo cabe en la pantalla (logo, video y botones), sin cortarse arriba en laptops */
.cw-wrap { align-items: safe center; }
.cw-box { gap: 12px; }
.cw-cos img { width: auto; height: clamp(64px, 15vh, 150px); }
.cw-cos b { font-size: clamp(28px, 5vh, 46px); line-height: 1.1; }
.cw-om img { width: auto; height: clamp(40px, 7vh, 56px); }
.cw-vid { max-height: calc(100vh - 270px); min-height: 180px; width: auto; max-width: 100%; }
/* 段取り Dandori en 6 pasos (19-oct-2026): número de paso en el menú, 入口 Entrada y la tira de 看板 Pantallas DOOH */
.nav-step { display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 4px; margin-right: 2px; border-radius: 5px; font: 700 11px/1 ui-monospace, Menlo, monospace; color: #2ee6d6; border: 1px solid rgba(46, 230, 214, .45); }
html.om-light .nav-step { color: #0e7c74; border-color: rgba(14, 124, 116, .45); }
.nav a[aria-current="page"] .nav-step { color: inherit; border-color: currentColor; }
.ent-head { margin-bottom: 14px; }
.ent-notes { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; margin-bottom: 14px; }
.ent-note { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 14px; border: 1px solid #262a38; background: #12151d; color: inherit; text-decoration: none; }
.ent-note > span { font-size: 20px; color: #8a90a0; } .ent-note small { display: block; color: #8a90a0; font-size: 12px; margin-top: 2px; } .ent-note i { font-style: normal; color: #5b6273; }
.ent-note.ent-on { border-color: rgba(255, 159, 67, .55); } .ent-note.ent-on > span, .ent-note.ent-on i { color: #ff9f43; }
.ent-note:hover { border-color: #2ee6d6; }
.ent-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; }
.ent-step { display: grid; grid-template-columns: 30px 44px 1fr; gap: 10px; align-items: start; padding: 14px; border-radius: 14px; border: 1px solid #262a38; background: #12151d; color: inherit; text-decoration: none; transition: border-color .15s, transform .15s; }
.ent-step:hover, .ent-step:focus-visible { border-color: #2ee6d6; transform: translateY(-2px); }
.ent-n { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; border: 1px solid #2ee6d6; color: #2ee6d6; }
.ent-here .ent-n { background: #2ee6d6; color: #0b0d12; }
.ent-jp { font-size: 22px; color: #2ee6d6; line-height: 1.2; }
.ent-tx small { display: block; font: 600 10px/1.2 Syncopate, sans-serif; letter-spacing: .2em; text-transform: uppercase; color: #8a90a0; }
.ent-tx b { display: block; margin: 2px 0; } .ent-tx em { display: block; font-style: normal; font-size: 13px; color: #b9bdc8; line-height: 1.4; }
html.om-light .ent-note, html.om-light .ent-step { background: #ffffff; border-color: #e3e6ec; }
html.om-light .ent-tx em { color: #5b6273; } html.om-light .ent-jp, html.om-light .ent-n { color: #0e7c74; border-color: #0e7c74; }
html.om-light .ent-here .ent-n { background: #0e7c74; color: #ffffff; } html.om-light .ent-step:hover { border-color: #0e7c74; }
.dt-tabs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 14px 28px 0; max-width: 1500px; }
.dt-h { font-weight: 700; font-size: 13px; margin-right: 6px; } .dt-h span { color: #2ee6d6; }
.dt-tab { padding: 7px 14px; border-radius: 999px; border: 1px solid #262a38; color: inherit; text-decoration: none; font-size: 13px; }
.dt-tab span { color: #2ee6d6; margin-right: 4px; }
.dt-tab:hover { border-color: #2ee6d6; } .dt-tab.dt-on { background: rgba(46, 230, 214, .12); border-color: #2ee6d6; font-weight: 600; }
html.om-light .dt-tab { border-color: #d5d9e1; } html.om-light .dt-h span, html.om-light .dt-tab span { color: #0e7c74; }
html.om-light .dt-tab.dt-on { background: rgba(14, 124, 116, .1); border-color: #0e7c74; }
@media (max-width: 760px) { .dt-tabs { padding: 10px 16px 0; } }
.nav a[data-k="estrategia"] .nav-omega { font-size: 0; gap: 0; } .nav a[data-k="estrategia"] .nav-omega img { margin: 0; } /* con el número de paso, solo el símbolo de la marca (cabe en el menú) */
.rs-pend { margin: 10px 0 0; padding: 10px 12px; border-radius: 10px; border: 1px dashed rgba(255, 159, 67, .55); color: inherit; } .rs-pend b { color: #ff9f43; }
/* 承認 Una sola aprobación por proyecto (paso 5 · Propuesta y aprobación, 19-oct-2026) */
.ap-sec { margin-bottom: 16px; border-left: 3px solid #2ee6d6; }
.ap-h { display: flex; gap: 14px; align-items: flex-start; } .ap-h h2 { margin: 0; } .ap-h h2 small { font-size: 14px; color: #ff9f43; margin-left: 6px; } .ap-h p { margin: 4px 0 0; }
.ap-jp { font-size: 26px; line-height: 1; color: #2ee6d6; border: 1px solid rgba(46, 230, 214, .4); border-radius: 12px; padding: 8px 10px; }
.ap-list { display: grid; gap: 10px; margin-top: 14px; }
.ap-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px 14px; border: 1px solid #262a38; border-radius: 14px; background: #12151d; }
.ap-focus { border-color: #ff9f43; box-shadow: 0 0 0 3px rgba(255, 159, 67, .18); }
.ap-cl { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #8a90a0; } .ap-t { display: block; margin: 2px 0 6px; }
.ap-inc { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; color: #8a90a0; } .ap-inc > span i { font-style: normal; display: inline-block; width: 16px; text-align: center; }
.ap-inc > span.on { color: inherit; } .ap-inc > span.on i { color: #2ee6d6; } .ap-inc [lang="ja"] { color: #2ee6d6; } .ap-inc small { color: #8a90a0; }
.ap-acts { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.ap-empty { margin: 12px 0 0; } .ap-cf { margin: 0 0 10px; padding-left: 18px; } .ap-cf li { margin: 3px 0; } .ap-cf [lang="ja"] { color: #2ee6d6; }
.ap-fbl { display: block; margin: 6px 0 4px; } #ap-fb { width: 100%; }
.ap-send { white-space: nowrap; } .jd-src { margin: 2px 0 6px; color: #8a90a0; } .jd-src [lang="ja"] { color: #2ee6d6; }
html.om-light .ap-row { background: #ffffff; border-color: #e3e6ec; } html.om-light .ap-sec { border-left-color: #0e7c74; }
html.om-light .ap-jp, html.om-light .ap-inc > span.on i, html.om-light .ap-inc [lang="ja"], html.om-light .ap-cf [lang="ja"], html.om-light .jd-src [lang="ja"] { color: #0e7c74; border-color: rgba(14, 124, 116, .4); }
html.om-light .ap-cl, html.om-light .ap-inc, html.om-light .ap-inc small, html.om-light .jd-src { color: #5b6273; }
@media (max-width: 720px) { .ap-row { grid-template-columns: 1fr; } .ap-acts { justify-content: flex-start; } }
/* 壊れた Kowareta · Ω roto: tema propio (como el de Alpha), solo para fallas reales. Dentro de la pantalla que falló. */
.rt { position: relative; display: grid; grid-template-columns: minmax(220px, 340px) 1fr; gap: 28px; align-items: center; margin: 8px 0 18px; padding: 28px 32px; border-radius: 18px; border: 1px solid rgba(255, 46, 77, .55); background: radial-gradient(circle at 18% 50%, rgba(255, 46, 77, .16) 0%, rgba(11, 13, 18, .0) 60%), linear-gradient(90deg, rgba(255, 46, 77, .10), rgba(11, 13, 18, .0)); overflow: hidden; color: #e9e6df; background-color: #0b0d12; }
.rt::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(115deg, transparent 0 22px, rgba(255, 255, 255, .015) 22px 23px); }
.rt-art { position: relative; aspect-ratio: 1; width: 100%; max-width: 300px; justify-self: center; color: #ff2e4d; }
.rt-svg { width: 100%; height: 100%; overflow: visible; filter: drop-shadow(0 10px 30px rgba(255, 46, 77, .35)); }
.rt-frag { transform-box: fill-box; transform-origin: center; animation: rtFall 1.1s cubic-bezier(.55, 0, .75, .4) var(--dl) both; }
.rt-crack { fill: none; stroke: #0b0d12; stroke-width: 1.8; stroke-linecap: round; stroke-dasharray: 160; stroke-dashoffset: 160; animation: rtCrack .45s ease-out var(--dl) forwards; }
.rt-cracks { animation: rtHide .2s linear 1.3s forwards; }
.rt-dust { position: absolute; inset: 0; pointer-events: none; }
.rt-dust i { position: absolute; left: var(--x); top: var(--y); width: var(--s); height: var(--s); border-radius: 2px; background: #ff2e4d; opacity: 0; transform: rotate(45deg); animation: rtDust 1.4s ease-in var(--dl) forwards; }
.rt-dust i:nth-child(3n) { background: #3a1018; } .rt-dust i:nth-child(4n) { background: #7a1626; }
@keyframes rtCrack { to { stroke-dashoffset: 0; } }
@keyframes rtHide { to { opacity: 0; } }
@keyframes rtFall { 0%, 8% { transform: translate(0, 0) rotate(0); } 18% { transform: translate(calc(var(--dx) * .05), 2px) rotate(calc(var(--rot) * .08)); } 100% { transform: translate(var(--dx), var(--dy)) rotate(var(--rot)); opacity: .9; } }
@keyframes rtDust { 0% { opacity: 0; transform: translate(0, 0) rotate(45deg); } 15% { opacity: .9; } 100% { opacity: 0; transform: translate(var(--dx), var(--dy)) rotate(200deg); } }
.rt-tx { position: relative; z-index: 1; }
.rt-jp { display: block; font-size: 22px; color: #ff2e4d; letter-spacing: .08em; } .rt-jp small { font-family: Syncopate, sans-serif; font-size: 10px; letter-spacing: .45em; color: #ff9f43; margin-left: 8px; }
.rt h2 { margin: 6px 0 8px; font-family: Cinzel, serif; letter-spacing: .06em; color: #e9e6df; }
.rt p { margin: 0 0 12px; color: #b9bdc8; max-width: 60ch; }
.rt-det { margin: 0 0 14px; font-size: 13px; color: #8a90a0; } .rt-det code { display: block; margin-top: 6px; padding: 8px 10px; border-radius: 8px; background: rgba(255, 255, 255, .04); border: 1px solid #262a38; color: #ffb3bf; white-space: pre-wrap; word-break: break-word; }
.rt-acts { display: flex; flex-wrap: wrap; gap: 8px; }
.rt-acts .rt-x { color: #ff9f43 !important; border-color: #ff9f43 !important; }
.rt-card { grid-template-columns: 120px 1fr; padding: 16px 20px; gap: 18px; }
.rt-card .rt-art { max-width: 110px; } .rt-card h2 { font-size: 18px; margin: 2px 0 4px; } .rt-card .rt-jp { font-size: 16px; }
/* COSMO: el infinito se rompe, en el violeta noche de P2P */
.rt-cosmo { background-color: #0c1747; border-color: rgba(0, 186, 255, .5); background-image: radial-gradient(circle at 18% 50%, rgba(107, 0, 247, .35) 0%, rgba(12, 23, 71, 0) 62%); color: #ffffff; }
.rt-cosmo .rt-svg { filter: drop-shadow(0 10px 30px rgba(0, 186, 255, .35)); } .rt-cosmo .rt-crack { stroke: #0c1747; }
.rt-cosmo .rt-dust i { background: #00baff; } .rt-cosmo .rt-dust i:nth-child(3n) { background: #6b00f7; } .rt-cosmo .rt-dust i:nth-child(4n) { background: #c7cdea; }
.rt-cosmo .rt-jp { color: #00baff; } .rt-cosmo h2 { font-family: Bizmo, Mollen, sans-serif; color: #ffffff; } .rt-cosmo p { color: #c7cdea; }
@media (max-width: 720px) { .rt { grid-template-columns: 1fr; padding: 20px; } .rt-art { max-width: 200px; } .rt-card { grid-template-columns: 80px 1fr; } }
@media (prefers-reduced-motion: reduce) { .rt-frag { animation: none; transform: translate(calc(var(--dx) * .25), calc(var(--dy) * .12)) rotate(calc(var(--rot) * .25)); } .rt-crack { animation: none; stroke-dashoffset: 0; } .rt-cracks { animation: none; } .rt-dust i { animation: none; opacity: .5; } }
.rt-acts .rt-reload { color: #e9e6df; } html.om-light[data-brand="cosmo"] .rt .rt-reload { background: transparent !important; color: #ffffff !important; border-color: rgba(255,255,255,.45) !important; }
.rs-cache { display: block; margin-top: 6px; color: #8a90a0; font-size: 12px; }
/* 調査 Audiencia OMEGA (19-oct-2026): una definición por capas + 翻訳 traductor por plataforma */
.ao-jp { display: block; font-size: 20px; color: #2ee6d6; } .ao-jp small { font-family: Syncopate, sans-serif; font-size: 10px; letter-spacing: .3em; color: #ff9f43; margin-left: 8px; }
.ao-ed { font-size: 13px; padding: 6px 10px; border-radius: 999px; border: 1px solid rgba(46, 230, 214, .45); }
.ao-meta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 12px; } .ao-meta label { display: grid; gap: 4px; min-width: 220px; } .ao-meta .grow { flex: 1; }
.ao-layers { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; margin-top: 12px; }
.ao-layers section { border: 1px solid var(--line, #262a38); border-radius: 14px; padding: 12px 14px; }
.ao-layers h3 { margin: 0 0 4px; display: flex; align-items: center; gap: 8px; }
.ao-n { width: 24px; height: 24px; border-radius: 50%; display: inline-grid; place-items: center; font-size: 13px; border: 1px solid #2ee6d6; color: #2ee6d6; flex: none; }
.ao-acts { margin-top: 14px; gap: 8px; flex-wrap: wrap; align-items: center; }
.ao-t td { vertical-align: top; font-size: 13px; line-height: 1.45; } .ao-t td:first-child { white-space: nowrap; }
.ao-p { display: inline-block; margin-left: 4px; padding: 1px 7px; border-radius: 999px; font-size: 11px; font-weight: 600; white-space: nowrap; border: 1px solid; vertical-align: 1px; }
.ao-p-ex { color: #2ee6d6; border-color: rgba(46, 230, 214, .5); background: rgba(46, 230, 214, .08); }
.ao-p-ap { color: #ff9f43; border-color: rgba(255, 159, 67, .55); background: rgba(255, 159, 67, .08); }
.ao-p-no { color: #8a90a0; border-color: rgba(138, 144, 160, .45); background: rgba(138, 144, 160, .08); }
.ao-base { display: grid; text-align: right; } .ao-base small { color: #8a90a0; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; } .ao-base b { font-size: 22px; } .ao-base span { font-size: 12px; color: #8a90a0; }
.ao-list { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 6px; }
.ao-list li { display: flex; gap: 8px; align-items: center; justify-content: space-between; padding: 8px 10px; border: 1px solid var(--line, #262a38); border-radius: 12px; }
.ao-list li.on { border-color: #2ee6d6; } .ao-list .linkish { text-align: left; display: grid; gap: 2px; background: none; border: 0; color: inherit; cursor: pointer; padding: 0; } .ao-list small { color: #8a90a0; }
.es-aud { display: flex; gap: 12px; align-items: flex-start; margin-top: 12px; padding: 12px 14px; border-radius: 14px; border: 1px dashed rgba(46, 230, 214, .5); }
.es-aud-jp { font-size: 22px; color: #2ee6d6; line-height: 1; }
html.om-light .ao-jp, html.om-light .ao-n, html.om-light .es-aud-jp { color: #0e7c74; border-color: #0e7c74; } html.om-light .es-aud { border-color: rgba(14, 124, 116, .5); }
html.om-light .ao-p-ex { color: #0e7c74; border-color: rgba(14, 124, 116, .5); background: rgba(14, 124, 116, .06); }
html.om-light .ao-p-ap { color: #b35f00; border-color: rgba(255, 159, 67, .7); }
html.om-light .ao-layers section, html.om-light .ao-list li { border-color: #e3e6ec; }
html.om-light .ao-list li.on { border-color: #0e7c74; }
.ao-layers select.in { width: auto; max-width: 100%; } .ao-layers .row { gap: 8px; align-items: center; }
/* 顧客 Cambiar cliente del plan (19-oct-2026) */
.overlay.cc-top { z-index: 1100; }
.cc-modal { max-width: 520px; }
.cc-now { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; border: 1px solid #262a38; background: rgba(255, 255, 255, .03); margin: 0 0 12px; }
.cc-now img { height: 34px; width: auto; max-width: 110px; object-fit: contain; }
.cc-now small { display: block; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #8a90a0; } .cc-now b { font-size: 16px; }
.cc-info { color: #b9bdc8; margin: 4px 0 10px; }
.cc-warn label { color: #ff9f43; }
.cc-x { color: #ff9f43 !important; border-color: #ff9f43 !important; }
.cc-cur { padding: 4px 10px; border-radius: 999px; border: 1px solid rgba(46, 230, 214, .45); color: #2ee6d6; white-space: nowrap; }
.cc-btn span, .cc-cur { font-weight: 600; }
html.om-light .cc-now { border-color: #e3e6ec; background: #f7f8fa; } html.om-light .cc-info { color: #5b6273; }
html.om-light .cc-cur { color: #0e7c74; border-color: rgba(14, 124, 116, .45); }
html.om-light .es-assistant { background: #f4f6f9; color: #0b0d12; border-color: #e3e6ec; } html.om-light .es-user { color: #0b0d12; } html.om-light .es-assistant b, html.om-light .es-assistant strong { color: #0b0d12; }
/* 戦略 Estrategia · navegación (19-oct-2026): «Mis planes» + espacio de trabajo por etapas, «⋯ Más» y panel derecho. Colores por variables: sirven en oscuro, claro y COSMO. */
.nv-sr { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.nv-home { display: flex; flex-direction: column; gap: 18px; }
.nv-hh { display: flex; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.nv-kick { font-size: 12px; color: var(--muted); letter-spacing: .06em; }
.nv-h1 { margin: 4px 0 0; font-size: 24px; line-height: 1.2; text-transform: none; color: var(--navy); }
.nv-h1 small { font-family: var(--font-body); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); font-weight: 600; margin-right: 6px; }
.nv-new { min-height: 44px; border-radius: 999px; padding: 10px 20px; font-weight: 700; }
.nv-filt { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.nv-q { flex: 1 1 280px; display: flex; } .nv-q .in { width: 100%; min-height: 44px; border-radius: 12px; padding: 0 16px; }
.nv-fch { display: flex; gap: 6px; flex-wrap: wrap; }
.nv-fc { min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1.5px solid var(--line); background: var(--white); color: var(--ink); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.nv-fc.on { background: var(--navy); border-color: var(--navy); color: var(--white); }
.nv-fcl .in { min-height: 44px; border-radius: 12px; max-width: 260px; }
.nv-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.nv-empty { grid-column: 1 / -1; padding: 28px; border: 1.5px dashed var(--line); border-radius: 16px; text-align: center; color: var(--muted); }
.nv-card { position: relative; display: flex; }
.nv-cm { flex: 1; display: flex; flex-direction: column; gap: 10px; text-align: left; padding: 18px 18px 16px; background: var(--white); color: var(--ink); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); font: inherit; cursor: pointer; transition: border-color .15s, transform .15s; }
.nv-cm:hover, .nv-cm:focus-visible { border-color: var(--violet); transform: translateY(-1px); }
.nv-cr { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding-right: 30px; }
.nv-cli { font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 999px; background: color-mix(in srgb, var(--violet) 12%, transparent); color: var(--violet); border: 0; font-family: inherit; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
button.nv-cli { cursor: pointer; } button.nv-cli:hover { background: color-mix(in srgb, var(--violet) 20%, transparent); }
.nv-st { font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: 999px; white-space: nowrap; background: color-mix(in srgb, var(--muted) 14%, transparent); color: var(--muted); }
.nv-st-enviado { background: color-mix(in srgb, var(--cyan) 16%, transparent); color: var(--ink); }
.nv-st-aprobado, .nv-st-ajustado { background: color-mix(in srgb, var(--violet) 16%, transparent); color: var(--violet); }
.nv-st-rechazado { background: transparent; border: 1px solid var(--line); color: var(--ink); }
.nv-ct { font-size: 15px; line-height: 1.35; color: var(--navy); }
.nv-bar { display: flex; gap: 4px; } .nv-bar i { flex: 1; height: 6px; border-radius: 3px; background: var(--line); }
.nv-bar i.d { background: var(--violet); } .nv-bar i.c { background: color-mix(in srgb, var(--violet) 38%, var(--line)); }
.nv-cmeta { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; color: var(--muted); } .nv-cmeta b { color: var(--ink); }
.nv-cnext { font-size: 13px; font-weight: 700; color: var(--violet); }
.nv-cx { position: absolute; top: 12px; right: 12px; min-width: 32px; height: 32px; border-radius: 10px; border: 1px solid transparent; background: transparent; color: var(--muted); font-size: 18px; line-height: 1; cursor: pointer; }
.nv-cx:hover, .nv-cx:focus-visible { border-color: var(--line); color: var(--ink); }
.nv-cxr { height: auto; font-size: 12px; }
.nv-dis { margin: 0; } .nv-disn { margin: 0; color: var(--muted); }
/* Espacio de trabajo */
.nv-ws { display: flex; flex-direction: column; gap: 12px; }
.nv-head { position: sticky; top: var(--toph, 70px); z-index: 6; display: flex; align-items: center; gap: 12px; padding: 10px 14px; background: var(--white); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); }
.nv-back { flex: none; border: 0; background: none; color: var(--violet); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; padding: 8px 6px; white-space: nowrap; }
.nv-ttl { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.nv-name { font-size: 15px; color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nv-chips { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.nv-ver { font-size: 11px; font-weight: 600; color: var(--muted); }
.nv-saved { font-size: 11px; font-weight: 600; color: var(--muted); white-space: nowrap; }
.nv-unsaved { font: inherit; font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 999px; border: 1px solid rgba(255, 159, 67, .6); background: rgba(255, 159, 67, .1); color: #C46A12; cursor: pointer; display: inline-flex; gap: 4px; align-items: center; }
.nv-more-w { position: relative; flex: none; }
.nv-moreb, .nv-pt { border-radius: 999px; min-height: 40px; white-space: nowrap; }
.nv-pt.on { background: color-mix(in srgb, var(--violet) 12%, transparent); border-color: var(--violet); }
.nv-n { opacity: .75; }
.nv-acts { display: flex; gap: 8px; align-items: center; flex: none; }
.nv-go { border-radius: 999px; min-height: 40px; font-weight: 700; white-space: nowrap; }
.nv-acts .ap-send { min-height: 40px; border-radius: 999px; font-size: 14px; padding: 8px 16px; font-weight: 700; }
.nv-menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; width: 290px; max-height: min(70vh, 560px); overflow: auto; display: flex; flex-direction: column; padding: 6px; background: var(--white); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 16px 40px rgba(20, 37, 109, .18); }
.nv-menu > button { text-align: left; border: 0; background: none; color: var(--ink); font: inherit; font-size: 13.5px; padding: 9px 10px; border-radius: 8px; cursor: pointer; }
.nv-menu > button:hover:not(:disabled), .nv-menu > button:focus-visible { background: color-mix(in srgb, var(--violet) 10%, transparent); }
.nv-menu > button:disabled { opacity: .45; cursor: not-allowed; }
.nv-menu hr { border: 0; border-top: 1px solid var(--line); margin: 4px 6px; width: auto; }
.nv-mg { padding: 6px 10px 8px; } .nv-ml { display: block; font-size: 11px; color: var(--muted); margin-bottom: 6px; }
.nv-mbr { display: flex; gap: 6px; flex-wrap: wrap; }
.nv-mbr button { font: inherit; font-size: 12px; font-weight: 600; padding: 5px 10px; border-radius: 999px; border: 1px solid var(--line); background: var(--white); color: var(--ink); cursor: pointer; }
.nv-mbr button.on { background: var(--navy); border-color: var(--navy); color: var(--white); }
.nv-stages { display: flex; gap: 6px; flex-wrap: wrap; }
.nv-sg { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px 0 8px; border-radius: 999px; border: 1.5px solid var(--line); background: var(--white); color: var(--muted); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.nv-sg .nv-sn { width: 24px; height: 24px; border-radius: 50%; display: inline-grid; place-items: center; font-size: 12px; background: color-mix(in srgb, var(--muted) 14%, transparent); color: var(--ink); }
.nv-sg.done { color: var(--ink); } .nv-sg.done .nv-sn { background: var(--violet); color: var(--white); }
.nv-sg.on { background: var(--navy); border-color: var(--navy); color: var(--white); } .nv-sg.on .nv-sn { background: var(--white); color: var(--navy); }
.nv-sg[aria-disabled="true"] { opacity: .5; cursor: not-allowed; }
.nv-stsel { display: none; }
.nv-body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; }
.nv-pon .nv-body { grid-template-columns: minmax(0, 1fr) 340px; }
.nv-main { min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.nv-main > .card { margin: 0; }
.nv-main .es-5p { margin: 0; }
.nv-note { margin: 10px 0 0; padding: 8px 12px; border-radius: 10px; background: color-mix(in srgb, var(--violet) 7%, transparent); }
.nv-hintr { margin-left: auto; }
.nv-p { display: flex; flex-direction: column; gap: 12px; }
.nv-pch { display: flex; gap: 6px; flex-wrap: wrap; }
.nv-pc { min-height: 38px; padding: 0 14px; border-radius: 999px; border: 1.5px solid var(--line); background: var(--white); color: var(--ink); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.nv-pc.on { background: var(--violet); border-color: var(--violet); color: var(--white); }
.nv-pnav { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.nv-hint { margin: 0; }
.nv-chk { list-style: none; padding: 0; margin: 12px 0; display: flex; flex-direction: column; gap: 6px; font-size: 13.5px; }
.nv-chk li::before { content: "·"; display: inline-grid; place-items: center; width: 20px; height: 20px; margin-right: 8px; border-radius: 50%; background: color-mix(in srgb, var(--muted) 14%, transparent); color: var(--muted); font-weight: 700; }
.nv-chk li.ok::before { content: "✓"; background: var(--violet); color: var(--white); font-size: 12px; }
.nv-alfa .alfa-panel, .nv-panel .alfa-panel { width: auto; border-left: 0; border-radius: 14px; }
.nv-alfa0 { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.nv-lock { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; } .nv-lock p { margin: 0; flex: 1; }
/* Panel derecho */
.nv-panel { position: sticky; top: calc(var(--toph, 70px) + 84px); max-height: calc(100vh - var(--toph, 70px) - 100px); display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); overflow: hidden; }
.nv-ptabs { display: flex; gap: 4px; align-items: center; padding: 8px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.nv-ptab { flex: 1 1 auto; min-height: 34px; padding: 0 8px; border-radius: 999px; border: 0; background: transparent; color: var(--muted); font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.nv-ptab.on { background: var(--navy); color: var(--white); }
.nv-pbody { flex: 1; overflow: auto; padding: 12px; min-height: 120px; }
.nv-pbody .es-chat { margin: 0; border: 0; box-shadow: none; padding: 0; background: transparent; }
.nv-pbody .es-msgs { max-height: none; }
.nv-pbody .es-pend { margin: 8px 0; padding: 12px; } .nv-pbody .es-dr { grid-template-columns: 1fr; }
.nv-pbody .es-cf { flex-direction: column; } .nv-pbody .es-cf .btn { align-self: flex-end; }
.nv-com { display: flex; flex-direction: column; gap: 8px; } .nv-com p { margin: 0; } .nv-com textarea { width: 100%; } .nv-com h4 { margin: 8px 0 0; font-size: 12px; }
.nv-hist { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; font-size: 13px; }
.nv-hist li { padding-left: 12px; border-left: 2px solid var(--line); } .nv-hist time { display: block; font-size: 11px; color: var(--muted); }
.nv-h4 { margin: 14px 0 6px; font-size: 12px; } .nv-vers { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
@media (max-width: 1100px) { .nv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .nv-pon .nv-body { grid-template-columns: minmax(0, 1fr) 300px; } }
/* Celular (<860 px): etapas en desplegable, panel como hoja inferior y botón principal fijo abajo */
@media (max-width: 859px) {
  .nv-grid { grid-template-columns: 1fr; } .nv-fcl { flex: 1 1 100%; } .nv-fcl .in { max-width: none; width: 100%; } .nv-h1 { font-size: 20px; }
  .nv-ws { padding-bottom: 84px; }
  .nv-head { position: static; flex-wrap: wrap; gap: 8px; padding: 12px; }
  .nv-ttl { order: 2; flex: 1 1 100%; } .nv-back { order: 0; } .nv-more-w { order: 1; margin-left: auto; }
  .nv-acts { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: var(--white); border-top: 1px solid var(--line); box-shadow: 0 -6px 20px rgba(20, 37, 109, .08); }
  .nv-acts .nv-go, .nv-acts .ap-send { flex: 1; justify-content: center; min-height: 44px; }
  .nv-acts .nv-pt { min-height: 44px; }
  .nv-stages { display: none; }
  .nv-stsel { display: flex; flex-direction: column; gap: 4px; font-size: 11px; color: var(--muted); } .nv-stsel .in { width: 100%; min-height: 44px; border-radius: 12px; font-size: 14px; font-weight: 600; }
  .nv-pon .nv-body { grid-template-columns: minmax(0, 1fr); }
  .nv-panel { position: fixed; left: 0; right: 0; top: auto; bottom: calc(68px + env(safe-area-inset-bottom)); z-index: 39; max-height: none; height: min(72vh, 620px); border-radius: 18px 18px 0 0; box-shadow: 0 -12px 36px rgba(20, 37, 109, .2); }
  .nv-menu { position: fixed; left: 12px; right: 12px; top: auto; bottom: calc(76px + env(safe-area-inset-bottom)); width: auto; max-height: 64vh; z-index: 45; }
  .nv-pnav .btn { min-height: 44px; }
}
.nv-pbody .es-cf textarea { width: 100%; }
.nv-ph { display: flex; align-items: center; gap: 8px; padding: 10px 12px 0; } .nv-ph b { flex: none; font-size: 13px; color: var(--navy); } .nv-ph .muted { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nv-ptabs { flex-wrap: nowrap; overflow-x: auto; } .nv-ptab { flex: 1 0 auto; padding: 0 9px; }
.nv-panel .nv-pbody .card.es-chat { border: 0 !important; box-shadow: none !important; background: transparent !important; padding: 0 !important; }
@media (min-width: 860px) { .nv-head { margin-right: 72px; } }
@media (max-width: 859px) { .nv-acts { padding-right: 76px; } }
@media (min-width: 861px) { .nv-hh { padding-right: 76px; } } /* deja libre el botón flotante del ciclo */
/* Mis planes: tarjetas que nunca se salen de su columna + menú ⋯ con Descartar y Borrar */
.nv-card, .nv-cm, .nv-cr { min-width: 0; }
.nv-cli { flex: 0 1 auto; min-width: 0; }
.nv-cpop { position: absolute; top: 44px; right: 10px; z-index: 6; display: flex; flex-direction: column; min-width: 240px; padding: 6px; background: var(--white); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 18px 40px rgba(0, 0, 0, .25); }
.nv-cpop button { text-align: left; min-height: 40px; padding: 0 12px; border: 0; border-radius: 8px; background: transparent; color: var(--ink); font: inherit; font-size: 13px; cursor: pointer; }
.nv-cpop button:hover, .nv-cpop button:focus-visible { background: color-mix(in srgb, var(--violet) 10%, transparent); }
.nv-cpop .nv-del, .nv-delw b { color: #ff2e4d; }
.nv-delw { padding: 8px 10px; border-radius: 8px; border: 1px dashed rgba(255, 46, 77, .5); }
.nv-delm [data-x="yes"]:not(:disabled) { background: #ff2e4d !important; border-color: #ff2e4d !important; color: #ffffff !important; } .nv-delm [data-x="yes"]:disabled { opacity: .45; }
/* 計画 Keikaku · plan en 6 preguntas, 3 etapas y barra fija que no tapa nada (19-oct-2026) */
.nv-top { position: sticky; top: var(--toph, 70px); z-index: 6; display: flex; flex-direction: column; gap: 8px; padding-bottom: 6px; background: var(--bg); }
.nv-top .nv-head { position: static; }
@media (min-width: 860px) { .nv-top { margin-right: 84px; } .nv-top .nv-head { margin-right: 0; } }
.nv-sjp { font-family: "Noto Sans JP", sans-serif; font-size: 12px; opacity: .8; }
.nv-sub { display: flex; gap: 6px; flex-wrap: wrap; padding-left: 4px; }
.nv-sb { min-height: 34px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--line); background: transparent; color: var(--muted); font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; }
.nv-sb.on { background: color-mix(in srgb, var(--violet) 12%, transparent); border-color: var(--violet); color: var(--ink); }
.nv-sb[aria-disabled="true"] { opacity: .5; cursor: not-allowed; }
.nv-panel { top: calc(var(--toph, 70px) + 132px); }
.q6-top { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.q6-kick { font-size: 11px; letter-spacing: .14em; font-weight: 700; color: var(--violet); text-transform: uppercase; }
.q6-h1 { margin: 2px 0 0; font-size: 22px; }
.q6-team { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--white); font-size: 13px; font-weight: 600; cursor: pointer; }
.q6-team input { width: 18px; height: 18px; accent-color: var(--violet); }
.q6-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
.q6-grid > * { min-width: 0; }
.q6-card { background: var(--white); border: 1px solid var(--line); border-radius: 16px; padding: 18px; box-shadow: 0 10px 30px rgba(20, 37, 109, .06); display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.q6-h { display: flex; align-items: center; gap: 10px; }
.q6-h h3 { margin: 0; font-size: 16px; }
.q6-n { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: 14px; background: color-mix(in srgb, var(--violet) 14%, transparent); color: var(--violet); }
.q6-lead { margin: 0; font-size: 15.5px; font-weight: 600; line-height: 1.45; color: var(--ink); }
.q6-quote { font-style: italic; }
.q6-ul { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; font-size: 14px; line-height: 1.5; }
.q6-figs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.q6-fig { min-width: 0; display: flex; flex-direction: column; gap: 3px; padding: 12px 10px; border-radius: 12px; background: var(--bg); }
.q6-fig small { font-size: 11px; font-weight: 600; color: var(--muted); }
.q6-fig b { font-size: clamp(16px, 1.35vw, 21px); line-height: 1.15; color: var(--violet); white-space: nowrap; }
.q6-fig span { font-size: 11.5px; line-height: 1.35; color: var(--muted); }
.q6-note { margin: 0; font-size: 12px; color: var(--muted); line-height: 1.5; }
.q6-warn { margin: 0; display: flex; gap: 6px; align-items: flex-start; font-size: 12.5px; font-weight: 600; line-height: 1.45; color: #B45F06; background: #FFF1E3; border-radius: 10px; padding: 8px 10px; }
.q6-cal { display: flex; flex-wrap: wrap; gap: 6px; }
.q6-cal span { font-size: 12px; padding: 5px 10px; border-radius: 999px; background: var(--bg); }
.q6-link { align-self: flex-start; }
.q6-todo { display: flex; flex-direction: column; gap: 6px; }
.q6-ti { display: flex; align-items: flex-start; gap: 8px; padding: 8px 10px; border-radius: 10px; background: var(--bg); font-size: 13px; line-height: 1.4; cursor: pointer; }
.q6-ti input { flex: none; width: 17px; height: 17px; margin-top: 1px; accent-color: var(--violet); }
.q6-ti.ok > span:last-child { text-decoration: line-through; opacity: .6; }
.q6-own { flex: none; font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.q6-own-c { background: #FFF1E3; color: #B45F06; }
.q6-own-p { background: color-mix(in srgb, var(--violet) 14%, transparent); color: var(--violet); }
.q6-own-a { background: color-mix(in srgb, var(--cyan) 16%, transparent); color: var(--ink); }
.q6-tech { margin-top: auto; padding-top: 10px; border-top: 1px dashed var(--line); font-size: 12px; line-height: 1.55; color: var(--muted); overflow-wrap: anywhere; }
.q6-tech b { color: var(--ink); }
.q6-rules { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.q6-rule, .q6-code { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 999px; background: var(--white); border: 1px solid var(--line); color: var(--ink); white-space: nowrap; }
.q6-rq { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.q6-rq > * { min-width: 0; }
.q6-box { background: var(--white); border: 1px solid var(--line); border-radius: 16px; padding: 18px; box-shadow: 0 10px 30px rgba(20, 37, 109, .06); display: flex; flex-direction: column; gap: 8px; }
.q6-bh { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink); }
.q6-cnt { font-size: 11px; padding: 1px 8px; border-radius: 999px; background: var(--bg); letter-spacing: 0; }
.q6-risk { border-radius: 12px; background: var(--bg); }
.q6-risk summary { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 6px 12px; cursor: pointer; list-style: none; font-size: 14px; font-weight: 600; }
.q6-risk summary::-webkit-details-marker { display: none; }
.q6-risk summary::after { content: "⌄"; margin-left: auto; color: var(--muted); }
.q6-risk[open] summary::after { content: "⌃"; }
.q6-dot { flex: none; width: 9px; height: 9px; border-radius: 50%; background: #FF9F43; }
.q6-rt { min-width: 0; flex: 1; }
.q6-codes { display: inline-flex; gap: 4px; flex-wrap: wrap; }
.q6-rd { padding: 0 14px 12px 31px; font-size: 13px; line-height: 1.55; }
.q6-rd p { margin: 0 0 6px; }
.q6-q { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; font-size: 14px; line-height: 1.5; }
.q6-5p { margin: 0; }
html.om-dark .q6-warn, html.om-dark .q6-own-c { color: #FF9F43; background: rgba(255, 159, 67, .12); }
@media (max-width: 1200px) { .q6-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 859px) { .q6-grid, .q6-rq { grid-template-columns: minmax(0, 1fr); } .q6-figs { grid-template-columns: minmax(0, 1fr); } .nv-top { position: static; background: transparent; } .nv-sub { display: none; } }
html.om-light .q6-warn, html.om-light .q6-own-c { color: #B45F06; background: #FFF1E3; }

/* 6 · ¿Qué necesitamos para arrancar? — tablero desplegable a todo lo ancho (19-oct-2026) */
.q6-board { margin-top: 16px; background: var(--white); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 10px 30px rgba(20, 37, 109, .06); }
.q6-bs { list-style: none; display: flex; align-items: center; gap: 14px; padding: 16px 18px; cursor: pointer; min-height: 44px; }
.q6-bs::-webkit-details-marker { display: none; }
.q6-bq { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.q6-bq b { font-size: 16px; }
.q6-bsub { font-size: 12.5px; color: var(--muted); }
.q6-bar { flex: 1 1 120px; max-width: 260px; height: 8px; border-radius: 999px; background: var(--bg); overflow: hidden; }
.q6-bar i { display: block; height: 100%; border-radius: inherit; background: var(--violet); transition: width .3s; }
.q6-bown { display: flex; gap: 6px; flex-wrap: wrap; margin-left: auto; }
.q6-bchev { font-size: 18px; color: var(--muted); transition: transform .2s; }
.q6-board[open] .q6-bchev { transform: rotate(180deg); }
.q6-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; padding: 0 18px 18px; }
.q6-cols > * { min-width: 0; }
.q6-col { display: flex; flex-direction: column; gap: 6px; }
.q6-colh { font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--muted); padding: 4px 2px; }
.q6-it { display: flex; align-items: flex-start; gap: 8px; padding: 8px 10px; border-radius: 10px; background: var(--bg); }
.q6-it > input { flex: none; width: 17px; height: 17px; margin-top: 2px; accent-color: var(--violet); }
.q6-it details { flex: 1; min-width: 0; }
.q6-it summary { list-style: none; display: flex; gap: 6px; align-items: flex-start; cursor: pointer; font-size: 13.5px; font-weight: 600; line-height: 1.4; }
.q6-it summary::-webkit-details-marker { display: none; }
.q6-itt { flex: 1; min-width: 0; }
.q6-chev { flex: none; color: var(--muted); transition: transform .2s; }
.q6-it details[open] .q6-chev { transform: rotate(90deg); }
.q6-itd { margin-top: 6px; font-size: 12.5px; line-height: 1.5; color: var(--muted); }
.q6-it.ok .q6-itt { text-decoration: line-through; opacity: .6; }
.q6-end { height: 96px; }
@media (max-width: 859px) { .q6-cols { grid-template-columns: minmax(0, 1fr); } .q6-bs { flex-wrap: wrap; } .q6-bar { order: 5; flex-basis: 100%; max-width: none; } }
html.om-dark .q6-bar i { background: #2EE6D6; }
html.om-light .q6-bar i { background: #0E7C74; }

/* 道 Michi · Paso a paso (19-oct-2026): barra fija «Estás en → Sigue» en cada pantalla del ciclo */
.ru-bar { position: fixed; z-index: 55; bottom: 16px; left: calc(236px + 28px); right: 270px; max-width: 980px; min-height: 48px; max-height: 56px; box-sizing: border-box; display: flex; align-items: center; gap: 12px; padding: 6px 8px 6px 14px; border-radius: 14px; background: rgba(11, 13, 18, .92); border: 1px solid rgba(46, 230, 214, .35); box-shadow: 0 12px 30px rgba(0, 0, 0, .35); backdrop-filter: blur(8px); color: #E9E6DF; font-size: 13px; }
.ru-bar[hidden] { display: none; }
.ru-k { flex: none; font-size: 18px; font-weight: 700; color: #2EE6D6; }
.ru-now, .ru-nx { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.ru-now small, .ru-nx small { font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
.ru-now b, .ru-nx b { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ru-now { flex: 0 1 auto; opacity: .85; }
.ru-nx { flex: 1 1 auto; }
.ru-nx b { color: #2EE6D6; }
.ru-arr { flex: none; opacity: .6; }
.ru-go { flex: none; min-height: 36px; padding: 0 16px; white-space: nowrap; text-decoration: none !important; font-weight: 700; display: inline-flex; align-items: center; }
body.ru-on .page { padding-bottom: 104px; }
body:has(.overlay:not([hidden])) .ru-bar { display: none; }
html.om-light .ru-bar { background: rgba(255, 255, 255, .96); border-color: #E4E6EA; color: #0b0d12; box-shadow: 0 12px 30px rgba(20, 37, 109, .10); }
html.om-light .ru-k, html.om-light .ru-nx b { color: #0E7C74; }
@media (max-width: 900px) {
  .ru-bar { left: 0; right: 0; bottom: 0; max-width: none; border-radius: 0; border-width: 1px 0 0; min-height: 52px; padding: 6px 10px; padding-bottom: max(6px, env(safe-area-inset-bottom)); gap: 8px; }
  .ru-now, .ru-arr, .ru-k { display: none; }
  body.ru-on .oc { bottom: 74px; }
  body.ru-on .cy-fab { bottom: 140px; }
}
/* 次 Menú: el siguiente paso cuando toca cambiar de etapa */
.nav a.nav-next { position: relative; box-shadow: inset 0 0 0 1px rgba(46, 230, 214, .45); border-radius: 10px; }
.nav a.nav-next::after { content: "次 Sigue"; position: absolute; top: -8px; right: 8px; font-size: 10px; line-height: 1.4; font-weight: 700; padding: 2px 7px; border-radius: 999px; background: rgba(46, 230, 214, .14); color: #2EE6D6; animation: ruPulse 2.4s ease-in-out infinite; }
html.om-light .nav a.nav-next { box-shadow: inset 0 0 0 1px rgba(14, 124, 116, .45); }
html.om-light .nav a.nav-next::after { background: rgba(14, 124, 116, .1); color: #0E7C74; }
@keyframes ruPulse { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }
@media (prefers-reduced-motion: reduce) { .nav a.nav-next::after { animation: none; } }
/* 承認 Pantalla al aprobar: siguiente paso */
.ap-next { max-width: 520px; }
.ap-nk { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #2EE6D6; }
.ap-next h2 { margin: 4px 0 6px; }
.ap-nt { margin: 0 0 12px; }
.ap-path { list-style: none; margin: 0 0 12px; padding: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ap-path li { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 12px; font-size: 13px; font-weight: 600; border: 1px solid rgba(127, 127, 127, .3); }
.ap-path li i { font-style: normal; font-weight: 700; }
.ap-path li.done { opacity: .75; }
.ap-path li.next { border-color: #2EE6D6; color: #2EE6D6; background: rgba(46, 230, 214, .08); }
html.om-light .ap-nk, html.om-light .ap-path li.next { color: #0E7C74; border-color: #0E7C74; }
html.om-light .ap-path li.next { background: rgba(14, 124, 116, .07); }
.ap-next .acts { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.ap-next .acts a.btn { text-decoration: none; font-weight: 700; }
.btn.ap-stay { border: 1px solid rgba(255, 159, 67, .6); background: rgba(255, 159, 67, .12); color: #FF9F43; }
.btn.ap-stay:hover, .btn.ap-stay:focus-visible { background: rgba(255, 159, 67, .24); border-color: #FF9F43; }
html.om-light .btn.ap-stay { color: #B45F06; }
/* 組立 Tarjeta del proyecto recién aprobado (deep link ?plan=) */
.jd-card.jd-focus { outline: 2px solid #2EE6D6; outline-offset: 3px; animation: jdFocus 1.2s ease-in-out 3; }
html.om-light .jd-card.jd-focus { outline-color: #0E7C74; }
@keyframes jdFocus { 50% { outline-offset: 7px; } }

/* 段取り Dandori en 4 pasos + 道具 Herramientas (19-oct-2026) */
.nav-grp.nav-tools { margin-top: 6px; padding-top: 6px; border-top: 1px dashed rgba(255, 255, 255, .12); }
.nav-grp.nav-tools .nav-jp { font-size: 15px; opacity: .85; }
html.om-light .nav-grp.nav-tools { border-top-color: #d5d9e1; }
.ent-path { margin: 0 0 14px; }
.ent-ph, .ent-th { font: 600 11px/1.3 Syncopate, sans-serif; letter-spacing: .18em; text-transform: uppercase; color: #8a90a0; margin: 0 0 8px; }
.ent-ph span, .ent-th span { color: #2ee6d6; letter-spacing: 0; font-family: inherit; }
.ent-th small { font: 400 12px/1.3 inherit; letter-spacing: 0; text-transform: none; margin-left: 6px; }
.ent-pgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ent-pgrid > * { min-width: 0; }
.ent-door { display: grid; grid-template-columns: 52px 1fr auto; gap: 12px; align-items: center; padding: 16px 18px; border-radius: 16px; border: 1px solid #262a38; background: #12151d; color: inherit; text-decoration: none; transition: border-color .15s, transform .15s; min-height: 44px; }
.ent-door:hover, .ent-door:focus-visible { border-color: #2ee6d6; transform: translateY(-2px); }
.ent-door-a { border-color: rgba(46, 230, 214, .5); }
.ent-dk { font-size: 24px; color: #2ee6d6; }
.ent-door small { display: block; font-size: 11px; color: #8a90a0; text-transform: uppercase; letter-spacing: .12em; }
.ent-door b { display: block; font-size: 16px; margin: 2px 0; } .ent-door em { display: block; font-style: normal; font-size: 13px; color: #b9bdc8; line-height: 1.4; }
.ent-door i { font-style: normal; font-size: 20px; color: #2ee6d6; }
.ent-tools { margin-top: 16px; }
.ent-tgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 8px; }
.ent-tool { display: flex; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 12px; border: 1px dashed #2a2f3d; color: inherit; text-decoration: none; min-height: 44px; }
.ent-tool > span:first-child { font-size: 18px; color: #8a90a0; } .ent-tool b { display: block; font-size: 13px; } .ent-tool small { display: block; font-size: 12px; color: #8a90a0; }
.ent-tool:hover { border-color: #2ee6d6; border-style: solid; }
html.om-light .ent-door, html.om-light .ent-tool { background: #ffffff; border-color: #e3e6ec; }
html.om-light .ent-door-a { border-color: #0e7c74; } html.om-light .ent-door em { color: #5b6273; }
html.om-light .ent-dk, html.om-light .ent-door i, html.om-light .ent-ph span, html.om-light .ent-th span { color: #0e7c74; }
html.om-light .ent-door:hover, html.om-light .ent-tool:hover { border-color: #0e7c74; }
.nv-quick { white-space: nowrap; font-size: 13px; }
.nv-quick b { margin-left: 4px; }
.pz-route { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.pz-route > .grow { min-width: 0; }
.ch-tool { font-weight: 600; color: #8a90a0; } .ch-tool span { color: #2ee6d6; }
.ch-intro { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
.ch-intro > div { min-width: 0; display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border-radius: 12px; background: rgba(46, 230, 214, .06); border: 1px solid rgba(46, 230, 214, .2); font-size: 13px; line-height: 1.5; }
.ch-intro b span { color: #2ee6d6; margin-right: 4px; }
html.om-light .ch-intro > div { background: rgba(14, 124, 116, .06); border-color: rgba(14, 124, 116, .22); } html.om-light .ch-intro b span, html.om-light .ch-tool span { color: #0e7c74; }
.q6-chiri { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; padding: 10px 12px; border-radius: 12px; border: 1px dashed rgba(46, 230, 214, .45); font-size: 13px; }
.q6-chiri > div { flex: 1 1 220px; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.q6-chiri span { color: var(--muted); }
.q6-chiri b span { color: #2ee6d6; }
html.om-light .q6-chiri { border-color: rgba(14, 124, 116, .45); } html.om-light .q6-chiri b span { color: #0e7c74; }
.ru-back { margin-left: auto; white-space: nowrap; }
@media (max-width: 859px) { .ent-pgrid, .ch-intro { grid-template-columns: minmax(0, 1fr); } .nv-quick { white-space: normal; } }

/* 顧客 Selector de clientes y 口座 cuentas del plan (19-oct-2026) */
.cp-modal { width: min(560px, 94vw); max-height: 86vh; display: flex; flex-direction: column; gap: 10px; }
.cp-body { display: flex; flex-direction: column; gap: 10px; min-height: 0; overflow: auto; }
.cp-hint { margin: 0; color: var(--muted); }
.cp-sug { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; text-align: left; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--tq-ac); background: var(--tq-acb); color: inherit; font: inherit; cursor: pointer; }
.cp-sug small { grid-column: 1; color: var(--muted); font-size: 11.5px; }
.cp-sug b { grid-column: 1; font-size: 15px; }
.cp-sug .cp-al { grid-column: 1; font-size: 12px; color: var(--muted); }
.cp-sug .cp-go { grid-column: 2; grid-row: 1 / span 3; align-self: center; font-weight: 700; color: var(--tq-ac); font-size: 13px; }
.cp-q { width: 100%; min-height: 44px; }
.cp-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; max-height: 42vh; overflow: auto; }
.cp-list button { width: 100%; min-height: 44px; display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; padding: 8px 12px; border-radius: 10px; border: 1px solid transparent; background: var(--bg); color: inherit; font: inherit; text-align: left; cursor: pointer; }
.cp-list button:hover, .cp-list button:focus-visible { border-color: var(--tq-ac); outline: none; }
.cp-list button.on { border-color: var(--tq-ac); background: var(--tq-acb); }
.cp-list button b { flex: 1 1 auto; font-size: 14px; }
.cp-list button small { flex-basis: 100%; color: var(--muted); font-size: 12px; }
.cp-list button i { font-style: normal; font-size: 11px; color: var(--tq-ac); font-weight: 700; }
.cp-none { margin: 0; }
.cp-link { border: 0; background: none; padding: 0; color: var(--tq-ac); font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }
.cp-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: 6px; border-top: 1px solid var(--line); }
.cp-foot .grow { flex: 1; }
.cp-x { color: #ff9f43 !important; border-color: #ff9f43 !important; }
.cp-body .field { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.cp-body .field > span { font-weight: 600; }
.cp-seg { display: flex; flex-wrap: wrap; gap: 6px; }
.cp-seg button { min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line); background: transparent; color: inherit; font: inherit; font-size: 13px; cursor: pointer; }
.cp-seg button.on { border-color: var(--tq-ac); background: var(--tq-acb); color: var(--tq-ac); font-weight: 700; }
.cp-g2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.cp-dup { margin: 0; color: #b45f06; }
.cp-lbl { display: block; font-size: 13px; font-weight: 600; margin-bottom: 4px; }
.cp-btnrow { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.cp-pickbtn { min-height: 44px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cp-was { display: block; margin-top: 4px; }
.cp-unl { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 12px 16px; margin: 0 0 14px; border-radius: 14px; border: 1px solid rgba(255, 159, 67, .55); background: rgba(255, 159, 67, .1); }
.cp-unl .grow { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.cp-unl small { color: var(--muted); }
.cp-unl-k { font-weight: 700; color: #ff9f43; font-size: 18px; }
/* 口座 Cuentas del cliente por plataforma: ✓ conectada (turquesa) · Falta (naranja) · Manual (gris). Sin semáforo. */
.cpl { margin: 10px 0 0; padding: 10px 12px; border-radius: 12px; background: var(--bg); }
.cpl-h { font-size: 11px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--muted); display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.cpl-h small { text-transform: none; letter-spacing: 0; font-weight: 600; }
.cpl-has .cpl-h small { color: #ff9f43; }
.cpl-l { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.cpl-l li { display: flex; align-items: flex-start; gap: 8px; min-width: 0; }
.cpl-i { flex: none; width: 20px; height: 20px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; margin-top: 1px; }
.cpl-ok .cpl-i { background: var(--tq-acb); color: var(--tq-ac); }
.cpl-falta .cpl-i { background: rgba(255, 159, 67, .16); color: #ff9f43; }
.cpl-manual .cpl-i { background: rgba(127, 134, 160, .16); color: var(--muted); }
.cpl-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; font-size: 13px; }
.cpl-t small { color: var(--muted); font-size: 12px; line-height: 1.4; }
.cpl-falta .cpl-t small { color: inherit; }
.cpl-go { flex: none; border-color: #ff9f43 !important; color: #ff9f43 !important; }
.cpl-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.cpl-chip { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 600; padding: 3px 9px; border-radius: 999px; border: 1px solid var(--line); }
.cpl-chip i { font-style: normal; font-weight: 700; }
.cpl-chip.cpl-ok i { color: var(--tq-ac); }
.cpl-chip.cpl-falta { border-color: rgba(255, 159, 67, .6); color: #ff9f43; }
.cpl-chip.cpl-manual { color: var(--muted); }
.ap-warn { margin: 6px 0 0; color: #ff9f43; }
.ap-warn a { color: inherit; font-weight: 700; }
.ap-miss { margin: 4px 0 10px; }
.ap-miss .cpl { margin-top: 6px; }
.jd-skip { margin: 6px 0 0; color: #ff9f43; }
.cl-adm-l { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 8px; }
.cl-adm-l li { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 10px; background: var(--bg); min-width: 0; }
.cl-adm-n { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.cl-adm-al { display: flex; flex-wrap: wrap; gap: 4px; }
.cl-adm-al i { font-style: normal; font-size: 11px; padding: 1px 7px; border-radius: 999px; background: var(--tq-acb); color: var(--tq-ac); }
.cl-edm { width: min(520px, 94vw); display: flex; flex-direction: column; gap: 10px; }
.cl-edm .field { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.cle-x { color: #ff9f43 !important; border-color: #ff9f43 !important; }
html.om-light .cpl-falta .cpl-i, html.om-light .cpl-chip.cpl-falta, html.om-light .cpl-go, html.om-light .ap-warn, html.om-light .jd-skip, html.om-light .cpl-has .cpl-h small, html.om-light .cp-unl-k { color: #b45f06 !important; }
@media (max-width: 859px) { .cp-g2 { grid-template-columns: minmax(0, 1fr); } }

/* 顧客テーマ Tema del cliente (panel de la presentación) */
.ct-btn .ct-sw { display: inline-block; width: 12px; height: 12px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .35); margin-right: 2px; vertical-align: -1px; }
.ct-box { max-width: 640px; text-align: left; border-color: #2EE6D6; background: radial-gradient(120% 90% at 50% 0%, rgba(46, 230, 214, .12), #0E1016 60%); }
.ct-box h2 { font-family: Cinzel, serif; margin: 0 0 6px; } .ct-box h2 small { display: inline; margin-left: 8px; font-size: 13px; letter-spacing: .2em; color: #2EE6D6; }
.ct-cols { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin: 14px 0; }
.ct-row { display: flex; align-items: center; gap: 8px; padding: 6px 10px; border: 1px solid #2C3046; border-radius: 10px; background: #12151D; }
.ct-row span { font-size: 12px; color: #9AA1B5; letter-spacing: .08em; text-transform: uppercase; }
.ct-row input[type=color] { width: 34px; height: 28px; padding: 0; border: 0; border-radius: 6px; background: none; cursor: pointer; }
.ct-row code { font-size: 12px; color: #E9E6DF; }
.ct-grp { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 10px 0; }
.ct-lab { width: 100%; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: #9AA1B5; }
.ct-chip { min-height: 36px; padding: 6px 14px; border-radius: 999px; border: 1px solid #2C3046; background: #12151D; color: #E9E6DF; font: 500 13px 'Outfit', system-ui, sans-serif; cursor: pointer; text-align: left; }
.ct-chip.on { border-color: #2EE6D6; box-shadow: inset 0 0 0 1px #2EE6D6; background: rgba(46, 230, 214, .1); }
.ct-fonts .ct-chip { border-radius: 10px; display: flex; flex-direction: column; } .ct-fonts .ct-chip small { color: #9AA1B5; font-size: 11px; }
.ct-save { display: flex; gap: 8px; align-items: center; font-size: 13px; color: #C9CDD8; margin-top: 10px; }

/* 消費 Consumo */
.cs-tiles { gap: 12px; align-items: stretch; margin-top: 12px; flex-wrap: wrap; }
.cs-tile { flex: 1; min-width: 160px; } .cs-tile b { display: block; font-size: 24px; margin-top: 4px; }
.cs-bars { display: flex; align-items: flex-end; gap: 3px; height: 160px; padding: 8px 0 18px; }
.cs-b { position: relative; flex: 1; height: 100%; display: flex; flex-direction: column-reverse; }
.cs-b i { display: block; width: 100%; border-radius: 2px 2px 0 0; } .cs-b small { position: absolute; bottom: -16px; left: 0; right: 0; text-align: center; font-size: 9px; color: #6E7587; }
.cs-ia { background: #FF2E4D; } .cs-fx { background: #2C3046; }
.cs-k { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin: 0 4px 0 10px; vertical-align: -1px; }
.cs-sim { display: flex; flex-wrap: wrap; gap: 12px; } .cs-sim label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: #9AA1B5; }
.cs-sim input { width: 110px; } .cs-fx-form { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; } .cs-fx-form input { flex: 1; min-width: 110px; }
.cs-sub { display: block; margin-top: 4px; font: 400 12px 'Outfit', system-ui, sans-serif; letter-spacing: 0; text-transform: none; color: #9AA1B5; }

/* 契約 Tu plan */
.tp .card { margin-bottom: 16px; } .tp h3 { margin: 0 0 6px; font-size: 13px; letter-spacing: .22em; text-transform: uppercase; color: #9AA1B5; } .tp-jp { color: #2EE6D6; letter-spacing: .1em; margin-right: 8px; }
.tp-plan { color: #9AA1B5; font-size: 14px; } .tp-plan b { color: #2EE6D6; border: 1px solid #2EE6D6; border-radius: 999px; padding: 2px 12px; margin: 0 4px; }
.tp-alert { font-size: 24px; font-weight: 700; line-height: 1.3; margin: 14px 0 18px; max-width: 980px; } .tp-alert em { font-style: normal; color: #FF2E4D; }
.tp-row { display: grid; grid-template-columns: minmax(220px, 330px) 1fr 150px; gap: 24px; align-items: center; padding: 16px 0; border-top: 1px solid #1A1D27; } .tp-row:first-of-type { border-top: 0; }
.tp-row b { display: block; font-size: 15px; } .tp-row small { color: #9AA1B5; font-size: 12px; }
.tp-bar { height: 8px; background: #1B1F2A; border-radius: 99px; overflow: hidden; } .tp-bar i { display: block; height: 100%; border-radius: 99px; background: #2EE6D6; } .tp-bar i.w { background: #F5B841; } .tp-bar i.r { background: #FF2E4D; }
.tp-pct { text-align: right; font-size: 15px; } .tp-pct span { display: block; color: #9AA1B5; font-size: 12px; }
.tp-g2 { display: grid; grid-template-columns: 1.6fr 1fr; gap: 16px; } @media (max-width: 900px) { .tp-g2, .tp-row { grid-template-columns: 1fr; } .tp-pct { text-align: left; } }
.tp-chip { font-size: 11px; padding: 3px 10px; border-radius: 999px; white-space: nowrap; } .tp-chip.c1 { background: rgba(46, 230, 214, .12); color: #2EE6D6; } .tp-chip.c2 { background: rgba(155, 107, 255, .15); color: #B9A0FF; } .tp-chip.c3 { background: rgba(255, 46, 77, .15); color: #FF8095; }
.tp-card { display: flex; align-items: center; gap: 12px; background: #12151D; border: 1px solid #2C3046; border-radius: 12px; padding: 12px 14px; margin: 10px 0; } .tp-card small { color: #9AA1B5; } .tp-nocard { border-color: #F5B841; }
.tp-brand { font-weight: 800; color: #fff; background: #1A1F71; border-radius: 4px; padding: 3px 7px; font-size: 12px; }
.tp-opts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 14px 0; } .tp-opt { display: flex; flex-direction: column; gap: 2px; padding: 14px 10px; border-radius: 12px; border: 1px solid #2C3046; background: #12151D; color: #E9E6DF; cursor: pointer; text-align: center; }
.tp-opt b { font-size: 24px; } .tp-opt span, .tp-opt small { font-size: 12px; color: #9AA1B5; } .tp-opt em { font-style: normal; font-weight: 700; color: #2EE6D6; } .tp-opt.on { border-color: #2EE6D6; box-shadow: inset 0 0 0 1px #2EE6D6; background: rgba(46, 230, 214, .08); }
.tp-buy label { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
html.om-light .tp-card, html.om-light .tp-opt { background: #F6F7F9; border-color: #DADDE3; color: #0B0D12; } html.om-light .tp-bar { background: #E6E8EC; } html.om-light .tp-row { border-top-color: #E3E6EC; }
/* 全部 Media Kit «Ver todos»: el marco ocupa toda la pantalla */
.mki-frame.mki-full { position: fixed; inset: 0; width: 100vw; height: 100vh; min-height: 0; z-index: 9500; border: 0; border-radius: 0; } body.mki-lock { overflow: hidden; }

/* ---------- 道 Menú por áreas (21-oct-2026, maqueta aprobada): barra de sellos que se abre al pasar el mouse ---------- */
.nav-area { display: flex !important; align-items: center; gap: 12px; width: 100% !important; margin: 0 !important; padding: 6px !important; border: 0 !important; border-radius: 12px; background: none; color: #C9CDD8; text-decoration: none; text-transform: none !important; letter-spacing: 0 !important; cursor: pointer; font: inherit; text-align: left; }
.nav-area:hover { background: rgba(255,255,255,.05); }
.nav-seal { flex: none; width: 40px; height: 40px; border-radius: 10px; border: 1px solid #2C3046; background: #12151D; display: grid; place-items: center; font-family: 'Noto Sans JP', sans-serif; font-size: 19px; font-weight: 700; color: #E9E6DF; }
.nav-short { display: none; }
.nav-area .nav-es { display: flex; flex-direction: column; min-width: 0; }
.nav-area .nav-es b { font-family: 'Outfit', system-ui, sans-serif !important; font-size: 15px !important; letter-spacing: 0 !important; text-transform: none !important; font-weight: 600; color: #fff; }
.nav-area .nav-es small { font-size: 12px !important; font-weight: 400 !important; letter-spacing: 0 !important; color: #9AA1B5 !important; }
.nav-grp.here .nav-seal { border-color: #FF2E4D; background: rgba(255,46,77,.14); color: #fff; }
.nav-area-med .nav-seal { border-color: rgba(46,230,214,.6); color: #2EE6D6; }
.nav-grp.here.nav-area-med .nav-seal { background: rgba(46,230,214,.14); }
.nav-grp .nav-items { padding: 2px 0 8px 52px; }
.nav-grp .nav-items a { padding: 7px 10px; gap: 8px; font-size: 13.5px; }
.nav-grp .nav-items a > svg { display: none; }
.nav-grp .nav-items a.nav-sub { padding-left: 22px; font-size: 13px; }
.nav-area-cta { margin-top: auto; border-top: 1px solid #1B1F2A; padding-top: 8px; }
.side .nav { display: flex; flex-direction: column; flex: 1; gap: 2px; }
.nav-solo .nav-area[aria-current="page"] { background: rgba(255,46,77,.08); }
.nav-solo .nav-area[aria-current="page"] .nav-seal { border-color: #FF2E4D; background: rgba(255,46,77,.14); color: #fff; }
@media (min-width: 761px) {
  .shell { grid-template-columns: 84px 1fr; }
  .side { width: 84px; padding: 14px 10px; overflow-x: hidden; z-index: 80; transition: width .16s ease, box-shadow .16s ease; }
  .side:hover, .side:focus-within { width: 300px; box-shadow: 24px 0 60px rgba(0,0,0,.55); }
  .side:not(:hover):not(:focus-within) .nav-es, .side:not(:hover):not(:focus-within) .nav-chev, .side:not(:hover):not(:focus-within) .nav-items,
  .side:not(:hover):not(:focus-within) .who, .side:not(:hover):not(:focus-within) #om-theme, .side:not(:hover):not(:focus-within) .om-lock b, .side:not(:hover):not(:focus-within) .cy-mk { display: none !important; }
  .side:not(:hover):not(:focus-within) .nav-area { flex-direction: column; gap: 3px; padding: 6px 0 !important; justify-content: center; }
  .side:not(:hover):not(:focus-within) .nav-short { display: block; font-size: 10px; line-height: 1.1; color: #9AA1B5; text-align: center; max-width: 64px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .side:not(:hover):not(:focus-within) .nav-grp.here .nav-short, .side:not(:hover):not(:focus-within) .nav-solo .nav-area[aria-current="page"] .nav-short { color: #fff; }
  .side:not(:hover):not(:focus-within) .brand.om-side { display: flex; justify-content: center; padding: 4px 0 10px; }
  .side:not(:hover):not(:focus-within) .om-lock { justify-content: center; }
  .side .nav-area .nav-short { white-space: nowrap; }
}
/* Tablero «Módulos» */
.om-mods { display: inline-flex; align-items: center; gap: 8px; border: 1px solid #2C3046; border-radius: 10px; padding: 8px 14px; background: #12151D; color: #E9E6DF; font: 500 14px 'Outfit', system-ui, sans-serif; cursor: pointer; }
.om-mods:hover, .om-mods:focus-visible { border-color: #FF2E4D; color: #fff; }
.om-dots { display: grid; grid-template-columns: repeat(3, 4px); gap: 3px; } .om-dots i { width: 4px; height: 4px; background: currentColor; border-radius: 1px; }
.om-mods-ov { position: fixed; inset: 0; z-index: 120; background: rgba(5,6,10,.62); display: flex; justify-content: flex-end; align-items: flex-start; padding: 76px 28px 28px; overflow-y: auto; }
.om-mods-box { width: min(900px, 100%); background: #0E1016; border: 1px solid #262A38; border-radius: 18px; padding: 24px; box-shadow: 0 30px 80px rgba(0,0,0,.6); color: #E9E6DF; }
.om-mods-h { display: flex; justify-content: space-between; gap: 12px; } .om-mods-h h2 { margin: 0; font-size: 18px; color: #fff; } .om-mods-h p { margin: 4px 0 18px; color: #9AA1B5; font-size: 13px; }
.om-mods-x { width: 36px; height: 36px; border-radius: 8px; border: 1px solid #2C3046; background: #12151D; color: #E9E6DF; cursor: pointer; }
.om-mods-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.om-mod { border: 1px solid #232736; border-radius: 14px; padding: 16px; background: #12151D; }
.om-mod-here { border-color: rgba(255,46,77,.6); }
.om-mod-new { border-color: rgba(46,230,214,.55); background: rgba(46,230,214,.05); } .om-mod-new .nav-seal { border-color: rgba(46,230,214,.6); color: #2EE6D6; }
.om-mod-h { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; text-decoration: none; color: inherit; border-radius: 10px; }
.om-mod-h b { display: block; font-size: 16px; color: #fff; } .om-mod-h small { color: #9AA1B5; font-size: 12.5px; }
.om-new { font-size: 10.5px; color: #07080C; background: #2EE6D6; border-radius: 999px; padding: 2px 8px; margin-left: 6px; font-weight: 700; vertical-align: middle; }
.om-mod-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.om-mod-tags a, .om-mods-f a { font-size: 12px; color: #C9CDD8; border: 1px solid #2C3046; border-radius: 999px; padding: 3px 10px; text-decoration: none; }
.om-mod-tags a:hover, .om-mods-f a:hover { border-color: #2EE6D6; color: #fff; } .om-mod-tags a[aria-current="page"] { background: #2EE6D6; border-color: #2EE6D6; color: #07080C; }
.om-mods-f { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 14px; padding-top: 14px; border-top: 1px solid #1B1F2A; color: #9AA1B5; font-size: 12.5px; }
.om-mods-f .nav-seal { width: 30px; height: 30px; font-size: 15px; } .om-mods-f b { color: #fff; margin-right: 4px; }
body.om-mods-on { overflow: hidden; }
@media (max-width: 900px) { .om-mods-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) { .om-mods-grid { grid-template-columns: 1fr; } .om-mods-ov { padding: 64px 12px 12px; } .om-mods { padding: 8px 10px; } }
/* Selector de plataforma de Auditorías */
.aud-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 10px 28px; border-bottom: 1px solid #1B1F2A; background: #090A0F; }
.aud-bar[hidden] { display: none; }
.aud-l { color: #9AA1B5; font-size: 13px; } .aud-l span { color: #FF2E4D; margin-right: 4px; }
.aud-bar nav { display: flex; gap: 6px; flex-wrap: wrap; }
.aud-bar a { font-size: 13px; color: #C9CDD8; border: 1px solid #2C3046; border-radius: 999px; padding: 5px 12px; text-decoration: none; }
.aud-bar a:hover { border-color: #2EE6D6; color: #fff; } .aud-bar a[aria-current="page"] { background: #2EE6D6; border-color: #2EE6D6; color: #07080C; font-weight: 600; }
/* Modo claro */
html.om-light .nav-seal { background: #fff; border-color: #d5d9e1; color: #1a1f2b; }
html.om-light .nav-area { color: #1a1f2b; } html.om-light .nav-area .nav-es b { color: #0b0d12; } html.om-light .nav-area .nav-es small, html.om-light .nav-short { color: #5b6272 !important; }
html.om-light .nav-grp.here .nav-seal, html.om-light .nav-solo .nav-area[aria-current="page"] .nav-seal { border-color: #c8102e; background: rgba(200,16,46,.08); color: #c8102e; }
html.om-light .nav-area-med .nav-seal { border-color: rgba(14,124,116,.55); color: #0e7c74; }
html.om-light .nav-area-cta { border-top-color: #d5d9e1; }
html.om-light .om-mods, html.om-light .om-mods-box, html.om-light .om-mod, html.om-light .om-mods-x { background: #fff; border-color: #d5d9e1; color: #1a1f2b; }
html.om-light .om-mods-h h2, html.om-light .om-mod-h b, html.om-light .om-mods-f b { color: #0b0d12; }
html.om-light .om-mod-tags a, html.om-light .om-mods-f a, html.om-light .aud-bar a { color: #1a1f2b; border-color: #d5d9e1; }
html.om-light .om-mod-new { background: rgba(14,124,116,.05); border-color: rgba(14,124,116,.45); }
html.om-light .aud-bar { background: #f7f8fa; border-bottom-color: #d5d9e1; }
html.om-light .aud-bar a[aria-current="page"], html.om-light .om-mod-tags a[aria-current="page"] { background: #0e7c74; border-color: #0e7c74; color: #fff; }
.nav a.nav-area[aria-current="page"] { background: rgba(255,46,77,.08) !important; color: inherit !important; }
html.om-light .nav a.nav-area[aria-current="page"] { background: rgba(200,16,46,.06) !important; }
/* 太陽 Planet Solar: cliente estrella con área propia */
.nav-area-star .nav-seal { border-color: rgba(245,184,65,.65); color: #F5B841; }
.nav-grp.here.nav-area-star .nav-seal { background: rgba(245,184,65,.14); }
.om-mod-star { border-color: rgba(245,184,65,.55); background: rgba(245,184,65,.05); } .om-mod-star .nav-seal { border-color: rgba(245,184,65,.65); color: #F5B841; }
html.om-light .nav-area-star .nav-seal, html.om-light .om-mod-star .nav-seal { border-color: #c98a12; color: #a86f00; }
/* 診断 Medición estratégica (pestañas bajo el Radar SEO/AEO/GEO) */
.mx-wrap { margin-top: 14px; } .mx-h h3 { margin: 0; } .mx-h h3 span { color: #2EE6D6; margin-right: 6px; }
.mx-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 12px 0 14px; border-bottom: 1px solid #1B1F2A; padding-bottom: 10px; }
.mx-tabs button { border: 1px solid #2C3046; background: #12151D; color: #C9CDD8; border-radius: 999px; padding: 6px 14px; font: inherit; font-size: 13px; cursor: pointer; }
.mx-tabs button span { color: #9AA1B5; margin-right: 4px; } .mx-tabs button.on { background: #2EE6D6; border-color: #2EE6D6; color: #07080C; font-weight: 600; } .mx-tabs button.on span { color: #07080C; }
.mx-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin-bottom: 14px; } .mx-tiles2 { grid-template-columns: 1fr 1fr; }
.mx-tile { position: relative; border: 1px solid #232736; border-radius: 14px; padding: 14px 16px; background: #12151D; display: flex; flex-direction: column; gap: 2px; }
.mx-tile b { font-size: 28px; color: #fff; } .mx-tile span { font-size: 13px; color: #E9E6DF; } .mx-tile small { font-size: 11.5px; color: #9AA1B5; }
.mx-tjp { position: absolute; right: 12px; top: 10px; font-size: 16px !important; color: #3A4152 !important; }
.mx-green { border-top: 3px solid #2EE6D6; } .mx-amber { border-top: 3px solid #F5B841; } .mx-red { border-top: 3px solid #FF2E4D; } .mx-gray { border-top: 3px solid #2C3046; }
.mx-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; } @media (max-width: 900px) { .mx-grid2 { grid-template-columns: 1fr; } }
.mx-row { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 8px; } .mx-row .grow { flex: 1 1 160px; }
.mx-q { width: 100%; margin-bottom: 6px; } .mx-eng { display: flex; gap: 6px; flex-wrap: wrap; margin: 8px 0 10px; }
.mx-bar { display: grid; grid-template-columns: 140px 1fr 48px; gap: 8px; align-items: center; font-size: 13px; margin: 4px 0; }
.mx-bar i { display: block; height: 8px; border-radius: 8px; background: #3A4152; min-width: 2px; } .mx-bar.own i { background: #2EE6D6; } .mx-bar.own span { font-weight: 600; color: #fff; }
.mx-src { display: inline-block; border: 1px solid #2C3046; border-radius: 999px; padding: 2px 9px; margin: 0 4px 4px 0; font-size: 12px; }
.mx-own td { background: rgba(46,230,214,.06); }
.mx-months { display: flex; gap: 4px; align-items: flex-end; height: 90px; } .mx-months span { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; }
.mx-months i { display: block; width: 100%; background: #2EE6D6; border-radius: 3px 3px 0 0; min-height: 2px; } .mx-months small { font-size: 10px; color: #9AA1B5; }
html.om-light .mx-tabs button, html.om-light .mx-tile { background: #fff; border-color: #d5d9e1; color: #1a1f2b; } html.om-light .mx-tile b, html.om-light .mx-tile span, html.om-light .mx-bar.own span { color: #0b0d12; }
html.om-light .mx-tabs button.on { background: #0e7c74; border-color: #0e7c74; color: #fff; } html.om-light .mx-tabs button.on span { color: #fff; }
html.om-light .mx-months i, html.om-light .mx-bar.own i { background: #0e7c74; } html.om-light .mx-src { border-color: #d5d9e1; }
/* 来店 Tráfico a punto de venta (mismo patrón del onboarding de Planet, con diseño OMEGA) */
.tv-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.tv-list { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.tv-pj { text-align: left; border: 1px solid #232736; background: #12151D; color: #E9E6DF; border-radius: 12px; padding: 10px 14px; cursor: pointer; font: inherit; } .tv-pj.sel { border-color: #FF2E4D; } .tv-pj b { display: block; font-size: 14px; } .tv-pj small { color: #9AA1B5; font-size: 12px; }
.tv-new { margin-bottom: 14px; } .tv-row { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; margin-bottom: 8px; } .tv-row .grow { flex: 1 1 200px; }
.tv-hero { display: grid; grid-template-columns: 1.6fr 1fr; gap: 16px; margin-bottom: 18px; } @media (max-width: 960px) { .tv-hero { grid-template-columns: 1fr; } }
.tv-main, .tv-side > div { background: #0E1016; border: 1px solid #1E2230; border-radius: 16px; padding: 18px 20px; }
.tv-side { display: flex; flex-direction: column; gap: 12px; }
.tv-kick { font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: #FF2E4D; font-weight: 700; }
.tv-main h2 { margin: 6px 0 8px; font-size: 24px; color: #fff; } .tv-main p { margin: 0 0 14px; color: #C9CDD8; }
.tv-nums { display: flex; gap: 28px; flex-wrap: wrap; } .tv-nums span { font-size: 12px; color: #9AA1B5; } .tv-nums b { display: block; font-size: 22px; color: #fff; }
.tv-tier span { font-size: 12px; color: #9AA1B5; } .tv-tier b { display: block; font-size: 26px; margin: 2px 0; } .tv-tier small { display: block; color: #C9CDD8; font-size: 12.5px; } .tv-tier em { display: block; font-style: normal; color: #9AA1B5; font-size: 12px; margin-top: 6px; }
.tv-oro b { color: #F5B841; } .tv-plata b { color: #C9CDD8; } .tv-bronce b { color: #C98A5A; }
.tv-pri > div { display: grid; grid-template-columns: 52px 1fr 40px; gap: 8px; align-items: center; font-size: 13px; margin-bottom: 8px; }
.tv-pri i { display: flex; height: 8px; background: #1B1F2A; border-radius: 8px; overflow: hidden; } .tv-pri i b { display: block; height: 100%; }
.tv-pri .ok, .tv-pri small i.ok { background: #2EE6D6; } .tv-pri .rv, .tv-pri small i.rv { background: #5B8CFF; } .tv-pri .dv, .tv-pri small i.dv { background: #F5B841; }
.tv-pri em { font-style: normal; text-align: right; color: #9AA1B5; } .tv-pri small { font-size: 11.5px; color: #9AA1B5; } .tv-pri small i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin: 0 4px 0 10px; }
.tv-h { margin: 22px 0 4px; font-size: 18px; color: #fff; } .tv-sub { margin: 0 0 12px; color: #9AA1B5; font-size: 13px; }
.tv-phases { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; } @media (max-width: 1100px) { .tv-phases { grid-template-columns: repeat(3, 1fr); } }
.tv-ph { position: relative; text-align: left; border: 1px solid #232736; background: #12151D; color: #E9E6DF; border-radius: 14px; padding: 12px; cursor: pointer; font: inherit; }
.tv-ph b { display: block; margin-top: 6px; font-size: 14px; } .tv-ph small { color: #9AA1B5; font-size: 12px; } .tv-ph.sel { border-color: #FF2E4D; box-shadow: inset 0 0 0 1px #FF2E4D; } .tv-ph.now { background: rgba(255,46,77,.06); }
.tv-n { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; border: 1px solid #2C3046; font-size: 12px; } .tv-ph.now .tv-n { background: #FF2E4D; border-color: #FF2E4D; color: #fff; }
.tv-ph em { position: absolute; top: 10px; right: 10px; font-style: normal; font-size: 10px; font-weight: 700; background: #FF2E4D; color: #fff; border-radius: 6px; padding: 1px 6px; }
.tv-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 10px; } .tv-cols > div { background: #0E1016; border: 1px solid #1E2230; border-radius: 14px; padding: 12px 16px; }
.tv-cols h5 { margin: 0 0 6px; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: #9AA1B5; } .tv-cols ul { margin: 0; padding-left: 18px; font-size: 13.5px; } @media (max-width: 760px) { .tv-cols { grid-template-columns: 1fr; } }
.tv-filt { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-bottom: 12px; } .tv-filt span { font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: #9AA1B5; margin: 0 4px 0 10px; }
.tv-filt button { border: 1px solid #2C3046; background: #12151D; color: #C9CDD8; border-radius: 999px; padding: 5px 12px; font: inherit; font-size: 13px; cursor: pointer; } .tv-filt button.on { background: #E9E6DF; color: #07080C; border-color: #E9E6DF; }
.tv-task { background: #0E1016; border: 1px solid #1E2230; border-radius: 14px; padding: 14px 16px; margin-bottom: 10px; } .tv-task.tv-dv { border-color: rgba(245,184,65,.5); } .tv-task.tv-ok { opacity: .85; } .tv-task.tv-na { opacity: .5; }
.tv-tt { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; } .tv-tt span { font-size: 11px; border-radius: 6px; padding: 2px 8px; border: 1px solid #2C3046; color: #C9CDD8; }
.tv-p-alta { background: rgba(255,46,77,.14); color: #FF8095 !important; border-color: transparent !important; font-weight: 700; } .tv-p-media { background: rgba(245,184,65,.14); color: #F5B841 !important; border-color: transparent !important; font-weight: 700; } .tv-p-baja { font-weight: 700; }
.tv-blk { border-color: #FF2E4D !important; color: #FF8095 !important; } .tv-f { color: #9AA1B5 !important; }
.tv-task h4 { margin: 8px 0 4px; font-size: 16px; color: #fff; } .tv-task > p { margin: 0 0 8px; color: #C9CDD8; font-size: 13.5px; }
.tv-wf { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 8px; } .tv-wf div { font-size: 12.5px; color: #C9CDD8; background: #12151D; border-radius: 10px; padding: 8px 10px; } .tv-wf b { color: #E9E6DF; } @media (max-width: 760px) { .tv-wf { grid-template-columns: 1fr; } }
.tv-meta { font-size: 12.5px; color: #9AA1B5; } .tv-meta b { color: #E9E6DF; }
.tv-link { background: none; border: 0; color: #2EE6D6; cursor: pointer; font: inherit; padding: 0; text-decoration: underline; }
.tv-acts { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; flex-wrap: wrap; }
.tv-del { border-left: 3px solid #5B8CFF; background: #12151D; border-radius: 0 10px 10px 0; padding: 8px 12px; margin-top: 8px; font-size: 13px; } .tv-d-aprobada { border-left-color: #2EE6D6; } .tv-d-devuelta { border-left-color: #F5B841; }
.tv-del p { margin: 4px 0; } .tv-files { display: flex; gap: 10px; flex-wrap: wrap; margin: 4px 0; } .tv-sum { color: #2EE6D6; font-size: 12.5px; } .tv-warn { color: #F5B841; font-size: 12.5px; } .tv-com { color: #C9CDD8; font-size: 12.5px; margin-top: 4px; }
.tv-staff { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } .tv-staff section { background: #0E1016; border: 1px solid #1E2230; border-radius: 14px; padding: 14px 16px; } .tv-staff h5 { margin: 0 0 8px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #9AA1B5; } @media (max-width: 960px) { .tv-staff { grid-template-columns: 1fr; } }
.tv-res { display: flex; flex-direction: column; gap: 4px; border-radius: 12px; padding: 12px 14px; margin-top: 10px; background: #12151D; border: 1px solid #232736; } .tv-res b { font-size: 18px; color: #fff; } .tv-res span { font-size: 12.5px; color: #C9CDD8; }
.tv-r-causo { border-color: rgba(46,230,214,.6); } .tv-r-bajo { border-color: rgba(255,46,77,.6); } .tv-r-no_concluyente { border-color: rgba(245,184,65,.6); } .tv-pub { display: flex; gap: 8px; align-items: center; margin-top: 10px; font-size: 13px; }
.tv-foot { text-align: center; color: #9AA1B5; font-size: 12px; margin: 20px 0 8px; }
.tv-modal { max-width: 620px; } .tv-mk { font-size: 12px; color: #9AA1B5; font-family: ui-monospace, monospace; } .tv-note { font-size: 13px; background: rgba(46,230,214,.08); border-radius: 10px; padding: 8px 10px; }
.tv-drop { display: flex; flex-direction: column; align-items: center; gap: 4px; border: 1.5px dashed #2C3046; border-radius: 12px; padding: 16px; margin: 10px 0; cursor: pointer; text-align: center; } .tv-drop.drag { border-color: #2EE6D6; } .tv-drop b { color: #2EE6D6; } .tv-drop small { color: #9AA1B5; font-size: 12px; } .tv-drop ul { margin: 6px 0 0; padding: 0; list-style: none; font-size: 13px; }
.tv-merr { background: rgba(245,184,65,.1); border: 1px solid rgba(245,184,65,.5); border-radius: 10px; padding: 8px 12px; font-size: 13px; } .tv-merr ul { margin: 4px 0 0; padding-left: 18px; }
html.om-light .tv-main, html.om-light .tv-side > div, html.om-light .tv-cols > div, html.om-light .tv-task, html.om-light .tv-staff section, html.om-light .tv-ph, html.om-light .tv-pj, html.om-light .tv-filt button, html.om-light .tv-wf div, html.om-light .tv-del, html.om-light .tv-res { background: #fff; border-color: #d5d9e1; color: #1a1f2b; }
html.om-light .tv-main h2, html.om-light .tv-nums b, html.om-light .tv-task h4, html.om-light .tv-h, html.om-light .tv-res b, html.om-light .tv-wf b, html.om-light .tv-meta b { color: #0b0d12; } html.om-light .tv-main p, html.om-light .tv-task > p, html.om-light .tv-wf div { color: #3a4152; }
html.om-light .tv-filt button.on { background: #0b0d12; color: #fff; } html.om-light .tv-link, html.om-light .tv-drop b, html.om-light .tv-sum { color: #0e7c74; }
/* 名簿 Listas de clientes (Customer Match) */
.cm .card { margin-bottom: 14px; } .cm-how h3 { margin: 0 0 6px; } .cm-how h3 span { color: #FF2E4D; margin-right: 6px; } .cm-how ol { margin: 6px 0 0; padding-left: 18px; }
.cm-row { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; } .cm-row .grow { flex: 1 1 200px; }
.cm-drop { display: flex; flex-direction: column; align-items: center; gap: 4px; border: 1.5px dashed #2C3046; border-radius: 12px; padding: 22px; margin: 12px 0; cursor: pointer; text-align: center; } .cm-drop.drag { border-color: #2EE6D6; } .cm-drop b { color: #2EE6D6; } .cm-drop small { color: #9AA1B5; font-size: 12px; }
.cm-nums { display: flex; gap: 26px; flex-wrap: wrap; margin-bottom: 8px; } .cm-nums span { font-size: 12px; color: #9AA1B5; } .cm-nums b { display: block; font-size: 22px; color: #fff; }
.cm-ok { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; margin: 10px 0; } .cm-ok input { margin-top: 3px; }
html.om-light .cm-nums b { color: #0b0d12; } html.om-light .cm-drop b { color: #0e7c74; } html.om-light .cm-drop { border-color: #d5d9e1; }
/* 契約 Tu plan v2: créditos únicos, inversión en medios y planes */
.tp-up { margin: 10px 0 14px; padding: 10px 14px; border-radius: 12px; background: rgba(46,230,214,.08); border: 1px solid rgba(46,230,214,.4); font-size: 13.5px; }
.tp-t { width: 100%; border-collapse: collapse; font-size: 14px; } .tp-t td { padding: 7px 8px; border-bottom: 1px solid #1A1D27; } .tp-t .num { text-align: right; font-variant-numeric: tabular-nums; } .tp-tot td { font-weight: 700; color: #fff; }
.tp-plans { max-width: 1000px; } .tp-pgrid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin: 12px 0; } @media (max-width: 1000px) { .tp-pgrid { grid-template-columns: 1fr 1fr; } }
.tp-pl { border: 1px solid #232736; border-radius: 14px; padding: 14px; background: #12151D; display: flex; flex-direction: column; gap: 6px; } .tp-pl.now { border-color: #2EE6D6; }
.tp-pl b { font-size: 16px; color: #fff; } .tp-pl em { font-style: normal; color: #2EE6D6; font-weight: 600; } .tp-pl ul { margin: 0; padding-left: 16px; font-size: 12.5px; color: #C9CDD8; flex: 1; }
html.om-light .tp-pl { background: #fff; border-color: #d5d9e1; } html.om-light .tp-pl b, html.om-light .tp-tot td { color: #0b0d12; } html.om-light .tp-pl em { color: #0e7c74; } html.om-light .tp-t td { border-bottom-color: #e3e6ec; }
.tp-save { padding: 10px 14px; border-radius: 12px; background: rgba(245,184,65,.1); border: 1px solid rgba(245,184,65,.45); font-size: 13.5px; margin-bottom: 10px; }
.tp-adv { margin: 0 0 12px; padding-left: 18px; font-size: 14px; } .tp-adv li { margin-bottom: 6px; }
.tp-g3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; } .tp-g3 h5 { margin: 0 0 6px; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: #9AA1B5; } .tp-g3 p { display: flex; justify-content: space-between; margin: 4px 0; font-size: 13px; } @media (max-width: 760px) { .tp-g3 { grid-template-columns: 1fr; } }
/* 同期 TV Sync · aviso fijo de piloto (21-oct-2026) */
.tv-pilot { display: block; border: 1px solid #6b4a1c; background: #151109; color: #E9D9C2; border-radius: 12px; padding: 12px 16px; margin: 0 0 16px; font-size: 13px; line-height: 1.5; } .tv-pilot b { color: #FF9F43; }
html.om-light .tv-pilot { background: #fff6e8; border-color: #e7c48f; color: #4a3517; } html.om-light .tv-pilot b { color: #a05a00; }
/* 対照 Guía «¿Cómo se mide con grupo de control?» por país (21-oct-2026) */
.gc { border: 1px solid #1E2330; background: #0E1117; border-radius: 14px; margin: 0 0 16px; }
.gc summary { cursor: pointer; padding: 14px 18px; list-style: none; display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.gc summary::-webkit-details-marker { display: none; } .gc summary::after { content: '＋'; margin-left: auto; color: #2EE6D6; } .gc[open] summary::after { content: '－'; }
.gc summary span[lang] { color: #2EE6D6; } .gc summary small { color: #9AA1B5; font-size: 12px; }
.gc-b { padding: 0 18px 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } @media (max-width: 960px) { .gc-b { grid-template-columns: 1fr; } }
.gc-b section { background: #12151D; border-radius: 10px; padding: 12px 14px; } .gc-b h4 { margin: 0 0 6px; font-size: 13.5px; } .gc-b p, .gc-b li { font-size: 13px; line-height: 1.55; color: #C9CDD8; margin: 0 0 6px; } .gc-b ul { margin: 0; padding-left: 18px; }
.gc-t { width: 100%; border-collapse: collapse; font-size: 12.5px; margin: 4px 0 8px; } .gc-t th { text-align: left; color: #9AA1B5; font-weight: 500; padding: 4px 6px; border-bottom: 1px solid #1E2330; } .gc-t td { padding: 6px; border-bottom: 1px solid #1A1E29; }
.gc-m { display: block; color: #9AA1B5; font-size: 11.5px; margin-top: 4px; } .gc-ok { color: #2EE6D6; } .gc-no { color: #FF9F43; }
.gc-pais, .gc-int { grid-column: 1 / -1; } .gc-int { border-left: 3px solid #FF2E4D; } .gc-int blockquote { margin: 4px 0 8px; font-size: 13px; color: #E9E6DF; font-style: italic; }
html.om-light .gc { background: #fff; border-color: #d5d9e1; } html.om-light .gc-b section { background: #f6f7f9; } html.om-light .gc-b p, html.om-light .gc-b li { color: #3a4152; } html.om-light .gc-b h4, html.om-light .gc-int blockquote, html.om-light .gc summary b { color: #0b0d12; } html.om-light .gc summary span[lang], html.om-light .gc-ok, html.om-light .gc summary::after { color: #0e7c74; } html.om-light .gc-no { color: #a05a00; } html.om-light .gc-t th, html.om-light .gc-t td { border-color: #e3e6ec; }
/* 来店 Nuevo proyecto guiado · tarjetas (21-oct-2026) */
.wz { margin-bottom: 16px; } .wz-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 14px; } .wz-steps span { border: 1px solid #1E2330; border-radius: 12px; padding: 10px 14px; font-size: 12.5px; color: #9AA1B5; background: #12151D; } .wz-steps b { display: block; color: #E9E6DF; font-size: 13.5px; } .wz-steps .done { border-color: #1d5f5a; } .wz-steps .now { border-color: #FF2E4D; background: rgba(255,46,77,.06); }
.wz-ai { display: flex; gap: 10px; align-items: flex-start; border: 1px solid #1d5f5a; background: rgba(46,230,214,.05); border-radius: 12px; padding: 12px 16px; font-size: 13px; color: #C9CDD8; line-height: 1.55; margin-bottom: 6px; } .wz-ai b { color: #2EE6D6; } .wz-ai > span { font-size: 18px; color: #2EE6D6; }
.wz-h { font-size: 16px; margin: 22px 0 4px; text-transform: uppercase; letter-spacing: .04em; } .wz-h i { font-style: normal; color: #FF2E4D; margin-right: 8px; }
.wz-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; } @media (max-width: 1100px) { .wz-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 640px) { .wz-grid, .wz-steps { grid-template-columns: 1fr; } }
.wz-cd { text-align: left; font: inherit; color: inherit; cursor: pointer; background: #0E1117; border: 1px solid #1E2330; border-radius: 14px; padding: 16px 16px 36px; position: relative; display: flex; flex-direction: column; gap: 8px; } .wz-cd:hover { border-color: #2C3046; }
.wz-cd.sel { border-color: #2EE6D6; box-shadow: 0 0 0 1px #2EE6D6 inset; background: rgba(46,230,214,.05); } .wz-cd.dis { opacity: .55; cursor: not-allowed; }
.wz-cd h4 { margin: 0; font-size: 15px; } .wz-q { color: #2EE6D6; font-size: 13px; } .wz-cd p { margin: 0; font-size: 12.5px; color: #C9CDD8; line-height: 1.5; } .wz-cd p b { color: #E9E6DF; }
.wz-bd { align-self: flex-start; font-size: 10px; border-radius: 5px; padding: 2px 7px; font-weight: 700; } .wz-bd.rec { background: #2EE6D6; color: #07080C; } .wz-bd.pend { border: 1px solid #FF9F43; color: #FF9F43; }
.wz-lv { display: inline-block; align-self: flex-start; font-size: 11px; border-radius: 5px; padding: 2px 8px; border: 1px solid #2C3046; } .wz-lv.oro { color: #FFB547; border-color: #6b4a1c; }
.wz-chk { position: absolute; right: 12px; bottom: 12px; width: 20px; height: 20px; border-radius: 50%; border: 1px solid #2C3046; } .wz-cd.sel .wz-chk { background: #2EE6D6; border-color: #2EE6D6; }
.wz-why { border-left: 3px solid #FF2E4D; background: #12151D; border-radius: 8px; padding: 12px 16px; margin-top: 12px; font-size: 13px; color: #C9CDD8; line-height: 1.55; } .wz-why b { color: #E9E6DF; }
.wz-form { display: grid; grid-template-columns: 2fr 1.5fr 1fr 1fr 0.8fr; gap: 12px; margin-bottom: 10px; } @media (max-width: 960px) { .wz-form { grid-template-columns: 1fr 1fr; } } .wz-hint { display: block; color: #2EE6D6; font-size: 11.5px; margin-top: 4px; }
.wz-sum { display: grid; grid-template-columns: 1.4fr 1fr; gap: 14px; } @media (max-width: 960px) { .wz-sum { grid-template-columns: 1fr; } } .wz-sum > div { background: #12151D; border-radius: 12px; padding: 16px; } .wz-sum h5 { margin: 0 0 8px; font-size: 11px; letter-spacing: .16em; color: #8B93A7; text-transform: uppercase; } .wz-sum h5 ~ h5 { margin-top: 14px; } .wz-sum ul { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.7; color: #C9CDD8; }
.wz-tl { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; margin-bottom: 14px; } @media (max-width: 960px) { .wz-tl { grid-template-columns: repeat(3, 1fr); } } .wz-tl span { border: 1px solid #1E2330; border-radius: 10px; padding: 8px; font-size: 11.5px; color: #C9CDD8; } .wz-tl b { display: block; font-size: 12.5px; color: #E9E6DF; } .wz-tl em { display: block; font-style: normal; color: #2EE6D6; }
.wz-big { font-size: 20px; font-weight: 700; margin: 0 0 2px; color: #E9E6DF; }
html.om-light .wz-cd, html.om-light .wz-steps span, html.om-light .wz-sum > div, html.om-light .wz-why, html.om-light .wz-tl span { background: #fff; border-color: #d5d9e1; color: #1a1f2b; } html.om-light .wz-cd p, html.om-light .wz-sum ul, html.om-light .wz-why, html.om-light .wz-ai { color: #3a4152; } html.om-light .wz-cd p b, html.om-light .wz-steps b, html.om-light .wz-big, html.om-light .wz-tl b, html.om-light .wz-why b { color: #0b0d12; } html.om-light .wz-q, html.om-light .wz-hint, html.om-light .wz-tl em, html.om-light .wz-ai b { color: #0e7c74; } html.om-light .wz-cd.sel { border-color: #0e7c74; box-shadow: 0 0 0 1px #0e7c74 inset; background: #effaf8; } html.om-light .wz-cd.sel .wz-chk { background: #0e7c74; border-color: #0e7c74; }
/* 自働化 Montaje de la prueba (21-oct-2026) */
.tv-mont { grid-column: 1 / -1; } .tv-req { list-style: none; margin: 0 0 8px; padding: 0; font-size: 13px; line-height: 1.8; } .tv-req .ok { color: #2EE6D6; } .tv-req .no { color: #FF9F43; }
.tv-guide { margin-top: 10px; } .tv-guide summary { cursor: pointer; font-size: 13px; color: #2EE6D6; } .tv-guide ol { margin: 8px 0; padding-left: 20px; line-height: 1.7; }
html.om-light .tv-req .ok, html.om-light .tv-guide summary { color: #0e7c74; } html.om-light .tv-req .no { color: #a05a00; }
/* 見積 Calculadora de planes (21-oct-2026): enlace público /calculadora y Cuenta → Planes */
body.cz-page { margin: 0; background: #07080C; color: #E9E6DF; font-family: 'Outfit', system-ui, sans-serif; } body.cz-page main { max-width: 1180px; margin: 0 auto; padding: 24px 16px 60px; }
.cz { color: #E9E6DF; } .cz h2 { margin: 0 0 6px; font-size: 22px; } .cz h3 { margin: 22px 0 10px; font-size: 16px; } .cz-muted { color: #9AA1B5; font-size: 13px; line-height: 1.55; } .cz-acc { color: #2EE6D6; }
.cz-top { display: flex; gap: 12px; align-items: center; margin-bottom: 18px; } .cz-logo { font-family: serif; font-size: 34px; color: #FF2E4D; } .cz-top b { font-family: 'Cinzel', serif; letter-spacing: .2em; display: block; } .cz-top small { color: #9AA1B5; }
.cz-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 14px; } .cz-steps button { font: inherit; color: #9AA1B5; background: #0E1117; border: 1px solid #1E2330; border-radius: 12px; padding: 10px 14px; text-align: left; cursor: pointer; display: flex; gap: 10px; align-items: center; } .cz-steps i { font-style: normal; width: 24px; height: 24px; border-radius: 50%; border: 1px solid #2C3046; display: grid; place-items: center; font-size: 12px; } .cz-steps .now { border-color: #FF2E4D; color: #E9E6DF; background: rgba(255,46,77,.06); } .cz-steps .now i { background: #FF2E4D; border-color: #FF2E4D; color: #fff; } .cz-steps .done { border-color: #1d5f5a; color: #E9E6DF; } .cz-steps .done i { background: #2EE6D6; color: #07080C; border-color: #2EE6D6; }
.cz-card { background: #0E1117; border: 1px solid #1E2330; border-radius: 14px; padding: 20px; margin-bottom: 14px; }
.cz-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; } .cz-grid4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; } @media (max-width: 860px) { .cz-grid3, .cz-grid4, .cz-steps { grid-template-columns: 1fr; } }
.cz-f { display: flex; flex-direction: column; gap: 5px; margin-bottom: 10px; } .cz-f span { font-size: 12.5px; color: #C9CDD8; } .cz-f small { font-size: 11.5px; color: #9AA1B5; }
.cz-f input, .cz-f select { font: inherit; color: #E9E6DF; background: #0B0D12; border: 1px solid #2C3046; border-radius: 10px; padding: 10px 12px; } .cz-f input:focus, .cz-f select:focus { outline: none; border-color: #2EE6D6; }
.cz-opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; } @media (max-width: 860px) { .cz-opts { grid-template-columns: 1fr; } }
.cz-opt { font: inherit; color: #E9E6DF; text-align: left; background: #12151D; border: 1px solid #2C3046; border-radius: 12px; padding: 12px 14px; cursor: pointer; display: flex; gap: 10px; align-items: center; width: 100%; } .cz-opt i { width: 18px; height: 18px; border-radius: 5px; border: 1px solid #2C3046; flex: none; } .cz-opt.sel { border-color: #2EE6D6; background: rgba(46,230,214,.06); } .cz-opt.sel i { background: #2EE6D6; border-color: #2EE6D6; }
.cz-acts { display: flex; gap: 10px; justify-content: flex-end; margin-top: 14px; } .cz-btn { font: inherit; font-weight: 600; color: #E9E6DF; background: transparent; border: 1px solid #2C3046; border-radius: 10px; padding: 10px 18px; cursor: pointer; } .cz-btn.p { background: #2EE6D6; color: #07080C; border-color: #2EE6D6; } .cz-btn.sm { padding: 5px 10px; font-size: 12px; } .cz-btn:disabled { opacity: .5; }
.cz-tw { overflow-x: auto; } .cz-t { width: 100%; border-collapse: collapse; font-size: 13px; } .cz-t th { text-align: left; color: #9AA1B5; font-weight: 500; font-size: 12px; padding: 8px 10px; border-bottom: 1px solid #1E2330; } .cz-t td { padding: 9px 10px; border-bottom: 1px solid #161A23; vertical-align: top; } .cz-t .n { text-align: right; white-space: nowrap; } .cz-t small { display: block; color: #9AA1B5; font-size: 11.5px; }
.cz-cmp th.czr, .cz-cmp td.czr { background: rgba(46,230,214,.06) !important; } .cz-cmp th.czr { color: #2EE6D6; } .cz-t thead th { background: transparent !important; text-transform: none; } .cz-cmp th em { display: block; font-style: normal; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; } .cz-cmp tr.tot td { font-weight: 700; color: #E9E6DF; border-top: 1px solid #2C3046; }
.cz-ok { color: #2EE6D6; } .cz-no { color: #FF8095; } .cz-mid { color: #FFB547; }
.cz-rec { border-color: #1d5f5a; } .cz-kick { font-size: 11px; letter-spacing: .18em; color: #FF2E4D; font-weight: 700; } .cz-rec h2 { font-size: 28px; margin: 6px 0; }
.cz-nums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 12px 0; } @media (max-width: 860px) { .cz-nums { grid-template-columns: 1fr 1fr; } } .cz-nums div { background: #12151D; border-radius: 10px; padding: 12px; } .cz-nums small { display: block; color: #9AA1B5; font-size: 12px; } .cz-nums b { font-size: 22px; } .cz-big { font-size: 26px; font-weight: 700; } .cz-big small { font-size: 13px; color: #9AA1B5; margin-left: 8px; }
.cz-mini { background: #12151D; border-radius: 12px; padding: 12px 14px; font-size: 13px; color: #C9CDD8; line-height: 1.5; } .cz-mini b { display: block; color: #E9E6DF; margin-bottom: 4px; } .cz-mini em { color: #FFB547; font-style: normal; }
.cz-int { border-color: #5e1d29; } .cz-sent { border-color: #1d5f5a; } .cz-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.cz-share { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; } .cz-share span { color: #9AA1B5; font-size: 13px; flex: 1; }
html.om-light .cz-card, html.om-light .cz-steps button { background: #fff; border-color: #d5d9e1; color: #1a1f2b; } html.om-light .cz, html.om-light .cz-opt { color: #1a1f2b; } html.om-light .cz-opt, html.om-light .cz-mini, html.om-light .cz-nums div { background: #f6f7f9; border-color: #d5d9e1; } html.om-light .cz-f input, html.om-light .cz-f select { background: #fff; color: #1a1f2b; border-color: #d5d9e1; } html.om-light .cz-acc, html.om-light .cz-ok, html.om-light .cz-cmp th.czr { color: #0e7c74; } html.om-light .cz-btn.p { background: #0e7c74; border-color: #0e7c74; color: #fff; } html.om-light .cz-mini b, html.om-light .cz-cmp tr.tot td { color: #0b0d12; }
/* 戻る Botón «Atrás» y entrada suave de cada pantalla (21-oct-2026) */
.om-back { font: inherit; font-size: 13px; color: #C9CDD8; background: #0F1218; border: 1px solid #2C3046; border-radius: 10px; padding: 7px 12px; margin-right: 14px; cursor: pointer; white-space: nowrap; max-width: 260px; overflow: hidden; text-overflow: ellipsis; align-self: center; }
.om-back:hover { border-color: #2EE6D6; color: #fff; } .om-back:focus-visible { outline: 2px solid #2EE6D6; outline-offset: 2px; }
#view.om-in { animation: omIn .16s ease-out; } @keyframes omIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } } @media (prefers-reduced-motion: reduce) { #view.om-in { animation: none; } }
@media (max-width: 760px) { .om-back { max-width: 140px; padding: 6px 10px; margin-right: 8px; } }
html.om-light .om-back { background: #fff; color: #1a1f2b; border-color: #d5d9e1; } html.om-light .om-back:hover { border-color: #0e7c74; color: #0b0d12; }

/* ---------- 明 Claridad (21-oct-2026): una sola navegación, español primero, más aire y nada encima del contenido ---------- */
/* 1. Barra lateral abierta en pantallas anchas: nombre en español visible siempre; el kanji queda como sello pequeño */
@media (min-width: 1200px) {
  html .shell { grid-template-columns: 252px 1fr; }
  html .side, html .side:hover, html .side:focus-within { width: 252px; box-shadow: none; padding: 18px 12px; }
  html .side:not(:hover):not(:focus-within) .nav-es, html .side:not(:hover):not(:focus-within) .nav-chev { display: flex !important; }
  html .side:not(:hover):not(:focus-within) .nav-items { display: block !important; }
  html .side:not(:hover):not(:focus-within) .nav-grp:not(.open) .nav-items { display: none !important; }
  html .side:not(:hover):not(:focus-within) .who, html .side:not(:hover):not(:focus-within) #om-theme { display: block !important; }
  html .side:not(:hover):not(:focus-within) .om-lock b { display: inline !important; }
  html .side:not(:hover):not(:focus-within) .nav-area { flex-direction: row; gap: 12px; padding: 6px 8px !important; justify-content: flex-start; }
  html .side:not(:hover):not(:focus-within) .nav-short { display: none !important; }
  html .side:not(:hover):not(:focus-within) .brand.om-side { display: block; padding: 4px 8px 6px; }
  html .side:not(:hover):not(:focus-within) .om-lock { justify-content: flex-start; }
}
.nav-seal { width: 32px; height: 32px; font-size: 15px; border-radius: 9px; }
.nav-area .nav-es b { font-size: 15px !important; }
.nav-area .nav-es small { font-size: 11.5px !important; line-height: 1.3; }
.nav-grp .nav-items { padding-left: 46px; }
.nav-grp .nav-items a { font-size: 14px; padding: 8px 10px; border-radius: 8px; }
/* Vista simple: lo de la vista experta se oculta del menú (sigue en el buscador) */
body.om-simple .nav [data-x] { display: none !important; }
body.om-simple .cy-fab, body.om-simple .cy-mk { display: none !important; }
.om-vista { display: inline-flex; gap: 6px; align-items: center; margin-top: 8px; background: none; border: 0; color: #C9CDD8; padding: 0; cursor: pointer; font: inherit; font-size: 13px; }
.om-vista span { color: #2EE6D6; font-family: 'Noto Sans JP', sans-serif; } .om-vista u { color: #2EE6D6; text-underline-offset: 3px; }
/* 2. Buscador ⌘K en lugar de «Módulos» y «Navegar» */
.om-k { display: inline-flex; align-items: center; gap: 10px; min-width: 260px; border: 1px solid #2C3046; border-radius: 10px; padding: 9px 12px; background: #12151D; color: #9AA1B5; font: 400 14px 'Outfit', system-ui, sans-serif; cursor: pointer; text-align: left; }
.om-k span { flex: 1; } .om-k:hover, .om-k:focus-visible { border-color: #2EE6D6; color: #E9E6DF; }
.om-k kbd, .om-k-in kbd { font: 600 11px 'Outfit', system-ui, sans-serif; color: #9AA1B5; border: 1px solid #2C3046; border-radius: 6px; padding: 2px 6px; background: #0B0D12; }
.om-k-ov { position: fixed; inset: 0; z-index: 130; background: rgba(5,6,10,.62); display: flex; justify-content: center; align-items: flex-start; padding: 12vh 16px 16px; }
.om-k-box { width: min(640px, 100%); background: #0E1016; border: 1px solid #262A38; border-radius: 16px; box-shadow: 0 30px 80px rgba(0,0,0,.6); overflow: hidden; color: #E9E6DF; }
.om-k-in { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid #1B1F2A; color: #9AA1B5; }
.om-k-in input { flex: 1; background: none; border: 0; outline: 0; color: #fff; font: 400 16px 'Outfit', system-ui, sans-serif; padding: 4px 0; box-shadow: none !important; }
#om-k-l { list-style: none; margin: 0; padding: 8px; max-height: 52vh; overflow-y: auto; }
#om-k-l li { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; cursor: pointer; }
#om-k-l li[aria-selected="true"], #om-k-l li:hover { background: rgba(46,230,214,.1); }
#om-k-l li em { font-style: normal; font-size: 11px; color: #9AA1B5; border: 1px solid #2C3046; border-radius: 99px; padding: 2px 8px; white-space: nowrap; }
.om-k-seal { width: 28px; height: 28px; flex: none; border-radius: 8px; border: 1px solid #2C3046; display: grid; place-items: center; font: 700 13px 'Noto Sans JP', sans-serif; color: #E9E6DF; }
.om-k-t { flex: 1; min-width: 0; display: flex; flex-direction: column; } .om-k-t b { font-weight: 600; color: #fff; } .om-k-t small { color: #9AA1B5; font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.om-k-none { color: #9AA1B5; cursor: default !important; }
.om-k-f { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 16px; border-top: 1px solid #1B1F2A; color: #9AA1B5; font-size: 12px; }
.om-k-f button { background: none; border: 1px solid #2C3046; color: #E9E6DF; border-radius: 8px; padding: 5px 10px; font: inherit; cursor: pointer; } .om-k-f button:hover { border-color: #2EE6D6; }
body.om-k-on { overflow: hidden; }
@media (max-width: 760px) { .om-k { min-width: 0; } .om-k span, .om-k kbd { display: none; } }
/* 3. Títulos: español primero y grande, kanji pequeño al lado, sin romaji */
#ptitle { display: inline-flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
#ptitle .pt-es { order: 1; font-size: 1.15em; } #ptitle .pt-kj { order: 2; font-size: .62em; opacity: .85; } #ptitle .pt-ro { display: none; }
/* 4. Nada flota encima del contenido: el ciclo entra a la barra de arriba; el asistente queda como círculo */
.cy-fab.cy-inbar { position: relative; top: auto; right: auto; bottom: auto; z-index: 6; }
.oc-fab { padding: 6px !important; } .oc-fab .oc-lbl { display: none !important; }
.oc-fab:hover .oc-lbl, .oc-fab:focus-visible .oc-lbl { display: flex !important; } .oc-fab:hover, .oc-fab:focus-visible { padding: 6px 16px 6px 6px !important; }
/* 5. Oxígeno: más espacio entre bloques y renglones que se leen sin cansar */
.page { padding: 32px 40px 128px; line-height: 1.55; }
.top { padding: 18px 40px; gap: 16px; }
.card { padding: 22px 24px; } .card + .card { margin-top: 22px; }
.page > p, .card > p, .md-sub, .in-hi p { max-width: 78ch; }
.in-hero, .in-cards, .md-card { margin-bottom: 24px; }
.md-k { margin: 14px 0 0; }
@media (max-width: 760px) { .page { padding: 20px 16px 120px; } .top { padding: 14px 16px; } }
/* Modo claro */
html.om-light .om-k, html.om-light .om-k-box { background: #fff; border-color: #d5d9e1; color: #5b6272; }
html.om-light .om-k kbd, html.om-light .om-k-in kbd { background: #f7f8fa; border-color: #d5d9e1; color: #5b6272; }
html.om-light .om-k-in input, html.om-light .om-k-t b { color: #0b0d12; } html.om-light .om-k-in, html.om-light .om-k-f { border-color: #e3e6ec; color: #5b6272; }
html.om-light #om-k-l li[aria-selected="true"], html.om-light #om-k-l li:hover { background: rgba(14,124,116,.08); }
html.om-light .om-k-seal, html.om-light #om-k-l li em, html.om-light .om-k-f button { border-color: #d5d9e1; color: #1a1f2b; }
html.om-light .om-vista { color: #1a1f2b; } html.om-light .om-vista span, html.om-light .om-vista u { color: #0e7c74; }
/* 6. «Estás en → Sigue» deja de flotar: franja delgada entre la barra de arriba y la pantalla */
.main > .top { order: 1; } .main > .ru-bar { order: 2; } .main > .page { order: 3; }
html .ru-bar { position: static; inset: auto; max-width: none; margin: 0; border-radius: 0; border: 0; border-bottom: 1px solid #1B1F2A; box-shadow: none; backdrop-filter: none; background: #0B0D12; padding: 6px 40px; min-height: 0; max-height: none; }
body.ru-on .oc-fab, body.ru-on .cy-fab { bottom: auto; }
html.om-light .ru-bar { background: #f7f8fa; border-bottom-color: #e3e6ec; color: #1a1f2b; }
/* 7. Barra de arriba en un solo renglón: Sincronizar en español con el kanji de acento; País y Mes se entienden por su valor */
@media (min-width: 1200px) { .top { flex-wrap: nowrap; } }
.btn-doki .doki-ro { display: none; } .btn-doki .doki-jp { order: 2; font-size: 11px; opacity: .7; font-weight: 600; } .btn-doki .doki-es { order: 1; font-size: 14px; padding-left: 0; border-left: 0; opacity: 1; }
#pclabel span, #mlabel { display: none; } #pclabel { font-size: 0; } #pclabel span[lang] { display: none; }
.top .om-k { min-width: 220px; }
.btn-doki, #ptitle, #ptitle > span { white-space: nowrap; } #ptitle { flex-wrap: nowrap; }
.top > div:has(#ptitle) { flex: 0 1 auto; min-width: 0; }
@media (max-width: 760px) { .om-k span { display: inline; } .om-k kbd { display: none; } .btn-doki .doki-jp { display: none; } .btn-doki .doki-es { display: inline !important; } .main > .ru-bar { padding: 6px 16px; } }
.top > div:has(#ptitle) { flex: 1 1 360px; } .top > .grow { display: none; }
#psub { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-width: 70ch; }
.top .om-back { flex: none; max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.top select.in { flex: none; }
.top > div:has(#ptitle) { min-width: 230px; overflow: hidden; } #ptitle { max-width: 100%; } #ptitle .pt-es { overflow: hidden; text-overflow: ellipsis; }
.top .om-k { flex: 0 1 240px; min-width: 150px; } .top .om-k span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.top select.in { width: auto; min-width: 0; max-width: 168px; } .top .om-k { flex: 1 1 200px; max-width: 280px; }
@media (max-width: 1500px) { .top .btn-doki .doki-jp { display: none; } }
.top #pc { max-width: 160px; } @media (max-width: 1500px) { .top .om-k kbd { display: none; } }
/* 21-oct-2026 · Plan del mes: barra de selección múltiple para eliminar borradores */
.pm-bulk { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 12px; padding: 10px 14px; border: 1px solid rgba(255,46,77,.45); border-radius: 12px; background: rgba(255,46,77,.06); font-size: 13.5px; }
.pm-bulk[hidden] { display: none; } .pm-bulk #pmbt { color: #9AA1B5; }
html.om-light .pm-bulk { background: rgba(200,16,46,.05); border-color: rgba(200,16,46,.35); }
/* 21-oct-2026 · Selector «Simple | Pro» arriba de la barra lateral; modo claro como botón pequeño al lado */
.om-modebar { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
.om-modes { display: inline-flex; flex: 1; padding: 3px; border: 1px solid #2C3046; border-radius: 999px; background: #12151D; }
.om-modes button { flex: 1; border: 0; background: none; color: #9AA1B5; font: 500 13px 'Outfit', system-ui, sans-serif; padding: 6px 10px; border-radius: 999px; cursor: pointer; white-space: nowrap; }
.om-modes button span { font-family: 'Noto Sans JP', sans-serif; font-size: 11px; margin-right: 3px; opacity: .8; }
.om-modes button[aria-pressed="true"] { background: #2EE6D6; color: #07080C; font-weight: 600; }
.om-modes button:not([aria-pressed="true"]):hover { color: #fff; }
.om-theme.om-theme-i { flex: none; width: 34px; height: 34px; padding: 0 !important; display: grid !important; place-items: center; border-radius: 50%; font-size: 15px; margin: 0 !important; }
html.om-light .om-modes { background: #fff; border-color: #d5d9e1; } html.om-light .om-modes button { color: #5b6272; } html.om-light .om-modes button[aria-pressed="true"] { background: #0e7c74; color: #fff; }
@media (min-width: 761px) and (max-width: 1199px) { .side:not(:hover):not(:focus-within) .om-modebar { display: none !important; } }
@media (min-width: 1200px) { html .side:not(:hover):not(:focus-within) #om-theme.om-theme-i { display: grid !important; } html .side .om-modebar { display: flex !important; } }
/* ---------- 全 Pro / 簡 Simple: dos módulos (21-oct-2026). Cada uno muestra solo lo suyo + lo común (Inicio, Planet Solar, Cuenta) ---------- */
body.om-simple .nav [data-m="pro"], body.om-pro .nav [data-m="simple"] { display: none !important; }
/* Identidad de Pro: sala de estrategia */
body.om-pro .strip { height: 3px; background: linear-gradient(90deg, #FF2E4D, #9B6BFF 50%, #2EE6D6) !important; }
.om-modes button[data-om-mode="pro"][aria-pressed="true"] { background: linear-gradient(90deg, #FF2E4D, #9B6BFF); color: #fff; }
body.om-pro #ptitle::before { content: '全 PRO'; order: 0; align-self: center; font: 700 10.5px 'Outfit', system-ui, sans-serif; letter-spacing: .14em; color: #fff; background: linear-gradient(90deg, #FF2E4D, #9B6BFF); padding: 3px 9px; border-radius: 99px; }
body.om-pro .nav-grp.here .nav-seal, body.om-pro .nav-solo .nav-area[aria-current="page"] .nav-seal { border-color: #9B6BFF; background: rgba(155,107,255,.18); }
/* 橋 Puente entre módulos */
.om-bridge { margin: 0 0 18px; padding: 12px 16px; border-radius: 12px; border: 1px solid rgba(155,107,255,.45); background: linear-gradient(90deg, rgba(155,107,255,.12), rgba(46,230,214,.08)); font-size: 14px; line-height: 1.5; }
.om-bridge b span { font-family: 'Noto Sans JP', sans-serif; margin-right: 4px; } .om-bridge a { color: #2EE6D6; margin-left: 6px; }
/* 全 Estudio Pro */
.ep-h { display: flex; align-items: flex-end; gap: 16px; margin: 0 0 22px; }
.ep-k { margin: 0 0 6px; font: 700 12px 'Outfit', system-ui, sans-serif; letter-spacing: .16em; text-transform: uppercase; background: linear-gradient(90deg, #FF2E4D, #9B6BFF); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ep-h h2 { margin: 0; font-size: 30px; line-height: 1.15; color: #fff; } .ep-sub { margin: 8px 0 0; color: #9AA1B5; max-width: 78ch; }
.ep-line { list-style: none; margin: 0 0 26px; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; counter-reset: ep; }
.ep-line li { position: relative; } .ep-line li:not(:last-child)::after { content: '→'; position: absolute; right: -11px; top: 50%; transform: translateY(-50%); color: #9B6BFF; font-weight: 700; z-index: 1; }
.ep-node { display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 16px; border-radius: 14px; border: 1px solid #2C3046; background: linear-gradient(180deg, #141824, #0E1016); color: #E9E6DF; text-decoration: none; transition: border-color .15s, transform .15s; }
.ep-node:hover { border-color: #9B6BFF; transform: translateY(-2px); }
.ep-jp { font: 700 12px 'Noto Sans JP', sans-serif; color: #FF2E4D; } .ep-n { font: 700 30px 'Outfit', system-ui, sans-serif; line-height: 1; color: #fff; }
.ep-node b { font-size: 15px; color: #fff; } .ep-node small { color: #9AA1B5; font-size: 12.5px; min-height: 2.6em; } .ep-node em { margin-top: auto; font-style: normal; font-size: 12.5px; color: #2EE6D6; }
.ep-hand { border-color: rgba(46,230,214,.55); background: linear-gradient(180deg, rgba(46,230,214,.12), #0E1016); } .ep-hand .ep-jp { color: #2EE6D6; } .ep-hand .ep-n { color: #2EE6D6; }
.ep-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.ep-card { padding: 22px 24px; border-radius: 16px; border: 1px solid #262A38; background: #0E1016; position: relative; overflow: hidden; }
.ep-card::before { content: ''; position: absolute; inset: 0 0 auto 0; height: 3px; } .ep-c1::before { background: #2EE6D6; } .ep-c2::before { background: #FF2E4D; } .ep-c3::before { background: #F5B841; } .ep-c4::before { background: #9B6BFF; }
.ep-ck { margin: 0 0 6px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #9AA1B5; } .ep-ck span { font-family: 'Noto Sans JP', sans-serif; color: #fff; margin-right: 6px; letter-spacing: 0; }
.ep-card h3 { margin: 0 0 6px; font-size: 19px; color: #fff; } .ep-card p { margin: 0 0 14px; color: #C9CDD8; font-size: 14px; line-height: 1.5; }
.ep-links { display: flex; flex-wrap: wrap; gap: 8px; } .ep-links a { font-size: 13px; color: #E9E6DF; border: 1px solid #2C3046; border-radius: 999px; padding: 6px 12px; text-decoration: none; } .ep-links a:hover { border-color: #9B6BFF; color: #fff; }
.ep-dl { display: grid; grid-template-columns: 160px 1fr; gap: 6px 12px; margin: 8px 0 12px; font-size: 13.5px; } .ep-dl dt { color: #9AA1B5; } .ep-dl dd { margin: 0; color: #fff; }
.ep-fine { font-size: 12.5px !important; color: #9AA1B5 !important; margin: 0 !important; }
.ep-foot { margin: 22px 0 0; color: #9AA1B5; font-size: 14px; } .ep-foot span { font-family: 'Noto Sans JP', sans-serif; color: #2EE6D6; } .ep-foot a { color: #2EE6D6; }
@media (max-width: 1100px) { .ep-line { grid-template-columns: repeat(2, 1fr); } .ep-line li::after { display: none; } .ep-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .ep-line { grid-template-columns: 1fr; } .ep-dl { grid-template-columns: 1fr; } .ep-h h2 { font-size: 24px; } }
/* Marcas claras (COSMO, DigiMarketing) */
html.om-light .ep-h h2, html.om-light .ep-node b, html.om-light .ep-n, html.om-light .ep-card h3, html.om-light .ep-dl dd, html.om-light .ep-ck span { color: #0b0d12; }
html.om-light .ep-node, html.om-light .ep-card { background: #fff; border-color: #dadde3; color: #1a1f2b; } html.om-light .ep-card p { color: #3a4050; }
html.om-light .ep-links a { color: #1a1f2b; border-color: #d5d9e1; } html.om-light .ep-hand { background: rgba(14,124,116,.06); border-color: rgba(14,124,116,.45); } html.om-light .ep-hand .ep-n, html.om-light .ep-hand .ep-jp, html.om-light .ep-node em, html.om-light .ep-foot a, html.om-light .om-bridge a { color: #0e7c74; }

/* 創 Creadores (21-oct-2026): base de creadores (Pro) y campañas con creadores (Simple) */
.cr-top { margin-bottom: 14px; } .cr-sub { margin: 0; color: #9AA1B5; font-size: 14px; max-width: 900px; } .cr-sub a { color: #2EE6D6; }
.cr-k { margin: 0 0 6px; font: 700 12px 'Outfit', system-ui, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #2EE6D6; } .cr-k span[lang="ja"] { color: #FF2E4D; letter-spacing: 0; margin-right: 4px; }
.cr-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; align-items: center; } .cr-filters .in { width: auto; min-width: 150px; } .cr-filters input[type="search"], .cr-filters input[name="q"] { flex: 1 1 220px; }
.cr-grid { display: grid; grid-template-columns: 1fr; gap: 14px; } .cr-grid.with { grid-template-columns: minmax(0, 1.4fr) minmax(320px, 1fr); }
@media (max-width: 1000px) { .cr-grid.with { grid-template-columns: 1fr; } }
.cr-list .tbl td small { display: block; font-size: 12px; } .crd-row { cursor: pointer; } .crd-row:hover td, .crd-row.sel td { background: rgba(46, 230, 214, .07); } .crd-row:focus-visible { outline: 2px solid #2EE6D6; outline-offset: -2px; }
.cr-ficha h3 { margin: 0 0 4px; } .cr-fh { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; flex-wrap: wrap; margin-bottom: 10px; }
.cr-dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; margin: 8px 0; font-size: 14px; } .cr-dl dt { color: #9AA1B5; } .cr-dl dd { margin: 0; }
.cr-h4 { margin: 14px 0 6px; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: #9AA1B5; }
.cr-bars { display: grid; gap: 6px; } .cr-bar { display: grid; grid-template-columns: 110px 1fr 56px; gap: 8px; align-items: center; font-size: 13px; }
.cr-bar i { display: block; height: 8px; border-radius: 4px; background: linear-gradient(90deg, #2EE6D6 var(--w), #232736 var(--w)); } .cr-bar b { text-align: right; font-weight: 600; }
.cr-rate { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; } .cr-rate .in { width: auto; min-width: 90px; flex: 1 1 90px; }
.cr-src { list-style: none; padding: 0; margin: 10px 0; display: grid; gap: 6px; font-size: 14px; }
.cr-honest { border-left: 3px solid #F5B841; padding: 8px 12px; background: rgba(245, 184, 65, .07); border-radius: 0 8px 8px 0; font-size: 14px; }
.cr-newc { border-style: dashed !important; } .cr-camp { margin-bottom: 12px; } .cr-brief summary { cursor: pointer; color: #2EE6D6; font-size: 14px; }
.cr-del td { vertical-align: top; } .cr-del td small { display: block; font-size: 12px; } .cr-sb { display: flex; gap: 4px; margin-top: 6px; flex-wrap: wrap; }
.cr-tot { display: flex; flex-wrap: wrap; gap: 6px 18px; color: #9AA1B5; margin: 10px 0 0; }
.cr-med { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 14px; } .cr-lv h3 { margin: 4px 0 8px; font-size: 18px; } .cr-lvk { margin: 0; font-size: 13px; color: #9AA1B5; display: flex; gap: 8px; align-items: center; }
.cr-roi h3 { font-size: 15px; font-family: 'Outfit', system-ui, sans-serif; } .cr-nc { margin: 10px 0 0; padding: 10px 12px; border-radius: 10px; background: #12151D; border: 1px solid #262A38; }
.cr-utm { font-size: 11px; word-break: break-all; }
html.om-light .cr-nc { background: #F4F2EC; border-color: #E2DED4; } html.om-light .cr-bar i { background: linear-gradient(90deg, #0FA89B var(--w), #E2DED4 var(--w)); }

/* 創 sync393 · Tarjetas de creador tipo post de Instagram + línea Creadores en el plan */
.cr-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 14px; align-content: start; }
.cr-vw { display: inline-flex; margin-left: auto; }
.cc { display: flex; flex-direction: column; background: var(--card, #161a27); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; cursor: pointer; transition: border-color .15s, transform .15s; min-width: 0; }
.cc:hover, .cc.sel { border-color: #2EE6D6; } .cc:focus-visible { outline: 2px solid #2EE6D6; outline-offset: 2px; }
.cc-h { display: flex; align-items: center; gap: 10px; padding: 12px 12px 10px; }
.cc-av { width: 40px; height: 40px; border-radius: 50%; flex: 0 0 40px; display: grid; place-items: center; font: 700 14px 'Outfit', system-ui, sans-serif; color: #fff; background: linear-gradient(135deg, #FF2E4D, #8B5CF6 55%, #2EE6D6); box-shadow: 0 0 0 2px var(--bg, #0d1018), 0 0 0 4px #FF2E4D55; object-fit: cover; }
.cc-id { min-width: 0; flex: 1; } .cc-id b { display: block; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .cc-id small { color: var(--muted); font-size: 12px; }
.cc-tier { font: 700 11px 'Outfit', system-ui, sans-serif; letter-spacing: .1em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; border: 1px solid currentColor; }
.cc-tier.t-macro { color: #FF2E4D; } .cc-tier.t-mid { color: #8B5CF6; } .cc-tier.t-micro { color: #F5B841; } .cc-tier.t-nano { color: #9AA1B5; }
.cc-img { position: relative; min-height: 150px; padding: 18px 16px 14px; display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; background: radial-gradient(120% 90% at 0% 0%, rgba(255, 46, 77, .28), transparent 55%), radial-gradient(120% 90% at 100% 100%, rgba(46, 230, 214, .22), transparent 55%), #1b2033; }
.cc-core { margin: 0; font: 700 19px/1.15 'Outfit', system-ui, sans-serif; } .cc-desc { margin: 0; font-size: 13px; color: #c9cede; }
.cc-rol { margin: 4px 0 0; font-size: 13px; background: rgba(13, 16, 24, .6); border-radius: 8px; padding: 7px 9px; } .cc-rol span { color: #F5B841; font-weight: 700; font-size: 11px; letter-spacing: .1em; margin-right: 4px; }
.cc-grp { position: absolute; top: 10px; right: 10px; font-size: 11px; background: rgba(13, 16, 24, .65); border-radius: 999px; padding: 2px 8px; color: #2EE6D6; }
.cc-bar { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--line); } .cc-bar span { padding: 9px 4px; text-align: center; font-size: 13px; } .cc-bar b { display: block; font-size: 14px; } .cc-bar small { display: block; color: var(--muted); font-size: 11px; }
.cc-com { padding: 10px 12px 4px; font-size: 13px; } .cc-com p { margin: 0 0 5px; } .cc-com b { color: #c9cede; margin-right: 3px; }
.cc-al { list-style: none; padding: 0; margin: 6px 0 2px; } .cc-al li { font-size: 12px; color: #F5B841; margin: 2px 0; } .cc-al li.bad { color: #FF2E4D; }
.cc-f { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; padding: 8px 12px 6px; font-size: 13px; margin-top: auto; } .cc-acts { display: flex; gap: 6px; }
.cc-src { margin: 0; padding: 0 12px 10px; font-size: 11px; color: var(--muted); }
.cr-core { margin: 0 0 6px; font-size: 14px; } .cr-alc { display: block; color: #F5B841; font-size: 12px; }
.cr-how { margin-bottom: 14px; } .cr-how summary { cursor: pointer; font: 700 16px 'Outfit', system-ui, sans-serif; } .cr-how summary span { color: #FF2E4D; margin-right: 6px; } .cr-how ol { padding-left: 20px; } .cr-how li { margin: 4px 0; }
.cre-plan { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 14px; } .cre-plan h3 { margin: 0 0 4px; } .cre-plan h3 span { color: #FF2E4D; margin-right: 6px; }
.cre-ctl { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 10px 0; } .cre-t td small { display: block; font-size: 12px; } .cre-mix { margin-top: 10px; } .cre-mix ol { padding-left: 20px; }
@media (max-width: 560px) { .cr-cards { grid-template-columns: 1fr; } .cc-bar span { font-size: 12px; } }

/* 公 sync394 · Creadores: foto y datos oficiales de Instagram (Business Discovery) */
.cc-avw { position: relative; flex: 0 0 40px; width: 40px; height: 40px; }
.cc-avw .cc-av { position: absolute; inset: 0; }
.cc-avw img.cc-av { object-fit: cover; background: #1c1f2b; }
.cc-avw .cc-av[hidden] { display: none; }
.cc-ig { margin-left: 4px; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--line, rgba(255,255,255,.14)); background: transparent; color: var(--muted); cursor: pointer; font: 600 14px system-ui, sans-serif; }
.cc-ig:hover, .cc-ig:focus-visible { color: #2EE6D6; border-color: #2EE6D6; outline: none; }
.cc-off { margin: 0; padding: 6px 12px 0; font-size: 11.5px; color: #2EE6D6; }
.cc-off .muted { color: var(--muted); }
.cr-ighint { margin: 8px 0 12px; }
.cr-bio { margin: 6px 0; color: var(--text, inherit); }
.cr-igerr { margin: 6px 0; color: #F5B841; }
/* sync394 · el grupo del roster ya no tapa el núcleo: va como etiqueta arriba, en el flujo */
.cc-img { padding-top: 34px; }
.cc-grp { max-width: calc(100% - 20px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* sync394 · Tarjeta = un post de Instagram (aprobado por Alejandro): foto cuadrada grande, velo con núcleo, rol como pie de foto */
.cr-cards { grid-template-columns: 1fr; }
@media (min-width: 700px) { .cr-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .cr-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } .cr-grid.with .cr-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cc a[data-igl] { color: inherit; text-decoration: none; }
.cc-avl { flex: 0 0 40px; border-radius: 50%; }
.cc-hl b { display: inline-flex; align-items: center; gap: 4px; max-width: 100%; }
.cc-hl:hover b, .cc-hl:focus-visible b { color: #2EE6D6; }
.cc-ext { font-size: 11px; color: var(--muted); }
.cc-pl { display: block; }
.cc-photo { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; background: linear-gradient(135deg, #FF2E4D, #8B5CF6 55%, #2EE6D6); }
.cc-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.cc-photo .cc-big { position: absolute; inset: 0; display: grid; place-items: center; font: 800 clamp(48px, 9vw, 96px) 'Outfit', system-ui, sans-serif; color: rgba(255, 255, 255, .92); letter-spacing: .04em; }
.cc-photo .cc-big[hidden] { display: none; }
.cc-veil { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 40px 14px 12px; background: linear-gradient(to top, rgba(8, 10, 16, .92), rgba(8, 10, 16, .55) 60%, transparent); }
.cc-veil .cc-core { color: #fff; font: 700 19px/1.15 'Outfit', system-ui, sans-serif; text-shadow: 0 1px 2px rgba(0, 0, 0, .5); }
.cc-veil .cc-grp { position: static; max-width: 100%; }
.cc-pl:focus-visible { outline: 2px solid #2EE6D6; outline-offset: -2px; }
.cc-cap { margin: 0; padding: 10px 12px 2px; font-size: 13.5px; line-height: 1.45; }
.cc-cap b { margin-right: 2px; }
.cc-cap .cc-desc { display: block; margin-top: 4px; font-size: 12.5px; color: var(--muted); }
.cc-id .cc-hl { display: block; min-width: 0; } .cc-id .cc-hl b { display: flex; overflow: hidden; white-space: nowrap; } .cc-id small { display: block; }
/* sync395 · Tarjetas más compactas (pedido de Alejandro: «están muy grandes»): más columnas, foto 4:3, textos más chicos */
.cr-cards { gap: 12px; }
@media (min-width: 560px) { .cr-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 900px) { .cr-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .cr-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } .cr-grid.with .cr-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1600px) { .cr-cards { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.cc-photo { aspect-ratio: 4 / 3; }
.cc-photo .cc-big { font-size: clamp(36px, 5vw, 64px); }
.cc-veil { padding: 28px 10px 8px; gap: 4px; }
.cc-veil .cc-core { font-size: 15px; }
.cc-cap { padding: 8px 10px 0; font-size: 12.5px; }
.cc-cap .cc-desc { font-size: 11.5px; }
.cc-avl { flex-basis: 32px; }
/* sync396 · 創 Social con creadores desde el brief: datos en la ficha, recomendación en el plan */
.soc-brief { margin-top: 16px; padding: 14px; border: 1px solid var(--line, rgba(255,255,255,.12)); border-radius: 14px; background: rgba(139, 92, 246, .06); }
.soc-brief h3, .soc-plan h3 { margin: 0 0 8px; font-size: 16px; } .soc-brief h3 small, .soc-plan h3 small { font-weight: 400; font-size: 12px; }
.soc-bf { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; } .soc-bf .grow { grid-column: span 2; }
.soc-plan { margin-top: 16px; padding: 14px; border: 1px solid var(--line, rgba(255,255,255,.12)); border-radius: 14px; }
.soc-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); margin: 10px 0; }
.soc-card { border: 1px solid var(--line, rgba(255,255,255,.12)); border-radius: 12px; padding: 12px; display: flex; flex-direction: column; gap: 6px; background: var(--card, rgba(255,255,255,.02)); }
.soc-card p { margin: 0; } .soc-card header { display: flex; gap: 10px; align-items: center; } .soc-card header div { flex: 1; min-width: 0; } .soc-card header b, .soc-card header small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .soc-card header small { color: var(--muted); font-size: 12px; }
.soc-av { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; flex: 0 0 42px; } .soc-ini { display: grid; place-items: center; background: linear-gradient(135deg, #FF2E4D, #8B5CF6); color: #fff; font-weight: 700; font-size: 13px; }
.soc-score { font: 800 22px/1 'Outfit', system-ui, sans-serif; color: #2EE6D6; min-width: 40px; text-align: right; }
.soc-parts { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 10px; } .soc-parts span { display: block; } .soc-parts i { display: block; height: 4px; border-radius: 4px; background: linear-gradient(90deg, #2EE6D6 var(--w), rgba(255,255,255,.1) var(--w)); } .soc-parts small { font-size: 11px; color: var(--muted); }
.soc-card .acts { display: flex; gap: 6px; margin-top: auto; } .soc-card .acts select { flex: 1; min-width: 0; }
.cc-lock { font-size: 13px; margin-right: 4px; cursor: help; }
@media (max-width: 600px) { .soc-bf .grow { grid-column: auto; } }
/* sync397 · UX de Creadores (Alejandro: tarjetas muy grandes, ficha pegada al hacer scroll, sin botón atrás)
   · La ficha ya no parte la grilla en dos: abre como panel lateral encima, con «← Volver», ✕ Cerrar, clic afuera o Esc.
   · Tarjetas de ancho fijo razonable (230–300 px) y foto de 170 px de alto: no se estiran ni pixelan. */
.cr-grid.with { grid-template-columns: 1fr !important; }
.cr-grid.with .cr-cards, .cr-cards { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)) !important; }
@media (min-width: 1500px) { .cr-cards { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) !important; } }
.cr-cards .cc { max-width: 340px; }
.cc-photo { aspect-ratio: auto !important; height: 170px; }
.cc-veil .cc-core { font-size: 14px !important; }
.cc-avw { position: relative; width: 32px; height: 32px; flex: 0 0 32px; overflow: hidden; border-radius: 50%; }
.cr-back { position: fixed; inset: 0; background: rgba(5, 7, 12, .55); z-index: 80; }
.cr-ficha { position: fixed !important; top: 0; right: 0; bottom: 0; width: min(460px, 100vw); margin: 0 !important; border-radius: 16px 0 0 16px; overflow-y: auto; overscroll-behavior: contain; z-index: 81; box-shadow: -18px 0 40px rgba(0, 0, 0, .45); padding-top: 12px; }
.cr-fback { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 10px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--muted); font: 600 13px 'Outfit', system-ui, sans-serif; cursor: pointer; }
.cr-fback:hover, .cr-fback:focus-visible { color: #2EE6D6; border-color: #2EE6D6; }
.cr-fbtn { display: flex; gap: 6px; }
/* sync397 · tarjeta compacta: encabezado en una línea, audiencia en una línea si no hay datos, alertas plegadas */
.cc-id { min-width: 0; flex: 1 1 auto; } .cc-id small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cc-com p { margin: 0 0 4px; font-size: 12.5px; }
.cc-ald { margin-top: 6px; font-size: 12px; color: #F5B547; } .cc-ald.bad { color: #FF5A6E; }
.cc-ald summary { cursor: pointer; list-style: none; font-weight: 600; } .cc-ald summary::-webkit-details-marker { display: none; }
.cc-ald .cc-al { margin: 6px 0 0; }
.cc-avl { display: block; width: 32px; height: 32px; line-height: 0; align-self: center; }
.cc-avw .cc-av { width: 100% !important; height: 100% !important; font-size: 12px; }
.cc-avw { display: block !important; }

/* sync398 · 戻る Atrás siempre visible: vive en «Estás en» (también en Kaizen pantalla completa) y no se duplica arriba. «Sigue» pasa a secundario. */
.ru-bk { flex: none; display: inline-flex; align-items: center; gap: 6px; min-height: 34px; max-width: 220px; padding: 0 12px; border-radius: 10px; border: 1px solid rgba(46, 230, 214, .45); background: transparent; color: #E9E6DF; font: inherit; font-weight: 600; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ru-bk span { overflow: hidden; text-overflow: ellipsis; }
.ru-bk:hover, .ru-bk:focus-visible { background: rgba(46, 230, 214, .12); outline: none; }
.ru-bk[hidden] { display: none; }
body.ru-on .top .om-back { display: none !important; }
.ru-nx { opacity: .75; } .ru-nx b { color: inherit; font-weight: 500; }
.ru-go { margin-left: auto; background: transparent !important; border: 1px solid rgba(233, 230, 223, .25) !important; color: inherit !important; font-weight: 600 !important; }
html.om-light .ru-bk { color: #1a1f2b; border-color: #0E7C74; } html.om-light .ru-bk:hover { background: rgba(14, 124, 116, .08); }
html.om-light .ru-go { border-color: #d5d9e2 !important; }
@media (max-width: 760px) { .ru-bk { max-width: 46vw; } .ru-nx small { display: none; } }
/* sync398 · con una ficha lateral abierta, «← Atrás» queda por encima del velo para poder cerrarla desde ahí */
body:has(.cr-ficha) .main > .ru-bar, body:has(.cr-ficha) .main > .top { position: relative; z-index: 82; }

/* sync398 · Pantallas DOOH fuera de Puerto Rico: tarjetas de proveedores del país */
.ooh-pv { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; margin-top: 14px; }
.ooh-pvc { margin: 0 !important; display: flex; flex-direction: column; gap: 6px; }
.ooh-pvh { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.ooh-pvr { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
/* sync398 · Propuestas tarjetas/lista */
.pp-vsw { display: inline-flex; gap: 2px; padding: 3px; border-radius: 12px; border: 1px solid #262a38; background: #12151d; }
.pp-vsw button { border: 0; background: transparent; color: inherit; font: inherit; font-weight: 600; font-size: 13px; padding: 7px 14px; border-radius: 9px; cursor: pointer; opacity: .7; }
.pp-vsw button[aria-selected="true"] { background: rgba(46, 230, 214, .16); color: #2EE6D6; opacity: 1; }
.pp-vsw button:hover, .pp-vsw button:focus-visible { opacity: 1; outline: none; }
.pp-apnote { margin: 0 0 12px; }
.pp-card3 { display: flex; flex-direction: column; gap: 10px; }
.pp-card3 h3 a { color: inherit; text-decoration: none; } .pp-card3 h3 a:hover { text-decoration: underline; }
.pp-c3-pic { display: block; text-decoration: none; color: inherit; }
.pp-c3-jp { font-size: 30px; font-weight: 700; opacity: .55; }
.pp-c3-acts { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-top: auto; }
.pp-c3-acts .ap-go { flex: 1 1 auto; justify-content: center; }
.pp-card3.ap-focus, .ap-row.ap-focus { box-shadow: 0 0 0 2px #2EE6D6; }
.ap-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.ap-chip { font-size: 11px; font-weight: 600; padding: 3px 8px; border-radius: 999px; background: rgba(255, 170, 60, .14); color: #FFB547; border: 1px solid rgba(255, 170, 60, .35); white-space: nowrap; }
.ap-done { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: #2EE6D6; padding: 6px 10px; border-radius: 10px; background: rgba(46, 230, 214, .10); }
.ap-row.ap-isdone { opacity: .85; }
html.om-light .pp-vsw { background: #f3f5f8; border-color: #dfe3ea; } html.om-light .pp-vsw button[aria-selected="true"] { background: rgba(14, 124, 116, .12); color: #0E7C74; }
html.om-light .ap-chip { background: #fff4e5; color: #9a5b00; border-color: #f1c98b; } html.om-light .ap-done { color: #0E7C74; background: rgba(14, 124, 116, .08); }
@media (max-width: 760px) { .pp-vsw { width: 100%; } .pp-vsw button { flex: 1; } .pp-c3-acts > * { flex: 1 1 auto; text-align: center; } }
/* sync398 · Pauta rápida */
.pc-two { align-items: start; }
.pc-cat { margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.08); }
.pc-q { flex: 1 1 220px; max-width: 340px; }
.pc-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.pc-chip { display: inline-flex; align-items: center; gap: 6px; border: 1px solid rgba(255,255,255,.14); background: transparent; color: inherit; border-radius: 999px; padding: 4px 10px; font: inherit; font-size: 12px; cursor: pointer; }
.pc-chip i { width: 8px; height: 8px; border-radius: 50%; background: var(--fc, #2EE6D6); }
.pc-chip small { opacity: .65; } .pc-chip.on { border-color: #2EE6D6; background: rgba(46,230,214,.12); }
.pc-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; max-height: 420px; overflow-y: auto; padding-right: 2px; }
.pc-fc { text-align: left; display: flex; flex-direction: column; gap: 3px; min-height: 104px; border: 1px solid rgba(255,255,255,.1); border-top: 3px solid var(--fc); border-radius: 10px; background: rgba(255,255,255,.03); color: inherit; font: inherit; padding: 8px 10px; cursor: pointer; }
.pc-fc b { font-size: 13px; line-height: 1.25; } .pc-fc-f { font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; opacity: .7; }
.pc-fc-p { font-size: 12px; font-variant-numeric: tabular-nums; } .pc-fc-p small { opacity: .7; }
.pc-fc-a { margin-top: auto; font-size: 11.5px; font-weight: 700; color: #2EE6D6; }
.pc-fc.on { border-color: #2EE6D6; background: rgba(46,230,214,.1); } .pc-fc:hover { border-color: rgba(46,230,214,.6); }
.pc-calc { margin-top: 12px; border: 1px solid rgba(46,230,214,.35); border-radius: 12px; padding: 12px; }
.pc-calc-h { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; opacity: .85; margin-bottom: 8px; }
.pc-calc-i { display: grid; grid-template-columns: 2fr 1fr; gap: 8px; } .pc-calc-i .in { width: 100%; }
.pc-calc-r { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.pc-calc-r div { display: flex; flex-direction: column; } .pc-calc-r span { font-size: 11.5px; opacity: .7; } .pc-calc-r b { font-size: 16px; font-variant-numeric: tabular-nums; }
.pc-freq { margin-top: 12px; border-radius: 14px; padding: 16px; background: linear-gradient(135deg, rgba(46,230,214,.16), rgba(107,0,247,.14)); display: flex; flex-direction: column; gap: 2px; }
.pc-freq span { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; opacity: .8; } .pc-freq b { font-size: 44px; line-height: 1.05; font-variant-numeric: tabular-nums; } .pc-freq small { font-size: 12px; opacity: .75; }
.pc-sel { margin-top: 12px; } .pc-sel-h { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; opacity: .85; } .pc-sel-h small { opacity: .6; }
.pc-ul { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; max-height: 220px; overflow-y: auto; }
.pc-ul li { display: flex; align-items: center; gap: 8px; font-size: 13px; } .pc-ul b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.pc-dot { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.pc-acts { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.08); } .pc-acts .btn { flex: 1 1 160px; }
html.om-light .pc-cat, html.om-light .pc-acts { border-color: #e3e6ec; } html.om-light .pc-chip, html.om-light .pc-fc { border-color: #d5d9e2; background: #fff; }
html.om-light .pc-chip.on, html.om-light .pc-fc.on { border-color: #0E7C74; background: rgba(14,124,116,.08); } html.om-light .pc-fc-a { color: #0E7C74; } html.om-light .pc-calc { border-color: #0E7C74; }
html.om-light .pc-freq { background: linear-gradient(135deg, rgba(14,124,116,.10), rgba(107,0,247,.08)); }
@media (max-width: 900px) { .pc-two { grid-template-columns: 1fr; } .pc-cards { max-height: none; } .pc-calc-i { grid-template-columns: 1fr 1fr; } }
/* sync398 · Mapa táctico */
.mt-wrap { padding-bottom: 18px; }
.mt-grid { display: grid; grid-template-columns: minmax(280px, 520px) minmax(0, 1fr); gap: 18px; margin-top: 12px; align-items: stretch; }
.mt-wheel { align-self: start; }
.mt-side { position: relative; min-height: 320px; }
.mt-side-in { position: absolute; inset: 0; overflow-y: auto; overscroll-behavior: contain; padding-right: 4px; }
.mt-oh { display: flex; gap: 10px; align-items: flex-start; padding-bottom: 8px; border-bottom: 1px solid rgba(255,255,255,.08); margin-bottom: 8px; position: sticky; top: 0; background: inherit; z-index: 1; }
.mt-oh .rd-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--rc); margin-top: 5px; flex: none; }
.mt-ol { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.mt-opt { display: flex; gap: 10px; text-align: left; border: 1px solid rgba(255,255,255,.12); border-left: 3px solid var(--rc); border-radius: 12px; background: rgba(255,255,255,.03); color: inherit; font: inherit; padding: 10px; cursor: pointer; }
.mt-opt:hover { border-color: var(--rc); } .mt-opt.on { background: color-mix(in srgb, var(--rc) 16%, transparent); border-color: var(--rc); }
.mt-ck { flex: none; width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid var(--rc); display: grid; place-items: center; font-weight: 700; color: var(--rc); }
.mt-opt.on .mt-ck { background: var(--rc); color: #0B0D12; }
.mt-ob { display: flex; flex-direction: column; gap: 3px; min-width: 0; } .mt-ob b { font-size: 13.5px; line-height: 1.25; } .mt-ob .rd-plat { align-self: flex-start; }
.mt-tag { align-self: flex-start; font-size: 10.5px; font-weight: 700; border-radius: 6px; padding: 2px 6px; background: rgba(255,159,67,.15); color: #FFB870; }
.mt-empty .rd-caps { margin-top: 8px; }
.mt-plan { margin-top: 12px; } .mt-t td { vertical-align: top; } .mt-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; }
html.om-light .mt-opt { border-color: #d5d9e2; background: #fff; } html.om-light .mt-opt.on { background: color-mix(in srgb, var(--rc) 12%, #fff); }
html.om-light .mt-oh { border-color: #e3e6ec; } html.om-light .mt-tag { background: rgba(232,89,12,.1); color: #B4470A; }
@media (max-width: 900px) { .mt-grid { grid-template-columns: 1fr; } .mt-side { min-height: 0; } .mt-side-in { position: static; overflow: visible; } .mt-wheel { max-width: 420px; margin: 0 auto; width: 100%; } }
/* sync399 · Creadores op */
.cro { display: grid; grid-template-columns: minmax(260px, 340px) 1fr; gap: 18px; align-items: start; }
.cro-side { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 12px; }
.cro-exp { margin: 0 !important; } .cro-exp ul, .cro-exp ol { margin: 8px 0 0; padding-left: 18px; display: grid; gap: 6px; font-size: 13.5px; line-height: 1.45; }
.cro-main { min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.cro-main table { display: block; max-width: 100%; overflow-x: auto; }
.cro-pais { margin: 4px 0 6px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; opacity: .75; }
.cro-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.cro-cp { text-align: left; display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border-radius: 12px; border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.03); color: inherit; font: inherit; cursor: pointer; }
.cro-cp.sel { border-color: #2EE6D6; box-shadow: 0 0 0 1px #2EE6D6 inset; } .cro-cp:hover { border-color: rgba(46,230,214,.5); }
.cro-cph { display: flex; gap: 8px; align-items: flex-start; justify-content: space-between; }
.cro-bar { height: 5px; border-radius: 4px; background: rgba(255,255,255,.08); overflow: hidden; margin-top: 4px; } .cro-bar i { display: block; height: 100%; background: #2EE6D6; }
.cro-new { align-self: flex-start; margin-top: 10px; }
html.om-light .cro-cp { border-color: #e3e6ec; background: #fff; } html.om-light .cro-bar { background: #eef0f4; } html.om-light .cro-cp.sel { border-color: #0E7C74; box-shadow: 0 0 0 1px #0E7C74 inset; } html.om-light .cro-bar i { background: #0E7C74; }
@media (max-width: 900px) { .cro { grid-template-columns: 1fr; } .cro-side { position: static; } }
/* sync399 · Listas */
.cm-hero { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(0, 1.4fr); gap: 22px; align-items: start; }
.cm-hero h3 { margin: 0 0 10px; }
.cm-bl { margin: 0; padding-left: 18px; display: grid; gap: 8px; font-size: 13.5px; line-height: 1.45; }
.cm-req { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; } .cm-req .chip { cursor: help; }
.cm-r { min-width: 0; }
@media (max-width: 900px) { .cm-hero { grid-template-columns: 1fr; } }
/* sync399 · Tienda: asistente paso a paso (5 pasos, uno a la vez) y «¿Cómo funciona?» en la cabecera */
.wz5-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-bottom: 16px; }
.wz5-st { display: flex; gap: 8px; align-items: flex-start; text-align: left; font: inherit; color: inherit; background: #0E1117; border: 1px solid #1F2430; border-radius: 12px; padding: 10px; cursor: pointer; opacity: .7; }
.wz5-st i { font-style: normal; flex: none; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; border: 1px solid #2EE6D6; color: #2EE6D6; font-weight: 700; font-size: 12px; }
.wz5-st b { display: block; font-size: 13px; } .wz5-st small { display: block; font-size: 11.5px; opacity: .75; }
.wz5-st.done { opacity: .9; } .wz5-st.done i { background: rgba(46,230,214,.15); }
.wz5-st.now { opacity: 1; border-color: #2EE6D6; background: rgba(46,230,214,.08); } .wz5-st.now i { background: #2EE6D6; color: #0B0D12; }
.wz5-why { border: 1px solid #1d5f5a; background: rgba(46,230,214,.06); border-radius: 12px; padding: 12px 16px; margin: 10px 0 14px; }
.wz5-why ul, .wz5-ul { margin: 6px 0 0; padding-left: 18px; } .wz5-why li, .wz5-ul li { margin: 3px 0; }
.wz5-h4 { margin: 14px 0 8px; font-size: 14px; }
.wz5-cal { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 12px 0; } .wz5-cal span { border: 1px solid #1F2430; border-radius: 10px; padding: 8px 10px; font-size: 12.5px; } .wz5-cal b { display: block; font-size: 13px; }
.wz5-tiers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 10px 0 14px; }
.wz5-tier { border: 1px solid #1F2430; border-radius: 12px; padding: 12px; opacity: .65; } .wz5-tier p { margin: 8px 0 0; font-size: 13px; } .wz5-tier em { display: block; margin-top: 8px; font-size: 12px; color: #2EE6D6; font-style: normal; font-weight: 600; }
.wz5-tier.on { opacity: 1; border-color: #2EE6D6; background: rgba(46,230,214,.06); }
.wz5-warn { color: #FF9F43; } .wz5-acts { display: flex; gap: 8px; align-items: center; margin-top: 16px; }
.tv-how { margin-bottom: 14px; } .tv-how-h { display: flex; justify-content: space-between; align-items: center; gap: 10px; } .tv-how ul { margin: 6px 0 0; padding-left: 18px; } .tv-how li { margin: 3px 0; font-size: 13.5px; }
html.om-light .wz5-st, html.om-light .wz5-cal span, html.om-light .wz5-tier { background: #fff; border-color: #E3E6EC; } html.om-light .wz5-st.now, html.om-light .wz5-tier.on { border-color: #0E7C74; background: rgba(14,124,116,.06); } html.om-light .wz5-st i { border-color: #0E7C74; color: #0E7C74; } html.om-light .wz5-st.now i { background: #0E7C74; color: #fff; } html.om-light .wz5-why { border-color: #bfe3df; background: rgba(14,124,116,.05); } html.om-light .wz5-tier em { color: #0E7C74; }
@media (max-width: 900px) { .wz5-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); } .wz5-st small, .wz5-st b span[lang] { display: none; } .wz5-st { padding: 8px 6px; flex-direction: column; align-items: center; text-align: center; } .wz5-st b { font-size: 11px; } .wz5-tiers, .wz5-cal { grid-template-columns: 1fr; } }
/* sync399 · Marcas: nota legal al pie de Espejo de plataforma y Plataformas */
.om-marcas { display: flex; gap: 10px; align-items: flex-start; margin: 18px 0 8px; padding: 12px 14px; border-top: 1px solid #1F2430; color: #9AA3AE; }
.om-marcas span { flex: none; font-size: 12px; font-weight: 700; color: #2EE6D6; } .om-marcas p { margin: 0; font-size: 11.5px; line-height: 1.5; }
html.om-light .om-marcas { border-top-color: #E3E6EC; color: #5b6472; } html.om-light .om-marcas span { color: #0E7C74; }
/* sync399 · Optimizar · 今日 Hoy (cifras del mes, piden acción, ritmo diario) y 顧客 Clientes (auditoría, cobertura y optimizaciones por cliente) */
.hoy-nav { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 18px; position: sticky; top: 0; z-index: 4; padding: 8px 0; background: var(--bg, #0B0D12); }
.hoy-nav a[data-hoys] { padding: 7px 14px; border-radius: 999px; border: 1px solid rgba(46, 230, 214, .35); color: inherit; text-decoration: none; font-weight: 600; font-size: 13px; }
.hoy-nav a[data-hoys]:hover, .hoy-nav a[data-hoys]:focus-visible { background: rgba(46, 230, 214, .12); outline: none; }
.hoy-nav a[data-hoys] span, .hoy-k span, .cl-mh h2 span, .cl-tk span { color: #2EE6D6; }
.hoy-sec { scroll-margin-top: 70px; margin-bottom: 28px; }
.hoy-k { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; opacity: .85; margin: 6px 0 12px; }
.hoy .kzf-h, .hoy .kzf-nav { display: none !important; }
.hoy .kzf { padding: 0 !important; min-height: 0 !important; background: none !important; }
.hoy .sg-head a.btn[href="#/resumen"] { display: none; }
.cl-tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 16px; }
.cl-tk { font-size: 14px; opacity: .85; }
.cl-more { margin-top: 22px; }
.cl-mh { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.cl-mh h2 { margin: 0; font-size: 16px; }
.cl-plats { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 14px; }
.cl-plats a.chip { text-decoration: none; }
html.om-light .hoy-nav { background: #fff; } html.om-light .hoy-nav a[data-hoys] span, html.om-light .hoy-k span, html.om-light .cl-mh h2 span, html.om-light .cl-tk span { color: #0E7C74; }
@media (max-width: 760px) { .hoy-nav { gap: 6px; } .hoy-nav a[data-hoys] { padding: 6px 10px; font-size: 12px; } .hoy-ger { width: 100%; justify-content: center; } .cl-mh .tabs { width: 100%; overflow-x: auto; } }
/* sync399 · Preguntas */
.pq-wrap { display: grid; grid-template-columns: minmax(240px, 300px) minmax(0, 1fr); gap: 18px; align-items: start; }
.pq-l { display: flex; flex-direction: column; gap: 12px; position: sticky; top: 12px; }
.pq-why { margin: 0 !important; padding: 16px 18px !important; }
.pq-why h3 { margin: 0 0 8px; font-size: 15px; } .pq-why h3 span { color: #2EE6D6; margin-right: 4px; }
.pq-why ul { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; font-size: 13px; line-height: 1.45; }
.pq-r { min-width: 0; }
.pq-bar { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; } .pq-bar select { max-width: 320px; }
.pq-sec { margin: 22px 0 8px; font-size: 15px; display: flex; gap: 8px; align-items: baseline; } .pq-sec > span { color: #2EE6D6; }
.pq-legend { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; margin-bottom: 10px; }
.pq-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; flex: none; background: #2EE6D6; }
.pq-dot.pq-mid { background: #9BE15D; } .pq-dot.pq-warn { background: #F5B942; } .pq-dot.pq-bad { background: #FF4D6D; }
.pq-h .pq-dot { margin-right: 2px; }
.pq-ins { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.pq-insc { border: 1px solid rgba(255, 255, 255, .1); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 4px; }
.pq-insh { display: flex; gap: 8px; align-items: baseline; } .pq-insh b { font-size: 22px; color: #2EE6D6; } .pq-insh span { font-weight: 600; font-size: 13px; }
.pq-act { color: inherit; opacity: .9; }
.pq-done { display: flex; flex-direction: column; gap: 8px; }
.pq-dn { border: 1px solid rgba(255, 255, 255, .08); border-radius: 10px; padding: 10px 14px; }
.pq-dn summary { cursor: pointer; display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; list-style: none; } .pq-dn summary::-webkit-details-marker { display: none; }
.pq-dm { margin-left: auto; white-space: nowrap; }
html.om-light .pq-insc, html.om-light .pq-dn { border-color: #E4E6EA; } html.om-light .pq-why h3 span, html.om-light .pq-sec > span, html.om-light .pq-insh b { color: #0E7C74; }
@media (max-width: 900px) { .pq-wrap { grid-template-columns: 1fr; } .pq-l { position: static; } .pq-dm { margin-left: 0; } }
/* sync399 · Cierres */
.hc-intro { margin-bottom: 16px; } .hc-ul { margin: 6px 0 0; padding-left: 18px; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 6px 22px; font-size: 13px; line-height: 1.45; }
.hc-wrap { display: grid; grid-template-columns: minmax(230px, 290px) minmax(0, 1fr); gap: 18px; align-items: start; }
.hc-l { display: flex; flex-direction: column; gap: 8px; position: sticky; top: 12px; }
.hc-b { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .08); text-decoration: none !important; color: inherit; }
.hc-b.on { border-color: #2EE6D6; background: rgba(46, 230, 214, .08); } .hc-b:hover { border-color: rgba(46, 230, 214, .5); }
.hc-b b { display: block; font-size: 13.5px; } .hc-b small { font-size: 12px; } .hc-b .grow { min-width: 0; }
.hc-tag { flex: none; font-size: 11px; font-weight: 700; border-radius: 6px; padding: 2px 7px; background: rgba(255, 255, 255, .08); white-space: nowrap; }
.hc-tag.hc-full { background: rgba(46, 230, 214, .16); color: #2EE6D6; }
.hc-r { min-width: 0; display: flex; flex-direction: column; gap: 14px; } .hc-r > .card { margin: 0 !important; }
.hc-cover h2 { margin: 0; font-size: 22px; text-transform: none; letter-spacing: 0; } .hc-p2p { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; opacity: .7; } .hc-p2p img { height: 22px; }
.hc-bigs { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.hc-big { border: 1px solid rgba(255, 255, 255, .1); border-radius: 14px; padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; }
.hc-big span { font-size: 12px; opacity: .75; } .hc-big b { font-size: 26px; line-height: 1.1; } .hc-big small { font-size: 12px; opacity: .7; }
.hc-sec h3 { margin: 0 0 10px; font-size: 15px; } .hc-sec h3 span { color: #2EE6D6; margin-right: 4px; }
.hc-cmp { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; } .hc-cmp > div { display: flex; flex-direction: column; gap: 3px; } .hc-cmp span { font-size: 12px; opacity: .75; } .hc-cmp b { font-size: 18px; } .hc-cmp small { font-size: 12px; opacity: .7; }
.hc-row { display: flex; align-items: center; gap: 14px; padding: 10px 0; border-top: 1px solid rgba(255, 255, 255, .07); flex-wrap: wrap; } .hc-row:first-of-type { border-top: 0; } .hc-row .grow { min-width: 200px; }
.hc-kpi, .hc-inv { display: flex; flex-direction: column; align-items: flex-end; min-width: 120px; } .hc-kpi b, .hc-inv b { font-size: 16px; } .hc-kpi small, .hc-inv small { font-size: 11.5px; opacity: .7; }
.hc-barr { display: block; width: 120px; height: 5px; border-radius: 3px; background: rgba(255, 255, 255, .1); margin-top: 4px; overflow: hidden; } .hc-barr > i { display: block; height: 100%; background: #2EE6D6; }
.hc-learn { padding: 8px 0; border-top: 1px solid rgba(255, 255, 255, .07); } .hc-learn:first-of-type { border-top: 0; } .hc-learn p { margin: 4px 0 0; line-height: 1.5; }
html.om-light .hc-b, html.om-light .hc-big { border-color: #E4E6EA; } html.om-light .hc-b.on { border-color: #0E7C74; background: rgba(14, 124, 116, .06); } html.om-light .hc-tag.hc-full, html.om-light .hc-sec h3 span { color: #0E7C74; } html.om-light .hc-row, html.om-light .hc-learn { border-color: #E4E6EA; }
@media (max-width: 900px) { .hc-wrap { grid-template-columns: 1fr; } .hc-l { position: static; } .hc-kpi, .hc-inv { align-items: flex-start; } }
@media print { body.hc-print .side, body.hc-print .top, body.hc-print .strip, body.hc-print .ru-bar, body.hc-print .m-bar, body.hc-print .hc-l, body.hc-print .hc-intro, body.hc-print .hc-pdf, body.hc-print #omchat, body.hc-print .cy-fab, body.hc-print #toasts { display: none !important; }
  body.hc-print .shell { display: block; } body.hc-print .hc-wrap { display: block; } body.hc-print .hc-r > .card, body.hc-print .hc-big { break-inside: avoid; } }
/* sync399 · Explica · 説明 videos explicativos (animación propia, escenario oscuro como un video en ambos temas) */
.overlay.ex-ov { justify-content: center; align-items: center; background: rgba(5, 7, 12, .86); padding: 16px; z-index: 90; }
.ex-box { width: min(980px, 100%); display: flex; flex-direction: column; gap: 10px; }
.ex-stage { position: relative; aspect-ratio: 16 / 9; border-radius: 18px; overflow: hidden; background: radial-gradient(120% 90% at 50% 0%, #121a2b 0%, #0b0d12 60%); border: 1px solid rgba(46, 230, 214, .28); color: #E9E6DF; }
.ex-scene { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 4% 6%; animation: exIn .5s ease both; }
.ex-c { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; text-align: center; width: 100%; max-width: 820px; position: relative; }
.ex-logo { width: clamp(54px, 8vw, 92px); height: auto; animation: exPop .7s ease both; }
.ex-brand { font-family: inherit; letter-spacing: .5em; font-size: clamp(18px, 2.6vw, 28px); font-weight: 600; padding-left: .5em; }
.ex-k { font-size: clamp(12px, 1.4vw, 15px); letter-spacing: .14em; text-transform: uppercase; color: #2EE6D6; font-weight: 700; }
.ex-k span[lang] { color: #ff4d6d; letter-spacing: 0; }
.ex-s { font-size: clamp(13px, 1.5vw, 16px); opacity: .75; }
.ex-t { font-size: clamp(19px, 3.1vw, 34px); line-height: 1.25; font-weight: 500; max-width: 780px; }
.ex-t b { color: #2EE6D6; font-weight: 700; }
.ex-seal { font-size: clamp(18px, 2.4vw, 26px); color: rgba(255, 77, 109, .7); font-weight: 700; line-height: 1; animation: exPop .5s ease both; }
.ex-note { font-size: 11px; opacity: .5; letter-spacing: .06em; }
.ex-ico { font-size: clamp(34px, 5vw, 56px); display: flex; gap: 10px; align-items: baseline; }
.ex-ico b { color: #2EE6D6; } .ex-ico span { color: #ff4d6d; font-weight: 700; }
.ex-map { display: grid; grid-template-columns: repeat(8, clamp(26px, 4.6vw, 54px)); gap: 8px; }
.ex-blk { aspect-ratio: 1; border-radius: 8px; background: rgba(233, 230, 223, .14); }
.ex-blk.on { background: #2EE6D6; box-shadow: 0 0 18px rgba(46, 230, 214, .45); }
.ex-leg { display: flex; gap: 18px; flex-wrap: wrap; justify-content: center; font-size: clamp(12px, 1.4vw, 14px); opacity: .9; }
.ex-leg i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; background: rgba(233, 230, 223, .3); }
.ex-leg i.on { background: #2EE6D6; } .ex-leg i.b { background: #8A7CFF; }
.ex-two { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; width: min(560px, 100%); }
.ex-two > div { border: 1px solid rgba(233, 230, 223, .2); border-radius: 12px; padding: 12px; font-weight: 600; display: flex; flex-direction: column; gap: 4px; }
.ex-two > div.on { border-color: #2EE6D6; color: #2EE6D6; } .ex-two > div.dim { opacity: .5; }
.ex-two.big > div { padding: 20px 12px; font-size: clamp(14px, 1.8vw, 18px); } .ex-two.big b { font-size: clamp(30px, 5vw, 54px); line-height: 1; }
.ex-bar { width: min(620px, 100%); display: grid; grid-template-columns: 140px 1fr; gap: 12px; align-items: center; text-align: left; font-size: clamp(12px, 1.5vw, 15px); }
.ex-bar > div { height: 22px; border-radius: 11px; background: rgba(233, 230, 223, .08); overflow: hidden; }
.ex-bar i { display: block; height: 100%; border-radius: 11px; background: rgba(233, 230, 223, .35); transform-origin: left; }
.ex-bar i.on { background: linear-gradient(90deg, #2EE6D6, #00BAFF); }
.ex-diff { padding: 6px 14px; border-radius: 999px; background: #ff4d6d; color: #fff; font-weight: 700; font-size: clamp(13px, 1.6vw, 16px); }
.ex-medals { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.ex-medals span { border-radius: 12px; padding: 10px 14px; font-size: clamp(12px, 1.4vw, 15px); border: 1px solid; display: flex; flex-direction: column; gap: 2px; min-width: 150px; }
.ex-medals .b { border-color: #c98a5a; color: #e2a878; } .ex-medals .p { border-color: #b9c2cc; color: #d6dde4; } .ex-medals .o { border-color: #e9c46a; color: #f2d184; }
.ex-tv { width: min(300px, 70%); aspect-ratio: 16 / 10; border: 3px solid rgba(233, 230, 223, .7); border-radius: 12px; position: relative; display: flex; align-items: center; justify-content: center; }
.ex-tvs { font-weight: 800; letter-spacing: .3em; color: #2EE6D6; }
.ex-tv i { position: absolute; left: 8%; right: 8%; bottom: 10%; height: 4px; background: #ff4d6d; border-radius: 2px; transform-origin: left; }
.ex-phones { display: flex; gap: clamp(8px, 2vw, 22px); }
.ex-ph { width: clamp(26px, 4vw, 42px); aspect-ratio: 9 / 17; border-radius: 8px; border: 2px solid #2EE6D6; background: rgba(46, 230, 214, .18); box-shadow: 0 0 16px rgba(46, 230, 214, .4); }
.ex-line { width: min(620px, 100%); height: 46px; border-radius: 10px; background: rgba(233, 230, 223, .08); position: relative; }
.ex-tick { position: absolute; left: 20%; top: -10px; bottom: -10px; width: 46px; display: flex; align-items: center; justify-content: center; border-radius: 8px; background: #ff4d6d; color: #fff; font-weight: 800; }
.ex-win { position: absolute; left: calc(20% + 52px); top: 6px; bottom: 6px; width: 46%; border-radius: 8px; background: linear-gradient(90deg, #2EE6D6, #00BAFF); color: #0b0d12; font-weight: 700; display: flex; align-items: center; justify-content: center; transform-origin: left; font-size: 13px; }
.ex-chart { width: min(600px, 100%); height: auto; }
.ex-chart path { fill: none; stroke: #2EE6D6; stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 600; stroke-dashoffset: 0; animation: exDraw 1.8s ease both; }
.ex-chart path.b { stroke: #8A7CFF; }
.ex-chart .ex-vl { stroke: #ff4d6d; stroke-dasharray: 4 4; stroke-width: 1.5; }
.ex-chart .ex-gap { stroke: #ff4d6d; stroke-width: 3; }
.ex-funnel { display: flex; flex-direction: column; gap: 10px; width: min(560px, 100%); }
.ex-funnel > div { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; border-radius: 12px; background: rgba(233, 230, 223, .07); border: 1px solid rgba(233, 230, 223, .14); font-weight: 600; font-size: clamp(14px, 1.7vw, 18px); }
.ex-funnel > div:nth-child(2) { margin: 0 6%; } .ex-funnel > div:nth-child(3) { margin: 0 12%; }
.ex-cr { font-style: normal; font-size: 12px; color: #0b0d12; background: #2EE6D6; padding: 3px 9px; border-radius: 999px; }
.ex-chips, .ex-names { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; max-width: 640px; }
.ex-chips span, .ex-names span { padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(46, 230, 214, .5); font-weight: 600; font-size: clamp(13px, 1.5vw, 16px); }
.ex-names span { border-color: rgba(233, 230, 223, .35); }
.ex-flow { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; justify-content: center; }
.ex-post { border: 1px solid rgba(233, 230, 223, .3); border-radius: 14px; padding: 14px 18px; display: flex; flex-direction: column; gap: 4px; min-width: 180px; }
.ex-post.on { border-color: #2EE6D6; color: #2EE6D6; } .ex-post small { opacity: .7; color: #E9E6DF; }
.ex-arr { font-size: 28px; color: #ff4d6d; }
.ex-steps { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: center; }
.ex-steps span { padding: 8px 14px; border-radius: 10px; background: rgba(46, 230, 214, .14); border: 1px solid rgba(46, 230, 214, .4); font-weight: 600; font-size: clamp(12px, 1.5vw, 15px); }
.ex-steps i { font-style: normal; color: #ff4d6d; }
.ex-hub { position: relative; width: min(560px, 100%); display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px clamp(110px, 18vw, 170px); padding: 10px 0; }
.ex-hub > span { padding: 8px; border-radius: 10px; border: 1px solid rgba(233, 230, 223, .3); font-weight: 600; font-size: clamp(12px, 1.4vw, 14px); }
.ex-hubc { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: clamp(54px, 7vw, 76px); height: clamp(54px, 7vw, 76px); border-radius: 50%; background: #0b0d12; border: 2px solid #2EE6D6; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 30px rgba(46, 230, 214, .5); }
.ex-hubc .ex-logo { width: 62%; animation: none; }
.ex-list { max-width: 900px; } .ex-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; text-align: left; width: 100%; }
.ex-grp { border: 1px solid rgba(233, 230, 223, .18); border-radius: 12px; padding: 10px 12px; animation: exUp .5s ease both; } .ex-grp b { color: #2EE6D6; font-size: 13px; } .ex-grp p { margin: 4px 0 0; font-size: 12.5px; line-height: 1.45; opacity: .9; }
.ex-bar2 { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; color: #E9E6DF; }
.ex-prog { flex: 1 1 200px; height: 5px; border-radius: 3px; background: rgba(233, 230, 223, .15); overflow: hidden; } .ex-prog i { display: block; height: 100%; width: 0; background: #2EE6D6; transition: width .15s linear; }
.ex-dots { display: flex; gap: 4px; } .ex-dot { width: 7px; height: 7px; border-radius: 50%; background: rgba(233, 230, 223, .25); } .ex-dot.on { background: #2EE6D6; }
.ex-time { font-size: 12px; opacity: .6; }
.ex-bar2 .btn { color: #E9E6DF; border-color: rgba(233, 230, 223, .3); background: transparent; } .ex-bar2 .btn[hidden] { display: none; }
.ex-paused .ex-stage * { animation-play-state: paused !important; }
.ex-full { padding: 0; background: #0b0d12; } .ex-full .ex-box { width: 100vw; } .ex-full .ex-stage { border-radius: 0; border: 0; height: calc(100vh - 0px); aspect-ratio: auto; } .ex-full .ex-bar2 { display: none; }
.ex-how { display: inline-flex; margin-top: 6px; min-height: 28px; padding: 0 10px; font-size: 12.5px; white-space: nowrap; border-color: rgba(46, 230, 214, .45) !important; color: #2EE6D6 !important; }
html.om-light .ex-how { color: #0E7C74 !important; border-color: #0E7C74 !important; }
.ex-up { animation: exUp .6s ease both; } .ex-pop { animation: exPop .55s cubic-bezier(.2, 1.4, .4, 1) both; } .ex-grow { animation: exGrow 1.2s ease both; }
@keyframes exIn { from { opacity: 0; transform: scale(.985); } }
@keyframes exUp { from { opacity: 0; transform: translateY(14px); } }
@keyframes exPop { from { opacity: 0; transform: scale(.6); } }
@keyframes exGrow { from { transform: scaleX(0); } }
@keyframes exDraw { from { stroke-dashoffset: 600; } }
@media (max-width: 760px) {
  .ex-stage { aspect-ratio: 3 / 4; } .ex-map { grid-template-columns: repeat(4, 46px); } .ex-bar { grid-template-columns: 96px 1fr; }
  .ex-grid { grid-template-columns: 1fr; } .ex-grp p { font-size: 11.5px; } .ex-hub { gap: 10px 96px; } .ex-medals span { min-width: 0; flex: 1 1 100%; }
  .ex-list .ex-grid { max-height: 62vh; overflow: auto; }
}
/* sync400 · Portal creadores */
.cpo-st { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 4px 0 8px; }
.cpo-acts { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 10px; }
.cpo-decl { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; margin: 6px 0 10px; background: color-mix(in srgb, currentColor 3%, transparent); }
.cpo-files { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
.cpo-top { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; }
.cpo-brand { display: flex; flex-direction: column; gap: 2px; min-width: 140px; }
.cpo-ctrs { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; margin-bottom: 12px; }
.cpo-ctr { border: 1px solid var(--line); border-left: 3px solid #8B5CF6; border-radius: 12px; padding: 10px 12px; background: color-mix(in srgb, #8B5CF6 6%, transparent); }
.cpo-ctr ul { margin: 6px 0; padding-left: 18px; font-size: 14px; } .cpo-ctr .acts { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; }
.cpo-ctrh { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.cpo-tbl td small { display: block; } .cpo-rowb { white-space: nowrap; } .cpo-rowb .btn + .btn { margin-left: 4px; }
.cpo-sl { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; margin: 8px 0; } .cpo-sl.off { opacity: .6; }
.cpo-sl > div { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; } .cpo-sl small { font-size: 12.5px; }
.cpo-sli { list-style: none; padding: 0; margin: 6px 0; display: flex; flex-direction: column; gap: 4px; font-size: 14px; }
.cpo-url { display: flex; gap: 6px; margin: 10px 0; } .cpo-url .in { flex: 1; min-width: 0; font-size: 13px; }
.cpo-pm, .cpo-hist, .cpo-sim, .cpo-share { width: min(720px, 100%); max-height: 90vh; overflow: auto; }
.cpo-fs { border: 1px solid var(--line); border-radius: 12px; padding: 8px 10px; margin: 8px 0; min-width: 0; } .cpo-dr > * { min-width: 0; } .cpo-link a.btn { text-decoration: none; } .cpo-fs legend { font-size: 13px; color: var(--muted); padding: 0 4px; }
.cpo-dr { display: grid; grid-template-columns: 1.1fr 1.2fr 64px 1.2fr 36px; gap: 6px; margin-bottom: 6px; align-items: center; }
.cpo-siml { list-style: none; padding: 0; margin: 8px 0; display: flex; flex-direction: column; gap: 8px; }
.cpo-siml li { display: flex; gap: 10px; justify-content: space-between; align-items: center; border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; } .cpo-siml p { margin: 4px 0 0; }
.cpo-terms { white-space: pre-wrap; font: inherit; font-size: 13px; padding: 10px; border-radius: 10px; background: color-mix(in srgb, currentColor 5%, transparent); max-height: 300px; overflow: auto; }
@media (max-width: 600px) {
  .cpo-dr { grid-template-columns: 1fr 1fr 36px; } .cpo-dr [name=dqty] { grid-column: 1; } .cpo-dr [name=ddue] { grid-column: 2; } .cpo-dr .btn { grid-column: 3; grid-row: 1; }
  .cpo-siml li { flex-direction: column; align-items: stretch; } .cpo-top { width: 100%; } .cpo-top .btn { flex: 1; }
}
body:has(.cr-ficha) .overlay { z-index: 95; } /* los diálogos abiertos desde la ficha (Editar, Agregar a campaña, Portal) van encima de la ficha */
/* 次 Tsugi · Siguiente paso de la Audiencia OMEGA (sync401) */
.ts-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin-top: 12px; }
.ts-card { display: flex; flex-direction: column; gap: 4px; text-align: left; padding: 14px; border-radius: 14px; border: 1px solid var(--line, #262a38); background: rgba(46, 230, 214, .03); color: inherit; font: inherit; cursor: pointer; min-height: 150px; transition: border-color .15s, transform .15s; }
button.ts-card:hover, button.ts-card:focus-visible { border-color: #2ee6d6; transform: translateY(-1px); }
.ts-card.on { border-color: rgba(46, 230, 214, .6); }
.ts-card.ts-cli { cursor: default; }
.ts-card:disabled { opacity: .6; cursor: wait; }
.ts-jp { font-size: 22px; color: #2ee6d6; line-height: 1; margin-bottom: 4px; }
.ts-card b { font-size: 15px; } .ts-card > span:not(.ts-jp) { font-size: 13px; color: #8a90a0; line-height: 1.4; }
.ts-card em { font-style: normal; font-weight: 600; font-size: 13px; color: #2ee6d6; margin-top: auto; padding-top: 8px; }
.ts-ok { font-size: 13px; font-weight: 600; padding: 6px 12px; border-radius: 999px; border: 1px solid rgba(46, 230, 214, .55); color: #2ee6d6; }
.ts-ok.cambios { border-color: rgba(255, 159, 67, .6); color: #ff9f43; }
.ts-tr { display: inline-block; margin: 2px 8px 2px 0; padding: 1px 8px; border-radius: 999px; border: 1px solid var(--line, #262a38); }
.ts-lk { display: inline-block; margin: 2px 10px 2px 0; }
.ts-brands { display: grid; gap: 8px; margin: 12px 0; }
.ts-brand { display: grid; gap: 2px; text-align: left; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--line, #262a38); background: transparent; color: inherit; font: inherit; cursor: pointer; }
.ts-brand:hover, .ts-brand:focus-visible, .ts-brand.on { border-color: #2ee6d6; } .ts-brand span { font-size: 13px; color: #8a90a0; }
html.om-light .ts-jp, html.om-light .ts-card em, html.om-light .ts-ok { color: #0e7c74; } html.om-light button.ts-card:hover, html.om-light .ts-brand:hover, html.om-light .ts-brand.on { border-color: #0e7c74; }
/* 22-oct-2026 · Generar el plan nunca queda mudo */
.es-faltan { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px; font-size: 11px; font-weight: 600; background: rgba(255, 159, 67, .18); color: #ff9f43; }
/* 22-oct-2026 · Alpha: cambios aplicados arriba, auditoría anterior plegada como historial */
.alfa-ok { border: 1px solid rgba(46, 230, 214, .55); border-radius: 12px; padding: 12px 14px; margin: 0 0 12px; background: rgba(46, 230, 214, .06); }
.alfa-ok > b { display: block; color: #2ee6d6; font-size: 15px; } .alfa-ok > span { display: block; font-size: 12px; color: #8a90a0; margin-top: 2px; }
.alfa-ok ul { list-style: none; padding: 0; margin: 8px 0 0; display: grid; gap: 4px; font-size: 13px; }
.alfa-ok .alfa-btn { margin-top: 8px; }
.alfa-hist { margin-top: 4px; } .alfa-hist > summary { cursor: pointer; font-size: 13px; color: #8a90a0; padding: 6px 0; } .alfa-hist[open] > summary { margin-bottom: 8px; }
html.om-light .alfa-ok > b { color: #0e7c74; } html.om-light .alfa-ok { border-color: rgba(14, 124, 116, .5); }

/* sync403 Red de creadores */
.rc-intro { margin: 6px 0 12px; }
.rc-st { margin-bottom: 14px; } .rc-st > summary { cursor: pointer; font-weight: 600; }
.rc-stl { list-style: none; padding: 0; margin: 10px 0 0; display: grid; gap: 10px; } .rc-stl > li { border-top: 1px solid var(--line, #262a38); padding-top: 10px; }
.rc-steps { margin: 6px 0 0; padding-left: 18px; color: #8a90a0; } .rc-steps code { font-size: 12px; word-break: break-all; }
.rc-look { margin-bottom: 14px; } .rc-lookf { display: flex; gap: 8px; flex-wrap: wrap; } .rc-lookf .in { flex: 1; min-width: 220px; }
.rc-prev { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; margin-top: 12px; }
.rc-pc { border: 1px solid var(--line, #262a38); border-radius: 14px; padding: 12px 14px; display: grid; gap: 8px; align-content: start; } .rc-pc.bad { border-color: rgba(255, 159, 67, .5); }
.rc-pch { display: flex; gap: 10px; align-items: center; } .rc-pch > div { flex: 1; display: grid; } .rc-pch small { font-size: 12px; }
.rc-av { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; flex: none; } .rc-avi { display: grid; place-items: center; background: rgba(46, 230, 214, .12); color: #2ee6d6; font-weight: 700; }
.rc-bio { margin: 0; color: #8a90a0; max-height: 4.4em; overflow: hidden; }
.rc-dl { display: grid; grid-template-columns: auto 1fr; gap: 3px 10px; margin: 0; font-size: 13px; } .rc-dl dt { color: #8a90a0; } .rc-dl dd { margin: 0; }
.rc-recent { display: flex; flex-wrap: wrap; gap: 4px 10px; margin: 0; } .rc-recent a { font-size: 12px; }
.rc-why > summary { cursor: pointer; font-size: 13px; color: #2ee6d6; }
.rc-wl { list-style: none; padding: 0; margin: 8px 0 0; display: grid; gap: 6px; font-size: 13px; }
.rc-flags { list-style: none; padding: 0; margin: 8px 0 0; color: #ff9f43; font-size: 13px; }
.rc-sc { display: inline-grid; place-items: center; min-width: 38px; height: 30px; padding: 0 6px; border-radius: 10px; font-weight: 700; border: 1px solid; font-size: 14px; }
.rc-sc4 { color: #2ee6d6; border-color: rgba(46, 230, 214, .6); background: rgba(46, 230, 214, .08); }
.rc-sc3 { color: #7fd8ff; border-color: rgba(0, 186, 255, .5); background: rgba(0, 186, 255, .07); }
.rc-sc2 { color: #ff9f43; border-color: rgba(255, 159, 67, .55); background: rgba(255, 159, 67, .07); }
.rc-sc1 { color: #ff8095; border-color: rgba(255, 46, 77, .5); background: rgba(255, 46, 77, .07); }
.rc-sc0 { color: #8a90a0; border-color: rgba(138, 144, 160, .4); }
.rc-filters { flex-wrap: wrap; } .rc-acts { align-items: center; gap: 8px; margin: 8px 0 4px; } .rc-note { margin: 0 0 10px; }
.rc-t td small { display: block; } .rc-det .cr-fbtn { display: flex; gap: 8px; align-items: center; }
.rc-spark { width: 100%; max-width: 320px; height: 44px; color: #2ee6d6; }
.rc-med { margin-bottom: 14px; } .rc-med td small { display: block; }
html.om-light .rc-sc4, html.om-light .rc-why > summary, html.om-light .rc-spark, html.om-light .rc-avi { color: #0e7c74; }
@media (max-width: 720px) { .rc-t th:nth-child(6), .rc-t td:nth-child(6), .rc-t th:nth-child(8), .rc-t td:nth-child(8) { display: none; } }
.rc .cr-grid > * { min-width: 0; } .rc .cr-list { overflow-x: auto; }
.rc-det h3 { overflow-wrap: anywhere; } .rc-det .cr-bar span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 720px) { .rc-det { position: fixed; inset: 0; z-index: 80; overflow: auto; border-radius: 0; margin: 0; padding-bottom: 90px; } }
/* 体験 Red de creadores en modo demo (apagada) */
.rc-demo { display: grid; gap: 4px; padding: 12px 14px; margin: 0 0 12px; border-radius: 12px; border: 1px dashed rgba(255, 159, 67, .6); background: rgba(255, 159, 67, .07); }
.rc-demo b { color: #ff9f43; letter-spacing: .04em; } .rc-demo span { font-size: 13px; } .rc-demo code { font-size: 12px; }
/* 地図 Mapa del proyecto · Tráfico a punto de venta (22-oct-2026) */
.tm { border: 1px solid var(--line, #262a38); border-radius: 14px; padding: 12px 14px; margin-bottom: 12px; }
.tm h5 small { font-weight: 400; margin-left: 6px; }
.tm-bar { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 10px; }
.tm-chk { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; padding: 4px 10px; border: 1px solid var(--line, #262a38); border-radius: 999px; cursor: pointer; }
.tm-k { width: 10px; height: 10px; border-radius: 3px; display: inline-block; } .tm-k.tiendas { background: #fff; border: 2px solid #2ee6d6; border-radius: 50%; } .tm-k.pantallas { background: #ff2d6f; } .tm-k.zonas { background: linear-gradient(90deg, rgba(46,230,214,.6) 50%, rgba(255,159,67,.6) 50%); } .tm-k.geo { border: 1.5px solid #2ee6d6; }
.tm-body { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 12px; } @media (max-width: 860px) { .tm-body { grid-template-columns: 1fr; } }
.tm-map svg { width: 100%; height: auto; max-height: 460px; background: rgba(255,255,255,.02); border-radius: 10px; }
.tm-base path { fill: rgba(138,144,160,.12); stroke: rgba(138,144,160,.45); stroke-width: .35; } .tm-base path.tm-e { fill: rgba(46,230,214,.28); } .tm-base path.tm-c { fill: rgba(255,159,67,.25); }
.tm-hex { fill: rgba(46,230,214,.12); stroke: #2ee6d6; stroke-width: .12; } .tm-scr { fill: #ff2d6f; opacity: .85; }
.tm-st { fill: #fff; stroke: #14161e; cursor: pointer; } .tm-st.e { fill: #2ee6d6; } .tm-st.c { fill: #ff9f43; } .tm-st.on { stroke: #fff; }
.tm-side { font-size: 13px; max-height: 460px; overflow: auto; } .tm-list { list-style: none; padding: 0; margin: 6px 0; display: grid; gap: 4px; } .tm-list li { display: grid; } .tm-list small { color: #8a90a0; }
.tm-card h4 { margin: 8px 0 2px; } .tm-tag { font-size: 12px; padding: 2px 8px; border-radius: 999px; } .tm-tag.e { color: #2ee6d6; border: 1px solid rgba(46,230,214,.5); } .tm-tag.c { color: #ff9f43; border: 1px solid rgba(255,159,67,.6); }
html.om-light .tm-st { stroke: #fff; } html.om-light .tm-base path.tm-e { fill: rgba(14,124,116,.25); }
/* sync404 Colombia · capas del mapa (peajes, sensores, aforos, INVÍAS, dealers, DOOH) */
.mco-bar { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; align-items: center; }
.mco-chk { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; padding: 4px 10px; border: 1px solid var(--line, #262a38); border-radius: 999px; cursor: pointer; }
.mco-chk.off { opacity: .55; } .mco-chk b { font-weight: 600; color: #8a90a0; } .mco-chk span[lang] { color: #2ee6d6; }
.mco-k { width: 10px; height: 10px; display: inline-block; border-radius: 50%; } .mco-k.peajes { background: #ff9f43; } .mco-k.sensores { background: #c9a7ff; border-radius: 2px; } .mco-k.aforos { background: #ffd166; } .mco-k.invias { background: #ff9f43; border: 2px solid #fff; } .mco-k.dealers { background: #2ee6d6; } .mco-k.dooh { background: #ff2d6f; border-radius: 2px; }
.mco-brands { display: inline-flex; flex-wrap: wrap; gap: 4px; margin-left: 4px; } .mco-b { font: inherit; font-size: 12px; padding: 3px 9px; border-radius: 999px; border: 1px solid var(--line, #262a38); background: transparent; color: inherit; cursor: pointer; } .mco-b.on { border-color: #2ee6d6; color: #2ee6d6; }
.mco-sens { fill: #c9a7ff; stroke: #0b0d12; stroke-width: .4; vector-effect: non-scaling-stroke; cursor: pointer; } .mco-afo { fill: #ffd166; fill-opacity: .8; stroke: #0b0d12; stroke-width: .4; vector-effect: non-scaling-stroke; cursor: pointer; } .mco-inv { fill: #ff9f43; fill-opacity: .5; stroke: #fff; stroke-width: .8; vector-effect: non-scaling-stroke; cursor: pointer; } .mco-dooh { fill: #ff2d6f; cursor: pointer; }
.mco-dm circle { fill: rgba(11, 13, 18, .82); stroke: #2ee6d6; stroke-width: 1.4; vector-effect: non-scaling-stroke; } .mco-dm text { fill: #ffffff; text-anchor: middle; font-weight: 700; } .mco-dm { cursor: pointer; } .mco-dl { fill: #2ee6d6; stroke: #0b0d12; stroke-width: .5; vector-effect: non-scaling-stroke; cursor: pointer; }
.co-toll { cursor: pointer; }
.mco-card { font-size: 13px; } .mco-card h4 { margin: 6px 0; } .mco-list { list-style: none; margin: 6px 0; padding: 0; display: grid; gap: 6px; max-height: 360px; overflow: auto; } .mco-list li { display: grid; gap: 1px; } .mco-list small { color: #8a90a0; }
.mco-dl2 { display: grid; grid-template-columns: 90px 1fr; gap: 4px 10px; margin: 6px 0; } .mco-dl2 dt { color: #8a90a0; } .mco-dl2 dd { margin: 0; }
.mco-st { list-style: none; padding: 0; margin: 6px 0 0; display: grid; gap: 8px; } .mco-st li { display: grid; gap: 2px; } .mco-st small { color: #8a90a0; } .mco-st .mco-how { color: #ff9f43; }
.mco-ok { color: #2ee6d6; font-size: 12px; } .mco-no { color: #ff9f43; font-size: 12px; }
.mco-stw { margin-top: 8px; } .mco-stw > summary { cursor: pointer; font-size: 13px; color: #8a90a0; }
html.om-light .mco-chk span[lang], html.om-light .mco-ok, html.om-light .mco-b.on, html.om-light .mco-dm text { color: #0e7c74; fill: #0e7c74; }
/* sync404 Colombia · 同等 Paridad por país */
.pd-leg { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.pd-chip { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12px; border: 1px solid; }
.pd-ok { color: #2ee6d6; border-color: rgba(46, 230, 214, .5); background: rgba(46, 230, 214, .10); } .pd-part { color: #ff9f43; border-color: rgba(255, 159, 67, .55); background: rgba(255, 159, 67, .08); } .pd-no { color: #8a90a0; border-color: rgba(138, 144, 160, .4); }
.pd-t { border-collapse: collapse; width: 100%; font-size: 13px; } .pd-t th { font-weight: 600; vertical-align: bottom; padding: 6px 4px; text-align: center; } .pd-t th:first-child { text-align: left; } .pd-t th small { display: block; font-size: 10.5px; font-weight: 400; color: #8a90a0; max-width: 84px; margin: 2px auto 0; }
.pd-t td { padding: 6px 4px; border-top: 1px solid var(--line, #262a38); white-space: nowrap; } .pd-t tr.on td { background: rgba(46, 230, 214, .05); }
.pd-c { text-align: center; font-size: 15px; border-radius: 6px; } td.pd-c.pd-ok, td.pd-c.pd-part, td.pd-c.pd-no { border: 0; border-top: 1px solid var(--line, #262a38); } td.pd-c.pd-no { background: transparent; }
.pd-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.pd-det { margin-bottom: 12px; } .pd-tw { overflow-x: auto; }
html.om-light .pd-ok { color: #0e7c74; border-color: rgba(14, 124, 116, .5); }
/* 看板 DOOH Colombia (orden P): filtros y pantallas exteriores en turquesa, interiores en rosa */
.mco-dooh.ext { fill: #2EE6D6; }
.mco-dooh-f { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 8px 0; padding: 8px 12px; border: 1px solid var(--line); border-radius: 12px; }
.mco-dooh-f b { color: var(--ink); font-size: 13px; } .mco-dooh-f label { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); }
.mco-dooh-f select { max-width: 220px; }

/* 道 PP · Navegación del portal (24-oct-2026) ----------------------------------------------------------------------------- */
/* Cliente · País · Mes juntos arriba; en computador van en línea con el resto de la barra */
.ctx { display: contents; }
.top #cli { min-width: 190px; max-width: 260px; }
#m-ctx, .m-tab, .m-mas { display: none; }
.nav-area-std[data-g="Finanzas"] .nav-seal { color: #FFB21A; border-color: rgba(255, 178, 26, .5); }
/* Listas desplegables con el diseño OMEGA (nunca la gris del sistema) */
html.om-dark select.in, html.om-dark .field select { appearance: none; -webkit-appearance: none; background-color: #0E1219; color: #E9E6DF; border: 1px solid #2C3046; border-radius: 10px; padding-right: 34px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%232EE6D6' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; cursor: pointer; }
html.om-dark select.in:hover, html.om-dark .field select:hover { border-color: rgba(46, 230, 214, .6); }
html.om-dark select.in:focus-visible, html.om-dark .field select:focus-visible { outline: 2px solid #2EE6D6; outline-offset: 1px; }
@supports (appearance: base-select) {
  html.om-dark select.in, html.om-dark .field select { appearance: base-select; background-image: none; }
  html.om-dark select.in::picker-icon, html.om-dark .field select::picker-icon { color: #2EE6D6; }
  html.om-dark select.in::picker(select), html.om-dark .field select::picker(select) { appearance: base-select; background: #0B0F14; color: #E9E6DF; border: 1px solid rgba(46, 230, 214, .45); border-radius: 12px; padding: 6px; box-shadow: 0 18px 40px rgba(0, 0, 0, .55), 0 0 24px rgba(46, 230, 214, .12); max-height: 60vh; }
  html.om-dark select.in option, html.om-dark .field select option { padding: 8px 12px; border-radius: 8px; }
  html.om-dark select.in option:hover, html.om-dark select.in option:focus-visible, html.om-dark .field select option:hover { background: rgba(46, 230, 214, .14); color: #fff; }
  html.om-dark select.in option:checked, html.om-dark .field select option:checked { background: rgba(46, 230, 214, .22); color: #2EE6D6; font-weight: 600; }
  html.om-dark select.in option::checkmark { color: #2EE6D6; }
}
html.om-dark select.in option { background: #0B0F14; color: #E9E6DF; }
/* Inicio: Pendiente · Alerta · En curso del cliente elegido + lo último que trabajaste */
.in-pp { margin: 0 0 18px; }
.in-pp-k { margin: 0 0 10px; font: 600 12px/1 'Syncopate', 'Outfit', sans-serif; letter-spacing: .18em; color: #2EE6D6; text-transform: uppercase; } .in-pp-k span { color: #FF2E4D; margin-right: 6px; letter-spacing: 0; }
.in-pp-g { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.in-pp-c { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: 14px; border: 1px solid #262A38; background: #0E1219; text-decoration: none; color: inherit; min-height: 44px; }
.in-pp-c:hover { border-color: rgba(46, 230, 214, .6); } .in-pp-c span { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #9AA3B5; }
.in-pp-c b { font-size: 30px; line-height: 1.1; } .in-pp-c small { color: #9AA3B5; } .in-pp-c ul { margin: 6px 0 0; padding-left: 16px; font-size: 13px; } .in-pp-c li small { display: block; }
.in-pp-c.al { border-left: 3px solid #FF2E4D; } .in-pp-c.al b { color: #FF6B80; } .in-pp-c.pe { border-left: 3px solid #FFB21A; } .in-pp-c.pe b { color: #FFC857; } .in-pp-c.cu { border-left: 3px solid #2EE6D6; } .in-pp-c.cu b { color: #2EE6D6; }
.in-pp-planet { display: inline-flex; gap: 8px; margin-top: 10px; padding: 10px 14px; border-radius: 12px; border: 1px solid rgba(255, 178, 26, .5); color: #FFC857; text-decoration: none; min-height: 44px; align-items: center; }
.in-pp-r { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; } .in-pp-r b { font-size: 13px; color: #9AA3B5; margin-right: 4px; }
.in-pp-r a { display: inline-flex; flex-direction: column; padding: 6px 12px; border-radius: 10px; border: 1px solid #262A38; text-decoration: none; color: #E9E6DF; font-size: 13px; min-height: 44px; justify-content: center; } .in-pp-r a small { color: #6B7288; font-size: 11px; }
/* Gaming */
.gm-f { gap: 12px; align-items: center; flex-wrap: wrap; margin: 10px 0 14px; } .gm-t td small { display: block; } .gm-t tr.gm-ex { opacity: .6; } .gm-t td.r, .gm-t th.r { text-align: right; }
/* Celular: barra inferior Inicio · Planear · Medición · Reportar · Más; arriba un botón Cliente · País · Mes; la esfera Ω encima de la barra */
@media (max-width: 760px) {
  .m-bar #m-menu { display: none; }
  .m-bar { gap: 6px; } .m-brand { margin-right: 0; flex: none; } .m-brand b { display: none; }
  #m-ctx { display: inline-flex; flex: 1 1 auto; min-width: 0; max-width: none; justify-content: center; border-color: #2EE6D6 !important; color: #2EE6D6 !important; } #m-out { flex: none; } #m-ctx b { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } #m-ctx span { color: #FF2E4D; }
  .top .ctx { display: none; }
  .shell.ctx-open .top .ctx { display: flex; flex-direction: column; gap: 8px; position: fixed; z-index: 80; left: 12px; right: 12px; top: calc(66px + env(safe-area-inset-top)); padding: 16px; border-radius: 16px; border: 1px solid rgba(46, 230, 214, .5); background: #0B0F14; box-shadow: 0 24px 50px rgba(0, 0, 0, .6); }
  .shell.ctx-open .top .ctx label, .shell.ctx-open .top .ctx #pclabel, .shell.ctx-open .top .ctx #mlabel { display: block !important; color: #9AA3B5; font-size: 13px; margin-top: 4px; }
  .shell.ctx-open .top .ctx select { display: flex !important; align-items: center; justify-content: space-between; width: 100% !important; max-width: none !important; min-width: 0 !important; flex: none !important; min-height: 44px; }
  .m-tab { display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; z-index: 65; left: 0; right: 0; bottom: 0; padding: 6px 6px max(6px, env(safe-area-inset-bottom)); background: rgba(7, 9, 13, .96); border-top: 1px solid #1E222E; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
  .m-t { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 52px; border-radius: 12px; border: 0; background: none; color: #9AA3B5; text-decoration: none; font: inherit; cursor: pointer; }
  .m-t span { font: 700 16px/1 'Noto Sans JP', sans-serif; } .m-t b { font-size: 11px; font-weight: 600; }
  .m-t[aria-current="page"] { color: #2EE6D6; background: rgba(46, 230, 214, .1); } .m-t[aria-current="page"] span { color: #FF2E4D; }
  .m-mas:not([hidden]) { display: block; position: fixed; z-index: 64; inset: 0; background: rgba(0, 0, 0, .55); }
  .m-mas-in { position: absolute; left: 0; right: 0; bottom: calc(64px + env(safe-area-inset-bottom)); max-height: 70vh; overflow-y: auto; padding: 16px 16px 12px; border-radius: 18px 18px 0 0; background: #0B0F14; border-top: 1px solid rgba(46, 230, 214, .45); }
  .m-mas-in section { margin-bottom: 14px; } .m-mas-in h3 { margin: 0 0 6px; font-size: 15px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; } .m-mas-in h3 span { color: #FF2E4D; font-family: 'Noto Sans JP', sans-serif; }
  .m-mas-in h3 small { flex-basis: 100%; color: #6B7288; font-weight: 400; font-size: 12px; }
  .m-mas-in section div { display: flex; flex-wrap: wrap; gap: 6px; } .m-mas-in a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; border-radius: 10px; border: 1px solid #262A38; color: #E9E6DF; text-decoration: none; font-size: 14px; }
  .page { padding-bottom: 140px !important; }
  .oc { bottom: calc(76px + env(safe-area-inset-bottom)) !important; }
  .in-pp-g { grid-template-columns: 1fr; }
}
body.kz-fs .m-tab { display: none !important; }
@media (min-width: 761px) { .top .ctx label { white-space: nowrap; } .top select.in { white-space: nowrap; } .top #pc { min-width: 0; width: auto; } .top #cli { min-width: 0; width: auto; max-width: 220px; } .top #mm { min-width: 0; width: auto; } }
@media (min-width: 761px) and (max-width: 1600px) { .top #sync .doki-jp, .top #sync .doki-ro, .top #sync .doki-es { display: none; } .top #sync { padding: 0 12px; } }

/* 声 VV · Esfera Ω del portal: abre la conversación con OMEGA (la Sala) a pantalla completa */
.ov-fab { position: fixed; z-index: 66; right: 22px; bottom: 22px; display: flex; align-items: center; gap: 10px; padding: 6px; border-radius: 999px; border: 1px solid rgba(46, 230, 214, .45); background: #07080C; color: #E9E6DF; cursor: pointer; box-shadow: 0 10px 30px rgba(0, 0, 0, .45), 0 0 24px rgba(46, 230, 214, .18); font-family: 'Outfit', system-ui, sans-serif; }
.ov-fab:hover, .ov-fab:focus-visible { padding-right: 18px; border-color: #2EE6D6; box-shadow: 0 14px 34px rgba(0, 0, 0, .5), 0 0 30px rgba(46, 230, 214, .35); outline: none; }
.ov-orb { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: #07080C; box-shadow: inset 0 0 0 1.5px rgba(46, 230, 214, .6); animation: ocPulse 3.2s ease-in-out infinite; } .ov-orb img { width: 26px; height: 26px; }
.ov-lbl { display: none; flex-direction: column; line-height: 1.1; text-align: left; } .ov-fab:hover .ov-lbl, .ov-fab:focus-visible .ov-lbl { display: flex; }
.ov-lbl b { font-family: 'Cinzel', serif; font-weight: 600; letter-spacing: .18em; font-size: 13px; } .ov-lbl small { font-family: 'Syncopate', sans-serif; font-weight: 700; font-size: 8px; letter-spacing: .32em; color: #2EE6D6; text-transform: uppercase; margin-top: 3px; }
.ov-sala { position: fixed; inset: 0; z-index: 4000; background: #05060A; } .ov-sala iframe { width: 100%; height: 100%; border: 0; display: block; }
body.ov-lock { overflow: hidden; } body.ov-lock .ov-fab { display: none; }
@media (max-width: 760px) { .ov-fab { right: 12px; bottom: calc(76px + env(safe-area-inset-bottom)); } }
@media (prefers-reduced-motion: reduce) { .ov-orb { animation: none; } }
@media (max-width: 760px) { #m-ctx span { white-space: nowrap; flex: none; } }

/* ---------- 硝子 Barra de cristal · R2 paso 2 (boceto aprobado 1-nov 11:23; cuatro puertas aprobado 3-nov 05:46) ----------
   Solo OMEGA en oscuro (COSMO y Digi usan om-light y quedan como están) y solo en computador (en celular la barra es el menú a pantalla completa).
   Vidrio: degradado blanco→turquesa sobre base oscura, desenfoque 28px, borde 1px blanco 16%, radios 30/16/11. Detrás, luces suaves que el
   vidrio desenfoca (como en el boceto). Sello activo = turquesa lleno; el rojo queda solo para alertas. Sin animaciones nuevas: el ancho
   ya tenía su transición y con «reducir movimiento» se apaga. Si el navegador no tiene desenfoque, la base oscura asegura el contraste. */
@media (min-width: 761px) {
  html.om-dark:not(.om-light) .shell { grid-template-columns: 98px 1fr; }
  html.om-dark:not(.om-light) .shell::before { content: ''; position: fixed; left: 0; top: 0; width: 360px; height: 100vh; pointer-events: none; z-index: 0;
    background: radial-gradient(260px 260px at 40px 26%, rgba(46,230,214,.20), transparent 70%), radial-gradient(240px 240px at 50px 78%, rgba(255,46,77,.17), transparent 70%), radial-gradient(160px 160px at 120px 52%, rgba(255,178,26,.10), transparent 70%); }
  html.om-dark:not(.om-light) .main { position: relative; z-index: 1; }
  html.om-dark:not(.om-light) .side { position: sticky; top: 12px; margin: 12px 0 12px 12px; height: calc(100vh - 24px); width: 74px; padding: 14px 9px; border-radius: 30px; z-index: 80;
    background: linear-gradient(160deg, rgba(255,255,255,.13), rgba(255,255,255,.07) 45%, rgba(46,230,214,.06) 100%), rgba(9,11,16,.72);
    -webkit-backdrop-filter: blur(28px) saturate(160%); backdrop-filter: blur(28px) saturate(160%);
    border: 1px solid rgba(255,255,255,.16); box-shadow: 0 24px 70px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.2), inset 0 -1px 0 rgba(255,255,255,.04); }
  html.om-dark:not(.om-light) .side:hover, html.om-dark:not(.om-light) .side:focus-within { width: 300px; }
  /* sellos de cristal; el de la puerta donde estás va lleno de turquesa */
  html.om-dark:not(.om-light) .nav-seal { border-radius: 14px; background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.16); color: #2EE6D6; }
  html.om-dark:not(.om-light) .nav-grp[data-g="Finanzas"] .nav-seal { color: #FFB21A; }
  html.om-dark:not(.om-light) .nav-grp.here .nav-seal, html.om-dark:not(.om-light) .nav-solo .nav-area[aria-current="page"] .nav-seal { background: #2EE6D6; border-color: rgba(46,230,214,.7); color: #0B0D12; box-shadow: 0 0 22px rgba(46,230,214,.45); }
  html.om-dark:not(.om-light) .nav-grp.here.open { border-radius: 16px; background: rgba(46,230,214,.10); box-shadow: inset 0 0 0 1px rgba(46,230,214,.32); }
  html.om-dark:not(.om-light) .nav-grp.here .nav-area .nav-es b { color: #2EE6D6; }
  html.om-dark:not(.om-light) .nav-area:hover { background: rgba(255,255,255,.06); border-radius: 14px; }
  html.om-dark:not(.om-light) .nav-solo .nav-area[aria-current="page"] { background: rgba(46,230,214,.10); border-radius: 14px; }
  /* filas de cada puerta: la actual en turquesa translúcido (el único turquesa lleno de la pantalla es el botón principal de la página) */
  html.om-dark:not(.om-light) .nav-grp .nav-items a { border-radius: 11px; border: 1px solid transparent; color: #D5D9E6; }
  html.om-dark:not(.om-light) .nav-grp .nav-items a:hover { background: rgba(255,255,255,.06); color: #F4F1EA; }
  html.om-dark:not(.om-light) .side .nav a[aria-current="page"] { background: rgba(46,230,214,.2); border-color: rgba(46,230,214,.45); color: #F4F1EA; font-weight: 600; }
  html.om-dark:not(.om-light) .nav-area-cta { border-top-color: rgba(255,255,255,.12); }
  html.om-dark:not(.om-light) .side .who { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: 16px; }
}
@media (min-width: 1200px) {
  html.om-dark:not(.om-light) .shell { grid-template-columns: 266px 1fr; }
  html.om-dark:not(.om-light) .side, html.om-dark:not(.om-light) .side:hover, html.om-dark:not(.om-light) .side:focus-within { width: 252px; padding: 18px 12px; }
}
@media (prefers-reduced-motion: reduce) { html.om-dark .side { transition: none !important; } }

/* ---------- 偵察 Radar de competencia (3-nov): vidrio OMEGA, kanji de sello, un solo botón turquesa lleno (Actualizar Google) ---------- */
.rc-card { background: rgba(14,20,28,.62); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,.1); border-radius: 18px; color: #E9E6DF; }
.rc-h { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 16px; }
.rc-h h2 { margin: 0; font: 600 22px/1.2 Cinzel, Georgia, serif; letter-spacing: .02em; text-wrap: balance; }
.rc-h p { margin: 2px 0 0; }
.rc-kj { font: 700 22px/1 'Noto Sans JP', sans-serif; color: #FF2E4D; width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); flex: none; }
.rc-h .grow { flex: 1; }
.rc-sen { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-bottom: 16px; }
.rc-s { position: relative; padding: 14px 16px 12px 56px; border-radius: 14px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); min-width: 0; }
.rc-s b { display: block; font-size: 14px; } .rc-s small { display: block; color: #9AA1B5; font-size: 12px; margin-bottom: 8px; }
.rc-sk { position: absolute; left: 14px; top: 14px; width: 30px; height: 30px; border-radius: 10px; display: grid; place-items: center; font: 700 15px/1 'Noto Sans JP', sans-serif; color: #2EE6D6; background: rgba(46,230,214,.1); border: 1px solid rgba(46,230,214,.3); }
.rc-s ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.rc-s li span { color: #F4F1EA; font-weight: 600; } .rc-s li i { font-style: normal; color: #2EE6D6; margin-left: 4px; }
.rc-big { margin: 0; font: 600 30px/1 Outfit, sans-serif; color: #2EE6D6; }
.rc-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.rc-tab { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; padding: 8px 14px; border-radius: 12px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04); color: #D5D9E6; cursor: pointer; font: inherit; }
.rc-tab small { color: #9AA1B5; font-size: 11.5px; }
.rc-tab[aria-pressed="true"] { background: rgba(46,230,214,.16); border-color: rgba(46,230,214,.5); color: #F4F1EA; }
.rc-tab:focus-visible { outline: 2px solid #2EE6D6; outline-offset: 2px; }
.rc-ads { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.rc-ad { padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.09); display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.rc-ad.rc-new { border-color: rgba(46,230,214,.45); }
.rc-ad header { display: flex; align-items: center; gap: 8px; justify-content: space-between; font-size: 13px; }
.rc-t { margin: 0; font-size: 14px; color: #F4F1EA; overflow-wrap: anywhere; } .rc-m { margin: 0; font-size: 12px; color: #9AA1B5; }
.rc-ad footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; font-size: 12.5px; }
.rc-ad footer a { color: #2EE6D6; text-decoration: none; } .rc-ad footer a:hover { text-decoration: underline; }
.rc-d { padding: 2px 9px; border-radius: 99px; background: rgba(46,230,214,.12); color: #9FEFE7; border: 1px solid rgba(46,230,214,.3); }
.rc-chip-n { background: rgba(46,230,214,.16); color: #9FEFE7; }
.rc-fuente { font-size: 12px; margin: 10px 0 0; } .rc-vacio { padding: 14px 0; }
.rc-nota { padding: 12px 14px; border-radius: 12px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); font-size: 13.5px; line-height: 1.5; margin-bottom: 10px; }
.rc-nota.rc-hip { border-color: rgba(242,193,78,.4); }
.rc-links { display: flex; flex-wrap: wrap; gap: 8px; }
.rc-h2 { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; } .rc-h2 h3 { margin: 0; font-size: 16px; } .rc-h2 h3 span { color: #FF2E4D; font-family: 'Noto Sans JP', sans-serif; }
.rc-comp { display: flex; flex-direction: column; gap: 6px; }
.rc-c { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 9px 12px; border-radius: 12px; background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.07); }
.rc-c > div { flex: 1; min-width: 180px; } .rc-c b { display: block; font-size: 14px; } .rc-c small { color: #9AA1B5; font-size: 12px; }
.rc-e { text-transform: capitalize; background: rgba(255,255,255,.08); color: #D5D9E6; }
.rc-confirmado .rc-e { background: rgba(46,230,214,.16); color: #9FEFE7; } .rc-descartado { opacity: .55; }
.rc-acts { display: flex; gap: 6px; }
.rc-add { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; } .rc-add .in { flex: 1; min-width: 180px; }
.rc-cli { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; }
.rc-cl { padding: 10px 12px; border-radius: 12px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); display: flex; flex-direction: column; gap: 2px; font-size: 13px; }
.rc-cl b { font-size: 14px; } .rc-cl span { color: #9AA1B5; } .rc-cl .rc-n { color: #D5D9E6; } .rc-cl em { color: #2EE6D6; font-style: normal; }
@media (max-width: 640px) { .rc-h h2 { font-size: 19px; } .rc-s { padding-left: 50px; } }

/* ---------- 折 Pliegues (t140, 3-nov; reglas de convivencia 5): los selectores OMEGA y las puertas de la barra se despliegan como un pliegue.
   Solo animan altura/recorte y la entrada de las filas, 0,35–0,5 s; con «reducir movimiento» no se mueve nada. Sin librerías nuevas. ---------- */
@keyframes omsPliegue { from { clip-path: inset(0 0 100% 0 round 12px); opacity: .5; } to { clip-path: inset(0 0 0 0 round 12px); opacity: 1; } }
@keyframes omFila { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.oms { animation: omsPliegue .38s cubic-bezier(.2, .8, .2, 1) both; }
.oms .oms-o { animation: omFila .35s ease both; animation-delay: calc(var(--n, 0) * 18ms + 60ms); }
.nav-grp.pliega > .nav-items { overflow: hidden; }
.nav-grp.open.entra > .nav-items > a { animation: omFila .35s ease both; animation-delay: calc(var(--n, 0) * 22ms + 40ms); }
@media (prefers-reduced-motion: reduce) { .oms, .oms .oms-o, .nav-grp.open.entra > .nav-items > a { animation: none !important; } }
/* ---------- 探 Buscador ⌘K evolucionado (t140, 3-nov): botón «Buscar módulo» dentro de la barra de cristal (como el boceto); en celular sigue arriba.
   La paleta agrupa por puerta, muestra «Recientes» y sus filas entran escalonadas (0,35 s). Todo lo de antes se conserva (rol, teclas, foco, aria-modal). ---------- */
.om-k-barra { width: 100%; min-width: 0; margin: 10px 0 4px; box-sizing: border-box; border-radius: 14px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); color: #C9CDD8; }
.om-k-barra:hover, .om-k-barra:focus-visible { border-color: rgba(46,230,214,.6); color: #F4F1EA; }
@media (min-width: 761px) {
  .top .om-k-movil { display: none; }
  .side:not(:hover):not(:focus-within) .om-k-barra { justify-content: center; padding: 10px 0; }
  .side:not(:hover):not(:focus-within) .om-k-barra span, .side:not(:hover):not(:focus-within) .om-k-barra kbd { display: none; }
}
@media (min-width: 1200px) { html .side:not(:hover):not(:focus-within) .om-k-barra { justify-content: flex-start; padding: 9px 12px; } html .side:not(:hover):not(:focus-within) .om-k-barra span, html .side:not(:hover):not(:focus-within) .om-k-barra kbd { display: inline; } }
@media (max-width: 760px) { .side .om-k-barra { display: none; } }
html.om-light .om-k-barra { background: #fff; border-color: #d5d9e1; color: #5b6272; }
#om-k-l .om-k-g { list-style: none; padding: 10px 14px 4px; font: 600 11px/1 'Outfit', system-ui, sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #9AA1B5; cursor: default; background: none !important; }
#om-k-l .om-k-g span { color: #FF2E4D; font-family: 'Noto Sans JP', sans-serif; letter-spacing: 0; margin-right: 4px; }
@keyframes omkCaja { from { opacity: 0; transform: translateY(-8px) scale(.985); } to { opacity: 1; transform: none; } }
.om-k-box { animation: omkCaja .35s cubic-bezier(.2, .8, .2, 1) both; }
#om-k-l.om-k-anim li[role="option"] { animation: omFila .35s ease both; animation-delay: calc(var(--n, 0) * 16ms + 40ms); }
@media (prefers-reduced-motion: reduce) { .om-k-box, #om-k-l.om-k-anim li[role="option"] { animation: none !important; } }

/* ---------- 虹の橋 Bifröst y el ser vivo en Planning (3-nov, aprobado el 31-oct) ---------- */
.bifrost { position: fixed; inset: 0; z-index: 2700; background: #05060A; }
.bifrost canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.bf-txt { position: absolute; left: 0; right: 0; bottom: calc(40px + env(safe-area-inset-bottom, 0px)); text-align: center; font: 400 12px/1 Syncopate, Outfit, sans-serif; letter-spacing: .3em; color: #E9E6DF; text-transform: uppercase; pointer-events: none; }
.bf-txt span { font-family: 'Noto Sans JP', sans-serif; letter-spacing: .1em; color: #FF2E4D; margin-right: 6px; }
.bf-saltar { position: absolute; right: max(18px, env(safe-area-inset-right, 0px)); bottom: calc(22px + env(safe-area-inset-bottom, 0px)); font: 500 13px Outfit, sans-serif; color: #E9E6DF; background: rgba(5,6,10,.6); border: 1px solid rgba(46,230,214,.4); border-radius: 99px; padding: 8px 16px; cursor: pointer; }
.bf-saltar:focus-visible { outline: 2px solid #2EE6D6; outline-offset: 2px; }
.bf-chispa { position: fixed; z-index: 2800; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; background: #fff; box-shadow: 0 0 14px #fff, 0 0 30px #2EE6D6, 0 0 60px #2EE6D6; pointer-events: none; }
.bf-chispa.bf-roja { box-shadow: 0 0 14px #fff, 0 0 30px #FF2E4D, 0 0 60px #FF2E4D; }
.pl-cam.bf-enciende { box-shadow: 0 0 0 1px rgba(46,230,214,.6), 0 0 48px rgba(46,230,214,.35); transition: box-shadow .5s ease; }
.pl-ser { position: relative; height: 240px; margin: -6px 0 14px; border-radius: 22px; overflow: hidden; border: 1px solid rgba(255,255,255,.08); background: #04050A; }
.pl-ser::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 55%, rgba(11,13,18,.85) 100%); }
.pl-ser-f { width: 100%; height: 100%; border: 0; display: block; pointer-events: none; }
@media (max-width: 640px) { .pl-ser { height: 150px; border-radius: 16px; } }
/* 使知巨 Hermes · Atenea · Titán en Planning (3-nov, recorrido aprobado el 31-oct): tres altares, cada uno con la esfera de su plan.
   Un solo botón turquesa lleno (Hermes); Atenea y Titán con contorno. Sin dorado (el dorado es solo de Alpha). */
.pl-caminos.pl-altares { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.pl-altares .pl-alt { --mc: #2EE6D6; min-height: 250px; text-align: left; font: inherit; color: inherit; cursor: pointer; overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--mc) 40%, transparent); background: radial-gradient(120% 70% at 50% 0%, color-mix(in srgb, var(--mc) 12%, transparent), transparent 70%), rgba(12,16,22,.72); transition: transform .35s cubic-bezier(.2,1.2,.4,1), border-color .35s ease; }
.pl-altares .pl-ate { --mc: #CFE3EA; } .pl-altares .pl-tit { --mc: #FF2E4D; }
.pl-altares .pl-alt:hover, .pl-altares .pl-alt:focus-visible { transform: translateY(-4px); border-color: var(--mc); outline: none; }
.pl-altares .pl-ck { color: var(--mc); }
.pl-orbe { width: 58px; height: 58px; border-radius: 50%; margin: 2px 0 6px; background: radial-gradient(circle at 35% 30%, #fff 0 6%, var(--mc) 22%, color-mix(in srgb, var(--mc) 35%, #05060A) 70%, #05060A 100%); box-shadow: 0 0 26px color-mix(in srgb, var(--mc) 55%, transparent), inset 0 0 12px rgba(255,255,255,.25); animation: plLatido 3.6s ease-in-out infinite; }
@keyframes plLatido { 0%, 100% { transform: scale(1); filter: brightness(1); } 50% { transform: scale(1.06); filter: brightness(1.15); } }
.pl-nom { display: flex; align-items: baseline; gap: 8px; } .pl-nom b { font: 600 24px/1.1 Cinzel, Georgia, serif; letter-spacing: .02em; }
.pl-kj { font: 700 18px/1 'Noto Sans JP', sans-serif; color: var(--mc); }
.pl-altares .pl-ct { font-size: 16px; color: #E9E6DF; }
.pl-altares .pl-go-l { background: transparent; color: var(--mc); border: 1px solid color-mix(in srgb, var(--mc) 60%, transparent); }
.pl-altares .pl-off { cursor: default; opacity: .6; } .pl-altares .pl-off .pl-go { background: transparent; color: #9AA1B5; border: 1px solid rgba(255,255,255,.15); font-weight: 400; font-size: 12.5px; }
.pl-conviven { margin: 12px 0 0; font-size: 13.5px; color: #9AA1B5; } .pl-conviven .pl-ck { margin-right: 8px; color: #2EE6D6; }
@media (max-width: 1100px) { .pl-caminos.pl-altares { grid-template-columns: 1fr; } .pl-altares .pl-alt { min-height: 0; } }
@media (prefers-reduced-motion: reduce) { .pl-orbe { animation: none; } .pl-altares .pl-alt { transition: none; } }
.pl-altares .pl-alt { margin: 0; height: 100%; box-sizing: border-box; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 8px; padding: 18px 20px; border-radius: 18px; }
.pl-altares .pl-alt .pl-go { align-self: flex-start; }
/* 3-nov · la barra de arriba ya no se sale de la pantalla cuando aparece «← Atrás» (pasaba en Gaming y en las entradas a 1440 px) */
header.top .om-back { flex-shrink: 1; min-width: 0; max-width: clamp(84px, 8vw, 260px); }
/* 3-nov · en el celular el título largo («Proyectos especiales», «Radar de competencia»…) baja de línea en vez de ensanchar la pantalla */
@media (max-width: 760px) { header.top > div { min-width: 0; max-width: 100%; } #ptitle { flex-wrap: wrap; } #ptitle .pt-es { white-space: normal; } }
/* 3-nov · arreglo del celular: la columna única ya no crece con lo que lleva dentro (antes medía 461 px en un teléfono de 390 y todo se corría) */
@media (max-width: 760px) { .shell { grid-template-columns: minmax(0, 1fr); } .shell > * { min-width: 0; } }
/* 特別 Taller de Dédalo · entrada cinematográfica de Proyectos especiales (3-nov, js/dedalo.js) */
.dd { position: fixed; inset: 0; z-index: 2700; overflow: hidden; cursor: pointer; }
.dd-fondo { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, #0B1418 0%, #05060A 62%); }
.dd-fondo::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, rgba(46,230,214,.035) 0 1px, transparent 1px 64px), repeating-linear-gradient(0deg, rgba(46,230,214,.035) 0 1px, transparent 1px 64px); mask-image: radial-gradient(ellipse at 50% 55%, #000 20%, transparent 70%); -webkit-mask-image: radial-gradient(ellipse at 50% 55%, #000 20%, transparent 70%); }
.dd-ser { position: absolute; border-radius: 50%; overflow: hidden; -webkit-mask-image: radial-gradient(circle closest-side, #000 86%, transparent 100%); mask-image: radial-gradient(circle closest-side, #000 86%, transparent 100%); }
.dd-ser iframe { width: 100%; height: 100%; border: 0; display: block; pointer-events: none; background: #05060A; }
.dd-anillo { position: absolute; width: 320px; height: 320px; border-radius: 50%; border: 1px solid rgba(46,230,214,.7); box-shadow: 0 0 40px rgba(46,230,214,.35), inset 0 0 40px rgba(255,46,77,.2); pointer-events: none; opacity: 0; }
.dd-tit { position: absolute; left: 0; right: 0; top: calc(9vh + env(safe-area-inset-top, 0px)); text-align: center; font: 400 15px/1 Syncopate, Outfit, sans-serif; letter-spacing: .3em; text-transform: uppercase; color: #E9E6DF; opacity: 0; pointer-events: none; }
.dd-tit span { font-family: 'Noto Sans JP', sans-serif; color: #FF2E4D; letter-spacing: .1em; margin-right: 8px; font-size: 18px; }
.dd-tit small { display: block; margin-top: 12px; font: 500 12px Outfit, sans-serif; letter-spacing: .24em; color: #2EE6D6; }
.dd-chispa { position: absolute; width: 12px; height: 12px; border-radius: 50%; background: #fff; box-shadow: 0 0 18px #2EE6D6, 0 0 42px rgba(46,230,214,.8); pointer-events: none; opacity: 0; }
.dd-p { position: absolute; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; border-radius: 22px; background: rgba(8,12,16,.78); border: 1px solid rgba(46,230,214,.5); box-shadow: 0 0 34px rgba(46,230,214,.22); color: #E9E6DF; opacity: 0; transform-origin: 0 0; pointer-events: none; }
.dd-p.dd-roja { border-color: rgba(255,46,77,.55); box-shadow: 0 0 34px rgba(255,46,77,.2); }
.dd-aro { position: absolute; inset: -9px; border-radius: 28px; border: 1px dashed rgba(46,230,214,.45); animation: ddGira 5s linear infinite; }
.dd-roja .dd-aro { border-color: rgba(255,46,77,.45); animation-direction: reverse; }
@keyframes ddGira { to { transform: rotate(360deg); } }
.dd-kj { font: 700 34px/1 'Noto Sans JP', sans-serif; color: #FF2E4D; }
.dd-ro { font: 700 9px/1.3 Syncopate, sans-serif; letter-spacing: .2em; color: #2EE6D6; padding: 0 10px; }
.dd-v { font: 600 17px/1.2 Outfit, sans-serif; padding: 0 10px; } .dd-v em { font-style: normal; font-size: 26px; color: #fff; }
.hb-card.dd-enciende { box-shadow: 0 0 0 1px rgba(46,230,214,.7), 0 0 54px rgba(46,230,214,.38); transition: box-shadow .5s ease; }
@media (max-width: 760px) { .dd-kj { font-size: 24px; } .dd-v { font-size: 13px; } .dd-v em { font-size: 18px; } .dd-ro { font-size: 7.5px; } .dd-anillo { width: 180px; height: 180px; } }
@media (prefers-reduced-motion: reduce) { .dd-aro { animation: none; } }
/* 説明 Claridad en el portal (3-nov, js/glosario.js): palabra técnica subrayada que se explica con un toque, y Letra grande */
.term { white-space: nowrap; font: inherit; color: inherit; background: none; border: 0; padding: 0; border-bottom: 1px dashed rgba(46,230,214,.7); cursor: help; min-height: 0; }
.term:hover, .term:focus-visible { color: #2EE6D6; outline: none; }
.term.term-i { border-bottom: 0; font-size: .9em; line-height: 1; color: #5FF0E2; opacity: .75; padding: 0 2px; vertical-align: baseline; text-transform: none; letter-spacing: 0; } .term.term-i:hover, .term.term-i:focus-visible { opacity: 1; outline: 2px solid #2EE6D6; outline-offset: 1px; border-radius: 4px; }
html.om-light .term.term-i { color: #0B7F76; }
.glosa { position: fixed; z-index: 2800; left: 50%; transform: translateX(-50%); bottom: calc(env(safe-area-inset-bottom, 0px) + 18px); width: min(520px, calc(100% - 32px)); box-sizing: border-box; background: #0A1118; border: 1px solid #2EE6D6; border-radius: 16px; padding: 16px 18px; color: #E8EEF2; font: 400 16px/1.5 Outfit, sans-serif; box-shadow: 0 18px 50px rgba(0,0,0,.6); animation: glosaIn .35s cubic-bezier(.2,.8,.2,1); }
@keyframes glosaIn { from { opacity: 0; transform: translate(-50%, 10px); } }
.glosa b { display: block; color: #2EE6D6; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 4px; font-weight: 600; }
.glosa button { margin-top: 10px; font: inherit; font-size: 14px; background: transparent; color: #E8EEF2; border: 1px solid rgba(46,230,214,.4); border-radius: 99px; padding: 6px 14px; cursor: pointer; min-height: 36px; }
html.om-light .glosa { background: #fff; color: #1a1f2b; border-color: #0e7c74; } html.om-light .glosa b { color: #0e7c74; }
.om-letra { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 12px; border-radius: 10px; border: 1px solid #2C3046; background: rgba(5,6,10,.5); color: #E9E6DF; font: 500 13px Outfit, sans-serif; cursor: pointer; white-space: nowrap; align-self: center; }
.om-letra span[aria-hidden] { font-weight: 600; font-size: 12px; } .om-letra span[aria-hidden] b { font-size: 16px; }
.om-letra[aria-pressed="true"] { border-color: #2EE6D6; color: #2EE6D6; background: rgba(46,230,214,.12); }
.om-letra:focus-visible { outline: 2px solid #2EE6D6; outline-offset: 2px; }

body.om-grande #view { zoom: 1.18; }
@media (prefers-reduced-motion: reduce) { .glosa { animation: none; } }
/* 3-nov · con «Letra grande» en la barra, el título de la pantalla cede espacio (se corta con «…») en vez de empujar la barra fuera */
@media (min-width: 761px) { .top .om-letra { display: none; } .side .om-letra { display: flex; width: 100%; justify-content: center; margin-top: 8px; box-sizing: border-box; } .top > div:has(#ptitle) { min-width: 200px; } header.top #ptitle { max-width: 100%; overflow: hidden; } header.top #psub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } }
body.om-grande #view .tbl-wrap, body.om-grande #view .tw { max-width: 100%; overflow-x: auto; } body.om-grande #view { overflow-x: clip; }

@media (max-width: 760px) { .side .om-letra { display: none; } }
.om-letra-t { display: inline !important; } .top .om-letra .om-letra-t { display: none !important; }
@media (min-width: 761px) and (max-width: 1199px) { .side .om-letra .om-letra-t { display: none !important; } }

/* 艦橋 entrada sin parpadeo (3-nov): mientras llega el puente, el portal se dibuja escondido */
html.om-cubre, html.om-cubre body { background: #05060A; }
html.om-cubre #app { visibility: hidden; }
/* 4-nov (Alejandro: «logo de OMEGA cortado»): con la barra plegada (761–1199 px) solo se ve el logo, centrado y completo; el buscador
   y «Letra grande» aparecen al abrir la barra. */
@media (min-width: 761px) and (max-width: 1199px) {
  .side:not(:hover):not(:focus-within) .brand.om-side { flex-direction: column; align-items: center; padding: 2px 0 10px; overflow: visible; }
  .side:not(:hover):not(:focus-within) .om-k-barra, .side:not(:hover):not(:focus-within) .om-letra { display: none !important; }
  .side:not(:hover):not(:focus-within) .om-lock { gap: 0; justify-content: center; width: 100%; }
  .side:not(:hover):not(:focus-within) .om-lock img, .side:not(:hover):not(:focus-within) .brand.om-side img { width: 40px !important; height: 40px !important; }
}
/* 4-nov (Alejandro: «se me pierden los dos Ω»): cada Ω se distingue sin pasar el mouse. Voz = «EN VIVO» (solo Planning); ayuda = «?». */
.ov-fab { position: fixed; }
.ov-live { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); font: 700 8px/1 'Syncopate', sans-serif; letter-spacing: .14em; padding: 4px 7px 3px; border-radius: 99px; background: #FF2E4D; color: #fff; box-shadow: 0 0 14px rgba(255,46,77,.6); white-space: nowrap; pointer-events: none; }
.ov-fab:hover .ov-live, .ov-fab:focus-visible .ov-live { left: 30px; }
.oc-fab { position: relative; }
.oc-fab::after { content: '?'; position: absolute; top: -4px; right: -4px; width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; background: #2EE6D6; color: #05060A; font: 800 11px/1 'Outfit', sans-serif; pointer-events: none; }
.oc-lbl small { letter-spacing: .08em; }
@media (prefers-reduced-motion: no-preference) { .ov-live { animation: ovlive 2.4s ease-in-out infinite; } @keyframes ovlive { 50% { box-shadow: 0 0 22px rgba(255,46,77,.9); } } }

/* 照合 Shōgō · Data Match (4-nov-2026). Solo variables del tema (--cyan, --ink, --muted, --line, --white…): se ve bien en OMEGA oscuro, claro, COSMO y DigiMarketing. */
.shg { display: flex; flex-direction: column; gap: 16px; max-width: 1180px; margin: 0 auto; }
.shg > .card, .shg > .card + .card { margin: 0; }
.shg-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 18px 28px; align-items: center; }
.shg .shg-q { font: 600 clamp(20px, 2.2vw, 26px)/1.25 var(--font-body); text-transform: none; letter-spacing: 0; color: var(--ink); margin: 0 0 14px; text-wrap: balance; }
.shg-pasos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.shg-pasos li { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 15px; }
.shg-pasos li b { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--line); font-size: 13px; flex: none; }
.shg-pasos li.on { color: var(--ink); font-weight: 600; } .shg-pasos li.on b { border-color: var(--cyan); background: var(--cyan); color: var(--white); }
.shg-i { color: var(--cyan); cursor: help; font-size: 14px; }
.shg-drop { grid-row: span 2; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; text-align: center; padding: 28px 18px; min-height: 220px; border: 2px dashed color-mix(in srgb, var(--cyan) 55%, var(--line)); border-radius: var(--r); background: color-mix(in srgb, var(--cyan) 5%, transparent); cursor: pointer; transition: background .2s, border-color .2s; }
.shg-drop:hover, .shg-drop.over { background: color-mix(in srgb, var(--cyan) 12%, transparent); border-color: var(--cyan); }
.shg-drop.busy { cursor: progress; opacity: .8; }
.shg-drop-ic { color: var(--cyan); } .shg-drop-t { font-size: 18px; font-weight: 600; color: var(--ink); } .shg-drop small { color: var(--muted); font-size: 13px; max-width: 36ch; }
.shg-pais { display: flex; align-items: center; gap: 8px 10px; flex-wrap: wrap; font-size: 14px; color: var(--muted); }
.shg-pais .in { min-width: 0; max-width: 100%; }
.shg-bar { display: flex; align-items: center; gap: 12px 20px; flex-wrap: wrap; padding: 12px 18px; }
.shg-bar-f { display: flex; align-items: center; gap: 10px; flex: 1 1 240px; min-width: 0; color: var(--cyan); }
.shg-bar-f > span { display: flex; flex-direction: column; min-width: 0; color: var(--ink); } .shg-bar-f b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .shg-bar-f small { color: var(--muted); font-size: 12.5px; }
.shg-bar-a { display: flex; gap: 8px; flex-wrap: wrap; }
.shg-sec { display: flex; flex-direction: column; gap: 14px; }
.shg-h { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.shg .shg-h h3 { font-size: 13px; color: var(--ink); }
.shg-n { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--cyan); color: var(--white); font-weight: 700; font-size: 13px; flex: none; }
.shg-tag { margin-left: auto; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); border: 1px dashed var(--line); padding: 2px 9px; border-radius: 99px; }
.shg-mu { color: var(--muted); font-size: 13.5px; margin: 0; }
.shg-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.shg-k { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; min-width: 0; }
.shg-k b { font-size: 30px; font-weight: 300; line-height: 1.1; color: var(--ink); font-variant-numeric: tabular-nums; }
.shg-k span { font-size: 13px; color: var(--muted); }
.shg-k-on { border-color: var(--cyan); background: color-mix(in srgb, var(--cyan) 8%, transparent); } .shg-k-on b { color: var(--cyan); font-weight: 500; }
.shg-k-no b { color: var(--red); }
.shg-pbs { display: flex; flex-direction: column; gap: 8px; }
.shg-pb { display: grid; grid-template-columns: 170px minmax(0, 1fr) 60px 110px; align-items: center; gap: 12px; font-size: 14px; }
.shg-pb-b { height: 10px; border-radius: 99px; background: color-mix(in srgb, var(--ink) 10%, transparent); overflow: hidden; } .shg-pb-b i { display: block; height: 100%; background: var(--cyan); border-radius: 99px; }
.shg-pb b { text-align: right; font-variant-numeric: tabular-nums; } .shg-pb small { color: var(--muted); }
.shg-avisos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.shg-avisos li { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 10px; background: var(--amber-bg); color: var(--ink); font-size: 14px; } .shg-avisos li .ico { color: var(--amber); flex: none; margin-top: 1px; }
.shg-ok { display: flex; gap: 8px; align-items: center; color: var(--green); margin: 0; }
.shg-cols summary { cursor: pointer; list-style: none; } .shg-cols summary::-webkit-details-marker { display: none; }
.shg-cols summary .shg-mu { margin-left: auto; }
.shg-cols:not([open]) { gap: 0; }
.shg-cols .shg-n { background: transparent; color: var(--cyan); border: 1.5px solid var(--cyan); }
.shg-cgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; }
.shg-c { display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; min-width: 0; }
.shg-c.off { opacity: .7; border-style: dashed; }
.shg-c-t { display: flex; flex-direction: column; min-width: 0; } .shg-c-t b, .shg-c-t small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.shg-c-t small { color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; }
.shg-c .in, .shg-p-t .in { width: 100%; min-width: 0; }
.shg-pgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(178px, 1fr)); gap: 10px; }
.shg-p { display: flex; flex-direction: column; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; min-width: 0; }
.shg-p header { display: flex; flex-direction: column; } .shg-p header b { font-size: 16px; color: var(--ink); } .shg-p header small { color: var(--muted); font-size: 12.5px; }
.shg-p-max b { display: block; font-size: 28px; font-weight: 300; color: var(--cyan); line-height: 1.1; font-variant-numeric: tabular-nums; } .shg-p-max span { font-size: 12.5px; color: var(--muted); }
.shg-p-min { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.shg-p-min li { display: flex; gap: 6px; align-items: flex-start; } .shg-p-min li .ico { flex: none; margin-top: 1px; }
.shg-p-min li.si { color: var(--green); } .shg-p-min li.no { color: var(--red); } .shg-p-min li.ref { color: var(--muted); font-size: 11.5px; font-style: italic; }
.shg-p-t { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; color: var(--muted); }
.shg-p-e { margin: 0; font-size: 13px; color: var(--ink); min-height: 3.6em; } .shg-p-e small { display: block; color: var(--muted); font-size: 12px; }
.shg-p-acts { margin-top: auto; display: flex; flex-direction: column; gap: 6px; } .shg-p-acts .btn { justify-content: center; width: 100%; }
.shg-pie { position: sticky; bottom: 0; z-index: 2; display: flex; align-items: center; gap: 8px 14px; flex-wrap: wrap; padding: 12px 104px 12px 16px; border-radius: 12px; border: 1px solid color-mix(in srgb, var(--cyan) 45%, var(--line)); background: var(--white); box-shadow: var(--shadow); color: var(--ink); font-size: 14px; }
.shg-pie > .ico { color: var(--cyan); flex: none; } .shg-pie > span { flex: 1 1 240px; } .shg-pie a { color: var(--cyan); font-weight: 600; white-space: nowrap; }
@media (max-width: 760px) {
  .shg-hero { grid-template-columns: minmax(0, 1fr); } .shg-drop { grid-row: auto; min-height: 180px; }
  .shg-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .shg-k b { font-size: 24px; }
  .shg-pb { grid-template-columns: minmax(0, 1fr) auto; row-gap: 4px; } .shg-pb-b { grid-column: 1 / -1; grid-row: 2; } .shg-pb small { display: none; }
  .shg-tag, .shg-cols summary .shg-mu { margin-left: 0; }
  .shg-pie { bottom: calc(70px + env(safe-area-inset-bottom)); padding: 8px 84px 8px 12px; gap: 2px 8px; font-size: 12.5px; line-height: 1.35; } /* encima de la barra inferior del celular y al lado de la esfera Ω */
  .shg-pie > .ico { display: none; }
}

/* ---------- 折 Menú plegable a solo íconos (5-nov-2026, decisión de Alejandro) ----------
   Botón « arriba a la derecha del logo (siempre a la vista). Plegado = sellos con su nombre corto; al pasar el mouse
   o con el teclado se abre encima del contenido. Se recuerda en este navegador (om.side.mini). En celular no aplica. */
.brand.om-side { position: relative; }
.om-plegar { position: absolute; top: 2px; right: 0; z-index: 2; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: 9px; color: #C9CDD8; cursor: pointer; }
.om-plegar:hover, .om-plegar:focus-visible { border-color: #2EE6D6; color: #fff; outline: none; }
.om-plg-i { font-size: 17px; line-height: 1; }
html.om-plegado .om-plg-i { transform: scaleX(-1); }
html.om-light .om-plegar { color: #3a4152; border-color: #d5d9e1; background: #fff; }
@media (max-width: 760px) { .om-plegar { display: none; } }
@media (min-width: 761px) {
  html.om-plegado .shell { grid-template-columns: 98px 1fr; }
  html.om-plegado.om-dark:not(.om-light) .shell { grid-template-columns: 98px 1fr; }
  html.om-plegado .side { width: 84px; padding: 14px 10px; overflow-x: hidden; z-index: 80; }
  html.om-plegado:not(.om-light).om-dark .side { width: 74px; padding: 14px 9px; }
  html.om-plegado .side:hover, html.om-plegado .side:focus-within { width: 300px; box-shadow: 24px 0 60px rgba(0,0,0,.55); }
  html.om-plegado .side:not(:hover):not(:focus-within) .nav-es, html.om-plegado .side:not(:hover):not(:focus-within) .nav-chev, html.om-plegado .side:not(:hover):not(:focus-within) .nav-items,
  html.om-plegado .side:not(:hover):not(:focus-within) .who, html.om-plegado .side:not(:hover):not(:focus-within) #om-theme, html.om-plegado .side:not(:hover):not(:focus-within) .om-lock b,
  html.om-plegado .side:not(:hover):not(:focus-within) .cy-mk, html.om-plegado .side:not(:hover):not(:focus-within) .om-modebar,
  html.om-plegado .side:not(:hover):not(:focus-within) .om-k, html.om-plegado .side:not(:hover):not(:focus-within) .om-letra { display: none !important; }
  html.om-plegado .side:not(:hover):not(:focus-within) .nav-area { flex-direction: column; gap: 3px; padding: 6px 0 !important; justify-content: center; }
  html.om-plegado .side:not(:hover):not(:focus-within) .nav-short { display: block !important; font-size: 10px; line-height: 1.1; color: #9AA1B5; text-align: center; max-width: 64px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.om-plegado .side:not(:hover):not(:focus-within) .nav-grp.here .nav-short, html.om-plegado .side:not(:hover):not(:focus-within) .nav-solo .nav-area[aria-current="page"] .nav-short { color: #fff; }
  html.om-plegado .side:not(:hover):not(:focus-within) .brand.om-side { display: flex; justify-content: center; padding: 4px 0 10px; }
  html.om-plegado .side:not(:hover):not(:focus-within) .om-lock { justify-content: center; }
  html.om-plegado .side .brand.om-side { display: flex; flex-direction: column; align-items: center; gap: 8px; } /* el botón no salta de lugar al abrir el menú con el mouse */
  html.om-plegado .side .om-plegar { position: static; }
}
/* 遊 Ω corredor en las cargas largas (5-nov-2026): aparece a los 10 s como invitación; al jugar reemplaza la tarjeta de japonés */
#om-load .ol-play { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 10px; padding: 10px 18px; border-radius: 12px; border: 1px solid rgba(46,230,214,.55); background: rgba(46,230,214,.08); color: #E9E6DF; font: 500 14px 'Outfit', system-ui, sans-serif; cursor: pointer; animation: olIn .5s ease both; }
#om-load .ol-play span { color: #2EE6D6; font-size: 16px; } #om-load .ol-play small { color: #9AA1B5; font-size: 12px; }
#om-load .ol-play:hover, #om-load .ol-play:focus-visible { background: rgba(46,230,214,.16); outline: none; }
#om-load .ol-game { position: relative; z-index: 1; width: min(640px, 92vw); }
#om-load.ol-jugando .oi-core { --oi: min(150px, 30vw, 20vh); }
.jg-hud { display: flex; justify-content: space-between; align-items: center; color: #9AA1B5; font: 400 13px 'Outfit', system-ui, sans-serif; margin-bottom: 6px; }
.jg-hud b { color: #E9E6DF; font-weight: 600; } .jg-hud span[lang="ja"] { color: #2EE6D6; font-size: 16px; }
.jg-c { display: block; width: 100%; height: auto; aspect-ratio: 640 / 170; border: 1px solid rgba(46,230,214,.25); border-radius: 14px; background: rgba(12,15,21,.85); touch-action: manipulation; cursor: pointer; }
.jg-a { margin: 8px 0 0; text-align: center; color: #6B7183; font: 400 12px 'Outfit', system-ui, sans-serif; }
.jg-r { color: #FF4D66; font-weight: 500; } .jg-am { color: #F2C14E; font-weight: 500; } .jg-t { color: #2EE6D6; font-weight: 500; }
