:root{--text:#3a3a3a;--text-h:#111;--bg:#fff;--border:#ddd;--row-alt:#ebebeb;--accent:#2f6f4f;--accent-contrast:#fff;--danger:#b3261e;--warn:#8a5a00;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font:15px/1.45 system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#d7d7d7;--text-h:#f5f5f5;--bg:#17181c;--border:#333;--row-alt:#26282f;--accent:#5bbf8f;--accent-contrast:#0b0f0d}}*{box-sizing:border-box}body{margin:0}.app{max-width:1200px;margin:0 auto;padding:0 24px 48px}.auth-screen{text-align:center;max-width:420px;margin:15vh auto 0;padding:0 24px}.auth-form{gap:8px;margin-top:16px;display:flex}.auth-form input{font:inherit;border:1px solid var(--border);border-radius:6px;flex:1;padding:8px 10px}.auth-bar{opacity:.8;border-bottom:1px solid var(--border);justify-content:flex-end;align-items:center;gap:12px;padding:8px 24px;font-size:13px;display:flex}.app-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;padding:24px 0;display:flex}h1{color:var(--text-h);margin:0;font-size:20px}h2{color:var(--text-h);margin:0;font-size:18px}nav{gap:8px;display:flex}button{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 12px}button.nav.active,button.tab.active{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}button.secondary{opacity:.75}button:disabled{opacity:.4;cursor:not-allowed}main{padding-top:20px}.screen-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.toggle{align-items:center;gap:6px;font-size:14px;display:flex}.tabs{gap:6px;display:flex}.role-subtabs{margin-bottom:20px}.table-picker{flex-wrap:wrap;margin-bottom:16px}.table-scroll{overflow-x:auto}.hint{opacity:.7;margin:0;font-size:13px}.search{font:inherit;border:1px solid var(--border);border-radius:6px;min-width:280px;padding:6px 10px}.roster-group{border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:8px;margin-bottom:20px;padding:14px 16px}.roster-group h3{color:var(--text-h);margin:0 0 4px;font-size:15px}.family-guardians{border-bottom:1px solid var(--border);margin-bottom:10px;padding-bottom:10px}.family-table{table-layout:fixed;width:100%}.family-table th:first-child,.family-table td:first-child{width:24%}.family-table th:nth-child(2),.family-table td:nth-child(2){width:58%}.family-table th:nth-child(3),.family-table td:nth-child(3){width:18%}.family-table td:first-child,.family-table td:nth-child(2){white-space:normal}.roster-group-meta{opacity:.85;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:13px;display:flex}.button-like{font:inherit;border:1px solid var(--border);color:var(--text);white-space:nowrap;border-radius:6px;padding:5px 10px;font-size:13px;text-decoration:none}.cell-readonly{opacity:.55;font-family:ui-monospace,Consolas,monospace;font-size:12px}.year-picker{border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:20px;padding:12px;display:flex}.year-picker label{flex-direction:column;gap:4px;font-size:13px;display:flex}.year-picker select,.year-picker input{font:inherit;border:1px solid var(--border);border-radius:4px;padding:4px 6px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 10px}tbody tr:nth-child(2n){background:var(--row-alt)}.status-paid{color:var(--accent);font-weight:600}.status-partial{color:var(--warn);font-weight:600}.status-unpaid{color:var(--danger);font-weight:600}.inline-form{align-items:center;gap:6px;display:inline-flex}.inline-form input{width:90px;font:inherit;border:1px solid var(--border);border-radius:4px;padding:4px 6px}.error{color:var(--danger)}.pending-bar{border:1px solid var(--warn);border-radius:6px;align-items:center;gap:10px;margin-bottom:8px;padding:8px 10px;font-size:13px;display:flex}.pending-drop{opacity:.7;text-decoration:line-through}.pending-drop em,.pending-add em{color:var(--warn);font-size:12px;font-style:normal}.pending-add{color:var(--warn)}.wizard-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:10px;display:flex}.wizard-row:last-child{border-bottom:none}.wizard-row input,.wizard-row select{font:inherit;border:1px solid var(--border);border-radius:4px;flex:140px;min-width:100px;padding:6px 8px}.wizard-row select{flex:220px}.class-picker-row{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:8px;margin-top:4px;display:flex}.dup-warning{color:var(--warn);flex-basis:100%;margin:-4px 0 0}.unverified-panel{border-left:4px solid var(--warn)}.unverified-panel h3{color:var(--warn);font-size:14px;font-weight:400}.unverified-panel .wizard-row{justify-content:space-between}.unverified-tag{color:var(--warn);font-size:12px}.transfer-tag{color:var(--accent);font-size:12px}.family-balance{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}.balance-breakdown{flex-basis:100%;margin-top:4px}.balance-breakdown div{margin-bottom:2px}.pay-form{border:1px solid var(--border);border-radius:6px;flex-basis:100%;margin-top:8px;padding:10px}.mock-note{color:var(--warn);margin:0 0 8px}.demo-banner{text-align:center;background:var(--warn);color:var(--bg);justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;display:flex}
