*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(to bottom,#f5f7fa,#e8ecf1);color:#333}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:2rem;text-align:center;box-shadow:0 4px 6px #0000001a}.app-header h1{font-size:2.5rem;margin-bottom:.5rem}.app-header p{font-size:1.1rem;opacity:.95}.view-selector{display:flex;gap:1rem;padding:1.5rem;justify-content:center;background:#fff;border-bottom:1px solid #e0e0e0}.nav-btn{padding:.75rem 1.5rem;border:2px solid #667eea;background:#fff;color:#667eea;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .3s ease}.nav-btn:hover{background:#f0f4ff}.nav-btn.active{background:#667eea;color:#fff}.app-content{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}.attendance-form{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a}.date-picker{display:flex;justify-content:center;align-items:center;gap:2rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid #e8ecf1}.date-picker button{padding:.75rem 1.25rem;background:#667eea;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;transition:background .3s ease}.date-picker button:hover{background:#764ba2}.current-date{font-size:1.3rem;font-weight:600;color:#333;min-width:200px;text-align:center}.stats-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.stat{padding:1.5rem;border-radius:10px;text-align:center;box-shadow:0 2px 4px #0000000d}.stat.present{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.stat.absent{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.stat.total{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.stat .label{display:block;font-size:.9rem;font-weight:600;opacity:.95;margin-bottom:.5rem}.stat .count{display:block;font-size:2.5rem;font-weight:700}.attendance-list{margin-bottom:2rem}.attendance-list h3{margin-bottom:1rem;color:#333;font-size:1.2rem}.children-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-bottom:1.5rem}.attendance-item{display:flex;align-items:center;padding:1rem;background:#f9fafb;border-radius:8px;border:2px solid transparent;transition:all .3s ease}.attendance-item:hover{background:#f3f4f6;border-color:#667eea}.checkbox-label{display:flex;align-items:center;width:100%;cursor:pointer;gap:.75rem}.checkbox-input{width:20px;height:20px;cursor:pointer;accent-color:#10b981}.child-name{font-weight:500;color:#555;flex:1}.child-name.present{color:#10b981;font-weight:600}.child-name.absent{color:#ef4444;font-weight:600;text-decoration:line-through}.mark-absent-btn{padding:.4rem .8rem;font-size:.85rem;background:#10b981;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;transition:background .3s ease}.mark-absent-btn:hover{background:#059669}.offering-section{margin-bottom:1.5rem;padding:1rem;background:#fef9e7;border-left:4px solid #f59e0b;border-radius:6px}.offering-section label{display:block;margin-bottom:.5rem;font-weight:600;color:#333}.offering-input-group{display:flex;align-items:center;gap:.5rem}.currency{font-size:1.2rem;font-weight:600;color:#333}.offering-input{flex:1;max-width:300px;padding:.75rem;border:2px solid #d1d5db;border-radius:6px;font-size:1rem}.offering-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.action-buttons{display:flex;gap:1rem;flex-wrap:wrap}.btn-primary,.btn-secondary,.btn-print{padding:.875rem 1.75rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;flex:1;min-width:250px}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 16px #667eea4d}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:#f59e0b;color:#fff}.btn-secondary:hover{background:#d97706;transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b4d}.btn-print{background:#3b82f6;color:#fff;padding:.75rem 1.5rem}.btn-print:hover{background:#2563eb}.monthly-report{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a}.report-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e8ecf1}.report-header h2{font-size:1.8rem;color:#333}.report-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.summary-card{padding:1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:10px;box-shadow:0 4px 6px #0000001a}.summary-card h3{font-size:.95rem;opacity:.95;margin-bottom:.75rem;font-weight:600}.summary-value{font-size:2.5rem;font-weight:700;margin:0}.attendance-table-container{overflow-x:auto;margin-bottom:2rem;border-radius:8px;box-shadow:0 2px 4px #0000000d}.attendance-table{width:100%;border-collapse:collapse;font-size:.95rem}.attendance-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.attendance-table th{padding:1.25rem;text-align:left;font-weight:600;border:none}.attendance-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background .2s ease}.attendance-table tbody tr:hover{background:#f9fafb}.attendance-table tbody tr:last-child{border-bottom:none}.attendance-table td{padding:1rem 1.25rem}.child-name-cell{font-weight:600;color:#333}.present-cell{color:#10b981;font-weight:600}.absent-cell{color:#ef4444;font-weight:600}.total-cell{color:#667eea;font-weight:600}.rate-cell{text-align:center}.rate-badge{padding:.4rem .8rem;border-radius:20px;font-weight:600;font-size:.85rem;display:inline-block}.rate-badge.high{background:#d1fae5;color:#059669}.rate-badge.low{background:#fee2e2;color:#dc2626}.report-footer{text-align:center;color:#999;font-size:.9rem}@media print{.app-header,.view-selector,.date-picker,.action-buttons{display:none}.app-content{padding:0;max-width:100%}.monthly-report{box-shadow:none;padding:0}.report-header{border:none}.attendance-table-container{box-shadow:none}.attendance-table tbody tr:hover{background:transparent}}@media (max-width: 768px){.app-header h1{font-size:1.8rem}.app-header p{font-size:.95rem}.children-grid{grid-template-columns:1fr}.date-picker{flex-direction:column;gap:1rem}.report-header{flex-direction:column;align-items:flex-start;gap:1rem}.action-buttons{flex-direction:column}.btn-primary{min-width:auto}.stats-summary,.report-summary{grid-template-columns:1fr}}@media (max-width: 480px){.app-content,.attendance-form,.monthly-report{padding:1rem}.stat .count,.summary-value{font-size:1.8rem}.attendance-table{font-size:.85rem}.attendance-table th,.attendance-table td{padding:.75rem}}.add-child-form{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a;max-width:600px;margin:0 auto}.add-child-form h2{margin-bottom:1.5rem;color:#333;font-size:1.8rem;text-align:center}.child-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:.5rem;color:#333;font-weight:600;font-size:.95rem}.form-group input{padding:.875rem;border:2px solid #d1d5db;border-radius:6px;font-size:1rem;transition:all .3s ease;font-family:inherit}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{background:#f3f4f6;cursor:not-allowed;opacity:.6}.submit-btn{padding:1rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:8px;font-size:1.05rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:1rem}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 16px #10b9814d}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.form-message{padding:1rem;border-radius:6px;margin-top:1rem;text-align:center;font-weight:600;font-size:1rem}.form-message.success{background:#d1fae5;color:#059669;border-left:4px solid #10b981}.form-message.error{background:#fee2e2;color:#dc2626;border-left:4px solid #ef4444}.form-instructions{margin-top:2rem;padding:1rem;background:#f0f4ff;border-left:4px solid #667eea;border-radius:6px;color:#555;font-size:.9rem}.form-instructions p{margin:.5rem 0}.form-instructions strong{color:#333}@media (max-width: 768px){.add-child-form{padding:1.5rem}.add-child-form h2{font-size:1.5rem}}
