:root,
[data-theme="light"] {
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --text-2xl: clamp(2rem, 1.2rem + 2.5vw, 3.5rem);
  --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem; --space-5: 1.25rem; --space-6: 1.5rem; --space-8: 2rem; --space-10: 2.5rem; --space-12: 3rem; --space-16: 4rem;
  --color-bg:#f7f4ee; --color-surface:#fcfaf6; --color-surface-2:#f1ece3; --color-border:#d6cdbd; --color-divider:#e0d7c8; --color-text:#28221b; --color-text-muted:#6d665d; --color-primary:#2f6b4f; --color-primary-hover:#25523d; --color-primary-highlight:#d8e7dd; --color-text-inverse:#fbfaf6;
  --radius-md:0.9rem; --radius-lg:1.25rem; --radius-full:9999px; --shadow-sm:0 1px 2px rgba(30,27,20,.08); --shadow-md:0 12px 32px rgba(30,27,20,.12);
  --font-body:'General Sans','Inter',sans-serif; --font-display:'Zodiak','Georgia',serif; --content:1180px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6} a{text-decoration:none;color:inherit} img,svg{display:block;max-width:100%} button,input,select,textarea{font:inherit}
.container{width:min(calc(100% - 2rem),var(--content));margin-inline:auto}.page-shell,.hero,.section{padding:clamp(var(--space-8),6vw,var(--space-16)) 0}.top-gap{margin-top:var(--space-8)}
.site-header{position:sticky;top:0;z-index:20;background:rgba(247,244,238,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-divider)}.header-inner,.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) 0}.brand{display:inline-flex;align-items:center;gap:var(--space-3)}.brand-logo{width:52px;color:var(--color-primary)}.brand strong{display:block;font-size:var(--text-sm)}.brand span{font-size:var(--text-xs);color:var(--color-text-muted)}.main-nav{display:flex;flex-wrap:wrap;gap:var(--space-4)}.main-nav a{min-height:44px;display:inline-flex;align-items:center;color:var(--color-text-muted)}
.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;background:var(--color-primary);color:var(--color-text-inverse);padding:.75rem 1rem;border-radius:.5rem}
.hero-grid,.dashboard-grid,.mini-stats,.card-grid,.form-grid,.auth-grid{display:grid;gap:var(--space-6)}.hero-grid{grid-template-columns:1.2fr .8fr;align-items:center}.dashboard-grid.two-cols,.auth-grid{grid-template-columns:1fr 1fr}.mini-stats{grid-template-columns:repeat(4,1fr)}.card-grid{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}.form-grid .full{grid-column:1/-1}
.eyebrow{margin:0 0 var(--space-3);color:var(--color-primary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;font-weight:700} h1,h2,h3{margin:0 0 var(--space-3);font-family:var(--font-display);line-height:1.1} h1{font-size:var(--text-2xl)} h2{font-size:var(--text-xl)} h3{font-size:var(--text-lg)} .hero-text{color:var(--color-text-muted);max-width:60ch}
.panel-card,.activity-card,.dashboard-card,.form-card,.table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)} .panel-card,.activity-card,.dashboard-card,.form-card{padding:var(--space-6)} .highlight{background:linear-gradient(180deg,var(--color-primary-highlight),var(--color-surface))}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-5)}.hero-actions.compact{margin-top:0}.btn{min-height:44px;padding:0 var(--space-5);border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border)}
.card-top,.section-heading.split{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.chip{display:inline-flex;align-items:center;justify-content:center;padding:.35rem .75rem;border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-text-inverse);font-size:var(--text-xs);font-weight:700}.meta-age,.hint,.alert,.activity-card p,.dashboard-card p,label span{color:var(--color-text-muted)}
.activity-card{display:flex;flex-direction:column;gap:var(--space-4)}.calendar-table{width:100%;border-collapse:collapse}.calendar-table th,.calendar-table td{padding:var(--space-4);text-align:left;border-bottom:1px solid var(--color-divider)}.calendar-table th{font-size:var(--text-sm);color:var(--color-text-muted)}
label{display:grid;gap:var(--space-2)} input,select,textarea{min-height:44px;padding:.85rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text)} textarea{min-height:120px;resize:vertical}
.feature-list,.form-stack{display:grid;gap:var(--space-4);padding:0;list-style:none}.feature-list li{padding:var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md)} .alert{padding:1rem 1.25rem;border-radius:var(--radius-md);margin-bottom:var(--space-4);background:var(--color-primary-highlight)}.alert.error{background:#f3d7d7;color:#7a1f1f}
.site-footer{border-top:1px solid var(--color-divider);background:var(--color-surface)}
@media (max-width:980px){.hero-grid,.dashboard-grid.two-cols,.auth-grid,.mini-stats,.card-grid,.form-grid{grid-template-columns:1fr}.header-inner,.footer-inner{flex-direction:column;align-items:flex-start}}
@media (max-width:640px){.container{width:min(calc(100% - 1.25rem),var(--content))}.calendar-table,.calendar-table thead,.calendar-table tbody,.calendar-table tr,.calendar-table th,.calendar-table td{display:block;width:100%}.calendar-table thead{display:none}.calendar-table tr{padding:var(--space-3);border-bottom:1px solid var(--color-divider)}.calendar-table td{padding:var(--space-2) var(--space-3);border:0}.calendar-table td::before{content:attr(data-label);display:block;font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}}
