.app-layout[data-v-a9cd11d4]{display:flex;min-height:100vh}.sidebar[data-v-a9cd11d4]{width:240px;background:var(--bg-surface);border-right:1px solid var(--ink-200);display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;z-index:100}.sidebar-logo[data-v-a9cd11d4]{display:flex;align-items:center;gap:12px;padding:24px 20px}.logo-icon[data-v-a9cd11d4]{width:40px;height:40px;background:var(--adult-600);color:#fff;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}.logo-text[data-v-a9cd11d4]{font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--ink-900)}.sidebar-nav[data-v-a9cd11d4]{flex:1;padding:16px 12px;display:flex;flex-direction:column;gap:4px}.nav-item[data-v-a9cd11d4]{display:flex;align-items:center;padding:12px 16px;border-radius:var(--radius-md);color:var(--ink-600);font-weight:500;transition:all .15s}.nav-item[data-v-a9cd11d4]:hover{background:var(--bg-subtle);color:var(--ink-900)}.nav-item.active[data-v-a9cd11d4]{background:var(--adult-500);color:#fff}.sidebar-member[data-v-a9cd11d4]{display:flex;align-items:center;gap:12px;padding:16px 20px;border-top:1px solid var(--ink-200)}.member-avatar[data-v-a9cd11d4]{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;color:#fff}.member-avatar.adult[data-v-a9cd11d4]{background:var(--adult-600)}.member-avatar.child[data-v-a9cd11d4]{background:var(--child-500)}.member-name[data-v-a9cd11d4]{font-weight:600;font-size:.875rem}.member-level[data-v-a9cd11d4]{font-size:.75rem;color:var(--ink-500)}.main-content[data-v-a9cd11d4]{flex:1;margin-left:240px;padding:32px;max-width:100%;min-height:100vh}.bottom-nav[data-v-a9cd11d4]{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--bg-surface);border-top:1px solid var(--ink-200);padding-bottom:env(safe-area-inset-bottom);z-index:100}.bottom-item[data-v-a9cd11d4]{flex:1;display:flex;align-items:center;justify-content:center;padding:12px 0;color:var(--ink-500);font-size:.75rem;font-weight:500}.bottom-item.active[data-v-a9cd11d4]{color:var(--adult-600)}@media(max-width:768px){.sidebar[data-v-a9cd11d4]{display:none}.main-content[data-v-a9cd11d4]{margin-left:0;padding:16px 16px 80px}.bottom-nav[data-v-a9cd11d4]{display:flex}}:root{--bg-root: #F6F3ED;--bg-surface: #FCFAF7;--bg-subtle: #EFEBE3;--bg-hover: #E9E4DA;--adult-500: #6366E9;--adult-600: #5457D9;--adult-700: #4547B5;--child-400: #34D399;--child-500: #10B981;--child-600: #059669;--warm-400: #FB923C;--warm-500: #F97316;--gold-400: #FACC15;--gold-500: #EAB308;--success: #16A34A;--warning: #D97706;--error: #DC2626;--info: #2563EB;--ink-900: #1E1C18;--ink-800: #2D2B26;--ink-700: #44413B;--ink-600: #5C5851;--ink-500: #78736A;--ink-400: #A39E94;--ink-300: #CBC7BD;--ink-200: #E2DED5;--ink-100: #F0EDE5;--font-display: "Nunito", system-ui, sans-serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--font-body);background:var(--bg-root);color:var(--ink-900);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea{font-family:inherit;font-size:inherit}a{color:inherit;text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius-md);font-weight:600;font-size:.95rem;min-height:44px;transition:all .15s ease}.btn-primary{background:var(--adult-600);color:#fff}.btn-primary:hover{background:var(--adult-700)}.btn-child{background:var(--child-500);color:#fff}.btn-child:hover{background:var(--child-600)}.btn-ghost{background:var(--bg-subtle);color:var(--ink-700)}.btn-ghost:hover{background:var(--bg-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--bg-surface);border-radius:var(--radius-lg);padding:24px;border:1px solid var(--ink-200)}.status-success{color:var(--success)}.status-warning{color:var(--warning)}.status-error{color:var(--error)}
