:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1a1a2e;background:#f5f6fa}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh}.layout{display:flex;min-height:100vh}.sidebar{width:220px;background:#1a1a2e;color:#fff;display:flex;flex-direction:column;padding:1.5rem 1rem;gap:.5rem}.sidebar h2{font-size:1.25rem;margin-bottom:1.5rem;letter-spacing:.05em}.sidebar-section-title{margin-top:-.25rem;margin-bottom:.25rem;padding:0 .25rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8f93c8}.sidebar a{color:#a0a0c0;text-decoration:none;padding:.5rem .75rem;border-radius:6px;transition:background .15s}.sidebar a:hover,.sidebar a.active{background:#2a2a4e;color:#fff}.sidebar button{margin-top:auto;background:transparent;border:1px solid #555;color:#ccc;padding:.5rem;border-radius:6px;cursor:pointer}.sidebar button:hover{background:#2a2a4e}.sidebar-user-email{margin-top:.75rem;margin-bottom:.25rem;padding:0 .25rem;color:#9ea3d6;font-size:.78rem;word-break:break-word}.main-content{flex:1;padding:2rem;overflow-y:auto}.sidebar-toggle{display:none;position:fixed;top:.75rem;left:.75rem;z-index:1100;background:#1a1a2e;color:#fff;border:none;border-radius:8px;font-size:1.5rem;width:42px;height:42px;cursor:pointer;line-height:1;box-shadow:0 2px 8px #00000040}.sidebar-overlay{display:none}@media(max-width:768px){.layout{flex-direction:column}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:1050;width:240px;transform:translate(-100%);transition:transform .25s ease}.sidebar.sidebar-open{transform:translate(0)}.sidebar-toggle{display:flex;align-items:center;justify-content:center}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background:#0006}.sidebar-overlay.sidebar-open{display:block}.main-content{padding:3.5rem .75rem 1rem}}.language-switcher{display:inline-flex;gap:.25rem}.language-switcher button{margin-top:0;padding:.25rem .6rem;font-size:.8rem;font-weight:600;letter-spacing:.05em;border-radius:6px;cursor:pointer}.sidebar .language-switcher-sidebar{margin-top:auto;padding:0 .25rem}.sidebar .language-switcher button{margin-top:0;background:transparent;border:1px solid #555;color:#a0a0c0}.sidebar .language-switcher button.language-active{background:#2a2a4e;color:#fff;border-color:#8f93c8}.sidebar .sidebar-sign-out{margin-top:.25rem}.login-card .language-switcher-login{display:flex;justify-content:flex-end;margin-bottom:.5rem}.login-card .language-switcher button{padding:.25rem .6rem;background:transparent;border:1px solid #ccc;color:#555;font-size:.8rem}.login-card .language-switcher button:hover{background:#f0f0f5}.login-card .language-switcher button.language-active{background:#1a1a2e;border-color:#1a1a2e;color:#fff}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e)}.login-card{background:#fff;border-radius:12px;padding:2.5rem 2rem;width:100%;max-width:380px;box-shadow:0 8px 30px #0003}.login-card h1{text-align:center;margin-bottom:1.5rem;color:#1a1a2e}.login-card form{display:flex;flex-direction:column;gap:1rem}.login-card input{padding:.65rem .85rem;border:1px solid #ccc;border-radius:6px;font-size:1rem}.login-card button{padding:.7rem;border:none;border-radius:6px;background:#1a1a2e;color:#fff;font-size:1rem;cursor:pointer}.login-card button:hover{background:#2a2a4e}.login-card .error{color:#e74c3c;font-size:.85rem;text-align:center}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;margin-bottom:2rem}.card{background:#fff;border-radius:10px;padding:1.25rem;box-shadow:0 2px 8px #0000000f}.card h3{font-size:.85rem;text-transform:uppercase;color:#888;margin-bottom:.5rem}.card .value{font-size:1.75rem;font-weight:700}.card-clickable{cursor:pointer;transition:transform .15s,box-shadow .15s;position:relative}.card-clickable:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001f}.card-clickable:active{transform:translateY(0)}.card-active{border:2px solid #1a73e8;background:#e8f0fe;box-shadow:0 2px 12px #1a73e82e}.card-active h3,.card-active .card-arrow{color:#1a73e8}.card-arrow{position:absolute;top:50%;right:1rem;transform:translateY(-50%);font-size:1.5rem;color:#bbb;font-weight:300}.card-closed{background:#f0f9f0;border:1px solid #d4edda}.card-badge{position:absolute;top:.5rem;right:.5rem;background:#6c757d;color:#fff;padding:.2rem .5rem;border-radius:4px;font-size:.7rem;text-transform:uppercase;font-weight:600}.summary-cards{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.summary-card{flex:1;min-width:140px;background:#fff;border-radius:8px;padding:.75rem 1rem;box-shadow:0 1px 4px #0000000f;display:flex;flex-direction:column;gap:.25rem}.summary-label{font-size:.75rem;text-transform:uppercase;color:#888}.summary-value{font-size:1.25rem;font-weight:700}.summary-card-red{background:#fef2f2;border-left:3px solid #e74c3c}.summary-card-green{background:#f0f9f0;border-left:3px solid #27ae60}.program-row-green{background:#f0f9f0}.remaining-due .summary-value{color:#e74c3c}.remaining-ok{border-left:3px solid #27ae60}.remaining-ok .summary-value{color:#27ae60}@media(max-width:768px){.card-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.25rem}.card{padding:.85rem}.card h3{font-size:.72rem}.card .value{font-size:1.25rem}.card-arrow{right:.5rem;font-size:1.2rem}.summary-cards{gap:.5rem}.summary-card{min-width:0;flex:1 1 calc(50% - .5rem);padding:.5rem .7rem}.summary-label{font-size:.68rem}.summary-value{font-size:1rem}}@media(max-width:400px){.card-grid{grid-template-columns:1fr}.summary-card{flex:1 1 100%}}.expense-form{margin-top:1rem;padding:1.25rem;background:#fff;border-radius:10px;box-shadow:0 2px 8px #0000000f;display:flex;flex-direction:column;gap:1rem}.parent-kid-switcher{margin-bottom:1.25rem;max-width:22rem}.form-row{display:flex;flex-direction:column;gap:.35rem}.form-row label{font-size:.8rem;font-weight:600;text-transform:uppercase;color:#666}.form-row input,.form-row select{padding:.55rem .75rem;font-size:.95rem;border:1.5px solid #d0d0e0;border-radius:8px;background:#fff;color:#1a1a2e}.form-row input:focus,.form-row select:focus{outline:none;border-color:#1a73e8;box-shadow:0 0 0 3px #1a73e826}.form-row input[aria-invalid=true]{border-color:#c62828;box-shadow:0 0 0 3px #c628281a}.form-inline-error{margin:0;color:#c62828;font-size:.8rem}.toggle-group{display:flex;gap:0;border-radius:8px;overflow:hidden;border:1.5px solid #d0d0e0;width:fit-content}.toggle-btn{padding:.45rem 1rem;font-size:.85rem;font-weight:600;border:none;background:#f5f6fa;color:#666;cursor:pointer;transition:background .15s,color .15s}.toggle-btn:not(:last-child){border-right:1.5px solid #d0d0e0}.toggle-active{background:#1a73e8;color:#fff}.expense-submit{padding:.6rem 1.5rem;font-size:.95rem;font-weight:700;border:none;border-radius:8px;background:#e74c3c;color:#fff;cursor:pointer;transition:background .15s,box-shadow .15s;align-self:flex-start}.expense-submit:hover:not(:disabled){background:#c0392b;box-shadow:0 2px 8px #e74c3c4d}.expense-submit-primary{padding:.62rem 1.05rem;font-size:.92rem;min-height:0;border-radius:8px}.expense-submit:disabled{opacity:.5;cursor:not-allowed}.show-more-btn{display:block;margin:1rem auto 0;padding:.5rem 1.6rem;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:1px solid #ced4da;border-radius:20px;font-size:.82rem;font-weight:600;color:#495057;cursor:pointer;letter-spacing:.03em;transition:all .2s ease;box-shadow:0 1px 3px #0000000f}.show-more-btn:hover{background:linear-gradient(135deg,#e9ecef,#dee2e6);color:#1a73e8;border-color:#adb5bd;box-shadow:0 2px 6px #0000001a;transform:translateY(-1px)}.show-more-btn:active{transform:translateY(0);box-shadow:0 1px 2px #00000014}.archived-banner{background:#fff3cd;border:1px solid #ffc107;border-radius:6px;padding:10px 16px;margin-bottom:12px;color:#856404;font-size:.95em}@media(max-width:768px){.expense-form{padding:.85rem}.expense-submit{width:100%;text-align:center}}table{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 8px #0000000f}th,td{text-align:left;padding:.75rem 1rem}th{background:#f0f0f5;font-size:.8rem;text-transform:uppercase;color:#666}tr:not(:last-child) td{border-bottom:1px solid #eee}.badge-confirmed{background:#e8f5e9;color:#2e7d32}.confirm-btn{padding:.25rem .75rem;font-size:.8rem;font-weight:600;border:1.5px solid #f9a825;border-radius:6px;background:#fff8e1;color:#e65100;cursor:pointer;transition:background .15s,box-shadow .15s}.confirm-btn:hover{background:#fff3c4;box-shadow:0 1px 4px #f9a8254d}.row-pending{background:#fffde7}.sub-payment-row td{padding-top:.35rem!important;padding-bottom:.35rem!important;font-size:.85rem;color:#666}.sub-payment-indent{padding-left:2rem!important}.clickable-row{cursor:pointer;transition:background .12s}.clickable-row:hover{background:#f5f6fa}.clickable-row.row-selected{background:#e8f0fe}.kid-name-link{color:#1a73e8;font-weight:600}.cross-link{color:#1a73e8;cursor:pointer;text-decoration:underline;text-decoration-style:dotted}.cross-link:hover{text-decoration-style:solid}.row-due{background:#fff8f0}.row-opted-out{background:#f9f9f9;opacity:.7}.row-closed{opacity:.55}.opt-btn{padding:.25rem .65rem;border-radius:5px;font-size:.75rem;font-weight:600;cursor:pointer;border:1px solid;transition:background .15s}.opt-btn-out{background:#fff;color:#e74c3c;border-color:#e74c3c}.opt-btn-out:hover{background:#fce4ec}.opt-btn-in{background:#fff;color:#27ae60;border-color:#27ae60}.opt-btn-in:hover{background:#e8f5e9}.program-kid-payments-table{border-collapse:separate;border-spacing:0 6px;background:transparent;box-shadow:none}.program-kid-payments-table thead th{background:#f0f0f5}.program-kid-payments-table tbody tr{background:#fff}.program-kid-payments-table tbody tr:nth-child(2n):not(.kid-detail-row){background:#fafbfd}.program-kid-payments-table tbody tr:not(.kid-detail-row) td{border-top:1px solid #e3e8f0;border-bottom:1px solid #e3e8f0}.program-kid-payments-table tbody tr:not(.kid-detail-row) td:first-child{border-left:1px solid #e3e8f0;border-radius:8px 0 0 8px}.program-kid-payments-table tbody tr:not(.kid-detail-row) td:last-child{border-right:1px solid #e3e8f0;border-radius:0 8px 8px 0}.program-kid-payments-table tbody tr:not(.kid-detail-row):hover td{background:#f6f9ff}@media(max-width:768px){table{display:block;border-radius:0;box-shadow:none;background:transparent}thead{display:none}tbody{display:flex;flex-direction:column;gap:.6rem}tr{display:flex;flex-wrap:wrap;background:#fff;border-radius:10px;padding:.75rem;box-shadow:0 1px 5px #00000012;gap:.15rem 0;align-items:center}td{display:flex;align-items:center;padding:.2rem 0!important;border-bottom:none!important;font-size:.85rem;white-space:normal;width:100%}td[data-label]:before{content:attr(data-label);font-size:.7rem;font-weight:700;text-transform:uppercase;color:#888;min-width:5.5rem;flex-shrink:0}td.mobile-arrow{display:none}td:empty{display:none}th,td{font-size:.85rem}tr.kid-detail-row{padding:0;box-shadow:none;background:transparent}tr.kid-detail-row td{padding:0!important}.sub-payment-row{background:#f9f9fc!important;margin-left:.5rem;border-left:3px solid #ddd}.program-kid-payments-table{border-spacing:0 10px}.program-kid-payments-table tbody tr:not(.kid-detail-row){border:1px solid #d9dfeb;border-radius:10px;box-shadow:0 1px 3px #0000000d;background:#fff}.program-kid-payments-table tbody tr:not(.kid-detail-row) td{border:none!important}.sub-payment-indent{padding-left:0!important}}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.dashboard-header h1{font-size:1.5rem}.dashboard-header p{color:#666;margin-top:.25rem}.dashboard-header-actions{display:flex;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.class-selector{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.class-selector label{font-size:.85rem;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.class-selector select{flex:1;max-width:400px;padding:.5rem .75rem;font-size:.95rem;border:1.5px solid #d0d0e0;border-radius:8px;background:#fff;color:#1a1a2e;cursor:pointer;transition:border-color .15s,box-shadow .15s}.class-selector select:focus{outline:none;border-color:#1a73e8;box-shadow:0 0 0 3px #1a73e826}.detail-panel{background:#fff;border-radius:10px;padding:1.25rem;box-shadow:0 2px 8px #0000000f;margin-bottom:2rem;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.detail-header h2{font-size:1.15rem}.detail-header-actions{display:flex;align-items:center;gap:.5rem}.expense-header-btn{padding:.35rem .85rem;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid #1a73e8;background:#1a73e8;color:#fff;transition:background .15s}.expense-header-btn:hover{background:#1558b0}.expense-header-btn-active{background:transparent;color:#c0392b;border-color:#c0392b}.expense-header-btn-active:hover{background:#fdecea}.inline-action-btn{background:transparent;border:1px solid #1a73e8;color:#1a73e8;font-size:.75rem;font-weight:600;padding:.2rem .4rem;border-radius:4px;cursor:pointer;margin-left:.5rem;transition:background .15s}.inline-action-btn:hover{background:#1a73e8;color:#fff}.close-btn{background:transparent;border:none;font-size:1.25rem;cursor:pointer;color:#888;padding:.25rem .5rem;border-radius:4px}.close-btn:hover{background:#f0f0f5;color:#333}.sub-heading{font-size:.95rem;margin:1.25rem 0 .5rem;padding-bottom:.25rem;border-bottom:2px solid #eee}.incoming-label{color:#27ae60;border-color:#27ae60}.outgoing-label{color:#e74c3c;border-color:#e74c3c}.empty-msg{color:#999;font-style:italic;padding:.5rem 0}.badge-cell{white-space:nowrap}.badge{display:inline-block;padding:.15rem .55rem;border-radius:10px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.badge-class{background:#e8f0fe;color:#1a73e8}.badge-kid{background:#fef7e0;color:#e67e22}.badge-program{background:#fce4ec;color:#c0392b}.badge-monthly{background:#e8f5e9;color:#2e7d32}.badge-onetime{background:#f3e5f5;color:#7b1fa2}.badge-optout{background:#f5f5f5;color:#999}.badge-expense{background:#fff3e0;color:#e65100}.badge-open{background:#e8f5e9;color:#2e7d32}.badge-closed{background:#f5f5f5;color:#999}.badge-custom{background:#fff8e1;color:#f57c00;font-size:.7em;padding:1px 5px}.program-status-row{display:flex;align-items:center;gap:.75rem;margin:.75rem 0;padding:.5rem 0;border-top:1px solid #eee;border-bottom:1px solid #eee}.delete-kid-btn{padding:.3rem .75rem;border-radius:6px;font-size:.78rem;font-weight:600;cursor:pointer;border:1px solid #e74c3c;background:transparent;color:#e74c3c;transition:all .15s}.delete-kid-btn:hover{background:#fdecea}.delete-confirm-text{font-size:.82rem;color:#c0392b;font-weight:600}.amount-in{color:#27ae60;font-weight:600}.amount-out{color:#e74c3c;font-weight:600}.amount-overpaid{color:#1a73e8;font-weight:600}.balance-sub{font-size:.75rem;color:#999;font-weight:400}.kid-detail-row td{padding:0!important;border-bottom:none!important}.kid-detail-row .sub-panel{margin:0;border-radius:0;border-top:2px solid #1a73e8;border-left:none;border-right:none;border-bottom:2px solid #e8e8f0}.sub-panel{margin-top:1rem;padding:1rem;background:#f9f9fc;border-radius:8px;border:1px solid #e8e8f0;animation:slideDown .2s ease-out}.sub-panel h3{font-size:1.1rem;margin-bottom:.75rem}.sub-panel h4{margin-top:.75rem}.spinner{text-align:center;padding:4rem;color:#888}.muted{color:#666;margin:.5rem 0 0}@media(max-width:768px){.dashboard-header{flex-direction:column;align-items:stretch;margin-bottom:1rem}.dashboard-header h1{font-size:1.25rem}.dashboard-header-actions{justify-content:flex-end}.class-selector{flex-direction:column;align-items:stretch;gap:.4rem}.class-selector select{max-width:100%}.detail-panel{padding:.85rem;margin-bottom:1.25rem}.detail-header h2{font-size:1rem}.sub-panel{padding:.65rem}h2{font-size:1.1rem}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:8px;width:100%;max-width:800px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 30px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e1e5e9}.modal-header h2{margin:0;color:#1a1a2e}.modal-close{background:none;border:none;font-size:2rem;cursor:pointer;color:#666;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .15s}.modal-close:hover{background:#f5f6fa;color:#1a1a2e}.details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #e1e5e9}.details-header h2{margin:0;color:#1a1a2e}.close-details{background:none;border:none;font-size:2rem;cursor:pointer;color:#666;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .15s}.close-details:hover{background:#f5f6fa;color:#1a1a2e}.details-section{margin-bottom:2rem}.details-section h3{margin-bottom:1rem;color:#1a1a2e;font-size:1.1rem}.modal-summary{display:flex;gap:2rem;padding:1.5rem;background:#f8f9fa;border-bottom:1px solid #e1e5e9}.summary-item{display:flex;flex-direction:column;gap:.25rem}.modal-section{padding:1.5rem}.modal-section h3{margin-bottom:1rem;color:#1a1a2e;font-size:1.125rem}.modal-section table{width:100%;border-collapse:collapse;margin-top:.5rem}.modal-section th,.modal-section td{padding:.75rem;text-align:left;border-bottom:1px solid #e1e5e9}.modal-section th{background:#f8f9fa;font-weight:600;color:#1a1a2e}
