/* ══════════════════════════════════════════════════════════════
   Tatami Atlas · sistema visual
   Se carga el último: redefine tokens y componentes sobre las hojas base.
   ══════════════════════════════════════════════════════════════ */
:root{
  --ta-navy:#07122B;--ta-navy-2:#0C1D42;--ta-navy-3:#132A57;
  --ta-blue:#1F6BFF;--ta-blue-600:#1557E0;--ta-blue-300:#6FA0FF;--ta-blue-50:#EDF3FF;
  --ta-bg:#F3F5F9;--ta-surface:#FFFFFF;--ta-surface-2:#F8FAFC;--ta-ink:#0B1630;--ta-ink-2:#37445E;--ta-muted:#6A768C;--ta-line:#E2E7EF;--ta-line-2:#EEF1F6;
  --ta-green:#16A34A;--ta-amber:#E89611;--ta-red:#E5484D;
  --ta-radius:14px;--ta-radius-sm:10px;
  --ta-shadow:0 1px 2px rgba(11,22,48,.05),0 6px 20px rgba(11,22,48,.05);
  --ta-shadow-lg:0 2px 6px rgba(11,22,48,.06),0 24px 60px rgba(11,22,48,.14);
  --ta-display:'Barlow Condensed','Arial Narrow',sans-serif;
  --ta-text:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  /* Tokens heredados de las hojas base */
  --ink:var(--ta-ink);--ink-strong:var(--ta-ink);--muted:var(--ta-muted);--paper:var(--ta-bg);--card:var(--ta-surface);--line:var(--ta-line);
  --tatami:var(--ta-surface-2);--blue:var(--ta-blue);--lime:var(--ta-blue-300);--lime-soft:var(--ta-blue-50);--shadow:var(--ta-shadow);
}
:root[data-theme=dark]{
  --ta-bg:#060E22;--ta-surface:#0D1A36;--ta-surface-2:#0A1530;--ta-ink:#E8EEFA;--ta-ink-2:#C2CEE3;--ta-muted:#8C9BB6;--ta-line:#1C2D50;--ta-line-2:#16264A;--ta-blue-50:#132B5C;
  --ta-shadow:0 1px 2px #0005,0 8px 24px #0004;
  --ink:var(--ta-ink);--ink-strong:var(--ta-ink);--muted:var(--ta-muted);--paper:var(--ta-bg);--card:var(--ta-surface);--line:var(--ta-line);--tatami:var(--ta-surface-2);--lime-soft:var(--ta-blue-50);--shadow:var(--ta-shadow);
}

/* ── Base ─────────────────────────────────────────────────────── */
html{-webkit-text-size-adjust:100%}
body{font-family:var(--ta-text);font-size:14.5px;line-height:1.55;color:var(--ta-ink);background:var(--ta-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","cv11"}
::selection{background:#1F6BFF33}
.ta-icon{width:20px;height:20px;flex:none;display:block}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--ta-blue);outline-offset:2px}
h1,h2,h3,h4{color:var(--ta-ink);letter-spacing:-.01em}

/* Titulares deportivos */
.page-intro h2,.pro-heading h2,.journey-heading h2,.login-story h1,.login-panel h2,.pro-modal h2,.rules-summary h3{font-family:var(--ta-display);font-weight:700;text-transform:uppercase;letter-spacing:.005em;line-height:.98}
.page-intro h2,.pro-heading h2,.journey-heading h2{font-size:clamp(34px,3.4vw,48px);margin:6px 0 10px}
.page-intro p,.pro-heading p,.journey-heading p{font-size:15.5px;color:var(--ta-muted);max-width:640px}
.section-kicker{font-family:var(--ta-text);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ta-blue)}

/* Cifras */
.journey-stats b,.challenge-counter b,.rules-facts b,.review-counts b,.pro-metrics b,.student-stats b,.stats-row b{font-family:var(--ta-display);font-weight:700;letter-spacing:.01em;font-variant-numeric:tabular-nums}

