@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700&display=swap";:root{--primary:#7ba4db;--primary-light:#c5d9f1;--accent-gold:#f2a900;--bg-light:#fff;--bg-white:#fff;--text-main:#1e293b;--text-muted:#64748b;--border-light:#e2e8f0;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--radius-md:8px;--radius-lg:12px;--radius-xl:16px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-light);color:var(--text-main);-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif;line-height:1.5}h1,h2,h3,h4,h5,h6{color:var(--primary);font-family:Outfit,sans-serif;font-weight:600}.app-container{min-height:100vh;display:flex}.sidebar{background:var(--bg-white);width:260px;color:var(--text-main);border-right:1px solid var(--border-light);flex-direction:column;padding:2rem 1.5rem;display:flex}.sidebar-logo{color:var(--primary);align-items:center;gap:.5rem;margin-bottom:2rem;font-family:Outfit,sans-serif;font-size:1.5rem;font-weight:700;text-decoration:none;display:flex}.nav-links{flex-direction:column;gap:.5rem;display:flex}.nav-item{border-radius:var(--radius-md);color:var(--text-muted);align-items:center;gap:.75rem;padding:.75rem 1rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.nav-item:hover,.nav-item.active{background:var(--primary-light);color:var(--primary);transform:translate(4px)}.main-content{background:var(--bg-light);flex:1;padding:2rem 3rem;overflow-y:auto}.card{background:var(--bg-white);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);border:1px solid var(--border-light);padding:2rem;transition:transform .2s,box-shadow .2s}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.btn{border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family:Inter,sans-serif;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background:var(--primary);color:var(--bg-white)}.btn-primary:hover{background:var(--primary-light);color:var(--primary);transform:translateY(-1px);box-shadow:0 4px 12px #7ba4db4d}.btn-outline{border:1px solid var(--primary);color:var(--primary);background:0 0}.btn-outline:hover{background:var(--primary-light)}.input-group{flex-direction:column;gap:.5rem;margin-bottom:1.5rem;display:flex}.input-label{color:var(--text-main);font-size:.875rem;font-weight:500}.input-field{border-radius:var(--radius-md);border:1px solid var(--border-light);background:var(--bg-light);padding:.75rem 1rem;font-family:Inter,sans-serif;transition:all .2s}.input-field:focus{border-color:var(--primary-navy);background:var(--bg-white);outline:none;box-shadow:0 0 0 3px #00205b1a}.table-wrapper{border-radius:var(--radius-lg);border:1px solid var(--border-light);background:var(--bg-white);overflow-x:auto}.modern-table{border-collapse:collapse;text-align:left;width:100%}.modern-table th{background:var(--bg-light);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-light);padding:1rem 1.5rem;font-size:.875rem;font-weight:600}.modern-table td{border-bottom:1px solid var(--border-light);color:var(--text-main);padding:1rem 1.5rem}.modern-table tbody tr{transition:background .2s}.modern-table tbody tr:hover{background:#f8fafccc}.badge{border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-present{color:var(--success);background:#10b9811a}.badge-excused{color:var(--warning);background:#f59e0b1a}.badge-unexcused{color:var(--danger);background:#ef44441a}.page-header{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.page-title{margin:0;font-size:2rem}.page-subtitle{color:var(--text-muted);margin-top:.5rem}.nav-group{margin-bottom:.25rem}.nav-group-header{cursor:pointer;width:100%;color:var(--text-main);border-radius:var(--radius-md);background:0 0;border:none;align-items:center;gap:.5rem;padding:.6rem .75rem;font-family:Outfit,sans-serif;font-size:.95rem;font-weight:600;transition:all .2s;display:flex}.nav-group-header:hover{background:var(--primary-light);color:var(--primary)}.nav-group-children{padding-left:.5rem}.nav-season-header{cursor:pointer;width:100%;color:var(--text-muted);border-radius:var(--radius-md);background:0 0;border:none;align-items:center;gap:.5rem;padding:.45rem .75rem;font-family:Inter,sans-serif;font-size:.875rem;font-weight:500;transition:all .15s;display:flex}.nav-season-header:hover{background:#7ba4db14}.nav-season-header.active{color:var(--primary)}.season-badge{border-radius:9999px;padding:.15rem .6rem;font-size:.8rem;font-weight:600}.season-badge[data-season=spring]{color:#065f46;background:#def7ec}.season-badge[data-season=fall]{color:#92400e;background:#fef3c7}.season-badge[data-season=winter]{color:#1e40af;background:#dbeafe}.season-badge[data-season=default]{color:#4b5563;background:#f3f4f6}.badge-absent{color:var(--danger);background:#ef44441a}.nav-season-children{margin-bottom:.25rem;padding-left:1rem}.nav-item-leaf{padding:.4rem .75rem;font-size:.85rem}.nav-divider{background:var(--border-light);height:1px;margin:1rem 0}.nav-section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:.5rem;padding:0 .75rem;font-size:.7rem;font-weight:700}.sidebar-footer{border-top:1px solid var(--border-light);margin-top:1rem;padding-top:1rem}.user-info{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.user-avatar{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:.9rem;font-weight:700;display:flex}.user-name{color:var(--text-main);font-size:.875rem;font-weight:600}.user-role{color:var(--text-muted);font-size:.75rem}.btn-sm{width:100%;padding:.4rem .75rem;font-size:.8rem}.pagination{justify-content:center;align-items:center;gap:1rem;padding:1.25rem 0 .5rem;display:flex}.pagination-info{color:var(--text-muted);font-size:.85rem;font-weight:500}.pagination-btn{padding:.4rem 1rem;font-size:.85rem}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.sidebar{width:280px;overflow-y:auto}
