/* Conta, perfil, ranking e navegação do player web (index.html) */

/* ── Barra de abas (igual ao dock do app: pílula branca flutuante) ── */
#tabbar{position:absolute;left:16px;right:16px;bottom:calc(var(--sb) + 16px);z-index:5;display:none;
  align-items:center;justify-content:space-between;background:#fff;border-radius:999px;
  padding:6px 8px;box-shadow:0 8px 24px rgba(0,0,0,.15)}
body[data-scr="home"] #tabbar,body[data-scr="ranking"] #tabbar,body[data-scr="profile"] #tabbar,
body:not([data-scr]) #tabbar{display:flex}
#tabbar button{display:flex;align-items:center;justify-content:center;height:48px;padding:0 12px;border:none;
  border-radius:999px;background:transparent;color:#A0A0A0;font-family:var(--f);font-size:12px;font-weight:700;
  cursor:pointer;transition:background-color .2s,color .2s}
#tabbar button i{width:24px;height:24px;flex-shrink:0;background:currentColor;
  -webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat}
#tabbar button span{max-width:0;margin-left:0;overflow:hidden;white-space:nowrap;opacity:0;
  transition:max-width .2s,margin-left .2s,opacity .2s}
#tabbar button.on{color:var(--c);background:color-mix(in srgb,var(--c) 12%,transparent)}
#tabbar button.on span{max-width:90px;margin-left:6px;opacity:1}

/* o rodapé das telas com abas não pode ficar escondido atrás da barra */
.tabscreen,#scr-home{background:#fff;padding-top:var(--st)}
#scr-home .home-scroll,.tabscreen .home-scroll{padding-bottom:calc(var(--sb) + 96px)}
#scr-ranking,#scr-profile,#scr-login,#scr-result{background:#fff}
#scr-login{padding-top:var(--st)}
#scr-login .home-scroll{padding-bottom:calc(var(--sb) + 32px)}
#scr-result{padding-top:var(--st)}
#scr-result .home-scroll{display:flex;align-items:center;padding-bottom:calc(var(--sb) + 24px)}

/* ── Botões / campos ── */
.btn-primary{width:100%;height:52px;border:none;border-radius:16px;background:var(--purple);color:#fff;
  font-family:var(--f);font-size:16px;font-weight:700;cursor:pointer;margin-top:12px;transition:opacity .15s}
.btn-primary:active{opacity:.85}.btn-primary:disabled{opacity:.5}
.btn-link{display:block;width:100%;background:none;border:none;color:var(--purple);font-family:var(--f);
  font-size:14px;font-weight:700;padding:14px 0;cursor:pointer;text-align:center}
