/*
 * dashboard.css — page rules for index.html (extracted Oct 22, 2026).
 * Loads after theme.css; declarations here override the shared theme.
 */
:root {
  --accent-soft:#3a2427;
  --navy:#7fb2dc;
  --navy-soft:#243140;
  --gold-soft:#332b18;
  --green:#3fae6a;
  --green-soft:#1e3325;
  --chip:#2a303c;
  --shadow:0 1px 2px rgba(0,0,0,.35), 0 6px 18px rgba(0,0,0,.3);
}

html{scroll-behavior:smooth}

body {
  font-family:"Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}

.wrap {
  max-width:1120px;
}

.daybanner .inner {
  max-width:1120px;
}

.daybanner .today{font-weight:800; text-transform:uppercase; letter-spacing:.08em; font-size:12px; background:var(--accent); padding:3px 9px; border-radius:3px; align-self:center}

.daybanner a.projlink{text-decoration:none; display:inline-block}

.navgroup{display:inline-flex; border:1px solid rgba(255,255,255,.45); border-radius:999px; overflow:hidden; align-self:center}

.navgroup a{color:#fff; text-decoration:none; font-size:12.5px; font-weight:700; padding:3px 12px}

.navgroup a + a{border-left:1px solid rgba(255,255,255,.45)}

.navgroup a:hover{background:rgba(255,255,255,.14)}

.navgroup a.on{background:rgba(255,255,255,.25)}

.hero{padding:6px 0 8px}

.counts{display:grid; grid-template-columns:repeat(6, 1fr); gap:10px; margin:14px 0 4px; align-items:stretch}

.counts > .count{min-width:0}

@media (max-width: 1023px){ .counts{grid-template-columns:repeat(3, 1fr)} }

@media (max-width: 559px){ .counts{grid-template-columns:repeat(2, 1fr)} }

.count{
    background:var(--surface); border:1px solid var(--line); border-radius:8px;
    padding:10px 16px; min-width:130px; box-shadow:var(--shadow);
  }

.counts .count.tile{
    display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
    min-width:0; flex:1 1 0; padding:10px 14px;
  }

.counts .count.tile b{display:block; font-size:24px}

.counts .count.tile.duecard{align-items:stretch; padding-top:6px; padding-bottom:6px}

.duerow{display:flex; justify-content:space-between; align-items:center; width:100%; text-decoration:none; color:inherit; padding:5px 0}

.duerow.sep{border-top:1px solid var(--line)}

.duerow .duelab{font-size:13.5px; font-weight:600; color:var(--ink-soft); text-transform:none; letter-spacing:0}

.duerow b{font-size:24px}

.count b{display:block; font-size:24px; font-weight:800; line-height:1.1}

.count span{font-size:12.5px; color:var(--ink-faint); font-weight:600; text-transform:uppercase; letter-spacing:.05em}

.count.risk b{color:var(--accent)}

.count.open b{color:var(--gold)}

a.count{text-decoration:none; color:inherit; cursor:pointer}

a.count:hover{border-color:var(--ink-faint)}

.count.usage{min-width:0; flex:1 1 0}

.count.usage .urow{display:flex; justify-content:space-between; align-items:baseline; font-size:14px; margin-top:5px}

.count.usage .urow b{display:inline; font-size:16px}

.count.usage .urow .over{color:var(--accent)}

.count.usage .usub{font-size:12.5px; color:var(--ink-faint); margin-top:6px; text-transform:none; letter-spacing:0; font-weight:500}

.count.budget{min-width:0; flex:1 1 0}

.count .brow{display:flex; justify-content:space-between; align-items:baseline; font-size:13px; margin-top:6px; text-transform:none; letter-spacing:0}

.count .brow .amt{font-variant-numeric:tabular-nums; color:var(--ink-soft); white-space:nowrap}

.count .brow .amt b{color:var(--ink); font-size:13.5px}

.count.usage .brow .amt .over{color:var(--accent)}

.count.budget .brow.allow{color:var(--ink-soft); margin-top:5px}

.bbar{height:7px; background:#333a47; border-radius:4px; overflow:hidden; margin-top:3px; position:relative}

.bbar > div{height:100%; border-radius:4px; background:#31a24c}

.bbar > div.near{background:#f5a623}

.bbar > div.over{background:#e0565f}

.bbar .tick{position:absolute; top:0; bottom:0; width:2px; height:100%; background:#eef0f3; opacity:.9; border-radius:0}

.count.budget .usub{font-size:12.5px; color:var(--ink-faint); margin-top:6px; text-transform:none; letter-spacing:0; font-weight:500}

.controls{
    position:sticky; top:0; z-index:20; background:var(--bg);
    padding:10px 0 8px; margin-top:10px;
    border-bottom:1px solid var(--line);
  }

.tabs{display:flex; flex-wrap:wrap; gap:6px}

.tab{
    font:inherit; font-weight:700; font-size:13.5px; cursor:pointer;
    border:1px solid var(--line); background:var(--surface); color:var(--ink);
    border-radius:999px; padding:5px 13px;
  }

.tab[aria-selected="true"]{background:var(--ink); color:var(--bg); border-color:var(--ink)}

.tab .n{font-weight:500; opacity:.65; font-size:12px; margin-left:4px}

/* ---------- section cards + demo-style rows ---------- */
  .seccard{
    background:var(--surface); border:1px solid var(--line); border-radius:12px;
    padding:14px 16px; box-shadow:var(--shadow); margin-top:26px;
    scroll-margin-top:90px;
  }

.seccard h2{
    font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
    color:var(--ink-faint); margin:0 0 4px;
  }

.seccard h2 .note{text-transform:none; letter-spacing:0; font-weight:600; color:var(--ink-soft); margin-left:8px}

.irow{
    display:flex; gap:10px; padding:9px 0;
    border-top:1px solid var(--line); align-items:flex-start;
  }

.irow:first-of-type{border-top:none}

.irow .when{
    flex:0 0 92px; font-size:13px; font-weight:600; color:var(--ink-soft);
    font-variant-numeric:tabular-nums; padding-top:2px;
  }

.irow .when .no{display:block; font-size:11px; font-weight:500; color:var(--ink-faint); margin-top:1px}

.irow .what{flex:1 1 auto; min-width:0}

.irow .text{margin:0; font-size:15px}

.irow .actions{display:flex; flex-wrap:wrap; gap:8px; margin-top:7px; align-items:center}

.irow.is-done, .irow.is-not_important{opacity:.55}

.irow.is-done .text, .irow.is-not_important .text{text-decoration:line-through; text-decoration-thickness:1px}

.irow.is-snoozed, .irow.is-muted{opacity:.7}

.actbtn{
    font:inherit; font-size:13px; font-weight:700; cursor:pointer;
    border:1px solid var(--line); background:var(--surface-2); color:var(--ink-soft);
    border-radius:999px; padding:5px 13px;
  }

.actbtn.done[aria-pressed="true"]{background:var(--green-soft); border-color:var(--green); color:var(--green)}

.maptext{color:#7ab3ff; text-decoration:underline; text-underline-offset:2px}

.actbtn.ni[aria-pressed="true"]{background:var(--accent-soft); border-color:var(--accent); color:var(--accent)}

.actbtn.menu[aria-expanded="true"]{background:var(--chip); color:var(--ink)}

.statebadge{
    font-size:11.5px; font-weight:700; letter-spacing:.03em;
    padding:3px 9px; border-radius:999px; background:var(--chip); color:var(--ink-soft);
  }

.statebadge.done{background:var(--green-soft); color:var(--green)}

.statebadge.not_important{background:var(--accent-soft); color:var(--accent)}

.statebadge.pinned{background:rgba(217,168,60,.16); color:#d9a83c}

.statebadge.wrong_info{background:rgba(245,166,35,.16); color:#f5a623}

.menupanel{
    flex-basis:100%; margin-top:2px; padding:10px 12px;
    border:1px solid var(--line); border-radius:10px; background:var(--surface-2);
    display:flex; flex-wrap:wrap; gap:7px; align-items:center;
  }

.menupanel .mlabel{font-size:12px; font-weight:700; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.05em; margin-right:2px}

.menubtn{
    font:inherit; font-size:12.5px; font-weight:600; cursor:pointer;
    border:1px solid var(--line); background:var(--surface); color:var(--ink-soft);
    border-radius:999px; padding:4px 11px;
  }

.menubtn[aria-pressed="true"]{background:var(--chip); border-color:var(--ink-faint); color:var(--ink)}

.empty {
  border:1px dashed var(--line);
  border-radius:10px;
  padding:22px 20px;
  font-size:14.5px;
}

.notes{margin-top:36px; border-top:1px solid var(--line); padding-top:16px; color:var(--ink-faint); font-size:13.5px; max-width:78ch; white-space:pre-wrap}

/* ---------- login ---------- */
  .loginwrap{min-height:70vh; display:flex; align-items:center; justify-content:center; padding:40px 0}

.logincard{
    background:var(--surface); border:1px solid var(--line); border-radius:12px;
    padding:34px 30px; box-shadow:var(--shadow); max-width:420px; width:100%; text-align:left;
  }

.logincard h1{font-family:"Newsreader", Georgia, serif; font-size:30px; margin:0 0 8px}

.logincard p{color:var(--ink-soft); margin:0 0 20px; font-size:15px}

.loginerr{color:var(--accent); font-size:14px; font-weight:600; margin-top:14px; min-height:20px}

.hidden{display:none !important}

footer {
  margin-top:48px;
  border-top:1px solid var(--line);
  padding-top:20px;
  font-size:13.5px;
  max-width:78ch;
}

footer p{margin:0 0 8px}

@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }

