.fp-hero{margin-bottom:28px}.fp-hero h1{margin:0 0 8px}.fp-hero .lede{max-width:52ch}.fp{display:grid;gap:24px}.fp-ph{min-height:240px}.fp .eyebrow{margin:0 0 10px}.fp-sum{background:var(--mint);padding:26px 24px 22px}.fp-sum .eyebrow{color:var(--ink-2)}.fp-sentence{margin:0;font:500 24px/1.35 var(--font-display);color:var(--ink)}.fp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:18px 0 0}.fp-stats>div{display:flex;flex-direction:column-reverse;padding:12px 14px;background:var(--paper);border:1.5px solid var(--outline);border-radius:12px}.fp-stats dt{font-size:14px;color:var(--muted)}.fp-stats dd{margin:0;font:600 26px/1.15 var(--font-display);color:var(--ink)}.fp-warn{margin:14px 0 0;padding:10px 14px;border-left:4px solid var(--wrong);border-radius:6px;background:var(--wrong-tint);color:var(--ink);font-weight:700}.fp-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.fp-ch-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}.fp-ch-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:baseline}.fp-ch-name{color:var(--ink);text-decoration:none;font-weight:700}.fp-ch-name:hover{text-decoration:underline}.fp-ch-k{color:var(--accent-text);font-weight:800}.fp-ch-when{text-align:right;margin:0}.fp-bar{grid-column:1 / -1;position:relative;height:12px;border-radius:99px;background:var(--sand);border:1.5px solid var(--line-2);overflow:hidden}.fp-bar-fill{position:absolute;top:0;bottom:0;border-radius:99px;background:var(--progress)}.fp-bar-fill.fp-f5{background:var(--accent)}.fp-bar-done{position:absolute;inset:0;background:repeating-linear-gradient(135deg,var(--line-2) 0 4px,transparent 4px 8px)}.fp-axis{display:flex;justify-content:space-between;margin:10px 0 0}@media(max-width:560px){.fp-ch-row{grid-template-columns:minmax(0,1fr)}.fp-ch-when{text-align:left}}.fp-cal-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 18px}.fp-legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;padding:0;font-size:14px;color:var(--muted)}.fp-legend li{display:inline-flex;align-items:center;gap:6px}.fp-sw{width:14px;height:14px;border-radius:4px;border:1.5px solid var(--outline)}.fp-note{margin:4px 0 0}.fp-week{margin-top:22px}.fp-week-h{margin:0 0 8px;font:600 20px/1.2 var(--font-display);color:var(--ink)}.fp-week-h .caption{margin-left:6px;font-family:var(--font-body);font-weight:600}.fp-days{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.fp-day{display:flex;flex-direction:column;gap:6px;min-height:92px;padding:8px;border-radius:10px;border:1.5px solid var(--line-2);background:var(--paper);font-size:13px}.fp-past{background:none;border-style:dashed;opacity:.5}.fp-date{color:var(--muted);font-weight:700}.fp-dow{color:var(--ink)}.fp-tag{display:inline-block;margin-left:4px;padding:0 6px;border-radius:99px;background:var(--ink);color:var(--ground);font-size:11px}.fp-today{border-color:var(--outline);box-shadow:3px 3px 0 var(--shadow)}.fp-what{color:var(--ink);line-height:1.35}.fp-grp{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.fp-grp+.fp-grp{margin-top:4px}.fp-grp-k{flex-basis:100%;font-size:12px;font-weight:800;color:var(--right)}.fp-grp.fp-f5 .fp-grp-k{color:var(--accent-text)}.fp-code{display:inline-flex;align-items:center;min-height:26px;padding:0 7px;border-radius:6px;background:var(--mint);border:1.5px solid var(--outline);color:var(--ink);font-weight:800;text-decoration:none}.fp-grp.fp-f5 .fp-code{background:var(--lilac)}.fp-code:hover{text-decoration:underline}.fp-k-read.fp-sw{background:linear-gradient(135deg,var(--mint) 50%,var(--lilac) 50%)}.fp-k-cards{background:var(--sand)}.fp-k-revise{background:var(--butter)}.fp-k-exam{background:var(--peach)}.fp-day.fp-k-exam{border-color:var(--outline)}.fp-day.fp-k-exam .fp-what{font-weight:800}.fp-day.fp-k-free .fp-what{color:var(--muted)}@media(max-width:700px){.fp-days{grid-template-columns:minmax(0,1fr);gap:4px}.fp-day{flex-direction:row;align-items:flex-start;min-height:0;padding:8px 10px;font-size:14px}.fp-date{flex:none;width:96px}.fp-tag{display:block;width:max-content;margin:2px 0 0}.fp-past,.fp-day.fp-k-free{display:none}}@media(forced-colors:active){.fp-code,.fp-bar-fill,.fp-sw{forced-color-adjust:none}}
