/* TreinaRun — identidade compartilhada e agenda mobile first. */
:root {
    --tr-petrol:#083f49; --tr-teal:#00858e; --tr-mint:#00a5ac;
    --tr-gold:#ffd16a; --tr-paper:#f5f7f7; --tr-line:#dfe8e8;
}
html { scroll-padding-top:96px; }
body { margin:0; background:var(--tr-paper); color:var(--tr-petrol); -webkit-text-size-adjust:100%; }
:where(a,button,input,select,summary):focus-visible { outline:3px solid #d89c21; outline-offset:3px; }

/* Navegação: a conta continua acessível sem abrir o menu no celular. */
.runable-header { background:#fffffff2; border-bottom:1px solid var(--tr-line); box-shadow:0 3px 18px #083f4904; }
.runable-header__accent { height:2px; background:linear-gradient(90deg,var(--tr-petrol) 0 35%,var(--tr-mint) 35% 85%,var(--tr-gold) 85%); }
.runable-header__inner { min-height:78px; width:min(1200px,calc(100% - 48px)); gap:28px; }
.runable-brand { gap:8px; }
.runable-brand__symbol { width:50px; height:50px; filter:none; }
.runable-brand__symbol--company { width:auto; max-width:180px; }
.runable-brand__text { font-size:26px; letter-spacing:-1.3px; color:var(--tr-petrol); }
.runable-brand__text span { color:var(--tr-teal); }
.runable-brand__identity { gap:7px; }
.runable-brand__tagline { font-size:8px; letter-spacing:.13em; color:#71898e; }
.runable-nav__primary { background:#f1f5f5; border:1px solid #e8eeee; border-radius:14px; box-shadow:none; padding:4px; gap:4px; }
.runable-nav__link,.runable-nav__plan { min-height:44px; white-space:nowrap; font-size:13px; }
.runable-nav__link.is-active { background:#fff; color:var(--tr-petrol); box-shadow:0 2px 5px #083f4909; }
.runable-nav__plan { background:transparent; border-color:transparent; color:#4e6e75; box-shadow:none; }
.runable-nav__plan:hover,.runable-nav__plan.is-active { background:#fff1cf; color:#604b1e; }
.runable-nav__plan small { display:none; }
.runable-nav__button--google { min-height:46px; font-weight:650; border-radius:12px; white-space:nowrap; box-shadow:none; }
.tr-header-account,.tr-mobile-nav { display:none; }
.runable-menu-button { width:44px; min-height:44px; padding:0; justify-content:center; border:1px solid var(--tr-line); border-radius:12px; background:#fff; }
.runable-menu-button__label { display:none; }

/* Agenda: introdução curta, busca em primeiro plano, regiões em uma linha. */
.treinarun-agenda { background:var(--tr-paper); }
.tr-agenda-shell { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; width:min(1200px,calc(100% - 32px)); margin:24px auto; }
.tr-agenda-intro { min-width:0; }
.tr-eyebrow { display:flex; align-items:center; gap:7px; font-size:10px; font-weight:750; text-transform:uppercase; letter-spacing:.09em; color:#5d7a80; }
.tr-eyebrow>span { width:6px; height:6px; background:var(--tr-teal); border-radius:50%; box-shadow:0 0 0 4px #00858e0c; }
.tr-agenda-intro h1 { font-size:clamp(29px,4vw,42px); line-height:1.12; letter-spacing:-.055em; font-weight:800; margin:10px 0 8px; color:var(--tr-petrol); }
.tr-agenda-intro h1 em { color:var(--tr-teal); font-style:normal; }
.tr-agenda-intro p { font-size:13px; line-height:1.5; color:#637c82; margin:0; }
.tr-plan-banner { position:relative; isolation:isolate; display:flex; align-items:center; gap:14px; min-width:0; padding:18px; overflow:hidden; border:1px solid #124e55; border-radius:18px; background:#083f49; color:#fff; text-decoration:none; }
.tr-plan-banner::before,.tr-plan-banner::after { content:""; position:absolute; z-index:-1; width:195px; height:275px; right:-60px; top:-100px; border:1px solid #73ced026; border-radius:50%; transform:rotate(35deg); pointer-events:none; }
.tr-plan-banner::after { width:235px; height:315px; right:-80px; top:-120px; }
.tr-plan-banner:hover { background:#10545d; color:#fff; }
.tr-plan-banner__icon { display:grid; place-items:center; width:42px; height:48px; flex:0 0 42px; background:#ffffff0e; border:1px solid #ffffff13; border-radius:12px; color:var(--tr-gold); }
.tr-plan-banner__icon svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linejoin:round; }
.tr-plan-banner__copy { display:grid; gap:5px; min-width:0; }
.tr-plan-banner__tag { font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; color:var(--tr-gold); }
.tr-plan-banner__copy strong { font-size:15px; letter-spacing:-.02em; line-height:1.3; color:#fff; }
.tr-plan-banner__copy>span:last-child { font-size:11px; color:#bad7da; }
.tr-plan-banner__arrow { margin-left:auto; font-size:25px; color:var(--tr-gold); }

/* Controles nativos: leves, acessíveis e sem dependências adicionais. */
.treinarun-agenda .agenda-filtros { min-width:0; margin:0; padding:18px; border:1px solid #d8e5e5; border-radius:20px; background:#fff; box-shadow:0 4px 22px #083f4904; }
.treinarun-agenda .agenda-filtros__inner { width:100%; }
.treinarun-agenda .agenda-filtros__head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 0 12px; }
.treinarun-agenda .agenda-filtros__head h2 { display:flex; align-items:center; gap:9px; margin:0; font-size:18px; font-weight:750; letter-spacing:-.035em; }
.agenda-filtros__head svg,.tr-search-more summary svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; }
.tr-search-reset { min-height:44px; padding:8px 2px 8px 12px; border:0; background:none; color:#5a757c; font:inherit; font-size:12px; cursor:pointer; text-decoration:underline; text-underline-offset:4px; }
.treinarun-agenda .agenda-filtros__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.treinarun-agenda .agenda-filtro { min-width:0; grid-column:auto; margin:0; }
.treinarun-agenda .agenda-filtro>span,.tr-search-name>span { display:block; font-size:11px; font-weight:700; letter-spacing:0; margin:0 0 7px; color:#4e6d74; }
.treinarun-agenda .agenda-filtro__select,.tr-search-name input { width:100%; min-height:50px; padding:11px 32px 11px 12px; border:1px solid #dce6e7; border-radius:10px; background-color:#f8fafa; color:#244c55; box-shadow:none; font:inherit; font-size:16px; line-height:1.35; text-overflow:ellipsis; box-sizing:border-box; }
.treinarun-agenda .agenda-filtro--uf .agenda-filtro__select { border-color:#acd0cf; background-color:#f0f8f7; font-weight:650; }
.treinarun-agenda .agenda-filtro__select:disabled { background:#f3f5f5; color:#7d9094; border-color:#e5eaea; }
.treinarun-agenda .agenda-filtro__select:focus,.tr-search-name input:focus { border-color:var(--tr-teal); outline:3px solid #00858e20; outline-offset:1px; }
.tr-location-status { margin:10px 0 12px; color:#6a8389; font-size:11px; line-height:1.5; }
.tr-search-more { border-top:1px solid #edf1f1; }
.tr-search-more summary { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:46px; color:#315b63; font-size:12px; font-weight:650; cursor:pointer; list-style:none; }
.tr-search-more summary::-webkit-details-marker { display:none; }
.tr-search-more summary>span:first-child { display:flex; align-items:center; gap:8px; }
.tr-search-more__hint { font-size:10px; font-weight:400; color:#6a8389; }
.tr-search-more__hint::after { display:inline-block; content:"+"; margin-left:10px; font-size:16px; font-weight:500; color:#476b71; }
.tr-search-more[open] .tr-search-more__hint::after { content:"−"; }
.tr-search-more__fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 12px; padding:6px 0 0; }
.tr-search-name { display:block; grid-column:1/-1; min-width:0; }
.tr-search-name input { padding-right:12px; }
.tr-search-name input::placeholder { color:#83979c; font-size:13px; }
.treinarun-agenda .filtro-local-ajuda { margin:12px 0 4px; max-width:none; text-align:left; font-size:11px; color:#6a8389; line-height:1.5; }
.tr-search-results { display:flex; align-items:center; justify-content:space-between; gap:10px; border-top:1px solid #edf1f1; padding-top:12px; margin-top:2px; font-size:11px; }
.tr-search-results strong { font-weight:600; color:#526f76; }
.tr-search-results a { display:flex; flex-shrink:0; align-items:center; justify-content:center; gap:14px; min-height:44px; padding:10px 15px; border-radius:10px; background:var(--tr-teal); color:#fff; text-decoration:none; font-size:12px; font-weight:700; }
.tr-search-results a:hover { background:#006873; }
#agendaSemResultados { padding:14px; border-radius:10px; background:#fff6df; color:#775d22; font-size:13px; line-height:1.6; margin:14px 0 0; }
.treinarun-agenda .seo-estados-box { width:100%; min-width:0; margin:0; padding:0; border:0; border-radius:0; background:none; box-shadow:none; }
.treinarun-agenda .seo-estados-box__head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:1px 0 8px; }
.treinarun-agenda .seo-estados-box h2 { font-size:12px; font-weight:700; letter-spacing:0; margin:0; color:#506e75; }
.seo-estados-box__head>span { font-size:10px; color:#6c858b; white-space:nowrap; }
.treinarun-agenda .seo-estados { gap:8px; padding:3px 2px 8px; scroll-snap-type:x proximity; scrollbar-width:thin; }
.treinarun-agenda .seo-estados a { min-height:42px; padding:10px 16px; border:1px solid #dce6e7; border-radius:10px; background:#fff; color:#42636a; font-size:12px; font-weight:600; box-shadow:none; scroll-snap-align:start; }
.treinarun-agenda .seo-estados a:hover { background:#e7f3f1; color:var(--tr-teal); border-color:#a8cfcb; transform:none; }

/* Cards da agenda: cartaz quadrado, selo de data e informações em linha. */
.treinarun-agenda .container-cards { width:min(1200px,calc(100% - 32px)); max-width:none; padding:0!important; margin:0 auto; scroll-margin-top:90px; }
.tr-agenda-list-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 16px; }
.tr-agenda-list-head h2 { font-size:20px; font-weight:750; letter-spacing:-.04em; margin:0; color:var(--tr-petrol); }
.tr-agenda-list-head>span { font-size:10px; color:#73888e; }
.treinarun-agenda .row-cards { display:grid; grid-template-columns:minmax(0,1fr); gap:22px 20px; padding-top:0; align-items:stretch; }
.treinarun-agenda .card-custom { display:flex; flex-direction:column; min-width:0; width:auto; margin:0; border:1px solid #ebeeee; border-radius:22px; background:#fff; box-shadow:0 2px 9px #1523350b; transition:box-shadow .18s ease,border-color .18s ease; }
.treinarun-agenda .card-custom:hover { transform:none; border-color:#c8dedd; box-shadow:0 8px 24px #083f4912; }
.treinarun-agenda .card-data-topo { display:flex; flex-direction:column; justify-content:center; gap:2px; top:0; left:0; width:66px; min-height:68px; max-width:100%; padding:8px; border:0; border-radius:6px 0 14px 0; background:#527d79; color:#fff; line-height:1.1; box-shadow:none; pointer-events:none; z-index:2; }
.treinarun-agenda .card-data-mes { font-size:15px; font-weight:500; }
.treinarun-agenda .card-data-dia { font-size:26px; font-weight:750; letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
.treinarun-agenda .card-imagem { position:relative; flex:none; min-width:0; margin:14px 14px 0; padding:0; border-radius:6px; background:#f8fafa; }
.treinarun-agenda .card-imagem a { display:block; border-radius:6px; }
.treinarun-agenda .card-imagem img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; object-position:center; border-radius:6px; }
.treinarun-agenda .card-imagem img.tr-race-image-fallback { object-fit:contain; padding:36px; box-sizing:border-box; }
.treinarun-agenda .card-body { flex:1 0 auto; min-width:0; padding:12px 14px 18px; }
.treinarun-agenda .card-modalidade { display:block; margin-bottom:6px; color:#42565d; font-size:14px; line-height:1.4; }
.treinarun-agenda .evento-exibir { display:block; max-width:100%; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; color:#1c3037; font-size:18px; font-weight:750; letter-spacing:-.02em; line-height:1.45; text-transform:uppercase; }
.treinarun-agenda .evento-exibir:hover { color:var(--tr-teal); }
.treinarun-agenda .card-meta { display:flex; align-items:center; gap:14px; min-width:0; margin-top:16px; color:#4b626a; font-size:13px; line-height:1.5; }
.treinarun-agenda .card-meta svg { width:16px; height:16px; flex:0 0 16px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.treinarun-agenda .cidade-exibir,.treinarun-agenda .card-horario { display:flex; align-items:center; gap:7px; min-width:0; margin:0; color:inherit; font:inherit; }
.treinarun-agenda .card-horario { flex-shrink:0; font-variant-numeric:tabular-nums; }
.treinarun-agenda .cidade-exibir>span { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.treinarun-agenda .card-participantes { padding:0 14px 16px; border-top:0; }
.treinarun-agenda .participantes-resumo { font-size:11px; min-height:30px; margin:0 0 10px; }
.treinarun-agenda .participantes-resumo:not(:has(img)):has([data-participantes-texto]:empty) { display:none; }
.treinarun-agenda .participacao-btn { min-height:48px; padding:12px 14px; border:1px solid #00858e; border-radius:10px; background:var(--tr-teal); color:#fff; font-size:13px; font-weight:700; gap:8px; }
.treinarun-agenda .participacao-btn:hover { background:#006873; border-color:#006873; }
.treinarun-agenda .participacao-btn::after { content:"↗"; font-size:18px; font-weight:400; }
.treinarun-agenda .card-footer-fonte { margin-top:auto; border-top:1px solid #f0f3f3; border-radius:0 0 21px 21px; padding:10px 14px; background:#fff; color:#75898d; font-size:10px; overflow-wrap:anywhere; }

/* Rodapé compacto; todos os calendários continuam disponíveis. */
.runable-footer { margin-top:56px; background:#083f49; }
.runable-footer__inner { width:min(1200px,calc(100% - 48px)); grid-template-columns:1.4fr .8fr 1fr; gap:60px; padding:40px 0 30px; }
.runable-footer__logo img { width:50px; height:50px; object-fit:contain; background:#fff; border-radius:12px; filter:none; }
.runable-footer__logo>span { font-size:26px; letter-spacing:-1px; }
.runable-footer__brand p,.runable-footer__promise p { font-size:12px; line-height:1.75; }
.runable-footer__links { gap:2px; }
.runable-footer__links a { display:flex; align-items:center; min-height:44px; padding:5px 0; font-size:12px; }
.tr-footer-regions { position:relative; z-index:1; width:min(1200px,calc(100% - 48px)); margin:0 auto; border-top:1px solid #ffffff1a; }
.tr-footer-regions summary { display:flex; justify-content:space-between; align-items:center; min-height:54px; color:#c6dfe1; font-size:12px; cursor:pointer; list-style:none; }
.tr-footer-regions summary::-webkit-details-marker { display:none; }
.tr-footer-regions summary::after { content:"+"; font-size:19px; color:#ffdb88; }
.tr-footer-regions[open] summary::after { content:"−"; }
.tr-footer-regions nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 20px; padding-bottom:20px; }
.tr-footer-regions a { display:flex; align-items:center; min-height:44px; color:#bdd6d9; font-size:12px; text-decoration:none; }
.tr-footer-regions a:hover { color:#ffdb88; }
.runable-footer__bottom { width:min(1200px,calc(100% - 48px)); font-size:10px; padding:20px 0; }

/* Ajustes compartilhados já usados no login, perfil e treinos. */
.login-page .login-main { margin-top:24px; }
.login-page .google-login-button { border-radius:12px; min-height:52px; font-size:16px; }
.login-page .google-login-remember,.login-page .login-agenda { min-height:44px; }
.login-page .login-agenda { display:flex; align-items:center; justify-content:center; }
:is(.rp-main,.tr-main,.sp-main,.publico-main,.tp-main) { overflow-wrap:anywhere; }
:is(.rp-main,.tr-main,.sp-main,.publico-main,.tp-main) :is(input,select,textarea) { max-width:100%; box-sizing:border-box; }
.tr-event-cover { max-width:100%; }

@media(min-width:600px) {
    .treinarun-agenda .row-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(min-width:900px) {
    .tr-agenda-shell { width:min(1200px,calc(100% - 48px)); grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:24px; margin:36px auto 24px; align-items:center; }
    .tr-agenda-intro { grid-area:1/1; }
    .tr-plan-banner { grid-area:1/2; padding:22px; }
    .tr-plan-banner__copy strong { font-size:18px; }
    .treinarun-agenda .agenda-filtros { grid-column:1/-1; padding:22px 26px; }
    .treinarun-agenda .agenda-filtros__inner { display:grid; grid-template-columns:1fr 1.55fr; gap:0 20px; }
    .treinarun-agenda .agenda-filtros__head { grid-column:1/-1; margin-bottom:10px; }
    .treinarun-agenda .agenda-filtros__grid { grid-column:1; grid-row:2; }
    .tr-search-more { grid-column:2; grid-row:2/4; border-top:0; }
    .tr-search-more summary { display:none; }
    .tr-search-more__fields { grid-template-columns:1.4fr 1fr 1fr; padding-top:0; gap:12px; }
    .tr-search-name { grid-column:auto; }
    .tr-location-status { grid-column:1; margin:10px 0; }
    .treinarun-agenda .filtro-local-ajuda { margin:10px 0; }
    .tr-search-results { grid-column:1/-1; margin-top:8px; }
    #agendaSemResultados { grid-column:1/-1; }
    .treinarun-agenda .seo-estados-box { grid-column:1/-1; }
    .treinarun-agenda .container-cards { width:min(1200px,calc(100% - 48px)); }
    .treinarun-agenda .row-cards { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
    .tr-agenda-list-head { margin-bottom:20px; }
    .tr-agenda-list-head h2 { font-size:24px; }
}
@media(min-width:1500px) {
    .treinarun-agenda .container-cards { width:min(1440px,calc(100% - 48px)); }
    .treinarun-agenda .row-cards { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
}
@media(max-width:900px) {
    body:has(.tr-mobile-nav) { padding-bottom:calc(94px + env(safe-area-inset-bottom,0px)); }
    .runable-header__inner { min-height:64px; width:calc(100% - 32px); gap:10px; }
    .runable-brand { margin-right:auto; gap:5px; }
    .runable-brand__symbol { width:38px; height:40px; }
    .runable-brand__symbol--company { width:auto; max-width:130px; }
    .runable-brand__text { font-size:22px; letter-spacing:-1px; }
    .runable-brand__tagline { display:block; font-size:6px; letter-spacing:.08em; }
    .runable-brand__identity { gap:5px; }
    .tr-header-account { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:44px; padding:6px 10px; border:1px solid var(--tr-line); border-radius:12px; background:#fff; font-size:12px; font-weight:650; color:#375860; text-decoration:none; }
    .tr-header-account img { border-radius:50%; object-fit:cover; }
    .tr-header-account:has(img) { padding:3px; min-width:44px; border-radius:50%; }
    .runable-header.is-menu-open .runable-nav { border-radius:16px; padding:14px; box-shadow:0 16px 35px #083f4920; max-height:calc(100dvh - 170px); }
    .runable-nav__primary { background:none; padding:0; border:0; box-shadow:none; }
    .runable-nav__button--google { min-height:50px; }
    .tr-mobile-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); position:fixed; bottom:calc(10px + env(safe-area-inset-bottom,0px)); left:12px; right:12px; z-index:1040; gap:4px; padding:6px; border:1px solid #dce8e7; border-radius:20px; background:#fffffff5; backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); box-shadow:0 6px 30px #083f491c; }
    .tr-mobile-nav a { display:flex; align-items:center; justify-content:center; flex-direction:column; gap:4px; min-height:54px; border-radius:14px; color:#6a8388; text-decoration:none; font-size:10px; font-weight:650; }
    .tr-mobile-nav a[aria-current=page] { background:#e9f5f3; color:#007b83; }
    .tr-mobile-nav svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
    .participacao-aviso { bottom:calc(94px + env(safe-area-inset-bottom,0px)); }
    .runable-footer__inner { grid-template-columns:1fr 1fr; width:calc(100% - 40px); gap:24px 28px; padding:30px 0 20px; }
    .runable-footer__brand { grid-column:1/-1; }
    .runable-footer__brand p { max-width:400px; margin-bottom:0; }
    .runable-footer__links { grid-template-columns:1fr; gap:2px; }
    .runable-footer__links strong { margin-bottom:7px; }
    .runable-footer__promise p { margin:0; }
    .tr-footer-regions,.runable-footer__bottom { width:calc(100% - 40px); }
    .tr-footer-regions nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }
    :is(.rp-main,.tr-main,.sp-main,.tp-main) :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { font-size:16px; }
    :is(.rp-button,.tr-button,.tr-submit,.tr-new-button,.tp-button) { min-height:48px; }
    .login-page .login-shell { display:flex; flex-direction:column; }
    .login-page .login-access { order:-1; padding:26px 24px; }
    .login-page .login-story { padding:24px; }
    .login-page .login-story h1 { font-size:30px; margin:12px 0; }
    .login-page .login-story h1 br { display:none; }
    .login-page .login-steps { margin-top:20px; }
    .login-page .login-track { display:none; }
}
@media(max-width:480px) {
    .runable-planilha-modal__dialog { max-height:calc(100dvh - 32px); overflow:auto; }
    .tr-hero,.tr-config-grid,.tr-detail-head,.sp-hero { min-width:0; }
    .tr-agenda-intro p { font-size:12px; }
    .tr-plan-banner { gap:10px; padding:16px; }
}
@media(max-width:359px) {
    .runable-header__inner { gap:6px; width:calc(100% - 24px); }
    .runable-brand__text { font-size:20px; }
    .runable-brand__symbol { width:32px; }
    .tr-header-account { padding:6px 8px; }
    .agenda-filtros__head svg { display:none; }
    .tr-search-more__hint { font-size:9px; }
    .tr-plan-banner__icon { display:none; }
}
@media(prefers-reduced-motion:reduce) {
    *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; }
}