/* ── Barra lateral ────────────────────────────────────────────── */
.sidebar{width:248px;background:linear-gradient(180deg,var(--ta-navy) 0%,var(--ta-navy-2) 100%);border-right:0;padding:22px 14px 18px;gap:10px;color:#AFC0DD}
.app-content{margin-left:248px}
.brand-mark>span.ta-logo-tile,.brand-mark>span.ta-wordmark{min-width:0;height:auto;font-size:inherit;color:inherit}
.brand-mark>span.ta-wordmark{display:flex;place-items:initial;background:none;border-radius:0;white-space:nowrap;font-size:25px}
.brand-mark>span.ta-logo-tile{background:#fff;width:44px;height:44px;border-radius:12px}
.brand-mark{height:auto;padding:6px 8px 18px;margin-bottom:6px;border-bottom:1px solid #ffffff12;border-radius:0;gap:12px}
.ta-logo-tile{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#fff;box-shadow:0 6px 18px #0006,inset 0 0 0 1px #ffffff;flex:none}
.ta-logo-tile img{width:36px;height:auto;display:block}
.ta-wordmark{display:flex;align-items:baseline;gap:1px;font-family:var(--ta-display);font-size:27px;font-weight:700;letter-spacing:.01em;line-height:1;text-transform:uppercase}
.ta-wordmark .ta-w1{color:#fff}.ta-wordmark .ta-w2{color:var(--ta-blue-300)}
.sidebar nav{gap:2px;margin-top:4px}
.nav-group{padding:16px 12px 8px;font-size:10.5px;font-weight:800;letter-spacing:.14em;color:#5F7499}
.sidebar nav button{position:relative;min-height:42px;padding:10px 12px;border-radius:10px;font-size:14px;font-weight:600;color:#B4C3DD;gap:12px;transition:background .15s,color .15s}
.sidebar nav button .nav-symbol{width:20px;color:#7F93B8;transition:color .15s}
.sidebar nav button:hover{background:#ffffff0d;color:#fff}
.sidebar nav button:hover .nav-symbol{color:#fff}
.sidebar nav button.active{background:linear-gradient(90deg,#1F6BFF33,#1F6BFF14);color:#fff;box-shadow:inset 0 0 0 1px #1F6BFF40}
.sidebar nav button.active .nav-symbol{color:var(--ta-blue-300)}
.sidebar nav button.active::before{content:"";position:absolute;left:-14px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--ta-blue)}
.feedback-nav{margin-top:14px!important;border:1px dashed #ffffff22!important}
.side-help{width:40px;height:40px;border-radius:12px;background:#ffffff0d;color:#B4C3DD;border:0;display:grid;place-items:center}

/* ── Barra superior ───────────────────────────────────────────── */
.topbar{position:sticky;top:0;z-index:40;height:68px;padding:0 40px;background:color-mix(in srgb,var(--ta-surface) 82%,transparent);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid var(--ta-line)}
.topbar .eyebrow{display:none}
.topbar h1{font-family:var(--ta-text);font-size:17px;font-weight:700;letter-spacing:-.01em;color:var(--ta-ink)}
.top-actions{gap:8px}
.top-actions .icon-button,.top-actions .avatar{width:40px;height:40px;border-radius:12px;border:1px solid var(--ta-line);background:var(--ta-surface);color:var(--ta-ink-2);display:grid;place-items:center;box-shadow:none}
.top-actions .icon-button:hover{border-color:#C9D3E3;background:var(--ta-surface-2)}
.top-actions .avatar{background:var(--ta-navy);color:#fff;border-color:var(--ta-navy);font-weight:700;font-size:13px}
.lang-toggle{font-family:var(--ta-text);font-weight:800!important;font-size:12px!important;letter-spacing:.06em}
.view{padding:36px 40px 56px;max-width:1440px}

/* ── Botones ──────────────────────────────────────────────────── */
.solid-button,.pro-actions .solid-button,.pro-modal .solid-button,.pro-form .solid-button,.login-panel .solid-button{background:linear-gradient(180deg,#2B74FF,#1A62F2);color:#fff;border:1px solid #1557E0;border-radius:var(--ta-radius-sm);padding:11px 18px;font-weight:700;font-size:14px;letter-spacing:.005em;box-shadow:0 1px 0 #ffffff33 inset,0 6px 16px -6px #1F6BFFAA;transition:transform .12s,box-shadow .15s,filter .15s}
.solid-button:hover{filter:brightness(1.06);box-shadow:0 1px 0 #ffffff33 inset,0 10px 22px -8px #1F6BFFCC;background:linear-gradient(180deg,#2B74FF,#1A62F2)}
.solid-button:active{transform:translateY(1px)}
.pro-actions button:not(.solid-button),.pro-heading button:not(.solid-button),.survey-toolbar button:not(.solid-button),.survey-footer button:not(.solid-button),.journey-empty button:not(.solid-button),.ghost-ink-button,.personal-map-head button,.challenge-resources button,.page-intro>button:not(.solid-button),.page-intro>div>button:not(.solid-button){background:var(--ta-surface);color:var(--ta-ink);border:1px solid var(--ta-line);border-radius:var(--ta-radius-sm);padding:10px 15px;font-weight:650;font-size:13.5px;box-shadow:0 1px 2px rgba(11,22,48,.04);transition:border-color .15s,background .15s}
.pro-actions button:not(.solid-button):hover,.ghost-ink-button:hover,.page-intro>button:not(.solid-button):hover{border-color:#C6D1E3;background:var(--ta-surface-2)}
.text-button{color:var(--ta-blue);font-weight:700}

/* ── Tarjetas y superficies ───────────────────────────────────── */
.pro-panel,.recommendation,.system-card,.practice-history article,.pro-metrics article,.challenge-card,.plan-context,.practice-journal,.plan-roadmap,.journey-empty,.tech-card,.tool-card,.technique-card,.rules-card,.rules-summary,.feedback-item,.survey-body,.survey-steps,.journey-shortcuts button,.journey-stats,.student-detail,.student-directory,.timeline-card,.section-card,.backup-card,.age-table-card{background:var(--ta-surface);border:1px solid var(--ta-line);border-radius:var(--ta-radius);box-shadow:var(--ta-shadow)}
.system-card,.technique-card,.tool-card,.journey-shortcuts button{transition:transform .18s,box-shadow .18s,border-color .18s}
.system-card:hover,.technique-card:hover,.tool-card:hover,.journey-shortcuts button:hover{transform:translateY(-2px);border-color:#C9D5EA;box-shadow:var(--ta-shadow-lg)}
.pro-notice{background:var(--ta-blue-50);border:1px solid #CFDDFB;border-left:3px solid var(--ta-blue);border-radius:var(--ta-radius-sm);color:var(--ta-ink-2)}

/* ── Inicio: portada con fotografía ───────────────────────────── */
[data-view="Hoy"] .journey-heading{position:relative;overflow:hidden;border-radius:20px;padding:44px 44px 40px;min-height:230px;margin-bottom:20px;color:#fff;background:linear-gradient(90deg,var(--ta-navy) 0%,var(--ta-navy) 44%,#07122BC7 58%,#07122B40 82%,#07122B1A 100%),url('/brand/hero.jpg') right 35%/56% auto no-repeat,var(--ta-navy);box-shadow:var(--ta-shadow-lg);display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
[data-view="Hoy"] .journey-heading::after{content:"";position:absolute;inset:auto 0 0 0;height:4px;background:linear-gradient(90deg,var(--ta-blue),#6FA0FF 40%,transparent)}
[data-view="Hoy"] .journey-heading h2{color:#fff;font-size:clamp(40px,4.6vw,64px);max-width:720px}
[data-view="Hoy"] .journey-heading p{color:#C7D4EC;font-size:16px}
[data-view="Hoy"] .journey-heading .section-kicker{color:var(--ta-blue-300)}
[data-view="Hoy"] .journey-heading .journey-person{color:#C7D4EC}
.journey-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:0;overflow:hidden;margin-bottom:20px}
.journey-stats>div{padding:20px 24px;border-right:1px solid var(--ta-line-2);display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.journey-stats>div:last-child{border-right:0}
.journey-stats b{font-size:44px;line-height:1;color:var(--ta-ink)}
.journey-stats b small{font-size:20px;color:var(--ta-muted);font-family:var(--ta-display)}
.journey-stats span{font-size:12.5px;font-weight:600;color:var(--ta-muted)}
.personal-map{background:radial-gradient(120% 90% at 70% 0%,#163066 0%,var(--ta-navy-2) 45%,var(--ta-navy) 100%);border:1px solid #1A2E57;border-radius:20px;box-shadow:var(--ta-shadow-lg)}
.personal-map-head h3{font-family:var(--ta-display);font-size:30px;text-transform:uppercase;letter-spacing:.01em;color:#fff}
.personal-map-head .section-kicker{color:var(--ta-blue-300)}
.personal-map-head button{background:#ffffff10!important;color:#E7EEFB!important;border:1px solid #ffffff24!important;box-shadow:none!important;display:inline-flex;align-items:center;gap:8px}
.personal-map-head{gap:12px}.personal-map-head>div:last-child,.personal-map-head .pro-actions{flex-wrap:nowrap}.personal-map-head button{white-space:nowrap;padding:8px 12px!important;font-size:13px!important}
.personal-map-head button .ta-icon{width:16px;height:16px}
.journey-shortcuts{gap:16px}
.journey-shortcuts button{padding:22px 22px 20px;gap:6px}
.journey-shortcuts span{font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--ta-blue)}
.journey-shortcuts b{font-family:var(--ta-display);font-size:26px;font-weight:700;text-transform:uppercase;line-height:1.05}
.journey-shortcuts small{color:var(--ta-muted);font-size:13px;font-weight:600}

/* Reto */
.challenge-card{padding:26px}
.challenge-card h3{font-family:var(--ta-display);font-size:34px;font-weight:700;text-transform:uppercase;line-height:1}
.phase-chip{background:var(--ta-navy);color:#fff;border-radius:999px;padding:4px 11px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.challenge-counter b{font-size:64px;line-height:.9;color:var(--ta-ink)}
.challenge-counter b span{font-size:28px;color:var(--ta-muted)}
progress{appearance:none;-webkit-appearance:none;height:8px;border-radius:99px;overflow:hidden;background:var(--ta-line-2);border:0}
progress::-webkit-progress-bar{background:var(--ta-line-2);border-radius:99px}
progress::-webkit-progress-value{background:linear-gradient(90deg,var(--ta-blue),#5B95FF);border-radius:99px}
progress::-moz-progress-bar{background:linear-gradient(90deg,var(--ta-blue),#5B95FF);border-radius:99px}
.success-rule{background:var(--ta-surface-2);border:1px solid var(--ta-line);border-left:3px solid var(--ta-green);border-radius:var(--ta-radius-sm)}
.success-rule span{color:var(--ta-green);font-weight:800;letter-spacing:.1em}

/* ── Formularios ──────────────────────────────────────────────── */
.pro-form label,.rules-controls label,.mobile-map-search label{font-weight:650;color:var(--ta-ink-2);font-size:13px}
.pro-form input,.pro-form textarea,.pro-form select,.pro-person select,.rules-controls select,.mobile-map-search input,.mobile-map-search select,.login-panel input,.technique-assessment select,.journey-person select,#journey-plan,.search-field{background:var(--ta-surface);border:1px solid var(--ta-line);border-radius:var(--ta-radius-sm);min-height:44px;color:var(--ta-ink);font-size:15px;box-shadow:0 1px 2px rgba(11,22,48,.04) inset;transition:border-color .15s,box-shadow .15s}
.pro-form input:focus,.pro-form textarea:focus,.pro-form select:focus,.rules-controls select:focus,.login-panel input:focus{border-color:var(--ta-blue);box-shadow:0 0 0 4px #1F6BFF22;outline:none}
#rules-app .rules-controls label span{font-size:10.5px;letter-spacing:.12em;color:var(--ta-muted);font-weight:800}

/* Pestañas segmentadas */
.pro-tabs{border-bottom:0;background:var(--ta-surface-2);border:1px solid var(--ta-line);border-radius:12px;padding:4px;display:inline-flex;gap:4px;flex-wrap:wrap}
.pro-tabs button{border:0!important;border-radius:9px!important;padding:9px 14px;font-weight:700;color:var(--ta-muted);background:transparent}
.pro-tabs button[aria-selected=true]{background:var(--ta-surface)!important;color:var(--ta-ink)!important;box-shadow:0 1px 3px rgba(11,22,48,.12)}
.rules-tabs{border-radius:12px;background:var(--ta-surface-2);padding:4px;gap:4px;border:1px solid var(--ta-line)}
.rules-tabs button{border-radius:9px!important;font-weight:700;background:transparent}
.rules-tabs button[aria-selected=true]{background:var(--ta-navy)!important;color:#fff!important}

/* Encuesta */
.survey-steps button[aria-current=step]{background:var(--ta-navy);color:#fff;border-radius:10px}
.survey-steps button[aria-current=step] span{background:var(--ta-blue);color:#fff}
.quick-scale button{border-radius:12px;font-family:var(--ta-text);transition:all .12s}
.quick-scale button b{font-family:var(--ta-display);font-size:22px}
.quick-scale button.active{background:linear-gradient(180deg,#2B74FF,#1A62F2);box-shadow:0 8px 18px -8px #1F6BFF}
.quick-group h4{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--ta-blue)}
.quick-row>span b{font-size:15px}

/* Chips de estado */
.state-chip{border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:700}
.state-chip.anchor{background:#E3F6EA;color:#137A3B}.state-chip.developing{background:#FFF4DB;color:#8A5A00}.state-chip.priority{background:#FDE7E7;color:#B42328}.state-chip.unknown{background:var(--ta-line-2);color:var(--ta-muted)}

/* ── Biblioteca ───────────────────────────────────────────────── */
.technique-card{overflow:hidden}
.tech-image img{transition:transform .5s}
.technique-card:hover .tech-image img{transform:scale(1.04)}
.tech-media-placeholder{background:radial-gradient(120% 120% at 100% 0%,#1D3D7A,var(--ta-navy) 70%);color:#C7D6F2}
.tech-media-placeholder b{font-family:var(--ta-display);font-size:30px;text-transform:uppercase;font-weight:700}
.play-chip{background:#07122BCC!important;backdrop-filter:blur(6px);border-radius:999px!important;font-weight:800;letter-spacing:.08em}
.tech-name{font-family:var(--ta-display)!important;font-size:22px!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.01em;line-height:1.05!important}
.filter-pills button,.modality-toggle button{border-radius:999px!important;font-weight:700}
.filter-pills button.active,.modality-toggle button.active{background:var(--ta-navy)!important;color:#fff!important;border-color:var(--ta-navy)!important}

/* Sistemas */
.system-card h3{font-family:var(--ta-display);font-size:24px;text-transform:uppercase;font-weight:700;line-height:1.05}
.system-card.recommended{border-color:var(--ta-blue);box-shadow:0 0 0 1px var(--ta-blue),var(--ta-shadow-lg)}

/* Herramientas */
.tool-card h3{font-family:var(--ta-display);font-size:24px;text-transform:uppercase;font-weight:700}
.tool-icon{border-radius:12px!important;background:var(--ta-blue-50)!important;color:var(--ta-blue)!important}

/* ── Modales y paneles ────────────────────────────────────────── */
dialog.pro-modal{border:0;border-radius:20px;padding:30px;box-shadow:var(--ta-shadow-lg);background:var(--ta-surface);color:var(--ta-ink);max-width:min(560px,calc(100vw - 32px))}
dialog::backdrop{background:#07122B8C;backdrop-filter:blur(4px)}
.pro-modal h2{font-size:34px;margin:6px 0 8px}
.modal-close{width:36px;height:36px;border-radius:10px;border:1px solid var(--ta-line);background:var(--ta-surface);color:var(--ta-ink-2)}
.tech-drawer{border-radius:20px 0 0 20px;box-shadow:var(--ta-shadow-lg)}
.app-toast{background:var(--ta-navy)!important;color:#fff!important;border-radius:12px!important;box-shadow:var(--ta-shadow-lg)!important;font-weight:600}

/* ── Acceso ───────────────────────────────────────────────────── */
#access-screen{font-family:var(--ta-text)}
.login-story{position:relative;overflow:hidden;background:linear-gradient(180deg,#07122BE6 0%,#07122BB3 45%,#07122BF7 100%),url('/brand/hero.jpg') center 35%/cover no-repeat,var(--ta-navy)!important}
.login-story::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--ta-blue),#6FA0FF 50%,transparent)}
.login-mark{background:#fff!important;width:64px!important;height:64px!important;border-radius:18px!important;display:grid!important;place-items:center;box-shadow:0 10px 30px #0008;font-size:0!important}
.login-mark img{width:52px;height:auto}
.login-story h1{font-size:clamp(52px,6vw,86px)!important;color:#fff;line-height:.92!important}
.login-story>div>span{color:var(--ta-blue-300)!important;font-weight:800;letter-spacing:.14em}
.login-story p{color:#C9D6EE!important;font-size:16.5px}
.login-path span{background:#ffffff12!important;border:1px solid #ffffff26!important;color:#fff!important;border-radius:999px!important;padding:7px 14px!important;font-weight:700;backdrop-filter:blur(6px)}
.login-panel{background:var(--ta-surface)!important}
.login-panel h2{font-size:44px!important}
.login-panel .section-kicker{color:var(--ta-blue)}
.login-panel .solid-button{width:100%;min-height:50px;font-size:15px}
.ta-login-logo{display:block;width:210px;height:auto;margin:0 0 28px}

/* ── Mapa ─────────────────────────────────────────────────────── */
.neural-map{background:radial-gradient(120% 100% at 60% 0%,#14306A 0%,var(--ta-navy-2) 40%,var(--ta-navy) 100%)!important;border-radius:20px;border:1px solid #1A2E57}
.neural-toolbar{background:var(--ta-surface)!important;border:1px solid var(--ta-line);border-radius:var(--ta-radius);box-shadow:var(--ta-shadow)}
.fs-open{background:var(--ta-navy)!important;color:#fff!important;border:0!important;border-radius:10px!important;padding:9px 14px!important;font-weight:700}
.fs-open .ta-icon{width:16px;height:16px}
.fs-open-mobile .fs-open{background:linear-gradient(180deg,#2B74FF,#1A62F2)!important;min-height:52px!important;border-radius:14px!important;font-size:15px!important}
.mobile-position-focus{background:radial-gradient(120% 120% at 100% 0%,#163066,var(--ta-navy) 70%)!important;border:0!important;border-radius:18px!important}
.mobile-position-focus h3{font-family:var(--ta-display);font-size:32px;text-transform:uppercase;color:#fff}

/* ── Navegación móvil ─────────────────────────────────────────── */
@media(max-width:850px){
  .app-content{margin-left:0!important}
  .sidebar{display:none!important}
  .topbar{height:60px;padding:0 16px;top:0}
  .topbar h1{font-size:16px}
  .top-actions .icon-button,.top-actions .avatar{width:38px;height:38px}
  .view{padding:18px 16px 110px}
  .mobile-nav{background:color-mix(in srgb,var(--ta-surface) 88%,transparent)!important;backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px);border-top:1px solid var(--ta-line)!important;box-shadow:0 -10px 30px rgba(11,22,48,.06)!important;padding:6px 6px calc(6px + env(safe-area-inset-bottom))!important}
  .mobile-nav button{color:var(--ta-muted)!important;background:none!important;font-size:10.5px!important;font-weight:700;gap:3px;position:relative}
  .mobile-nav button span{display:grid;place-items:center;height:26px}
  .mobile-nav button.active{color:var(--ta-blue)!important}
  .mobile-nav button.active::before{content:"";position:absolute;top:-7px;left:30%;right:30%;height:3px;border-radius:0 0 3px 3px;background:var(--ta-blue)}
  [data-view="Hoy"] .journey-heading{padding:28px 22px 26px;min-height:200px;border-radius:18px;background:linear-gradient(180deg,#07122BCC 0%,#07122BF2 70%),url('/brand/hero.jpg') center 30%/cover no-repeat,var(--ta-navy)}
  [data-view="Hoy"] .journey-heading h2{font-size:42px}
  .journey-stats{grid-template-columns:repeat(2,1fr)}
  .journey-stats>div{border-bottom:1px solid var(--ta-line-2)}
  .journey-stats>div:nth-child(2n){border-right:0}
  .journey-stats b{font-size:38px}
  .page-intro h2,.pro-heading h2{font-size:36px}
  .login-story{min-height:46vh}
  .login-story h1{font-size:54px!important}
  dialog.pro-modal{padding:24px 20px;border-radius:20px 20px 0 0;margin:auto 0 0;max-width:100vw;width:100vw}
}
@media(max-width:1100px) and (min-width:851px){.sidebar{width:214px}.app-content{margin-left:214px}.view{padding:28px 26px 48px}.topbar{padding:0 26px}}

/* Modo oscuro: detalles */
:root[data-theme=dark] .top-actions .avatar{background:var(--ta-blue);border-color:var(--ta-blue)}
:root[data-theme=dark] .solid-button{box-shadow:0 6px 16px -8px #000}
:root[data-theme=dark] .state-chip.anchor{background:#0F3A23;color:#7BE3A1}
:root[data-theme=dark] .state-chip.developing{background:#3A2C09;color:#F5C866}
:root[data-theme=dark] .state-chip.priority{background:#3D1416;color:#FF9C9F}

/* Movimiento reducido */
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Pantalla de carga con marca */


/* Miniaturas de sistemas y estados vacíos */
.system-mini{background:radial-gradient(120% 120% at 100% 0%,#173572,var(--ta-navy) 70%)!important;border-radius:10px}
.system-mini rect{fill:transparent!important}
.system-mini path{stroke:#6E8FC8}
.system-mini path.reaction{stroke:#F5B54A}
.system-mini circle{fill:var(--ta-blue-300)!important}
.mobile-map-route{background:var(--ta-navy)!important;border-radius:16px!important}
.empty-symbol{font-size:0!important;display:grid;place-items:center;width:56px;height:56px;margin:0 auto 12px;border-radius:16px;background:var(--ta-blue-50);color:var(--ta-blue)}
.empty-symbol::before{content:"";width:26px;height:26px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='5' r='2.2'/%3E%3Ccircle cx='6' cy='19' r='2.2'/%3E%3Ccircle cx='18' cy='12' r='2.2'/%3E%3Cpath d='M6 7.2v9.6M8 6.2c4 .8 6.5 2.6 8 4M8 17.8c4-.8 6.5-2.6 8-4'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='5' r='2.2'/%3E%3Ccircle cx='6' cy='19' r='2.2'/%3E%3Ccircle cx='18' cy='12' r='2.2'/%3E%3Cpath d='M6 7.2v9.6M8 6.2c4 .8 6.5 2.6 8 4M8 17.8c4-.8 6.5-2.6 8-4'/%3E%3C/svg%3E") center/contain no-repeat}
.pro-empty{background:var(--ta-surface);border:1px dashed #CBD5E6;border-radius:var(--ta-radius);padding:40px 24px}
.pro-empty h3{font-family:var(--ta-display);font-size:28px;text-transform:uppercase;font-weight:700}
.ta-wordmark{gap:5px!important}

.ta-top-logo{display:none}
@media(max-width:850px){
  .topbar>div:first-child{display:flex;align-items:center;gap:10px}
  .ta-top-logo{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#fff;border:1px solid var(--ta-line);box-shadow:var(--ta-shadow);flex:none}
  .ta-top-logo img{width:26px;height:auto}
  .topbar h1{font-family:var(--ta-display);font-size:22px;font-weight:700;text-transform:uppercase;letter-spacing:.01em}
}

/* Ajustes de biblioteca y navegación */
.sidebar nav button>span:not(.nav-symbol){font-size:13.5px!important;font-weight:600;letter-spacing:0}
.media-count{display:none!important}
.type-chip{background:#07122BCC!important;color:#fff!important;backdrop-filter:blur(6px);border-radius:999px!important;font-weight:800!important;letter-spacing:.06em;text-transform:uppercase;font-size:10.5px!important;padding:5px 10px!important}
.video-admin-chip{background:#ffffffE6;backdrop-filter:blur(6px);font-weight:700;border-color:transparent}
.tech-image{background:radial-gradient(120% 120% at 100% 0%,#1D3D7A,var(--ta-navy) 70%)}
.tech-card-copy>div>span{font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--ta-blue);text-transform:uppercase}
.library-toolbar{background:var(--ta-surface);border:1px solid var(--ta-line);border-radius:var(--ta-radius);box-shadow:var(--ta-shadow);padding:12px}
.results-line{color:var(--ta-muted);font-weight:600}
.rules-summary h3{font-size:32px;margin-top:6px}
.rules-facts b{font-size:36px;line-height:1}
.rules-facts small{font-family:var(--ta-text);font-weight:700}
.rules-row{box-shadow:none}
.rules-row span{font-weight:600}

/* Logotipo completo */
.ta-wordmark-img{display:block;width:142px;height:auto;min-width:0}
.ta-login-brand{display:inline-flex;flex-direction:column;align-items:center;gap:18px;position:relative;z-index:1;align-self:flex-start}
.ta-login-emblem{display:grid;place-items:center;width:150px;height:150px;border-radius:36px;background:#fff;box-shadow:0 24px 60px #000a,0 0 0 1px #ffffff40}
.ta-login-emblem img{width:124px;height:auto}
.ta-login-word{width:330px;max-width:100%;height:auto;filter:drop-shadow(0 4px 18px #0009)}
.login-story>*{position:relative;z-index:1}
@media(max-width:850px){
  .ta-login-brand{gap:14px;align-self:center;margin:4px auto 10px}
  .ta-login-emblem{width:112px;height:112px;border-radius:28px}
  .ta-login-emblem img{width:92px}
  .ta-login-word{width:250px}
  .login-story{min-height:auto!important;padding-top:36px!important}
}

/* Registro por invitación */
.register-form{display:grid;gap:14px}
.register-form label{display:grid;gap:6px;font-weight:650;font-size:13px;color:var(--ta-ink-2)}
.register-form input,.register-form select{min-height:46px;border:1px solid var(--ta-line);border-radius:10px;padding:0 12px;font-size:15px;background:var(--ta-surface);color:var(--ta-ink)}
.register-form input:focus,.register-form select:focus{border-color:var(--ta-blue);box-shadow:0 0 0 4px #1F6BFF22;outline:none}
.register-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:12px}
.register-sep{height:1px;background:var(--ta-line);margin:4px 0}
.login-help a{color:var(--ta-blue);font-weight:700}

/* Invitaciones (profesor) */
.invites-panel{background:var(--ta-surface);border:1px solid var(--ta-line);border-radius:var(--ta-radius);box-shadow:var(--ta-shadow);padding:22px;margin:0 0 22px}
.invites-head h3{font-family:var(--ta-display);font-size:28px;text-transform:uppercase;font-weight:700;margin:4px 0 4px}
.invite-form{display:grid;grid-template-columns:1.2fr 1.5fr .8fr auto;gap:10px;align-items:end;margin:16px 0}
.invite-form label{display:grid;gap:6px;font-size:13px;font-weight:650;color:var(--ta-ink-2)}
.invite-form input,.invite-form select{min-height:44px;border:1px solid var(--ta-line);border-radius:10px;padding:0 12px;font-size:15px;background:var(--ta-surface);color:var(--ta-ink)}
.invite-form .solid-button{min-height:44px;white-space:nowrap}
.invite-result{border:1px solid #BFD3FB;background:linear-gradient(180deg,var(--ta-blue-50),var(--ta-surface));border-radius:14px;padding:16px 18px;margin-bottom:18px}
.invite-result-head{display:flex;justify-content:space-between;align-items:center}
.invite-close{border:0;background:none;font-size:22px;color:var(--ta-muted);cursor:pointer}
.invite-url{display:flex;gap:8px;margin:10px 0}
.invite-url input{flex:1;min-width:0;min-height:44px;border:1px solid var(--ta-line);border-radius:10px;padding:0 12px;font-family:ui-monospace,Consolas,monospace;font-size:13px;background:var(--ta-surface);color:var(--ta-ink)}
.invite-actions{display:flex;flex-wrap:wrap;gap:8px}
.invite-btn{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--ta-line);border-radius:10px;background:var(--ta-surface);color:var(--ta-ink);font-weight:700;font-size:13.5px;text-decoration:none;cursor:pointer}
.invite-btn:hover{border-color:#C6D1E3}
.invite-hint{margin:10px 0 0;font-size:13px}
.invites-list-head{margin:6px 0 10px}
.invites-list{display:grid;gap:8px}
.invite-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--ta-line);border-radius:12px;background:var(--ta-surface-2)}
.invite-row small{display:block;color:var(--ta-muted);font-size:12.5px}
.invite-row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.invite-row-actions button{border:1px solid var(--ta-line);background:var(--ta-surface);border-radius:9px;padding:7px 11px;font-weight:700;font-size:12.5px;cursor:pointer;color:var(--ta-ink)}
.invite-status{font-size:11.5px;font-weight:800;border-radius:999px;padding:4px 10px;white-space:nowrap}
.invite-status.neutral{background:#FFF4DB;color:#8A5A00}.invite-status.info{background:var(--ta-blue-50);color:var(--ta-blue-600)}.invite-status.ok{background:#E3F6EA;color:#137A3B}.invite-status.muted{background:var(--ta-line-2);color:var(--ta-muted)}
.invite-preview{max-width:min(680px,calc(100vw - 24px))!important;width:680px}
.invite-preview iframe{width:100%;height:68vh;border:1px solid var(--ta-line);border-radius:12px;background:#F3F5F9}
@media(max-width:850px){.invite-form{grid-template-columns:1fr}.invite-row{grid-template-columns:1fr auto}.invite-row-actions{grid-column:1/-1;justify-content:flex-start}.register-grid{grid-template-columns:1fr 1fr}}
.ta-wordmark-img,.ta-login-word{filter:brightness(1.35) saturate(1.15)}
.ta-login-word{filter:brightness(1.35) saturate(1.15) drop-shadow(0 4px 18px #0009)}

/* Solicitud de beta */
.beta-cta{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin-top:22px;padding:16px 18px;border-radius:14px;border:1px dashed #9DBBF7;background:var(--ta-blue-50);color:var(--ta-ink);text-align:left;cursor:pointer;transition:border-color .15s,background .15s}
.beta-cta span{font-size:13.5px;color:var(--ta-ink-2);font-weight:600}
.beta-cta b{font-size:16px;color:var(--ta-blue);font-weight:800}
.beta-cta:hover{border-color:var(--ta-blue);background:#E3ECFF}
.register-form textarea{border:1px solid var(--ta-line);border-radius:10px;padding:10px 12px;font:inherit;font-size:15px;resize:vertical;background:var(--ta-surface);color:var(--ta-ink)}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.text-link{margin-top:16px;border:0;background:none;color:var(--ta-blue);font-weight:700;cursor:pointer;padding:0}
.beta-done{display:grid;gap:8px;justify-items:start}
.beta-done-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#E3F6EA;color:#16A34A;font-size:28px;font-weight:800;margin-bottom:6px}

/* Solicitudes de beta (profesor) */
.requests-panel{margin-bottom:26px;padding-bottom:22px;border-bottom:1px solid var(--ta-line)}
.requests-panel .invites-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;flex-wrap:wrap;margin-bottom:12px}
.req-count{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 8px;border-radius:999px;background:#ef4444;color:#fff;font-family:var(--ta-text);font-size:13px;vertical-align:middle}
.requests-list{display:grid;gap:10px}
.request-card{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;padding:16px 18px;border:1px solid var(--ta-line);border-radius:14px;background:var(--ta-surface)}
.request-card.pending{border-left:4px solid var(--ta-amber)}
.request-card.approved{border-left:4px solid var(--ta-green)}
.request-card.denied{opacity:.7}
.request-name{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.request-name b{font-size:16px}
.request-facts{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px}
.request-facts i{display:block;font-style:normal;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ta-muted)}
.request-msg{margin:10px 0 4px;color:var(--ta-ink-2);font-style:italic}
.request-actions{display:flex;flex-direction:column;gap:8px;min-width:130px}
.request-actions .solid-button{background:linear-gradient(180deg,#22B35A,#159447)!important;border-color:#138A41!important;box-shadow:0 6px 16px -6px #16A34AAA!important}
@media(max-width:850px){.request-card{grid-template-columns:1fr}.request-actions{flex-direction:row}.request-actions>*{flex:1}}

/* Tutorial */
#tour{position:fixed;inset:0;z-index:2000}
.tour-shade{position:absolute;inset:0;background:transparent}
#tour.tour-center .tour-shade{background:#07122BB8;backdrop-filter:blur(3px)}
.tour-spot{position:absolute;border-radius:12px;box-shadow:0 0 0 9999px #07122BB8,0 0 0 3px var(--ta-blue),0 0 30px #1F6BFF88;transition:all .3s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.tour-card{position:absolute;width:min(360px,calc(100vw - 24px));background:var(--ta-surface);color:var(--ta-ink);border-radius:18px;padding:20px 20px 16px;box-shadow:var(--ta-shadow-lg);max-height:calc(100dvh - 24px);overflow:auto}
#tour.tour-center .tour-card{left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 32px));padding:28px 26px 20px}
.tour-card h3{font-family:var(--ta-display);font-size:28px;font-weight:700;text-transform:uppercase;line-height:1;margin:12px 0 8px}
.tour-card p{color:var(--ta-ink-2);font-size:14.5px;line-height:1.55;margin:0 0 16px}
.tour-progress{display:flex;gap:4px}
.tour-progress i{flex:1;height:4px;border-radius:4px;background:var(--ta-line-2)}
.tour-progress i.on{background:var(--ta-blue)}
.tour-actions{display:flex;justify-content:space-between;align-items:center;gap:10px}
.tour-actions>div{display:flex;gap:8px}
.tour-skip{border:0;background:none;color:var(--ta-muted);font-weight:700;cursor:pointer;padding:6px 0}
@media(max-width:850px){#tour .tour-card{left:12px!important;right:12px!important;width:auto!important;padding:18px 16px 14px}#tour.tour-center .tour-card{top:50%;transform:translateY(-50%)}.tour-card h3{font-size:25px}.tour-card p{font-size:14px}.tour-actions{flex-wrap:wrap}.tour-actions>div{margin-left:auto}}

/* Vídeo «Soon» */
.soon-chip{position:absolute;left:12px;bottom:12px;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#ffffff1f;border:1px solid #ffffff40;color:#fff;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;backdrop-filter:blur(6px)}
.tech-media-placeholder::after{content:"SOON";position:absolute;right:14px;top:50%;transform:translateY(-50%) rotate(-8deg);font-family:var(--ta-display);font-weight:700;font-size:38px;letter-spacing:.08em;color:#ffffff14;pointer-events:none}
.tech-media-placeholder{position:relative}
.video-admin-chip{top:auto!important;bottom:12px!important;right:12px!important}

/* Pantalla de carga (mínimo 3 s) */
#ta-splash{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:radial-gradient(80% 60% at 50% 42%,#14306A,var(--ta-navy,#07122B) 72%);transition:opacity .6s ease,visibility .6s}
#ta-splash.out{opacity:0;visibility:hidden}
.ta-splash-inner{display:flex;flex-direction:column;align-items:center;gap:22px;animation:ta-rise .9s cubic-bezier(.2,.8,.2,1) both}
.ta-splash-emblem{display:grid;place-items:center;width:132px;height:132px;border-radius:34px;background:#fff;box-shadow:0 24px 70px #000b,0 0 0 1px #ffffff40;animation:ta-breathe 2.2s ease-in-out .9s infinite}
.ta-splash-emblem img{width:108px;height:auto}
.ta-splash-word{width:300px;max-width:72vw;height:auto;filter:brightness(1.35) saturate(1.15) drop-shadow(0 4px 18px #0009)}
.ta-splash-bar{display:block;width:180px;height:4px;border-radius:4px;background:#ffffff1f;overflow:hidden;margin-top:6px}
.ta-splash-bar b{display:block;height:100%;width:0;border-radius:4px;background:linear-gradient(90deg,#1F6BFF,#6FA0FF);animation:ta-load 3s cubic-bezier(.4,0,.2,1) forwards}
@keyframes ta-rise{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
@keyframes ta-breathe{50%{transform:scale(1.035);box-shadow:0 28px 80px #000c,0 0 0 1px #ffffff55,0 0 40px #1F6BFF44}}
@keyframes ta-load{to{width:100%}}
@media(max-width:850px){.ta-splash-emblem{width:108px;height:108px;border-radius:28px}.ta-splash-emblem img{width:88px}.ta-splash-word{width:240px}}
@media(prefers-reduced-motion:reduce){.ta-splash-inner,.ta-splash-emblem{animation:none}.ta-splash-bar b{animation-duration:.01s}}

/* App personal: sin envíos a un profesor */
body[data-role=student] [data-pro="submit-system"]{display:none!important}

/* Vistas antiguas con datos de ejemplo (se retirarán) */
[data-nav="Clases"],[data-nav="Planificación"]{display:none!important}

.soon-pill{margin-left:auto;font-size:9.5px;font-weight:800;letter-spacing:.1em;padding:3px 7px;border-radius:999px;background:#F5B54A26;color:#F5B54A;border:1px solid #F5B54A55}
.coach-soon{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:22px;align-items:stretch}
.coach-soon-hero{position:relative;overflow:hidden;border-radius:20px;padding:36px;color:#fff;background:linear-gradient(110deg,var(--ta-navy) 0%,#07122BE6 55%,#07122B99 100%),url('/brand/hero.jpg') right 35%/cover no-repeat;box-shadow:var(--ta-shadow-lg)}
.coach-soon-hero h2{color:#fff;font-family:var(--ta-display);font-size:clamp(38px,4vw,56px);text-transform:uppercase;line-height:.95;margin:10px 0 12px}
.coach-soon-hero p{color:#C7D4EC;font-size:16px;max-width:520px}
.coach-soon-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;letter-spacing:.12em;padding:6px 12px;border-radius:999px;background:#F5B54A;color:#2A1A00}
.coach-soon-list{display:grid;gap:12px}
.coach-soon-list article{background:var(--ta-surface);border:1px solid var(--ta-line);border-radius:14px;padding:18px 18px;box-shadow:var(--ta-shadow)}
.coach-soon-list b{display:block;font-family:var(--ta-display);font-size:22px;text-transform:uppercase;margin-bottom:4px}
.coach-soon-list p{margin:0;color:var(--ta-ink-2);font-size:14px}
.coach-soon-cta{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.coach-soon-cta small{color:#C7D4EC}
@media(max-width:850px){.coach-soon{grid-template-columns:1fr}.coach-soon-hero{padding:26px 22px}}

/* Privacidad y cuenta */
.consent{display:flex!important;flex-direction:row!important;gap:10px;align-items:flex-start;font-weight:500!important;font-size:13px!important;color:var(--ta-ink-2);line-height:1.45}
.consent input{width:18px;height:18px;min-height:0!important;margin-top:1px;flex:none;accent-color:var(--ta-blue)}
.consent a,.legal-links a{color:var(--ta-blue);font-weight:700}
.legal-links{margin-top:18px;font-size:12.5px;color:var(--ta-muted)}
.forgot-link{display:block;margin-top:12px}
.beta-age-note{font-size:12.5px;margin-top:10px}
.account-privacy{margin-top:18px;border:1px solid var(--ta-line);border-radius:12px;padding:12px 14px}
.account-privacy summary{cursor:pointer;font-weight:700}
.account-privacy .invite-btn{margin:8px 0}
.account-privacy form{margin-top:12px}
#turnstile-box:empty{display:none}
