
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
:root{--bg:#f5f2ec;--bg2:#ede9e1;--surface:#fff;--surface2:#f7f4ef;--border:#e0dcd4;--border2:#ccc7bd;--ink:#0f0f0f;--ink2:#3a3a3a;--muted:#888;--accent:#c8401a;--accent-dim:rgba(200,64,26,.1);--accent-glow:rgba(200,64,26,.2);--green:#2a7a4b;--green-dim:rgba(42,122,75,.08);--red:#c8401a;--gold:#b8860b;--blue:#2a4a8b;--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-xl:20px;}
html[data-theme="dark"]{--bg:#111;--bg2:#161614;--surface:#1c1a18;--surface2:#222220;--border:#2c2826;--border2:#3a3632;--ink:#f0ede8;--ink2:#a8a098;--muted:#555;--accent:#e05020;--accent-dim:rgba(224,80,32,.13);--accent-glow:rgba(224,80,32,.22);--green:#3a9a5c;--green-dim:rgba(58,154,92,.1);--red:#e05020;--gold:#d4a020;--blue:#4a6aab;}
html,body{height:100%;font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;}


.sidebar-logo{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:800;letter-spacing:-.5px;color:var(--ink);text-decoration:none;padding:6px 8px 18px;border-bottom:1px solid var(--border);margin-bottom:10px;}
.sidebar-logo img{width:28px;height:28px;border-radius:8px;object-fit:cover;flex-shrink:0;}
.sidebar-logo span{color:var(--accent);}
.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1;}
.sidebar-section-label{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:6px 10px 4px;display:flex;flex-direction:column;}
.sidebar-link{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:var(--radius-sm);font-family:inherit;font-size:13px;font-weight:600;color:var(--ink2);background:none;border:none;cursor:pointer;text-decoration:none;transition:background .14s,color .14s;text-align:left;}
.sidebar-link:hover{background:var(--surface2);color:var(--ink);}
.sidebar-link.active{background:var(--accent-dim);color:var(--accent);}
.sl-icon{font-size:15px;width:20px;text-align:center;flex-shrink:0;}
.sidebar-bottom{border-top:1px solid var(--border);padding-top:12px;margin-top:8px;}
.sidebar-user-name{font-size:12px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sidebar-user-tier{font-size:10px;color:var(--muted);}
.sidebar-dark-btn{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);width:28px;height:28px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;transition:all .2s;color:var(--ink2);margin-left:auto;}
.avatar-circle{width:34px;height:34px;border-radius:50%;background:var(--accent);color:#fff;font-size:14px;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0;}
.avatar-circle.emoji-mode{background:var(--surface2);border:1px solid var(--border2);font-size:17px;color:var(--ink);}
@media(min-width:769px){nav{display:none!important;}}

@media(max-width:768px){.app-sidebar{display:none;}}
.stats-page{padding:32px 36px 60px;max-width:860px;margin:0 auto;width:100%;;flex:1;}
@media(max-width:900px){.stats-page{padding:24px 20px 60px;}}
@media(max-width:600px){.stats-page{padding:20px 16px 80px;}}
.page-title{font-size:26px;font-weight:800;letter-spacing:-.7px;margin-bottom:4px;}
.page-title span{color:var(--accent);}
.page-sub{font-size:13px;color:var(--muted);margin-bottom:28px;}
.sec-label{display:block;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;}
.xp-hero{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:22px 26px;margin-bottom:24px;}
.xp-level-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.xp-level-badge{background:var(--accent);color:#fff;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;border-radius:100px;}
.xp-pts-txt{font-size:11px;color:var(--ink2);font-weight:600;}
.xp-bar-track{background:var(--border);height:6px;border-radius:100px;overflow:hidden;margin-bottom:6px;}
.xp-bar-fill{height:100%;background:var(--accent);border-radius:100px;transition:width .8s cubic-bezier(.4,0,.2,1);box-shadow:0 0 10px var(--accent-glow);}
.xp-sub{font-size:10px;color:var(--muted);}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px;}
@media(max-width:540px){.stat-grid{grid-template-columns:repeat(2,1fr);}}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 16px;position:relative;overflow:hidden;transition:border-color .18s,transform .18s;}
.stat-card:hover{border-color:var(--border2);transform:translateY(-1px);}
.stat-card::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--accent-dim) 0%,transparent 60%);opacity:0;transition:opacity .2s;}
.stat-card:hover::before{opacity:1;}
.stat-icon{font-size:22px;margin-bottom:8px;}
.stat-val{font-size:26px;font-weight:800;letter-spacing:-1px;color:var(--ink);line-height:1;margin-bottom:4px;}
.stat-val.accent{color:var(--accent);}
.stat-val.green{color:var(--green);}
.stat-lbl{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.week-grid{display:grid;grid-template-columns:150px repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;overflow-x:auto;margin-bottom:24px;}
@media(max-width:600px){.week-grid{grid-template-columns:90px repeat(7,1fr);}}
.wk-head{background:var(--surface);padding:9px 5px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:center;}
.wk-head.today{color:var(--accent);background:var(--accent-dim);}
.wk-label{background:var(--surface);padding:9px 12px;font-size:12px;color:var(--ink2);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;}
.wk-cell{background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:12px;min-height:34px;color:transparent;}
.wk-cell.done{background:rgba(42,122,75,.12);color:var(--green);}
.wk-cell.today-col{background:rgba(200,64,26,.04);}
.chart-wrap{margin-bottom:24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 20px 14px;}
.chart-bars{display:flex;align-items:flex-end;gap:3px;height:80px;margin-bottom:8px;}
.chart-bar{flex:1;min-width:4px;border-radius:3px 3px 0 0;background:var(--border);transition:height .4s cubic-bezier(.4,0,.2,1);}
.chart-bar.has-data{background:var(--accent);opacity:.65;}
.chart-bar.today{opacity:1;box-shadow:0 0 8px var(--accent-glow);}
.chart-bar:hover{opacity:1;}
.chart-x{display:flex;justify-content:space-between;}
.chart-x-lbl{font-size:9px;color:var(--muted);font-weight:600;}
.badges-hero{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:18px 22px;margin-bottom:24px;display:flex;align-items:flex-start;gap:14px;cursor:pointer;transition:all .18s;}
.badges-hero:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 20px rgba(200,64,26,.08);}
.bh-icon{font-size:28px;flex-shrink:0;margin-top:2px;}
.bh-body{flex:1;}
.bh-title{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:3px;}
.bh-sub{font-size:12px;color:var(--muted);margin-bottom:8px;}
.bh-pips{display:flex;gap:5px;margin-bottom:8px;}
.bh-pip{width:12px;height:12px;border-radius:50%;opacity:.2;transition:opacity .3s;}
.bh-pip.done{opacity:1;}
.bh-chips{display:flex;gap:6px;flex-wrap:wrap;}
.bh-chip{display:flex;align-items:center;gap:5px;background:var(--surface2);border:1px solid var(--border);border-radius:100px;padding:4px 10px 4px 6px;font-size:11px;font-weight:600;color:var(--ink2);}
.bh-arrow{font-size:18px;color:var(--muted);flex-shrink:0;align-self:center;}
.alltime-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:24px;}
@media(max-width:500px){.alltime-grid{grid-template-columns:1fr;}}
.alltime-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;}
.alltime-val{font-size:28px;font-weight:800;letter-spacing:-1.5px;color:var(--ink);line-height:1;margin-bottom:5px;}
.alltime-val.accent{color:var(--accent);}
.alltime-lbl{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
#top-#top-nav{background:var(--bg);border-bottom:1px solid var(--border);padding:0 16px;height:52px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:200;backdrop-filter:blur(12px);  isolation:isolate;
}
.nav-logo{font-size:16px;font-weight:800;letter-spacing:-.5px;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:6px;}
.nav-logo span{color:var(--accent);}
.nav-dark-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s;color:var(--ink2);}
.bottom-tabs{display:none;position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--surface);border-top:1px solid var(--border);backdrop-filter:blur(12px);}
@media(max-width:768px){.bottom-tabs{display:flex;}}
@media(min-width:769px){.bottom-tabs{display:none!important;}}
.bottom-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 4px;font-family:inherit;font-size:9.5px;font-weight:700;letter-spacing:.04em;color:var(--muted);background:none;border:none;cursor:pointer;text-decoration:none;transition:color .15s;}
.bottom-tab.active{color:var(--accent);}
.bt-icon{font-size:18px;line-height:1;}
.toast-wrap{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:6px;z-index:1000;pointer-events:none;}
.toast{background:var(--surface);color:var(--ink);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);padding:12px 16px;font-size:13px;font-weight:600;animation:toastIn .28s cubic-bezier(.34,1.4,.64,1) both;max-width:300px;box-shadow:0 8px 32px rgba(0,0,0,.3);pointer-events:none;}
.toast.green{border-left-color:var(--green);}
@keyframes toastIn{from{transform:translateX(60px);opacity:0}to{transform:translateX(0);opacity:1}}

