*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100vh;margin:0}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}#root{min-height:100vh}.app{color:#202124;background:#f5f6f8;min-height:100vh}.content{max-width:1200px;margin:0 auto;padding:40px}.loading-screen{justify-content:center;align-items:center;min-height:100vh;display:flex}.app-header h1{letter-spacing:1px;margin:0;font-size:28px}.app-header p{color:#aeb3b9;margin:4px 0 0;font-size:14px}.user-area{align-items:center;gap:12px;margin-top:5px;display:flex}.user-area .secondary-button{white-space:nowrap;color:#fff;cursor:pointer;background:0 0;border:1px solid #555;border-radius:6px;padding:7px 12px;font-size:13px}.user-area .secondary-button:hover{background:#2a2d31;border-color:#777}@media (width<=600px){.user-area{gap:10px}.user-area span{text-overflow:ellipsis;white-space:nowrap;max-width:190px;font-size:13px;overflow:hidden}.user-area .secondary-button{flex-shrink:0;padding:6px 10px;font-size:12px}}.nav{background:#fff;border-bottom:1px solid #ddd;gap:6px;padding:0 40px;display:flex}.nav-link{cursor:pointer;color:#666;background:0 0;border:none;border-bottom:3px solid #0000;padding:18px 16px 15px;font-size:14px}.nav-link:hover{color:#111}.nav-link.active{color:#111;border-bottom-color:#111;font-weight:600}.page-heading{margin-bottom:28px}.page-heading h2{margin:0;font-size:30px}.page-heading p{color:#777;margin:6px 0 0}.page-heading-row{justify-content:space-between;align-items:center;gap:20px;display:flex}.panel{background:#fff;border:1px solid #e1e3e6;border-radius:10px}.panel-header{border-bottom:1px solid #eee;padding:22px 24px}.panel-header h3{margin:0}.panel-header p{color:#777;margin:5px 0 0;font-size:14px}.stats{grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:30px;display:grid}.stat-card{background:#fff;border:1px solid #e1e3e6;border-radius:10px;padding:22px}.stat-card strong{margin-top:12px;font-size:32px;display:block}.stat-card small{color:#777;margin-top:5px;display:block}.stat-label{color:#666;font-size:14px}.stat-card.warning{border-left:4px solid #e3a008}.stat-card.danger{border-left:4px solid #c93434}.primary-button{color:#fff;cursor:pointer;background:#17191c;border:none;border-radius:7px;padding:11px 18px;font-size:14px;font-weight:600}.primary-button:hover{background:#33373c}.secondary-button{cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:6px;padding:7px 11px;font-size:12px}.secondary-button:hover{background:#f4f4f4}.danger-button{color:#c93434;cursor:pointer;background:#fff;border:1px solid #c93434;border-radius:6px;padding:7px 11px;font-size:12px}.danger-button:hover{background:#fff1f1}.form-grid{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.form-group{flex-direction:column;gap:7px;display:flex}.form-group label{font-size:13px;font-weight:600}.form-group input{width:100%;font:inherit;border:1px solid #ccc;border-radius:6px;padding:11px 12px}.form-group input:focus{border-color:#555;outline:none}.form-actions{justify-content:flex-end;margin-top:22px;display:flex}.status-badge{border-radius:20px;padding:5px 10px;font-size:12px;font-weight:600}.status-badge.active{color:#24733d;background:#e6f4ea}.status-badge.inactive{color:#666;background:#eee}.status-badge.present{color:#24733d;background:#e6f4ea}.status-badge.absent{color:#a52d2d;background:#fff0f0}.status-badge.excused{color:#806513;background:#fff8e1}.empty-state{text-align:center;color:#777;padding:60px 30px}.empty-state h4{color:#444;margin:0 0 8px}.empty-state p{margin:0}.message-success{color:#24733d;background:#e6f4ea;border-radius:6px;padding:12px 15px}.message-error{color:#a52d2d;background:#fff0f0;border-radius:6px;padding:12px 15px}.login-page{background:#f5f5f5;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:#fff;border-radius:12px;width:100%;max-width:420px;padding:40px;box-shadow:0 10px 30px #00000014}.login-brand h1{margin:0}.login-brand p{margin-top:6px}.login-card h2{margin-bottom:24px}.login-card .form-group{margin-bottom:18px}.login-button{width:100%;margin-top:8px}.login-error{color:#b42318;margin:12px 0}.dashboard-stats{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;display:grid}.dashboard-stat{flex-direction:column;gap:7px;padding:22px;display:flex}.dashboard-stat-label{color:#777;text-transform:uppercase;letter-spacing:.4px;font-size:12px;font-weight:600}.dashboard-stat strong{font-size:30px;line-height:1}.dashboard-grid{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;display:grid}.dashboard-section{overflow:hidden}.last-meeting-stats{grid-template-columns:repeat(3,1fr);padding:25px;display:grid}.last-meeting-stats>div{border-right:1px solid #eee;flex-direction:column;align-items:center;gap:5px;display:flex}.last-meeting-stats>div:last-child{border-right:0}.last-meeting-stats strong{font-size:28px}.last-meeting-stats span{color:#777;font-size:12px}.follow-up-count{color:#a52d2d;background:#fff0f0;border-radius:20px;justify-content:center;align-items:center;min-width:28px;height:28px;padding:0 8px;font-size:12px;font-weight:700;display:flex}.dashboard-good{padding:30px 20px}.dashboard-check{color:#24733d;background:#e6f4ea;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;margin:0 auto 10px;font-size:22px;font-weight:700;display:flex}.dashboard-good h4{margin:0 0 5px}.dashboard-good p{margin:0}.follow-up-list{flex-direction:column;display:flex}.follow-up-member{border-top:1px solid #eee;align-items:center;gap:12px;padding:14px 20px;display:flex}.follow-up-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.follow-up-info span{color:#777;font-size:12px}.follow-up-badge{color:#a52d2d;background:#fff0f0;border-radius:20px;padding:5px 9px;font-size:11px;font-weight:600}.follow-up-member-link{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0}.follow-up-member-link:hover{background:#fafafa}.follow-up-member-link:hover .follow-up-info strong{text-decoration:underline}.follow-up-member-link:focus-visible{outline-offset:-2px;outline:2px solid}.dashboard-follow-up-notes{color:#555;white-space:normal;margin:6px 0 0;font-size:13px;line-height:1.45}.follow-up-info .dashboard-follow-up-notes{max-width:600px}.recent-meetings{margin-bottom:20px}.recent-meeting-list{flex-direction:column;display:flex}.recent-meeting-row{border-top:1px solid #eee;justify-content:space-between;align-items:center;gap:20px;padding:15px 20px;display:flex}.recent-meeting-row strong{font-size:13px}.recent-meeting-counts{gap:7px;display:flex}.member-form-panel{margin-bottom:24px}.member-form{padding:24px}.member-list{flex-direction:column;display:flex}.member-row{border-bottom:1px solid #eee;align-items:center;gap:14px;padding:16px 22px;display:flex}.member-row:last-child{border-bottom:none}.member-avatar{background:#e8eaed;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;font-size:13px;font-weight:700;display:flex}.member-info{flex-direction:column;flex:1;gap:3px;display:flex}.member-info span{color:#777;font-size:13px}.member-actions{gap:8px;display:flex}.member-inactive{opacity:.6}.member-profile-link{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:12px;padding:0;display:flex}.member-profile-link .member-info strong{cursor:pointer}.member-profile-link:hover .member-info strong{text-decoration:underline}.member-heading-actions{align-items:flex-end;gap:12px;display:flex}.member-sort{flex-direction:column;gap:4px;display:flex}.member-sort label{color:#777;font-size:11px;font-weight:600}.member-sort select{font:inherit;cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:6px;padding:8px 10px;font-size:13px}.member-profile-back{color:#555;font:inherit;cursor:pointer;background:0 0;border:0;margin-bottom:16px;padding:0;font-size:13px;font-weight:600}.member-profile-back:hover{color:#111}.member-profile-header{align-items:center;gap:18px;margin-bottom:20px;padding:24px;display:flex}.member-profile-avatar{color:#fff;background:#222;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;font-size:20px;font-weight:700;display:flex}.member-profile-heading{flex:1}.member-profile-heading h2{margin:0 0 5px}.member-profile-heading p{color:#777;margin:0;font-size:13px}.member-profile-contact{color:#555;flex-wrap:wrap;gap:8px 18px;margin-top:9px;font-size:12px;display:flex}.member-profile-stats{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px;display:grid}.member-profile-stat{flex-direction:column;gap:7px;padding:20px;display:flex}.member-profile-stat span{color:#777;text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:600}.member-profile-stat strong{font-size:25px}.member-profile-history{overflow:hidden}.member-profile-history-list{flex-direction:column;display:flex}.member-profile-history-row{border-top:1px solid #eee;justify-content:space-between;align-items:center;gap:20px;padding:14px 20px;display:flex}.member-profile-history-row strong{font-size:13px}.member-follow-up-alert{border-left:4px solid #d97706;margin-top:20px;padding:0;overflow:hidden}.member-follow-up-alert-content{justify-content:space-between;align-items:center;gap:24px;padding:24px;display:flex}.member-follow-up-label{color:#8a5a00;text-transform:uppercase;letter-spacing:.04em;background:#fff3cd;border-radius:999px;margin-bottom:8px;padding:5px 10px;font-size:12px;font-weight:700;display:inline-block}.member-follow-up-alert h3{margin:0 0 6px;font-size:20px}.member-follow-up-alert p{color:#666;margin:0}.member-follow-up-action{justify-content:flex-end;margin-top:20px;display:flex}.member-follow-up-form-panel{margin-top:20px;padding:24px}.member-follow-up-form-panel .panel-header{margin-bottom:22px}.member-follow-up-form-panel .panel-header h3{margin:0 0 4px}.member-follow-up-form-panel .panel-header p{color:#777;margin:0}.member-follow-up-form-panel .member-form{flex-direction:column;gap:20px;display:flex}.member-follow-up-form-panel .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.member-follow-up-form-panel .form-group{flex-direction:column;gap:7px;display:flex}.member-follow-up-form-panel label{color:#444;font-size:13px;font-weight:700}.member-follow-up-form-panel input,.member-follow-up-form-panel select,.member-follow-up-form-panel textarea{box-sizing:border-box;width:100%;font:inherit;background:#fff;border:1px solid #d8d8d8;border-radius:8px;padding:11px 12px}.member-follow-up-form-panel textarea{resize:vertical}.member-follow-up-form-panel .form-actions{justify-content:flex-end;gap:10px;display:flex}.member-follow-up-history{margin-top:20px;overflow:hidden}.member-follow-up-history .panel-header{border-bottom:1px solid #e5e5e5;padding:22px 24px}.member-follow-up-history .panel-header h3{margin:0 0 4px}.member-follow-up-history .panel-header p{color:#777;margin:0}.follow-up-history-list{flex-direction:column;display:flex}.follow-up-history-item{border-bottom:1px solid #eee;padding:20px 24px}.follow-up-history-item:last-child{border-bottom:none}.follow-up-history-top{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.follow-up-history-top>div{flex-direction:column;gap:4px;display:flex}.follow-up-history-top span{color:#777;font-size:13px}.follow-up-response{white-space:nowrap;border-radius:999px;align-items:center;padding:5px 10px;font-weight:700;display:inline-flex;font-size:12px!important}.follow-up-response.awaiting{color:#8a5a00;background:#fff3cd}.follow-up-response.responded{color:#24733c;background:#e5f5ea}.follow-up-response.no-response{color:#b42318;background:#fde8e8}.follow-up-notes{color:#555;margin:14px 0 0;line-height:1.5}.follow-up-history-actions{gap:8px;margin-top:16px;display:flex}.attendance-panel{overflow:hidden}.attendance-date{border-bottom:1px solid #eee;flex-direction:column;gap:7px;padding:22px 24px;display:flex}.attendance-date label{font-size:13px;font-weight:600}.attendance-date input{width:190px;font:inherit;border:1px solid #ccc;border-radius:6px;padding:10px 12px}.attendance-controls{border-bottom:1px solid #eee;align-items:flex-end;gap:18px;padding:22px 24px;display:flex}.attendance-control{flex-direction:column;gap:7px;display:flex}.attendance-control label{font-size:13px;font-weight:600}.attendance-control input,.attendance-control select{width:200px;font:inherit;background:#fff;border:1px solid #ccc;border-radius:6px;padding:10px 12px}.attendance-control select{cursor:pointer}.existing-meeting{color:#806513;font-size:12px;font-weight:600}.existing-meeting-notice{color:#806513;background:#fff8e1;border-bottom:1px solid #eee;padding:10px 24px;font-size:12px;font-weight:600}.attendance-list{flex-direction:column;display:flex}.attendance-row{border-bottom:1px solid #eee;align-items:center;gap:14px;padding:16px 22px;display:flex}.attendance-member{flex:1}.attendance-options{gap:7px;display:flex}.attendance-button{cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:6px;padding:8px 13px}.attendance-button:hover{background:#f5f5f5}.attendance-button.selected{font-weight:600}.attendance-button.selected.present{color:#24733d;background:#e6f4ea;border-color:#67a878}.attendance-button.selected.absent{color:#a52d2d;background:#fff0f0;border-color:#d88787}.attendance-button.selected.excused{color:#806513;background:#fff8e1;border-color:#d6b65c}.attendance-footer{background:#fafafa;justify-content:space-between;align-items:center;padding:20px 22px;display:flex}.attendance-footer span{color:#777;font-size:13px}.attendance-success{color:#24733d;background:#e6f4ea;border:1px solid #a8d5b5;border-radius:8px;align-items:center;gap:14px;margin-bottom:20px;padding:18px 20px;display:flex}.success-icon{color:#fff;background:#24733d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:22px;font-weight:700;display:flex}.attendance-success strong{font-size:16px;display:block}.attendance-success p{margin:4px 0 0;font-size:14px}.attendance-summary{text-align:center;max-width:600px;margin:0 auto;padding:45px 35px}.attendance-summary-check{color:#24733d;background:#e6f4ea;border-radius:50%;justify-content:center;align-items:center;width:58px;height:58px;margin:0 auto 14px;font-size:28px;font-weight:700;display:flex}.attendance-summary h3{margin:0;font-size:22px}.attendance-summary-date{color:#777;margin:6px 0 30px;font-size:13px}.attendance-rate{flex-direction:column;align-items:center;gap:5px;margin-bottom:14px;display:flex}.attendance-rate strong{font-size:48px;line-height:1}.attendance-rate span{color:#777;text-transform:uppercase;letter-spacing:.6px;font-size:12px;font-weight:600}.attendance-progress{background:#eee;border-radius:20px;width:100%;height:10px;margin-bottom:32px;overflow:hidden}.attendance-progress-fill{background:#24733d;border-radius:20px;height:100%;transition:width .4s}.attendance-summary-counts{grid-template-columns:repeat(3,1fr);margin-bottom:20px;display:grid}.attendance-summary-counts>div{border-right:1px solid #eee;flex-direction:column;gap:5px;display:flex}.attendance-summary-counts>div:last-child{border-right:0}.attendance-summary-counts strong{font-size:27px}.attendance-summary-counts span{color:#777;font-size:12px}.attendance-recorded{color:#777;margin:22px 0;font-size:12px}.attendance-edit-button{min-width:150px}.history-list{flex-direction:column;gap:14px;display:flex}.history-card{overflow:hidden}.history-summary{text-align:left;width:100%;font:inherit;background:#fff;border:0;align-items:stretch;gap:20px;display:flex}.history-summary-main{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;justify-content:space-between;align-items:center;gap:20px;padding:20px 12px 20px 22px;display:flex}.history-summary-main:hover{background:#fafafa}.history-date{flex-direction:column;flex:1;gap:4px;display:flex}.history-date strong{font-size:15px}.history-date span{color:#777;font-size:12px}.history-counts{gap:8px;display:flex}.history-count{border-radius:20px;padding:6px 10px;font-size:12px;font-weight:600}.history-count.present{color:#24733d;background:#e6f4ea}.history-count.absent{color:#a52d2d;background:#fff0f0}.history-count.excused{color:#806513;background:#fff8e1}.history-arrow{color:#777;font-size:12px}.history-details{border-top:1px solid #eee}.history-member-row{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:13px 22px;display:flex}.history-member-row:last-child{border-bottom:0}.history-member{align-items:center;gap:12px;display:flex}.history-no-records{color:#777;padding:20px 22px}.history-actions{background:#fafafa;border-top:1px solid #eee;justify-content:space-between;align-items:center;gap:20px;padding:18px 22px;display:flex}.history-delete-info{flex-direction:column;gap:3px;display:flex}.history-delete-info strong{font-size:12px}.history-delete-info span{color:#777;font-size:11px}.history-actions .danger-button{flex-shrink:0;padding:8px 12px}.history-actions .danger-button:disabled{opacity:.6;cursor:not-allowed}.history-delete-button{color:#b42318;cursor:pointer;background:0 0;border:0;border-radius:6px;align-self:center;margin-left:10px;padding:7px 11px;font-size:12px;font-weight:600}.history-delete-button:hover{background:#fff0f0}.history-delete-button:disabled{opacity:.5;cursor:not-allowed}.history-expand-button{color:#777;cursor:pointer;background:0 0;border:0;padding:0 22px 0 12px;font-size:11px}.history-expand-button:hover{color:#222}@media (width<=900px){.dashboard-stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}}@media (width<=800px){.stats{grid-template-columns:repeat(2,1fr)}.nav{padding:0 20px;overflow-x:auto}.nav-link{white-space:nowrap}.content{padding:25px 20px}}@media (width<=700px){.member-row{flex-wrap:wrap}.member-actions{width:100%;padding-left:56px}.member-profile-header{flex-wrap:wrap;align-items:flex-start}.member-profile-stats{grid-template-columns:repeat(2,1fr)}.member-profile-header .status-badge{margin-left:82px}.history-summary{flex-wrap:wrap}.history-summary-main{flex-basis:100%;width:100%}.history-counts{flex-wrap:wrap;justify-content:flex-end}.history-delete-button{margin:0 0 12px 22px}.history-expand-button{margin-left:auto;padding:0 22px 12px 12px}.member-follow-up-alert-content{flex-direction:column;align-items:flex-start}.member-follow-up-alert-content .primary-button{width:100%}.member-follow-up-form-panel .form-grid{grid-template-columns:1fr}.follow-up-history-top{flex-direction:column}.follow-up-history-actions{flex-wrap:wrap}}@media (width<=650px){.attendance-row{flex-wrap:wrap}.attendance-options{width:100%;padding-left:56px}.attendance-controls{flex-direction:column;align-items:stretch}.attendance-control input,.attendance-control select{width:100%}.member-heading-actions{flex-direction:column;align-items:stretch;width:100%}}@media (width<=600px){.form-grid{grid-template-columns:1fr}.page-heading-row{flex-direction:column;align-items:flex-start}.dashboard-stats{grid-template-columns:1fr 1fr}.dashboard-stat{padding:17px}.dashboard-stat strong{font-size:25px}.recent-meeting-row{flex-direction:column;align-items:flex-start}.recent-meeting-counts{flex-wrap:wrap}.attendance-summary{padding:35px 20px}.attendance-rate strong{font-size:42px}.history-actions{flex-direction:column;align-items:stretch}.history-actions .danger-button{width:100%}}@media (width<=500px){.stats{grid-template-columns:1fr}.app-header{padding:20px}}.login-brand{text-align:center;margin-bottom:32px}.login-logo{width:100%;max-width:280px;height:auto;margin:0 auto;display:block}.app-header{color:#fff;background:#15171a;padding:18px 30px}.header-brand{align-items:center;gap:18px;display:flex}.header-forge-logo{object-fit:contain;width:auto;height:90px;display:block}.header-brand-content{flex-direction:column;display:flex}.header-brand-text h1{letter-spacing:1px;margin:0;font-size:28px}.header-brand-text p{color:#aeb3b9;margin:4px 0 0;font-size:14px}.user-area{align-items:center;gap:12px;margin-top:5px;display:flex}
