@font-face{font-family:"Photo Memory";src:url("fonts/Alegreya-Regular.otf") format("opentype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Photo Memory Display";src:url("fonts/AlegreyaSC-Bold.otf") format("opentype");font-style:normal;font-weight:700;font-display:swap}
:root{--ink:#201d17;--muted:#75634e;--paper:#fff6e6;--surface:#fff0d9;--surface-2:#f6e8c9;--teal:#c63d2b;--teal-dark:#a72e20;--gold:#ebb94f;--line:#dbc5a0;--shadow:0 2px 6px #201d1712;--soft-shadow:0 14px 38px #201d170a;--green:#a72e20;--red:#c63d2b}
body{font-family:"Photo Memory",Georgia,serif;font-size:18px;font-weight:400;line-height:1.55}button{border:2px solid var(--ink);box-shadow:-2px 3px 0 var(--ink);border-radius:999px;font-weight:600;min-height:42px;background:var(--teal-dark);color:#fff}button:hover{filter:brightness(.96)}button:focus-visible,a:focus-visible{outline:3px solid #cfab52;outline-offset:3px}.secondary-button,.ghost-button{border:1px solid var(--line);box-shadow:none;background:var(--surface);color:var(--ink)}input,select,textarea{border-width:1px}h1,h2,h3{letter-spacing:-.03em;line-height:1.2}h1{font-weight:650;font-size:clamp(1.7rem,3vw,2.4rem)}h2{font-size:1.16rem;font-weight:650}.eyebrow{font-weight:650;letter-spacing:.12em;font-size:.65rem}.sidebar{background:#ffeccd;color:#201d17;border-right:0;padding:28px 20px}.sidebar-brand{color:var(--ink);font-weight:650}.sidebar-brand img{width:36px;height:36px}.admin-card{border:1px solid #ffffff21;background:#ffffff09;border-radius:12px;box-shadow:none}.admin-card strong,.admin-card small{color:#201d17}.admin-card>span,#admin-role{background:#f6e8c9;color:#a72e20;border:0;border-radius:4px;padding:2px 6px;font-size:10px}.side-nav button{border:0;background:transparent;color:#75634e;text-align:left;box-shadow:none;font-weight:500;border-radius:8px}.side-nav button.active{background:var(--red);color:var(--surface)}.side-nav button:hover{background:var(--surface-2);color:var(--ink)}.sidebar .ghost-button{background:var(--surface);color:var(--ink);border-color:var(--ink)}.workspace{padding:34px clamp(20px,4vw,56px)}.workspace-header{border:0;margin-bottom:28px}.surface,.metric-card{border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);background:var(--surface)}.metric-card{padding:22px}.metric-card strong{font-weight:600}.metric-card span{font-size:.8rem;font-weight:500}.compact-item{border:0;border-bottom:1px solid #e5d2b1;border-radius:0;box-shadow:none;background:transparent;padding:14px 0}.compact-item:last-child{border-bottom:0}.pill{border:0;font-weight:550;background:#f6e8c9;border-radius:6px}.login-card{border:1px solid var(--line);box-shadow:0 20px 70px #201d1715;border-radius:20px}.login-shell{background:var(--paper)}.metric-grid{gap:16px}.progress-hero{display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px;background:#ffeccd;border:1px solid #dbc5a0;border-radius:18px;padding:30px;margin-bottom:22px}.progress-hero h2{font-size:clamp(1.6rem,2.2vw,2rem);font-weight:550;max-width:630px;letter-spacing:-.04em}.progress-hero p{color:#75634e;max-width:560px;margin:12px 0 0;font-size:.9rem}.progress-emblem{width:86px;height:86px;border:1px solid #c63d2b;border-radius:50%;display:grid;place-items:center;color:#c63d2b;font-size:38px;background:#ffffff30}.progress-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin:28px 0 16px}.progress-toolbar label{display:flex;align-items:center;gap:12px;font-weight:500}.progress-toolbar select{width:auto;background:transparent}.progress-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:20px;margin-bottom:22px}.progress-chart{width:100%;height:250px;display:block;overflow:visible}.progress-chart text{font-size:11px;fill:#75634e}.progress-chart .gridline{stroke:#e5d2b1;stroke-dasharray:3 5}.progress-chart .trace{stroke:#c63d2b;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none}.progress-chart circle{fill:#fff;stroke:#c63d2b;stroke-width:2}.progress-subtext{color:var(--muted);font-size:.76rem;margin:10px 0 0}.progress-number{font-size:2.15rem;color:var(--ink);font-weight:550;letter-spacing:-.05em;line-height:1.2}.progress-number small{font-size:.82rem;color:var(--muted);letter-spacing:0;font-weight:400}.progress-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.progress-metrics article{padding:22px}.progress-metrics .metric-label{font-size:.78rem;color:var(--muted);margin-bottom:12px;display:block}.skill-row{margin:18px 0}.skill-topline{display:flex;justify-content:space-between;font-size:.81rem;margin-bottom:8px}.skill-meter{height:7px;background:#f1dfbd;border-radius:6px;overflow:hidden}.skill-meter span{display:block;height:100%;border-radius:6px;background:#c63d2b}.skill-row.is-focus .skill-meter span{background:#ebb94f}.practice-card{background:var(--red);color:var(--surface);border:0;display:flex;flex-direction:column;gap:14px}.practice-card .eyebrow{color:#ffeccd}.practice-card p{color:#fff1d9;font-size:.85rem;margin:0}.practice-card h2{font-size:1.55rem}.practice-card .progress-subtext{color:#ffeccd}.calendar-grid{display:grid;grid-template-columns:repeat(14,1fr);gap:5px;margin:20px 0 12px}.calendar-day{aspect-ratio:1;min-width:0;background:#f6e8c9;border:1px solid #e5d2b1;border-radius:4px}.calendar-day[data-count="1"]{background:#dc8573;border-color:#dc8573}.calendar-day[data-count="many"]{background:#a72e20;border-color:#a72e20}.calendar-legend{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted)}.progress-empty{display:grid;place-items:center;min-height:235px;color:var(--muted);text-align:center;padding:24px}.progress-error{padding:14px 20px;border:1px solid #d8b193;background:#fff5e8;border-radius:10px;color:#775331;margin-bottom:16px}.preview-banner{background:#f6e8c9;color:#75634e;text-align:center;font-size:13px;padding:12px}.section-heading{margin-bottom:16px}.surface{padding:24px}.overview-grid{gap:20px}.workspace-actions{gap:8px}.history-item small{line-height:2}.highscore-card{border:1px solid var(--line);box-shadow:none}.toast{border-width:1px;box-shadow:var(--soft-shadow)}.report-note{font-size:.72rem;color:var(--muted);margin:26px 0 0}
@media(max-width:1000px){.progress-grid{grid-template-columns:1fr}.progress-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-emblem{display:none}.progress-hero{grid-template-columns:1fr}.workspace{padding:24px}.calendar-grid{grid-template-columns:repeat(14,1fr)}}
@media(max-width:560px){.workspace{padding:18px}.progress-hero{padding:22px}.progress-toolbar{align-items:flex-start;flex-direction:column}.progress-metrics{gap:10px}.progress-metrics article{padding:16px}.progress-number{font-size:1.7rem}.workspace-header{flex-wrap:wrap;gap:16px}.workspace-actions{width:100%}.surface{padding:19px}.calendar-grid{grid-template-columns:repeat(7,1fr)}}
.workspace .icon-button{color:var(--ink);background:var(--surface);border:1px solid var(--line)}.workspace-header{background:transparent;box-shadow:none}.side-nav button.active{box-shadow:none}#admin-insights{margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--line)}

/* The app's cream surfaces, red actions and shared serif typefaces. */
h1,h2,h3,button,.sidebar-brand{font-family:"Photo Memory",Georgia,serif;font-weight:700;letter-spacing:0}
h1{font-size:clamp(2.2rem,3.5vw,3rem)}h2{font-size:1.4rem}
.eyebrow{font-family:"Photo Memory Display",Georgia,serif;font-size:.78rem;letter-spacing:.08em}
.sidebar{border-right:2px solid var(--ink)}
.admin-card{background:var(--surface);border:1px solid var(--line)}
.side-nav button{font-size:1.1rem;min-height:46px;padding-inline:16px}
.side-nav button.active:hover{background:var(--teal-dark);color:var(--surface)}
.progress-hero{border:1px solid var(--line)}
.progress-hero h2{font-size:clamp(1.8rem,2.8vw,2.6rem);font-weight:700;letter-spacing:0}
.progress-emblem{background:var(--surface);color:var(--red)}
.progress-number{font-size:2.7rem;font-weight:700;letter-spacing:0}
.progress-metrics .metric-label,.skill-topline{font-size:1rem}
.progress-subtext,.report-note{font-size:.9rem}.progress-hero p,.practice-card p{font-size:1rem}
.progress-chart text{font-family:"Photo Memory",Georgia,serif;font-size:14px}
.progress-chart stop{stop-color:var(--red)}
button:active:not(:disabled){transform:translate(-2px,3px);box-shadow:none}
button,input,select{max-width:100%;text-overflow:ellipsis}button{overflow:hidden;white-space:nowrap}
a{color:var(--teal-dark)}
@media(max-width:560px){.progress-number{font-size:2.2rem}.side-nav button{font-size:1rem}.progress-metrics .metric-label{font-size:.9rem}}
