:root{--bg: #faf6ef;--bg-paper: #fffdf8;--bg-red-tint: #fde8e4;--text: #2d2a26;--muted: #6b6560;--border: #2d2a26;--accent-navy: #2c5282;--accent-red: #c53030;--accent-olive: #5c6b3a;--radius: 16px;--font-display: "Fredoka", system-ui, sans-serif;--font-body: "Nunito", system-ui, sans-serif;--shadow-cartoon: 4px 4px 0 var(--border);--safe-bottom: env(safe-area-inset-bottom, 0px)}*,*:before,*:after{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent}body{margin:0;min-height:100dvh;font-family:var(--font-body);background-color:var(--bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cg fill='%23e8ddd4' fill-opacity='0.35'%3E%3Cpath d='M0 0h40v40H0zM40 40h40v40H40z'/%3E%3C/g%3E%3C/svg%3E");color:var(--text)}#root{min-height:100dvh;padding-bottom:calc(88px + var(--safe-bottom))}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.cartoon-card{background:var(--bg-paper);border:3px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-cartoon)}.cartoon-card--tint{background:var(--bg-red-tint)}.page-title{font-family:var(--font-display);font-size:clamp(1.5rem,4vw,1.9rem);font-weight:600;letter-spacing:.02em;margin:0 0 1rem;color:var(--text)}.section-label{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 .75rem}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;justify-content:center;gap:.75rem;padding:.65rem 1rem calc(.65rem + var(--safe-bottom));background:var(--bg-paper);border-top:3px solid var(--border);box-shadow:0 -4px #2d2a260f}.bottom-nav a{flex:1;max-width:180px;text-align:center;padding:.75rem 1rem;border-radius:999px;font-family:var(--font-display);font-weight:600;font-size:.95rem;border:3px solid var(--border);background:var(--bg);color:var(--muted);transition:transform .12s ease,background .15s ease}.bottom-nav a:hover{color:var(--text)}.bottom-nav a.active{color:var(--bg-paper);background:var(--accent-navy);border-color:var(--border);transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--border)}.msg{padding:.75rem 1rem;border-radius:12px;font-size:.9rem;margin-bottom:1rem;border:3px solid var(--border);font-weight:600}.msg.err{background:#ffe4e1;color:#8b2e2e}.msg.ok{background:#e8f4e0;color:#2d4a22}.btn-primary{width:100%;padding:.9rem 1rem;border-radius:999px;border:3px solid var(--border);background:#ffd966;color:var(--text);font-family:var(--font-display);font-weight:600;cursor:pointer;box-shadow:var(--shadow-cartoon);transition:transform .1s ease}.btn-primary:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--border)}.btn-primary:disabled{opacity:.65;cursor:wait}.btn-secondary{width:100%;padding:.9rem 1rem;border-radius:999px;border:3px solid var(--border);background:var(--bg-paper);color:var(--text);font-family:var(--font-display);font-weight:600;cursor:pointer;box-shadow:var(--shadow-cartoon)}.btn-secondary:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--border)}.input-school{width:100%;padding:.85rem 1rem;border-radius:12px;border:3px solid var(--border);background:var(--bg-paper);color:var(--text)}
