:root { --bg:#f6f7f9; --card:#fff; --ink:#1c2430; --muted:#6b7684; --line:#e5e8ec; --accent:#3b82f6; --over:#e74c3c; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif; background:var(--bg); color:var(--ink); }
.wrap { max-width:1100px; margin:0 auto; padding:24px 16px; }
.topbar { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:20px; }
.topbar h1 { font-size:20px; margin:0; }
.nav { display:flex; gap:6px; flex:1; }
.navlink { color:var(--muted); text-decoration:none; font-size:14px; padding:6px 10px; border-radius:8px; }
.navlink:hover { color:var(--ink); background:var(--line); }
.navlink.active { color:var(--accent); font-weight:600; background:rgba(59,130,246,.10); }
.nav-burger { display:none; font-size:22px; line-height:1; background:none; border:none; color:var(--ink); cursor:pointer; padding:4px 8px; }
@media (max-width:640px) {
  .topbar { flex-wrap:wrap; }
  .nav-burger { display:block; margin-left:auto; order:2; }
  .topbar h1 { order:1; }
  .theme-toggle { order:3; }
  .logout { order:4; }
  .nav { display:none; order:10; flex:1 1 100%; flex-direction:column; gap:2px; padding-top:6px; }
  .topbar.nav-open .nav { display:flex; }
  .nav .navlink { padding:11px 12px; font-size:15px; border-radius:9px; }
}

/* Home CTA launcher */
.cta-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(230px, 1fr)); gap:12px; margin-bottom:18px; }
.cta { display:flex; flex-direction:column; gap:5px; padding:20px 18px; background:var(--card); border:1px solid var(--line);
  border-radius:14px; text-decoration:none; color:var(--ink); box-shadow:0 1px 3px rgba(0,0,0,.06); }
.cta:hover { border-color:var(--accent); }
.cta-big { font-size:17px; font-weight:700; }
.cta-sub { font-size:13px; color:var(--muted); }

