:root{
  --ink:#0E3A43;        /* deep petrol — the sea before sunrise */
  --sky:#EEF3F4;        /* pale morning sky */
  --foam:#FFFFFF;
  --sun:#F2A33C;        /* low morning sun */
  --sun-ink:#7A4A0E;
  --line:#D5E0E2;
  --muted:#5E7A80;
}
*{box-sizing:border-box}
body{margin:0;background:var(--sky);color:var(--ink);
  font:16px/1.55 Inter,system-ui,sans-serif}
h1,h2,h3,.logo{font-family:Sora,Inter,sans-serif;letter-spacing:-.02em}
a{color:inherit;text-decoration:none}
main{max-width:960px;margin:0 auto;padding:16px}
.top{display:flex;justify-content:space-between;align-items:center;
  padding:14px 16px;max-width:960px;margin:0 auto}
.logo{font-size:22px;font-weight:700}
.logo-dot{color:var(--sun)}
.small{font-size:13px}.muted{color:var(--muted)}
.foot{max-width:960px;margin:32px auto 0;padding:16px;border-top:1px solid var(--line);
  display:grid;gap:6px}

.hero{padding:8px 0 20px}
.hero h1{font-size:clamp(26px,6vw,40px);margin:0 0 6px}
.hero p{margin:0;color:var(--muted)}

.chips{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.chip{background:var(--foam);border:1px solid var(--line);border-radius:999px;
  padding:6px 12px;font-size:14px}
.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}

.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.grid.sessions{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.card{background:var(--foam);border:1px solid var(--line);border-radius:14px;
  overflow:hidden;display:block}
.card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:#dfe9ea}
.card .pad{padding:10px 12px}
.card .title{font-weight:600}
.badge{display:inline-block;background:var(--sky);border-radius:6px;
  padding:1px 7px;font-size:12px;color:var(--muted)}
.badge.video{background:var(--sun);color:var(--sun-ink);font-weight:600}

/* daypart mark — sun position: three dots, filled one shows time of session */
.daypart{display:inline-flex;gap:3px;align-items:flex-end;margin-right:6px}
.daypart i{width:6px;height:6px;border-radius:50%;background:var(--line)}
.daypart.morning i:nth-child(1),.daypart.day i:nth-child(2),
.daypart.evening i:nth-child(3){background:var(--sun)}
.daypart i:nth-child(2){margin-bottom:4px}

.btn{display:inline-block;background:var(--ink);color:#fff;border:none;cursor:pointer;
  border-radius:10px;padding:12px 18px;font-weight:600;font-size:15px}
.btn.sun{background:var(--sun);color:var(--sun-ink)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn.wide{width:100%;text-align:center}
.btn.sm{padding:7px 12px;font-size:13px;border-radius:8px}

.viewer{background:var(--foam);border:1px solid var(--line);border-radius:16px;
  overflow:hidden}
.viewer img,.viewer video{width:100%;display:block;background:#000}
.viewer .pad{padding:14px 16px;display:grid;gap:10px}

form.stack{display:grid;gap:10px;max-width:420px}
input,select{padding:11px 12px;border:1px solid var(--line);border-radius:10px;
  font:inherit;background:var(--foam);width:100%}
label{font-size:13px;color:var(--muted)}
.err{color:#B3372B;font-size:14px}

table{width:100%;border-collapse:collapse;background:var(--foam);
  border:1px solid var(--line);border-radius:12px;overflow:hidden;font-size:14px}
th,td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left}
th{background:var(--sky);font-size:12px;text-transform:uppercase;
  letter-spacing:.04em;color:var(--muted)}
.stats{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  margin:14px 0}
.stat{background:var(--foam);border:1px solid var(--line);border-radius:12px;
  padding:12px}
.stat b{font-size:24px;font-family:Sora}
.stat span{font-size:12px;color:var(--muted)}

.uprow{display:flex;align-items:center;gap:10px;background:var(--foam);
  border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:6px 0;
  font-size:14px}
.bar{flex:1;height:6px;background:var(--sky);border-radius:3px;overflow:hidden}
.bar i{display:block;height:100%;width:0;background:var(--sun)}
.section{margin:26px 0 10px}
