@import url("https://fonts.googleapis.com/css2?family=Onest:wght@400;500;600;700;800&family=Bricolage+Grotesque:wght@500;600;700&family=JetBrains+Mono:wght@400;500&display=swap");
:root{--bg:#0c0712;--panel:rgba(255,255,255,.075);--panel2:rgba(255,255,255,.105);--line:rgba(255,255,255,.13);--text:#fff8f2;--muted:#bcaec8;--hot:#ff4fa3;--gold:#ffd166;--cyan:#4dd8ff;--green:#73f2a7;--danger:#ff6b6b}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 12% 0,#2b4a6f 0,transparent 30%),radial-gradient(circle at 88% 0,#51306f 0,transparent 32%),linear-gradient(180deg,#100d1b,#08050d 62%);color:var(--text);font:16px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.shell{width:min(1180px,calc(100% - 32px));margin:auto;padding:42px 0 80px}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:26px}.eyebrow{margin:0 0 8px;color:var(--cyan);font-size:.78rem;text-transform:uppercase;letter-spacing:.18em;font-weight:850}.eyebrow.small{font-size:.68rem;color:var(--gold)}h1{font-size:clamp(3.2rem,7.6vw,6.6rem);line-height:1.16;margin:0 0 .18em;background:linear-gradient(90deg,#fff7d6,#7ee7ff 48%,#d3a3ff);-webkit-background-clip:text;color:transparent;letter-spacing:-.075em}h2{margin:0 0 16px;font-size:1.4rem}h3{margin:.2rem 0 .1rem;font-size:1rem}.lede{max-width:760px;margin:18px 0 0;color:var(--muted);font-size:1.08rem}.refresh{border:1px solid #ffffff33;background:linear-gradient(135deg,var(--hot),#7c4dff);color:white;border-radius:999px;padding:14px 20px;font-weight:850;box-shadow:0 18px 60px #ff4fa344;cursor:pointer}.refresh:hover{transform:translateY(-1px)}.notice{border:1px solid var(--line);background:var(--panel);padding:14px 16px;border-radius:18px;margin:0 0 18px}.notice.danger{border-color:#ff6b6b88;background:#42151d}.notice.subtle{color:var(--muted)}code{background:#0006;border:1px solid var(--line);border-radius:8px;padding:2px 6px}.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:18px}.stats div,.panel{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:26px;padding:18px;backdrop-filter:blur(18px);box-shadow:0 24px 80px rgba(0,0,0,.22)}.stat-card{position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;inset:0;opacity:.16;background:linear-gradient(135deg,var(--accent),transparent 60%);pointer-events:none}.stat-card span,.stat-card label{position:relative}.stat-card.library{--accent:#7ee7ff}.stat-card.active{--accent:#73f2a7}.stat-card.done{--accent:#ffd166}.stat-card.streak{--accent:#d3a3ff}.stat-card.days{--accent:#ff9f7e}.stat-card.data{--accent:#9aa7ff}.stats span{display:block;font-size:1.8rem;font-weight:950;letter-spacing:-.04em;color:#fffaf0}.stats label{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.panel{margin:18px 0}.panelhead{display:flex;justify-content:space-between;gap:18px;align-items:end}.muted{color:var(--muted)}.heatmap{display:grid;grid-template-rows:repeat(7,12px);grid-auto-flow:column;grid-auto-columns:12px;gap:4px;overflow:auto;padding:4px 0 8px}.cell{display:inline-block;width:12px;height:12px;border-radius:4px;background:#ffffff10;border:1px solid #ffffff08}.cell.l1{background:#1d4050}.cell.l2{background:#337b7d}.cell.l3{background:#73b99b}.cell.l4{background:#ffd166}.legend{display:flex;gap:7px;align-items:center;color:var(--muted);font-size:.78rem;justify-content:flex-end}.columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.columns.three{grid-template-columns:repeat(3,1fr)}.booklist{display:grid;gap:12px}.bookrow{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;padding:10px;border:1px solid #ffffff12;background:#0000001f;border-radius:18px}.bookrow img,.mini{width:48px;height:64px;object-fit:cover;border-radius:10px;background:#21142c}.mini.noimg{display:grid;place-items:center;font-weight:900;color:var(--gold)}.bookmeta{min-width:0}.bookmeta strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bookmeta span{display:block;color:var(--muted);font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bookside{text-align:right;min-width:54px}.bookside b{display:block;color:var(--gold)}.bookside small{color:var(--muted);font-size:.72rem}.bar{height:7px;background:#ffffff12;border-radius:99px;overflow:hidden;margin-top:8px}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--gold),var(--hot));border-radius:99px}.rank{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #ffffff10;padding:8px 0}.rank span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f9eefb}.rank b{color:var(--gold)}.gridcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.card{display:grid;grid-template-columns:68px 1fr;gap:12px;align-items:center;border:1px solid #ffffff12;background:#0000001f;padding:12px;border-radius:20px;min-width:0}.card img,.coverless{width:68px;height:92px;object-fit:cover;border-radius:12px;background:#21142c}.coverless{display:grid;place-items:center;color:var(--gold);font-weight:900}.card p{margin:0;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card small{color:var(--muted)}@media(max-width:900px){.hero,.panelhead{display:block}.stats{grid-template-columns:repeat(2,1fr)}.columns,.columns.three{grid-template-columns:1fr}.refresh{margin-top:18px}.heatmap{grid-auto-columns:10px;grid-template-rows:repeat(7,10px)}.cell{width:10px;height:10px}}

.range{border:1px solid var(--line);background:rgba(255,255,255,.07);color:var(--text);border-radius:999px;padding:8px 11px;font-weight:850;font-size:.78rem;cursor:pointer}.range:hover{background:rgba(255,255,255,.12)}.range.active{background:var(--accent);color:var(--accent-fg);border-color:transparent}
.estimate{display:block;color:#8fddec;font-size:.72rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats.estimates{margin-top:-4px}.stats.estimates span{font-size:1.45rem}

/* Tome-inspired theme pass: https://tome.bndct.sh/ */

:root{
  --bg:oklch(16% .004 60);
  --fg:oklch(95.5% .004 80);
  --muted:oklch(71% .008 70);
  --card:oklch(21% .005 60);
  --card2:oklch(24% .007 60);
  --border:oklch(95% .008 60/.13);
  --accent:oklch(63% .1 22);
  --accent-soft:oklch(63% .1 22/.2);
  --accent-fg:oklch(10% .01 22);
  --bg-soft:oklch(19% .006 60);
  --text:var(--fg);
  --panel:color-mix(in oklch,var(--card) 88%,transparent);
  --panel2:color-mix(in oklch,var(--card2) 92%,transparent);
  --line:var(--border);
  --gold:var(--accent);
  --cyan:oklch(78% .07 210);
  --hot:var(--accent);
  --green:oklch(74% .11 145);
}
body{background:radial-gradient(circle at 18% -10%,var(--accent-soft),transparent 34%),linear-gradient(180deg,var(--bg-soft),var(--bg) 38%);color:var(--fg);font-family:Onest,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.eyebrow{color:var(--accent);letter-spacing:.18em}.eyebrow.small{color:var(--accent)}h1,h2,h3{font-family:"Bricolage Grotesque",Onest,system-ui,sans-serif;letter-spacing:-.015em}h1{background:linear-gradient(90deg,var(--fg),color-mix(in oklch,var(--accent) 75%,white));-webkit-background-clip:text;color:transparent}.lede,.muted,.bookmeta span,.bookside small,.card p,.card small{color:var(--muted)}.refresh,.range.active{background:var(--accent);color:var(--accent-fg);box-shadow:0 18px 50px var(--accent-soft)}.stats div,.panel{background:var(--card);border-color:var(--border);box-shadow:0 24px 70px oklch(0% 0 0/.18)}.notice{background:var(--card);border-color:var(--border)}.notice.danger{background:color-mix(in oklch,var(--accent) 18%,var(--card));border-color:var(--accent-soft)}.bookrow,.card{background:color-mix(in oklch,var(--bg) 55%,var(--card));border-color:var(--border)}.bar{background:oklch(95% .008 60/.09)}.bar i{background:linear-gradient(90deg,var(--accent),oklch(76% .06 70))}.cell{background:oklch(95% .008 60/.06);border-color:oklch(95% .008 60/.08)}.cell.l1{background:oklch(29% .035 40)}.cell.l2{background:oklch(40% .06 35)}.cell.l3{background:oklch(52% .085 28)}.cell.l4{background:var(--accent)}.stat-card:before{opacity:.13;background:linear-gradient(135deg,var(--accent),transparent 62%)}.stat-card.library,.stat-card.active,.stat-card.done,.stat-card.streak,.stat-card.days,.stat-card.data{--accent:oklch(63% .1 22)}code{font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:oklch(0% 0 0/.18);border-color:var(--border)}

/* Light/dark theme toggle */
html.theme-dark{
  --bg:oklch(16% .004 60);
  --fg:oklch(95.5% .004 80);
  --muted:oklch(71% .008 70);
  --card:oklch(21% .005 60);
  --card2:oklch(24% .007 60);
  --border:oklch(95% .008 60/.13);
  --accent:oklch(63% .1 22);
  --accent-soft:oklch(63% .1 22/.2);
  --accent-fg:oklch(10% .01 22);
  --bg-soft:oklch(19% .006 60);
}
html.theme-light{
  --bg:oklch(97.5% .003 85);
  --fg:oklch(21% .012 60);
  --muted:oklch(50% .01 70);
  --card:oklch(99.5% .002 85);
  --card2:oklch(96.5% .006 85);
  --border:oklch(90% .005 85);
  --accent:oklch(45% .115 18);
  --accent-soft:oklch(45% .115 18/.2);
  --accent-fg:oklch(98% .005 85);
  --bg-soft:oklch(94.5% .01 85);
}
html.theme-light body{background:radial-gradient(circle at 18% -10%,var(--accent-soft),transparent 34%),linear-gradient(180deg,var(--bg-soft),var(--bg) 42%)}
html.theme-light .stats div,html.theme-light .panel,html.theme-light .notice{box-shadow:0 24px 70px oklch(30% .02 70/.08)}
html.theme-light .bookrow,html.theme-light .card{background:color-mix(in oklch,var(--card) 78%,var(--bg))}
html.theme-light .bar{background:oklch(30% .01 60/.10)}
html.theme-light code{background:oklch(30% .01 60/.06)}
html.theme-light .cell{background:oklch(30% .01 60/.07);border-color:oklch(30% .01 60/.06)}
html.theme-light .cell.l1{background:oklch(84% .035 45)}
html.theme-light .cell.l2{background:oklch(72% .07 40)}
html.theme-light .cell.l3{background:oklch(59% .1 30)}
html.theme-light .cell.l4{background:var(--accent)}
.hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.theme-toggle{display:inline-flex;gap:3px;padding:4px;border:1px solid var(--border);border-radius:999px;background:var(--card)}.theme-toggle button{border:0;border-radius:999px;background:transparent;color:var(--muted);font-weight:850;font-size:.78rem;padding:9px 12px;cursor:pointer}.theme-toggle button:hover{color:var(--fg);background:color-mix(in oklch,var(--bg) 70%,var(--card))}.theme-toggle button.active,html.theme-light .theme-toggle [data-theme-set="light"],html.theme-dark .theme-toggle [data-theme-set="dark"]{background:var(--accent);color:var(--accent-fg)}@media(max-width:900px){.hero-actions{justify-content:flex-start;margin-top:18px}}

/* Light theme stat card contrast fixes */
html.theme-light .stat-card{background:linear-gradient(145deg,oklch(99% .004 85),oklch(94% .01 80));border-color:oklch(84% .012 75);box-shadow:0 18px 45px oklch(45% .025 65/.12)}
html.theme-light .stat-card:before{opacity:.24;background:linear-gradient(135deg,var(--accent),transparent 68%)}
html.theme-light .stat-card span{color:oklch(28% .04 50);text-shadow:none}
html.theme-light .stat-card label{color:oklch(38% .028 55);font-weight:900}
html.theme-light .stat-card.library{--accent:oklch(68% .09 215)}
html.theme-light .stat-card.active{--accent:oklch(68% .12 145)}
html.theme-light .stat-card.done{--accent:oklch(72% .13 75)}
html.theme-light .stat-card.streak{--accent:oklch(68% .11 315)}
html.theme-light .stat-card.days{--accent:oklch(70% .13 45)}
html.theme-light .stat-card.data{--accent:oklch(68% .09 260)}

/* Light theme: keep pale cards, make text readable */
html.theme-light .stat-card{background:linear-gradient(145deg,oklch(99.5% .002 85),oklch(97% .004 85));border-color:oklch(88% .006 85);box-shadow:0 18px 45px oklch(45% .025 65/.08)}
html.theme-light .stat-card:before{opacity:.08;background:linear-gradient(135deg,var(--accent),transparent 70%)}
html.theme-light .stat-card span{color:oklch(18% .012 60)!important;text-shadow:none}
html.theme-light .stat-card label{color:oklch(31% .012 60)!important;font-weight:900}

/* Light theme: estimate metadata should use muted/accent, not cyan */
html.theme-light .estimate{color:oklch(43% .045 45)}
html.theme-light .bookside b{color:var(--accent)}

/* Light theme: rank/list readability */
html.theme-light .rank span{color:oklch(24% .012 60)}
html.theme-light .rank b{color:var(--accent)}
html.theme-light .rank{border-bottom-color:oklch(86% .008 80)}


/* Compact analytics layout */
.stats.compact .stat-card{min-height:112px;display:flex;flex-direction:column;justify-content:center}.stats.compact .stat-card label{order:0;margin-bottom:8px}.stats.compact .stat-card span{order:1;font-size:1.85rem}.stats.compact .stat-card small{order:2;color:var(--muted);font-size:.78rem;margin-top:2px;position:relative}.chart-columns{align-items:stretch}.chart-panel{min-height:300px}.vchart{height:210px;display:flex;align-items:flex-end;gap:8px;padding:16px 4px 4px;border-left:1px solid var(--border);border-bottom:1px solid var(--border)}.vbar{flex:1;min-width:4px;border-radius:8px 8px 2px 2px;background:var(--accent);opacity:.78}.vbar:hover{opacity:1}.vbar.hollow{background:transparent;border:2px solid var(--accent);min-height:8px}.hchart{display:grid;gap:10px;margin-top:12px}.hrow{display:grid;grid-template-columns:minmax(120px,1fr) 2fr auto;gap:12px;align-items:center}.hrow span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:.82rem}.hrow div{height:22px;background:color-mix(in oklch,var(--bg) 70%,var(--card));border-radius:4px;overflow:hidden}.hrow i{display:block;height:100%;background:var(--accent);border-radius:4px}.hrow b{font-size:.78rem;color:var(--muted);font-weight:700;min-width:52px;text-align:right}.finished-chart{height:170px}.stats.compact{margin-bottom:18px}@media(max-width:900px){.hrow{grid-template-columns:1fr}.hrow b{text-align:left}.vchart{gap:4px}.stats.compact .stat-card{min-height:96px}}

/* Charts: zero-value days should not render as fake bars */
.vbar[style*="height: 0%"]{opacity:0;border:0}
.vbar.hollow[style*="height: 0%"]{min-height:0}

.axis-chart{display:grid;grid-template-columns:48px 1fr;gap:10px;align-items:stretch}.axis-chart>div:last-child{min-width:0}.yaxis{height:210px;display:flex;flex-direction:column;justify-content:space-between;text-align:right;color:var(--muted);font-size:.72rem;padding:10px 0 4px}.xaxis{display:flex;justify-content:space-between;color:var(--muted);font-size:.7rem;margin:6px 0 0 0}.finished-chart+.xaxis,.axis-chart:has(.finished-chart) .yaxis{height:170px}.vchart{background:linear-gradient(to top,var(--border) 1px,transparent 1px),linear-gradient(to top,transparent calc(25% - 1px),var(--border) 25%,transparent calc(25% + 1px),transparent calc(50% - 1px),var(--border) 50%,transparent calc(50% + 1px),transparent calc(75% - 1px),var(--border) 75%,transparent calc(75% + 1px));border-left:1px solid var(--border);border-bottom:1px solid var(--border)}@media(max-width:900px){.axis-chart{grid-template-columns:38px 1fr}.xaxis span:nth-child(even){display:none}}

.hchart-wrap{display:grid;grid-template-columns:1fr;gap:7px}.hchart{background:linear-gradient(to right,var(--border) 1px,transparent 1px),linear-gradient(to right,transparent calc(25% - 1px),var(--border) 25%,transparent calc(25% + 1px),transparent calc(50% - 1px),var(--border) 50%,transparent calc(50% + 1px),transparent calc(75% - 1px),var(--border) 75%,transparent calc(75% + 1px));border-left:1px solid var(--border);border-bottom:1px solid var(--border);padding-bottom:7px}.haxis{margin-left:calc(42% + 8px);padding-right:58px;display:flex;justify-content:space-between;color:var(--muted);font-size:.7rem}.hrow span{padding-left:8px}@media(max-width:900px){.haxis{margin-left:0;padding-right:0}.haxis span:nth-child(even){display:none}}

.combined-hero{border-color:color-mix(in oklch,var(--accent) 45%,var(--border))}.combined-stats{margin-top:14px}.stacked-chart{align-items:end}.stackbar{width:100%;border-radius:8px 8px 0 0;background:transparent;display:flex;flex-direction:column-reverse;overflow:hidden;align-self:end;min-height:0}.stackbar i{display:block;width:100%}.stackbar .read,.swatch.read{background:var(--accent)}.stackbar .listen,.swatch.listen,.listenbar{background:var(--cyan)}.swatch{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:6px;vertical-align:-1px}.legend.split{justify-content:flex-start;gap:18px}.hrow em{font-style:normal;text-transform:uppercase;letter-spacing:.08em;font-size:.62rem;color:var(--muted);margin-left:6px}.audiobook-panel{border-color:color-mix(in oklch,var(--cyan) 35%,var(--border))}.listenbar{border-color:color-mix(in oklch,var(--cyan) 55%,transparent)}

/* feedback pass */
.hero{align-items:center;margin-bottom:22px}.hero h1{font-size:clamp(3.1rem,6.1vw,5.6rem);line-height:.95;letter-spacing:-.055em}.lede{font-size:1.02rem;max-width:860px;line-height:1.55}.stat-card small b{color:var(--text);font-weight:850}.empty-chart{height:210px;border-left:1px solid var(--border);border-bottom:1px solid var(--border);display:grid;place-items:center;color:var(--muted);background:linear-gradient(to top,transparent calc(25% - 1px),var(--border) 25%,transparent calc(25% + 1px),transparent calc(50% - 1px),var(--border) 50%,transparent calc(50% + 1px),transparent calc(75% - 1px),var(--border) 75%,transparent calc(75% + 1px));border-radius:0 12px 0 0}.hrow em.source{display:inline-flex;align-items:center;border-radius:999px;padding:2px 7px;font-size:.58rem;font-weight:900}.source.read{background:color-mix(in oklch,var(--accent) 18%,transparent);color:var(--accent)}.source.listen{background:color-mix(in oklch,var(--cyan) 22%,transparent);color:var(--cyan)}.source.both{background:linear-gradient(90deg,color-mix(in oklch,var(--accent) 22%,transparent),color-mix(in oklch,var(--cyan) 22%,transparent));color:var(--text)}.sourcebar.listen,.listen-fill{background:var(--cyan)!important}.sourcebar.both{background:linear-gradient(90deg,var(--accent) 0 var(--read-pct),var(--cyan) var(--read-pct) 100%)!important}.source-listen{border-color:color-mix(in oklch,var(--cyan) 35%,var(--border))}.sync-footer{display:flex;gap:18px;flex-wrap:wrap;align-items:center}.sync-footer span{white-space:nowrap}.bookrow img{width:48px;height:64px;object-fit:cover;border-radius:10px;background:#21142c}@media(max-width:900px){.hero h1{font-size:clamp(2.7rem,18vw,4rem)}.sync-footer span{white-space:normal}}

.login-shell{min-height:100vh;display:grid;place-items:center;padding:32px 0}.login-panel{width:min(520px,100%);margin:0}.login-panel h1{font-size:clamp(3rem,10vw,5rem)}.login-form{display:grid;gap:12px;margin-top:22px}.login-form label{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;font-weight:850}.login-form input{width:100%;border:1px solid var(--border);background:color-mix(in oklch,var(--bg) 55%,var(--card));color:var(--text);border-radius:16px;padding:14px 16px;font:inherit}.login-form .refresh{width:max-content}

/* chart feedback pass */
.panelhead{align-items:flex-start}.combined-hero .panelhead{display:block}.chart-columns{grid-template-columns:1.05fr 1.25fr}.vchart{gap:5px;align-items:flex-end}.stacked-chart{display:flex!important;align-items:flex-end!important;height:210px}.stackbar{flex:1 1 0;max-width:18px;min-width:4px;margin:0 auto;background:transparent!important;border:0!important;display:flex!important;flex-direction:column-reverse!important;justify-content:flex-start!important;align-self:flex-end!important}.stackbar i{width:100%;min-height:0}.stackbar[style*="height: 0%"]{opacity:0}.stackbar .read{background:var(--accent)!important}.stackbar .listen{background:var(--cyan)!important}.hchart{background:none!important;border-left:0!important;border-bottom:0!important;padding-bottom:0}.hchart-wrap{gap:0}.haxis{display:none!important}.hrow{grid-template-columns:minmax(270px,1.35fr) minmax(220px,1fr) minmax(70px,auto)!important;gap:14px!important;align-items:center}.hrow>span{padding-left:0!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hrow>div{min-width:0}.hrow b{text-align:right;white-space:nowrap}.hrow em.source{vertical-align:2px}.sourcebar.read{background:var(--accent)!important}.sourcebar.listen{background:var(--cyan)!important}@media(max-width:900px){.chart-columns{grid-template-columns:1fr}.hrow{grid-template-columns:1fr!important;gap:6px!important}.hrow b{text-align:left}}

/* pill before title pass */
.hrow em.source{margin-left:0;margin-right:8px;vertical-align:1px;flex:0 0 auto}.hrow>span{display:block}.hrow>span .source{display:inline-flex}.bookrow.source-listen img,.audiobook-panel .bookrow img{box-shadow:0 8px 22px oklch(0% 0 0/.16)}

/* daily every day axis pass */
.daily-xaxis{height:64px;align-items:flex-start;margin-top:10px}.daily-xaxis span{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;font-size:.64rem;line-height:1;color:var(--muted)}.axis-chart{grid-template-columns:52px 1fr}.stackbar .read,.stackbar .listen{min-height:2px}.stackbar[title*="0m"] .read,.stackbar[title*="0m"] .listen{min-height:0}.audiobook-panel .bookrow img,.bookrow.source-listen img{width:56px!important;height:56px!important;aspect-ratio:1/1;object-fit:cover;border-radius:12px}.audiobook-panel .bookrow,.bookrow.source-listen{grid-template-columns:56px 1fr auto}@media(max-width:900px){.daily-xaxis{height:54px}.daily-xaxis span{font-size:.58rem}.axis-chart{grid-template-columns:44px 1fr}}

/* Keep rotated daily labels and chart grids from creating a mobile horizontal scroll area. */
html{overflow-x:hidden;overflow-x:clip}body{overflow-x:hidden;overflow-x:clip}.shell,.panel,.axis-chart,.hchart-wrap{max-width:100%}

/* global period selector */
.period-head{align-items:center}.period-controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.period-controls .range{text-decoration:none;display:inline-flex;align-items:center}@media(max-width:900px){.period-head{display:block}.period-controls{justify-content:flex-start;margin-top:14px}}

/* in-page period update */
.period-loading{opacity:.58;transition:opacity .12s ease;pointer-events:none}
.heatmap{grid-auto-columns:12px}.heatmap .cell{display:block}

/* audit cleanup */
.section-divider{margin:34px 0 8px}.section-divider h2{margin-bottom:4px}.section-divider .muted{margin:0}.empty-finished{min-height:170px;display:grid;place-items:center;text-align:center}.daily-xaxis span:nth-child(even){display:block!important}@media(max-width:900px){.daily-xaxis span:nth-child(even){display:block!important}.daily-xaxis{overflow:hidden}.period-controls .range{padding:8px 10px}.section-divider{margin-top:26px}}

/* Pilot modules */
.pilot-panel{margin-bottom:18px;border-color:color-mix(in oklch,var(--cyan) 38%,var(--border));background:linear-gradient(150deg,color-mix(in oklch,var(--cyan) 7%,var(--card)),var(--card) 45%)}.pilot-head{align-items:center}.pilot-head h2{margin-bottom:5px}.pilot-head p{margin:0}.pilot-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.pilot-actions .range{text-decoration:none}.pilot-feedback{border:1px solid var(--border);border-radius:14px;padding:10px 12px;margin:14px 0}.pilot-feedback.success{border-color:color-mix(in oklch,var(--green) 45%,var(--border));color:var(--green)}.pilot-feedback.danger{border-color:color-mix(in oklch,var(--danger) 55%,var(--border));color:var(--danger)}.pilot-queue{counter-reset:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:18px 0 0;padding:0;list-style:none}.pilot-queue li{display:grid;grid-template-columns:30px minmax(0,1fr) auto;grid-template-areas:"position book time" "position badges badges";gap:3px 10px;align-items:center;border:1px solid var(--border);border-radius:16px;padding:11px 12px;background:color-mix(in oklch,var(--bg) 48%,var(--card))}.pilot-position{grid-area:position;display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--accent);color:var(--accent-fg);font:800 .78rem/1 "JetBrains Mono",monospace}.pilot-book{grid-area:book;min-width:0}.pilot-book a{display:block;color:var(--fg);font-weight:800;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pilot-book a:hover{color:var(--accent)}.pilot-book>span{display:block;color:var(--muted);font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pilot-badges{grid-area:badges;display:flex;gap:5px;flex-wrap:wrap}.pilot-badges span{border:1px solid var(--border);border-radius:999px;padding:1px 6px;color:var(--muted);font-size:.61rem;text-transform:uppercase;letter-spacing:.05em}.pilot-queue li>b{grid-area:time;color:var(--accent);font-size:.74rem;white-space:nowrap}.pilot-meta{margin:12px 0 0;color:var(--muted);font-size:.75rem;text-align:right}@media(max-width:900px){.pilot-head{display:block}.pilot-actions{justify-content:flex-start;margin-top:14px}.pilot-queue{grid-template-columns:1fr}}@media(max-width:520px){.pilot-queue li{grid-template-columns:30px minmax(0,1fr);grid-template-areas:"position book" "position badges" "position time"}.pilot-meta{text-align:left}}
