:root{--sky-blue: #1F74F1;--sky-blue-hover: #1662D0;--sky-blue-light: #D7E5FF;--sky-blue-subtle: rgba(31, 116, 241, .08);--sky-rest: #23275F;--sky-rest-deep: #161942;--sky-rest-card: #FFFFFF;--sky-cloud: #F7F5F2;--sky-cloud-light: #FAFAF8;--sky-pure-white: #FFFFFF;--sky-sun: #FABC1D;--sky-sun-hover: #E5A110;--sky-sun-light: #FFF5DB;--sky-earth: #7FA842;--sky-earth-light: #EEF5E1;--sky-flower: #FF7A5C;--sky-flower-light: #FFEBE5;--sky-fruit: #DB6937;--sky-fruit-light: #FFEDE5;--illini-orange: #E84A27;--illini-blue: #13294B;--bg-dark: #F7F5F2;--bg-canvas: #F7F5F2;--bg-surface: #FFFFFF;--bg-card: #FFFFFF;--bg-glass: rgba(255, 255, 255, .88);--bg-subtle: #F1F5F9;--text-main: #23275F;--text-body: #334155;--text-secondary: #475569;--text-muted: #64748B;--border-color: rgba(35, 39, 95, .1);--border-light: rgba(35, 39, 95, .05);--font-headline: "Merriweather", Georgia, serif;--font-body: "Source Sans 3", "Inter", system-ui, sans-serif;--font-subheading: "Source Sans 3", system-ui, sans-serif;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-full: 9999px;--shadow-sm: 0 2px 6px rgba(35, 39, 95, .04), 0 1px 2px rgba(35, 39, 95, .02);--shadow-md: 0 6px 20px -2px rgba(35, 39, 95, .07), 0 2px 6px -1px rgba(35, 39, 95, .04);--shadow-lg: 0 14px 32px -4px rgba(35, 39, 95, .1), 0 4px 12px -2px rgba(35, 39, 95, .05);--shadow-sky: 0 6px 20px rgba(31, 116, 241, .25);--transition-fast: all .2s cubic-bezier(.4, 0, .2, 1);--transition-smooth: all .3s cubic-bezier(.16, 1, .3, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-family:var(--font-body);background-color:var(--bg-canvas);color:var(--text-body);overflow-x:clip}body{min-height:100vh;overflow-x:clip;line-height:1.6;background-color:var(--bg-canvas);color:var(--text-body);background-image:radial-gradient(circle at 15% 5%,rgba(215,229,255,.45) 0%,transparent 35%),radial-gradient(circle at 85% 15%,rgba(255,245,219,.45) 0%,transparent 40%),radial-gradient(circle at 50% 60%,rgba(238,245,225,.35) 0%,transparent 50%);background-attachment:fixed}img{max-width:100%;height:auto}h1,h2,h3{font-family:var(--font-headline);color:var(--text-main);line-height:1.25;font-weight:700;letter-spacing:-.01em}h4,h5,h6{font-family:var(--font-body);font-weight:700;color:var(--text-main)}p{color:var(--text-secondary)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-canvas)}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--sky-blue)}input,select,textarea{font-family:var(--font-body);color:var(--text-main);background-color:#fff;border:1px solid rgba(35,39,95,.15);border-radius:var(--radius-sm);transition:var(--transition-fast)}input::placeholder,textarea::placeholder{color:#94a3b8}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--sky-blue);box-shadow:0 0 0 3px #1f74f126}.container{max-width:1200px;margin:0 auto;padding:0 1.25rem}.text-sky{color:var(--sky-blue)}.text-sun{color:#b45309}.text-earth{color:#3f6212}.text-flower{color:#c2410c}.text-fruit{color:var(--sky-fruit)}.text-navy{color:var(--sky-rest)}.glass-card{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md);transition:var(--transition-smooth)}.glass-card:hover{border-color:#1f74f14d;box-shadow:var(--shadow-lg)}.badge{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .85rem;border-radius:var(--radius-full);font-size:.8rem;font-weight:700;letter-spacing:.03em;font-family:var(--font-subheading)}.badge-sky,.badge-blue{background:#d7e5ff;color:#1f74f1;border:1px solid rgba(31,116,241,.25)}.badge-sun{background:#fff5db;color:#b45309;border:1px solid rgba(250,188,29,.35)}.badge-earth{background:#eef5e1;color:#3f6212;border:1px solid rgba(127,168,66,.3)}.badge-orange,.badge-fruit{background:#ffebe5;color:#c2410c;border:1px solid rgba(232,74,39,.3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.75rem 1.5rem;min-height:44px;border-radius:var(--radius-md);font-weight:700;font-size:.95rem;cursor:pointer;transition:var(--transition-fast);border:none;text-decoration:none;font-family:var(--font-subheading);letter-spacing:.01em}.btn-primary{background:var(--sky-blue);color:#fff;box-shadow:var(--shadow-sky)}.btn-primary:hover{background:var(--sky-blue-hover);transform:translateY(-1px);box-shadow:0 8px 24px #1f74f159}.btn-sun{background:var(--sky-sun);color:#23275f;box-shadow:0 4px 14px #fabc1d40}.btn-sun:hover{background:#e5a110;transform:translateY(-1px);box-shadow:0 6px 18px #fabc1d59}.btn-secondary{background:#fff;color:var(--text-main);border:1px solid rgba(35,39,95,.15);box-shadow:var(--shadow-sm)}.btn-secondary:hover{background:#f8fafc;border-color:#1f74f159;color:var(--sky-blue);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-outline-sky{background:transparent;color:var(--sky-blue);border:1.5px solid var(--sky-blue)}.btn-outline-sky:hover{background:var(--sky-blue-subtle);border-color:var(--sky-blue-hover)}.btn-sm{padding:.45rem .9rem;min-height:36px;font-size:.85rem;border-radius:var(--radius-sm)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn .3s cubic-bezier(.16,1,.3,1) forwards}.spinner{animation:spin .8s linear infinite}.roster-row-hover:hover{background:#1f74f10a!important}.mobile-menu-btn{display:none}@media (max-width: 768px){.desktop-links{display:none!important}.mobile-menu-btn{display:flex!important;align-items:center;justify-content:center;width:42px;height:42px;border-radius:var(--radius-sm);background:#fff;border:1px solid rgba(31,116,241,.3);box-shadow:var(--shadow-sm);color:var(--text-main);cursor:pointer;transition:var(--transition-fast)}.mobile-menu-btn:hover,.mobile-menu-btn:active{background:var(--sky-blue-light);border-color:var(--sky-blue)}.navbar-logo-img{height:32px!important}.account-chip-name{display:none!important}h1{font-size:2rem!important;line-height:1.22!important}h2{font-size:1.5rem!important}.container{padding:0 1rem!important}.mobile-stack-buttons{flex-direction:column!important;width:100%!important}.mobile-stack-buttons .btn{width:100%!important}.responsive-form-grid{grid-template-columns:1fr!important;gap:1rem!important}.form-card-responsive{padding:1.5rem 1.25rem!important}.modal-responsive-card{padding:1.25rem 1rem!important;width:95vw!important;max-height:92vh!important}table{display:block!important;overflow-x:auto!important;white-space:nowrap!important;-webkit-overflow-scrolling:touch!important}}.drop-zone-active{border-color:var(--sky-sun)!important;background-color:#fabc1d1f!important;box-shadow:0 0 24px #fabc1d40!important}[draggable=true]{cursor:grab}[draggable=true]:active{cursor:grabbing;opacity:.75}.card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1rem 1.15rem}.field-label{display:block;font-size:.75rem;font-weight:700;color:var(--text-muted);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.03em}.field-input{width:100%;padding:.55rem .75rem;background:#fff;border:1px solid rgba(35,39,95,.15);border-radius:var(--radius-sm);color:var(--text-main);font-size:.85rem}.field-input:disabled{background:#f8fafc;color:var(--text-muted);cursor:not-allowed}.field-input.has-error{border-color:#ef4444;background:#fef2f2}.field-error{color:#dc2626;font-size:.78rem;font-weight:600;margin-top:.3rem}.select-compact{padding:.5rem .65rem;background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-main);font-size:.82rem;font-weight:600;cursor:pointer;min-width:0}.btn-sm{padding:.3rem .65rem;font-size:.78rem;gap:.3rem}.btn-danger{background:#dc2626;color:#fff;border:1px solid #B91C1C}.btn-danger:hover{background:#b91c1c}.btn-link{background:none;border:none;padding:0;color:var(--sky-blue);font-weight:600;cursor:pointer;text-decoration:underline;font-size:inherit}.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .7rem;border-radius:var(--radius-full);font-size:.78rem;font-weight:700;cursor:pointer;background:#fff;color:var(--text-secondary);border:1px solid var(--border-color)}.chip-row{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center}.status-badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:var(--radius-full);font-size:.74rem;font-weight:700;white-space:nowrap;border:1px solid transparent}.notice{padding:.75rem 1.1rem;border-radius:var(--radius-md);font-weight:600;font-size:.88rem;display:flex;align-items:center;gap:.6rem}.notice-success{background:#dcfce7;border:1px solid #86EFAC;color:#166534}.notice-error{background:#fef2f2;border:1px solid #F87171;color:#b91c1c}.notice-info{background:var(--sky-blue-subtle);border:1px solid var(--sky-blue-light);color:var(--sky-rest)}.notice-warning{background:#fffbeb;border:1px solid #FDE68A;color:#92400e}.data-table{width:100%;border-collapse:collapse;text-align:left;font-size:.85rem}.data-table th{padding:.75rem 1rem;color:var(--text-muted);font-weight:700;background:#f8fafc;border-bottom:1px solid var(--border-color)}.data-table td{padding:.75rem 1rem;border-bottom:1px solid rgba(35,39,95,.06)}.muted{color:var(--text-muted)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.toast-stack{position:fixed;right:1rem;bottom:1rem;z-index:100001;display:flex;flex-direction:column;gap:.5rem;max-width:min(420px,calc(100vw - 2rem))}.toast{box-shadow:var(--shadow-lg);animation:toast-in .18s ease-out}.toast .toast-text{flex:1}.toast .toast-close{background:none;border:none;cursor:pointer;color:inherit;padding:.15rem;display:flex}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}@media (max-width: 640px){.toast-stack{left:1rem;right:1rem;max-width:none}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100000;background:#1619428c;display:flex;align-items:center;justify-content:center;padding:1rem}.modal-dialog{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-height:calc(100vh - 2rem);overflow:auto;padding:1.5rem}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.modal-title{font-size:1.2rem;font-weight:800;color:var(--text-main);font-family:var(--font-body)}.modal-footer{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.25rem;flex-wrap:wrap}.modal-close{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:.25rem;display:flex}@media (max-width: 640px){.modal-overlay{padding:0;align-items:flex-end}.modal-dialog{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:92vh;padding:1.15rem}}.row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.row-between{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:1.5rem}.stack-sm{display:flex;flex-direction:column;gap:.75rem}.ml-auto{margin-left:auto}.text-sm{font-size:.85rem}.text-xs{font-size:.75rem}.fw-bold{font-weight:700}.text-main{color:var(--text-main)}.text-secondary{color:var(--text-secondary)}.empty-state{padding:3.5rem 1rem;text-align:center;color:var(--text-secondary)}.filter-bar{display:flex;flex-direction:column;gap:.85rem}.filter-bar-selects{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.55rem}.search-field{position:relative;flex:1 1 240px}.search-field svg{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.search-field input{width:100%;padding:.55rem .75rem .55rem 2.1rem;font-weight:500;cursor:text}.tab-bar{display:flex;gap:.5rem;border-bottom:1px solid var(--border-color);margin-bottom:2rem;overflow-x:auto;padding-bottom:.35rem;-webkit-overflow-scrolling:touch}.tab-bar-tab{padding:.8rem 1.25rem;background:none;border:none;border-bottom:3px solid transparent;color:var(--text-secondary);font-weight:700;font-size:.9rem;white-space:nowrap;flex-shrink:0;cursor:pointer;display:flex;align-items:center;gap:.5rem;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:var(--transition-fast);text-decoration:none}.tab-bar-tab[aria-selected=true]{background:#fff}.retreat-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:.85rem 1.25rem;margin-bottom:1.5rem}.retreat-bar-label{font-size:.8rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border:1.5px solid #EF4444!important;background:#fef2f2!important}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.attendance-daybar{position:sticky;top:66px;z-index:50;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.5rem .75rem;box-shadow:var(--shadow-sm)}.attendance-count{margin-left:auto;font-weight:800;color:var(--text-main);font-size:.9rem}@media (max-width: 640px){.attendance-toggle{min-height:44px;min-width:112px;justify-content:center}}.chip-select{margin:0;width:15px;height:15px;cursor:pointer;flex-shrink:0}.chip-move{border:none;background:#ffffffb3;border-radius:6px;font-size:.7rem;font-weight:700;padding:.1rem .2rem;cursor:pointer;max-width:82px}.bulk-bar{position:sticky;top:66px;z-index:50;background:#fffffff7}@media (max-width: 640px){.chip-select{width:20px;height:20px}.chip-move{font-size:.8rem;padding:.3rem}}
