:root{--guava: #FF4785;--guava-dark: #E03070;--guava-light: #FFF0F6;--guava-mid: #FFB3D0;--leaf: #00C9A7;--leaf-dark: #00A889;--leaf-light: #E0FFF9;--sun: #FF8C00;--sun-dark: #E07B00;--sun-light: #FFF4E0;--sky: #5B8BF5;--sky-dark: #4070E0;--sky-light: #EEF2FF;--dark: #1E1F2E;--text: #2B2D42;--muted: #7B7D99;--light: #C5C6D8;--bg: #F7F8FC;--white: #FFFFFF;--border: #EAEBF5;--card: #FFFFFF;--success: #2DBD74;--danger: #FF4757;--warning: #FFA500;--info: #5B8BF5;--r-sm: 8px;--r-md: 14px;--r-lg: 20px;--r-xl: 28px;--r-full:9999px;--shadow-sm: 0 2px 8px rgba(30,31,46,.08);--shadow-md: 0 4px 20px rgba(30,31,46,.12);--shadow-lg: 0 8px 40px rgba(30,31,46,.16);--font-display: "Fredoka One", cursive;--font-body: "Nunito", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-height:100vh}h1,h2,h3,h4,h5{font-family:var(--font-display);color:var(--text)}a{color:var(--guava);text-decoration:none}a:hover{text-decoration:underline}button{font-family:var(--font-body);font-weight:700;cursor:pointer;border:none;transition:all .15s ease}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font-family:var(--font-body);font-size:15px;width:100%;padding:10px 14px;border:2px solid var(--border);border-radius:var(--r-md);outline:none;background:var(--white);color:var(--text);transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:var(--guava)}.card{background:var(--white);border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:var(--r-md);font-size:15px;font-weight:700}.btn-primary{background:var(--guava);color:#fff}.btn-primary:hover{background:var(--guava-dark)}.btn-ghost{background:transparent;border:2px solid var(--border);color:var(--text)}.btn-ghost:hover{border-color:var(--guava);color:var(--guava)}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:6px 14px;font-size:13px}.btn-lg{padding:14px 28px;font-size:17px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--r-full);font-size:12px;font-weight:700}.badge-admin{background:#ffe4f3;color:var(--guava-dark)}.badge-parent{background:var(--sky-light);color:var(--sky-dark)}.badge-kid{background:var(--leaf-light);color:var(--leaf-dark)}.badge-active{background:#d6f5e8;color:#1a8a52}.badge-paused{background:#fff4e0;color:#a06000}.badge-archived{background:var(--border);color:var(--muted)}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.form-error{font-size:12px;color:var(--danger);font-weight:600}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot-green{background:var(--success)}.dot-orange{background:var(--warning)}.dot-red{background:var(--danger)}.dot-grey{background:var(--light)}.spinner{width:36px;height:36px;border:4px solid var(--border);border-top-color:var(--guava);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page-loader{display:flex;align-items:center;justify-content:center;min-height:50vh;flex-direction:column;gap:16px}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th{text-align:left;padding:10px 14px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border);background:var(--bg)}.data-table td{padding:12px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.data-table tr:hover td{background:var(--bg)}.domain-curiosity{color:var(--leaf)}.domain-critical_thinking{color:var(--sun)}.domain-focus{color:var(--sky)}.bg-curiosity{background:var(--leaf-light)}.bg-critical_thinking{background:var(--sun-light)}.bg-focus{background:var(--sky-light)}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pop{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.fade-up{animation:fadeUp .35s ease both}.pop{animation:pop .4s cubic-bezier(.34,1.56,.64,1) both}.skeleton{background:linear-gradient(90deg,var(--border) 25%,#f0f0f8 50%,var(--border) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--r-sm)}@media (max-width: 768px){.hide-mobile{display:none!important}}
