  .view[hidden]{display:none;}

  /* stat tiles */
  .stat-row{display:grid; grid-template-columns:repeat(4,1fr); gap:12px;}
  @media (max-width:860px){.stat-row{grid-template-columns:repeat(2,1fr);}}
  .stat-tile{
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m); padding:14px 16px;
    box-shadow:var(--shadow-card); display:flex; flex-direction:column; gap:4px;
  }
  .stat-label{font-size:11px; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-mute); font-weight:600;}
  .stat-value{font-family:"Big Shoulders Display"; font-weight:800; font-size:32px; line-height:1;}
  .stat-sub{font-size:12px; color:var(--ink-2);}
  .stat-tile.accent{background:linear-gradient(155deg, var(--accent), color-mix(in oklab, var(--accent) 70%, var(--surface)));}
  .stat-tile.accent .stat-value, .stat-tile.accent .stat-label, .stat-tile.accent .stat-sub{color:var(--accent-ink);}

  /* two column grid */
  .grid-main{display:grid; grid-template-columns:1.6fr 1fr; gap:16px; align-items:start;}
  @media (max-width:900px){.grid-main{grid-template-columns:1fr;}}

  .panel{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-l); box-shadow:var(--shadow-card); overflow:hidden;}
  .panel-head{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:16px 18px 10px;}
  .panel-title{font-size:14.5px; font-weight:700; color:var(--ink);}
  .panel-title small{display:block; font-weight:400; font-size:11.5px; color:var(--ink-mute); margin-top:2px;}
  .panel-body{padding:6px 18px 18px;}
  .panel + .panel{margin-top:16px;}
  .stack{display:flex; flex-direction:column; gap:16px;}

  .btn{
    display:inline-flex; align-items:center; gap:6px; border-radius:999px; border:1px solid var(--line-strong);
    background:var(--surface); color:var(--ink); font-weight:600; font-size:13px; padding:8px 14px; cursor:pointer;
    transition:transform .1s ease, background .15s ease;
  }
  .btn:hover{background:var(--surface-2);}
  .btn:active{transform:scale(.97);}
  .btn:disabled{opacity:.6; cursor:default;}
  .btn-primary{background:var(--accent); color:var(--accent-ink); border-color:transparent;}
  .btn-primary:hover{background:var(--accent); filter:brightness(1.05);}
  .btn-ghost{border-color:transparent; background:transparent;}
  .btn-sm{padding:5px 10px; font-size:12px;}
  .btn-block{width:100%; justify-content:center;}

  /* reminder banner */
  .banner{
    display:flex; align-items:center; gap:12px; background:var(--clay-soft); border:1px solid var(--line);
    border-radius:var(--radius-m); padding:12px 16px;
  }
  .banner .flame{font-size:20px; flex:none;}
  .banner-text{flex:1; font-size:13.5px; color:var(--ink);}
  .banner-text b{font-weight:700;}
  .banner.ok{background:color-mix(in oklab, var(--status-good) 14%, var(--surface));}

  /* entry list */
  .entry-day{margin-bottom:14px;}
  .entry-day-label{font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-mute); margin:14px 0 6px; padding-top:8px; border-top:1px solid var(--line);}