.btn-link.danger{color:#DC2626}
.btn-google{width:100%;height:52px;border-radius:16px;border:1.5px solid #DDD;background:#fff;color:#333;
  font-family:var(--f);font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer}
.back-link{background:none;border:none;font-family:var(--f);font-size:16px;font-weight:700;color:var(--purple);cursor:pointer;padding:4px 0 8px}
.login-logo{text-align:center;margin:4px 0 20px}
.login-logo img{width:76px;height:76px;border-radius:20px;box-shadow:0 6px 18px rgba(124,58,237,.3)}
.login-logo h1{font-size:28px;margin-top:8px}
.login-logo p{font-size:13px;color:#777;margin-top:2px}
.login-form input,.uname-input{width:100%;height:50px;border:1.5px solid #E2E2EA;border-radius:14px;padding:0 14px;
  font-family:var(--f);font-size:16px;margin-top:10px;outline:none;background:#FAFAFC}
.login-form input:focus,.uname-input:focus{border-color:var(--purple);background:#fff}
.forgot{display:block;text-align:right;font-size:13px;color:var(--purple);margin-top:10px;font-weight:500;text-decoration:none}
.login-error{color:#DC2626;font-size:13px;min-height:18px;margin-top:8px}
.or{display:flex;align-items:center;gap:12px;color:#aaa;font-size:13px;margin:18px 0}
.or::before,.or::after{content:'';flex:1;height:1px;background:#E5E5EC}

/* ── Abas segmentadas ── */
.seg{display:flex;background:#F1F1F6;border-radius:14px;padding:4px;margin:6px 0 14px}
.seg button{flex:1;border:none;background:none;border-radius:11px;padding:9px 0;font-family:var(--f);
  font-size:14px;font-weight:700;color:#8A8AA0;cursor:pointer}
.seg button.on{background:#fff;color:var(--purple);box-shadow:0 1px 4px rgba(0,0,0,.1)}

/* ── Banners da home ── */
.install-banner,.guest-cta{display:none;align-items:center;gap:10px;justify-content:space-between;
  border-radius:16px;padding:12px 14px;margin:2px 0 12px;font-size:13px;line-height:1.35}
.install-banner{background:#EDE9FE;color:#4C1D95}
.guest-cta{background:#FEF3C7;color:#92400E}
.install-banner button,.guest-cta button{flex-shrink:0;border:none;border-radius:12px;font-family:var(--f);font-weight:700;cursor:pointer}
.install-banner button{background:none;font-size:16px;color:#4C1D95}
.guest-cta button{background:#F59E0B;color:#fff;padding:8px 14px;font-size:13px}

/* ── Estados vazios / carregando ── */
.empty-state{text-align:center;padding:36px 12px}
.empty-ico{font-size:52px;margin-bottom:8px}
.empty-state h2{font-size:20px;color:#1E1E1E}
.empty-state p{font-size:14px;color:#777;line-height:1.5;margin:8px 0 8px}
.spinner{width:30px;height:30px;border:3px solid #E5E0FA;border-top-color:var(--purple);border-radius:50%;margin:0 auto;animation:spin .7s linear infinite}
.spinner.sm{width:16px;height:16px;border-width:2px;display:inline-block;vertical-align:-3px;margin-right:6px}

/* ── Perfil ── */
.prof-head{text-align:center;padding:4px 0 16px}
.prof-av,.rank-av{border-radius:50%;object-fit:cover;background:#EDE9FE}
.prof-av{width:92px;height:92px;margin:0 auto 10px;display:block}
.av-fallback{display:flex;align-items:center;justify-content:center;color:var(--purple);font-weight:700}
.prof-av.av-fallback{font-size:40px}
.prof-name{font-size:22px;font-weight:700}
.prof-user{font-size:13px;color:#888;margin-top:2px}
.prof-bio{font-size:13px;color:#555;margin-top:8px}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.stat{background:#fff;border:1px solid #ECECF2;border-radius:14px;padding:10px 2px;text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.05)}
.stat-ico{font-size:22px}
.stat b{display:block;font-size:17px;color:#1F2937;margin-top:2px}
.stat span{font-size:10px;color:#888}
.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#F7F7FB;border-radius:16px;padding:14px 16px;margin-top:14px;cursor:pointer}
.toggle-row b{display:block;font-size:14px}.toggle-row span{font-size:12px;color:#888}
.toggle-row input{display:none}
.toggle-row i{width:46px;height:28px;border-radius:14px;background:#D4D4DE;position:relative;flex-shrink:0;transition:background .2s}
.toggle-row i::after{content:'';position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.toggle-row input:checked+i{background:var(--purple)}
.toggle-row input:checked+i::after{transform:translateX(18px)}
.sec-title{font-size:13px;font-weight:700;color:var(--purple);letter-spacing:.8px;text-transform:uppercase;margin:22px 0 10px}
.ach-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.ach{text-align:center;opacity:.35;filter:grayscale(1)}
.ach.on{opacity:1;filter:none}
.ach-ico{width:100%;aspect-ratio:1;border-radius:16px;background:#F4F0FF;display:flex;align-items:center;justify-content:center;font-size:24px}
.ach > span{display:block;font-size:9px;line-height:1.15;margin-top:4px;color:#555;font-weight:500}
.topic-row{margin-bottom:12px}
.topic-top{display:flex;justify-content:space-between;font-size:13px;margin-bottom:5px}
.bar{height:8px;background:#EEE;border-radius:4px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--teal);border-radius:4px}
.install-card{background:#EDE9FE;color:#4C1D95;border-radius:16px;padding:14px 16px;margin-top:22px;font-size:13px;line-height:1.5}
.install-card p{margin-top:4px}
.kbd{background:#fff;border-radius:6px;padding:1px 6px;font-weight:700}
.soft-note{font-size:12px;color:#999;text-align:center;margin-top:22px}

/* ── Ranking ── */
.rank-hint{background:#FEF3C7;color:#92400E;border-radius:12px;padding:10px 14px;font-size:13px;margin-bottom:10px}
.rank-hint a{color:#92400E;font-weight:700}
.rank-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:16px;margin-bottom:6px;background:#fff;border:1px solid #F0F0F5}
.rank-row.me{background:#F4F0FF;border-color:#D9CCFC}
.rank-pos{width:30px;text-align:center;font-weight:700;font-size:16px;color:#777}
.rank-av{width:40px;height:40px;flex-shrink:0;font-size:16px}
.rank-name{flex:1;min-width:0;font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank-name em{font-style:normal;font-size:10px;background:var(--purple);color:#fff;border-radius:8px;padding:1px 6px;margin-left:4px;vertical-align:1px}
.rank-name small{display:block;font-weight:400;font-size:11px;color:#999}
.rank-pts{font-weight:700;color:var(--purple);font-size:16px}

/* ── Resultado do quiz ── */
.res-card{width:100%;background:#fff;border-radius:24px;padding:24px;text-align:center;box-shadow:0 8px 28px rgba(0,0,0,.12)}
.res-emoji{font-size:78px;line-height:1.1}
.res-card h1{font-size:26px;margin-top:6px}
.res-sub{font-size:14px;color:#666;margin-top:4px}
.res-score{font-size:34px;font-weight:700;margin-top:14px}
.res-time{font-size:13px;color:#888;margin-top:2px}
.res-save{border-radius:14px;padding:12px 14px;margin-top:16px;font-size:13px;color:#555;background:#F4F4F8;line-height:1.5}
.res-save.ok{background:#DCFCE7;color:#15803D}.res-save.bad{background:#FEE2E2;color:#DC2626}
.res-save.guest{background:#EDE9FE;color:#4C1D95}
.res-save.guest p{margin:4px 0 0}

/* ── Toast ── */
.toast{position:fixed;left:50%;bottom:calc(var(--sb) + 84px);transform:translate(-50%,20px);background:#1E1E1E;color:#fff;
  font-size:13px;padding:10px 16px;border-radius:14px;opacity:0;pointer-events:none;transition:all .25s;z-index:300;max-width:90%;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ═══════ Visual alinhado ao app Android ═══════ */

/* ── Home: cabeçalho líquido (BloopLiquidHeader) ── */
#scr-home{padding-top:0}
#scr-home .home-scroll{padding:0 0 calc(var(--sb) + 96px)}
.home-body{padding:16px 16px 0}
.lh{position:relative;overflow:hidden;background:#fff}
.lh-top{background:linear-gradient(180deg,#2E0259,#4B1F76,#6F419A);
  padding:calc(var(--st) + 28px) 22px 20px}
.lh-tag{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;font-size:10px;letter-spacing:2.5px;
  color:rgba(255,255,255,.65);margin-bottom:4px}
.lh-title{font-size:28px;font-weight:900;color:#fff;line-height:1.2}
.lh-title span{color:#E58A1E}
.lh-sub{font-size:14px;color:rgba(255,255,255,.85);margin-top:6px}
.lh-bar{position:relative;height:112px;background:linear-gradient(#6F419A,#6F419A calc(100% - 4px),#fff calc(100% - 4px))}
.lh-bar canvas{position:absolute;left:0;top:0;width:100%;height:112px}
#lh-mascot{position:absolute;left:0;top:0;width:58px;height:58px;will-change:transform;pointer-events:none}
#lh-bubbles{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.bloop-strip{display:flex;justify-content:center;padding:28px 0 16px}
.bloop-strip img{height:48px;width:auto;padding:0 16px}

/* ── Perfil: títulos e cards de progresso ── */
.sec-title{color:#6B3FA0;font-size:13px;letter-spacing:1px;text-transform:none;margin:22px 0 12px}
.sec-title.first{margin-top:4px}
.stat-grid{gap:8px}
.stat{border:1px solid #E8E8E8;border-radius:14px;padding:12px 4px;box-shadow:0 2px 4px rgba(0,0,0,.08)}
.stat img{width:36px;height:36px;object-fit:contain;display:block;margin:2px auto 4px}
.stat b{font-size:18px;margin-top:0}
.stat span{display:block;font-size:10px;color:#888;line-height:12px;margin-top:2px}
.sec-h{display:flex;justify-content:space-between;align-items:center;margin:22px 0 12px}
.sec-h b{font-size:16px;color:#1F2937}
.sec-h span{font-size:13px;font-weight:700;color:#6B3FA0}

/* ── Conquistas: hexágonos ── */
.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:12px 8px}
.ach{opacity:.4;filter:none;text-align:center}
.ach.on{opacity:1}
.hex{width:100%;max-width:72px;aspect-ratio:1;margin:0 auto;background:#E8E8E8;
  clip-path:polygon(50% 0,93.3% 25%,93.3% 75%,50% 100%,6.7% 75%,6.7% 25%)}
.ach.on .hex{background:var(--c)}
.hex-in{position:absolute}
.hex{position:relative}
.hex-in{inset:2px;display:flex;align-items:center;justify-content:center;background:#F3F4F6;
  clip-path:polygon(50% 0,93.3% 25%,93.3% 75%,50% 100%,6.7% 75%,6.7% 25%)}
.ach.on .hex-in{background:color-mix(in srgb,var(--c) 15%,#fff)}
.hex-in img{width:64%;height:64%;object-fit:contain}
.ach-mi{font-size:min(42px,9vw)}
.ach-lock{font-size:30px;color:rgba(136,136,136,.7)}
.ach > span{font-size:10px;line-height:13px;color:#888;margin-top:6px;font-weight:400}
.ach.on > span{color:#374151;font-weight:500}

/* ── Progresso por tópico: grupos coloridos ── */
.tgroup{background:#fff;border:1px solid color-mix(in srgb,var(--c) 25%,transparent);border-radius:14px;
  box-shadow:0 2px 4px rgba(0,0,0,.08);margin-bottom:10px;overflow:hidden}
.tgroup-head{display:flex;align-items:center;gap:12px;width:100%;background:none;border:none;
  padding:12px 14px;text-align:left;cursor:pointer;font-family:var(--f)}
.tgroup-ico{width:48px;height:48px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  background:color-mix(in srgb,var(--c) 12%,transparent)}
.tgroup-ico img{width:38px;height:38px;object-fit:contain}
.tgroup-ico .material-icons{font-size:34px}
.tgroup-mid{flex:1;min-width:0}
.tgroup-mid b{font-size:14px;color:#1F2937;display:block}
.tprog{display:flex;align-items:center;gap:8px;margin-top:4px}
.tprog span{font-size:11px;font-weight:700;color:var(--c)}
.tbar{flex:1;height:5px;background:#E8E8E8;border-radius:3px;overflow:hidden}
.tbar i{display:block;height:100%;background:var(--c);border-radius:3px;transition:width .8s}
.tbar.sm{flex:none;width:90px;height:6px}
.tchev{color:#888;font-size:22px;transition:transform .25s}
.tgroup.open .tchev{transform:rotate(180deg)}
.tgroup-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s}
.tgroup.open .tgroup-body{grid-template-rows:1fr}
.tgroup-inner{overflow:hidden;padding:0 14px}
.tgroup.open .tgroup-inner{padding-bottom:14px}
.tgroup-inner hr{border:none;border-top:1px solid rgba(232,232,232,.6);margin:0 0 10px}
.trow{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.trow:last-child{margin-bottom:0}
.trow-name{flex:1;min-width:0;font-size:13px;color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trow b{width:36px;text-align:right;font-size:12px;color:var(--c)}

/* ── Sequência diária na home ── */
.streak-chip{display:none;align-items:center;gap:12px;border-radius:16px;padding:12px 14px;margin:0 0 12px;
  background:#fff;border:1px solid #E8E8E8;box-shadow:0 2px 4px rgba(0,0,0,.08)}
.streak-chip img{width:28px;height:34px;flex-shrink:0}
.streak-chip b{display:block;font-size:15px;color:#1F2937}
.streak-chip span{font-size:12px;color:#888}
.streak-chip.done{border-color:#FFA50D;background:#FFF8EC}
.streak-chip.done span{color:#B45309}
.streak-chip.risk{border-color:#F46E97;background:#FDE8EF}
.streak-chip.risk span{color:#BE185D}
.streak-chip.zero img{filter:grayscale(1);opacity:.5}

/* ── Resultado do quiz: imagem do tier e círculos de fundo (como no app) ── */
#scr-result{overflow:hidden}
#res-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none}
#res-bg i{position:absolute;border-radius:50%}
#scr-result .home-scroll{position:relative;z-index:1}
.res-img{display:block;width:80%;max-width:210px;aspect-ratio:1;object-fit:contain;margin:4px auto 0}
.res-card h1{font-size:30px}

/* ── Cinco abas como no app + aviso "só no Android" ── */
@media (max-width:359px){
  #tabbar button{padding:0 8px}
  #tabbar button.on span{display:none}
}
.ao-ico{width:96px;height:96px;border-radius:50%;margin:4px auto 10px;display:flex;align-items:center;justify-content:center;
  background:color-mix(in srgb,var(--c,#8B5CF6) 12%,transparent)}
.ao-ico img{width:56px;height:56px;object-fit:contain}
.ao-btn{display:block;text-align:center;text-decoration:none;line-height:52px;height:52px}
