/* ============================================================================
   track — Factsheet design system (locked direction, from concept-19)
   Principle: CONTENT OVER DESIGN. Every element carries data; colour encodes
   meaning (sign / mood / category), never decoration. Hairlines + whitespace,
   no boxes-in-boxes. Shared by every flow screen.
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;0,6..72,600;1,6..72,400&family=IBM+Plex+Mono:wght@400;500;600&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --ink:#15171a; --ink-2:#3d4248; --ink-3:#6c747c; --ink-4:#9aa1a8;
  --paper:#fbfaf7; --paper-2:#eef0f3;
  --rule:#d9d5cb; --rule-2:#e7e3d9; --hair:#cfcabd;
  --card-bg:#f4f2ec; --card-edge:#c8c2b4;
  --pos:#0f6b46; --pos-bg:#e6f2eb;
  --neg:#a8341f; --neg-bg:#f7e9e4;
  --accent:#1d3557; --accent-bg:#e7ecf3;
  --gold:#9a7b27;  --gold-bg:#f4eeda;
  --line-me:#1d3557; --line-field:#b08a2e;
  /* mood families (colour = meaning) */
  --m-good:#0f6b46;   --m-good-bg:#e6f2eb;   /* discipline / good process */
  --m-leak:#9a7b27;   --m-leak-bg:#f4eeda;   /* process leak / warning   */
  --m-bad:#a8341f;    --m-bad-bg:#f7e9e4;    /* tilt / negative state     */
  --m-calm:#1d3557;   --m-calm-bg:#e7ecf3;   /* calm / focused / good state */
  --m-var:#6c747c;    --m-var-bg:#eef0f3;    /* variance (neutral)        */
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--paper-2);color:var(--ink);font-family:'Inter',system-ui,sans-serif;line-height:1.4;padding:22px 14px 64px}
.num{font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";letter-spacing:-.01em}
.serif{font-family:'Newsreader',Georgia,serif}
.pos{color:var(--pos)} .neg{color:var(--neg)} .r{text-align:right}
/* playing-card suits — standard 4-colour deck (♠ black · ♥ red · ♦ blue · ♣ green) */
.cd{font-weight:600;white-space:nowrap}
.cd.s{color:#15171a} .cd.h{color:#c11f1f} .cd.d{color:#1763b6} .cd.c{color:#1c7a43}

/* page intro banner */
.page-head{max-width:1240px;margin:0 auto 24px;border-left:3px solid var(--accent);padding:2px 0 2px 14px}
.page-head .kicker{font:600 11px/1 'IBM Plex Mono',monospace;letter-spacing:.18em;color:var(--ink-4);text-transform:uppercase}
.page-head h1{font-family:'Newsreader',serif;font-weight:600;font-size:26px;margin:6px 0 3px;letter-spacing:-.01em}
.page-head p{font-size:13px;color:var(--ink-3);max-width:78ch}
.page-head .note{font:500 11px 'IBM Plex Mono',monospace;color:var(--ink-4);margin-top:6px}
.page-head a{color:var(--accent)}

/* phone deck */
.deck{display:flex;flex-wrap:wrap;gap:30px;justify-content:center;align-items:flex-start;max-width:1320px;margin:0 auto}
.phone{width:390px;flex:0 0 390px;background:#1c1d20;border-radius:42px;padding:11px;box-shadow:0 26px 60px -28px rgba(20,23,26,.6),0 2px 6px rgba(0,0,0,.18)}
.phone .screen{background:var(--paper);border-radius:32px;overflow:hidden;position:relative;height:812px;overflow-y:auto;scrollbar-width:none}
.phone .screen::-webkit-scrollbar{width:0;height:0}
.statusbar{position:sticky;top:0;z-index:20;height:30px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:var(--paper);font:600 12px 'IBM Plex Mono',monospace;color:var(--ink)}
.statusbar .dots{display:flex;gap:3px;align-items:center}
.statusbar .dots i{display:block;width:4px;height:4px;border-radius:50%;background:var(--ink-3)}
.statusbar .notch{position:absolute;left:50%;top:7px;transform:translateX(-50%);width:108px;height:17px;background:#1c1d20;border-radius:0 0 14px 14px}
.label{font:600 9px/1 'IBM Plex Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--paper);background:var(--accent);padding:5px 12px;text-align:center}
.label.alt{background:var(--gold)} .label.done{background:var(--pos)} .label.edit{background:var(--ink-2)}
.pad{padding:14px 20px 30px}

/* masthead + section rules */
.mast{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2px solid var(--ink);padding-bottom:9px;margin-top:4px}
.mast .wm{font:600 9px/1 'IBM Plex Mono',monospace;letter-spacing:.18em;color:var(--gold);text-transform:uppercase}
.mast h2{font-family:'Newsreader',serif;font-weight:600;font-size:20px;letter-spacing:-.015em;margin-top:3px}
.mast .sub{font-size:11px;color:var(--ink-3);margin-top:2px}
.mast .rhs{text-align:right;flex:none}
.mast .rhs .asof{font:500 10px/1.4 'IBM Plex Mono',monospace;color:var(--ink-3)}
.secrule{display:flex;align-items:center;gap:8px;margin:20px 0 10px}
.secrule .lbl{font:600 9.5px/1 'IBM Plex Mono',monospace;letter-spacing:.13em;color:var(--accent);text-transform:uppercase;white-space:nowrap}
.secrule .ln{flex:1;height:1px;background:var(--rule)}
.secrule .rt{font:500 9px/1 'IBM Plex Mono',monospace;color:var(--ink-4);white-space:nowrap}

/* clock strip — break / level / bag countdowns (full-bleed) */
.clockbar{display:flex;margin:10px -20px 2px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--paper-2)}
.clockbar .seg{flex:1;padding:7px 20px;display:flex;flex-direction:column;gap:2px}
.clockbar .seg+.seg{border-left:1px solid var(--rule)}
.clockbar .lab{font:600 8.5px/1 'IBM Plex Mono',monospace;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-4)}
.clockbar .val{font:600 13px/1 'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;color:var(--ink);letter-spacing:-.01em}
.clockbar .val small{font-size:10px;color:var(--ink-3);font-weight:500}
.clockbar .seg.warn .val{color:var(--neg)}

/* performance grid + kpis */
.perf{display:grid;grid-template-columns:1fr 1fr}
.perf .cell{padding:10px 10px 10px 0;border-bottom:1px solid var(--rule-2)}
.perf .cell:nth-child(odd){border-right:1px solid var(--rule-2);padding-right:12px}
.perf .cell:nth-child(even){padding-left:12px}
.perf .cell.big{grid-column:1/-1;padding-right:0;border-right:none;display:flex;justify-content:space-between;align-items:baseline}
.perf .k{font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.perf .v{font-size:20px;font-weight:600;margin-top:3px}
.perf .v.huge{font-size:32px;letter-spacing:-.02em}
.perf .vsub{font-size:10px;color:var(--ink-4);margin-top:2px}
.review-kpis{display:grid;grid-template-columns:1fr 1fr 1fr;margin:6px 0 2px;text-align:center}
.review-kpis .cell{padding:9px 4px;border-right:1px solid var(--rule-2)}
.review-kpis .cell:last-child{border-right:none}
.review-kpis .k{font:600 8.5px/1 'IBM Plex Mono',monospace;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-4)}
.review-kpis .v{font-family:'Newsreader',serif;font-weight:600;font-size:22px;margin-top:5px}

/* tables: schedule / ledger / breakdown */
table{width:100%;border-collapse:collapse}
.sched th{font:600 9px/1 'IBM Plex Mono',monospace;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-4);text-align:right;padding:0 0 7px;border-bottom:1px solid var(--rule)}
.sched th:first-child{text-align:left}
.sched td{font-size:12px;padding:6px 0;border-bottom:1px solid var(--rule-2);color:var(--ink-2)}
.sched td:first-child{color:var(--ink);font-weight:500}
.sched tr:last-child td{border-bottom:none}
.sched tfoot td{border-top:1.5px solid var(--ink);border-bottom:none;padding-top:8px;font-weight:600;color:var(--ink)}
.sched .mini{display:block;font-size:9px;color:var(--ink-4);font-weight:400;margin-top:1px}
.ledger td{font-size:12px;padding:7px 0;border-bottom:1px solid var(--rule-2);vertical-align:top}
.ledger .dt{color:var(--ink-3);width:46px;white-space:nowrap}
.ledger .ti{color:var(--ink);font-weight:500;line-height:1.25}
.ledger .ti .v{display:block;font-size:9.5px;color:var(--ink-4);font-weight:400;margin-top:1px}
.ledger .pl{text-align:right;font-weight:600;white-space:nowrap;padding-left:6px}
.ledger .bal{text-align:right;color:var(--ink-3);white-space:nowrap;padding-left:6px}
.ledger thead th{font:600 9px/1 'IBM Plex Mono',monospace;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-4);padding-bottom:7px;border-bottom:1px solid var(--rule)}
.ledger thead th.r{text-align:right}
.ledger tfoot td{border-top:1.5px solid var(--ink);border-bottom:none;padding-top:9px;font-weight:600}
.brk td{font-size:12.5px;padding:8px 0;border-bottom:1px solid var(--rule-2)}
.brk td:first-child{color:var(--ink-2)}
.brk td:first-child .sub{display:block;font-size:9.5px;color:var(--ink-4);margin-top:1px}
.brk td:last-child{text-align:right;font-weight:600;white-space:nowrap}
.brk tfoot td{border-top:1.5px solid var(--ink);border-bottom:none;padding-top:10px;font-size:14px;font-weight:700}

/* charts */
.chart-meta{display:flex;justify-content:space-between;font-size:10px;color:var(--ink-3);margin-bottom:6px}
.chart-meta .num{color:var(--ink-2)}
svg.chart{display:block;width:100%}
.axislab{font:500 9px 'IBM Plex Mono',monospace;fill:var(--ink-4)}
.gridline{stroke:var(--rule-2);stroke-width:1}
.zeroline{stroke:var(--hair);stroke-width:1;stroke-dasharray:1 3}
.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:9.5px;color:var(--ink-3);margin-top:7px;justify-content:flex-end}
.legend span{display:inline-flex;align-items:center;gap:5px}
.lg-line{width:15px;height:0;border-top:2px solid var(--line-me)}
.lg-dash{width:15px;height:0;border-top:2px dashed var(--line-field)}

/* dashboard + scrubber (replay glance) */
.dash-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-top:2px}
.dash-stack .k{font:600 9.5px/1 'IBM Plex Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}
.dash-stack .big{font-family:'Newsreader',serif;font-weight:600;font-size:38px;letter-spacing:-.02em;line-height:1;margin-top:5px}
.dash-stack .meta{font-size:10.5px;color:var(--ink-3);margin-top:5px} .dash-stack .meta b{color:var(--ink-2)}
.dash-lead{text-align:right;flex:none}
.dash-lead .xavg{font-family:'Newsreader',serif;font-weight:600;font-size:33px;line-height:1;color:var(--accent)} .dash-lead .xavg.lo{color:var(--neg)}
.dash-lead .xlbl{font:600 8.5px/1 'IBM Plex Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-4);margin-top:3px}
.dash-lead .secondary{font-size:10.5px;color:var(--ink-3);margin-top:6px;line-height:1.45} .dash-lead .secondary b{color:var(--ink);font-weight:600}
.dash-strip{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding:9px 0;border-top:1px solid var(--rule-2);border-bottom:1px solid var(--rule-2)}
.keyidea{font-family:'Newsreader',serif;font-style:italic;font-size:13px;color:var(--ink-2);margin-top:11px;padding-left:11px;border-left:2px solid var(--gold);line-height:1.45}
.scrubber{margin-top:15px}
.scrub-row{display:flex;align-items:center;gap:11px}
.playbtn{flex:none;width:38px;height:38px;border-radius:50%;border:1.5px solid var(--ink);background:var(--paper);display:flex;align-items:center;justify-content:center}
.playbtn svg{width:13px;height:13px;display:block}
.track{flex:1;position:relative;height:34px}
.trackbg{position:absolute;top:15px;left:0;right:0;height:4px;border-radius:2px;background:var(--rule)}
.trackfill{position:absolute;top:15px;left:0;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--accent),#2f4f78)}
.ticks{position:absolute;top:7px;left:0;right:0;height:20px}
.tick{position:absolute;top:0;width:1px;height:7px;background:var(--hair);transform:translateX(-.5px)}
.tick.key{height:13px;background:var(--gold);width:1.5px} .tick.itm{height:13px;background:var(--pos);width:1.5px}
.scrub-time{display:flex;justify-content:space-between;font:500 9.5px 'IBM Plex Mono',monospace;color:var(--ink-4);margin-top:2px}
.scrub-now{font-size:10.5px;color:var(--ink-2);margin-top:8px;text-align:center;line-height:1.5} .scrub-now b{font-family:'IBM Plex Mono',monospace;font-weight:600;color:var(--ink)}

/* ===== FLOW COMPONENTS (composer / glances / tags / cards) ===== */

/* segmented switch — glances & toggles */
.seg{display:flex;border:1px solid var(--rule);border-radius:8px;overflow:hidden;margin:2px 0}
.seg a{flex:1;text-align:center;padding:7px 4px;font:600 10px 'IBM Plex Mono',monospace;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);border-right:1px solid var(--rule-2);text-decoration:none}
.seg a:last-child{border-right:none}
.seg a.on{background:var(--ink);color:var(--paper)}

/* composer field rows (flat, hairline-separated — no boxes) */
.field{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--rule-2)}
.field .fl{font-size:12px;color:var(--ink-3)}
.field .fl small{display:block;color:var(--ink-4);font-size:10px;margin-top:1px}
.field .fv{font-family:'IBM Plex Mono',monospace;font-size:17px;color:var(--ink);text-align:right}
.field .fv.auto{color:var(--ink-4)} .field .fv.ph{color:var(--ink-4)}
.field2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.field2 .field:nth-child(odd){padding-right:8px}
.disc{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--rule-2);color:var(--ink-3);font-size:12px}
.disc .chev{color:var(--ink-4)}