/* ━━ APP FOOTER ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */



.app-footer-logo-mark{
  width:24px;height:24px;border-radius:6px;
  background:var(--accent);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:900;
}
.app-footer-logo span{color:var(--accent);}


.app-footer-links a:hover{color:var(--ink);}


/* ━━ APP FOOTER ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */



.app-footer-logo span{color:var(--accent);}


.app-footer-links a:hover{color:var(--ink);}


/* ━━ YEAR HEATMAP ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.heatmap-wrap{
  overflow-x:auto;
  padding-bottom:8px;
}
.heatmap{
  display:flex;
  gap:3px;
  width:max-content;
}
.heatmap-col{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.heatmap-cell{
  width:12px;
  height:12px;
  border-radius:2px;
  background:var(--border);
  transition:transform .1s;
  cursor:default;
  flex-shrink:0;
}
.heatmap-cell:hover{transform:scale(1.4);}
.heatmap-cell.d1{background:rgba(200,64,26,.22);}
.heatmap-cell.d2{background:rgba(200,64,26,.45);}
.heatmap-cell.d3{background:rgba(200,64,26,.70);}
.heatmap-cell.d4{background:var(--accent);}
.heatmap-months{
  display:flex;
  gap:3px;
  width:max-content;
  margin-bottom:4px;
  padding-left:0;
}
.heatmap-month-lbl{
  font-size:10px;
  color:var(--muted);
  font-weight:600;
  width:max-content;
  white-space:nowrap;
}
.heatmap-legend{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:10px;
  font-size:10px;
  color:var(--muted);
  font-weight:600;
}
.heatmap-legend-cell{
  width:12px;height:12px;
  border-radius:2px;flex-shrink:0;
}
.heatmap-tooltip{
  position:fixed;
  background:var(--surface);
  border:1px solid var(--border2);
  border-radius:8px;
  padding:6px 10px;
  font-size:11px;
  font-weight:600;
  color:var(--ink);
  pointer-events:none;
  z-index:9999;
  white-space:nowrap;
  box-shadow:0 4px 12px rgba(0,0,0,.12);
  display:none;
}

/* ━━ AD PLACEHOLDER ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.ad-placeholder {
  width: 100%;
  min-height: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
  border: 2px dashed var(--border2, #c8c0b4);
  border-radius: 8px;
  background: var(--surface, #fff);
  color: var(--muted, #9a928c);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  box-sizing: border-box;
}
.ad-placeholder-icon { font-size: 18px; opacity: .4; }

/* ━━ AD SLOT WRAPPER ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.ad-slot-wrap { width: 100%; }
.ad-slot-wrap .adsbygoogle { display: none !important; height: 0 !important;
  min-height: 0 !important; margin: 0 !important; padding: 0 !important; }
.ad-slot-wrap .ad-placeholder { display: flex; }
.ad-slot-wrap.live .adsbygoogle { display: block !important; height: auto !important;
  min-height: 90px !important; }
.ad-slot-wrap.live .ad-placeholder { display: none !important; }

/* ════════════════════════════════════════════════════════════════
   SIDEBAR — collapsible icon rail with Material Icons
   ════════════════════════════════════════════════════════════════ */
