:root{color:#111827;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f7ff;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:#111827;background:linear-gradient(135deg,#eef4ff 0%,#f8fbff 45%,#eef7ff 100%);min-height:100vh}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}.app-shell{background:linear-gradient(135deg,#eff4fff2,#f9fbfff2);width:100%;min-height:100vh;display:flex}.app-sidebar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);scrollbar-width:thin;background:#ffffffd1;border-right:1px solid #94a3b82e;flex-shrink:0;width:280px;min-width:220px;max-width:100%;transition:transform .25s;overflow:hidden auto}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.content-area{flex:1;min-width:0;padding:20px 24px 28px;overflow:auto}.page-shell{animation:.35s both fadeUp}.page-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffeb;border:1px solid #e2e8f0e6;border-radius:24px;min-width:0;box-shadow:0 20px 50px #0f172a14}.page-card *,.page-shell *{min-width:0}.text-ellipsis,.taskTitle,.message,.preview,.status,.card-title,.card-text,.announcement-text,.task-text{overflow-wrap:anywhere;word-break:break-word;white-space:normal}.page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.section-title{color:#0f172a;margin:0;font-size:1.05rem;font-weight:700}.section-subtitle{color:#64748b;margin-top:4px;font-size:.92rem}.primary-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2563eb 0%,#3b82f6 100%);border:none;border-radius:999px;padding:10px 16px;transition:transform .2s,box-shadow .2s;box-shadow:0 10px 24px #2563eb38}.primary-btn:hover{transform:translateY(-1px);box-shadow:0 14px 28px #2563eb47}.ghost-btn{color:#334155;cursor:pointer;background:#ffffffbf;border:1px solid #94a3b859;border-radius:999px;padding:9px 14px;transition:background .2s,transform .2s}.ghost-btn:hover{background:#f8fafcf2;transform:translateY(-1px)}.chip{color:#1d4ed8;background:#2563eb14;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.tag{border-radius:999px;align-items:center;padding:4px 9px;font-size:.74rem;font-weight:600;display:inline-flex}.tag-blue{color:#1d4ed8;background:#2563eb1f}.tag-green{color:#15803d;background:#16a34a1f}.tag-orange{color:#c2410c;background:#f9731624}.tag-gray{color:#475569;background:#94a3b829}.text-ellipsis{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.dashboard-item-link{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 0;display:flex}.dashboard-item-link:hover{background:#eff6ff8c}.dashboard-item-link:focus-visible{outline-offset:2px;border-radius:8px;outline:2px solid #2563eb}.dashboard-quick-links{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;display:grid}.dashboard-quick-link{color:#334155;text-align:left;cursor:pointer;background:#ffffffd9;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;min-height:96px;padding:14px;transition:border-color .18s,background .18s,transform .18s;display:flex}.dashboard-quick-link:hover{background:#f8fbff;border-color:#93c5fd;transform:translateY(-2px)}.dashboard-quick-link:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.dashboard-quick-icon{color:#1d4ed8;background:#eff6ff;border-radius:10px;flex:0 0 38px;place-items:center;width:38px;height:38px;display:grid}.dashboard-quick-label{overflow-wrap:anywhere;font-size:.88rem;font-weight:650;line-height:1.3}.dashboard-calendar{margin-bottom:16px;padding:20px}.dashboard-calendar-heading,.calendar-month-controls{justify-content:space-between;align-items:center;gap:12px;display:flex}.dashboard-calendar-heading{margin-bottom:18px}.calendar-month-controls{color:#1e293b;justify-content:flex-end}.calendar-nav{border-radius:50%;width:38px;height:38px;padding:0;font-size:1.4rem;line-height:1}.dashboard-calendar-content{grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr);gap:22px;display:grid}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.calendar-weekday{color:#64748b;text-align:center;padding:6px 0;font-size:.78rem;font-weight:700}.calendar-day{color:#334155;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;min-height:48px;display:flex;position:relative}.calendar-day:not(.calendar-day-empty):hover{background:#f1f5f9}.calendar-day.is-today{color:#1d4ed8;border-color:#93c5fd;font-weight:700}.calendar-day.is-selected{color:#fff;background:#1d4ed8}.calendar-day-dot{background:#10b981;border-radius:50%;width:5px;height:5px}.calendar-day.is-selected .calendar-day-dot{background:#fff}.calendar-meeting-list{border-left:1px solid #e2e8f0;min-width:0;padding-left:20px}.calendar-meeting-list h3{color:#0f172a;margin:0 0 10px;font-size:.95rem}.calendar-meeting{text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #e2e8f0;gap:3px;width:100%;padding:10px 0;display:grid}.calendar-meeting-time,.calendar-meeting-link{color:#64748b;font-size:.78rem}.calendar-meeting-title{color:#0f172a;overflow-wrap:anywhere;font-weight:700}.calendar-meeting-link{color:#1d4ed8}.calendar-empty{color:#64748b;margin:0;font-size:.88rem}.meeting-highlighted{outline:3px solid #2563eb8c;transition:background .3s;background:#eff6ff!important}.meeting-attendance{border-top:1px solid #e2e8f0;margin-top:16px;padding-top:14px}.meeting-attendance-label,.attendance-reason-field>span{color:#475569;margin-bottom:8px;font-size:.84rem;font-weight:700;display:block}.meeting-attendance-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.attendance-option{color:#334155;min-height:40px;font:inherit;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:8px 10px;font-size:.86rem;font-weight:600}.attendance-option.is-selected{color:#1d4ed8;background:#eff6ff;border-color:#2563eb}.attendance-option:disabled{cursor:not-allowed;opacity:.5}.attendance-reason-field{margin-top:12px;display:block}.attendance-reason-field textarea{color:#0f172a;resize:vertical;background:#fff;border:1px solid #cbd5e1;border-radius:10px;width:100%;min-height:68px;padding:10px 12px}.attendance-required,.attendance-error{color:#b91c1c}.meeting-attendance-footer{justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.attendance-save{min-height:40px;padding:8px 14px}.attendance-save:disabled{cursor:not-allowed;opacity:.5}.attendance-capacity-note,.attendance-error{font-size:.82rem}.attendance-error{margin:8px 0 0}.meeting-attendance-summary{color:#475569;flex-wrap:wrap;gap:8px 14px;margin-top:12px;font-size:.8rem;display:flex}.meeting-attendance-summary span{background:#f1f5f9;border-radius:999px;padding:4px 8px}.auth-shell{background:radial-gradient(circle at 0 0,#2563eb2e,#0000 30%),linear-gradient(135deg,#eef4ff,#f8fbff);place-items:center;min-height:100vh;padding:24px;display:grid}.loading-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffe0;border-radius:24px;flex-direction:column;align-items:center;gap:12px;padding:28px 34px;display:flex;box-shadow:0 18px 48px #0f172a14}.spinner{border:3px solid #2563eb29;border-top-color:#2563eb;border-radius:50%;width:42px;height:42px;animation:.8s linear infinite spin}.loading-shell{flex-direction:column;gap:12px;padding:16px 0;display:flex}.loading-bar{background:linear-gradient(90deg,#e2e8f0e6,#f8fafcf2);border-radius:999px;height:12px;animation:1.2s ease-in-out infinite pulse}.mobile-menu-btn{color:#1d4ed8;cursor:pointer;background:#2563eb1a;border:none;border-radius:999px;width:42px;height:42px;font-size:1.15rem;display:none}.mobile-overlay{z-index:1000;background:#0f172a73;position:fixed;inset:0}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@media (width<=900px){.app-shell{flex-direction:column}.app-sidebar{z-index:1100;overscroll-behavior:contain;border-bottom:none;border-right:1px solid #94a3b82e;width:min(84vw,320px);min-width:0;position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(-105%);box-shadow:0 20px 60px #0f172a29}.app-sidebar.mobile-open{transform:translate(0)}.mobile-menu-btn{justify-content:center;align-items:center;display:inline-flex}.content-area{padding:16px}.page-header{flex-direction:column;align-items:flex-start}.page-card{border-radius:18px}.primary-btn,.ghost-btn{justify-content:center;width:auto}.bylaws-layout,.handbook-layout{grid-template-columns:1fr!important}.bylaws-toc{max-height:260px!important;position:static!important}.dashboard-calendar-content{grid-template-columns:minmax(0,1fr);gap:16px}.calendar-meeting-list{border-top:1px solid #e2e8f0;border-left:0;padding:14px 0 0}.meeting-attendance-options{gap:6px}.attendance-option{padding-inline:6px;font-size:.8rem}}@media (width<=700px){.content-area{padding:12px}.section-title{font-size:.98rem}.dashboard-quick-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dashboard-quick-link{min-height:88px;padding:12px}.dashboard-calendar{padding:16px}.dashboard-calendar-heading{flex-direction:column;align-items:flex-start;gap:10px}.calendar-month-controls{justify-content:space-between;width:100%}.calendar-grid{gap:2px}.calendar-day{border-radius:9px;min-height:40px}.bylaws-page,.handbook-page{padding:4px 0 28px!important}.bylaws-toolbar{align-items:stretch!important;margin-bottom:14px!important}.bylaws-toolbar>button,.bylaws-tools,.bylaws-search{width:100%}.bylaws-tools{grid-template-columns:minmax(0,1fr) auto;align-items:stretch!important;display:grid!important}.bylaws-tools>button:last-child{grid-column:1/-1;width:100%}.bylaws-search{min-width:0!important}.bylaws-paper{border-radius:14px!important;padding:22px 16px!important}.bylaws-paper h1{line-height:1.15;font-size:26px!important}.bylaws-paper h2{overflow-wrap:anywhere;word-break:break-word}.bylaws-content{font-size:15px!important;line-height:1.7!important}.handbook-page .page-card:first-child{padding:22px 18px!important}.handbook-page .page-card:first-child h1{line-height:1.2;font-size:1.7rem!important}.handbook-card{border-radius:16px!important;padding:18px!important}.members-header{flex-direction:column;align-items:stretch}.members-search{max-width:none}.admin-task-actions{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;width:100%;display:grid}.admin-task-actions .ghost-btn{width:auto}.admin-delete-btn{min-width:72px;padding-inline:12px}.admin-log-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.admin-empty-state{color:#64748b;padding:18px 0 6px;font-size:.9rem}}
