/* GRIND — estilos (antes dentro do index.html) */
:root{--gold:#c9a84c;--gold-dim:#1a1500;--bg:#0a0a0a;--bg2:#111;--bg3:#0f0f0f;--border:#222;--text:#fff;--muted:#8e8e8e;--radius:14px;--radius-sm:8px;--green:#27ae60;
  --tx2:#d2d2d2;--tx3:#a0a0a0;--tx4:#7a7a7a;--line:#1a1a1a;--card-shadow:none;--nav-bg:rgba(10,10,10,0.95);--botnav-bg:rgba(10,10,10,0.98);}
/* Tema claro: fundo cinza suave, cartões brancos com sombra, dourado mais escuro (contraste) */
[data-theme="light"]{--gold:#a07818;--gold-dim:#fbf3df;--bg:#f2f2f5;--bg2:#ffffff;--bg3:#f0f0f3;--border:#e3e3e8;--text:#16161a;--muted:#5c5c66;--green:#1d8a4a;
  --tx2:#2e2e35;--tx3:#5c5c66;--tx4:#74747e;--line:#ebebef;--card-shadow:0 1px 2px rgba(16,16,26,0.04),0 4px 14px rgba(16,16,26,0.05);--nav-bg:rgba(242,242,245,0.92);--botnav-bg:rgba(255,255,255,0.96);}
/* Ecrãs que ficam sempre escuros (foco bloqueado, festas, tutorial centrado) */
[data-theme="light"] #focus-lock,[data-theme="light"] .fb-modal,[data-theme="light"] .fc-overlay,[data-theme="light"] .cb-overlay,[data-theme="light"] .tt-center{
  --gold:#c9a84c;--gold-dim:#1a1500;--bg:#0a0a0a;--bg2:#111;--bg3:#0f0f0f;--border:#222;--text:#fff;--muted:#8e8e8e;--green:#27ae60;
  --tx2:#d2d2d2;--tx3:#a0a0a0;--tx4:#7a7a7a;--line:#1a1a1a;--card-shadow:none;color:var(--text);}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;font-weight:300;min-height:100vh;overflow-x:hidden;}
.screen{display:none;width:100%;}.screen.active{display:flex;flex-direction:column;min-height:100vh;width:100%;}
#tab-hoje,#tab-habitos,#tab-calendario,#tab-calorias,#tab-comunidade,#tab-ranks,#tab-perfil,#tab-mensagens{display:none;}
nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(var(--bg-rgb,10,10,10),0.95);backdrop-filter:blur(12px);border-bottom:0.5px solid var(--border);padding:0 1.5rem;height:56px;display:flex;align-items:center;justify-content:space-between;}
[data-theme="light"] body{background:var(--bg);color:var(--text);}
[data-theme="light"] .screen{background:var(--bg);}
[data-theme="light"] nav{background:var(--nav-bg);border-bottom-color:var(--border);}
[data-theme="light"] .botnav{background:var(--botnav-bg);border-top-color:var(--border);box-shadow:0 -4px 20px rgba(16,16,26,0.05);}
[data-theme="light"] .card,[data-theme="light"] .feature-card-new,[data-theme="light"] .stat-card{background:var(--bg2);border-color:var(--border);box-shadow:var(--card-shadow);}
[data-theme="light"] .card:hover{border-color:#d6d6dd;}
[data-theme="light"] .inp,[data-theme="light"] select,[data-theme="light"] textarea{background:var(--bg3);border-color:var(--border);color:var(--text);}
[data-theme="light"] .inp:focus{border-color:var(--gold);background:#fff;}
[data-theme="light"] .wk-focus{background:transparent;border-color:var(--gold);}
[data-theme="light"] .wk-focus:focus{background:transparent;}
[data-theme="light"] .inp::placeholder,[data-theme="light"] textarea::placeholder{color:#9a9aa4;}
[data-theme="light"] .check-row{background:var(--bg3);border-color:transparent;}
[data-theme="light"] .chk{border-color:#c4c4cc;background:#fff;}
[data-theme="light"] .chk.done{background:var(--gold);border-color:var(--gold);}
[data-theme="light"] .tab-pill{background:var(--bg2);color:var(--tx3);border-color:var(--border);}
[data-theme="light"] .tab-pill.active{background:var(--gold);color:#fff;border-color:var(--gold);}
[data-theme="light"] .prog{background:#e6e6eb;}
[data-theme="light"] .bnb{color:#9a9aa4;}
[data-theme="light"] .bnb.active{color:var(--gold);}
[data-theme="light"] .snav:hover{background:var(--bg3);}
[data-theme="light"] .desktop-sidebar{background:var(--bg2);border-right-color:var(--border);}
[data-theme="light"] #s-landing{background:var(--bg);}
[data-theme="light"] .btn{color:var(--text);}
[data-theme="light"] .btn-o{border-color:rgba(160,120,24,0.45);}
[data-theme="light"] .avatar{background:var(--gold-dim);color:var(--gold);}
[data-theme="light"] .goal-hero{background:linear-gradient(160deg,#fff7e3,#ffffff 70%);border-color:rgba(160,120,24,0.35);box-shadow:var(--card-shadow);}
[data-theme="light"] .gh-bar,[data-theme="light"] .pc-bar,[data-theme="light"] .cb-bar{background:#ececf0;}
[data-theme="light"] .social-proof,[data-theme="light"] .grind-note{box-shadow:var(--card-shadow);}
[data-theme="light"] .tg-col.today{background:rgba(160,120,24,0.04);}
[data-theme="light"] .tg-now-label{color:var(--text);}
[data-theme="light"] .tg-dayhead.today b{color:var(--text);}
[data-theme="light"] .ev-sheet{border-top-color:var(--border);box-shadow:0 -10px 40px rgba(16,16,26,0.12);}
[data-theme="light"] .ev-sheet-bg,[data-theme="light"] #drag-popup{box-shadow:0 10px 40px rgba(16,16,26,0.15);}
[data-theme="light"] .round-toast,[data-theme="light"] .tt-card{box-shadow:0 12px 34px rgba(16,16,26,0.16);}
[data-theme="light"] .yd{background:#ececf0;border-color:transparent;}
[data-theme="light"] .yr-month{background:var(--bg2);box-shadow:var(--card-shadow);}
[data-theme="light"] .yr-stats div{background:var(--bg3);}
[data-theme="light"] .snd-row,[data-theme="light"] .snd-card{background:var(--bg2);}
.nav-logo{font-family:'Bebas Neue',sans-serif;font-size:22px;color:var(--gold);letter-spacing:3px;}
.botnav{position:fixed;bottom:0;left:0;right:0;z-index:100;background:var(--botnav-bg);border-top:0.5px solid var(--border);display:flex;height:60px;padding-bottom:env(safe-area-inset-bottom);}
.bnb{flex:1;background:transparent;border:none;color:var(--muted);font-size:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:color 0.2s;}
.bnb.active{color:var(--gold);}
.bnb svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.5;}
.page-content{flex:1;padding:72px 1rem 80px;max-width:480px;margin:0 auto;width:100%;}
.card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:10px;transition:border-color 0.2s;}
.card:hover{border-color:var(--tx4);}
.gold{color:var(--gold);}
.muted{color:var(--muted);font-size:12px;}
.badge{background:var(--gold-dim);color:var(--gold);font-size:10px;padding:3px 9px;border-radius:20px;border:0.5px solid rgba(201,168,76,0.25);display:inline-block;}
.btn{background:var(--gold);color:#0a0a0a;border:none;padding:11px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;width:100%;margin-top:8px;font-family:'DM Sans',sans-serif;transition:all 0.2s;}
.btn:hover{opacity:0.85;transform:translateY(-1px);}
.btn-o{background:transparent;color:var(--gold);border:0.5px solid rgba(201,168,76,0.4);padding:9px;border-radius:var(--radius-sm);font-size:13px;cursor:pointer;width:100%;margin-top:8px;font-family:'DM Sans',sans-serif;transition:all 0.2s;}
.btn-o:hover{background:var(--gold-dim);}
.btn-sm{background:var(--gold-dim);color:var(--gold);border:0.5px solid rgba(201,168,76,0.25);padding:5px 12px;border-radius:var(--radius-sm);font-size:11px;cursor:pointer;font-family:'DM Sans',sans-serif;}
.inp{background:var(--bg2);border:0.5px solid var(--line);border-radius:var(--radius-sm);padding:11px 14px;font-size:14px;color:var(--text);width:100%;margin-top:6px;outline:none;font-family:'DM Sans',sans-serif;transition:border-color 0.2s;}
.inp:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,168,76,0.1);}
.inp::placeholder{color:var(--tx4);}
.label{font-size:11px;color:var(--tx3);margin-top:10px;display:block;}
.check-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg3);border:0.5px solid var(--line);border-radius:var(--radius-sm);margin-bottom:6px;cursor:pointer;transition:all 0.15s;}
.check-row:hover{background:#151515;border-color:#2a2a2a;}
.chk{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all 0.2s;}
.chk.done{background:var(--gold);border-color:var(--gold);}
.chk.round{border-radius:50%;}
.prog{background:var(--bg3);border-radius:4px;height:3px;margin:6px 0 2px;}
.prog-f{background:var(--gold);height:3px;border-radius:4px;transition:width 0.4s ease;}
.flame-row{display:flex;gap:4px;margin:8px 0;}
.fd{width:9px;height:9px;border-radius:50%;background:var(--bg3);}
.fd.lit{background:var(--gold);}
.row{display:flex;align-items:center;justify-content:space-between;}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--gold-dim);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;color:var(--gold);flex-shrink:0;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-top:8px;}
.cal-d{aspect-ratio:1;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:9px;color:var(--tx4);background:var(--bg3);}
.cal-d.done{background:var(--gold-dim);color:var(--gold);}
.cal-d.today{border:1px solid var(--gold);color:var(--gold);}
.habit-color{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.tab-pills{display:flex;gap:6px;margin-bottom:14px;overflow-x:auto;padding-bottom:4px;}
.tab-pill{background:var(--bg2);border:0.5px solid var(--border);border-radius:20px;padding:6px 14px;font-size:12px;color:var(--muted);cursor:pointer;white-space:nowrap;transition:all 0.2s;font-family:'DM Sans',sans-serif;}
.tab-pill.active{background:var(--gold-dim);color:var(--gold);border-color:rgba(201,168,76,0.3);}
.notif{position:fixed;top:calc(64px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);background:var(--gold);color:#0a0a0a;padding:10px 20px;border-radius:20px;font-size:13px;font-weight:500;z-index:10050;max-width:calc(100% - 32px);white-space:normal;text-align:center;animation:fadeUp 0.3s ease;}
@keyframes fadeUp{from{opacity:0;transform:translateX(-50%) translateY(-10px);}to{opacity:1;transform:translateX(-50%) translateY(0);}}
@keyframes landingFadeIn{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:none;}}
@keyframes pointsAnim{0%{opacity:1;transform:translateY(0);}70%{opacity:1;transform:translateY(-20px);}100%{opacity:0;transform:translateY(-40px);}}
@keyframes confettiFall{0%{transform:translateY(0) rotate(0deg);opacity:1;}100%{transform:translateY(100vh) rotate(720deg);opacity:0;}}
@keyframes celebrationPop{0%{opacity:0;transform:scale(0.5);}70%{transform:scale(1.05);}100%{opacity:1;transform:scale(1);}}
@keyframes emojiPop{0%{transform:scale(0) rotate(-20deg);}70%{transform:scale(1.3) rotate(5deg);}100%{transform:scale(1) rotate(0deg);}}
@keyframes streakBurst{0%{opacity:0;transform:translate(-50%,-50%) scale(0.3);}50%{opacity:1;transform:translate(-50%,-50%) scale(1.1);}80%{transform:translate(-50%,-50%) scale(0.95);}100%{opacity:0;transform:translate(-50%,-50%) scale(1);}}
@keyframes slideUpFade{0%{opacity:0;transform:translateX(-50%) translateY(20px);}15%{opacity:1;transform:translateX(-50%) translateY(0);}80%{opacity:1;}100%{opacity:0;transform:translateX(-50%) translateY(-10px);}}
@keyframes slideUpFade2{from{opacity:0;transform:translateX(-50%) translateY(20px);}to{opacity:1;transform:translateX(-50%) translateY(0);}}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.3;}}
@keyframes shimmer{0%{opacity:1;}50%{opacity:0.6;}100%{opacity:1;}}
.landing-reveal{opacity:0;transform:translateY(28px);transition:opacity 0.7s ease,transform 0.7s ease;}
.landing-reveal.visible{opacity:1;transform:none;}
@keyframes landingFadeIn{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:none;}}
@keyframes landingAnim{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.4;}}
@keyframes shimmer{0%{background-position:200% center;}100%{background-position:-200% center;}}
.landing-anim{opacity:0;animation:landingAnim 0.6s ease forwards;}
.landing-cta-btn{background:var(--gold);color:#0a0a0a;border:none;padding:14px 32px;border-radius:var(--radius-sm);font-size:15px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;display:inline-flex;align-items:center;transition:all 0.2s;box-shadow:0 0 30px rgba(201,168,76,0.25);}
.landing-cta-btn:hover{transform:translateY(-2px);box-shadow:0 8px 40px rgba(201,168,76,0.4);}
.landing-cta-ghost{background:transparent;color:var(--gold);border:0.5px solid rgba(201,168,76,0.3);padding:14px 32px;border-radius:var(--radius-sm);font-size:15px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;}
.landing-cta-ghost:hover{background:rgba(201,168,76,0.08);transform:translateY(-2px);}
.feature-card-new{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius);padding:1.5rem;transition:all 0.3s;cursor:default;}
.feature-card-new:hover{border-color:rgba(201,168,76,0.3);transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,0.3);}
.check-row{transition:all 0.15s;}
.check-row:hover{background:#151515;}
.btn{transition:all 0.2s;}
.btn:hover{opacity:0.88;transform:translateY(-1px);}
.chk{transition:all 0.2s;}
.chk.done{animation:checkPop 0.2s ease;}
@keyframes checkPop{0%{transform:scale(0.8);}50%{transform:scale(1.2);}100%{transform:scale(1);}}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.animate-in{animation:fadeIn 0.25s ease forwards;}
.profile-pic{width:72px;height:72px;border-radius:50%;background:var(--gold-dim);border:1.5px solid var(--gold);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:500;color:var(--gold);margin:0 auto 8px;overflow:hidden;cursor:pointer;}
.profile-pic img{width:100%;height:100%;object-fit:cover;}
.onboard-content{flex:1;padding:80px 1.5rem 2rem;max-width:480px;margin:0 auto;width:100%;display:flex;flex-direction:column;justify-content:space-between;}
.landing-hero{padding:120px 2rem 60px;max-width:700px;margin:0 auto;text-align:center;}
.landing-logo{font-family:'Bebas Neue',sans-serif;font-size:clamp(60px,12vw,120px);color:var(--gold);letter-spacing:8px;line-height:1;margin-bottom:1rem;}
.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;max-width:700px;margin:3rem auto;padding:0 2rem;}
.feature-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius);padding:1.25rem;transition:all 0.2s;}
.feature-card:hover{border-color:rgba(201,168,76,0.3);transform:translateY(-2px);}
.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px;}
.stat-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius);padding:12px;text-align:center;}
.welcome-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px 1.5rem 2rem;max-width:480px;margin:0 auto;width:100%;}

