:root{
  --bg:#0a0a0e;
  --bg-admin:#0f0f18;
  --card:#14141c;
  --card-2:#1a1a24;
  --border:#ffffff10;
  --border-strong:#ffffff20;
  --red:#c0392b;
  --red-hover:#e74c3c;
  --silver:#c0c0d0;
  --text:#ffffff;
  --muted:#9999aa;
  --green:#27ae60;
  --gold:#f39c12;
  --radius:14px;
  --shadow:0 8px 24px rgba(0,0,0,.4);
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;min-height:100vh;overscroll-behavior:none;}
body{padding-bottom:env(safe-area-inset-bottom);}
button{font-family:inherit;border:none;background:none;color:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;}
a{color:inherit;text-decoration:none;}

.app{max-width:520px;margin:0 auto;min-height:100vh;position:relative;padding-bottom:90px;}

/* Splash */
.splash{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000;opacity:1;transition:opacity .5s ease;}
.splash.hide{opacity:0;pointer-events:none;}
.splash-logo{width:130px;height:130px;border-radius:30px;background:linear-gradient(145deg,#1a1a24,#0a0a0e);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:56px;color:var(--red);box-shadow:0 0 40px rgba(192,57,43,.4),inset 0 1px 0 #ffffff10;animation:fadeUp .9s ease;}
.splash-title{margin-top:22px;font-size:24px;font-weight:800;letter-spacing:1px;animation:fadeUp 1.1s ease;}
.splash-sub{margin-top:6px;color:var(--muted);font-size:13px;letter-spacing:2px;text-transform:uppercase;animation:fadeUp 1.3s ease;}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}

/* Screens */
.screen{display:none;padding:20px 18px 10px;animation:fadeIn .3s ease;}
.screen.active{display:block;}
.admin-bg{background:var(--bg-admin);min-height:100vh;}
.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;padding-top:8px;}
.header h1{font-size:22px;font-weight:800;letter-spacing:.3px;}
.subtitle{color:var(--muted);font-size:13px;margin-top:2px;}

