*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--green:#2c5530;--green-light:#4a8050;--green-bg:#f0f4f0;--border:#d0ddd0;--text:#1a2e1a;--muted:#6b7c6b;--error:#c0392b;--success:#27ae60;--warning:#e67e22;--radius:8px}body{color:var(--text);background:#f5f7f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}#root{flex-direction:column;min-height:100vh;display:flex}.navbar{background:var(--green);color:#fff;flex-wrap:wrap;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex;box-shadow:0 2px 4px #00000026}.navbar-brand a{color:#fff;font-size:1.2rem;font-weight:700;text-decoration:none}.navbar-links{flex:1;align-items:center;gap:.75rem;display:flex}.navbar-links a{color:#ffffffe6;border-radius:4px;padding:.25rem .5rem;text-decoration:none;transition:background .15s}.navbar-links a:hover{background:#ffffff26}.lang-selector{gap:.5rem;margin-left:auto;display:flex}.lang-btn{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;border-radius:20px;padding:.3rem .75rem;font-size:.85rem;transition:all .15s}.lang-btn:hover{background:#ffffff40}.lang-btn.active{color:var(--green);background:#fff;font-weight:600}.page{width:100%;max-width:900px;margin:2rem auto;padding:0 1.5rem}.page-center{flex:1;justify-content:center;align-items:center;padding:2rem 1rem;display:flex}.card{border:1px solid var(--border);border-radius:var(--radius);background:#fff;width:100%;max-width:480px;padding:2rem;box-shadow:0 1px 4px #0000000f}.page .card{max-width:100%}form{flex-direction:column;gap:1rem;display:flex}label,.field-label{flex-direction:column;gap:.4rem;font-size:.9rem;font-weight:500;display:flex}input,select{border:1px solid var(--border);border-radius:6px;width:100%;padding:.6rem .75rem;font-family:inherit;font-size:1rem;transition:border-color .15s}input:focus,select:focus{border-color:var(--green-light);outline:none;box-shadow:0 0 0 3px #2c55301a}input:disabled{color:var(--muted);background:#f8f8f8}.form-row{flex-direction:column;gap:1rem;display:flex}.form-row.two-col{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.btn-primary{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;padding:.7rem 1.5rem;font-size:1rem;font-weight:600;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--green-light)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-link{color:#ffffffd9;cursor:pointer;font-size:inherit;background:0 0;border:none;padding:.25rem .5rem;text-decoration:underline}.btn-link:hover{color:#fff}.btn-sm{background:var(--green);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:4px;padding:.3rem .75rem;font-size:.85rem}.btn-sm:hover{background:var(--green-light)}.error-msg{color:var(--error);background:#fdf0ef;border:1px solid #f5c6c2;border-radius:6px;padding:.75rem 1rem}.info-msg{color:#1a5276;background:#eaf3fb;border:1px solid #aed6f1;border-radius:6px;padding:.75rem 1rem}.success-msg{color:var(--success)}.muted{color:var(--muted);font-size:.9rem}.list{flex-direction:column;gap:.5rem;margin:1rem 0;display:flex}.list-item{border:1px solid var(--border);background:#fff;border-radius:6px;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.badge{border-radius:12px;padding:.2rem .6rem;font-size:.8rem;font-weight:600;display:inline-block}.badge-green{color:#155724;background:#d4edda}.badge-gray{color:#495057;background:#e9ecef}.badge-yellow{color:#856404;background:#fff3cd}.table{border-collapse:collapse;border:1px solid var(--border);border-radius:var(--radius);background:#fff;width:100%;font-size:.9rem;overflow:hidden}.table th{background:var(--green-bg);text-align:left;border-bottom:1px solid var(--border);padding:.6rem .8rem;font-weight:600}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:.6rem .8rem}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--green-bg)}.table small{color:var(--muted)}.admin-layout{flex-direction:column;min-height:100vh;display:flex}.admin-header{background:var(--green);color:#fff;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.admin-header h1{margin:0;font-size:1.3rem}.tabs{border-bottom:2px solid var(--border);background:#fff;gap:0;padding:0 2rem;display:flex}.tab-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;border-bottom:3px solid #0000;margin-bottom:-2px;padding:.75rem 1.5rem;font-family:inherit;font-size:1rem;transition:all .15s}.tab-btn:hover{color:var(--green)}.tab-btn.active{color:var(--green);border-bottom-color:var(--green);font-weight:600}.admin-content{flex:1;padding:2rem}.admin-content h2{margin-bottom:1rem}.filter-row{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.filter-row input,.filter-row select{width:auto;max-width:200px}h1{margin-bottom:1.5rem;font-size:1.75rem}h2{color:var(--green);margin:1.5rem 0 .75rem;font-size:1.3rem}h3{margin:0 0 .5rem;font-size:1.1rem}h4{margin:0;font-size:1rem}p{margin:.5rem 0}.card-title{color:var(--green);margin:0 0 1rem;font-size:1.1rem}.btn-link-dark{color:var(--green);cursor:pointer;text-align:left;background:0 0;border:none;padding:.25rem 0;font-size:.9rem;text-decoration:underline}.btn-link-dark:hover{color:var(--green-light)}.toggle-btn{margin-top:-.25rem}.collapsible-section{border-top:1px dashed var(--border);flex-direction:column;gap:1rem;margin-top:.25rem;padding-top:1rem;display:flex}.month-row{flex-wrap:wrap;gap:.35rem;margin:.5rem 0;display:flex}.month-box{text-align:center;color:#495057;border:1px solid var(--border);background:#e9ecef;border-radius:6px;flex:1 1 0;min-width:2.6rem;padding:.4rem .2rem;font-size:.75rem;font-weight:600}.month-box-paid{color:#155724;background:#d4edda;border-color:#b7dfc0}.month-box-pending{color:#495057;background:#e9ecef}.month-box-clickable{cursor:pointer;font-family:inherit;transition:transform .1s}.month-box-clickable:hover{box-shadow:var(--shadow,0 1px 4px #00000026);transform:scale(1.06)}.status-box{flex:none;min-width:5rem;padding:.5rem 1rem}.child-card{border:1px solid var(--border);border-radius:var(--radius);background:#fff;flex-direction:column;gap:.35rem;padding:1rem 1.25rem;display:flex}.child-card-draft{border-style:dashed}.child-card-header{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.amount-label{font-size:.85rem}.membership-card{max-width:320px}.draft-actions{align-items:center;gap:.75rem;margin-top:.5rem;display:flex}.draft-actions .btn-primary{width:auto}.admin-contact-fields{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;display:grid}.admin-second-parent{border-top:1px dashed var(--border);padding-top:.6rem}.admin-second-parent summary{cursor:pointer;color:var(--green);margin-bottom:.5rem;font-weight:600}.admin-section-title{border-top:1px solid var(--border);color:var(--green);margin-top:.25rem;padding-top:.75rem}.admin-child-row{background:var(--green-bg);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:.5rem;padding:.75rem 1rem;display:flex}.admin-child-draft{border-style:dashed}.admin-child-fields{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.admin-child-fields input,.admin-child-fields select{flex:120px;width:auto}.admin-membership-row{background:var(--green-bg);border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.admin-membership-row label{flex-direction:row;align-items:center;gap:.5rem;font-size:.85rem}.admin-membership-row input{width:100px}.admin-nav-links{align-items:center;gap:1rem;display:flex}.admin-nav-links a{color:#ffffffe6;border-radius:4px;padding:.25rem .5rem;text-decoration:none;transition:background .15s}.admin-nav-links a:hover{background:#ffffff26}.admin-header h1 a{color:#fff;text-decoration:none}.admin-list-section-header{justify-content:space-between;align-items:center;margin-top:1.5rem;display:flex}.admin-list-section-header h2{margin:0}.admin-list-cards{flex-direction:column;gap:.6rem;margin:.75rem 0 1rem;display:flex}.admin-list-cards-compact .admin-list-card{padding:.6rem 1rem}.admin-list-card{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:6px;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.25rem;transition:box-shadow .15s;display:flex}.admin-list-card:hover{box-shadow:0 1px 6px #0000001a}.admin-list-card-main{flex-direction:column;gap:.15rem;display:flex}.admin-detail-card{flex-direction:column;gap:.75rem;max-width:100%;margin-bottom:1.5rem;display:flex}.admin-page-section-title{margin-top:2rem}.admin-save-btn{width:auto}.inline-label{font-size:.8rem}.child-year-row{border-top:1px dashed var(--border);flex-direction:column;gap:.35rem;margin-top:.4rem;padding-top:.6rem;display:flex}.month-amount-row{flex-wrap:wrap;gap:.35rem;display:flex}.month-amount-input{text-align:center;flex:1 1 0;width:auto;min-width:2.6rem;padding:.25rem .2rem;font-size:.75rem}.add-year-control{align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.add-year-control select,.add-year-control input{width:auto;max-width:180px}.settings-years-list{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.settings-year-row{background:var(--green-bg);border:1px solid var(--border);border-radius:6px;align-items:center;gap:.75rem;padding:.5rem .9rem;display:flex}.settings-year-row span:first-child{flex:1;font-weight:600}.signature-pad{flex-direction:column;gap:.6rem;display:flex}.signature-tabs{gap:.5rem;display:flex}.signature-tabs .tab-btn{border:1px solid var(--border);border-radius:6px;margin-bottom:0;padding:.4rem .9rem}.signature-tabs .tab-btn.active{background:var(--green-bg);border-color:var(--green-light)}.signature-canvas-wrap{flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.signature-canvas{border:1px dashed var(--border);touch-action:none;background:#fff;border-radius:6px;max-width:100%}.signature-canvas-actions{gap:.5rem;display:flex}.signature-preview{flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.signature-img{border:1px solid var(--border);background:#fff;border-radius:6px;max-width:250px;max-height:120px}@media (width<=600px){.form-row.two-col{grid-template-columns:1fr}.navbar{padding:.75rem 1rem}.admin-content{padding:1rem}.table{font-size:.8rem}.month-box{min-width:2.2rem;font-size:.65rem}.admin-list-card{flex-direction:column;align-items:flex-start}}