/* "More" disclosure — primary always visible, details behind a tap (GR3) */
details.more{margin:8px 0 2px}
details.more>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:9px 0;border-top:1px solid var(--rule);font:600 9.5px/1 'IBM Plex Mono',monospace;letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}
details.more>summary::-webkit-details-marker{display:none}
details.more>summary .ct-n{color:var(--ink-4);font-weight:500}
details.more>summary::after{content:"+ More";margin-left:auto;font-size:9.5px;color:var(--ink-4);letter-spacing:.08em}
details.more[open]>summary::after{content:"– Less"}
details.more[open]>summary{color:var(--ink-2)}
details.more .field:last-child{border-bottom:none}

/* type picker (event types) */
.typepick{display:flex;gap:7px;overflow-x:auto;padding-bottom:8px;margin:4px 0 2px;scrollbar-width:none}
.typepick::-webkit-scrollbar{display:none}
.type{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:5px;width:52px;color:var(--ink-4);font:500 9.5px 'IBM Plex Mono',monospace}
.type svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7}
.type.on{color:var(--accent)}

/* typed tags (type:value) — colour by namespace/meaning */
.tagwrap{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}
.tag{font:500 11px/1 'IBM Plex Mono',monospace;padding:5px 9px;border-radius:4px;border:1px solid var(--rule);color:var(--ink-3);background:var(--paper);white-space:nowrap}
.tag.ns{color:var(--accent);border-color:#c5d0e0;background:var(--accent-bg)}
.tag.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.tag.add{border-style:dashed;color:var(--ink-4)}
/* mood tag colours (selected state) */
.tag.good{color:var(--m-good);border-color:#bfe0cf;background:var(--m-good-bg)}
.tag.good.on{background:var(--m-good);color:#fff;border-color:var(--m-good)}
.tag.leak{color:var(--m-leak);border-color:#e3d6a8;background:var(--m-leak-bg)}
.tag.leak.on{background:var(--m-leak);color:#fff;border-color:var(--m-leak)}
.tag.bad{color:var(--m-bad);border-color:#e6c3b8;background:var(--m-bad-bg)}
.tag.bad.on{background:var(--m-bad);color:#fff;border-color:var(--m-bad)}
.tag.calm{color:var(--m-calm);border-color:#c5d0e0;background:var(--m-calm-bg)}
.tag.calm.on{background:var(--m-calm);color:#fff;border-color:var(--m-calm)}
.tag.var{color:var(--m-var);border-color:var(--rule)}
.tag.var.on{background:var(--m-var);color:#fff;border-color:var(--m-var)}
.tag-group-lbl{font:600 8.5px 'IBM Plex Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);margin:12px 0 5px}

/* image attach (mock) */
.attach{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 2px}
.thumb{width:62px;height:62px;border-radius:6px;border:1px solid var(--rule);background:repeating-linear-gradient(135deg,#efece3,#efece3 7px,#e7e3d9 7px,#e7e3d9 14px);position:relative;overflow:hidden}
.thumb .cap{position:absolute;left:0;right:0;bottom:0;font:600 7.5px 'IBM Plex Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);background:rgba(251,250,247,.85);padding:2px 4px;text-align:center}
.thumb.addimg{display:flex;align-items:center;justify-content:center;background:var(--paper);border-style:dashed;color:var(--ink-4)}
.thumb.addimg svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6}

/* colored cards — colour encodes data (sign/mood/category) */
/* flush strips divided by a muted hairline — no gap (ledger rows) */
.cards{display:flex;flex-direction:column;gap:0;margin:6px -20px 4px;border-top:1px solid var(--rule-2);border-bottom:1px solid var(--rule-2)}
/* colour lives only in the left-border mark (= meaning); no fill */
.card{border-left:3px solid var(--card-edge);background:transparent;border-radius:0;padding:12px 20px}
.card+.card{border-top:1px solid var(--rule-2)}
.card.pos{border-left-color:var(--pos)}
.card.neg{border-left-color:var(--neg)}
.card.gold{border-left-color:var(--gold)}
.card .ct{font:600 9px 'IBM Plex Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);display:flex;justify-content:space-between}
.card .cv{font-family:'Newsreader',serif;font-weight:600;font-size:19px;margin-top:4px;letter-spacing:-.01em}
.card .cs{font-size:11px;color:var(--ink-2);margin-top:3px;line-height:1.4}
.card.mood-good{border-left-color:var(--m-good)}
.card.mood-leak{border-left-color:var(--m-leak)}
.card.mood-bad{border-left-color:var(--m-bad)}
.card.mood-calm{border-left-color:var(--m-calm)}

/* primary action */
.btn{display:block;text-align:center;padding:14px;border-radius:10px;font:600 13px 'IBM Plex Mono',monospace;letter-spacing:.06em;text-transform:uppercase;margin-top:16px}
.btn.go{background:var(--accent);color:var(--paper)}
.btn.done{background:var(--pos);color:var(--paper)}
.btn.ghost{border:1px solid var(--rule);color:var(--ink-2);background:var(--paper)}
.btnrow{display:flex;gap:10px}.btnrow .btn{flex:1}
.savednote{font:500 10px 'IBM Plex Mono',monospace;color:var(--pos)}

/* day separators (multi-day) */
.daysep{display:flex;align-items:center;gap:9px;margin:16px 0 8px}
.daysep .dl{font:700 10px 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.daysep .ln{flex:1;height:1px;background:var(--rule)}

.footnote{font-size:9px;color:var(--ink-4);line-height:1.5;margin-top:16px;padding-top:11px;border-top:1px solid var(--rule-2)}
.footnote b{color:var(--ink-3);font-weight:600}

/* ===== INTERACTIONS: add-sheet · toast · row-menu · pin ===== */
/* sticky + bar (closed state) */
.addbar{position:sticky;bottom:0;z-index:15;display:flex;align-items:center;gap:12px;margin:16px -20px 0;padding:13px 20px;background:var(--paper);border-top:1px solid var(--rule)}
.addbar .plus{flex:none;width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--paper);display:flex;align-items:center;justify-content:center}
.addbar .plus svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.addbar .lbl2{font:600 12px 'IBM Plex Mono',monospace;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
.addbar .hint{margin-left:auto;font:500 10px 'IBM Plex Mono',monospace;color:var(--ink-4)}

/* dim + bottom sheet (sheet over the live dashboard) */
.scrim{height:50px;margin:16px -20px -2px;background:linear-gradient(to bottom,rgba(20,23,26,0),rgba(20,23,26,.09))}
.sheet{margin:0 -20px -30px;background:var(--paper);border:1px solid var(--rule);border-bottom:none;border-radius:20px 20px 0 0;box-shadow:0 -16px 34px -18px rgba(20,23,26,.45);padding:0 20px 22px}
.sheet .grab{width:40px;height:4px;border-radius:2px;background:var(--hair);margin:9px auto 4px}
.sheet .sh-head{display:flex;justify-content:space-between;align-items:baseline;padding:3px 0 6px;border-bottom:1px solid var(--rule-2);margin-bottom:4px}
.sheet .sh-head .t{font-family:'Newsreader',serif;font-weight:600;font-size:17px}
.sheet .sh-head .x{font:600 11px 'IBM Plex Mono',monospace;color:var(--ink-4)}

/* toast (added / undo) */
.toast{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:14px -20px 0;padding:12px 20px;background:var(--ink);color:var(--paper)}
.toast .tmsg{font-size:12px;display:flex;align-items:center;gap:8px}
.toast .tmsg svg{width:15px;height:15px;fill:none;stroke:#7fd1a8;stroke-width:2.4}
.toast.warn .tmsg svg{stroke:#e8b06a}
.toast .tact{font:600 11px 'IBM Plex Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:#bcd9cb;white-space:nowrap}

/* timeline rows + ⋯ menu */
.tl{margin:6px -20px 0}
.tlrow{display:flex;align-items:center;gap:11px;padding:11px 20px;border-top:1px solid var(--rule-2)}
.tl .tlrow:first-child{border-top:none}
.tlrow .tm{font:500 10px 'IBM Plex Mono',monospace;color:var(--ink-4);width:40px;flex:none}
.tlrow .body{flex:1;min-width:0}
.tlrow .body .h{font-size:13px;color:var(--ink)}
.tlrow .body .s{font-size:10.5px;color:var(--ink-4);margin-top:1px}
.tlrow .amt{font:600 12px 'IBM Plex Mono',monospace;white-space:nowrap}
.tlrow .dotbtn{flex:none;width:26px;height:26px;display:flex;align-items:center;justify-content:center;color:var(--ink-4)}
.tlrow .dotbtn svg{width:18px;height:18px;fill:currentColor;stroke:none}
.tlrow.sel{background:var(--card-bg)}
.tlrow.sel .dotbtn{color:var(--ink)}
.rowmenu{margin:0 -20px;background:var(--card-bg);border-top:1px solid var(--rule)}
.rowmenu a{display:flex;align-items:center;gap:13px;padding:13px 20px;border-bottom:1px solid var(--rule-2);font-size:13px;color:var(--ink-2)}
.rowmenu a:last-child{border-bottom:none}
.rowmenu a svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;flex:none}
.rowmenu a .mk{margin-left:auto;font:500 9.5px 'IBM Plex Mono',monospace;color:var(--ink-4)}
.rowmenu a.del{color:var(--neg)}

/* delete confirm */
.confirm{margin:0 -20px -30px;background:var(--paper);border:1px solid var(--rule);border-bottom:none;border-radius:20px 20px 0 0;box-shadow:0 -16px 34px -18px rgba(20,23,26,.45);padding:20px 20px 22px;text-align:center}
.confirm .q{font-family:'Newsreader',serif;font-weight:600;font-size:17px}
.confirm .sub{font-size:11.5px;color:var(--ink-3);margin:5px 0 15px;line-height:1.4}
.btn.del{background:var(--neg);color:var(--paper)}

/* auto-calc pin state (GR5) */
.pindot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:6px;vertical-align:middle}
.fv.pinned{color:var(--ink)}
.pintag{font:500 9px 'IBM Plex Mono',monospace;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);margin-left:7px}

@media(max-width:430px){
  body{padding:14px 0 40px}
  .page-head{padding-left:14px;margin:0 8px 18px}
  .phone{width:100%;flex-basis:100%;border-radius:0;padding:0;box-shadow:none;background:transparent}
  .phone .screen{border-radius:0;height:auto;overflow:visible}
  .statusbar .notch{display:none}
}