/* Cards */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:14px;box-shadow:var(--shadow);}
.card-title{font-size:15px;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.card-sub{color:var(--muted);font-size:13px;line-height:1.55;}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--red);color:#fff;padding:14px 18px;border-radius:12px;font-weight:700;font-size:15px;width:100%;transition:transform .15s ease,background .15s ease,box-shadow .2s ease;box-shadow:0 6px 16px rgba(192,57,43,.35);}
.btn:hover{background:var(--red-hover);}
.btn:active{transform:scale(.98);}
.btn:disabled{opacity:.5;cursor:not-allowed;background:#3a3a48;box-shadow:none;}
.btn-ghost{background:transparent;border:1px solid var(--border-strong);color:var(--text);box-shadow:none;}
.btn-ghost:hover{background:#ffffff08;}
.btn-sm{padding:10px 14px;font-size:13px;width:auto;}
.btn-danger{background:#3a1a1a;color:#ff8b80;border:1px solid #ffffff10;box-shadow:none;}

/* Onboarding / Auth */
.ob{min-height:calc(100vh - 60px);display:flex;flex-direction:column;justify-content:center;padding:30px 22px;}
.ob-logo{width:90px;height:90px;border-radius:22px;background:linear-gradient(145deg,#1a1a24,#0a0a0e);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:38px;color:var(--red);margin-bottom:24px;box-shadow:0 0 30px rgba(192,57,43,.3);}
.ob h2{font-size:28px;font-weight:800;line-height:1.2;margin-bottom:10px;}
.ob p{color:var(--muted);font-size:14px;margin-bottom:24px;line-height:1.6;}
.input{width:100%;background:var(--card);border:1px solid var(--border-strong);border-radius:12px;padding:15px 16px;color:var(--text);font-size:15px;margin-bottom:14px;transition:border-color .2s ease;}
.input:focus{outline:none;border-color:var(--red);}
textarea.input{resize:vertical;min-height:80px;}
label{display:block;font-size:13px;color:var(--muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px;}

/* Auth tabs */
.auth-tabs{display:flex;gap:6px;background:#0a0a0e;border:1px solid var(--border);border-radius:12px;padding:4px;margin-bottom:18px;}
.auth-tab{flex:1;padding:11px 12px;border-radius:9px;color:var(--muted);font-size:13px;font-weight:600;}
.auth-tab.active{background:var(--red);color:#fff;box-shadow:0 4px 10px rgba(192,57,43,.3);}
.auth-error{background:#3a1a1a;border:1px solid #ff8b8040;color:#ff8b80;padding:10px 12px;border-radius:10px;font-size:13px;margin-bottom:14px;}
.auth-info{background:#0e2018;border:1px solid #27ae6040;color:#7ad9a3;padding:10px 12px;border-radius:10px;font-size:13px;margin-bottom:14px;}
#authForgot{background:transparent;border:none;color:var(--muted);box-shadow:none;}
#authForgot:hover{color:var(--red);}

/* Icon button */
.icon-btn{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--card);border:1px solid var(--border);color:var(--silver);transition:color .2s ease,border-color .2s ease;}
.icon-btn:hover{color:var(--red);border-color:var(--border-strong);}

/* Progress */
.progress-bar{height:10px;background:#0a0a0e;border-radius:6px;overflow:hidden;margin-top:10px;border:1px solid var(--border);}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--red),var(--red-hover));border-radius:6px;transition:width .6s ease;width:0;}
.progress-row{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:8px;}

/* Day hero */
.day-hero{background:linear-gradient(145deg,#1d0d0e,#14141c);border:1px solid #c0392b40;}
.day-num{font-size:42px;font-weight:900;color:var(--red);line-height:1;}
.day-label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:1.5px;margin-top:4px;}
.row{display:flex;align-items:center;justify-content:space-between;gap:14px;}

/* Streak */
.streak{display:flex;align-items:center;gap:14px;}
.streak-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(145deg,#3a1d0e,#1f1207);display:flex;align-items:center;justify-content:center;font-size:24px;}
.streak-num{font-size:24px;font-weight:800;}
.streak-label{color:var(--muted);font-size:12px;}

/* Stats grid */
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.stat{background:#0a0a0e;border:1px solid var(--border);border-radius:10px;padding:12px 8px;text-align:center;}
.stat-v{font-size:22px;font-weight:800;color:var(--red);line-height:1;}
.stat-l{font-size:10px;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.5px;}

.quote{font-style:italic;color:var(--silver);line-height:1.55;font-size:14px;border-left:3px solid var(--red);padding-left:14px;}

/* Pills */
.pill{display:inline-block;background:#0a0a0e;border:1px solid var(--border);color:var(--silver);padding:5px 12px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;}
.pill.red{background:#c0392b20;color:var(--red);border-color:#c0392b40;}
.pill.gold{background:#f39c1220;color:var(--gold);border-color:#f39c1240;}
.pill.green{background:#27ae6020;color:var(--green);border-color:#27ae6040;}

/* Weeks list */
.week-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;overflow:hidden;transition:border-color .2s ease;}
.week-card.locked{opacity:.55;}
.week-head{padding:16px 18px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;gap:12px;}
.week-head:hover{background:#ffffff05;}
.week-head .num{width:42px;height:42px;border-radius:12px;background:linear-gradient(145deg,#1d0d0e,#14141c);border:1px solid #c0392b40;display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--red);font-size:18px;flex-shrink:0;}
.week-head .info{flex:1;min-width:0;}
.week-head .name{font-weight:700;font-size:15px;}
.week-head .meta{font-size:12px;color:var(--muted);margin-top:2px;}
.week-head .arrow{color:var(--muted);transition:transform .25s ease;}
.week-card.open .week-head .arrow{transform:rotate(90deg);}
.week-body{display:none;padding:0 14px 14px;}
.week-card.open .week-body{display:block;}
.day-item{display:flex;align-items:center;gap:12px;padding:12px 12px;background:var(--card-2);border:1px solid var(--border);border-radius:10px;margin-bottom:8px;cursor:pointer;transition:border-color .2s ease;}
.day-item:last-child{margin-bottom:0;}
.day-item.locked{opacity:.55;cursor:not-allowed;}
.day-item.done{border-color:#27ae6040;background:#0e1814;}
.day-item:not(.locked):not(.done):hover{border-color:var(--border-strong);}
.day-item .dn{width:32px;height:32px;border-radius:9px;background:#0a0a0e;border:1px solid var(--border-strong);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:var(--red);flex-shrink:0;}
.day-item.done .dn{background:#0e2018;color:var(--green);border-color:#27ae6040;}
.day-item.locked .dn{color:var(--muted);}
.day-item .di{flex:1;min-width:0;}
.day-item .di .t{font-size:13px;font-weight:700;}
.day-item .di .s{font-size:11px;color:var(--muted);margin-top:2px;}
.day-item .stat-pill{font-size:10px;padding:3px 8px;}

/* Video wrapper — vertical 9:16 (YouTube Shorts / Reels) */
.video-wrap{position:relative;width:100%;max-width:315px;margin:0 auto;aspect-ratio:9/16;background:#000;border:1px solid var(--border);border-radius:12px;overflow:hidden;}
.video-wrap iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none;}
.video-wrap > :not(iframe):not(.video-empty){position:absolute!important;inset:0!important;width:100%!important;height:100%!important;border:none!important;}
.video-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);text-align:center;line-height:2;font-size:32px;}
.video-empty span{font-size:14px;display:block;margin-top:6px;}

/* Treino stats (series / reps / descanso) */
.treino-stats{display:flex;gap:10px;margin:16px 0;}
.treino-stat-card{flex:1;background:#1e1e2a;border:1px solid rgba(192,57,43,0.3);border-radius:10px;padding:12px 8px;text-align:center;font-family:system-ui;}
.treino-stat-card .stat-icon{font-size:20px;display:block;margin-bottom:4px;}
.treino-stat-card .stat-valor{font-size:18px;font-weight:700;color:#ffffff;display:block;}
.treino-stat-card .stat-label{font-size:11px;color:#9999aa;display:block;margin-top:2px;}

/* Achievements */
.ach-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.ach-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 14px;text-align:center;position:relative;transition:transform .2s ease,border-color .2s ease;}
.ach-card.unlocked{border-color:#c0392b50;background:linear-gradient(145deg,#1d0d0e,#14141c);}
.ach-card.locked{opacity:.5;}
.ach-emoji{font-size:42px;margin-bottom:8px;filter:grayscale(.6);}
.ach-card.unlocked .ach-emoji{filter:none;}
.ach-card h3{font-size:13px;font-weight:700;margin-bottom:4px;}
.ach-card p{font-size:11px;color:var(--muted);line-height:1.4;}
.ach-card.unlocked::after{content:"✓";position:absolute;top:8px;right:10px;width:22px;height:22px;border-radius:50%;background:var(--green);color:#fff;font-size:13px;display:flex;align-items:center;justify-content:center;font-weight:800;}

/* Bonus grid */
.bonus-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.bonus-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;position:relative;overflow:hidden;}
.bonus-icon{font-size:32px;}
.bonus-card h3{font-size:14px;font-weight:700;line-height:1.3;}
.bonus-card .btn-sm{margin-top:auto;padding:8px 14px;}
.bonus-card.locked{opacity:.5;}
.bonus-card.locked::after{content:attr(data-lock);position:absolute;top:8px;right:8px;background:#0a0a0e;color:var(--muted);padding:3px 8px;border-radius:8px;font-size:10px;}

/* Breath card (for bonus modal listing) */
.breath-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px;cursor:pointer;margin-bottom:10px;}
.breath-card h3{font-size:14px;font-weight:700;margin-bottom:4px;}
.breath-card p{color:var(--muted);font-size:12px;line-height:1.5;}
.breath-tag{display:inline-block;background:#c0392b20;color:var(--red);padding:3px 10px;border-radius:20px;font-size:10px;font-weight:600;margin-top:6px;letter-spacing:.5px;}

/* Breath runner */
.breath-runner{text-align:center;padding:20px 0;}
.breath-circle-wrap{width:280px;height:280px;margin:14px auto 24px;position:relative;display:flex;align-items:center;justify-content:center;}
.breath-circle{width:120px;height:120px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#e74c3c,#7a1f15);box-shadow:0 0 60px rgba(192,57,43,.5);transition:transform 1s ease;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:14px;text-align:center;padding:10px;}
.breath-phase{font-size:24px;font-weight:800;color:var(--red);margin-top:8px;letter-spacing:1px;text-transform:uppercase;}
.breath-count{font-size:48px;font-weight:900;margin-top:6px;}
.runner-actions{display:flex;flex-direction:column;gap:10px;padding:0 4px;}

/* Sliders */
.slider-row{margin-bottom:16px;}
.slider-row label{display:flex;justify-content:space-between;text-transform:none;letter-spacing:0;color:var(--text);font-size:14px;font-weight:600;}
.slider-row label .val{color:var(--red);font-weight:800;}
input[type=range]{-webkit-appearance:none;width:100%;height:6px;background:#0a0a0e;border-radius:3px;border:1px solid var(--border);margin-top:10px;}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--red);border:2px solid #fff;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.4);}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--red);border:2px solid #fff;cursor:pointer;}

.chart-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.legend-item{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);}
.legend-dot{width:10px;height:10px;border-radius:3px;}

.history-item{background:var(--card-2);border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:8px;font-size:13px;}
.history-date{color:var(--muted);font-size:11px;margin-bottom:6px;}
.history-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;}
.history-stats span{color:var(--silver);}
.history-feel{margin-top:8px;color:var(--silver);font-style:italic;font-size:12px;border-left:2px solid var(--red);padding-left:8px;}

/* Modal */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.75);display:none;align-items:flex-end;justify-content:center;z-index:900;animation:fadeIn .25s ease;}
.modal.active{display:flex;}
.modal-content{background:var(--bg);width:100%;max-width:520px;max-height:90vh;border-top-left-radius:24px;border-top-right-radius:24px;padding:22px 20px 30px;overflow-y:auto;animation:slideUp .35s cubic-bezier(.2,.9,.3,1.1);}
@keyframes slideUp{from{transform:translateY(100%);}to{transform:translateY(0);}}
.modal-bar{width:40px;height:4px;background:var(--border-strong);border-radius:2px;margin:0 auto 14px;}
.modal-content h2{font-size:22px;font-weight:800;margin-bottom:6px;}
.modal-content .sub{color:var(--muted);font-size:13px;margin-bottom:18px;}
.modal-content h3{font-size:15px;font-weight:700;margin:18px 0 8px;color:var(--red);}
.modal-content p,.modal-content li{font-size:14px;line-height:1.65;color:#dcdce6;margin-bottom:8px;}
.modal-content ul{padding-left:20px;}

/* Settings */
.setting-item{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--border);}
.setting-item:last-child{border-bottom:none;}
.setting-item .lbl{font-size:14px;font-weight:600;}
.setting-item .desc{font-size:12px;color:var(--muted);margin-top:2px;}
.toggle{position:relative;width:44px;height:26px;background:#0a0a0e;border:1px solid var(--border-strong);border-radius:14px;cursor:pointer;transition:background .2s ease;flex-shrink:0;}
.toggle::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--silver);transition:transform .2s ease,background .2s ease;}
.toggle.on{background:var(--red);}
.toggle.on::after{transform:translateX(18px);background:#fff;}

/* Bottom nav */
.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:rgba(10,10,14,.96);backdrop-filter:blur(12px);border-top:1px solid var(--border);display:flex;justify-content:space-around;padding:10px 6px calc(10px + env(safe-area-inset-bottom)/1.2);z-index:500;max-width:520px;margin:0 auto;}
.nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.3px;transition:color .2s ease;}
.nav-btn .ic{width:24px;height:24px;display:flex;align-items:center;justify-content:center;}
.nav-btn.active{color:var(--red);}
.nav-btn:hover{color:var(--silver);}

/* Toast */
.toast{position:fixed;left:50%;bottom:110px;transform:translateX(-50%);background:#1f1f2c;border:1px solid var(--border-strong);color:#fff;padding:12px 18px;border-radius:12px;font-size:13px;z-index:1100;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease;box-shadow:var(--shadow);}
.toast.show{opacity:1;transform:translateX(-50%) translateY(-6px);}

/* Celebration */
.celebrate{position:fixed;inset:0;pointer-events:none;display:none;align-items:center;justify-content:center;z-index:1200;background:rgba(0,0,0,.6);animation:fadeIn .3s ease;}
.celebrate.active{display:flex;pointer-events:auto;}
.celebrate-card{background:linear-gradient(145deg,#1d0d0e,#14141c);border:1px solid #c0392b60;border-radius:20px;padding:30px 26px;text-align:center;max-width:340px;margin:0 18px;animation:fadeUp .5s ease;}
.celebrate-emoji{font-size:60px;margin-bottom:10px;animation:pop .6s ease;}
@keyframes pop{0%{transform:scale(.4);}60%{transform:scale(1.2);}100%{transform:scale(1);}}
.celebrate-card h2{font-size:24px;font-weight:800;margin-bottom:8px;}
.celebrate-card p{color:var(--muted);font-size:14px;margin-bottom:18px;line-height:1.5;}

.back-btn{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;font-weight:600;margin-bottom:14px;padding:6px 0;}
.back-btn:hover{color:var(--text);}

/* Footer logo */
.footer-logo{margin:30px auto 12px;width:54px;height:54px;border-radius:14px;background:linear-gradient(145deg,#1a1a24,#0a0a0e);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:22px;color:var(--red);opacity:.4;cursor:pointer;user-select:none;transition:opacity .2s ease;}
.footer-logo:hover{opacity:.7;}

/* Admin */
.admin-week{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:14px;}
.admin-week h3{font-size:14px;font-weight:700;margin-bottom:10px;color:var(--red);}
.admin-day{background:#0a0a0e;border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:10px;}
.admin-day .dh{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.admin-day .dh .t{font-size:13px;font-weight:700;}
.admin-day .dh .ind{width:10px;height:10px;border-radius:50%;background:#3a3a48;}
.admin-day .dh .ind.ok{background:var(--green);box-shadow:0 0 6px var(--green);}
.admin-day input.input,.admin-day textarea.input{margin-bottom:8px;font-size:13px;padding:10px 12px;}
.admin-day .preview{margin-top:6px;}
.admin-day .preview .video-wrap{padding-bottom:56.25%;}

/* Chart */
svg.chart{width:100%;height:180px;display:block;}
