*,:before,:after{box-sizing:border-box}:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1400px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}#center{text-align:center;flex-direction:column;flex-grow:1;place-content:center;place-items:center;gap:16px;min-height:100vh;display:flex}#auth-form{text-align:left;flex-direction:column;gap:12px;width:280px;display:flex}#auth-form label{color:var(--text);font-size:14px}#auth-form input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:6px;padding:8px 10px}#auth-form input:focus{outline:2px solid var(--accent-border);outline-offset:1px}#auth-form button[type=submit]{font:inherit;border:1px solid var(--accent);background:var(--accent-bg);color:var(--text-h);cursor:pointer;border-radius:6px;margin-top:4px;padding:10px}#auth-form button[type=submit]:disabled{opacity:.6;cursor:default}.form-error{color:#d33;font-size:14px}.form-switch{text-align:center;font-size:14px}.link-button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}#role-select{flex-direction:column;flex-grow:1;align-items:center;gap:6px;padding:40px 20px 24px;display:flex}#role-select .mascot-badge{font-size:48px;line-height:1}#role-select .subtitle{color:var(--text);margin-bottom:24px}#role-select #logout-link{margin-top:32px}.role-tiles{flex-wrap:wrap;justify-content:center;gap:20px;max-width:640px;display:flex}.role-tile{background:var(--bg);border:1px solid var(--border);border-bottom:4px solid var(--tile-accent,var(--accent));width:180px;box-shadow:var(--shadow);cursor:pointer;font:inherit;color:var(--text-h);border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:24px 16px;display:flex}.role-tile-icon{font-size:40px}.role-tile-name{font-size:18px;font-weight:600}.role-tile-sub{color:var(--text);font-size:14px}.role-tile-cta{background:var(--tile-accent,var(--accent));color:#fff;border-radius:999px;margin-top:8px;padding:8px 20px;font-size:14px;font-weight:600}#landing{flex-direction:column;flex-grow:1;align-items:center;gap:6px;padding:56px 20px 40px;display:flex}#landing .mascot-badge{font-size:48px;line-height:1}#landing .subtitle{color:var(--text);max-width:480px;margin-bottom:24px}.landing-cta{gap:12px;margin-bottom:48px;display:flex}.landing-cta-primary,.landing-cta-secondary{border-radius:999px;padding:10px 28px;font-size:16px;font-weight:600;text-decoration:none}.landing-cta-primary{background:var(--accent);color:#fff}.landing-cta-secondary{background:var(--accent-bg);color:var(--text-h);border:1px solid var(--accent-border)}.feature-grid{flex-wrap:wrap;justify-content:center;gap:20px;max-width:800px;display:flex}.feature-card{background:var(--bg);border:1px solid var(--border);width:220px;box-shadow:var(--shadow);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:28px 20px;display:flex}.feature-card-icon{font-size:36px}.feature-card h2{margin:0}.feature-card p{color:var(--text);font-size:15px;line-height:140%}.landing-footnote{color:var(--text);max-width:480px;margin-top:48px;font-size:14px}.pin-pad-overlay{flex-grow:1;place-content:center;place-items:center;min-height:100vh;padding:20px;display:flex}.pin-pad{background:var(--bg);border:1px solid var(--border);width:100%;max-width:320px;box-shadow:var(--shadow);text-align:center;border-radius:20px;flex-direction:column;align-items:center;gap:10px;padding:32px 24px;display:flex}.pin-pad h2{margin:0}.pin-pad .subtitle{color:var(--text);margin-bottom:8px;font-size:14px}.pin-dots{gap:10px;margin:8px 0;display:flex}.pin-dot{border:1px solid var(--border);background:0 0;border-radius:50%;width:12px;height:12px}.pin-dot.filled{background:var(--accent);border-color:var(--accent)}.pin-keys{grid-template-columns:repeat(3,1fr);gap:10px;width:100%;margin-top:8px;display:grid}.pin-keys button{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:10px;padding:16px 0;font-weight:600}.pin-keys button:disabled{opacity:.4;cursor:default}#kid-view{text-align:left;flex-direction:column;gap:16px;width:100%;max-width:960px;margin:0 auto;padding:24px 20px 40px;display:flex}.kid-view-topbar{align-items:center;gap:10px;display:flex}.kid-view-topbar h1{flex-grow:1;margin:0;font-size:22px}.kid-view-topbar .mascot-badge{font-size:28px}.kid-summary-card{background:var(--bg);border:1px solid var(--border);border-left:6px solid var(--accent);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:16px;padding:20px;display:flex}.kid-summary-head{align-items:center;gap:14px;display:flex}.kid-summary-mascot{font-size:40px}.kid-summary-head h2{margin:0}.kid-summary-stats{gap:32px;display:flex}.kid-summary-value{color:var(--text-h);font-size:22px;font-weight:700}.kid-summary-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text);font-size:12px}.week-strip{align-items:center;gap:4px;display:flex}.week-nav{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:18px}.week-day{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;cursor:pointer;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:8px 2px;display:flex}.week-day-label{letter-spacing:.05em;color:var(--text);font-size:10px}.week-day-number{font-size:15px;font-weight:700}.week-day-dots{gap:2px;min-height:6px;display:flex}.week-dot{border-radius:50%;width:5px;height:5px}.week-day.today{border-color:var(--accent)}.week-day.selected{background:#2f6d4f;border-color:#2f6d4f}.week-day.selected .week-day-label,.week-day.selected .week-day-number{color:#fff}.trail-heading{letter-spacing:.08em;text-transform:uppercase;color:var(--text);margin:4px 0 0;font-size:13px}.trail-list{flex-direction:column;gap:12px;display:flex}.trail-card{background:var(--bg);border:1px solid var(--border);border-left:5px solid var(--card-accent,var(--accent));box-shadow:var(--shadow);border-radius:14px;align-items:center;gap:12px;padding:14px 16px;display:flex}.trail-checkbox{border:2px solid var(--border);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;width:26px;height:26px}.trail-checkbox.checked{background:var(--card-accent,var(--accent));border-color:var(--card-accent,var(--accent))}.trail-icon{flex-shrink:0;font-size:22px}.trail-body{flex-direction:column;gap:2px;min-width:0;display:flex}.trail-time{color:var(--text);font-size:12px}.trail-title{color:var(--text-h);font-weight:600}.trail-title.done{color:var(--text);text-decoration:line-through}.trail-sub{color:var(--text);font-size:13px}.trail-pay{background:var(--accent-bg);color:var(--text-h);border-radius:999px;align-self:flex-start;margin-top:4px;padding:2px 10px;font-size:12px;font-weight:600}#parent-mode{text-align:left;flex-direction:column;gap:16px;width:100%;max-width:960px;margin:0 auto;padding:24px 20px 40px;display:flex}.parent-topbar{align-items:center;gap:10px;display:flex}.parent-topbar h1{flex-grow:1;margin:0;font-size:22px}.parent-topbar .mascot-badge{font-size:28px}.parent-topbar-badge{letter-spacing:.04em;text-transform:uppercase;background:var(--accent-bg);color:var(--text-h);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.account-menu-wrap{flex-shrink:0;position:relative}.avatar-button{border:1px solid var(--border);background:var(--accent-bg);width:32px;height:32px;color:var(--text-h);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:16px;display:flex}.account-menu{background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow);z-index:20;white-space:nowrap;border-radius:10px;flex-direction:column;gap:2px;margin-top:6px;padding:6px;display:flex;position:absolute;top:100%;right:0}.account-menu .link-button{text-align:left;border-radius:6px;padding:8px 12px;text-decoration:none}.account-menu .link-button:hover{background:var(--accent-bg)}.parent-tabs{border-bottom:1px solid var(--border);gap:6px;display:flex}.parent-tab{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;padding:10px 16px;font-weight:600;text-decoration:none}.parent-tab.selected{color:var(--text-h);border-bottom-color:var(--accent)}.parent-tab-content{flex-direction:column;gap:16px;display:flex}.kid-filter-pills{flex-wrap:wrap;gap:8px;display:flex}.kid-filter-pill{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600}.kid-filter-pill.selected{background:var(--accent);border-color:var(--accent);color:#fff}.modal-overlay{z-index:100;background:#00000073;place-content:center;place-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg);border:1px solid var(--border);width:100%;max-width:420px;max-height:90vh;box-shadow:var(--shadow);border-radius:16px;flex-direction:column;display:flex;overflow-y:auto}.modal-card.modal-wide{max-width:640px}.modal-header{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:16px 20px;display:flex}.modal-header h2{flex-grow:1;margin:0;font-size:18px}.modal-close{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;font-size:16px}.modal-body{padding:20px}#parent-schedule{flex-direction:column;gap:20px;display:flex}.parent-schedule-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.parent-schedule-actions{gap:8px;display:flex}.parent-schedule-actions button{font:inherit;border:1px solid var(--accent);background:var(--accent-bg);color:var(--text-h);cursor:pointer;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600}.parent-trail-card{align-items:flex-start;padding-right:84px;position:relative}.trail-card-actions{flex-direction:column;align-items:flex-end;gap:4px;display:flex;position:absolute;top:12px;right:12px}.icon-button{cursor:pointer;background:0 0;border:none;padding:2px;font-size:14px}.series-action-backdrop{cursor:default;z-index:5;background:0 0;border:none;padding:0;position:fixed;inset:0}.series-action-menu{background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow);z-index:6;white-space:nowrap;border-radius:8px;flex-direction:column;align-items:flex-start;gap:6px;margin-top:4px;padding:10px 14px;display:flex;position:absolute;top:100%;right:0}.badge-needs-grade,.badge-series{background:var(--accent-bg);color:var(--text-h);border-radius:999px;margin-left:8px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.schedule-form{text-align:left;flex-direction:column;gap:14px;display:flex}.schedule-form label{color:var(--text);flex-direction:column;gap:6px;font-size:14px;display:flex}.schedule-form input,.schedule-form textarea{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:6px;padding:8px 10px}.schedule-form .checkbox-label{flex-direction:row;align-items:center;gap:8px}.schedule-form .checkbox-label input{width:auto}.category-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.category-tile{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;font-size:12px;display:flex}.category-tile span{font-size:18px}.category-tile.selected{border-color:var(--accent);background:var(--accent-bg);color:var(--text-h)}.kid-select-pills{flex-wrap:wrap;gap:8px;display:flex}.kid-select-pill{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600}.kid-select-pill.selected{background:var(--accent);border-color:var(--accent);color:#fff}.repeat-section{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;padding:12px;display:flex}.repeat-fields{flex-direction:column;gap:12px;display:flex}.weekday-picker{gap:6px;display:flex}.weekday-pill{font:inherit;border:1px solid var(--border);background:var(--bg);width:34px;height:34px;color:var(--text);cursor:pointer;border-radius:50%;font-size:12px;font-weight:600}.weekday-pill.selected{background:var(--accent);border-color:var(--accent);color:#fff}.repeat-range{gap:12px;display:flex}.repeat-range label{flex:1}.extra-date-input{gap:8px;display:flex}.extra-date-input button{font:inherit;border:1px solid var(--border);background:var(--bg);cursor:pointer;border-radius:6px;padding:6px 12px}.extra-date-list{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;font-size:13px;list-style:none;display:flex}.extra-date-list li{align-items:center;gap:10px;display:flex}.form-actions{justify-content:flex-end;gap:12px;margin-top:4px;display:flex}.form-actions button[type=submit]{font:inherit;border:1px solid var(--accent);background:var(--accent-bg);color:var(--text-h);cursor:pointer;border-radius:6px;padding:8px 20px}.form-actions button[type=submit]:disabled{opacity:.6;cursor:default}.grade-input{flex-direction:column;align-self:flex-start;margin-top:4px;display:inline-flex}.grade-input input{font:inherit;border:1px solid var(--border);background:var(--bg);width:84px;color:var(--text-h);border-radius:6px;padding:4px 8px;font-size:13px}#parent-grades{flex-direction:column;gap:20px;display:flex}.parent-grades-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.month-nav{align-items:center;gap:8px;font-weight:600;display:flex}.month-average-card{background:var(--bg);border:1px solid var(--border);border-left:6px solid var(--accent);box-shadow:var(--shadow);border-radius:16px;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.month-average-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text);font-size:13px}.month-average-value{color:var(--text-h);font-size:22px;font-weight:700}.grade-subject-list{flex-direction:column;gap:12px;display:flex}.grade-subject-card{background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:16px 20px}.grade-subject-header{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.grade-subject-header h3{flex-grow:1;margin:0;font-size:16px}.grade-average-pill{background:var(--accent-bg);color:var(--text-h);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.grade-count{color:var(--text);font-size:12px}.grade-entry-list{flex-direction:column;gap:8px;display:flex}.grade-entry-row{align-items:center;gap:12px;font-size:14px;display:flex}.grade-entry-date{color:var(--text);flex-shrink:0;width:84px;font-size:12px}.grade-entry-title{flex-grow:1}.trail-offer-actions{flex-direction:column;flex-shrink:0;gap:4px;display:flex}.offer-accept,.offer-decline{cursor:pointer;color:#fff;border:none;border-radius:50%;width:26px;height:26px;font-weight:700}.offer-accept{background:#2f6d4f}.offer-decline{background:#b5442f}.badge-offer{background:var(--accent-bg);color:var(--text-h);border-radius:999px;margin-left:8px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}#parent-kids-money{flex-direction:column;gap:20px;display:flex}.kids-money-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.kids-money-actions{flex-wrap:wrap;gap:8px;display:flex}.kids-money-actions button{font:inherit;border:1px solid var(--accent);background:var(--accent-bg);color:var(--text-h);cursor:pointer;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600}.school-name-badge{background:var(--accent-bg);color:var(--text-h);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:600}.invite-code{letter-spacing:4px;text-align:center;background:var(--accent-bg);color:var(--text-h);border-radius:8px;padding:12px;font-family:monospace;font-size:28px;font-weight:700}.kid-money-cards{flex-direction:column;gap:16px;display:flex}.kid-money-card{background:var(--bg);border:1px solid var(--border);border-left:6px solid var(--accent);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:14px;padding:20px;display:flex}.kid-money-header{align-items:center;gap:14px;display:flex}.kid-money-title{flex-grow:1}.kid-money-title h2{margin:0}.kid-money-section{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:10px;display:flex}.kid-money-section-header{justify-content:space-between;align-items:center;display:flex}.kid-money-section-header h3,.kid-money-section>h3{margin:0;font-size:15px}.ledger-adjust-row{flex-wrap:wrap;gap:8px;display:flex}.ledger-adjust-row input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:6px;padding:6px 10px}.ledger-adjust-row input[type=number]{width:100px}.ledger-adjust-row button{font:inherit;border:1px solid var(--border);background:var(--bg);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:13px}.goal-row{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding:10px 0;display:flex}.goal-row:last-child{border-bottom:none}.goal-row-header{align-items:center;gap:10px;display:flex}.goal-name{flex-grow:1;font-weight:600}.goal-progress-text{color:var(--text);font-size:13px}.goal-progress-bar{background:var(--border);border-radius:999px;height:8px;overflow:hidden}.goal-progress-fill{background:var(--accent);height:100%}.goal-adjust-row{gap:8px;display:flex}.goal-adjust-row input{font:inherit;border:1px solid var(--border);background:var(--bg);width:90px;color:var(--text-h);border-radius:6px;padding:6px 10px}.goal-adjust-row button{font:inherit;border:1px solid var(--border);background:var(--bg);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:13px}.activity-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.activity-row{gap:12px;font-size:14px;display:flex}.activity-amount{color:#2f6d4f;flex-shrink:0;width:72px;font-weight:600}.activity-amount.negative{color:#b5442f}.activity-reason{color:var(--text)}.mascot-picker{flex-wrap:wrap;gap:8px;display:flex}.mascot-option{border:1px solid var(--border);background:var(--bg);cursor:pointer;border-radius:10px;width:44px;height:44px;font-size:22px}.mascot-option.selected{border-color:var(--accent);background:var(--accent-bg)}.pin-control-section{border-top:1px solid var(--border);margin-top:20px;padding-top:16px}.pin-control-section h3{margin:0 0 4px;font-size:15px}.pin-control-form{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.pin-control-form input{font:inherit;border:1px solid var(--border);background:var(--bg);width:140px;color:var(--text-h);border-radius:6px;padding:8px 10px}.pin-control-form button{font:inherit;border:1px solid var(--border);background:var(--bg);cursor:pointer;border-radius:6px;padding:8px 14px;font-size:13px}
