:root{--indigo: #6366f1;--indigo-dark: #4f46e5;--violet: #8b5cf6;--grad: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--grad-soft: linear-gradient(135deg, #eef2ff 0%, #f5f3ff 100%);--c-blue: #4f9dff;--c-blue-2: #6bb6ff;--c-purple: #8b5cf6;--c-purple-2: #a78bfa;--c-pink: #ff6fae;--c-pink-2: #ff92c2;--c-orange: #ff9f43;--c-orange-2: #ffb56b;--c-green: #34d399;--c-green-2: #6ee7b7;--c-teal: #22d3ee;--c-teal-2: #67e8f9;--c-yellow: #fbbf24;--c-yellow-2: #fcd34d;--c-red: #f87171;--bg: #f4f6fc;--surface: #ffffff;--soft: #f3f4f8;--ink: #1f2244;--muted: #7a819c;--line: #edeff6;--green: #16a34a;--amber: #b45309;--red: #dc2626;--radius: 22px;--radius-sm: 16px;--shadow-sm: 0 2px 6px rgba(31,34,68,.06);--shadow: 0 10px 30px rgba(99,102,241,.12), 0 3px 10px rgba(31,34,68,.06);--shadow-lg: 0 22px 55px rgba(99,102,241,.2)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:"Baloo 2",Inter,-apple-system,Segoe UI,Roboto,system-ui,sans-serif;background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;overflow-x:hidden}.screen{min-height:100dvh;max-width:520px;margin:0 auto;padding:18px 16px calc(94px + env(safe-area-inset-bottom));display:flex;flex-direction:column}.screen--center{justify-content:center;gap:6px}.screen--wide{max-width:820px}.auth-bg{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px 16px;background:radial-gradient(900px 460px at 50% -8%,#e9e6ff 0%,transparent 62%),var(--bg)}.auth-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:30px;box-shadow:var(--shadow-lg);padding:32px 24px}.auth-head{text-align:center;margin-bottom:20px}.auth-head h1{font-size:27px;margin:14px 0 4px}.auth-head p{color:var(--muted);margin:0;font-size:15px}.logo-badge{width:76px;height:76px;margin:0 auto;display:flex;align-items:center;justify-content:center}h1{font-size:26px;margin:0 0 4px;font-weight:800;letter-spacing:-.01em}h2{font-size:20px;margin:0 0 12px;font-weight:700}.subtitle{color:var(--muted);margin:0 0 18px}.big-emoji{font-size:46px}.kid-hero{--hero: var(--grad);background:var(--hero);color:#fff;border-radius:26px;padding:20px 18px;margin-bottom:16px;position:relative;overflow:hidden;box-shadow:var(--shadow)}.kid-hero:before{content:"";position:absolute;right:-24px;top:-30px;width:120px;height:120px;border-radius:50%;background:#ffffff29}.kid-hero:after{content:"";position:absolute;right:34px;bottom:-30px;width:70px;height:70px;border-radius:50%;background:#ffffff1f}.kid-hero .eyebrow{font-size:13px;opacity:.95;font-weight:600}.kid-hero h1{color:#fff;font-size:24px;margin:2px 0 0}.kid-hero .sub{color:#ffffffeb;font-size:14px;margin-top:2px}.kid-hero .emoji{position:absolute;right:16px;top:16px;font-size:34px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.hero-back,.hero-logout{background:#ffffff38;border:none;color:#fff;font-weight:700;font-size:14px;padding:9px 14px;border-radius:12px;cursor:pointer;margin-bottom:12px;display:inline-flex;align-items:center;gap:6px;min-height:40px}.hero-logout{position:absolute;top:16px;right:16px;margin:0;padding:8px 12px;font-size:13px}.hero-back:active,.hero-logout:active{background:#ffffff57}.theme-blue{background:linear-gradient(180deg,#eef6ff 0%,var(--bg) 220px)}.theme-purple{background:linear-gradient(180deg,#f3efff 0%,var(--bg) 220px)}.theme-pink{background:linear-gradient(180deg,#ffeef6 0%,var(--bg) 220px)}.theme-orange{background:linear-gradient(180deg,#fff2e3 0%,var(--bg) 220px)}.theme-green{background:linear-gradient(180deg,#e7fbf3 0%,var(--bg) 220px)}.theme-teal{background:linear-gradient(180deg,#e4fbff 0%,var(--bg) 220px)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm);margin-bottom:14px}.card--pop{border:none;box-shadow:var(--shadow)}.child-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow-sm);transition:transform .12s ease,box-shadow .12s ease}.child-card:active{transform:scale(.99)}.avatar{width:54px;height:54px;border-radius:18px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:23px;font-weight:800;flex-shrink:0;box-shadow:var(--shadow-sm)}.child-card .meta{flex:1}.child-card .meta .name{font-weight:700;font-size:17px}.child-card .meta .grade{color:var(--muted);font-size:14px}.tile-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tile{border:none;border-radius:22px;padding:18px 16px;cursor:pointer;color:#fff;text-align:left;min-height:116px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:transform .1s ease}.tile:active{transform:scale(.97)}.tile:after{content:"";position:absolute;right:-18px;bottom:-18px;width:70px;height:70px;border-radius:50%;background:#ffffff2e}.tile .t-emoji{font-size:32px}.tile .t-label{font-size:17px;font-weight:800}.tile .t-sub{font-size:12px;opacity:.95;font-weight:500}.bg-blue{background:linear-gradient(135deg,var(--c-blue),var(--c-blue-2))}.bg-purple{background:linear-gradient(135deg,var(--c-purple),var(--c-purple-2))}.bg-pink{background:linear-gradient(135deg,var(--c-pink),var(--c-pink-2))}.bg-orange{background:linear-gradient(135deg,var(--c-orange),var(--c-orange-2))}.bg-green{background:linear-gradient(135deg,var(--c-green),var(--c-green-2))}.bg-teal{background:linear-gradient(135deg,var(--c-teal),var(--c-teal-2))}.bg-yellow{background:linear-gradient(135deg,var(--c-yellow),var(--c-yellow-2))}label{display:block;font-weight:700;font-size:14px;margin:16px 0 8px;color:#3b4160}input,select,textarea{width:100%;padding:15px 16px;font-size:16px;border:2px solid var(--line);border-radius:var(--radius-sm);background:#fbfbff;outline:none;color:var(--ink);transition:border-color .15s,box-shadow .15s,background .15s}input::placeholder,textarea::placeholder{color:#aab1c8}input:focus,select:focus,textarea:focus{border-color:var(--indigo);background:#fff;box-shadow:0 0 0 4px #6366f124}.btn{width:100%;padding:16px;font-size:17px;font-weight:800;border:none;border-radius:var(--radius-sm);background:var(--grad);color:#fff;cursor:pointer;min-height:56px;margin-top:18px;box-shadow:0 10px 22px #6366f14d;transition:transform .1s ease,box-shadow .15s ease,opacity .15s}.btn:active{transform:translateY(1px) scale(.99)}.btn:disabled{opacity:.6;box-shadow:none}.btn--ghost{background:#fff;color:var(--indigo-dark);border:2px solid var(--line);box-shadow:var(--shadow-sm)}.btn--big{font-size:19px;min-height:62px;border-radius:18px}.btn--yellow{background:linear-gradient(135deg,var(--c-yellow),var(--c-orange));box-shadow:0 10px 22px #fb923c57}.btn--green{background:linear-gradient(135deg,var(--c-green),var(--c-teal));box-shadow:0 10px 22px #34d39952}.link{background:none;border:none;color:var(--indigo-dark);font-size:14px;cursor:pointer;padding:10px;font-weight:700}.link:active{opacity:.7}.role-btn{width:100%;display:flex;align-items:center;gap:14px;padding:16px 18px;margin-top:14px;border-radius:20px;border:2px solid var(--line);background:#fff;cursor:pointer;text-align:left;box-shadow:var(--shadow-sm);transition:transform .12s,box-shadow .15s,border-color .15s}.role-btn:active{transform:scale(.98)}.role-btn .ic{width:50px;height:50px;flex-shrink:0;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:24px;background:var(--grad-soft)}.role-btn .rb-title{font-weight:800;font-size:17px}.role-btn .rb-sub{color:var(--muted);font-size:13px}.role-btn .chev{margin-left:auto;color:#c3c7d4;font-size:22px}.pill-row{display:flex;gap:10px;margin-bottom:16px}.pill{flex:1;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:12px;text-align:center;box-shadow:var(--shadow-sm)}.pill .v{font-size:21px;font-weight:800}.pill .l{font-size:11px;color:var(--muted);margin-top:2px}.section-title{font-size:14px;font-weight:800;color:var(--muted);margin:8px 2px 10px;text-transform:uppercase;letter-spacing:.05em}.tag{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px}.tag--ok{background:#e7fbf3;color:var(--green)}.tag--warn{background:#fff4e0;color:var(--amber)}.tag--info{background:var(--grad-soft);color:var(--indigo-dark)}.list-row{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line);cursor:pointer}.list-row:last-child{border-bottom:none}.list-row .ic-badge{width:44px;height:44px;border-radius:14px;background:var(--grad-soft);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.list-row .chev{margin-left:auto;color:#c3c7d4;font-size:22px}.error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;border-radius:14px;padding:12px 14px;font-size:14px;margin-top:14px}.notice-ok{background:#e7fbf3;color:var(--green);border:1px solid #bbf7d0;border-radius:14px;padding:12px 14px;font-size:14px;margin-top:12px}.empty{text-align:center;color:var(--muted);padding:44px 20px}.empty .big-emoji{display:block;margin-bottom:10px}.bottom-nav{position:fixed;left:0;right:0;bottom:0;max-width:520px;margin:0 auto;background:#fffffff0;-webkit-backdrop-filter:saturate(1.5) blur(12px);backdrop-filter:saturate(1.5) blur(12px);border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:8px 4px calc(8px + env(safe-area-inset-bottom));z-index:30;box-shadow:0 -4px 20px #1f22440f}.bottom-nav button{background:none;border:none;font-size:11px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;min-width:62px;min-height:50px;font-weight:700;border-radius:14px;transition:color .12s}.bottom-nav button.active{color:var(--indigo-dark)}.bottom-nav button.active .ic{transform:translateY(-1px) scale(1.12)}.bottom-nav .ic{font-size:23px;transition:transform .12s}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.topbar .hello{font-size:13px;color:var(--muted)}.center-loading{min-height:100dvh;display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:600}@media (min-width: 560px){.tile-grid{grid-template-columns:1fr 1fr 1fr}}
