/* ---- today: quests / habits / mood ---- */
.item-row{ display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid #F1EDFB; }
.item-row:last-child{ border-bottom:none; }
.item-row input[type=checkbox]{ width:19px; height:19px; accent-color:var(--purple); flex-shrink:0; }
.item-row .item-text{ flex:1; font-size:14px; }
.item-row.done .item-text{ text-decoration:line-through; color:var(--muted); }
.item-row .item-del{ color:var(--pink); font-weight:800; cursor:pointer; font-size:15px; padding:2px 4px; }
.daily3-row{ display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid #F1EDFB; }
.daily3-row:last-child{ border-bottom:none; }
.daily3-row input[type=checkbox]{ width:19px; height:19px; accent-color:var(--purple); flex-shrink:0; }
.daily3-row input[type=text]{
  flex:1; border:none; background:none; font-family:'Manrope'; font-size:14px; color:var(--ink); outline:none; padding:2px 0;
}
.daily3-row.done input[type=text]{ text-decoration:line-through; color:var(--muted); }
.quest-add-row{ display:flex; gap:8px; margin-top:10px; }
.quest-add-row input{ flex:1; padding:9px 12px; border:1.5px solid #E7E1F5; border-radius:10px; font-family:'Manrope'; font-size:13px; background:var(--cream); }
.quest-add-row button{ background:var(--purple); color:#fff; border:none; border-radius:10px; width:38px; font-weight:800; cursor:pointer; }
.mood-row{ display:flex; justify-content:space-between; gap:4px; }
.mood-item{ display:flex; flex-direction:column; align-items:center; gap:6px; flex:1; cursor:pointer; }
.mood-item .mood-circle{
  width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:21px; opacity:.4; transition:transform .15s, opacity .15s, box-shadow .15s;
}
.mood-item.active .mood-circle{ opacity:1; transform:scale(1.1); box-shadow:0 5px 14px rgba(20,33,61,.18); }
.mood-item .mood-label{ font-size:9.5px; font-weight:700; color:var(--muted); text-align:center; }
.mood-item.active .mood-label{ color:var(--ink); }
.mood-gradient-hit{ padding:14px 7px; margin:2px -7px 0; touch-action:none; cursor:pointer; -webkit-tap-highlight-color:transparent; user-select:none; -webkit-user-select:none; outline:none; }
.mood-gradient-bar{ height:10px; border-radius:6px; background:linear-gradient(90deg, #FF8271, #FFA76B, #FFD866, #A8DFB3, #42C98B); position:relative; }
.mood-gradient-thumb{
  position:absolute; top:50%; width:22px; height:22px; border-radius:50%; background:#fff;
  border:3px solid var(--ink); transform:translate(-50%,-50%); box-shadow:0 2px 6px rgba(0,0,0,.25);
  transition:left .12s ease;
}
.emotion-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.emotion-chip{ display:flex; flex-direction:column; align-items:center; gap:5px; padding:10px 4px; border-radius:14px; background:var(--cream); cursor:pointer; transition:background .15s; }
.emotion-chip .emoji{ font-size:19px; }
.emotion-chip .label{ font-size:9.5px; font-weight:700; color:var(--muted); text-align:center; line-height:1.2; }
.emotion-chip.active{ background:var(--purple-light); }
.emotion-chip.active .label{ color:var(--purple-dark); }
.rating-row{ display:flex; align-items:center; gap:12px; }
.rating-row input[type=range]{ flex:1; accent-color:var(--purple); }
.rating-label{ font-family:'Baloo 2'; font-size:18px; font-weight:700; color:var(--purple-dark); min-width:38px; text-align:right; }
/* Поля вкладки «Самочувствие» не растягиваются мышью */
#view-wellness textarea{
  resize:none !important;
  height:64px; min-height:64px; max-height:64px;
  overflow-y:auto;
  box-sizing:border-box;
}
.empty-hint{ font-size:12.5px; color:var(--muted); }
.wellness-chart{ display:flex; align-items:flex-end; gap:6px; height:72px; margin-top:12px; }
.wellness-bar-col{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:4px; height:100%; }
.wellness-bar{ width:100%; max-width:22px; border-radius:6px 6px 3px 3px; background:var(--purple); min-height:4px; }
.wellness-bar.empty{ background:#E7E1F5; }
.wellness-bar-label{ font-size:10px; color:var(--muted); font-weight:700; }
.wellness-bool-dot{ width:22px; height:22px; border-radius:8px; background:#E7E1F5; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; color:#fff; }
.wellness-bool-dot.active{ background:var(--purple); }
.line-chart-svg{ width:100%; height:auto; display:block; }
.line-chart-empty{ text-align:center; color:var(--muted); font-size:13px; padding:30px 0; }
.wellness-cal-block .month-cal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.month-cal-dow-row{ display:grid; grid-template-columns:repeat(7,1fr); margin-bottom:4px; }
.month-cal-dow{ text-align:center; font-size:10px; font-weight:700; color:var(--muted); }
.month-cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
.month-cal-cell{
  aspect-ratio:1; display:flex; align-items:center; justify-content:center;
  border-radius:50%; font-size:12px; font-weight:700; color:var(--ink); cursor:pointer;
  transition:transform .1s;
}
.month-cal-cell:active{ transform:scale(.9); }
.month-cal-cell.pad{ visibility:hidden; cursor:default; }
.month-cal-cell.today{ box-shadow:inset 0 0 0 1.5px var(--purple); }
.month-cal-cell.selected{ background:var(--purple) !important; color:#fff; box-shadow:none; }
.month-cal-legend{ display:flex; align-items:center; gap:5px; margin-top:10px; font-size:10.5px; color:var(--muted); font-weight:700; }
.month-cal-legend-dot{ width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.tracker-insight{ margin-top:10px; font-size:11.5px; font-weight:700; padding:8px 10px; border-radius:12px; line-height:1.4; }
.tracker-insight.up{ background:rgba(66,201,139,.13); color:var(--mint-dark); }
.tracker-insight.down{ background:rgba(255,130,113,.13); color:var(--coral-dark); }
#wellness-stats-row .stat .num{ display:flex; align-items:center; justify-content:center; gap:3px; }

/* ---- shared tabs (focus / tracker) ---- */
.focus-tabs{ display:flex; gap:6px; background:var(--white); border-radius:16px; padding:5px; box-shadow:var(--shadow); margin-bottom:18px; }
.focus-tab{
  flex:1; border:none; background:none; padding:9px 4px; border-radius:12px;
  font-family:'Manrope'; font-weight:700; font-size:11.5px; color:var(--muted); cursor:pointer;
}
.focus-tab.active{ background:var(--white); color:var(--purple-dark); box-shadow:0 3px 10px rgba(28,55,100,.08); }

/* ---- ring (focus timer + habit today) ---- */
.focus-ring-wrap{ position:relative; width:220px; height:220px; margin:0 auto 18px; }
.focus-ring-svg{ width:100%; height:100%; transform:rotate(-90deg); }
.focus-ring-bg{ fill:none; stroke:var(--purple-light); stroke-width:12; }
.focus-ring-fg{
  fill:none; stroke:var(--purple); stroke-width:12; stroke-linecap:round;
  stroke-dasharray:553; stroke-dashoffset:0; transition:stroke-dashoffset .3s linear;
}
.focus-ring-center{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; padding:0 20px;
}
.focus-task-input{
  border:none; background:none; text-align:center; font-family:'Manrope'; font-weight:700;
  font-size:13px; color:var(--muted); width:100%; outline:none;
}
.focus-time{ font-family:'Baloo 2'; font-size:38px; font-weight:700; color:var(--ink); }
.focus-pill{ background:var(--purple-light); color:var(--purple-dark); font-size:11.5px; font-weight:700; padding:5px 12px; border-radius:20px; }
.focus-controls{ display:flex; align-items:center; gap:10px; }
.focus-side-btn{
  width:48px; height:48px; border-radius:50%; background:var(--white); box-shadow:var(--shadow);
  border:none; font-size:18px; cursor:pointer; color:var(--purple-dark); flex-shrink:0;
}
#view-focus .focus-controls .primary{
  background:var(--white); color:var(--purple-dark); box-shadow:var(--shadow);
}

/* ---- habit stats + cards (unified tracker) ---- */
.habit-stats-row{ display:flex; gap:10px; margin-bottom:16px; }
.habit-stat-box{ flex:1; background:var(--white); border-radius:16px; box-shadow:var(--shadow); padding:14px 10px; text-align:center; }
.habit-stat-box .num{ font-family:'Baloo 2'; font-size:26px; font-weight:700; color:var(--ink); }
.habit-stat-box .label{ font-size:11px; color:var(--muted); font-weight:700; margin-top:2px; }
