/* Capa final de refinamientos. Solo contiene overrides activos y deliberados. */
.brand-short{display:none}
/* Refinamientos visuales y estabilidad de interacción */

/* Cabecera: el logo conserva su forma completa y no se recorta. */
.brand-mark{overflow:visible;border-radius:14px}
.brand-mark img{display:block;object-fit:contain;object-position:center;opacity:1;transform:none;image-rendering:auto}

/* Hero: composición útil en lugar de un gran espacio vacío. */
.hero{padding:clamp(20px,2.4vw,30px);background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 99%,transparent),color-mix(in srgb,var(--brand-soft) 48%,var(--surface)))}
.hero::after{width:390px;height:390px;right:-145px;top:-175px;opacity:.72}
.hero-main{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,320px);gap:clamp(18px,2.4vw,32px);align-items:stretch}
.hero-copy{max-width:none;padding-right:0;display:flex;flex-direction:column;justify-content:center}
.hero h2{max-width:900px}
.hero p{max-width:860px}
.hero-visual{position:relative;min-height:190px;border:1px solid color-mix(in srgb,var(--line-strong) 72%,transparent);border-radius:22px;background:linear-gradient(155deg,color-mix(in srgb,var(--surface) 88%,transparent),color-mix(in srgb,var(--brand-soft) 74%,var(--surface)));overflow:hidden;display:flex;align-items:flex-end;padding:18px;isolation:isolate}
.hero-visual-glow{position:absolute;width:230px;height:230px;right:-70px;top:-90px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--gold) 32%,transparent),transparent 68%);z-index:-1}
.hero-visual .hero-mascot{position:absolute;z-index:3;right:10px;bottom:8px;width:154px;max-height:174px;object-fit:contain;object-position:center;filter:drop-shadow(0 13px 22px rgba(46,32,21,.22));pointer-events:none}
.hero-visual-copy{position:relative;z-index:2;display:flex;flex:0 0 128px;max-width:128px;flex-direction:column;align-items:flex-start;padding:10px 9px;border:1px solid color-mix(in srgb,var(--line) 85%,transparent);border-radius:15px;background:color-mix(in srgb,var(--surface) 86%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow-xs)}
.hero-visual-copy span{font-size:9px;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);font-weight:900}.hero-visual-copy b{font-size:27px;line-height:1;margin-top:3px;color:var(--brand);letter-spacing:-.04em}.hero-visual-copy small{font-size:9.5px;color:var(--muted);margin-top:3px}
.hero-dashboard{position:relative;z-index:3;margin-top:16px;padding-top:16px;border-top:1px solid color-mix(in srgb,var(--line) 82%,transparent)}
.stats-grid{max-width:none;margin-top:0;grid-template-columns:repeat(4,minmax(0,1fr))}
.hero-progress{max-width:none;margin-top:12px}
.analytics-panel{width:100%;margin-top:12px;background:color-mix(in srgb,var(--surface) 94%,transparent)}
.analytics-body{padding:0 13px 14px}.analytics-table{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.analytics-row{align-content:start}

/* Toolbar: más limpio y menos pesado cuando queda fijo. */
.toolbar-wrap{margin-bottom:18px}
.toolbar{border-radius:20px;padding:9px;background:color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:0 12px 34px color-mix(in srgb,#000 8%,transparent)}
html[data-theme="dark"] .toolbar{box-shadow:0 12px 34px rgba(0,0,0,.24)}

/* Tarjetas con jerarquía más sobria. */
.question-card{border-radius:20px;box-shadow:0 6px 22px color-mix(in srgb,#000 5%,transparent)}
html[data-theme="dark"] .question-card{box-shadow:0 8px 24px rgba(0,0,0,.20)}
.question-card:hover{box-shadow:0 13px 34px color-mix(in srgb,#000 8%,transparent)}

/* La propia figura es el control de zoom. No hay botón flotante. */
.source-wrap{padding:10px;border-radius:18px;background:color-mix(in srgb,var(--surface-2) 82%,var(--surface))}
.source-image-button{display:block;width:fit-content;max-width:100%;margin:auto;padding:0;border:0;border-radius:12px;background:transparent;color:inherit;cursor:zoom-in;overflow:hidden;box-shadow:0 1px 0 color-mix(in srgb,var(--line) 85%,transparent);transition:transform .16s var(--ease),box-shadow .16s var(--ease)}
.source-image-button:hover{transform:translateY(-1px);box-shadow:0 10px 25px color-mix(in srgb,#000 10%,transparent)}
.source-image-button:focus-visible{outline-offset:4px}
.source-image{margin:0;border-radius:12px;cursor:zoom-in}

/* Cargar más: estable, discreto, no obliga a navegar a otra posición. */
.load-more{min-height:48px;margin:26px auto 8px;border:1px solid var(--line-strong);border-radius:15px;background:var(--surface);color:var(--brand);padding:0 18px;box-shadow:var(--shadow-xs);font-size:11.5px;letter-spacing:.01em}
.load-more::before{content:"＋";margin-right:7px;font-size:15px;font-weight:500}
.load-more:hover{transform:none;background:var(--brand-soft);border-color:var(--gold);box-shadow:var(--shadow-sm)}
.load-more.loading{opacity:.72;pointer-events:none}

/* Lightbox más pulido y con cierre inequívoco. */
.image-lightbox{grid-template-rows:1fr auto;gap:10px;cursor:zoom-out}
.image-lightbox img{max-width:min(96vw,1500px);max-height:86dvh;border-radius:18px;cursor:default}
.image-lightbox-close{position:fixed;right:max(16px,var(--safe-right));top:max(16px,var(--safe-top));z-index:2;width:46px;height:46px;border:1px solid rgba(255,255,255,.22);border-radius:14px;background:rgba(25,18,14,.70);color:#fff;font-size:25px;line-height:1;display:grid;place-items:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.image-lightbox-hint{color:rgba(255,255,255,.72);font-size:11px;text-align:center;pointer-events:none}

@media(max-width:1180px){
  .hero-main{grid-template-columns:minmax(0,1fr) 220px}.hero-visual{justify-content:center}.hero-visual .hero-mascot{right:50%;width:150px;transform:translateX(50%)}.hero-visual-copy{display:none}.analytics-table{grid-template-columns:1fr}
}
@media(max-width:980px){
  .hero-main{grid-template-columns:1fr}.hero-visual{display:none}.hero-copy{padding-right:0}.hero-dashboard{margin-top:14px}
}
@media(max-width:720px){
  .hero{padding:17px 15px;border-radius:20px}.hero-dashboard{padding-top:13px}.stats-grid{grid-template-columns:1fr 1fr}.analytics-table{grid-template-columns:1fr}
  .source-wrap{padding:8px}.source-image-button{width:100%}.source-image{margin:auto}
  .load-more{width:min(100%,360px);min-height:50px;margin-top:20px}
  .image-lightbox{padding:max(12px,var(--safe-top)) max(10px,var(--safe-right)) max(14px,var(--safe-bottom)) max(10px,var(--safe-left))}.image-lightbox img{max-width:98vw;max-height:82dvh}.image-lightbox-close{width:44px;height:44px}
}
@media(max-width:430px){
  .brand-mark,.brand-mark img{width:40px;height:40px}.brand-mark{flex-basis:40px}.brand-copy h1{font-size:11.75px}
  .hero h2{font-size:26px}.stats-grid{gap:6px}.stat{padding:10px}.stat b{font-size:18px}
}

@media(max-width:720px){.brand-long{display:none}.brand-short{display:inline}.brand-copy{max-width:128px}.brand-copy h1{font-size:12.5px;line-height:1.05}}
@media(max-width:380px){.brand-copy{max-width:112px}.brand-copy h1{font-size:11.75px}}

/* Refinamientos del modo Focus y controles globales */
.topbar{box-shadow:0 1px 0 color-mix(in srgb,var(--line) 60%,transparent)}
.top-focus-btn{min-height:44px;border:1px solid color-mix(in srgb,var(--gold) 52%,var(--line));border-radius:13px;background:linear-gradient(145deg,color-mix(in srgb,var(--brand-soft) 74%,var(--surface)),var(--surface));color:var(--brand);padding:0 14px;font-weight:900;box-shadow:var(--shadow-xs);transition:.18s var(--ease)}.top-focus-btn:hover{transform:translateY(-1px);border-color:var(--gold);box-shadow:var(--shadow-sm)}
.hero-action.focus{border:1px solid color-mix(in srgb,var(--gold) 56%,var(--line));background:linear-gradient(145deg,var(--brand-soft),var(--surface));color:var(--brand);box-shadow:var(--shadow-xs)}
.question-card{box-shadow:0 10px 30px color-mix(in srgb,#4b3527 7%,transparent)}.option{box-shadow:0 1px 0 color-mix(in srgb,var(--line) 45%,transparent)}
@media(max-width:980px){.top-focus-btn{display:none}}
.side-quick-actions{display:none;gap:6px;margin:0 0 12px}.side-quick-actions button{min-height:42px;border-radius:11px;font-size:10px;font-weight:900}.side-quick-actions button:first-child{border:0;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:var(--on-brand)}.side-quick-actions button:last-child{border:1px solid var(--line);background:var(--surface-2);color:var(--brand)}
@media(max-width:980px){.side-quick-actions{display:grid;grid-template-columns:1fr 1fr}}
body.focus-active .top-exam-btn,body.focus-active .top-focus-btn,body.focus-active .mode-tabs,body.focus-active .menu-btn,body.exam-active .top-focus-btn,body.exam-active .top-exam-btn,body.exam-active .mode-tabs,body.exam-active .menu-btn{display:none!important}

.load-more{overflow-anchor:none}

/* Teléfonos compactos: evitar desbordamiento del topbar sin sacrificar controles. */
@media(max-width:340px){
  .brand-copy{display:none}
  .topbar-inner{gap:6px}
  .mode-tabs{margin-left:auto}
  .mode-tab{padding-inline:6px;font-size:9.5px}
  .brand-mark,.brand-mark img{width:40px;height:40px}
  .brand-mark{flex-basis:40px}
}

/* Deep-audit v8: las expresiones matemáticas largas desplazan solo su bloque,
   nunca el documento completo en split-screen/foldables muy estrechos. */
.option>span:last-child,.focus-option>span:nth-child(2){min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.prompt,.focus-prompt,.display-math{min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
@media(max-width:279px){
  .brand-mark{display:none}
  .topbar-inner{gap:4px;padding-left:max(5px,var(--safe-left));padding-right:max(5px,var(--safe-right))}
  .mode-tabs{padding:2px;gap:1px}.mode-tab{padding-inline:5px;font-size:9px}
  .menu-btn,.theme-btn{min-width:36px;width:36px;height:36px}
}

/* v11: the header always renders the original complete Tanuki asset. */
.brand-mark{overflow:visible!important;align-self:center;padding:2px}
.brand-mark img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;clip-path:none!important;border-radius:0!important;padding:0;max-width:100%;max-height:100%}
@media(min-width:821px){.brand-mark,.brand-mark img{width:54px;height:54px}.brand-mark{flex-basis:54px}.topbar-inner{min-height:76px}}

/* Accessibility hardening · Mega Audit v10 */
.skip-link{position:fixed;z-index:10000;left:max(12px,var(--safe-left));top:calc(var(--safe-top) + 8px);transform:translateY(-160%);padding:10px 14px;border-radius:12px;background:var(--ink);color:var(--surface);font-weight:850;text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .16s ease}
.skip-link:focus{transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.skip-link{transition:none}}

/* Mega Audit v10 · las dimensiones responsive del topbar cambian de inmediato.
   Evita overflow transitorio al rotar/redimensionar desde desktop a móvil. */
.icon-btn{transition-property:background-color,color,border-color,box-shadow,transform;transition-duration:.18s;transition-timing-function:var(--ease)}
.mode-tab{transition-property:background-color,color,box-shadow,transform;transition-duration:.16s;transition-timing-function:var(--ease)}

/* Timer styling for Practice Mode and Quiz Focus Mode */
.card-timer-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--surface-3);
  color: var(--ink-2);
  font-size: 11.5px;
  font-weight: 700;
  padding: 4px 8px;
  border-radius: 8px;
  margin-left: 10px;
  border: 1px solid var(--line);
  line-height: 1;
  transition: all 0.2s var(--ease);
}
.focus-card-timer-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  background: var(--surface-2);
  padding: 8px 14px;
  border-radius: 12px;
  border: 1px solid var(--line);
}
.focus-card-timer-track {
  flex: 1;
  height: 8px;
  background: var(--canvas-2);
  border-radius: 4px;
  overflow: hidden;
}
#focusCardTimerFill {
  display: block;
  height: 100%;
  width: 100%;
  background: var(--green);
  border-radius: 4px;
  transition: width 0.1s linear, background-color 0.3s ease;
}
.focus-card-timer-text {
  font-family: monospace;
  font-weight: bold;
  font-size: 14px;
  color: var(--ink-2);
  min-width: 32px;
  text-align: right;
  transition: color 0.3s ease;
}

/* Rebranding overrides for Preuniversitario Harrison red/black identity */
:root {
  --red: #d90429;
  --brand: #a81c1c;
  --brand-2: #d90429;
  --brand-soft: #fde8e7;
}
html[data-theme="dark"] {
  --red: #ff4d6d;
  --brand: #ff4d6d;
  --brand-2: #ff758f;
  --brand-soft: #3a1a19;
}