/* DESKTOP */
@media(min-width:768px){
  .botnav{display:none;}nav{display:none;}
  #s-app{flex-direction:row;min-height:100vh;width:100%;}
  .desktop-sidebar{width:220px;background:var(--bg2);border-right:0.5px solid var(--border);display:flex;flex-direction:column;padding:1.5rem 1rem;position:fixed;top:0;left:0;bottom:0;z-index:50;}
  .desktop-sidebar .logo{font-family:'Bebas Neue',sans-serif;font-size:22px;color:var(--gold);letter-spacing:3px;margin-bottom:2px;}
  .desktop-sidebar .logo-sub{font-size:10px;color:var(--muted);margin-bottom:2rem;letter-spacing:1px;}
  .sidebar-nav{display:flex;flex-direction:column;gap:4px;flex:1;}
  .snav{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;color:var(--muted);border:none;background:transparent;font-family:'DM Sans',sans-serif;width:100%;text-align:left;transition:all 0.2s;}
  .snav:hover{background:var(--bg3);color:var(--text);}
  .snav.active{background:var(--gold-dim);color:var(--gold);}
  .snav svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0;}
  .sidebar-user{border-top:0.5px solid var(--border);padding-top:1rem;margin-top:1rem;}
  .sidebar-streak{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--gold);margin-bottom:10px;}
  .desktop-main{margin-left:220px;flex:1;padding:2.5rem 3rem;min-height:100vh;width:calc(100vw - 220px);}
  .page-content{padding:0;max-width:800px;margin:0 auto;width:100%;}
  .onboard-content{max-width:420px;}
}
@media(max-width:767px){
  .desktop-sidebar{display:none;}
  .desktop-main{margin-left:0;}
  .page-content{padding:72px 1rem 80px;max-width:480px;margin:0 auto;width:100%;}
}
/* ─── Sons do foco (lista minimalista) ─── */
.snd-card{padding:6px 16px;margin-bottom:20px;}
.snd-row{--snd-fill:var(--muted);display:flex;align-items:center;gap:12px;padding:12px 0;}
.snd-row.on{--snd-fill:var(--gold);}
.snd-sep{height:0.5px;background:var(--border);margin:2px 0;}
.snd-icon{font-size:20px;width:26px;text-align:center;opacity:0.4;filter:grayscale(0.6);transition:opacity .2s,filter .2s;}
.snd-row.on .snd-icon{opacity:1;filter:none;}
.snd-name{width:84px;flex-shrink:0;font-size:14px;color:var(--muted);display:flex;flex-direction:column;line-height:1.25;transition:color .2s;}
.snd-name span{font-size:10px;color:var(--muted);letter-spacing:0.3px;}
.snd-row.on .snd-name{color:var(--text);}
.snd-slider{flex:1;min-width:0;height:28px;margin:0;background:transparent;-webkit-appearance:none;appearance:none;cursor:pointer;touch-action:pan-y;}
.snd-slider:focus{outline:none;}
.snd-slider::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(to right,var(--snd-fill) var(--val,50%),var(--bg3) var(--val,50%));}
.snd-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-7px;border-radius:50%;background:var(--snd-fill);border:3px solid var(--bg2);box-shadow:0 0 0 0.5px var(--border);transition:transform .15s;}
.snd-slider:active::-webkit-slider-thumb{transform:scale(1.2);}
.snd-slider::-moz-range-track{height:4px;border-radius:2px;background:var(--bg3);}
.snd-slider::-moz-range-progress{height:4px;border-radius:2px;background:var(--snd-fill);}
.snd-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--snd-fill);border:3px solid var(--bg2);}
.snd-slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--gold);}
.snd-switch{position:relative;flex-shrink:0;width:40px;height:24px;border-radius:12px;border:0.5px solid var(--border);background:var(--bg3);cursor:pointer;padding:0;transition:background .2s,border-color .2s;}
.snd-switch span{position:absolute;top:2.5px;left:3px;width:18px;height:18px;border-radius:50%;background:#666;transition:transform .2s,background .2s;}
.snd-row.on .snd-switch{background:var(--gold);border-color:var(--gold);}
.snd-row.on .snd-switch span{transform:translateX(16px);background:var(--bg);}
.snd-switch:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
/* Calendário: grelha horária (Diária / Semanal) */
.tg-card{padding:10px 8px 12px;overflow:visible;}
.tg-nav{background:none;border:none;color:var(--gold);cursor:pointer;font-size:24px;padding:0 8px;line-height:1;}
.tg-nav-sm{background:var(--bg3);border:0.5px solid var(--border);color:var(--muted);border-radius:8px;padding:3px 9px;font-size:12px;cursor:pointer;font-family:'DM Sans',sans-serif;}
.tg-hint{font-size:10px;color:var(--muted);text-align:center;margin-bottom:10px;}
.tg-days{display:grid;margin-bottom:4px;}
.tg-dayhead{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;padding:2px 0;font-family:'DM Sans',sans-serif;color:var(--muted);}
.tg-dayhead span{font-size:10px;}
.tg-dayhead b{font-size:15px;font-weight:500;color:var(--text);width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.tg-dayhead.today span{color:var(--gold);}
.tg-dayhead.today b{background:var(--gold);color:#000;}
.tg-allday{display:grid;gap:3px;margin-bottom:6px;padding-bottom:6px;border-bottom:0.5px solid var(--border);}
.tg-allday-lbl{font-size:9px;color:var(--muted);text-align:right;padding:4px 6px 0 0;}
.tg-chip{background:var(--bg3);background:color-mix(in srgb,var(--c) 16%,var(--bg2));border:0.5px solid color-mix(in srgb,var(--c) 45%,transparent);border-left:3px solid var(--c);color:var(--text);font-size:11px;font-weight:500;border-radius:6px;padding:3px 6px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;}
.tg{position:relative;display:grid;margin-top:6px;}
.tg-lines{position:absolute;left:44px;right:0;top:0;height:calc(var(--hh)*24);pointer-events:none;}
.tg-line{position:absolute;left:0;right:0;border-top:0.5px solid var(--border);}
.tg-line.half{border-top:0.5px dashed var(--border);opacity:0.55;}
.tg-gutter{position:relative;height:calc(var(--hh)*24);}
.tg-hlabel{position:absolute;right:8px;transform:translateY(-50%);font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums;}
.tg-now-label{position:absolute;right:4px;transform:translateY(-50%);font-size:10px;font-weight:600;color:#fff;background:#e74c3c;border-radius:4px;padding:1px 4px;font-variant-numeric:tabular-nums;z-index:6;}
.tg-col{position:relative;height:calc(var(--hh)*24);border-left:0.5px solid var(--border);cursor:pointer;}
.tg-col.today{background:rgba(201,168,76,0.03);}
.tg-now{position:absolute;left:-1px;right:0;height:2px;background:#e74c3c;z-index:5;pointer-events:none;transform:translateY(-1px);}
.tg-now::before{content:'';position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:#e74c3c;}
.tg-ev{position:absolute;box-sizing:border-box;z-index:2;overflow:hidden;cursor:pointer;border-radius:8px;padding:4px 8px;background:var(--bg3);background:color-mix(in srgb,var(--c) 16%,var(--bg2));border:0.5px solid color-mix(in srgb,var(--c) 45%,transparent);border-left:3px solid var(--c);color:var(--text);
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:pan-y;transition:box-shadow 0.15s,transform 0.15s;}
.tg-ev.short{padding:2px 7px;}
.tg-ev-title{font-size:12px;font-weight:600;color:var(--text);line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.tg-ev-time{font-size:11.5px;font-weight:500;color:var(--c,var(--gold));color:color-mix(in srgb,var(--c,var(--gold)) 70%,var(--text));margin-top:2px;font-variant-numeric:tabular-nums;white-space:nowrap;}
.tg-ev-dur{opacity:0.7;font-weight:400;color:var(--muted);}
.tg-ev-one{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;}
.tg-ev-one .tg-ev-time{display:inline;margin:0 0 0 2px;}
.tg-handle{position:absolute;left:0;right:0;bottom:0;height:12px;cursor:ns-resize;touch-action:none;}
.tg-handle::after{content:'';position:absolute;left:50%;bottom:3px;width:18px;height:3px;margin-left:-9px;border-radius:2px;background:var(--c);opacity:0.7;}
.tg-ev.short .tg-handle::after{display:none;}
.tg-ev.dragging{z-index:20;overflow:visible;transform:scale(1.02);box-shadow:0 10px 28px rgba(0,0,0,0.55),0 0 0 1.5px var(--c);background:var(--bg2);background:color-mix(in srgb,var(--c) 26%,var(--bg2));}
.tg-ev.dragging::before{content:attr(data-time);position:absolute;top:-26px;left:0;background:var(--gold);color:#0a0a0a;font-size:12px;font-weight:600;padding:3px 8px;border-radius:6px;white-space:nowrap;font-variant-numeric:tabular-nums;box-shadow:0 4px 12px rgba(0,0,0,0.4);}
.tg-ev.saving{opacity:0.6;}
body.tg-dragging{-webkit-user-select:none;user-select:none;cursor:grabbing;}
.ev-soft{flex:1;min-width:0;box-sizing:border-box;border-radius:10px;padding:8px 10px;background:var(--bg3);background:color-mix(in srgb,var(--c) 14%,var(--bg2));border:0.5px solid color-mix(in srgb,var(--c) 40%,transparent);border-left:3px solid var(--c);}
.ev-list-row{display:flex;align-items:center;gap:10px;margin-bottom:8px;cursor:pointer;}
.ev-list-row.past{opacity:0.45;filter:grayscale(1);}
.ev-past-btn{width:100%;margin-top:4px;padding:9px;background:none;border:0.5px dashed var(--border);border-radius:10px;color:var(--muted);font-family:'DM Sans',sans-serif;font-size:12px;cursor:pointer;}
.ev-list-date{width:34px;flex-shrink:0;text-align:center;line-height:1.1;}
.ev-list-date b{display:block;font-size:17px;font-weight:600;color:var(--text);}
.ev-list-date span{font-size:10px;color:var(--muted);text-transform:uppercase;}
.tg-ghost{position:absolute;left:1px;right:2px;border:1.5px dashed var(--gold);background:rgba(201,168,76,0.15);border-radius:7px;color:var(--gold);font-size:11px;font-weight:600;padding:4px 7px;box-sizing:border-box;z-index:3;pointer-events:none;}
#ev-sheet{position:fixed;inset:0;z-index:9000;}
.ev-sheet-bg{position:absolute;inset:0;background:rgba(0,0,0,0.5);}
.ev-sheet{position:absolute;left:0;right:0;bottom:0;margin:0 auto;max-width:480px;background:var(--bg2);border-top:1px solid var(--gold);border-radius:20px 20px 0 0;padding:10px 18px calc(18px + env(safe-area-inset-bottom));max-height:85vh;overflow-y:auto;animation:tutUp2 0.22s ease;}
@keyframes tutUp2{from{transform:translateY(30px);opacity:0;}to{transform:none;opacity:1;}}
.ev-sheet-grab{width:38px;height:4px;border-radius:2px;background:var(--border);margin:0 auto 12px;}
.ev-sheet-title{font-size:17px;font-weight:500;margin-top:0;}
.evs-dot{width:28px;height:28px;border-radius:50%;cursor:pointer;}
.evs-dot.on{box-shadow:0 0 0 2px var(--bg2),0 0 0 4px var(--text);}
/* Conversa aberta: ecrã inteiro, sem barras (como o WhatsApp) */
#tab-conversa.conv-open{display:flex !important;flex-direction:column;position:fixed;top:0;left:0;right:0;height:100vh;height:100dvh;z-index:150;background:var(--bg);padding-top:env(safe-area-inset-top);box-sizing:border-box;}
#tab-conversa.conv-open .conv-inputbar{padding-bottom:calc(10px + env(safe-area-inset-bottom)) !important;}
body.conv-lock{overflow:hidden;}
/* GRIND Recap: conversa com o "treinador" */
.rc-view{display:none;flex-direction:column;position:fixed;top:0;left:0;right:0;height:100vh;height:100dvh;z-index:150;background:var(--bg);padding-top:env(safe-area-inset-top);box-sizing:border-box;}
@media(min-width:768px){.rc-view{left:220px;}}
.rc-top{padding:10px 16px;border-bottom:0.5px solid var(--border);display:flex;align-items:center;gap:12px;flex-shrink:0;background:var(--bg2);}
.rc-msgs{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:12px 16px calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:6px;}
.rc-row{display:flex;justify-content:flex-start;}
.rc-row.me{justify-content:flex-end;}
.rc-b{max-width:88%;background:var(--bg3);color:var(--text);border-radius:18px 18px 18px 4px;padding:10px 13px;font-size:14px;line-height:1.55;word-break:break-word;animation:rcIn .35s ease both;}
.rc-b b{color:var(--gold);font-weight:600;}
.rc-b.rc-me{background:var(--gold);color:#0a0a0a;border-radius:18px 18px 4px 18px;}
.rc-b.rc-prop{border:0.5px solid rgba(201,168,76,0.45);}
@keyframes rcIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.rc-sep{text-align:center;margin:16px 0 6px;}
.rc-sep span{background:var(--bg3);color:var(--muted);font-size:11px;padding:4px 12px;border-radius:20px;}
.rc-title{font-weight:500;margin-bottom:10px;}
.rc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.rc-st{background:var(--bg2);border:0.5px solid var(--border);border-radius:12px;padding:8px 6px;text-align:center;}
.rc-st b{display:block;font-size:18px;color:var(--gold);font-weight:600;}
.rc-st span{font-size:11px;color:var(--muted);}
.rc-mut{color:var(--tx3);font-size:13px;}
.rc-b .rc-mut{margin-top:8px;}
.rc-h{font-weight:500;margin-bottom:6px;}
.rc-g{margin-top:8px;}
.rc-gt{font-size:12px;color:var(--text);margin-bottom:3px;}
.rc-gt span{color:var(--muted);}
.rc-hab{display:flex;align-items:center;gap:8px;font-size:13px;padding:2px 0;}
.rc-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.rc-hn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--tx2);}
.rc-hc{color:var(--muted);font-size:12px;white-space:nowrap;}
.rc-ins{padding:6px 0;border-top:0.5px solid var(--line);font-size:13.5px;}
.rc-ins:first-of-type{border-top:none;}
.rc-btn{margin-top:10px;background:var(--gold);color:#0a0a0a;border:none;border-radius:20px;padding:8px 14px;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;cursor:pointer;}
.rc-ok{margin-top:8px;color:var(--green);font-size:13px;font-weight:500;}
.rc-chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;margin:4px 0 6px;}
.rc-chip{background:transparent;border:0.5px solid var(--gold);color:var(--gold);border-radius:18px;padding:7px 12px;font-family:'DM Sans',sans-serif;font-size:13px;cursor:pointer;}
.rc-chip:active{background:var(--gold-dim);}
.rc-write{display:flex;gap:8px;align-items:flex-end;width:100%;}
.rc-send{background:var(--gold);color:#0a0a0a;border:none;width:40px;height:40px;border-radius:50%;font-size:18px;cursor:pointer;flex-shrink:0;}
.hs-days{display:flex;gap:6px;margin:0 0 8px;}
.hs-d{flex:1;height:36px;border-radius:50%;max-width:40px;border:0.5px solid var(--border);background:var(--bg3);color:var(--muted);font-family:'DM Sans',sans-serif;font-size:13px;cursor:pointer;}
.hs-d.on{background:var(--gold);border-color:var(--gold);color:#0a0a0a;font-weight:600;}
.hab-others{margin-top:6px;}
.hab-others summary{font-size:12px;color:var(--muted);cursor:pointer;padding:6px 2px;list-style:none;}
.hab-others summary::-webkit-details-marker{display:none;}
.hab-others[open] summary{color:var(--tx3);}
.rc-input{padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:0.5px solid var(--border);background:var(--bg2);flex-shrink:0;display:flex;gap:8px;align-items:flex-end;}
.rc-input textarea{flex:1;background:var(--bg3);border:0.5px solid var(--border);border-radius:20px;padding:10px 16px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:16px;resize:none;max-height:100px;line-height:1.4;outline:none;}
.rc-typing span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--muted);margin:0 2px;animation:rcDot 1s infinite;}
.rc-typing span:nth-child(2){animation-delay:.15s}.rc-typing span:nth-child(3){animation-delay:.3s}
@keyframes rcDot{0%,80%,100%{opacity:.25}40%{opacity:1}}
.rc-note{margin-top:6px;font-size:12px;color:var(--muted);}
.rc-card{display:flex;align-items:center;gap:12px;background:var(--gold-dim);border:0.5px solid rgba(201,168,76,0.45);border-radius:var(--radius);padding:12px 14px;margin:2px 0 12px;cursor:pointer;}
.rc-card-i{font-size:24px;}
.rc-card-t{font-size:14px;font-weight:500;color:var(--text);}
.rc-card-s{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rc-card-go{color:var(--gold);font-size:13px;font-weight:500;white-space:nowrap;}
@media(min-width:768px){#tab-conversa.conv-open{left:220px;}}
.grind-note{display:flex;align-items:flex-start;gap:10px;background:var(--gold-dim);border:0.5px solid rgba(201,168,76,0.4);border-radius:var(--radius);padding:12px 14px;margin:2px 0 10px;}
/* Prova social + parceiro de grind */
.social-proof{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);background:var(--bg2);border:0.5px solid var(--border);border-radius:20px;padding:7px 12px;margin:2px 0 10px;}
.social-proof b{color:var(--gold);font-weight:600;}
.partner-card .pc-title{font-size:12px;font-weight:500;color:var(--gold);}
.pc-row{display:flex;align-items:center;gap:10px;margin-top:10px;}
.pc-name{font-size:13px;color:var(--text);width:64px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pc-bar{flex:1;height:8px;background:var(--bg3);border-radius:4px;overflow:hidden;}
.pc-bar i{display:block;height:100%;background:var(--gold);border-radius:4px;transition:width 0.4s;}
.pc-bar i.ok{background:var(--green);}
.pc-num{font-size:12px;color:var(--muted);width:44px;text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;}
.pc-btn{background:var(--gold);color:#0a0a0a;border:none;border-radius:20px;padding:9px 16px;font-size:13px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;}
.pc-btn[disabled]{opacity:0.45;cursor:default;}
.pc-link{background:none;border:none;color:var(--muted);font-size:11px;cursor:pointer;padding:4px 0;font-family:'DM Sans',sans-serif;}
.pc-nudge{background:var(--gold-dim);border:0.5px solid rgba(201,168,76,0.4);color:var(--text);border-radius:10px;padding:8px 10px;font-size:12px;margin-top:10px;}
.pc-res{display:flex;align-items:center;justify-content:space-between;padding:8px 2px;border-bottom:0.5px solid var(--border);font-size:13px;color:var(--text);}
/* Objetivo principal + semana (topo da aba Hoje) */
.goal-hero{background:linear-gradient(160deg,var(--gold-dim),var(--bg2) 70%);border:1px solid rgba(201,168,76,0.45);border-radius:18px;padding:18px 16px 14px;margin-bottom:12px;}
.gh-label{font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:6px;}
.gh-title{font-size:24px;line-height:1.2;font-weight:600;color:var(--text);margin-bottom:12px;}
.gh-empty{font-size:14px;color:var(--text);opacity:0.8;line-height:1.6;margin:4px 0 14px;}
.gh-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px;}
.gh-num{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums;}
.gh-num b{font-size:26px;color:var(--text);font-weight:600;}
.gh-pct{font-size:22px;font-weight:600;color:var(--gold);font-variant-numeric:tabular-nums;}
.gh-bar{height:12px;background:var(--bg3);border-radius:6px;overflow:hidden;}
.gh-bar i{display:block;height:100%;background:linear-gradient(90deg,#a8862f,var(--gold));border-radius:6px;transition:width 0.6s;}
.gh-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;}
.gh-btn{background:var(--gold);color:#0a0a0a;border:none;border-radius:14px;padding:6px 12px;font-size:12px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;}
.gh-btn.ghost{background:var(--bg3);color:var(--muted);border:0.5px solid var(--border);}
.week-card{padding:14px 14px 12px;}
.wk-label{font-size:15px;font-weight:600;color:var(--text);}
.wk-focus{width:100%;box-sizing:border-box;background:transparent;border:none;border-left:3px solid var(--gold);padding:4px 0 4px 10px;color:var(--text);font-size:17px;font-weight:500;line-height:1.35;font-family:'DM Sans',sans-serif;resize:none;outline:none;overflow:hidden;}
.wk-focus::placeholder{color:var(--muted);font-weight:400;font-size:15px;}
.wk-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:0.5px solid var(--border);}
.wk-text{flex:1;font-size:14px;color:var(--text);cursor:pointer;}
.wk-text.done{color:var(--muted);text-decoration:line-through;}
.wk-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:18px;padding:0 4px;}
.wk-add{background:var(--gold);color:#0a0a0a;border:none;padding:0 16px;border-radius:var(--radius-sm);font-size:20px;cursor:pointer;flex-shrink:0;}
.goal-kind{background:var(--bg3);border:1px solid var(--border);border-radius:12px;padding:10px;text-align:left;cursor:pointer;font-family:'DM Sans',sans-serif;color:var(--text);display:flex;flex-direction:column;gap:3px;}
.goal-kind b{font-size:13px;font-weight:500;}
.goal-kind span{font-size:11px;color:var(--muted);line-height:1.4;}
.goal-kind.on{border-color:var(--gold);background:var(--gold-dim);}
/* Bloqueio do foco: tutoriais e texto para sair */
.fb-modal{position:fixed;inset:0;background:rgba(0,0,0,0.96);z-index:9100;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:1.5rem 1rem calc(1.5rem + env(safe-area-inset-bottom));}
.fb-box{max-width:380px;width:100%;margin:auto 0;}
.fb-icon{font-size:36px;text-align:center;margin-bottom:8px;}
.fb-title{font-size:18px;font-weight:600;color:var(--text);text-align:center;margin-bottom:6px;}
.fb-sub{font-size:13px;color:#999;text-align:center;line-height:1.6;margin-bottom:18px;}
.fb-step{display:flex;gap:12px;background:var(--bg2);border:0.5px solid var(--border);border-radius:14px;padding:14px;margin-bottom:10px;text-align:left;}
.fb-step-n{width:24px;height:24px;border-radius:50%;background:var(--gold);color:#0a0a0a;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.fb-step-t{font-size:14px;font-weight:500;color:var(--text);margin-bottom:4px;}
.fb-step-b{font-size:12.5px;color:#999;line-height:1.7;}
.fb-step-b b{color:#ddd;font-weight:500;}
.fb-pin{font-family:'Bebas Neue',sans-serif;font-size:46px;letter-spacing:10px;color:var(--gold);text-align:center;margin:10px 0 4px;}
.fb-note{font-size:12px;color:#bbb;line-height:1.6;background:var(--gold-dim);border:0.5px solid rgba(201,168,76,0.4);border-radius:12px;padding:10px 12px;margin-top:6px;}
.fb-cancel{background:none;border:none;color:var(--tx4);font-size:12px;cursor:pointer;width:100%;padding:8px;font-family:'DM Sans',sans-serif;}
.exit-text{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px;line-height:1.9;letter-spacing:1px;word-spacing:6px;color:#eee;background:var(--bg2);border:0.5px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:12px;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;}
.exit-inp{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:16px;margin:0;resize:none;}
.exit-inp.bad{border-color:#e74c3c;}
.exit-progress{font-size:12px;color:var(--muted);text-align:right;margin-top:6px;font-variant-numeric:tabular-nums;}
.exit-progress.bad{color:#e74c3c;}
/* Festa no fim da sessão de foco */
.fc-overlay{position:fixed;inset:0;z-index:9650;background:rgba(0,0,0,0.88);display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:fcFade 0.25s ease;}
.fc-box{max-width:320px;width:100%;text-align:center;background:var(--bg2);border:1px solid rgba(201,168,76,0.5);border-radius:22px;padding:26px 22px 20px;animation:celebrationPop 0.45s cubic-bezier(0.175,0.885,0.32,1.275) both;}
.fc-ring{display:block;margin:0 auto 12px;}
.fc-track{fill:none;stroke:var(--bg3);stroke-width:8;}
.fc-arc{fill:none;stroke:var(--gold);stroke-width:8;stroke-linecap:round;stroke-dasharray:327;stroke-dashoffset:327;transform:rotate(-90deg);transform-origin:60px 60px;animation:fcArc 0.9s ease-out 0.15s forwards;}
.fc-check{fill:none;stroke:var(--gold);stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:70;stroke-dashoffset:70;animation:fcCheck 0.35s ease-out 0.95s forwards;}
.fc-title{font-size:22px;font-weight:600;color:var(--text);margin-bottom:4px;}
.fc-sub{font-size:14px;color:var(--muted);margin-bottom:6px;}
.fc-sub b{color:var(--gold);}
.fc-msg{font-size:13px;color:var(--text);opacity:0.8;margin-bottom:14px;}
.fc-code{background:var(--bg3);border-radius:14px;padding:10px;margin-bottom:12px;}
@keyframes fcArc{to{stroke-dashoffset:0;}}
@keyframes fcCheck{to{stroke-dashoffset:0;}}
@keyframes fcFade{from{opacity:0;}to{opacity:1;}}
/* Rodadas do Pomodoro */
.round-toast{position:fixed;left:50%;top:calc(70px + env(safe-area-inset-top));transform:translateX(-50%);z-index:9660;display:flex;align-items:center;gap:12px;background:var(--bg2);border:1px solid rgba(201,168,76,0.55);border-radius:16px;padding:12px 16px;min-width:260px;max-width:calc(100% - 32px);box-shadow:0 10px 30px rgba(0,0,0,0.5);animation:rtIn 0.35s cubic-bezier(0.175,0.885,0.32,1.275);}
.round-toast.out{opacity:0;transform:translate(-50%,-10px);transition:all 0.35s;}
.round-toast.warn{border-color:#e67e22;}
.rt-emoji{font-size:28px;line-height:1;}
.rt-title{font-size:15px;font-weight:600;color:var(--text);}
.rt-sub{font-size:12px;color:var(--muted);margin-top:2px;}
#rw-count{color:#e67e22;font-variant-numeric:tabular-nums;}
@keyframes rtIn{from{opacity:0;transform:translate(-50%,-14px) scale(0.95);}to{opacity:1;transform:translate(-50%,0) scale(1);}}
.round-dots{display:flex;gap:6px;justify-content:center;}
.round-dots span{width:9px;height:9px;border-radius:50%;background:#2a2a2a;}
.round-dots span.now{background:var(--gold);box-shadow:0 0 0 3px rgba(201,168,76,0.25);}
.round-dots span.done{background:var(--gold);opacity:0.55;}
/* Vista anual */
.yr-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:10px;}
.yr-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:6px;margin:4px 0 12px;}
.yr-stats div{background:var(--bg3);border-radius:12px;padding:10px 6px;text-align:center;}
.yr-stats b{display:block;font-size:20px;font-weight:600;color:var(--yc,var(--gold));font-variant-numeric:tabular-nums;}
.yr-stats span{font-size:10px;color:var(--muted);line-height:1.3;display:block;}
.yr-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:11px;color:var(--muted);margin-bottom:12px;}
.yr-legend span{display:flex;align-items:center;gap:5px;}
.yr-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
@media(min-width:768px){.yr-months{grid-template-columns:repeat(3,minmax(0,1fr));}}
.yr-month{background:var(--bg3);border:0.5px solid var(--border);border-radius:14px;padding:10px 10px 8px;text-align:left;cursor:pointer;font-family:'DM Sans',sans-serif;color:var(--text);}
.yr-month.cur{border-color:var(--gold);}
.yr-mname{font-size:12px;font-weight:600;margin-bottom:7px;}
.yr-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px 2px;}
.yr-mfoot{font-size:11px;color:var(--muted);margin-top:7px;}
.yd{display:block;width:78%;margin:0 auto;aspect-ratio:1;border-radius:50%;background:var(--bg2);border:0.5px solid var(--border);box-sizing:border-box;}
.yr-legend .yd{width:10px;height:10px;}
.yd.pad{background:none;border:none;}
.yd.fut{background:none;border:0.5px dashed var(--border);opacity:0.5;}
.yd.off{background:none;border:0.5px solid var(--border);opacity:0.3;transform:scale(0.6);}
.yd.miss{background:var(--bg2);}
.yd.part{background:var(--yc,var(--gold));border-color:transparent;opacity:0.35;}
.yd.ok{background:var(--yc,var(--gold));border-color:transparent;opacity:0.8;}
.yd.perfect{background:radial-gradient(circle,#fff 0 24%,var(--yc,var(--gold)) 27%);border-color:transparent;}
.yd.today{outline:1.5px solid var(--text);outline-offset:1px;}
/* Grandes celebrações */
.cb-overlay{position:fixed;inset:0;z-index:9700;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:rgba(0,0,0,0.82);animation:fcFade 0.25s ease;overflow:hidden;}
.cb-overlay.out{opacity:0;transition:opacity 0.4s;}
.cb-card{position:relative;max-width:340px;width:100%;text-align:center;background:var(--bg2);border:1px solid rgba(201,168,76,0.6);border-radius:24px;padding:28px 22px 22px;animation:celebrationPop 0.5s cubic-bezier(0.175,0.885,0.32,1.275) both;box-shadow:0 0 60px rgba(201,168,76,0.25);}
.cb-kicker{font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:6px;}
.cb-title{font-size:22px;font-weight:700;color:var(--text);line-height:1.25;margin-bottom:8px;}
.cb-sub{font-size:13px;color:var(--muted);line-height:1.6;}
.cb-trophy{font-size:72px;line-height:1;margin-bottom:10px;display:inline-block;animation:cbTrophy 0.9s cubic-bezier(0.175,0.885,0.32,1.275) 0.1s both;}
.cb-burst{position:absolute;left:50%;top:70px;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;box-shadow:0 0 0 0 rgba(201,168,76,0.7);animation:cbBurst 1s ease-out 0.15s;}
.cb-delta{font-family:'Bebas Neue',sans-serif;font-size:56px;line-height:1;color:var(--gold);letter-spacing:2px;margin:6px 0 12px;font-variant-numeric:tabular-nums;}
.cb-bar{position:relative;height:16px;background:var(--bg3);border-radius:8px;overflow:hidden;margin-bottom:10px;}
.cb-bar i{display:block;height:100%;background:linear-gradient(90deg,#a8862f,var(--gold),#f5d77a);border-radius:8px;transition:width 1.2s cubic-bezier(0.22,1,0.36,1);box-shadow:0 0 12px rgba(201,168,76,0.6);}
.cb-bar b{position:absolute;right:8px;top:0;font-size:11px;line-height:16px;color:#fff;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,0.6);}
.cb-goal{background:radial-gradient(circle at 50% 45%,rgba(201,168,76,0.35),rgba(0,0,0,0.95) 65%);}
.cb-rays{position:absolute;left:50%;top:45%;width:180vmax;height:180vmax;margin:-90vmax 0 0 -90vmax;background:repeating-conic-gradient(rgba(245,215,122,0.13) 0 8deg,transparent 8deg 22deg);animation:cbSpin 18s linear infinite,fcFade 1s ease;pointer-events:none;}
.cb-big{border-width:1.5px;border-color:var(--gold);box-shadow:0 0 120px rgba(201,168,76,0.5);}
.cb-huge{font-size:110px;animation:cbTrophyBig 1.2s cubic-bezier(0.175,0.885,0.32,1.275) 0.1s both,cbFloat 3s ease-in-out 1.4s infinite;filter:drop-shadow(0 0 24px rgba(245,215,122,0.8));}
.cb-goal-title{font-size:26px;background:linear-gradient(90deg,#f5d77a,var(--gold),#f5d77a);-webkit-background-clip:text;background-clip:text;color:transparent;}
.cb-piece{position:fixed;z-index:9800;pointer-events:none;border-radius:2px;animation-name:cbPiece;animation-timing-function:cubic-bezier(0.15,0.6,0.35,1);animation-fill-mode:forwards;}
@keyframes cbPiece{0%{transform:translate(0,0) rotate(0);opacity:1;}80%{opacity:1;}100%{transform:translate(var(--dx),calc(var(--dy) + 260px)) rotate(var(--r));opacity:0;}}
@keyframes cbTrophy{0%{transform:scale(0) rotate(-30deg);}60%{transform:scale(1.35) rotate(8deg);}100%{transform:scale(1) rotate(0);}}
@keyframes cbTrophyBig{0%{transform:translateY(120px) scale(0.2);opacity:0;}55%{transform:translateY(-14px) scale(1.25);opacity:1;}100%{transform:translateY(0) scale(1);}}
@keyframes cbFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}
@keyframes cbBurst{to{box-shadow:0 0 0 160px rgba(201,168,76,0);}}
@keyframes cbSpin{to{transform:rotate(360deg);}}
.check-row.just-added{animation:justAdded 1.6s ease;border-radius:10px;}
@keyframes justAdded{0%{background:rgba(201,168,76,0.35);transform:scale(1.03);}100%{background:transparent;transform:none;}}
/* Tutorial: luz, buraco escurecido, dedo e cartão */
.tt-ring{position:fixed;z-index:8000;pointer-events:none;border-radius:16px;border:2px solid var(--gold);box-shadow:0 0 0 4px rgba(201,168,76,0.25),0 0 30px rgba(201,168,76,0.45);transition:left 0.35s ease,top 0.35s ease,width 0.35s ease,height 0.35s ease,opacity 0.3s;animation:ttPulse 1.6s ease-in-out infinite;}
.tt-hole{position:fixed;z-index:8000;pointer-events:none;border-radius:14px;box-shadow:0 0 0 200vmax rgba(0,0,0,0.74);outline:2px solid var(--gold);outline-offset:2px;transition:opacity 0.3s;contain:strict;}
@keyframes ttPulse{0%,100%{box-shadow:0 0 0 4px rgba(201,168,76,0.25),0 0 24px rgba(201,168,76,0.35);}50%{box-shadow:0 0 0 9px rgba(201,168,76,0.12),0 0 40px rgba(201,168,76,0.55);}}
.tt-finger{position:fixed;z-index:8100;pointer-events:none;width:34px;height:34px;margin:-6px 0 0 -12px;opacity:0;font-size:32px;line-height:1;text-shadow:0 4px 8px rgba(0,0,0,0.6);transform-origin:30% 10%;will-change:transform;}
.tt-finger::before{content:'👆';}
.tt-finger.press{transform:scale(0.82);}
.tt-ripple{position:fixed;z-index:8090;pointer-events:none;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;border:2px solid var(--gold);animation:ttRipple 0.7s ease-out forwards;}
@keyframes ttRipple{to{transform:scale(4);opacity:0;}}
.tt-xp{position:fixed;z-index:8100;pointer-events:none;color:var(--gold);font-weight:700;font-size:15px;animation:ttXp 1.2s ease-out forwards;}
@keyframes ttXp{from{transform:translate(10px,-10px);opacity:1;}to{transform:translate(20px,-60px);opacity:0;}}
.tt-card{position:fixed;z-index:8200;will-change:top;left:50%;transform:translateX(-50%);top:calc(66px + env(safe-area-inset-top));width:calc(100% - 24px);max-width:440px;box-sizing:border-box;background:var(--bg2);border:1.5px solid var(--gold);border-radius:18px;padding:14px 16px 12px;box-shadow:0 14px 40px rgba(0,0,0,0.7);transition:top 0.25s ease;}
.tt-act{margin-top:8px;padding:8px 10px;border-radius:10px;background:var(--gold-dim);border-left:3px solid var(--gold);font-size:14px;color:var(--text);line-height:1.5;font-weight:500;}
.tt-act b{color:var(--gold);}
.tt-card.pop{animation:ttPop 0.35s cubic-bezier(0.175,0.885,0.32,1.275);}
@keyframes ttPop{from{opacity:0;transform:translate(-50%,12px) scale(0.97);}to{opacity:1;transform:translate(-50%,0) scale(1);}}
.tt-kicker{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:4px;}
.tt-title{font-size:17px;font-weight:600;color:var(--text);margin-bottom:4px;}
.tt-text{font-size:13.5px;color:var(--text);opacity:0.8;line-height:1.6;}
.tt-text b{color:var(--gold);font-weight:600;opacity:1;}
.tt-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;}
.tt-sec{background:none;border:none;color:var(--muted);font-size:12px;cursor:pointer;font-family:'DM Sans',sans-serif;padding:6px 0;}
.btn.tt-pri{margin:0;width:auto;padding:10px 18px;}
.tt-progress{height:3px;background:var(--bg3);border-radius:2px;margin-top:12px;overflow:hidden;}
.tt-progress i{display:block;height:100%;background:var(--gold);transition:width 0.4s;}
.tt-done{font-size:20px;font-weight:700;color:var(--green);text-align:center;padding:10px 0;animation:ttPop 0.35s ease;}
.tt-center{position:fixed;inset:0;z-index:8300;background:rgba(0,0,0,0.88);display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:fcFade 0.3s ease;}
.tt-center-box{max-width:340px;width:100%;text-align:center;background:var(--bg2);border:1px solid rgba(201,168,76,0.5);border-radius:24px;padding:28px 22px 18px;animation:celebrationPop 0.45s cubic-bezier(0.175,0.885,0.32,1.275) both;}
.tt-center-emoji{font-size:60px;line-height:1;margin-bottom:12px;animation:cbTrophy 0.8s cubic-bezier(0.175,0.885,0.32,1.275) 0.1s both;}
.tt-center-title{font-size:22px;font-weight:700;color:var(--text);margin-bottom:8px;}
.tt-center-text{font-size:14px;color:var(--muted);line-height:1.65;margin-bottom:18px;}
@media(min-width:768px){.tt-card{left:calc(50% + 110px);}}
.tt-card.over{z-index:9700;}
.tt-card.mini{padding:10px 14px 10px;}
.tt-card.mini .tt-title{font-size:15px;margin-bottom:2px;}
.tt-card.mini .tt-text{font-size:12.5px;line-height:1.45;}
.tt-card.mini .tt-act{margin-top:6px;padding:6px 9px;font-size:13px;}
.tt-card.mini .tt-actions{margin-top:6px;}
.tt-card.mini .tt-progress{display:none;}
/* Cartão compacto no topo: o conteúdo desce para não ficar tapado */
body.tut-mini .page-content{padding-top:var(--tut-pad,0px) !important;}
.tt-back{position:fixed;z-index:9700;left:50%;transform:translateX(-50%);bottom:calc(80px + env(safe-area-inset-bottom));display:none;align-items:center;gap:8px;background:var(--gold);color:#0a0a0a;border:none;border-radius:24px;padding:11px 18px;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600;box-shadow:0 8px 26px rgba(0,0,0,0.5);cursor:pointer;white-space:nowrap;animation:ttPop 0.35s ease;}
.tt-back small{font-weight:400;opacity:0.75;}
@media(min-width:768px){.tt-back{left:calc(50% + 110px);bottom:24px;}}
.tt-finger.bob{animation:ttBob 1s ease-in-out infinite;}
.tt-finger.down::before{content:'👇';}
.tt-finger.down{margin:-30px 0 0 -12px;}
@keyframes ttBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.tt-finger.down.bob{animation-name:ttBobD;}
@keyframes ttBobD{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}
.rem-row{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px;}
.rem-chip{padding:5px 10px;border-radius:20px;font-size:12px;border:0.5px solid var(--border);color:var(--muted);background:var(--bg3);cursor:pointer;font-family:'DM Sans',sans-serif;}
.rem-chip.on{background:var(--gold);color:#0a0a0a;border-color:var(--gold);}
.seg{display:flex;background:var(--bg3);border:0.5px solid var(--border);border-radius:10px;padding:2px;gap:2px;}
.seg-b{background:none;border:none;color:var(--muted);font-size:12px;padding:6px 10px;border-radius:8px;cursor:pointer;font-family:'DM Sans',sans-serif;}
.seg-b.on{background:var(--gold);color:#0a0a0a;font-weight:500;}
[data-theme="light"] .seg-b.on{color:#fff;}
/* Pontinhos de eventos na vista mensal */
.md-dots{display:flex;align-items:center;gap:2px;height:6px;margin-top:3px;}
.md-dots i{display:block;width:5px;height:5px;border-radius:50%;}
.md-dots b{font-size:8px;line-height:1;color:var(--muted);font-weight:600;}
/* Vista mensal: semanas com faixas de eventos de vários dias */
.mgrid{display:flex;flex-direction:column;gap:2px;}
.mweek{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;}
.mday{min-height:calc(46px + var(--lanes,0) * 16px);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:8px;border-radius:8px;cursor:pointer;border:1px solid transparent;box-sizing:border-box;}
.mday.empty{cursor:default;}
.mband{position:absolute;height:14px;line-height:14px;font-size:9.5px;font-weight:600;padding:0 5px;box-sizing:border-box;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;color:var(--text);
  background:var(--c);background:color-mix(in srgb,var(--c) 30%,var(--bg2));border-left:2px solid var(--c);z-index:1;}
.gcal-note{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);margin-bottom:8px;}
.gcal-note span{width:8px;height:8px;border-radius:50%;background:#4285f4;flex-shrink:0;}
.gcal-off-btn{background:transparent;border:0.5px solid rgba(231,76,60,0.55);color:#e74c3c;border-radius:var(--radius-sm);padding:6px 10px;font-size:12px;cursor:pointer;font-family:'DM Sans',sans-serif;}
.snd-row.ext .snd-name{flex:1;}
.ext-box{padding:4px 2px 10px;}
.ext-apps{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;}
.ext-apps a{flex:1;min-width:90px;text-align:center;text-decoration:none;font-size:12px;font-weight:500;color:var(--text);background:var(--bg3);border:0.5px solid var(--border);border-radius:10px;padding:8px 6px;}
.ext-hint{font-size:12px;color:var(--muted);line-height:1.55;}

/* Modo Noite (cartão no Foco + ecrã bloqueado) */
.morning-card{margin-top:4px;}
.mc-head{display:flex;align-items:flex-start;gap:12px;}
.mc-ic{font-size:30px;line-height:1;}
.mc-t{font-size:15px;font-weight:600;color:var(--text);}
.mc-s{font-size:12px;color:var(--muted);line-height:1.5;margin-top:2px;}
.mc-gear{background:none;border:0.5px solid var(--border);border-radius:10px;padding:6px 8px;cursor:pointer;font-size:14px;}
.mc-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12.5px;color:var(--tx2);margin-top:12px;padding-top:10px;border-top:0.5px solid var(--line);}
.mc-row b{color:var(--gold);font-weight:600;white-space:nowrap;}
.mc-link{display:block;width:100%;margin-top:8px;background:none;border:none;color:var(--muted);font-family:'DM Sans',sans-serif;font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:6px;}
.night-lock{position:fixed;inset:0;z-index:9500;background:linear-gradient(180deg,#1a1405 0%,var(--bg) 45%);display:flex;flex-direction:column;align-items:center;padding:calc(28px + env(safe-area-inset-top)) 18px calc(20px + env(safe-area-inset-bottom));overflow-y:auto;text-align:center;}
[data-theme="light"] .night-lock.morning{background:linear-gradient(180deg,#fff4d6 0%,var(--bg) 45%);}
.night-lock.night{background:linear-gradient(180deg,#050816 0%,#0a0a12 60%);--gold:#b8a46a;--gold-dim:#1a1708;--text:#dcdce6;--muted:#7a7f99;--tx2:#b8bccc;--tx3:#8a8fa8;--tx4:#5c6078;--border:#1c2135;--line:#1c2135;--bg2:#0f1220;--bg3:#151a2c;color:var(--text);color-scheme:dark;}
.night-lock.night .ml-time{color:#c9c9d6;font-size:54px;}
.night-lock.night .ml-card{background:#0f1220;border-color:#1c2135;}
.night-lock.night .ml-sun{filter:saturate(0.6);}
.nl-calm{font-size:13px;color:#7a7f99;margin:-8px 0 16px;}
.nl-actions{display:flex;gap:10px;margin-top:auto;padding-top:18px;width:100%;max-width:440px;}
.nl-btn{flex:1;background:transparent;border:0.5px solid var(--line);color:var(--tx3);padding:11px 10px;border-radius:20px;font-size:12px;cursor:pointer;font-family:'DM Sans',sans-serif;}
.nl-btn:disabled{opacity:0.35;cursor:default;}
.nl-pause-opts{display:flex;gap:8px;margin-top:10px;}
.nl-pause-opts .btn{flex:1;margin:0;}
.night-pause-bar{top:calc(10px + env(safe-area-inset-top));bottom:auto;background:#1c2135;color:#fff;}
.night-pause-bar.late{background:#e67e22;color:#0a0a0a;}
.ml-sun{font-size:46px;animation:cbTrophy 0.8s ease both;}
.ml-kicker{font-family:'Bebas Neue',sans-serif;letter-spacing:3px;color:var(--gold);font-size:17px;margin-top:6px;}
.ml-time{font-family:'Bebas Neue',sans-serif;font-size:64px;letter-spacing:3px;color:var(--text);line-height:1.05;}
.ml-sub{font-size:13px;color:var(--muted);margin-bottom:18px;}
.ml-card{width:100%;max-width:440px;background:var(--bg2);border:0.5px solid var(--border);border-radius:18px;padding:14px 14px 10px;text-align:left;}
.ml-h{font-size:13px;font-weight:600;color:var(--gold);margin-bottom:6px;}
.ml-add{display:flex;gap:8px;margin-top:8px;}
.ml-add .inp{margin:0;flex:1;}
.ml-add .btn{margin:0;width:48px;padding:0;}
.ml-help{font-size:11px;color:var(--tx3);margin-top:14px;max-width:300px;line-height:1.6;}

/* Tarefas recorrentes */
.todo-rep{background:none;border:none;cursor:pointer;font-size:12px;padding:0 3px;opacity:0.25;filter:grayscale(1);}
.todo-rep.on{opacity:1;filter:none;}
.rep-opts{margin:12px 0 4px;}
.rep-opt{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text);padding:8px 0;cursor:pointer;}
.rep-opt input{accent-color:var(--gold);}

/* Modo Noite: lista de tarefas (planear) */
.nl-row{display:flex;align-items:center;gap:8px;padding:9px 8px;margin-bottom:6px;border-radius:10px;background:var(--bg3);transition:transform 0.12s;}
.nl-row.dragging{transition:none;box-shadow:0 6px 18px rgba(0,0,0,0.5);position:relative;z-index:2;opacity:0.9;}
.nl-row.done .nl-text{color:var(--muted);text-decoration:line-through;}
.nl-drag{color:var(--tx4);font-size:16px;cursor:grab;padding:0 4px;touch-action:none;user-select:none;}
.nl-num{font-size:12px;color:var(--gold);font-weight:600;width:14px;text-align:center;}
.nl-text{flex:1;font-size:14px;color:var(--text);min-width:0;word-break:break-word;}
.nl-rec{font-size:11px;opacity:0.7;}
.nl-ic{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:0 4px;}
.nl-ic.x{font-size:18px;}
.nl-pause-opts .btn small{display:block;font-size:10px;font-weight:400;opacity:0.7;margin-top:2px;}

/* Lembrete do hábito */
.hs-remind{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);margin:0 0 10px;flex-wrap:wrap;}
.hs-remind span{color:var(--muted);font-size:11px;}
.hs-remind .inp{margin:0;width:auto;flex:1;min-width:110px;}
.hs-remind button{background:none;border:none;color:var(--muted);font-size:11px;text-decoration:underline;cursor:pointer;font-family:'DM Sans',sans-serif;}

/* Recap partilhável */
.rc-share{margin-top:10px;width:100%;background:transparent;border:0.5px solid var(--gold);color:var(--gold);border-radius:20px;padding:8px;font-family:'DM Sans',sans-serif;font-size:13px;cursor:pointer;}
.share-preview{width:56%;max-width:220px;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,0.5);margin:0 auto 12px;display:block;}
.share-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:8px;}
.share-opt{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--bg3);border:0.5px solid var(--border);border-radius:14px;padding:10px 4px;font-size:22px;cursor:pointer;font-family:'DM Sans',sans-serif;}
.share-opt span{font-size:11px;color:var(--tx2);}
.share-opt:disabled{opacity:0.5;}
.post-img{display:block;max-width:100%;max-height:420px;border-radius:12px;margin:-2px 0 10px;cursor:pointer;}

/* Modelos de objetivos */
.gt-label{font-size:12px;color:var(--text);font-weight:500;margin-bottom:6px;}
.gt-label span{color:var(--muted);font-weight:400;}
.gt-row{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;margin-bottom:10px;scrollbar-width:none;}
.gt-row::-webkit-scrollbar{display:none;}
.gt-chip{flex-shrink:0;background:var(--bg3);border:0.5px solid var(--border);color:var(--tx2);border-radius:18px;padding:7px 12px;font-size:12.5px;cursor:pointer;font-family:'DM Sans',sans-serif;white-space:nowrap;}
.gt-chip.on{border-color:var(--gold);color:var(--gold);background:var(--gold-dim);}
.gt-sugg{background:var(--bg3);border:0.5px solid var(--border);border-radius:12px;padding:10px 12px;margin:0 0 12px;}
.gt-h{font-size:12px;font-weight:500;color:var(--gold);margin-bottom:4px;}
.gt-h span{color:var(--muted);font-weight:400;}
.gt-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);padding:5px 0;cursor:pointer;flex-wrap:wrap;}
.gt-item input{accent-color:var(--gold);}
.gt-item em{font-style:normal;font-size:11px;color:var(--muted);}
.gt-tip{font-size:11.5px;color:var(--tx3);margin-top:6px;}

/* Dia de folga */
.rest-btn{background:var(--bg3)!important;color:var(--text)!important;border:0.5px solid var(--border)!important;padding:4px 9px!important;margin-right:6px;}
.rest-banner{font-size:12.5px;color:var(--tx2);background:var(--bg3);border:0.5px dashed var(--border);border-radius:12px;padding:10px 12px;margin-bottom:8px;line-height:1.55;}
.rest-banner b{color:var(--gold);}
.rest-banner button{display:block;margin-top:6px;background:none;border:none;color:var(--muted);font-size:11px;text-decoration:underline;cursor:pointer;padding:0;font-family:'DM Sans',sans-serif;}
.rest-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px;}
.rest-opts .btn{margin:0;padding:12px 6px;font-size:13px;}
.rest-opts .btn.rest-off{background:var(--bg3);color:var(--text);border:0.5px solid var(--border);}

/* Histórico do foco */
.focus-history{margin-top:4px;}
.fh-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:6px;}
.fh-empty{font-size:12.5px;color:var(--muted);line-height:1.55;}
.fh-sum{font-size:12.5px;color:var(--tx2);margin-bottom:10px;}
.fh-sum b{color:var(--gold);font-size:16px;margin-right:2px;}
.fh-sum span{margin-left:6px;font-size:11px;}
.fh-sum .up{color:var(--green);} .fh-sum .down{color:#e67e22;}
.fh-bars{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;align-items:end;height:108px;}
.fh-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:3px;}
.fh-col i{display:block;width:70%;max-width:26px;min-height:3px;background:var(--gold);border-radius:5px 5px 2px 2px;opacity:0.85;}
.fh-col.today i{opacity:1;box-shadow:0 0 0 1.5px var(--gold-dim);}
.fh-col.fut i{background:var(--border);}
.fh-col b{font-size:10px;color:var(--muted);font-weight:500;}
.fh-col.today b{color:var(--gold);}
.fh-v{font-size:9px;color:var(--tx3);min-height:11px;}
.fh-sub{font-size:11px;color:var(--muted);margin:12px 0 4px;}
.fh-weeks{display:flex;gap:4px;align-items:end;height:38px;}
.fh-weeks i{flex:1;background:var(--border);border-radius:3px;}
.fh-weeks i.cur{background:var(--gold);}
.fh-best{font-size:12.5px;color:var(--tx2);margin-top:12px;padding-top:10px;border-top:0.5px solid var(--line);}
.fh-best b{color:var(--gold);} .fh-best span{color:var(--muted);font-size:11px;}

/* Planear a semana */
.week-planner{position:fixed;inset:0;z-index:9200;background:var(--bg);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);}
@media(min-width:768px){.week-planner{left:220px;}}
.wp-top{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:0.5px solid var(--border);background:var(--bg2);}
.wp-top>button{background:none;border:none;color:var(--muted);font-size:24px;cursor:pointer;padding:0 4px;}
.wp-title{font-size:15px;font-weight:600;color:var(--text);}
.wp-week{font-size:11px;color:var(--muted);}
.wp-dots{margin-left:auto;display:flex;gap:5px;}
.wp-dots i{width:7px;height:7px;border-radius:50%;background:var(--border);}
.wp-dots i.on{background:var(--gold);}
.wp-body{flex:1;overflow-y:auto;padding:20px 18px;max-width:520px;width:100%;margin:0 auto;box-sizing:border-box;}
.wp-h{font-size:19px;font-weight:600;color:var(--text);margin-bottom:6px;}
.wp-p{font-size:13.5px;color:var(--tx2);line-height:1.55;margin-bottom:8px;}
.wp-p b{color:var(--gold);}
.wp-tip{font-size:13px;color:var(--tx2);background:var(--bg3);border-radius:10px;padding:9px 11px;margin-bottom:8px;line-height:1.5;}
.wp-tip b{color:var(--gold);}
.wp-area{margin-top:6px;resize:none;font-size:15px;}
.wp-row{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg3);border-radius:10px;margin-bottom:6px;font-size:14px;color:var(--text);}
.wp-row span{flex:1;}
.wp-row button{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;}
.wp-sub{font-size:12px;color:var(--muted);margin:14px 0 6px;}
.wp-chips{display:flex;flex-wrap:wrap;gap:6px;}
.wp-day{display:flex;gap:12px;padding:9px 0;border-bottom:0.5px solid var(--line);font-size:13px;}
.wp-day b{width:52px;flex-shrink:0;color:var(--gold);font-weight:600;text-transform:capitalize;}
.wp-day div{display:flex;flex-wrap:wrap;gap:5px;}
.wp-ev{background:var(--bg3);border-left:3px solid var(--c);border-radius:6px;padding:3px 8px;color:var(--text);}
.wp-hab{background:var(--bg3);border-radius:6px;padding:3px 8px;color:var(--tx2);}
.wp-link{margin-top:12px;background:none;border:none;color:var(--gold);font-size:13px;cursor:pointer;padding:0;font-family:'DM Sans',sans-serif;}
.wp-done{font-size:60px;text-align:center;margin:30px 0 10px;animation:cbTrophy 0.8s ease both;}
.wp-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:0.5px solid var(--border);background:var(--bg2);}
.wp-back{background:none;border:none;color:var(--muted);font-size:14px;cursor:pointer;font-family:'DM Sans',sans-serif;}
.btn.wp-next{width:auto;margin:0;padding:12px 22px;}
.wp-invite{display:block;width:100%;margin:2px 0 10px;padding:11px;background:var(--gold-dim);border:0.5px solid var(--gold);color:var(--gold);border-radius:12px;font-family:'DM Sans',sans-serif;font-size:13.5px;font-weight:600;cursor:pointer;}
.wp-invite span{font-weight:400;opacity:0.8;}
.wp-mini{display:block;margin:0 0 8px auto;background:none;border:none;color:var(--muted);font-size:11.5px;cursor:pointer;font-family:'DM Sans',sans-serif;text-decoration:underline;text-underline-offset:3px;padding:0;}

/* Tarefas no calendário */
.todo-more{background:none;border:none;color:var(--muted);cursor:pointer;font-size:18px;padding:0 6px;line-height:1;}
.todo-at{display:inline-block;font-size:11px;color:var(--gold);background:var(--gold-dim);border-radius:6px;padding:1px 6px;margin-right:6px;}
.todo-rec{font-size:10px;opacity:0.7;}
.ta-opt{display:block;width:100%;text-align:left;background:var(--bg3);border:0.5px solid var(--border);color:var(--text);border-radius:12px;padding:13px 14px;margin-bottom:8px;font-family:'DM Sans',sans-serif;font-size:14px;cursor:pointer;}
.ta-opt.danger{color:#e74c3c;}
.sc-dur{display:flex;gap:6px;}
.sc-dur .hs-d{max-width:none;border-radius:10px;}
.cal-todos{background:var(--bg3);border-radius:12px;padding:10px 12px;margin-bottom:10px;}
.cal-todos-h{font-size:12px;font-weight:500;color:var(--text);margin-bottom:6px;}
.cal-todos-h span{color:var(--muted);font-weight:400;}

/* Desafios */
.btn.ch-new{width:100%;margin:4px 0 6px;}
.ch-join{display:block;width:100%;background:none;border:none;color:var(--muted);font-size:12.5px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-family:'DM Sans',sans-serif;padding:6px;margin-bottom:8px;}
.ch-card{cursor:pointer;}
.ch-t{font-size:15px;font-weight:600;color:var(--text);}
.ch-s{font-size:12px;color:var(--muted);margin-top:2px;}
.ch-empty{text-align:center;font-size:13px;color:var(--muted);line-height:1.6;padding:24px 10px;}
.ch-code{font-family:'Bebas Neue',sans-serif;font-size:36px;letter-spacing:6px;color:var(--gold);margin:6px 0;}
.ch-board{margin:10px 0;max-height:46vh;overflow-y:auto;}
.ch-row{display:flex;align-items:center;gap:10px;padding:9px 6px;border-bottom:0.5px solid var(--line);}
.ch-row.me{background:var(--gold-dim);border-radius:10px;}
.ch-pos{width:22px;text-align:center;font-weight:600;color:var(--gold);}
.avatar.ch-av{width:32px;height:32px;font-size:11px;flex-shrink:0;overflow:hidden;}
.avatar.ch-av img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.ch-name{font-size:13.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ch-num{font-size:12px;color:var(--muted);text-align:right;white-space:nowrap;}
.ch-num b{font-size:16px;color:var(--text);}
.ch-num span{display:block;font-size:11px;color:var(--gold);}

/* Registo personalizado */
.onb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 12px;}
.onb-opt{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--bg3);border:0.5px solid var(--border);border-radius:14px;padding:12px 4px;font-size:24px;cursor:pointer;font-family:'DM Sans',sans-serif;}
.onb-opt span{font-size:11px;color:var(--tx2);line-height:1.25;}
.onb-opt:active{border-color:var(--gold);background:var(--gold-dim);}

/* Modo Noite: horário por dia + aviso */
.np-rows{margin:10px 0 4px;}
.np-row{display:flex;align-items:center;gap:6px;padding:4px 0;}
.np-row.off .inp{opacity:0.3;pointer-events:none;}
.np-day{flex:1;display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text);min-width:92px;}
.np-day input{accent-color:var(--gold);}
.np-row .inp{margin:0;width:auto;padding:8px;font-size:14px;}
.np-row span{color:var(--muted);font-size:12px;}
.night-alert{position:fixed;inset:0;z-index:9600;background:linear-gradient(180deg,#050816 0%,#0a0a12 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center;animation:fcFade 0.3s ease;}
.na-moon{font-size:72px;animation:cbTrophy 0.8s ease both;}
.na-title{font-size:26px;font-weight:700;color:#e8e8f0;margin:10px 0 8px;}
.na-sub{font-size:15px;color:#9a9fb8;line-height:1.6;max-width:340px;margin-bottom:24px;}
.na-sub b{color:#c9a84c;}
.btn.na-go{max-width:340px;padding:16px;font-size:16px;margin:0 0 10px;}
.na-btn{width:100%;max-width:340px;background:transparent;border:0.5px solid #2a3050;color:#c8cbe0;border-radius:14px;padding:13px;font-family:'DM Sans',sans-serif;font-size:14px;cursor:pointer;margin-bottom:8px;}
.na-btn span{color:#6c7190;font-size:12px;}
.na-opts{display:flex;gap:8px;width:100%;max-width:340px;}
.na-link{background:none;border:none;color:#6c7190;font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-family:'DM Sans',sans-serif;padding:8px;}
.na-link.danger{color:#e67e22;}

/* Calendário: só o evento selecionado tem pegas; sobrepostos em cascata */
.tg-ev .tg-handle{display:none;}
.tg-ev.sel .tg-handle{display:block;}
.tg-ev.sel{overflow:visible;outline:2px solid var(--text);outline-offset:1px;box-shadow:0 8px 22px rgba(0,0,0,0.55);touch-action:none;}
.tg-ev.sel .tg-handle{position:absolute;left:50%;transform:translateX(-50%);width:34px;height:12px;bottom:-6px;border-radius:6px;background:var(--text);border:2px solid var(--c);cursor:ns-resize;}
.tg-ev.sel .tg-handle.top{bottom:auto;top:-6px;}
.tg-ev.stack{box-shadow:-2px 0 0 var(--bg),0 2px 6px rgba(0,0,0,0.35);}
/* Tarefa da semana feita */
.wk-spark{position:fixed;z-index:9999;width:7px;height:7px;margin:-3px 0 0 -3px;border-radius:50%;pointer-events:none;animation:wkSpark 0.7s cubic-bezier(0.2,0.8,0.3,1) forwards;}
@keyframes wkSpark{to{transform:translate(var(--dx),var(--dy)) scale(0.3);opacity:0;}}
.wk-flash{animation:wkFlash 0.9s ease;}
@keyframes wkFlash{0%{background:rgba(201,168,76,0.35);}100%{background:transparent;}}
.wk-pop{position:fixed;z-index:9999;transform:translate(-20%,-100%);font-size:14px;font-weight:700;color:var(--gold);text-shadow:0 2px 8px rgba(0,0,0,0.6);pointer-events:none;white-space:nowrap;animation:wkPop 1.3s ease forwards;}
@keyframes wkPop{0%{opacity:0;transform:translate(-20%,-60%) scale(0.8);}15%{opacity:1;transform:translate(-20%,-120%) scale(1.1);}100%{opacity:0;transform:translate(-20%,-220%) scale(1);}}

.ne-h{font-size:12px;color:var(--muted);margin:2px 0 6px;}
.ne-quick{display:flex;gap:6px;margin-top:2px;}
.ne-quick button{flex:1;background:var(--bg3);border:0.5px solid var(--border);color:var(--tx2);border-radius:10px;padding:7px 4px;font-size:11.5px;cursor:pointer;font-family:'DM Sans',sans-serif;}
/* Foco bloqueado / Modo Noite: só esse ecrã existe (nada da página por baixo) */
html.page-locked,html.page-locked body{overflow:hidden;overscroll-behavior:none;}
html.page-locked #s-app{visibility:hidden;}
.night-lock,.night-alert,#focus-lock{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}

/* Foco: tarefas e hábitos de hoje à vista */
.focus-todo{width:100%;max-width:340px;margin:0 auto 16px;text-align:left;}
.focus-todo:empty{display:none;}
#focus-todo-tab{margin-top:20px;}
.focus-todo .ft-head{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;font-weight:500;color:var(--text);margin-bottom:6px;}
.focus-todo .ft-head span{font-size:11px;color:var(--muted);font-weight:400;}
.focus-todo .ft-sub{font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--tx4);margin:8px 0 2px;}
.focus-todo .ft-row{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg2);border:0.5px solid var(--border);border-radius:10px;margin-bottom:5px;font-size:13px;color:var(--text);cursor:pointer;}
.focus-todo .ft-row.done span{color:var(--muted);text-decoration:line-through;opacity:0.7;}
.focus-todo .ft-row .chk{flex-shrink:0;}
.focus-todo .ft-empty{font-size:12px;color:var(--muted);text-align:center;padding:10px;background:var(--bg2);border-radius:10px;}
#focus-todo-lock{max-height:38vh;overflow-y:auto;}

/* Foco: tarefa da sessão, planos, notas */
.focus-pick{text-align:left;margin:0 0 16px;}
.focus-pick .fp-h{font-size:13px;font-weight:500;color:var(--text);margin-bottom:8px;}
.focus-pick .fp-list{display:flex;flex-wrap:wrap;gap:6px;}
.focus-pick .fp-c{background:var(--bg3);border:0.5px solid var(--border);color:var(--tx2);border-radius:16px;padding:7px 12px;font-size:12.5px;cursor:pointer;font-family:'DM Sans',sans-serif;max-width:100%;text-align:left;}
.focus-pick .fp-c.on{background:var(--gold-dim);border-color:var(--gold);color:var(--gold);font-weight:500;}
.focus-pick .fp-empty{font-size:12px;color:var(--muted);line-height:1.5;}
.focus-todo .ft-now{display:flex;flex-direction:column;gap:2px;padding:12px 14px;margin-bottom:12px;border-radius:12px;background:var(--gold-dim);border:0.5px solid var(--gold);cursor:pointer;}
.focus-todo .ft-now span{font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--gold);}
.focus-todo .ft-now b{font-size:15px;color:var(--text);font-weight:500;}
.focus-todo .ft-now em{font-size:11px;color:var(--muted);font-style:normal;}
.focus-todo .ft-now{cursor:default;}
.focus-todo .ft-nr{display:flex;align-items:center;gap:10px;padding:6px 0;cursor:pointer;}
.focus-todo .ft-nr .chk{flex-shrink:0;}
.focus-todo .ft-nr.done b{text-decoration:line-through;color:var(--muted);}
.focus-todo .ft-now .ft-next{margin-top:4px;color:var(--tx2);}
.focus-pick .fp-hs{font-size:11px;color:var(--muted);font-weight:400;margin-left:4px;}
.focus-pick .fp-r{display:inline-block;font-style:normal;font-size:10.5px;font-weight:600;background:var(--gold);color:#000;border-radius:999px;padding:2px 7px;margin-right:6px;vertical-align:1px;}
.focus-pick .fp-hint{font-size:11.5px;color:var(--muted);line-height:1.45;margin-top:8px;}
.focus-todo .ft-note{margin-top:8px;}
.focus-todo .ft-note button{width:100%;background:transparent;border:0.5px dashed var(--border);color:var(--muted);border-radius:10px;padding:9px;font-size:12px;cursor:pointer;font-family:'DM Sans',sans-serif;}
.pom-tip{font-size:12px;color:var(--tx2);line-height:1.5;background:var(--bg3);border-radius:10px;padding:10px 12px;margin-bottom:12px;}
.pom-tip button{display:block;margin-top:8px;background:var(--gold-dim);border:0.5px solid var(--gold);color:var(--gold);border-radius:8px;padding:6px 10px;font-size:12px;cursor:pointer;font-family:'DM Sans',sans-serif;}

/* Recap: foco por dia */
.rc-fbars{display:flex;gap:4px;align-items:flex-end;margin:8px 0 6px;}
.rc-fb{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;}
.rc-fb-v{font-size:9px;color:var(--muted);height:12px;white-space:nowrap;}
.rc-fb-bar{width:100%;max-width:26px;height:60px;background:var(--bg3);border-radius:6px;display:flex;align-items:flex-end;overflow:hidden;}
.rc-fb-bar i{display:block;width:100%;background:var(--gold);border-radius:6px;min-height:0;}
.rc-fb-l{font-size:10px;color:var(--tx4);}
.rc-fsum{font-size:13px;line-height:1.6;}

/* Recap: aceitar ou recusar a proposta */
.rc-pbtns{display:flex;gap:6px;flex-wrap:wrap;}
.rc-pbtns .rc-btn{flex:1;min-width:130px;}
.rc-btn.rc-no{background:transparent;border:0.5px solid var(--border);color:var(--tx2);}
/* Hábitos: quando e a que horas */
.hs-lbl{font-size:13px;color:var(--text);margin:2px 0 6px;}
.hs-hint{font-size:11.5px;color:var(--muted);margin:0 0 6px;}

/* Perfil público */
.pp-modal{position:fixed;inset:0;background:rgba(0,0,0,0.75);z-index:300;display:flex;align-items:flex-end;justify-content:center;animation:fcFade 0.2s ease;}
.pp-sheet{position:relative;background:var(--bg2);border-radius:22px 22px 0 0;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;padding:0 18px calc(18px + env(safe-area-inset-bottom));}
.pp-x{position:absolute;top:10px;right:12px;z-index:2;background:rgba(0,0,0,0.35);border:none;color:#fff;width:32px;height:32px;border-radius:50%;font-size:20px;cursor:pointer;line-height:1;}
.pp-loading{padding:48px 0;text-align:center;color:var(--muted);font-size:13px;}
.pp-cover{height:92px;margin:0 -18px;background:linear-gradient(135deg,var(--gold-dim) 0%,var(--bg3) 60%,var(--bg2) 100%);border-bottom:0.5px solid var(--border);}
.pp-head{text-align:center;margin-top:-48px;}
.pp-av{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid var(--bg2);box-shadow:0 0 0 1.5px var(--gold);display:block;margin:0 auto 10px;cursor:zoom-in;background:var(--bg3);}
.pp-ini{display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:500;color:var(--gold);background:var(--gold-dim);cursor:default;}
.pp-name{font-size:21px;font-weight:600;color:var(--text);}
.pp-bio{font-size:13.5px;color:var(--tx2);line-height:1.55;margin:6px auto 0;max-width:340px;}
.pp-bio.muted{color:var(--muted);font-size:12.5px;}
.pp-since{font-size:11.5px;color:var(--tx4);margin-top:6px;}
.pp-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:16px 0 6px;}
.pp-stats div{background:var(--bg3);border-radius:12px;padding:10px 4px;text-align:center;}
.pp-stats b{display:block;font-size:16px;color:var(--gold);font-weight:600;}
.pp-stats span{font-size:10px;color:var(--muted);}
.pp-sec{margin-top:16px;}
.pp-h{font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--tx4);margin-bottom:8px;}
.pp-hab{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg3);border-radius:12px;margin-bottom:6px;}
.pp-hab>i{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.pp-hab-t{flex:1;min-width:0;}
.pp-hab-t b{display:block;font-size:13.5px;color:var(--text);font-weight:500;}
.pp-hab-t span{font-size:11px;color:var(--muted);}
.pp-hab-w{text-align:right;flex-shrink:0;}
.pp-hab-w span{font-size:11px;color:var(--tx2);}
.pp-mini{width:60px;height:5px;border-radius:3px;background:var(--bg2);overflow:hidden;margin:0 0 4px auto;}
.pp-mini i{display:block;height:100%;border-radius:3px;}
.pp-goal{padding:12px;background:var(--bg3);border-radius:12px;margin-bottom:6px;}
.pp-goal.main{border:0.5px solid var(--gold);}
.pp-goal b{display:block;font-size:13.5px;color:var(--text);font-weight:500;}
.pp-tag{display:inline-block;font-size:9.5px;letter-spacing:1px;text-transform:uppercase;color:var(--gold);margin-bottom:4px;}
.pp-bar{height:6px;border-radius:3px;background:var(--bg2);overflow:hidden;margin:8px 0 4px;}
.pp-bar i{display:block;height:100%;background:var(--gold);border-radius:3px;}
.pp-goal-n{font-size:11px;color:var(--muted);}
.pp-priv{font-size:12px;color:var(--muted);background:var(--bg3);border-radius:12px;padding:10px 12px;}
.pp-badges{display:flex;flex-wrap:wrap;gap:6px;}
.pp-badges span{background:var(--bg3);border:0.5px solid var(--border);border-radius:20px;padding:5px 10px;font-size:12px;color:var(--tx2);}
.pp-actions{display:flex;gap:8px;margin-top:20px;align-items:center;}
.pp-report{background:var(--bg3);border:0.5px solid var(--border);color:var(--muted);border-radius:var(--radius-sm);padding:12px 14px;cursor:pointer;font-size:13px;}
.pp-me{flex:1;text-align:center;font-size:12px;color:var(--muted);}
.pp-photo{position:fixed;inset:0;z-index:400;background:rgba(0,0,0,0.92);display:flex;align-items:center;justify-content:center;cursor:zoom-out;animation:fcFade 0.2s ease;}
.pp-photo img{max-width:92vw;max-height:80vh;border-radius:16px;object-fit:contain;}
/* Pesquisa de pessoas */
.su-row{display:flex;align-items:center;gap:8px;padding:8px;border-radius:12px;margin-bottom:4px;background:var(--bg3);}
.su-who{flex:1;display:flex;align-items:center;gap:10px;cursor:pointer;min-width:0;}
.su-av{width:40px;height:40px;font-size:13px;flex-shrink:0;overflow:hidden;}
.su-av img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.su-st{font-size:11px;color:var(--gold);}
.su-msg{background:var(--gold-dim);border:0.5px solid var(--gold);color:var(--gold);border-radius:10px;padding:8px 11px;cursor:pointer;font-size:15px;flex-shrink:0;}
/* O teu perfil público: interruptores */
.ps-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.ps-l{font-size:14px;color:var(--text);}
.ps-s{font-size:11.5px;color:var(--muted);}
.ps-sw{width:44px;height:24px;border-radius:12px;background:var(--bg3);border:0.5px solid var(--border);position:relative;cursor:pointer;flex-shrink:0;transition:background 0.2s;}
.ps-sw i{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left 0.2s;}
.ps-sw.on{background:var(--gold);}
.ps-sw.on i{left:22px;}
.ps-see{width:100%;background:transparent;border:0.5px solid var(--border);color:var(--tx2);border-radius:10px;padding:10px;font-size:13px;cursor:pointer;font-family:'DM Sans',sans-serif;}

.goal-vis{background:var(--bg3);border:0.5px solid var(--border);color:var(--muted);border-radius:12px;padding:2px 8px;font-size:10px;cursor:pointer;font-family:'DM Sans',sans-serif;white-space:nowrap;}
.goal-vis.on{background:var(--gold-dim);border-color:var(--gold);color:var(--gold);}

/* O meu recap */
.rc-self{background:var(--bg2);border:0.5px solid var(--border);border-radius:14px;padding:12px;width:100%;}
.rc-self-h{font-size:13px;font-weight:500;color:var(--text);margin-bottom:8px;}
.rc-self-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
.rc-self-tags .rc-chip.on{background:var(--gold-dim);border-color:var(--gold);color:var(--gold);}
.rc-chip-main{border-color:var(--gold)!important;color:var(--gold)!important;}
.rc-me-tags{font-size:11px;opacity:0.85;margin-bottom:4px;}
.rc-me-next{font-size:12px;margin-top:6px;opacity:0.9;}

/* Tutorial: porque vale a pena */
.tt-why{display:flex;flex-direction:column;gap:7px;text-align:left;background:var(--bg3);border-radius:14px;padding:12px 14px;}
.tt-why div{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.45;color:var(--tx2);}
.tt-why span b{color:var(--text);}
.tt-center-box{max-height:calc(100dvh - 32px);overflow-y:auto;}

/* Convites */
.st-h{font-size:12px;font-weight:500;color:var(--gold);margin-bottom:10px;display:flex;justify-content:space-between;align-items:baseline;}
.st-h span{font-size:11px;color:var(--muted);font-weight:400;}
.inv-sub{font-size:12.5px;color:var(--tx2);line-height:1.55;margin-bottom:10px;}
.inv-link{background:var(--bg3);border-radius:10px;padding:9px 12px;font-size:12px;color:var(--muted);margin-bottom:10px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.inv-btns{display:flex;gap:8px;}
.inv-copy{background:var(--bg3);border:0.5px solid var(--border);color:var(--tx2);border-radius:var(--radius-sm);padding:0 14px;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:13px;}
.inv-n{font-size:12px;color:var(--tx2);margin-top:10px;text-align:center;}
/* Estatísticas */
.st-nums{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px;}
.st-nums div{background:var(--bg3);border-radius:10px;padding:8px 4px;text-align:center;}
.st-nums b{display:block;font-size:15px;color:var(--gold);font-weight:600;}
.st-nums span{font-size:10px;color:var(--muted);}
.st-chart{display:flex;gap:2px;align-items:flex-end;height:96px;margin-bottom:6px;}
.st-col{flex:1;display:flex;flex-direction:column;gap:2px;height:100%;cursor:pointer;min-width:0;}
.st-bar{flex:1;display:flex;align-items:flex-end;background:var(--bg3);border-radius:3px;overflow:hidden;}
.st-bar i{display:block;width:100%;background:var(--tx4);border-radius:3px;}
.st-bar i.ok{background:var(--gold);}
.st-f{height:18px;display:flex;align-items:flex-end;}
.st-f i{display:block;width:100%;background:#5b8def;border-radius:2px;opacity:0.8;}
.st-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:10.5px;color:var(--muted);margin-bottom:10px;}
.st-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;background:var(--tx4);margin-right:4px;vertical-align:middle;}
.st-legend i.ok{background:var(--gold);}
.st-legend i.f{background:#5b8def;}
.st-ins{font-size:12.5px;color:var(--tx2);line-height:1.55;margin-top:6px;}
/* Fotos de progresso */
.gp-modal{position:fixed;inset:0;background:rgba(0,0,0,0.75);z-index:320;display:flex;align-items:flex-end;justify-content:center;}
.gp-sheet{position:relative;background:var(--bg2);border-radius:22px 22px 0 0;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;padding:20px 18px calc(18px + env(safe-area-inset-bottom));}
.gp-h{font-size:17px;font-weight:600;color:var(--text);}
.gp-t{font-size:13px;color:var(--tx2);margin-top:2px;}
.gp-priv{font-size:11.5px;color:var(--muted);margin:6px 0 14px;}
.gp-empty{font-size:13px;color:var(--tx2);line-height:1.6;background:var(--bg3);border-radius:12px;padding:14px;margin-bottom:14px;}
.gp-cmp{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.gp-cmp figure{margin:0;}
.gp-cmp img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:12px;background:var(--bg3);display:block;}
.gp-cmp figcaption{font-size:11px;color:var(--muted);text-align:center;margin-top:4px;}
.gp-days{text-align:center;font-size:12.5px;color:var(--gold);margin:8px 0 14px;}
.gp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:14px;}
.gp-th{background:none;border:none;padding:0;cursor:pointer;text-align:center;}
.gp-th img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;background:var(--bg3);display:block;}
.gp-th span{font-size:10px;color:var(--muted);}
.gp-add{display:block;width:100%;text-align:center;margin:0;cursor:pointer;}
.gp-full{display:flex;flex-direction:column;align-items:center;gap:10px;}
.gp-full img{max-width:92vw;max-height:75vh;border-radius:14px;}
.gp-full-bar{display:flex;gap:14px;align-items:center;color:#fff;font-size:13px;}
.gp-full-bar button{background:rgba(231,76,60,0.15);border:0.5px solid rgba(231,76,60,0.6);color:#ff8a7a;border-radius:10px;padding:7px 12px;cursor:pointer;font-family:'DM Sans',sans-serif;}

/* Perfil + Definições */
#profile-content{position:relative;}
.set-open{position:absolute;top:0;right:0;z-index:2;background:var(--bg2);border:0.5px solid var(--border);color:var(--tx2);border-radius:20px;padding:7px 12px;font-size:13px;cursor:pointer;font-family:'DM Sans',sans-serif;}
.set-open span{font-size:12px;}
.pf-head{text-align:center;margin:8px 0 16px;}
.pf-name{font-size:19px;font-weight:600;color:var(--text);margin-top:4px;}
.pf-bio{font-size:13px;color:var(--tx2);margin-top:4px;line-height:1.5;}
.pf-bio span{color:var(--gold);cursor:pointer;}
.pf-see{margin-top:10px;background:transparent;border:0.5px solid var(--border);color:var(--muted);border-radius:16px;padding:6px 12px;font-size:12px;cursor:pointer;font-family:'DM Sans',sans-serif;}
.lock-teaser{font-size:12.5px;color:var(--muted);text-align:center;}
.lock-teaser span{color:var(--tx4);}
.set-sheet{position:fixed;inset:0;z-index:250;background:var(--bg);overflow-y:auto;animation:fcFade 0.2s ease;}
.set-top{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;background:var(--bg);border-bottom:0.5px solid var(--border);font-size:16px;font-weight:600;color:var(--text);}
.set-top button{background:none;border:none;color:var(--gold);font-size:26px;cursor:pointer;line-height:1;width:32px;text-align:left;}
.set-top span{width:32px;}
.set-body{max-width:520px;margin:0 auto;padding:8px 16px calc(24px + env(safe-area-inset-bottom));}
.set-h{font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--tx4);margin:18px 4px 8px;}
.set-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;}
.set-row:first-child{margin-top:0;}
.set-l{font-size:14px;color:var(--text);}
.set-s,.set-sub{font-size:12px;color:var(--muted);line-height:1.5;}
.set-sub{margin-top:8px;}
.seg-full{display:flex;width:100%;}
.seg-full .seg-b{flex:1;}
.set-links{display:flex;flex-direction:column;padding:4px 0;}
.set-links button{background:none;border:none;border-bottom:0.5px solid var(--border);color:var(--text);text-align:left;padding:13px 16px;font-size:14px;cursor:pointer;font-family:'DM Sans',sans-serif;}
.set-links button:last-child{border-bottom:none;}
.set-links .danger{color:#e74c3c;}
/* Foco num toque */
.fq-go{width:100%;padding:14px;font-size:15px;margin:0 0 6px;}
.fq-sub{font-size:11.5px;color:var(--muted);margin-bottom:12px;}
.fq-change{background:transparent!important;color:var(--tx2)!important;border:0.5px solid var(--border)!important;}

/* Dicas na primeira visita */
.jit-tip{position:fixed;left:12px;right:12px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:240;max-width:460px;margin:0 auto;background:var(--bg2);border:1px solid rgba(201,168,76,0.55);border-radius:16px;padding:14px 16px 12px;box-shadow:0 10px 30px rgba(0,0,0,0.35);animation:celebrationPop 0.35s ease both;}
.jit-tip.out{opacity:0;transform:translateY(10px);transition:all 0.2s;}
.jit-t{font-size:13.5px;font-weight:600;color:var(--gold);margin-bottom:4px;}
.jit-x{font-size:13px;color:var(--tx2);line-height:1.55;}
.jit-ok{display:block;margin:10px 0 0 auto;background:var(--gold);color:#0a0a0a;border:none;border-radius:16px;padding:7px 16px;font-size:12.5px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;}
/* Hoje: objetivo + semana compactos */
.plan-wrap{margin-bottom:6px;}
.plan-sum{width:100%;display:flex;flex-direction:column;gap:6px;text-align:left;background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius);padding:12px 14px;cursor:pointer;font-family:'DM Sans',sans-serif;color:var(--text);}
.plan-wrap.open .plan-sum{border-color:rgba(201,168,76,0.5);margin-bottom:8px;}
.ps-goal{font-size:13.5px;line-height:1.35;}
.ps-goal b{font-weight:500;}
.ps-meta{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);}
.ps-bar{display:inline-block;width:70px;height:5px;border-radius:3px;background:var(--bg3);overflow:hidden;}
.ps-bar i{display:block;height:100%;background:var(--gold);}
.ps-chev{margin-left:auto;font-size:15px;transition:transform 0.2s;}
.plan-wrap.open .ps-chev{transform:rotate(180deg);}
.plan-body{display:none;}
.plan-wrap.open .plan-body{display:block;}
/* Recap: detalhes */
.rc-more{width:100%;}
.rc-more summary{cursor:pointer;color:var(--gold);font-size:13px;padding:6px 2px;list-style:none;}
.rc-more summary::-webkit-details-marker{display:none;}
.rc-more summary::before{content:'▸ ';}
.rc-more[open] summary::before{content:'▾ ';}
.rc-dt{background:var(--bg2);border:0.5px solid var(--border);border-radius:14px;padding:10px 12px;margin-top:6px;font-size:13px;line-height:1.55;}

/* ═══ Ecrãs vazios ═══ */
.empty-st{text-align:center;padding:22px 14px 18px;}
.es-e{font-size:34px;margin-bottom:8px;}
.es-t{font-size:15px;font-weight:600;color:var(--text);margin-bottom:6px;}
.es-x{font-size:13px;color:var(--tx2);line-height:1.6;max-width:320px;margin:0 auto;}
.es-b{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px;}
.es-main,.es-ghost{border-radius:12px;padding:10px 16px;font-size:13.5px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;}
.es-main{background:var(--gold);color:#0a0a0a;border:none;}
.es-ghost{background:transparent;color:var(--tx2);border:0.5px solid var(--border);}

/* ═══ Uma só aparência: botões, cartões, janelas ═══ */
:root{--radius-sm:10px;--r-btn:12px;}
/* Botões principais: o mesmo raio, peso e resposta ao toque em todo o lado */
.btn,.btn-o,.rc-btn,.pc-btn,.gh-btn,.wk-add,#add-todo-btn,.fq-go,.es-main,.es-ghost,.landing-cta-btn,.landing-cta-ghost,.jit-ok,.inv-copy,.su-msg{border-radius:var(--r-btn)!important;}
.btn,.rc-btn,.pc-btn,.es-main{font-weight:600;letter-spacing:0.1px;}
button{-webkit-tap-highlight-color:transparent;}
.btn:active,.btn-o:active,.rc-btn:active,.pc-btn:active,.gh-btn:active,.es-main:active,.es-ghost:active,.fp-c:active,.rc-chip:active,.ft-row:active,.check-row:active{transform:scale(0.97);}
.btn,.btn-o,.rc-btn,.pc-btn,.gh-btn,.es-main,.es-ghost{transition:transform 0.12s ease,opacity 0.2s,background 0.2s;}
button:focus-visible,.inp:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
/* Pequenos botões e etiquetas: sempre em pílula */
.btn-sm,.goal-vis,.rc-chip,.fp-c,.pf-see,.set-open{border-radius:999px!important;}
/* Campos */
.inp{border-radius:var(--radius-sm);}
select.inp{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px!important;}
/* Janelas de baixo: o mesmo topo arredondado e uma "pega" */
.pp-sheet,.gp-sheet{border-radius:22px 22px 0 0;}
.pp-sheet::before,.gp-sheet::before{content:'';display:block;width:38px;height:4px;border-radius:2px;background:var(--border);margin:8px auto 0;position:relative;z-index:3;}
.gp-sheet::before{margin:-12px auto 10px;}
.fb-box{border-radius:20px!important;}
/* Títulos das secções dos cartões */
.card>div:first-child[style*="color:var(--gold)"][style*="font-size:12px"]{letter-spacing:0.2px;}

/* Lista de objetivos: título em cima, ações por baixo */
.gl-item{margin-bottom:14px;padding-bottom:14px;border-bottom:0.5px solid var(--border);}
.gl-item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none;}
.gl-top{display:flex;align-items:flex-start;gap:8px;margin-bottom:4px;}
.gl-title{flex:1;font-size:14px;color:var(--text);font-weight:500;line-height:1.35;}
.gl-main{font-size:12px;}
.gl-del{background:none;border:none;color:var(--tx4);cursor:pointer;font-size:18px;line-height:1;padding:0 2px;}
.gl-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.gl-b{background:var(--bg3);border:0.5px solid var(--border);color:var(--tx2);border-radius:999px;padding:6px 11px;font-size:12px;cursor:pointer;font-family:'DM Sans',sans-serif;white-space:nowrap;}
.gl-b.main{background:var(--gold);color:#0a0a0a;border-color:var(--gold);font-weight:600;}
.gl-b.on{background:var(--gold-dim);border-color:var(--gold);color:var(--gold);}

/* ═══ Leitura: nada abaixo de ~11 px ═══ */
[style*="font-size:9px"]{font-size:10.5px!important;}
[style*="font-size:10px"]{font-size:11px!important;}
[style*="font-size:11px"]{font-size:12px!important;}
.st-nums span,.pp-stats span,.rc-fb-l,.rc-fb-v,.gp-th span,.st-legend,.ps-meta,.pp-tag,.ft-sub,.set-h,.pp-h{font-size:11px!important;}
.bnb{font-size:10px!important;}
[data-theme="light"] .bnb{color:#6e6e78;}

/* Começar pelo incómodo */
.pain-list{display:flex;flex-direction:column;gap:8px;margin-top:4px;}
.pain-opt{display:flex;align-items:center;gap:12px;text-align:left;background:var(--bg3);border:0.5px solid var(--border);color:var(--text);border-radius:14px;padding:13px 14px;font-size:14px;cursor:pointer;font-family:'DM Sans',sans-serif;}
.pain-opt span{font-size:22px;}
.pain-opt:active{transform:scale(0.98);border-color:var(--gold);}
/* Modo simples */
body.one-mode #goal-hero,body.one-mode #week-card,body.one-mode #week-stats-card{display:none!important;}
body.one-mode #day-title{font-size:20px;}
/* Cartão de lembretes / subir de nível (não é uma janela) */
.nudge{display:flex;gap:12px;align-items:flex-start;background:var(--bg2);border:1px solid rgba(201,168,76,0.45);border-radius:var(--radius);padding:12px 12px 12px 14px;margin:0 0 10px;}
.ng-e{font-size:24px;line-height:1;}
.ng-b{flex:1;min-width:0;}
.ng-t{font-size:14px;font-weight:600;color:var(--text);}
.ng-x{font-size:12.5px;color:var(--tx2);line-height:1.5;margin:3px 0 10px;}
.ng-btns{display:flex;gap:8px;flex-wrap:wrap;}
.ng-go{background:var(--gold);color:#0a0a0a;border:none;border-radius:12px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;}
.ng-no{background:transparent;color:var(--tx2);border:0.5px solid var(--border);border-radius:12px;padding:8px 14px;font-size:13px;cursor:pointer;font-family:'DM Sans',sans-serif;}
.ng-x2{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;line-height:1;padding:0 2px;}
/* Quem convidaste */
.iv-h{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--tx4);margin:16px 0 8px;}
.iv-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:0.5px solid var(--line);}
.iv-av{width:36px;height:36px;font-size:12px;flex-shrink:0;overflow:hidden;cursor:pointer;}
.iv-av img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.iv-who{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;}
.iv-who b{font-size:13.5px;color:var(--text);font-weight:500;}
.iv-who span{font-size:11.5px;color:var(--muted);}
.iv-who .iv-ok{color:var(--green);}
.iv-who .iv-bad{color:#e67e22;}
.iv-bell,.iv-nudge{background:var(--bg3);border:0.5px solid var(--border);border-radius:999px;width:36px;height:36px;cursor:pointer;font-size:15px;flex-shrink:0;}
.iv-bell.on{border-color:var(--gold);}
.iv-foot{font-size:11px;color:var(--tx4);margin-top:8px;}
#tt-center .tt-center-box{max-width:min(380px,calc(100vw - 32px))!important;}

/* (copos de água substituídos pela cor por níveis) */
/* Letras maiores (Definições) */
html[data-ts="l"] body{zoom:1.12;}
html[data-ts="xl"] body{zoom:1.25;}

/* ═══ Tutorial animado: instalar no ecrã principal ═══ */
.ig-wrap{position:fixed;inset:0;z-index:9900;background:rgba(0,0,0,0.88);display:flex;align-items:center;justify-content:center;padding:14px;overflow-y:auto;animation:fcFade 0.25s ease;}
.ig-box{width:100%;max-width:400px;background:#111;border:1px solid rgba(201,168,76,0.45);border-radius:22px;padding:18px 16px 12px;color:#fff;max-height:calc(100dvh - 28px);overflow-y:auto;}
.ig-top{display:flex;gap:12px;align-items:center;margin-bottom:14px;}
.ig-top img{border-radius:10px;flex-shrink:0;}
.ig-h{font-size:16px;font-weight:600;line-height:1.3;}
.ig-s{font-size:12.5px;color:#bbb;line-height:1.45;margin-top:2px;}
.ig-phone{position:relative;width:170px;height:300px;margin:0 auto 14px;border-radius:26px;background:#000;border:3px solid #333;padding:8px;box-shadow:0 10px 30px rgba(0,0,0,0.5);}
.ig-screen{position:relative;width:100%;height:100%;border-radius:18px;overflow:hidden;background:#0d0d0d;}
.ig-page{padding:30px 12px;}
.ig-logo{font-family:'Bebas Neue',sans-serif;color:#c9a84c;font-size:26px;letter-spacing:3px;text-align:center;margin-bottom:12px;}
.ig-line{height:7px;border-radius:4px;background:#222;margin:8px 0;}
.ig-line.s{width:60%;}
.ig-bar{position:absolute;left:0;right:0;bottom:0;height:34px;background:#1d1d1f;display:flex;justify-content:space-around;align-items:center;color:#4da3ff;font-size:14px;}
.ig-cbar{position:absolute;left:0;right:0;top:0;height:30px;background:#1d1d1f;display:flex;align-items:center;gap:6px;padding:0 8px;font-size:9px;color:#aaa;}
.ig-url{flex:1;background:#2a2a2c;border-radius:10px;padding:4px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ig-dots{color:#ddd;font-size:15px;}
.ig-sheet{position:absolute;left:0;right:0;bottom:0;background:#1f1f22;border-radius:14px 14px 0 0;padding:8px 6px 12px;transform:translateY(105%);transition:transform 0.45s ease;}
.android .ig-sheet{top:30px;bottom:auto;right:6px;left:auto;width:130px;border-radius:10px;transform:scale(0.6);transform-origin:top right;opacity:0;transition:all 0.35s ease;}
.ig-row{font-size:9.5px;color:#ddd;padding:7px 8px;border-radius:7px;}
.ig-row.hl{background:rgba(201,168,76,0.18);color:#fff;}
.ig-add{position:absolute;inset:0;background:#1a1a1c;display:flex;flex-direction:column;align-items:center;padding-top:10px;gap:6px;font-size:11px;opacity:0;transition:opacity 0.35s;pointer-events:none;}
.ig-add-top{width:100%;display:flex;justify-content:space-between;padding:0 10px 14px;font-size:10px;color:#4da3ff;}
.ig-add img{width:46px;height:46px;border-radius:11px;}
.ig-home{position:absolute;inset:0;background:linear-gradient(160deg,#2b2140,#0f2a3a);display:grid;grid-template-columns:repeat(4,1fr);gap:12px 8px;padding:24px 12px;opacity:0;transition:opacity 0.35s;align-content:start;}
.ig-home i{display:block;width:100%;aspect-ratio:1;border-radius:9px;background:rgba(255,255,255,0.14);}
.ig-app{width:100%;aspect-ratio:1;border-radius:9px;transform:scale(0);transition:transform 0.5s cubic-bezier(0.2,1.6,0.4,1) 0.3s;}
.ig-appc{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:7px;color:#fff;}
.ig-finger{position:absolute;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,0.35);border:2px solid #fff;box-shadow:0 0 0 0 rgba(255,255,255,0.6);transition:all 0.6s ease;left:60%;top:60%;opacity:0;animation:igTap 1.3s ease-in-out infinite 0.6s;}
@keyframes igTap{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(255,255,255,0.5);}50%{transform:scale(0.8);box-shadow:0 0 0 10px rgba(255,255,255,0);}}
/* cenas */
.ig-phone[data-scene="bar"] .ig-finger{opacity:1;}
.ios[data-scene="bar"] .ig-finger{left:calc(50% - 13px);top:calc(100% - 30px);}
.android[data-scene="bar"] .ig-finger{left:calc(100% - 26px);top:2px;}
.ig-phone[data-scene="sheet"] .ig-sheet{transform:none;opacity:1;}
.ig-phone[data-scene="sheet"] .ig-finger{opacity:1;}
.ios[data-scene="sheet"] .ig-finger{left:45%;top:calc(100% - 64px);}
.android[data-scene="sheet"] .ig-finger{left:calc(100% - 60px);top:86px;}
.ig-phone[data-scene="add"] .ig-add{opacity:1;}
.ig-phone[data-scene="add"] .ig-finger{opacity:1;left:calc(100% - 34px);top:2px;}
.ig-phone[data-scene="home"] .ig-home{opacity:1;}
.ig-phone[data-scene="home"] .ig-app{transform:scale(1);}
.ig-steps{display:flex;flex-direction:column;gap:6px;}
.ig-step{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:12px;opacity:0.45;transition:all 0.3s;}
.ig-step.on{opacity:1;background:rgba(201,168,76,0.1);}
.ig-step>b{width:22px;height:22px;border-radius:50%;background:#c9a84c;color:#0a0a0a;font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ig-st{font-size:13.5px;color:#fff;}
.ig-sx{font-size:11.5px;color:#aaa;line-height:1.4;margin-top:1px;}

/* Emergência */
.em-btn{display:block;width:100%;margin-top:6px;background:transparent;border:0.5px solid rgba(231,76,60,0.55);color:#ff8a7a;border-radius:12px;padding:10px;font-size:13px;cursor:pointer;font-family:'DM Sans',sans-serif;}
.em-btn span{color:var(--muted);font-size:11.5px;}
.em-btn:disabled{opacity:0.4;cursor:default;}
/* Modo Noite: ideia em áudio */
.nl-voice{display:block;width:100%;max-width:380px;margin:10px auto 0;background:var(--bg3);border:0.5px solid var(--border);color:var(--text);border-radius:14px;padding:12px;font-size:14px;cursor:pointer;font-family:'DM Sans',sans-serif;}
.nl-voice span{color:var(--muted);font-size:11.5px;}
.nv-time{font-family:'Bebas Neue',sans-serif;font-size:42px;color:var(--text);letter-spacing:2px;margin:6px 0;}
#nv-go.rec{background:#e74c3c;color:#fff;}

/* A tua evolução */
.evo-now{font-size:28px;font-weight:700;color:var(--gold);margin:6px 0 8px;}
.evo-now span{font-size:14px;color:var(--muted);font-weight:400;}
.evo-chart{width:100%;height:auto;border-radius:14px;display:block;}
.evo-strip{display:flex;gap:8px;overflow-x:auto;padding:10px 0 4px;}
.evo-strip figure{margin:0;flex-shrink:0;text-align:center;}
.evo-strip img{width:72px;height:72px;object-fit:cover;border-radius:10px;background:var(--bg3);display:block;}
.evo-strip figcaption{font-size:10.5px;color:var(--muted);margin-top:3px;}
.evo-btns{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 8px;}
.evo-btns a.gl-b{text-decoration:none;}
.evo-video{width:100%;margin:4px 0 4px;}
.evo-video:disabled{opacity:0.45;}
.evo-hint{font-size:11.5px;color:var(--muted);text-align:center;}
.evo-out{margin-top:12px;}
.evo-out video{width:100%;max-height:60vh;border-radius:14px;background:#000;display:block;}
.gp-evo{display:block;width:100%;margin:2px 0 10px;background:var(--gold-dim);border:0.5px solid var(--gold);color:var(--gold);border-radius:12px;padding:9px;font-size:13px;cursor:pointer;font-family:'DM Sans',sans-serif;}

/* A barra de baixo em camada própria (evita ficar fora do sítio no iPhone) */
.botnav{-webkit-transform:translateZ(0);transform:translateZ(0);will-change:transform;}