.app-shell{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:row;overflow:hidden;}
.app-sidebar{width:56px;flex-shrink:0;height:100vh;position:relative;z-index: 100;overflow:visible;}
.app-sidebar-inner{
  position:absolute;top:0;left:0;bottom:0;width:56px;
  background:var(--surface);border-right:1px solid var(--border);
  display:flex;flex-direction:column;padding:12px 8px;overflow:hidden;
  transition:width .22s cubic-bezier(.4,0,.2,1);z-index: 100;pointer-events:auto;
}
.app-sidebar.sb-open 

.sidebar-logo{
  display:flex;align-items:center;gap:8px;font-size:16px;font-weight:800;
  letter-spacing:-.5px;color:var(--ink);text-decoration:none;
  padding:4px 4px 14px;border-bottom:1px solid var(--border);
  margin-bottom:8px;overflow:hidden;white-space:nowrap;
}
.sidebar-logo img{flex-shrink:0;width:28px;height:28px;border-radius:6px;}
.sidebar-logo-text{opacity:0;width:0;overflow:hidden;white-space:nowrap;transition:opacity .15s,width .15s;pointer-events:none;}
.app-sidebar.sb-open .sidebar-logo-text{opacity:1;width:auto;pointer-events:auto;}
.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1;}
.sidebar-section-label{
  font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);padding:10px 10px 4px;opacity:0;width:0;overflow:hidden;
  white-space:nowrap;transition:opacity .15s,width .15s;pointer-events:none;
}
.app-sidebar.sb-open .sidebar-section-label{opacity:1;width:auto;pointer-events:auto;}
.sidebar-link{
  display:flex;align-items:center;gap:10px;padding:8px;
  border-radius:var(--radius-sm,6px);font-family:inherit;font-size:13px;font-weight:500;
  color:var(--ink2);background:none;border:none;cursor:pointer;
  text-decoration:none;transition:background .14s,color .14s;
  text-align:left;white-space:nowrap;overflow:hidden;
}
.sidebar-link:hover{background:var(--surface2);color:var(--ink);}
.sidebar-link.active{background:var(--accent-dim,rgba(200,64,26,.1));color:var(--accent);}
.sl-icon{width:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.sl-icon .material-icons-round{font-size:20px;color:inherit;}
.sl-badge{margin-left:auto;background:var(--accent);color:#fff;font-size:9px;font-weight:800;padding:2px 6px;border-radius:100px;min-width:18px;text-align:center;}
.sb-label{opacity:0;width:0;overflow:hidden;white-space:nowrap;transition:opacity .15s,width .15s;pointer-events:none;}
.app-sidebar.sb-open .sb-label{opacity:1;width:auto;pointer-events:auto;}
.sidebar-bottom{padding-top:8px;border-top:1px solid var(--border);margin-top:auto;}
.sidebar-user-info{flex:1;min-width:0;overflow:hidden;}
.sidebar-user-name{font-size:12px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sidebar-user-tier{font-size:10px;color:var(--muted);text-transform:capitalize;}
.sidebar-dark-btn{background:none;border:none;cursor:pointer;font-size:16px;flex-shrink:0;padding:2px;}
.avatar-circle{border-radius:50%;background:var(--accent-dim,rgba(200,64,26,.1));color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex-shrink:0;}


@media(max-width:680px){
  .app-sidebar{display:none;}
  
}















.app-footer {
  background: var(--surface);
  border-top: 1px solid var(--border);
  padding: 32px 28px 28px;
  margin-top: 40px;
  width: 100%;
}
.app-footer-inner {
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}
.app-footer-logo {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 800;
  color: var(--ink);
  text-decoration: none;
}
.app-footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  justify-content: center;
}
.app-footer-links a {
  font-size: 12px;
  color: var(--muted);
  text-decoration: none;
}
.app-footer-links a:hover { color: var(--ink2); }
.app-footer-copy {
  font-size: 11px;
  color: var(--muted);
}

.app-content{flex:1;overflow-y:auto;height:100vh;background:var(--bg);transition:filter .22s;display:flex;flex-direction:column;}





.app-footer-logo img{width:18px;height:18px;border-radius:4px;}


.app-footer-links a:hover{color:var(--ink2);}


.app-footer{margin-top:0;
  background:var(--surface);
  border-top:1px solid var(--border);
  padding:28px 28px 24px;
  margin-top:40px;
  width:100%;
}
.app-footer-inner{
  max-width:900px;margin:0 auto;
  display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;
}
.app-footer-logo{
  display:flex;align-items:center;gap:6px;
  font-size:13px;font-weight:800;color:var(--ink);text-decoration:none;
}
.app-footer-logo img{width:18px;height:18px;border-radius:4px;}
.app-footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;}
.app-footer-links a{font-size:11px;color:var(--muted);text-decoration:none;}
.app-footer-links a:hover{color:var(--ink2);}
.app-footer-copy{font-size:11px;color:var(--muted);}

/* ── Monthly calendar view ── */
.heatmap-view-btn{
  font-family:inherit;font-size:11px;font-weight:700;
  background:var(--surface2);border:1px solid var(--border);
  color:var(--muted);padding:4px 12px;border-radius:var(--radius-sm);
  cursor:pointer;transition:all .14s;
}
.heatmap-view-btn.active{background:var(--ink);color:#fff;border-color:var(--ink);}
.month-cal-grid{
  display:grid;grid-template-columns:repeat(7,1fr);gap:4px;
}
.month-day-header{
  font-size:10px;font-weight:700;color:var(--muted);
  text-align:center;padding:4px 0;text-transform:uppercase;letter-spacing:.05em;
}
.month-day{
  aspect-ratio:1;border-radius:var(--radius-sm);
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:600;color:var(--ink2);
  cursor:default;position:relative;
  border:1px solid transparent;
}
.month-day.empty{background:none;}
.month-day.today{border-color:var(--accent);font-weight:800;color:var(--accent);}
.month-day.d0{background:var(--surface2);color:var(--muted);}
.month-day.d1{background:rgba(200,64,26,.15);color:var(--accent);}
.month-day.d2{background:rgba(200,64,26,.35);}
.month-day.d3{background:rgba(200,64,26,.6);color:#fff;}
.month-day.d4{background:var(--accent);color:#fff;}
.month-day .month-day-tip{
  display:none;position:absolute;bottom:110%;left:50%;transform:translateX(-50%);
  background:var(--ink);color:#fff;font-size:10px;font-weight:600;
  padding:3px 8px;border-radius:4px;white-space:nowrap;z-index:10;pointer-events:none;
}
.month-day:hover .month-day-tip{display:block;}
