*{box-sizing:border-box;margin:0;padding:0}body{background:var(--primary-gradient,#2d2d2d);min-height:100vh;color:var(--text-primary);padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:background .6s;overflow-x:hidden}p,h1,h2,h3,h4,h5,h6,li,td,th,span,label,button{overflow-wrap:break-word;word-break:break-word}#root{flex-direction:column;max-width:1200px;min-height:calc(100vh - 40px);margin:0 auto;display:flex}.app-main{flex:1}.app-footer{border-radius:var(--radius-sm,8px);color:#ffffffa6;background:#0000002e;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;margin-top:2rem;padding:.5rem 1.25rem;font-size:.72em;display:flex}.app-footer-sep{opacity:.4}.app-footer-link{color:#ffffffbf;text-underline-offset:2px;text-decoration:underline}.app-footer-link:hover{color:#fff}.app-loading{color:#ffffffe6;letter-spacing:.05em;justify-content:center;align-items:center;min-height:100vh;font-size:1.4em;font-weight:500;display:flex}@media (width<=768px){body{padding:10px}}@media (width<=520px){body{padding:8px;padding-left:max(8px, env(safe-area-inset-left));padding-right:max(8px, env(safe-area-inset-right));padding-bottom:max(8px, env(safe-area-inset-bottom))}}body.user-kieryn{--primary-color:#9f7aea;--palette-gradient-end:#c084fc;--palette-complement:#7aea9f;--palette-light-tint:#f5f0ff;--palette-dark-accent:#6b21a8}body.user-connor{--primary-color:#c04a14;--palette-gradient-end:#00bcd4;--palette-complement:#e1a342;--palette-light-tint:#ebf8ff;--palette-dark-accent:#2c5282}:root{--primary-color:#2d2d2d;--primary-gradient:linear-gradient(150deg, #2d2d2d 0%, #2d2d2d 55%, #2d2d2d 100%);--palette-gradient-end:#2d2d2d;--palette-complement:#4a4a4a;--palette-light-tint:#e2e2e2;--palette-dark-accent:#2d2d2d;--shadow-sm:0 2px 8px #00000012;--shadow-md:0 5px 20px #0000001a;--shadow-lg:0 10px 40px #0003;--radius-lg:20px;--radius-md:12px;--radius-sm:8px;--text-primary:#2d3748;--text-secondary:#4a5568;--text-muted:#718096;--text-faint:#a0aec0;--card-bg:#fff;--card-bg-soft:#f7fafc;--card-border:#e2e8f0;--card-text:#2d3748;--card-text-secondary:#4a5568;--card-text-muted:#718096;--card-text-faint:#a0aec0;--color-border:#e2e8f0;--color-bg-soft:#f7fafc;--color-success:#48bb78;--color-success-dark:#38a169;--color-danger:#f56565;--color-danger-dark:#e53e3e;--transition-fast:all .15s;--transition-base:all .2s;--transition-slow:all .3s}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-shimmer{background:linear-gradient(90deg,#0000000f 25%,#0000001f 50%,#0000000f 75%) 0 0/200% 100%;animation:1.5s linear infinite skeleton-shimmer;display:block}.skeleton-card{background:#ffffff8c;border-radius:12px;flex-direction:column;gap:.55rem;padding:1rem 1.2rem;display:flex}.skeleton-list{flex-direction:column;gap:.75rem;padding:1rem;display:flex}.async-block-error,.async-block-empty{text-align:center;color:var(--text-secondary,#718096);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:2.5rem 1rem;display:flex}.async-block-error-icon,.async-block-empty-icon{font-size:2.2rem;line-height:1}.async-block-error-msg{max-width:320px;font-size:.95rem}.async-block-retry{background:var(--primary-color,#c04a14);color:var(--palette-on-primary,white);cursor:pointer;border:none;border-radius:8px;padding:.5rem 1.4rem;font-size:.9rem;font-weight:600;transition:opacity .15s}.async-block-retry:hover{opacity:.88}.auth-callback-btn{background:var(--primary-color,#c04a14);color:var(--palette-on-primary,white);cursor:pointer;border:none;border-radius:8px;margin-top:.5rem;padding:.5rem 1.4rem;font-size:.9rem;font-weight:600;transition:opacity .15s}.auth-callback-btn:hover{opacity:.88}.state-flag{aspect-ratio:3/2;background:#e8e8e8;border-radius:6px;width:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #00000014}.state-flag-img{object-fit:contain;width:100%;height:100%;display:block}.state-flag--missing{background:#d0d0d0}.pin-brand-logo{object-fit:contain;width:90%;max-height:220px;margin-bottom:8px;margin-left:auto;margin-right:auto;display:block}.pin-page{box-sizing:border-box;flex-direction:column;align-items:center;gap:20px;width:min(640px,100vw - 32px);max-height:calc(100vh - 32px);display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.pin-screen{background:var(--card-bg,white);border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-lg);box-sizing:border-box;width:min(500px,100vw - 32px);max-width:100%;padding:40px;position:relative}.state-callout-card{background:var(--card-bg,white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);box-sizing:border-box;width:min(640px,100vw - 32px);max-width:100%;padding:20px 24px}.state-callout{text-align:left;align-items:flex-start;gap:12px;display:flex}.state-callout-flag{flex-shrink:0;width:52px}.state-callout-body{min-width:0}.state-callout-title{color:var(--card-text,#2d3748);margin:0 0 2px;font-size:.9rem;font-weight:700}.state-callout-sub{color:var(--card-text-faint,#a0aec0);margin:0 0 6px;font-size:.75rem}.state-callout-fact{color:var(--card-text-secondary,#4a5568);margin:0 0 3px;font-size:.78rem;line-height:1.45}.state-callout-fact:last-child{margin-bottom:0}.pin-menu-wrap{position:absolute;bottom:14px;right:16px}.pin-menu-trigger{color:#cbd5e0;cursor:pointer;letter-spacing:2px;border:none;border-radius:6px;padding:4px 8px;font-size:1.4em;line-height:1;background:0 0!important;margin:0!important;transition:color .2s,background .2s!important;transform:none!important}.pin-menu-trigger:hover{color:var(--card-text-muted,#718096);filter:none!important;background:#f7fafc!important;transform:none!important}.pin-menu-flyout{background:var(--card-bg,white);border:1px solid var(--card-border,#e2e8f0);text-align:left;z-index:100;border-radius:10px;flex-direction:column;gap:6px;min-width:180px;padding:10px;display:flex;position:absolute;bottom:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000001f}.pin-menu-confirm-text{color:var(--card-text-secondary,#4a5568);text-align:center;margin:0 0 4px;font-size:.875em;font-weight:600}.pin-menu-btn{cursor:pointer;text-align:center;letter-spacing:normal;border-radius:7px;color:#4a5568!important;background:#f7fafc!important;border:1px solid #e2e8f0!important;margin:0!important;padding:8px 12px!important;font-size:.875em!important;font-weight:500!important;transition:background .15s!important;transform:none!important}.pin-menu-btn:hover{filter:none!important;background:#edf2f7!important;transform:none!important}.pin-menu-btn--danger{color:#e53e3e!important;border-color:#fed7d7!important}.pin-menu-btn--danger:hover{background:#fff5f5!important}.pin-menu-btn--masquerade{color:#c04a14!important;border-color:#c3dafe!important;font-weight:600!important}.pin-menu-btn--masquerade:hover{background:#ebf4ff!important}.pin-screen h1{color:var(--palette-accent-text,#c04a14);margin-bottom:10px}.pin-screen p{color:var(--card-text-muted,#666);margin-bottom:30px}.identity-buttons{flex-direction:column;justify-content:center;gap:15px;margin-bottom:20px;display:flex}.identity-buttons .kid-btn{color:#fff;cursor:pointer;letter-spacing:.02em;border:none;border-radius:25px;padding:14px 24px;font-size:1.05em;font-weight:600;transition:filter .2s,transform .15s}.identity-buttons .kid-btn:hover{filter:brightness(1.1);transform:translateY(-2px)}.identity-buttons button.parent-btn{background:var(--primary-gradient,linear-gradient(150deg, #3d1040 0%, #c04a14 55%, #f5a828 100%));color:#fff;cursor:pointer;border:none;border-radius:25px;margin-top:6px;padding:12px 24px;font-size:1em;transition:filter .2s,transform .15s}.identity-buttons button.parent-btn:hover{filter:brightness(1.1);transform:translateY(-2px)}.identity-buttons button.parent-btn--alt{background:#6b7280;margin-top:4px}.identity-buttons button.parent-btn--alt:hover{background:#4b5563}.pin-input{text-align:center;border:3px solid var(--primary-color,#c04a14);border-radius:var(--radius-sm);letter-spacing:10px;width:300px;max-width:100%;margin:0 auto 20px;padding:15px;font-size:2em;transition:border-color .2s}.pin-error{color:#e53e3e;margin-top:10px;font-weight:600}.pin-forgot-wrap{margin-top:14px}.pin-forgot-btn{cursor:pointer;text-underline-offset:3px;letter-spacing:normal;border-radius:6px;text-decoration:underline;color:#a0aec0!important;box-shadow:none!important;filter:none!important;background:0 0!important;border:none!important;margin:0!important;padding:4px 8px!important;font-size:.85em!important;font-weight:400!important;transition:color .2s!important;transform:none!important}.pin-forgot-btn:hover:not(:disabled){color:#718096!important;filter:none!important;transform:none!important}.pin-forgot-btn:disabled{opacity:.6;cursor:default}.pin-forgot-sent{color:#38a169;margin:0;font-size:.82em}.pin-forgot-err{color:#e53e3e!important}.teen-logout-area{flex-direction:column;align-items:center;gap:8px;margin-top:24px;display:flex}.teen-logout-btn{cursor:pointer;letter-spacing:normal;color:#a0aec0!important;background:0 0!important;border:1px solid #e2e8f0!important;border-radius:8px!important;margin:0!important;padding:7px 18px!important;font-size:.85em!important;font-weight:400!important;transition:background .15s,color .15s,border-color .15s!important;transform:none!important}.teen-logout-btn:hover{color:#e53e3e!important;filter:none!important;background:#fff5f5!important;border-color:#fed7d7!important;transform:none!important}.teen-masquerade-btn{margin-bottom:4px}.teen-logout-confirm-btns{justify-content:center;gap:8px;display:flex}@media (width<=520px){.pin-page{gap:14px}.pin-screen{border-radius:var(--radius-md);padding:28px 20px}.state-callout-card{border-radius:var(--radius-md);padding:16px 18px}}.pin-screen button{background:var(--primary-color,#c04a14);color:var(--palette-on-primary,white);border-radius:var(--radius-sm);cursor:pointer;border:none;margin:0 5px;padding:12px 24px;font-size:1em;font-weight:600;transition:filter .2s,transform .15s}.pin-screen button:hover{filter:brightness(1.1);transform:translateY(-2px)}.pin-screen button.back-btn{background:#718096}.pin-screen button.back-btn:hover{filter:none;background:#4a5568}.signin-card{background:var(--card-bg,white);text-align:center;box-sizing:border-box;border-radius:20px;width:min(420px,100vw - 32px);max-height:calc(100vh - 32px);padding:40px 36px 36px;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 10px 40px #0003}.signin-logo{margin-bottom:10px;font-size:2.6em;line-height:1}.signin-logo-img{object-fit:contain;width:90%;max-height:220px;margin-bottom:10px;margin-left:auto;margin-right:auto;display:block}.signin-title{color:var(--card-text,#2d3748);margin-bottom:6px;font-size:1.6em;font-weight:700}.signin-subtitle{color:var(--card-text-muted,#718096);margin-bottom:28px;font-size:.95em}.signin-options{flex-direction:column;gap:12px;display:flex}.signin-google-btn{background:var(--card-bg,white);color:#3c4043;cursor:pointer;border:2px solid #dadce0;border-radius:10px;justify-content:center;align-items:center;gap:10px;width:100%;padding:13px 20px;font-family:inherit;font-size:.97em;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.signin-google-btn:hover{background:#f8f9fa;border-color:#c6c6c6;box-shadow:0 2px 8px #0000001a}.signin-yahoo-btn{color:#fff;cursor:pointer;background:#6001d2;border:none;border-radius:10px;justify-content:center;align-items:center;gap:10px;width:100%;padding:13px 20px;font-family:inherit;font-size:.95em;font-weight:600;transition:background .15s,box-shadow .15s;display:flex}.signin-yahoo-btn:hover{background:#4e00ad;box-shadow:0 2px 8px #6001d259}.signin-yahoo-logo{border-radius:3px;flex-shrink:0;width:20px;height:20px}.signin-google-logo{flex-shrink:0;width:20px;height:20px}.signin-divider{color:var(--card-text-faint,#a0aec0);align-items:center;gap:10px;font-size:.85em;display:flex}.signin-divider:before,.signin-divider:after{content:"";background:#e2e8f0;flex:1;height:1px}.signin-email-btn{color:#fff;cursor:pointer;background:#718096;border:none;border-radius:10px;width:100%;padding:13px 20px;font-family:inherit;font-size:.97em;font-weight:600;transition:background .15s,transform .1s}.signin-email-btn:hover{background:#4a5568;transform:translateY(-1px)}.signin-form{text-align:left;flex-direction:column;gap:4px;display:flex}.signin-field{margin-bottom:14px}.signin-field label{color:var(--card-text-secondary,#4a5568);margin-bottom:5px;font-size:.875em;font-weight:600;display:block}.signin-field input{box-sizing:border-box;border:2px solid #e2e8f0;border-radius:10px;width:100%;padding:11px 14px;font-family:inherit;font-size:1em;transition:border-color .2s}.signin-field input:focus{border-color:var(--primary-color,#c04a14);outline:none}.signin-error{color:#e53e3e;text-align:center;margin:0 0 10px;font-size:.875em}.signin-submit-btn{background:var(--primary-gradient,linear-gradient(150deg, #3d1040 0%, #c04a14 55%, #f5a828 100%));color:#fff;cursor:pointer;border:none;border-radius:10px;width:100%;margin-top:4px;padding:13px;font-family:inherit;font-size:1em;font-weight:600;transition:opacity .2s,transform .1s}.signin-submit-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.signin-submit-btn:disabled{opacity:.6;cursor:not-allowed}.signin-back-link{color:var(--card-text-faint,#a0aec0);cursor:pointer;background:0 0;border:none;margin-top:18px;padding:4px 8px;font-family:inherit;font-size:.875em;transition:color .15s}.signin-back-link:hover{color:var(--card-text-muted,#718096)}@media (width<=480px){.signin-card{border-radius:16px;padding:32px 24px 28px}}.feedback-fab{cursor:pointer;z-index:900;opacity:.45;background:#0000004d;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.15em;line-height:1;transition:opacity .2s,transform .15s,background .2s;display:flex;position:fixed;bottom:20px;right:20px}.feedback-fab:hover{opacity:1;background:#0000008c;transform:scale(1.12)}.feedback-overlay{z-index:1000;background:#00000059;justify-content:flex-end;align-items:flex-end;padding:20px;display:flex;position:fixed;inset:0}.feedback-modal{background:var(--card-bg,white);border-radius:16px;flex-direction:column;gap:12px;width:320px;max-width:calc(100vw - 40px);padding:20px;animation:.15s ease-out feedback-slide-in;display:flex;box-shadow:0 8px 32px #00000040}@keyframes feedback-slide-in{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.feedback-header{justify-content:space-between;align-items:center;display:flex}.feedback-header h3{color:var(--card-text,#2d3748);margin:0;font-size:1.05em}.feedback-close{cursor:pointer;color:var(--card-text-faint,#a0aec0);background:0 0;border:none;align-items:center;padding:0;font-size:1.5em;line-height:1;display:flex}.feedback-close:hover{color:var(--card-text,#2d3748)}.feedback-meta{flex-wrap:wrap;gap:6px;display:flex}.feedback-pill{background:var(--card-bg-soft,#edf2f7);color:var(--card-text-secondary,#4a5568);border-radius:20px;padding:3px 10px;font-size:.78em}.feedback-textarea{border:1px solid var(--card-border,#e2e8f0);width:100%;color:var(--card-text,#2d3748);resize:vertical;box-sizing:border-box;background:var(--card-bg-soft,#f7fafc);border-radius:8px;padding:10px;font-family:inherit;font-size:.9em;transition:border-color .2s}.feedback-textarea:focus{border-color:var(--primary-color,#c04a14);background:var(--card-bg,white);outline:none}.feedback-textarea:disabled{opacity:.6}.feedback-sent{text-align:center;color:#276749;padding:16px 0;font-size:1em}.feedback-error{color:#e53e3e;margin:0;font-size:.85em}.feedback-actions{justify-content:flex-end;gap:8px;display:flex}.feedback-cancel-btn{border:1px solid var(--card-border,#e2e8f0);cursor:pointer;color:var(--card-text-muted,#718096);background:0 0;border-radius:8px;padding:8px 16px;font-size:.9em;transition:background .15s}.feedback-cancel-btn:hover{background:var(--card-bg-soft,#f7fafc)}.feedback-submit-btn{background:var(--primary-color,#c04a14);color:var(--palette-on-primary,white);cursor:pointer;border:none;border-radius:8px;padding:8px 18px;font-size:.9em;font-weight:600;transition:background .15s}.feedback-submit-btn:hover{background:#5a67d8}.feedback-submit-btn:disabled{opacity:.6;cursor:not-allowed}
