@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@600;700;800&family=Inter:wght@400;500;600;700&display=swap";body,html,#root{border:none!important;outline:none!important}:root{--bg:#101012;--surface:#1b1b1e;--surface-hover:#232327;--text-primary:#f4f4f5;--text-secondary:#a6a6ac;--text-muted:#7a7a80;--border:#ffffff14;--border-strong:#ffffff29;--shadow:0 1px 2px #0006, 0 10px 28px -6px #00000080;--radius:16px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-heading:"Plus Jakarta Sans", var(--font-sans)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh}.user-email{color:var(--text-secondary);font-size:.875rem}.logout-btn{font-family:var(--font-sans);background:var(--surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:6px;padding:8px 16px;font-size:.85rem;font-weight:500;transition:all .15s;display:inline-flex}.logout-btn:hover{border-color:var(--border-strong);background:var(--surface-hover)}.toolbar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px;display:flex}.search-wrapper{flex:1;align-items:center;max-width:480px;display:flex;position:relative}.search-icon{color:var(--text-muted);position:absolute;left:14px}.search-input{width:100%;font-family:var(--font-sans);background:var(--surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);outline:none;padding:12px 14px 12px 42px;font-size:.95rem;transition:border-color .15s}.search-input:focus{border-color:var(--text-primary)}.filter-row{flex-wrap:wrap;gap:8px;display:flex}.pill-btn{font-family:var(--font-sans);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;border-radius:20px;padding:8px 16px;font-size:.825rem;font-weight:500;transition:all .15s}.pill-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}.pill-btn.active{background:var(--text-primary);color:var(--bg);border-color:var(--text-primary)}.members-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:20px;width:100%;display:grid}.member-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;flex-direction:column;justify-content:space-between;min-height:150px;padding:22px;transition:all .15s;display:flex}.member-card:hover{border-color:var(--border-strong);background:var(--surface-hover);transform:translateY(-2px)}.card-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.member-info-stack{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.member-name{color:var(--text-primary);font-size:1.15rem;font-weight:600;line-height:1.25}.member-nickname{color:var(--text-secondary);font-size:.875rem;font-weight:400}.info-position{color:var(--text-muted);margin-top:4px;font-size:.85rem}.badge{text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary);border:1px solid var(--border-strong);white-space:nowrap;background:#ffffff0a;border-radius:4px;flex-shrink:0;align-items:center;padding:4px 10px;font-size:.685rem;font-weight:600;display:inline-flex}.card-footer{border-top:1px dashed var(--border);color:var(--text-secondary);justify-content:space-between;align-items:center;margin-top:20px;padding-top:12px;font-size:.85rem;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#000000bf;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;width:90%;max-width:680px;max-height:85dvh;padding:28px;display:flex;position:relative}.modal-close{cursor:pointer;width:36px;height:36px;color:var(--text-secondary);z-index:5;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:12px;right:12px}.modal-edit-btn{font-family:var(--font-sans);color:var(--text-secondary);background:var(--bg);border:1px solid var(--border-strong);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:500;transition:all .15s;display:flex;position:absolute;top:18px;right:52px}.modal-edit-btn:hover{color:var(--text-primary);border-color:var(--text-primary)}.modal-close:hover{color:var(--text-primary);background:var(--surface-hover)}.modal-title{color:var(--text-primary);font-size:1.4rem;font-weight:600;font-family:var(--font-heading);margin-bottom:4px;padding-right:90px}.modal-subtitle{color:var(--text-secondary);font-size:.9rem}.modal-scroll-area{border-top:1px solid var(--border);flex-direction:column;gap:20px;margin-top:16px;padding-top:16px;display:flex;overflow-y:auto}.modal-section{flex-direction:column;gap:10px;display:flex}.section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.75rem;font-weight:700;font-family:var(--font-heading)}.detail-group{border:1px solid var(--border);background:#ffffff05;border-radius:6px;flex-direction:column;gap:12px;padding:14px 18px;display:flex}.detail-row{justify-content:space-between;align-items:center;gap:12px;font-size:.85rem;display:flex}.detail-row.vertical{flex-direction:column;align-items:flex-start;gap:4px}.detail-label{color:var(--text-secondary);font-size:.8rem}.detail-value{color:var(--text-primary);word-break:break-word;font-weight:500}.detail-value.text-left{text-align:left;line-height:1.4}.modal-link{color:#60a5fa;text-decoration:none}.modal-link:hover{text-decoration:underline}.login-container{background-color:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);width:100%;max-width:360px;box-shadow:var(--shadow);text-align:center;padding:36px 28px}.login-title{color:var(--text-primary);font-size:1.5rem;font-weight:600;font-family:var(--font-heading);margin-bottom:8px}.login-desc{color:var(--text-secondary);margin-bottom:24px;font-size:.875rem}.auth-error-box{color:#f87171;border-radius:var(--radius);text-align:left;background:#ef44441a;border:1px solid #ef44444d;align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:.85rem;display:flex}.verifying-state,.state-box{text-align:center;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);background:var(--surface);padding:48px}.spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tab-count{color:#fff;background:#f87171;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.7rem;font-weight:700;display:inline-flex}.role-badge{text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:4px;padding:3px 8px;font-size:.7rem;font-weight:600}.review-toolbar{flex-direction:column;align-items:flex-start;gap:4px}.review-heading{color:var(--text-primary);font-size:1.15rem;font-weight:600}.review-subheading{color:var(--text-secondary);font-size:.85rem}.review-card{gap:14px}.review-card-details{flex-direction:column;gap:6px;margin-top:12px;display:flex}.review-detail-row{color:var(--text-secondary);justify-content:space-between;font-size:.8rem;display:flex}.review-detail-row strong{color:var(--text-primary);text-align:right;font-weight:500}.review-edit-btn{border:1px solid var(--border-strong);background:var(--surface-hover);width:100%;color:var(--text-primary);font-family:var(--font-sans);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:8px;margin-top:16px;padding:10px;font-size:.825rem;font-weight:500;transition:all .15s;display:flex}.review-edit-btn:hover{border-color:var(--text-primary)}.error-box{color:#f87171}.approval-modal{max-width:640px}.form-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.form-field{text-align:left;flex-direction:column;gap:6px;display:flex}.form-field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.form-field input,.form-field select,.reject-reason-input{font-family:var(--font-sans);color:var(--text-primary);background:var(--bg);border:1px solid var(--border-strong);border-radius:6px;outline:none;padding:9px 12px;font-size:.875rem;transition:border-color .15s}.form-field input:focus,.form-field select:focus,.reject-reason-input:focus{border-color:var(--text-primary)}.form-field input:disabled{color:var(--text-muted);opacity:.7;cursor:not-allowed}.select-field{width:100%;position:relative}.select-trigger{width:100%;font-family:var(--font-sans);color:var(--text-primary);background:var(--bg);border:1px solid var(--border-strong);cursor:pointer;text-align:left;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;font-size:.875rem;transition:border-color .15s;display:flex}.select-trigger:hover{border-color:var(--text-secondary)}.select-field.open .select-trigger{border-color:var(--text-primary)}.select-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .15s}.select-field.open .select-chevron{transform:rotate(180deg)}.select-menu{z-index:60;background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--shadow);border-radius:8px;flex-direction:column;gap:1px;max-height:240px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.select-option{text-align:left;width:100%;font-family:var(--font-sans);color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:5px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:.85rem;transition:background .15s;display:flex}.select-option:hover{background:var(--surface-hover)}.select-option.selected{background:var(--surface-hover);font-weight:600}.select-option-check{color:var(--text-primary);flex-shrink:0}.reject-reason-input{resize:vertical;width:100%;font-family:var(--font-sans)}.approval-photo-row{align-items:flex-start;gap:16px;display:flex}.approval-photo-field{flex:1}.approval-photo-hint{color:var(--text-muted);font-size:.75rem}.approval-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;margin-top:8px;padding-top:16px;display:flex}.approve-btn,.reject-btn{font-family:var(--font-sans);cursor:pointer;border:1px solid var(--border-strong);border-radius:6px;align-items:center;gap:8px;padding:10px 18px;font-size:.85rem;font-weight:600;transition:all .15s;display:flex}.approve-btn{background:var(--text-primary);color:var(--bg);border-color:var(--text-primary)}.approve-btn:hover:not(:disabled){opacity:.85}.approve-btn:disabled,.reject-btn:disabled{opacity:.5;cursor:not-allowed}.reject-btn{color:var(--text-secondary);background:0 0}.reject-btn:hover:not(:disabled),.reject-btn.confirm{color:#f87171;border-color:#f87171}@media (width<=640px){.form-grid{grid-template-columns:1fr}}.app-shell{background:var(--bg);width:100%;min-height:100vh;display:flex}.app-shell.theme-light{--bg:#eeeeef;--surface:#fff;--surface-hover:#f4f4f5;--text-primary:#16161a;--text-secondary:#55555c;--text-muted:#8b8b92;--border:#16161a14;--border-strong:#16161a29;--shadow:0 1px 2px #1414140a, 0 10px 28px -6px #1414141a}.app-shell.theme-dark{--bg:#101012;--surface:#1b1b1e;--surface-hover:#232327;--text-primary:#f4f4f5;--text-secondary:#a6a6ac;--text-muted:#7a7a80;--border:#ffffff14;--border-strong:#ffffff29;--shadow:0 1px 2px #0006, 0 10px 28px -6px #00000080}.theme-light .badge{background:#0000000a}.theme-dark .badge{background:#ffffff0a}.sidebar{background:var(--surface);border-right:1px solid var(--border);width:240px;height:100vh;box-shadow:var(--shadow);flex-direction:column;flex-shrink:0;padding:28px 20px;display:flex;position:sticky;top:0}.sidebar-brand{padding:0 8px 28px}.sidebar-title{color:var(--text-primary);font-size:1.4rem;font-weight:600;font-family:var(--font-heading)}.sidebar-subtitle{color:var(--text-muted);margin-top:2px;font-size:.8rem}.sidebar-nav{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar-nav-item{text-align:left;width:100%;font-family:var(--font-sans);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:10px 8px;font-size:.95rem;font-weight:400;transition:background .15s,color .15s;display:flex}.sidebar-nav-item span:first-of-type{flex:1}.sidebar-nav-item:hover{background:var(--surface-hover);color:var(--text-primary)}.sidebar-nav-item.active{color:var(--text-primary);font-weight:600}.content-area{flex:1;width:100%;min-width:0;padding:40px 48px;overflow-y:auto}.page-header{align-items:baseline;gap:12px;margin-bottom:24px;display:flex}.export-menu-wrapper{align-self:center;margin-left:auto;position:relative}.export-csv-btn{font-family:var(--font-sans);color:var(--text-secondary);background:var(--surface);border:1px solid var(--border-strong);cursor:pointer;box-shadow:var(--shadow);border-radius:6px;align-items:center;gap:6px;padding:8px 14px;font-size:.8rem;font-weight:500;transition:all .15s;display:flex}.export-csv-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--text-primary)}.export-csv-btn:disabled{opacity:.5;cursor:not-allowed}.dropdown-backdrop{z-index:40;background:0 0;position:fixed;inset:0}.export-menu{z-index:41;background:var(--surface);border:1px solid var(--border);min-width:220px;max-height:320px;box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto}.export-menu-item{text-align:left;width:100%;font-family:var(--font-sans);color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px;font-size:.85rem;transition:background .15s;display:flex}.export-menu-item:hover:not(:disabled){background:var(--surface-hover)}.export-menu-item:disabled{color:var(--text-muted);cursor:not-allowed}.export-menu-count{color:var(--text-muted);flex-shrink:0;font-size:.75rem}.export-menu-divider{background:var(--border);height:1px;margin:4px 2px}.roster-header-actions{align-self:center;align-items:center;gap:10px;margin-left:auto;display:flex}.roster-header-actions .export-menu-wrapper{margin-left:0}.filter-menu-wrapper{position:relative}.filter-btn{font-family:var(--font-sans);color:var(--text-secondary);background:var(--surface);border:1px solid var(--border-strong);cursor:pointer;box-shadow:var(--shadow);border-radius:6px;align-items:center;gap:6px;padding:8px 14px;font-size:.8rem;font-weight:500;transition:all .15s;display:flex}.filter-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--text-primary)}.filter-btn:disabled{opacity:.5;cursor:not-allowed}.filter-btn.has-active{color:var(--text-primary);border-color:var(--text-primary)}.filter-badge{background:var(--text-primary);min-width:18px;height:18px;color:var(--bg);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;font-size:.7rem;font-weight:700;display:inline-flex}.filter-menu{z-index:41;background:var(--surface);border:1px solid var(--border);width:300px;max-width:90vw;box-shadow:var(--shadow);border-radius:12px;flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.filter-menu-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 10px 10px;display:flex}.filter-menu-head span{color:var(--text-primary);font-size:.85rem;font-weight:700}.filter-clear{font-family:var(--font-sans);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:.75rem;font-weight:500;transition:color .15s}.filter-clear:hover:not(:disabled){color:var(--text-primary);text-decoration:underline}.filter-clear:disabled{opacity:.4;cursor:not-allowed}.filter-menu-body{max-height:60vh;padding:4px 2px 2px;overflow-y:auto}.filter-facet{padding:8px 8px 10px}.filter-facet+.filter-facet{border-top:1px solid var(--border)}.filter-facet-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px;font-size:.7rem;font-weight:700}.filter-facet-options{flex-direction:column;gap:1px;display:flex}.filter-option{cursor:pointer;border-radius:6px;align-items:center;gap:9px;padding:7px 8px;transition:background .15s;display:flex}.filter-option:hover{background:var(--surface-hover)}.filter-option input[type=checkbox],.note-checkbox-label input[type=checkbox]{appearance:none;border:1.5px solid var(--border-strong);background:var(--bg);cursor:pointer;border-radius:5px;flex-shrink:0;width:18px;height:18px;margin:0;transition:background .15s,border-color .15s;position:relative}.filter-option input[type=checkbox]:hover,.note-checkbox-label input[type=checkbox]:hover{border-color:var(--text-secondary)}.filter-option input[type=checkbox]:checked,.note-checkbox-label input[type=checkbox]:checked{background:var(--text-primary);border-color:var(--text-primary)}.filter-option input[type=checkbox]:checked:after,.note-checkbox-label input[type=checkbox]:checked:after{content:"";border:solid var(--bg);border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:2px;left:5px;transform:rotate(45deg)}.filter-option input[type=checkbox]:focus-visible,.note-checkbox-label input[type=checkbox]:focus-visible{outline:2px solid var(--text-secondary);outline-offset:2px}.filter-option-label{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.85rem;overflow:hidden}.filter-option.checked .filter-option-label{font-weight:600}.filter-option-count{color:var(--text-muted);flex-shrink:0;font-size:.75rem}.active-filters-row{flex-wrap:wrap;align-items:center;gap:8px;margin:-12px 0 24px;display:flex}.active-filter-chip{font-family:var(--font-sans);color:var(--text-primary);background:var(--surface);border:1px solid var(--border-strong);cursor:pointer;border-radius:16px;align-items:center;gap:5px;padding:5px 10px;font-size:.78rem;font-weight:500;transition:all .15s;display:inline-flex}.active-filter-chip:hover{border-color:var(--text-primary)}.active-filters-clear{font-family:var(--font-sans);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:4px 2px;font-size:.78rem;font-weight:500}.active-filters-clear:hover{color:var(--text-primary);text-decoration:underline}.status-pill{text-transform:uppercase;letter-spacing:.04em;border:1px solid #0000;border-radius:5px;align-items:center;padding:3px 9px;font-size:.72rem;font-weight:700;display:inline-flex}.status-pill.status-active{color:#2ea865;background:#22a05a24;border-color:#22a05a59}.status-pill.status-inactive{color:#78829a;background:#78829124;border-color:#78829159}.status-pill.status-loa{color:#d0a020;background:#d2a01e24;border-color:#d2a01e59}.status-pill.status-awol{color:#e07828;background:#e1782824;border-color:#e1782859}.status-pill.status-separated{color:#dc5656;background:#dc464624;border-color:#dc464661}.page-title{color:var(--text-primary);font-size:1.75rem;font-weight:700;font-family:var(--font-heading)}.page-subtitle{color:var(--text-muted);font-size:.85rem}.placeholder-box{color:var(--text-muted)}.settings-modal{max-width:480px}.settings-modal .page-header{margin-bottom:20px;padding-right:24px}.settings-modal .modal-scroll-area{border-top:none;margin-top:0;padding-top:0}.settings-modal .settings-section{background:var(--bg);max-width:none;box-shadow:var(--shadow)}.settings-modal .settings-section:last-child{margin-bottom:0}.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);max-width:560px;margin-bottom:20px;padding:24px}.settings-section-title{color:var(--text-primary);font-size:1rem;font-weight:600;font-family:var(--font-heading)}.settings-section-desc{color:var(--text-muted);margin-top:4px;margin-bottom:16px;font-size:.85rem}.theme-toggle{gap:8px;display:flex}.theme-option{font-family:var(--font-sans);color:var(--text-secondary);background:var(--bg);border:1px solid var(--border-strong);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:9px 16px;font-size:.875rem;font-weight:500;transition:all .15s;display:flex}.theme-option:hover{color:var(--text-primary)}.theme-option.active{background:var(--text-primary);color:var(--bg);border-color:var(--text-primary)}.account-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.avatar-img{object-fit:cover;border-radius:999px;flex-shrink:0}.avatar-fallback{background:var(--surface-hover);border:1px solid var(--border-strong);color:var(--text-secondary);font-family:var(--font-heading);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.member-modal-header{text-align:center;flex-direction:column;align-items:center;gap:4px;margin-bottom:8px;display:flex}.member-photo-img{object-fit:cover;border:1px solid var(--border);box-shadow:var(--shadow);border-radius:999px}.member-photo-fallback{background:var(--surface-hover);border:1px solid var(--border-strong);color:var(--text-secondary);font-family:var(--font-heading);border-radius:999px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.member-modal-header .modal-title{margin-top:8px;margin-bottom:0;padding-right:0}.account-chip{background:var(--surface);border:1px solid var(--border);cursor:pointer;box-shadow:var(--shadow);border-radius:999px;align-self:center;align-items:center;gap:10px;margin-left:auto;padding:6px 14px 6px 6px;transition:border-color .15s;display:flex}.account-chip:hover{border-color:var(--border-strong)}.account-chip-name{font-family:var(--font-sans);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:.85rem;font-weight:600;overflow:hidden}.profile-row{align-items:center;gap:16px;display:flex}.profile-name-field{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.profile-name-field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.profile-name-input-row{gap:8px;display:flex}.profile-name-input-row input{min-width:0;font-family:var(--font-sans);color:var(--text-primary);background:var(--bg);border:1px solid var(--border-strong);border-radius:6px;outline:none;flex:1;padding:9px 12px;font-size:.9rem}.profile-name-input-row input:focus{border-color:var(--text-primary)}.profile-save-btn{font-family:var(--font-sans);color:var(--bg);background:var(--text-primary);cursor:pointer;border:none;border-radius:6px;padding:0 16px;font-size:.85rem;font-weight:600;transition:opacity .15s}.profile-save-btn:hover:not(:disabled){opacity:.85}.profile-save-btn:disabled{opacity:.4;cursor:not-allowed}.account-info{flex-direction:column;gap:6px;min-width:0;display:flex}.account-info .user-email{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.account-info .role-badge{align-self:flex-start}.table-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:16px;overflow:hidden}.roster-table{border-collapse:collapse;width:100%}.roster-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border);padding:14px 20px;font-size:.75rem;font-weight:600}.roster-table tbody td{color:var(--text-secondary);border-bottom:1px solid var(--border);padding:14px 20px;font-size:.9rem}.roster-table tbody tr:last-child td{border-bottom:none}.roster-row{cursor:pointer;transition:background .15s}.roster-row:hover{background:var(--surface-hover)}.roster-name-cell{color:var(--text-primary);font-weight:500}.roster-role{color:var(--text-muted);margin-top:1px;font-size:.75rem;font-weight:500;display:block}.roster-card-meta .roster-role{color:var(--text-primary);margin-top:0;font-size:.8rem;font-weight:600;display:inline}.roster-cards{flex-direction:column;gap:10px;margin-top:16px;display:none}.roster-card{text-align:left;background:var(--surface);border:1px solid var(--border);width:100%;box-shadow:var(--shadow);cursor:pointer;font-family:var(--font-sans);border-radius:12px;flex-direction:column;gap:10px;padding:14px 16px;transition:border-color .15s,background .15s;display:flex}.roster-card:active{background:var(--surface-hover);border-color:var(--border-strong)}.roster-card-main{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.roster-card-name{color:var(--text-primary);font-size:1rem;font-weight:600}.roster-card-nick{color:var(--text-secondary);font-size:.85rem}.roster-card-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.roster-card-class{color:var(--text-secondary);font-size:.8rem}.roster-card-dot{color:var(--text-muted);font-size:.7rem}@media (width<=860px){.app-shell{flex-direction:column}.sidebar{width:100%;height:auto;padding:0;padding-bottom:env(safe-area-inset-bottom,0px);border-right:none;border-top:1px solid var(--border);z-index:50;border-radius:0;flex-direction:row;align-items:stretch;gap:0;position:fixed;inset:auto 0 0;box-shadow:0 -2px 14px #0000002e}.sidebar-brand{display:none}.sidebar-nav{flex-direction:row;flex:1;justify-content:space-around;align-items:stretch;gap:0;width:100%}.sidebar-nav-item{border-top:2px solid #0000;border-radius:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:10px 4px;font-size:.68rem;font-weight:500;position:relative}.sidebar-nav-item span:first-of-type{flex:none;font-size:.68rem;line-height:1}.sidebar-nav-item.active{color:var(--text-primary);border-top-color:var(--text-primary);background:var(--surface-hover)}.sidebar-nav-item .tab-count{min-width:16px;height:16px;font-size:.62rem;position:absolute;top:4px;left:calc(50% + 6px)}.content-area{padding:28px 28px calc(96px + env(safe-area-inset-bottom,0px))}}@media (width<=600px){.content-area{padding:20px 16px calc(96px + env(safe-area-inset-bottom,0px))}.sidebar-nav-item{padding:9px 4px}.page-header{flex-wrap:wrap;margin-bottom:16px}.page-title{font-size:1.35rem}.toolbar{flex-direction:column;align-items:stretch;gap:14px;margin-bottom:20px}.search-wrapper{max-width:none}.roster-table-wrap{display:none}.roster-cards{display:flex}.members-grid{grid-template-columns:1fr}.settings-section{max-width:100%;padding:18px}.account-row{flex-direction:column;align-items:flex-start;gap:12px}.roster-header-actions{width:100%}.export-csv-btn{justify-content:center;width:100%;margin-left:0}.filter-menu-wrapper,.roster-header-actions .export-menu-wrapper{flex:1}.filter-btn{justify-content:center;width:100%}.active-filters-row{margin-top:4px}.filter-menu,.export-menu{width:100%;min-width:0;max-width:100%;max-height:78vh;padding:10px 12px calc(20px + env(safe-area-inset-bottom,0px));z-index:101;border-radius:16px 16px 0 0;position:fixed;inset:auto 0 0}.filter-menu-body{max-height:60vh}.dropdown-backdrop{z-index:100;background:#00000080}.modal-overlay{align-items:flex-end;padding:0}.modal-content{width:100%;max-width:100%;max-height:92dvh;padding:22px 20px calc(22px + env(safe-area-inset-bottom,0px));border-radius:18px 18px 0 0}.modal-title{padding-right:104px;font-size:1.2rem}.modal-close{background:var(--surface-hover);width:44px;height:44px;top:8px;right:8px}.modal-edit-btn span{display:none}.modal-edit-btn{padding:9px;top:12px;right:60px}.approval-actions{flex-direction:column-reverse}.approve-btn,.reject-btn{justify-content:center;width:100%}.approval-photo-row{flex-direction:column;align-items:flex-start}.account-chip-name{max-width:120px}.calendar-widget-header{flex-wrap:wrap;gap:8px}.calendar-nav{justify-content:space-between;width:100%}.calendar-month-grid{gap:3px}.calendar-day-cell{border-radius:5px;align-items:center;gap:3px;padding:4px 3px}.calendar-day-number{font-size:.7rem}.calendar-weekday-label{font-size:.6rem}.calendar-day-pills{flex-flow:wrap;justify-content:center;gap:3px}.calendar-event-pill{background:var(--text-primary);color:#0000;border-radius:50%;flex:none;width:5px;height:5px;padding:0;font-size:0;overflow:hidden}.calendar-event-overflow{display:none}}@media (width<=400px){.sidebar-nav-item span:first-of-type{display:none}.sidebar-nav-item{gap:0;padding:16px 4px}.sidebar-nav-item .tab-count{top:8px;left:calc(50% + 5px)}}.dashboard-grid{grid-template-columns:1fr 2fr;align-items:stretch;gap:20px;display:grid}.dashboard-col{flex-direction:column;gap:20px;min-width:0;display:flex}.dashboard-stats-row{grid-template-columns:1fr 1fr 1fr;gap:20px;display:grid}.dashboard-cell{min-height:0;display:flex}.dashboard-notes,.dashboard-calendar{flex:1}.widget-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;width:100%;min-height:220px;padding:20px;display:flex}.widget-header{color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:14px;display:flex}.widget-title{color:var(--text-primary);font-size:.95rem;font-weight:600;font-family:var(--font-heading)}.widget-input-row{gap:8px;margin-bottom:14px;display:flex}.widget-input{font-family:var(--font-sans);color:var(--text-primary);background:var(--bg);border:1px solid var(--border-strong);border-radius:6px;outline:none;flex:1;padding:8px 12px;font-size:.85rem}.widget-input:focus{border-color:var(--text-primary)}.widget-add-btn{background:var(--text-primary);width:36px;color:var(--bg);cursor:pointer;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .15s;display:flex}.widget-add-btn:hover:not(:disabled){opacity:.85}.widget-add-btn:disabled{opacity:.4;cursor:not-allowed}.widget-error{color:#f87171;margin-bottom:10px;font-size:.8rem}.widget-empty{color:var(--text-muted);text-align:center;padding:20px 0;font-size:.85rem}.widget-scroll{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex;overflow-y:auto}.widget-icon-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:center;padding:2px;transition:color .15s;display:inline-flex}.widget-icon-btn:hover{color:#f87171}.stat-card{min-height:unset;justify-content:center;align-items:flex-start;gap:6px;padding:16px 18px}.stat-value{color:var(--text-primary);font-size:1.8rem;font-weight:700;font-family:var(--font-heading)}.stat-label{color:var(--text-muted);font-size:.8rem}.announcement-item{border-bottom:1px solid var(--border);padding-bottom:10px}.announcement-item:last-child{border-bottom:none;padding-bottom:0}.announcement-text{color:var(--text-primary);margin-bottom:6px;font-size:.875rem;line-height:1.45}.announcement-meta{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.note-item{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.note-checkbox-label{cursor:pointer;flex:1;align-items:flex-start;gap:10px;min-width:0;display:flex}.note-checkbox-label input[type=checkbox]{accent-color:var(--text-primary);cursor:pointer;flex-shrink:0;margin-top:2px}.note-text{color:var(--text-primary);word-break:break-word;font-size:.875rem;line-height:1.4}.note-item.done .note-text{color:var(--text-muted);text-decoration:line-through}.calendar-widget-card{overflow:visible}.calendar-widget-header{justify-content:space-between;margin-bottom:12px}.calendar-widget-heading{color:var(--text-secondary);font-family:var(--font-heading);align-items:center;gap:8px;display:flex}.calendar-nav{align-items:center;gap:6px;display:flex}.calendar-nav-btn{font-family:var(--font-sans);color:var(--text-secondary);background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:5px 10px;font-size:.78rem;font-weight:500;line-height:1;transition:all .15s}.calendar-nav-btn:hover{color:var(--text-primary);border-color:var(--border-strong);background:var(--surface-hover)}.calendar-nav-arrow{padding:5px 9px;font-size:.95rem}.calendar-grid-wrap{flex-direction:column;flex:1;min-height:0;display:flex}.calendar-weekday-row{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px;display:grid}.calendar-weekday-label{text-align:center;letter-spacing:.03em;color:var(--text-muted);text-transform:uppercase;padding-bottom:4px;font-size:.7rem;font-weight:600}.calendar-month-grid{grid-template-columns:repeat(7,1fr);grid-auto-rows:auto;gap:4px;display:grid}.calendar-day-cell{aspect-ratio:1;background:var(--bg);border:1px solid var(--border);cursor:pointer;text-align:left;font-family:var(--font-sans);border-radius:6px;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;padding:6px;transition:border-color .15s,background .15s;display:flex;overflow:hidden}.calendar-day-cell:hover{border-color:var(--border-strong);background:var(--surface-hover)}.calendar-day-cell.other-month{opacity:.4}.calendar-day-cell.today .calendar-day-number{background:var(--text-primary);min-width:18px;height:18px;color:var(--bg);border-radius:999px;justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.calendar-day-cell.selected{border-color:var(--text-primary)}.calendar-day-number{color:var(--text-secondary);font-size:.78rem;font-weight:600}.calendar-day-pills{flex-direction:column;gap:2px;width:100%;min-width:0;display:flex}.calendar-event-pill{color:var(--text-primary);background:var(--surface-hover);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;width:100%;padding:1px 5px;font-size:.68rem;overflow:hidden}.calendar-event-overflow{color:var(--text-muted);padding:0 5px;font-size:.66rem}.calendar-day-modal{max-width:420px}.calendar-day-popover-list{flex-direction:column;gap:4px;display:flex}.calendar-event{color:inherit;border-radius:6px;align-items:flex-start;gap:14px;padding:10px 8px;text-decoration:none;transition:background .15s;display:flex}.calendar-event:hover{background:var(--surface-hover)}.calendar-event-date{color:var(--text-muted);white-space:nowrap;min-width:70px;padding-top:1px;font-size:.75rem;font-weight:600}.calendar-event-body{flex:1;min-width:0}.calendar-event-title{color:var(--text-primary);font-size:.875rem;font-weight:500}.calendar-event-location{color:var(--text-muted);align-items:center;gap:4px;margin-top:3px;font-size:.75rem;display:flex}.calendar-event-link-icon{color:var(--text-muted);flex-shrink:0;margin-top:3px}@media (width<=1100px){.dashboard-grid{grid-template-columns:1fr}}@media (width<=600px){.dashboard-grid,.dashboard-col{gap:12px}.dashboard-stats-row{grid-template-columns:repeat(3,1fr);gap:10px}.widget-card{padding:16px}.widget-title{font-size:.9rem}.stat-card{text-align:center;align-items:center;gap:4px;padding:12px 6px}.stat-value{font-size:1.3rem}.stat-label{font-size:.66rem;line-height:1.25}}body{margin:0}*{scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{display:none}#root{min-height:100svh}
