:root { color-scheme: light; --ink:#172033; --muted:#667085; --surface:#fff; --bg:#f4f6fb; --line:#e5e9f2; --accent:#5b67f1; --danger:#b42318; }
* { box-sizing:border-box; }
body { margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--ink); background:radial-gradient(circle at 10% 0,#eef0ff 0,transparent 34rem),var(--bg); min-height:100vh; }
a { color:inherit; }
.site-header { min-height:70px; padding:0 5vw; display:flex; align-items:center; justify-content:space-between; gap:2rem; background:rgba(255,255,255,.88); border-bottom:1px solid var(--line); backdrop-filter:blur(16px); position:sticky; top:0; z-index:4; }
.brand { display:flex; align-items:center; gap:.65rem; text-decoration:none; font-weight:800; letter-spacing:-.02em; }
.brand-mark { display:grid; place-items:center; width:34px; height:34px; background:var(--ink); color:white; border-radius:11px; font-size:.8rem; }
nav { display:flex; align-items:center; gap:1.25rem; font-size:.92rem; font-weight:600; }
nav a,.link-button { text-decoration:none; color:#475467; }
.inline-form { display:inline; }.link-button { border:0; background:none; font:inherit; padding:0; cursor:pointer; }
.page-shell { width:min(1120px,90vw); margin:0 auto; padding:56px 0 80px; }
.hero { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:32px; }.hero.compact { align-items:center; }
h1,h2,h3,p { margin-top:0; } h1 { font-size:clamp(2.2rem,5vw,4.2rem); letter-spacing:-.055em; line-height:.98; margin-bottom:16px; } h2 { letter-spacing:-.035em; } h3 { font-size:.9rem; margin-top:26px; }
.eyebrow { color:var(--accent); text-transform:uppercase; letter-spacing:.14em; font-size:.74rem; font-weight:800; margin-bottom:12px; }.muted { color:var(--muted); }.error { color:var(--danger); }
.rule-pill { background:#e7e9ff; color:#3d47bd; border-radius:999px; padding:12px 18px; font-weight:750; white-space:nowrap; }
.card { background:var(--surface); border:1px solid rgba(211,217,230,.8); border-radius:24px; box-shadow:0 14px 40px rgba(31,42,68,.07); padding:28px; }
.child-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }.child-card { border-top:5px solid var(--profile-color); }
.card-heading { display:flex; align-items:center; gap:14px; }.card-heading h2 { margin:0 0 4px; }.card-heading p { margin:0; }
.avatar { width:46px; height:46px; display:grid; place-items:center; flex:none; border-radius:15px; background:var(--profile-color); color:#fff; font-size:1.25rem; font-weight:850; }.avatar.large { width:68px; height:68px; border-radius:22px; font-size:1.75rem; }
.debt { display:flex; align-items:baseline; gap:10px; margin:28px 0; color:#087443; }.debt.has-debt { color:var(--danger); }.debt strong { font-size:3.6rem; letter-spacing:-.06em; line-height:1; }.debt span { font-weight:700; }
.stats-row,.summary-strip { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }.stats-row div,.summary-strip div { background:#f7f8fb; border-radius:16px; padding:16px; display:flex; flex-direction:column; gap:4px; }.stats-row strong,.summary-strip strong { font-size:1.45rem; }.stats-row span,.summary-strip span { color:var(--muted); font-size:.78rem; }
.session-list { min-height:72px; }.session-list div { display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px solid var(--line); }.session-list span { color:var(--muted); }
.secondary-button,.primary-button,.danger-button { border:0; border-radius:13px; padding:12px 16px; font-weight:750; cursor:pointer; display:inline-block; text-decoration:none; }.secondary-button { margin-top:22px; background:#f0f1f5; }.primary-button { background:var(--ink); color:#fff; }.danger-button { color:var(--danger); background:#feeceb; margin-top:10px; }
.summary-strip { grid-template-columns:repeat(3,1fr); margin-bottom:24px; }.summary-strip div { background:transparent; }
.section-heading { display:flex; align-items:center; justify-content:space-between; }.table-wrap { overflow-x:auto; } table { width:100%; border-collapse:collapse; } th,td { text-align:left; padding:14px 12px; border-bottom:1px solid var(--line); white-space:nowrap; } th { color:var(--muted); font-size:.75rem; text-transform:uppercase; letter-spacing:.06em; }.penalty-cell { color:var(--danger); font-weight:700; }
.controls-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:24px; }.form-card > div,.stacked-form { display:flex; flex-direction:column; gap:7px; margin-bottom:18px; }.form-card label,.stacked-form label { font-size:.84rem; font-weight:750; }.form-card input,.stacked-form input { width:100%; border:1px solid #cdd3df; border-radius:11px; padding:11px 12px; font:inherit; }.form-card input[type=checkbox] { width:auto; }.form-card input[type=color] { width:52px; padding:3px; }.form-card ul.errorlist { color:var(--danger); }.profile-form { padding:18px; background:#f8f9fc; border-radius:16px; margin:14px 0; }.save-button { margin-top:24px; padding:14px 28px; }
.login-card { width:min(460px,100%); margin:8vh auto; }.login-card h1 { font-size:2.6rem; }.stacked-form input { margin-bottom:12px; }.stacked-form .primary-button { margin-top:6px; }
.messages p { background:#e8f7ef; color:#087443; padding:14px 18px; border-radius:13px; font-weight:650; }
@media (max-width:760px) { .site-header { align-items:flex-start; padding-top:18px; padding-bottom:18px; }.site-header nav { flex-wrap:wrap; justify-content:flex-end; gap:.7rem 1rem; }.page-shell { padding-top:36px; }.hero { align-items:flex-start; flex-direction:column; }.child-grid,.controls-grid { grid-template-columns:1fr; }.summary-strip { grid-template-columns:1fr; } .rule-pill { white-space:normal; } }