/* Budget overspend warning */
.budget-warn { border:1px solid var(--over, #e74c3c); background:rgba(231,76,60,.10); }
.budget-warn ul { margin:8px 0; padding-left:20px; }
.budget-warn li { padding:2px 0; font-size:14px; }
.budget-warn a { font-size:14px; }
.logout { color:var(--muted); text-decoration:none; font-size:14px; }
.logout:hover { color:var(--ink); }
.login { max-width:320px; margin:12vh auto; background:var(--card); padding:28px; border-radius:14px; box-shadow:0 1px 3px rgba(0,0,0,.08); }
.login h1 { margin:0 0 16px; font-size:20px; }
.login input { width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:9px; font-size:15px; margin-bottom:12px; }
.login button { width:100%; padding:10px; border:0; border-radius:9px; background:var(--accent); color:#fff; font-size:15px; cursor:pointer; }
.error { color:var(--over); font-size:14px; margin:0 0 12px; }
.card { background:var(--card); border-radius:14px; box-shadow:0 1px 3px rgba(0,0,0,.06); padding:20px; margin-bottom:18px; }
.totals { display:flex; gap:24px; margin-bottom:18px; }
.totals .t { flex:1; }
.totals .lbl { color:var(--muted); font-size:13px; }
.totals .val { font-size:22px; font-weight:600; }
table { width:100%; border-collapse:collapse; }
th, td { text-align:left; padding:9px 8px; border-bottom:1px solid var(--line); }
th { color:var(--muted); font-weight:500; font-size:13px; }
td.num, th.num { text-align:right; font-variant-numeric:tabular-nums; }
.dot { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:8px; vertical-align:middle; }
.over { color:var(--over); }
.muted { color:var(--muted); }

/* Workout window */
.workout h2 { margin:0 0 14px; font-size:17px; }
.choices { display:flex; gap:14px; flex-wrap:wrap; }
.choice { flex:1; min-width:240px; border:1px solid var(--line); border-radius:11px; padding:14px; display:flex; flex-direction:column; }
.choice h3 { margin:0 0 8px; font-size:15px; }
.conote { font-size:13px; color:var(--muted); margin:0 0 12px; }
.choice ul { margin:0 0 12px; padding-left:18px; color:var(--ink); }
.choice li { font-size:14px; margin:2px 0; }
.choice button { width:100%; padding:9px; border:0; border-radius:9px; background:var(--accent); color:#fff; font-size:14px; cursor:pointer; }
.sub-h { font-size:14px; margin:18px 0 10px; color:var(--muted); border-top:1px solid var(--line); padding-top:14px; }
.recent-h { font-size:14px; margin:16px 0 6px; color:var(--muted); }
.recent { list-style:none; margin:0; padding:0; }
.recent li { padding:5px 0; border-bottom:1px solid var(--line); font-size:14px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.del-form { margin:0; }
.del-btn { border:0; background:transparent; color:var(--muted); font-size:18px; line-height:1; cursor:pointer; padding:0 6px; border-radius:6px; }
.del-btn:hover { color:var(--over); background:var(--line); }

/* Exercise guide link (↗) */
.guide { text-decoration:none; color:var(--muted); font-size:12px; opacity:.7; }
.guide:hover { color:var(--accent); opacity:1; }

/* Choose-this link styled as a button (sticks to card bottom) */
.btn { display:block; margin-top:auto; text-align:center; text-decoration:none; padding:9px; border-radius:9px; background:var(--accent); color:#fff; font-size:14px; }
.btn:hover { filter:brightness(1.05); }

/* Last-done line on picker cards */
.lastdone { font-size:13px; color:var(--muted); margin:0 0 8px; }
.lastdone.stale { color:var(--over); }

/* Weight entry panel */
.weights { display:flex; flex-direction:column; gap:10px; }
.wrow { display:flex; align-items:center; gap:12px; border-bottom:1px solid var(--line); padding-bottom:10px; }
.wcheck { width:24px; height:24px; flex:none; accent-color:var(--ok, #12a150); cursor:pointer; }
.wex { font-size:14px; flex:1; min-width:0; }
.wcheck:checked ~ .wex { text-decoration:line-through; opacity:.5; }
.winput { display:inline-flex; align-items:center; gap:6px; flex-shrink:0; }
.winput input { width:90px; padding:8px 10px; border:1px solid var(--line); border-radius:9px; font-size:15px; background:var(--card); color:var(--ink); text-align:right; }
.wunit { color:var(--muted); font-size:13px; }
.wactions { display:flex; align-items:center; gap:14px; margin-top:6px; }
.wactions button { padding:10px 18px; border:0; border-radius:9px; background:var(--accent); color:#fff; font-size:15px; cursor:pointer; }
.cancel { color:var(--muted); text-decoration:none; font-size:14px; }
.cancel:hover { color:var(--ink); }

/* Theme toggle */
.theme-toggle { border:0; background:transparent; cursor:pointer; font-size:17px; line-height:1; padding:4px 6px; border-radius:8px; }
.theme-toggle:hover { background:var(--line); }

/* Dark theme */
[data-theme="dark"] {
  --bg:#0f1419; --card:#1a212b; --ink:#e6e9ee; --muted:#94a2b3; --line:#2b3441; --accent:#3b82f6; --over:#f0676c;
}
[data-theme="dark"] .card { box-shadow:0 1px 3px rgba(0,0,0,.4); }
[data-theme="dark"] .navlink.active { background:rgba(59,130,246,.18); }

/* workout notes */
.wnote { display:flex; flex-direction:column; gap:6px; margin-top:4px; }
.wnote-label { font-size:14px; color:var(--muted); }
.wnote textarea { width:100%; box-sizing:border-box; padding:10px; border:1px solid var(--line);
  border-radius:9px; font-size:15px; background:var(--card); color:var(--ink);
  resize:vertical; font-family:inherit; min-height:130px; line-height:1.5; }
.recent li { flex-direction:column; align-items:stretch; }
.recent-main { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.recent-note { margin:4px 0 2px; font-size:13px; color:var(--muted);
  white-space:pre-wrap; overflow-wrap:anywhere; }

/* muscle-group rest */
.rest-warn { margin:0 0 10px; font-size:13px; color:var(--over); }
.choice.resting { opacity:.72; }
.btn.disabled { background:var(--line); color:var(--muted); cursor:not-allowed;
  pointer-events:none; margin-top:auto; }
.wactions button:disabled { opacity:.5; cursor:not-allowed; }

/* Reminders module */
.reminders h2 { margin:0 0 12px; font-size:17px; }
.reminders .section-h { margin:22px 0 12px; }
.rem-add { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:14px; }
.rem-add input[type=text] { flex:1; min-width:180px; padding:8px 10px; border:1px solid var(--line); border-radius:9px; font-size:14px; background:var(--card); color:var(--ink); }
.rem-add select, .rem-add input[type=number] { padding:8px; border:1px solid var(--line); border-radius:9px; font-size:14px; background:var(--card); color:var(--ink); }
.rem-add input[type=number] { width:64px; }
.rem-add button { padding:8px 14px; border:0; border-radius:9px; background:var(--accent); color:#fff; font-size:14px; cursor:pointer; }
.anchor { display:inline-flex; align-items:center; gap:6px; color:var(--muted); font-size:14px; }
.rem-group { font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.4px;
  color:var(--muted); margin:16px 0 4px; }
.rem-group:first-of-type { margin-top:4px; }

.rem-folder-d { margin:22px 0 2px; }
.rem-folder { font-size:14px; font-weight:700; margin:0 0 2px; padding:6px 0; cursor:pointer;
  border-bottom:1px solid var(--line); list-style:none; user-select:none; }
.rem-folder::-webkit-details-marker { display:none; }
.rem-folder::before { content:'▸ '; color:var(--muted); font-size:12px; }
.rem-folder-d[open] > .rem-folder::before { content:'▾ '; }
.rem-folder-n { font-weight:400; color:var(--muted); font-size:12px; }
.rem-group.in-folder, .rem-list.in-folder { margin-left:14px; }
.rem-group.in-folder { border-left:2px solid var(--line); padding-left:10px; }
.rem-list, .habit-list, .note-list { list-style:none; margin:0; padding:0; }
.rem-item, .habit-item, .note-item { display:flex; align-items:center; gap:10px; padding:6px 0; border-bottom:1px solid var(--line); }
.rem-main { flex:1; min-width:0; display:flex; flex-direction:column; }
.rem-text, .habit-name, .note-text { font-size:14px; }
.note-text { flex:1; }
.habit-name { flex:0 0 auto; }
.rem-meta { color:var(--muted); font-size:12px; }
/* dense single-line reminder rows */
.rem-editform { flex:1; min-width:0; display:flex; margin:0; }
.rem-edit-input { flex:1; min-width:0; font-size:14px; padding:4px 7px; border:1px solid var(--accent);
  border-radius:6px; background:var(--card); color:var(--ink); }
.rem-item .rem-text { flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; cursor:text; }
.rem-item .rem-text.wrap { white-space:normal; }
.rem-when { flex:0 0 auto; color:var(--muted); font-size:12px; white-space:nowrap; }
.rem-item.overdue .rem-text { color:var(--over); font-weight:600; }
.rem-item.overdue .rem-due { color:var(--over); }
.rem-actions { display:flex; gap:6px; }
.inline { display:inline; margin:0; }
.done { padding:5px 10px; border:0; border-radius:8px; background:var(--accent); color:#fff; font-size:13px; cursor:pointer; }
.x { border:0; background:none; color:var(--muted); font-size:18px; line-height:1; cursor:pointer; padding:0 4px; }
.x:hover { color:var(--over); }
.tick { border:1px solid var(--line); background:var(--card); color:var(--muted); width:30px; height:30px; border-radius:50%; cursor:pointer; font-size:15px; }
.tick.on { background:var(--accent); color:#fff; border-color:var(--accent); }
.habit-item .rem-meta { margin-left:auto; }

/* Home due-today strip */
.due-strip h2 { margin:0 0 12px; font-size:17px; }
.due-strip .habit-item { gap:10px; }
/* Due list: wrap long reminder text fully (readable) and keep Done top-aligned. */
.due-strip .rem-item { align-items:flex-start; }
.due-strip .rem-item .rem-text { white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:anywhere; }
.due-strip .inline { flex:0 0 auto; }

/* Workout skip controls */
.skip-wrap { margin-top:10px; }
.skip-toggle { border:1px solid var(--line); background:var(--card); color:var(--muted);
  border-radius:8px; padding:5px 14px; font-size:13px; cursor:pointer; }
.skip-toggle:hover { color:var(--ink); background:var(--line); }
.skip-form[hidden] { display:none; }
.skip-form { display:flex; align-items:center; gap:6px; margin-top:8px; }

/* Resume in-progress workout */
.resume { display:inline-block; margin:0 0 14px; padding:8px 14px; border-radius:9px;
  background:rgba(59,130,246,.12); color:var(--accent); text-decoration:none; font-size:14px; font-weight:600; }
.resume:hover { background:rgba(59,130,246,.2); }
.skip-label { font-size:12px; color:var(--muted); }
.skip-btn { border:1px solid var(--line); background:var(--card); border-radius:8px;
  cursor:pointer; font-size:14px; line-height:1; padding:4px 7px; }
.skip-btn:hover { border-color:var(--accent); background:var(--line); }
.skip-tag { font-size:12px; color:var(--muted); font-style:italic; }

.next-btn { background:none; border:1px solid var(--accent); color:var(--accent); border-radius:9px; padding:7px 14px; cursor:pointer; font-size:14px; }
.next-btn:hover { background:rgba(59,130,246,.10); }
.nexted-ok { color:var(--accent); font-weight:600; font-size:14px; }

/* Exercise progress chart */
.pg-form { margin:0 0 10px; }
.pg-form select { padding:7px 10px; border:1px solid var(--line); border-radius:8px; background:var(--card); color:var(--ink); font-size:14px; max-width:100%; }
.pg-chart { width:100%; height:180px; color:var(--ink); }

/* "Never miss twice" workout banner (all views) */
.wo-banner { display:flex; align-items:center; gap:10px; padding:12px 16px; border-radius:12px;
  margin:0 0 16px; font-size:14.5px; text-decoration:none; color:var(--ink); }
.wo-banner.warn { background:rgba(224,161,58,.14); border:1px solid #e0a13a; }
.wo-banner.siren { background:rgba(231,76,60,.14); border:2px solid #e74c3c; color:#c0392b;
  animation:wo-pulse 1.6s ease-in-out infinite; }
[data-theme="dark"] .wo-banner.siren { color:#f0676c; }
.wo-banner-icon { font-size:22px; line-height:1; }
.wo-banner.siren .wo-banner-icon { animation:wo-shake 1.6s ease-in-out infinite; }
@keyframes wo-pulse { 0%,100% { box-shadow:0 0 0 0 rgba(231,76,60,.35); } 50% { box-shadow:0 0 0 6px rgba(231,76,60,0); } }
@keyframes wo-shake { 0%,88%,100% { transform:rotate(0); } 90% { transform:rotate(-12deg); } 94% { transform:rotate(12deg); } 98% { transform:rotate(-6deg); } }
/* Näidud (meter readings) */
.meters h2 { margin:0 0 12px; font-size:17px; }
.meters-form { display:flex; flex-direction:column; gap:12px; }
.meters-month input[type=month] { margin-left:8px; padding:7px 10px; border:1px solid var(--line); border-radius:9px; font-size:14px; background:var(--card); color:var(--ink); }
.meters-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
@media (max-width:640px) { .meters-grid { grid-template-columns:repeat(2,1fr); } }
.meters-field { display:flex; flex-direction:column; gap:4px; }
.meters-lbl { font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.03em; }
.meters-field input { width:100%; padding:8px 10px; border:1px solid var(--line); border-radius:9px; font-size:15px; background:var(--card); color:var(--ink); font-variant-numeric:tabular-nums; }
.meters-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.meters-actions button, .meters-send { padding:8px 16px; border:0; border-radius:9px; background:var(--accent); color:#fff; font-size:14px; cursor:pointer; }
.btn-ghost, .meters-actions .btn-ghost { background:var(--line); color:var(--ink); }
.meters-ok { color:var(--good, #12a150); font-weight:600; margin:8px 0; }
.meters-mail h2 { margin:0 0 8px; font-size:17px; }
.meters-preview { margin:12px 0; padding:14px 16px; border:1px solid var(--line); border-radius:10px; background:var(--bg); }
.meters-preview td { color:var(--ink); }
.meters-preview p { margin:6px 0; }
.inline { display:inline; }
.meters-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:14px; }
.meters-kpis .kpi { border:1px solid var(--line); border-radius:10px; padding:8px 12px; }
.meters-kpis .kpi-lbl { font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.03em; }
.meters-kpis .kpi-val { font-size:18px; font-weight:800; }
.tablewrap { overflow-x:auto; }
.meters-table { font-size:13.5px; }
.meters-table th, .meters-table td { text-align:left; padding:6px 8px; border-bottom:1px solid var(--line); white-space:nowrap; }
.meters-table th { color:var(--muted); font-weight:500; font-size:12.5px; }
.meters-table td.num, .meters-table th.num { text-align:right; font-variant-numeric:tabular-nums; }
.meters-table .cur-row td { font-weight:700; }
.meters-table a { color:inherit; text-decoration:none; }
.meters-table a:hover { color:var(--accent); }
.btn-mini { border:0; border-radius:6px; padding:2px 8px; font-size:12px; cursor:pointer; background:var(--line); color:var(--ink); margin-left:6px; }
.meters-link { text-decoration:none; padding:8px 16px; border-radius:9px; font-size:14px; display:inline-block; }
.meters-chart-h { margin:14px 0 4px; font-size:14px; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.meters-legend { margin-left:auto; font-size:12px; color:var(--muted); font-weight:400; }
.meters-legend .lg { display:inline-block; width:10px; height:10px; border-radius:2px; margin:0 4px 0 8px; vertical-align:-1px; background:var(--accent); }
.meters-legend .lg2 { opacity:.45; }
.meters-chart { width:100%; height:170px; color:var(--ink); display:block; }
@media (min-width:900px) { .meters-grid { grid-template-columns:repeat(6,1fr); } .meters-chart { height:220px; } }
.meters-kpis .kpi-warn { border-color:var(--over, #e74c3c); background:rgba(231,76,60,.08); }
/* Month ops checklist */
.month-ops h2 { margin:0 0 12px; font-size:17px; }
.ops-list { list-style:none; margin:0; padding:0; }
.ops-item { display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--line); }
.ops-item:last-child { border-bottom:0; }
.ops-mark { width:22px; text-align:center; font-weight:700; color:var(--muted); }
.ops-done .ops-mark { color:var(--good, #12a150); }
.ops-done .ops-text { color:var(--muted); text-decoration:line-through; }
.ops-done .ops-sub { text-decoration:none; }
.ops-text { flex:1; display:flex; flex-direction:column; }
.ops-text a { color:inherit; text-decoration:none; }
.ops-text a:hover { color:var(--accent); }
.ops-infra { margin:12px 0 0; }
/* Net worth */
.nw-kpis { grid-template-columns:repeat(4,1fr); }
@media (max-width:640px) { .nw-kpis { grid-template-columns:repeat(2,1fr); } }
.kpi-pos { color:var(--good, #12a150); }
.kpi-neg { color:var(--over, #e74c3c); }
.nw-chart { height:200px; }
.meters-legend .lg-net { background:var(--good, #12a150); }
.meters-legend .lg-debt { background:var(--over, #e74c3c); }
.nw-grid { grid-template-columns:repeat(3,1fr) !important; }
@media (max-width:640px) { .nw-grid { grid-template-columns:1fr !important; } }
.nw-pair { display:flex; gap:6px; }
.nw-pair input:last-child { width:90px; flex:0 0 90px; }
.rem-filter { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:0 0 12px; }
.rem-filter input[type=search] { flex:1; min-width:160px; padding:7px 10px; border:1px solid var(--line); border-radius:9px; font-size:14px; background:var(--card); color:var(--ink); }
.rem-filter select { padding:7px 8px; border:1px solid var(--line); border-radius:9px; font-size:13px; background:var(--card); color:var(--ink); }
.rem-filter label { display:flex; align-items:center; gap:4px; }
.anchor[hidden] { display:none; }
.ou-ta { width:100%; padding:8px 10px; border:1px solid var(--line); border-radius:9px; font:inherit; font-size:14px; background:var(--card); color:var(--ink); }
/* Recent workout edit */
.recent-btns { display:flex; gap:4px; align-items:center; }
.edit-form { margin:6px 0 4px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; display:flex; flex-direction:column; gap:8px; background:var(--bg); }
.edit-form[hidden] { display:none; }
.edit-form label { display:flex; flex-direction:column; gap:3px; color:var(--muted); }
.edit-form input { padding:6px 8px; border:1px solid var(--line); border-radius:8px; font-size:14px; background:var(--card); color:var(--ink); }
.edit-weights { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
@media (max-width:640px) { .edit-weights { grid-template-columns:repeat(2,1fr); } }
.edit-actions { display:flex; gap:6px; }
.nw-goal-in { padding:5px 8px; border:1px solid var(--line); border-radius:8px; font-size:13px; background:var(--card); color:var(--ink); margin-left:4px; width:120px; }
.bar { height:8px; border-radius:999px; background:var(--line); overflow:hidden; margin:8px 0 4px; }
.bar-fill { height:100%; background:var(--good, #12a150); border-radius:999px; }
/* Body measurements */
.measure-form { display:flex; flex-wrap:wrap; gap:8px; align-items:flex-end; margin-bottom:10px; }
.measure-form label { display:flex; flex-direction:column; gap:3px; color:var(--muted); }
.measure-form input { padding:6px 8px; border:1px solid var(--line); border-radius:8px; font-size:14px; background:var(--card); color:var(--ink); width:92px; }
.measure-form input[type=date] { width:auto; }
.measure-table { margin-top:8px; }
/* Search */
.search-form { display:flex; gap:8px; margin:0 0 12px; }
.search-form input[type=search] { flex:1; padding:9px 12px; border:1px solid var(--line); border-radius:10px; font-size:15px; background:var(--card); color:var(--ink); }
.home-search { margin-bottom:16px; }
/* Mobile audit fixes (2026-09-05): overflow + tap targets ≥ 40px */
@media (max-width:640px) {
  .totals { flex-wrap:wrap; gap:8px; }
  .totals .t { flex:1 1 45%; min-width:120px; }
  .meters-kpis { grid-template-columns:repeat(2,1fr); }
  .rem-actions .x, .rem-actions .done, .btn-mini, .del-btn, .theme-toggle, .nav-burger { min-height:40px; min-width:40px; padding:8px 12px; }
  .rem-actions .x, .del-btn { font-size:20px; line-height:1; }
  .measure-form input, .edit-form input, .km-form input, .meters-field input, .nw-goal-in, .rem-filter select, .rem-filter input[type=search] { min-height:40px; font-size:16px; }
  .measure-form input { width:100px; }
  input[type=date], input[type=month], select { min-height:40px; font-size:16px; }
  .cta { min-height:56px; }
  a.guide { padding:6px 0; display:inline-block; }
}

/* Näidud rework 2026-09-13 */
.mbanner { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; padding:10px 14px; border-radius:10px; margin-bottom:12px; border-left:4px solid var(--line); background:var(--card); }
.mbanner-todo { border-color:var(--accent); } .mbanner-warn { border-color:#f59e0b; } .mbanner-ok { border-color:var(--good, #12a150); }
.mbanner .meters-month input[type=month] { margin:0; padding:5px 8px; font-size:13px; }
.meters h2 .mode-toggle { float:right; }
.btn-mini { border:1px solid var(--line); background:var(--card); color:var(--ink); border-radius:999px; padding:3px 10px; font-size:12px; cursor:pointer; }
.btn-mini.on { background:var(--accent); color:#fff; border-color:var(--accent); }
.meters-delta { font-size:12px; color:var(--muted); min-height:16px; }
.meters-delta.flag-below, .meters-delta.flag-high, .wz-review li.flag-below, .wz-review li.flag-high, td.flag-high { color:var(--over, #e74c3c); }
.meters-delta.flag-zero { color:#f59e0b; }
.meters-wizard { display:flex; flex-direction:column; gap:10px; padding:6px 0 2px; min-height:40vh; }
.wz-name { font-size:24px; font-weight:800; }
.wz-prev { font-size:15px; }
.wz-input input { width:100%; box-sizing:border-box; font-size:34px; font-weight:800; padding:8px 10px; border:0; border-bottom:2px solid var(--accent); background:transparent; color:var(--ink); font-variant-numeric:tabular-nums; outline:none; }
.wz-delta { font-size:14px; min-height:20px; }
.wz-nav { display:flex; gap:10px; align-items:center; margin-top:auto; padding-top:12px; }
.wz-nav .grow { flex:1; }
.wz-nav button { padding:10px 18px; border:0; border-radius:9px; font-size:15px; cursor:pointer; min-height:44px; }
.wz-nav .wz-next { background:var(--accent); color:#fff; }
.wz-review { list-style:none; margin:0; padding:0; }
.wz-review li { display:flex; justify-content:space-between; gap:10px; padding:9px 0; border-bottom:1px solid var(--line); }
.hist-toggle { float:right; display:inline-flex; gap:4px; }
.meters-table.show-kulu .r-col { display:none; }
.meters-table.show-reading .k-col { display:none; }
[hidden] { display:none !important; }

/* Editable exercise lists */
.ex-edit { margin:-6px 0 10px; }
.ex-edit summary { cursor:pointer; }
.ex-edit textarea { width:100%; box-sizing:border-box; font:13px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; padding:8px; border:1px solid var(--line); border-radius:8px; background:var(--card); color:var(--ink); }

/* Reminder habit hint */
.rem-habit { display:block; font-size:11.5px; color:var(--muted); margin-top:2px; }
.rem-habit .linkbtn { background:none; border:0; color:var(--accent); font:inherit; cursor:pointer; padding:0; text-decoration:underline; }
/* gym arrival automation note (2026-10-06) */
.auto-help { margin-top:14px; }
.auto-help summary { cursor:pointer; }
.auto-help code { word-break:break-all; background:var(--line); padding:1px 5px; border-radius:5px; font-size:12px; }
/* 6-month plan (2026-10-07) */
.plan-month > summary { display:flex; justify-content:space-between; align-items:baseline; gap:10px; cursor:pointer; list-style:none; flex-wrap:wrap; }
.plan-month > summary::-webkit-details-marker { display:none; }
.plan-title { font-weight:700; font-size:17px; }
.plan-now { font-size:11px; font-weight:700; background:var(--accent); color:#fff; border-radius:999px; padding:2px 8px; vertical-align:middle; }
.plan-list { list-style:none; margin:12px 0 0; padding:0; }
.plan-list li { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; padding:9px 0; border-top:1px solid var(--line); }
.plan-l { min-width:0; }
.plan-d { display:block; margin-top:2px; }
.plan-r { white-space:nowrap; text-align:right; }
.plan-opt .plan-l { color:var(--muted); }
.plan-chip { display:inline-block; font-size:11.5px; font-weight:700; border-radius:999px; padding:2px 9px; margin-left:4px; }
.plan-ok { background:rgba(18,161,80,.14); color:var(--good, #12a150); }
.plan-open { background:var(--line); color:var(--ink); }
.plan-bad { background:rgba(231,76,60,.14); color:var(--over, #e74c3c); }
.plan-bad-t { color:var(--over, #e74c3c); font-weight:700; }
.plan-later { background:transparent; color:var(--muted); border:1px solid var(--line); }
@media (max-width:560px) { .plan-list li { flex-direction:column; gap:4px; } .plan-r { text-align:left; } }
.social-tick { display:block; margin:10px 0 2px; font-size:14px; }
/* plan progress (2026-10-07) */
.plan-scores { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; }
.plan-sc { border:1px solid var(--line); border-radius:10px; padding:5px 10px; font-size:13px; }
.plan-sc.now { border-color:var(--accent); }
.plan-sc.later { color:var(--muted); }
.plan-charts { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:760px) { .plan-charts { grid-template-columns:1fr; } }
.plan-svg { width:100%; height:auto; display:block; margin-top:4px; }
.plan-ax { font-size:8.5px; fill:var(--muted); }
.plan-grid { stroke:var(--line); stroke-width:.6; }
.plan-target { fill:none; stroke:var(--muted); stroke-width:1.2; stroke-dasharray:4 3; }
.plan-tdot { fill:var(--muted); }
.plan-actual { fill:none; stroke:var(--accent); stroke-width:2; stroke-linejoin:round; }
.plan-adot { fill:var(--accent); opacity:.55; }
.plan-today { stroke:var(--accent); stroke-width:.6; opacity:.5; }
.plan-k-act { color:var(--accent); }
.plan-tbar { fill:none; stroke:var(--muted); stroke-width:1; stroke-dasharray:3 2; }
.plan-abar { fill:var(--accent); opacity:.85; }
.plan-abar.est { opacity:.4; }
.plan-abar.hit { fill:var(--good, #12a150); }
.plan-cat { font-size:13px; text-transform:uppercase; letter-spacing:.04em; margin:16px 0 0; color:var(--ink); }
.plan-cat + .plan-list { margin-top:4px; }
.plan-earlier { margin:18px 4px 6px; text-transform:uppercase; letter-spacing:.04em; }

/* 👕 Fit */
.fit-notes { margin:6px 0 0; padding-left:18px; font-size:14px; line-height:1.5; }
.fit-notes li { margin:2px 0; }
.plan-l a { color:var(--accent); text-decoration:none; font-weight:600; }
.plan-l a:hover { text-decoration:underline; }
