/* ══════════════════════════════════════════════════════════════
   Tatami Atlas · red compartida (BJJ y Judo), comodidad y pulido
   ══════════════════════════════════════════════════════════════ */
/* Motor de red */
.net-map .net-frame{position:absolute;inset:0;overflow:hidden}
.net-map .jd-edge{marker-end:inherit}
.net-map .net-rotate{display:none;font-size:20px}
.net-map.full{z-index:1400}
.net-map.rot .net-frame{inset:auto;left:50%;top:50%;width:100dvh;height:100vw;transform:translate(-50%,-50%) rotate(90deg)}
.net-map.full .jd-map-tools{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right))}
.net-map.full .jd-legend{bottom:max(12px,env(safe-area-inset-bottom))}
@media (max-width:850px){.net-map .net-rotate{display:block}.net-map .jd-map-tools button{width:42px;height:42px}}

/* Mapa de BJJ en el móvil */
#bjj-net{display:none}
.map-view.net-mobile #bjj-net{display:grid;gap:14px;margin-top:14px}
.map-view.net-mobile>#mobile-atlas,.map-view.net-mobile>.fs-open-mobile,.map-view.net-mobile>.neural-toolbar,.map-view.net-mobile>.profile-map-tools{display:none!important}
.bj-filters{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:2px 16px 4px}
.bj-filters::-webkit-scrollbar{display:none}
.bj-filters .ta-chip{flex:none;display:inline-flex;align-items:center;gap:7px}
.bj-filters .ta-chip i{width:9px;height:9px;border-radius:50%}
.bj-vids{display:flex;flex-wrap:wrap;gap:8px}
#bjj-net .jd-panel .state-chip{display:inline-block;margin-top:4px}
.jd-node.bj-band-0,.jd-node.bj-band-1{border-color:#3DD68C55;background:#10291ff2}
.jd-node.bj-band-0 .jd-orb,.jd-node.bj-band-1 .jd-orb{border-color:#3DD68C99;color:#7BE3A1;background:#0b2418}
.jd-node.bj-band-0.sel,.jd-node.bj-band-1.sel{background:#17432f;border-color:#3DD68C;box-shadow:0 0 0 4px #16A34A2e,0 0 34px #16A34A66}
.jd-node.bj-band-5,.jd-node.bj-band-6{border-color:#FF6B7055;background:#2a141af2}
.jd-node.bj-band-5 .jd-orb,.jd-node.bj-band-6 .jd-orb{border-color:#FF6B7099;color:#FF9C9F;background:#240d12}
.jd-node.bj-band-5.sel,.jd-node.bj-band-6.sel{background:#4a1c24;border-color:#FF6B70;box-shadow:0 0 0 4px #E5484D2e,0 0 34px #E5484D66}
.jd-node.k-anchor .jd-orb{outline:3px solid #3DD68C;outline-offset:2px}
.jd-node.k-developing .jd-orb{outline:3px solid #F5C866;outline-offset:2px}
.jd-node.k-priority .jd-orb{outline:3px solid #FF6B70;outline-offset:2px}

/* Judo: favoritas y vistas */
.jd-card{position:relative}
.jd-fav{position:absolute;right:8px;top:8px;z-index:2;width:40px;height:40px;border-radius:50%;border:1px solid #ffffff33;background:#07122Bcc;color:#ffffff99;font-size:17px;cursor:pointer;backdrop-filter:blur(4px)}
.jd-fav.on{color:#FF6B70;border-color:#FF6B70}
.jd-seen{position:absolute;left:8px;top:8px;z-index:2;padding:3px 9px;border-radius:999px;background:#16A34A;color:#fff;font:800 11px var(--ta-text)}
.technique-card.seen .tech-image::after{content:"✓";position:absolute;right:6px;bottom:6px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#16A34A;color:#fff;font:800 13px var(--ta-text)}

/* Tamaño del texto (Ajustes) */
.view:not(.map-view):not(#judo-view){zoom:var(--ta-zoom,1)}
dialog.ta-sheet,dialog.pro-modal:not(.video-quick){zoom:var(--ta-zoom,1)}

/* Modo gimnasio */
html.gym #tatami-timer .tm-btn{width:92px!important;height:92px!important;font-size:34px!important}
html.gym #tatami-timer .tm-play{width:150px!important;height:150px!important;font-size:54px!important}
html.gym #tatami-timer .tm-close{width:60px!important;height:60px!important;font-size:24px!important}
html.gym #tatami-timer .tm-presets button{min-height:78px;font-size:17px}
html.gym #tatami-timer .tm-stepper button{width:64px!important;height:64px!important;font-size:28px!important}
html.gym #tatami-timer .tm-stage{cursor:pointer}
html.gym .sb-btns button{min-height:84px!important;font-size:14px!important}
html.gym .sb-btns button b{font-size:30px!important}
html.gym .sb-clock-btns button{width:68px!important;height:68px!important;font-size:24px!important}
html.gym .sb-clock-btns .sb-play{width:96px!important;height:96px!important;font-size:34px!important}
html.gym .sb-pts{font-size:clamp(84px,24vw,150px)!important}
html.gym .sb-time{font-size:clamp(84px,22vw,150px)!important;cursor:pointer}
html.gym #goals-view .goal-hit{min-height:130px!important;font-size:22px!important}
html.gym .ta-weekly-count button{width:68px;height:68px;font-size:30px}

/* Bloques largos plegados en el móvil */
.ta-clamp{position:relative;max-height:330px;overflow:hidden}
.ta-clamp::after{content:"";position:absolute;left:0;right:0;bottom:0;height:120px;background:linear-gradient(transparent,var(--ta-surface) 78%);pointer-events:none}
.ta-clamp-btn{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:2;min-height:42px;padding:9px 18px;border-radius:999px;border:1px solid var(--ta-blue)!important;background:var(--ta-blue-50)!important;color:var(--ta-blue)!important;font:800 13.5px var(--ta-text);cursor:pointer;white-space:nowrap}
:not(.ta-clamp)>.ta-clamp-btn{display:none}

/* Estados vacíos y de carga con el mismo aspecto en toda la app */
.pro-empty,.journey-empty,.student-empty,.empty-state{border:1.5px dashed var(--ta-line)!important;border-radius:20px!important;background:var(--ta-surface)!important;padding:36px 22px!important;text-align:center;color:var(--ta-muted)}
.pro-empty h3,.journey-empty h3,.student-empty h3,.empty-state h3{font-family:var(--ta-display);font-size:26px;text-transform:uppercase;color:var(--ta-ink);margin:0 0 8px;line-height:1.05}
.journey-empty .solid-button,.pro-empty .solid-button{margin-top:10px}

/* Pantallas antiguas: tarjetas y títulos con el estilo actual */
.pro-view .pro-panel,.pro-view .recommendation,.pro-view .profile-card,.rules-card{border-radius:18px!important;border:1px solid var(--ta-line)!important;box-shadow:var(--ta-shadow)}
.pro-view .pro-section-head h3,.rules-card h3{font-family:var(--ta-display);text-transform:uppercase;letter-spacing:.01em;line-height:1.05}
.pro-view .pro-tabs{gap:6px;padding:5px;border-radius:14px;background:var(--ta-surface-2);border:1px solid var(--ta-line)!important}
.pro-view .pro-tabs button{border:0!important;border-radius:10px!important;background:none;color:var(--ta-muted);font-weight:700;min-height:40px}
.pro-view .pro-tabs button[aria-selected=true]{background:var(--ta-blue)!important;color:#fff!important}

/* Mapa antiguo a pantalla completa (escritorio): el aviso no tapa los controles */
#map-fs .fs-hint{left:16px;right:auto;transform:none;max-width:calc(100% - 150px);white-space:normal}

/* Cronómetro: iconos dibujados y centrados */
.tm-btn,.tm-play,.tm-close{display:grid;place-items:center;padding:0}
.tm-play svg{width:40px;height:40px}
.tm-close svg{width:22px;height:22px}
html.gym #tatami-timer .tm-btn svg{width:40px;height:40px}
html.gym #tatami-timer .tm-play svg{width:64px;height:64px}
