/*! (c) 2026 Ghostwolf Tools. All rights reserved. Licensed for use, not for copying. */
*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--green: #2e7d32;--green-light: #e8f5e9;--green-mid: #4caf50;--green-dark: #17431f;--green-menu: #1f5a2a;--gold: #f2c230;--line: #dce5dd;--bg: #f4f7f4;--blue: #1565c0;--blue-light: #e3f2fd;--red: #c62828;--red-light: #ffebee;--amber: #e65100;--amber-light: #fff3e0;--gray-50: #fafafa;--gray-100: #f5f5f5;--gray-200: #eeeeee;--gray-300: #e0e0e0;--gray-500: #9e9e9e;--gray-700: #616161;--gray-900: #212121;--shadow-sm: 0 1px 3px rgba(0,0,0,.1);--shadow-md: 0 4px 12px rgba(0,0,0,.12);--shadow-lg: 0 8px 24px rgba(0,0,0,.15);--radius: 10px;--radius-sm: 6px;--transition: .18s ease}html{font-size:16px}html,body{width:100%;min-width:100%}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--gray-900);min-height:100vh;min-width:100vw;overflow-x:hidden;line-height:1.5}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}input,select,textarea,button{font:inherit}.hidden,.app-bootstrap-loading #screen-auth,.app-bootstrap-loading #screen-events{display:none!important}.app-bootstrap-loading #screen-loading{display:block!important}.container{width:100%;max-width:860px;margin:0 auto;padding:0 16px 40px}.mt-8{margin-top:8px}.mb-8{margin-bottom:8px}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.site-header,.screen{width:100vw;min-width:100vw}.site-header{background:var(--green-dark);color:#fff;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:200}.header-inner{max-width:1100px;margin:0 auto;padding:0 16px;height:60px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:10px}.brand-icon-img{width:40px;height:40px;object-fit:contain;display:block}.brand-name{font-size:1.2rem;font-weight:700;letter-spacing:.2px}.brand-sub{font-weight:400;opacity:.85}.brand-version{font-size:.75em;font-weight:400;opacity:.7;white-space:nowrap}.header-user{display:flex;align-items:center;gap:10px}.header-email-label{font-size:.82rem;opacity:.9;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.site-header .header-inner{height:auto;min-height:76px;padding-top:calc(8px + env(safe-area-inset-top));padding-bottom:8px;flex-wrap:wrap;justify-content:center;gap:8px}.site-header .brand{width:100%;justify-content:center}.site-header .brand-name{line-height:1.25}.site-header .header-user{width:100%;flex-direction:column;justify-content:center;gap:6px}.site-header .header-email-label{display:none}.site-header .header-user .btn{width:100%;max-width:220px}.site-header .brand-icon-img{width:36px;height:36px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border:2px solid transparent;border-radius:8px;cursor:pointer;font-weight:600;font-size:.875rem;line-height:1;transition:background var(--transition),color var(--transition),border-color var(--transition);white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--gold);color:var(--green-dark)}.btn-primary:hover:not(:disabled){background:#e6b51f}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover:not(:disabled){background:#8e0000}.btn-amber{background:var(--amber);color:#fff}.btn-amber:hover:not(:disabled){background:#bf360c}.btn-outline{background:transparent;border-color:currentColor}.btn-outline.btn-primary{color:var(--green)}.btn-outline.btn-primary{background:#fff}.btn-outline.btn-primary:hover:not(:disabled){background:var(--green-light)}.btn-outline.btn-danger{color:var(--red)}.site-header .btn-outline:not(.btn-primary):not(.btn-danger){color:#fff;background:var(--green);border-color:var(--green-mid)}.site-header .btn-outline:not(.btn-primary):not(.btn-danger):hover:not(:disabled){background:#388e3c;border-color:#81c784}.site-header .btn-outline:not(.btn-primary):not(.btn-danger):focus-visible{outline:3px solid var(--gold);outline-offset:2px}.btn-outline.btn-danger:hover:not(:disabled){background:var(--red-light)}.btn-ghost{background:transparent;color:var(--gray-700);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--gray-200)}.btn-sm{padding:5px 10px;font-size:.8rem}.btn-xs{padding:3px 7px;font-size:.75rem}.btn-full{width:100%}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:none;padding:24px}.card+.card{margin-top:20px}.report-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;align-items:stretch}.report-buttons .btn{width:100%;white-space:normal;text-align:center;line-height:1.3;padding-top:10px;padding-bottom:10px}.btn-report-featured{background:#1b5e20;color:#fff;flex-direction:column;gap:2px}.btn-report-featured:hover:not(:disabled){background:#14481a}.btn-report-featured small{font-size:.75rem;font-weight:400;opacity:.9}label{display:block;font-weight:600;font-size:.85rem;margin-bottom:4px;color:var(--gray-700)}input[type=text],input[type=email],input[type=time],input[type=date],select,textarea{width:100%;padding:9px 12px;border:1.5px solid var(--gray-300);border-radius:var(--radius-sm);background:#fff;transition:border-color var(--transition);font-size:.9rem}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #2e7d3226}textarea{resize:vertical;min-height:70px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 480px){.field-row{grid-template-columns:1fr}}.screen{padding-top:32px}.auth-login-wrap{max-width:400px;margin:60px auto 0;text-align:center}.auth-login-wrap h2{margin-bottom:12px}.auth-login-copy{color:var(--gray-700);margin-bottom:20px;font-size:.9rem}.auth-login-icon{font-size:3rem;margin-bottom:12px}.hint{font-size:.82rem;color:var(--gray-500);margin-top:6px}.event-card{margin-bottom:28px}.event-card-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:16px}.event-title{font-size:1.25rem;font-weight:700;color:var(--green)}.event-date{font-size:.85rem;color:var(--gray-700);margin-top:2px}.event-date-row{display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap;margin-top:4px;text-align:left}.event-desc{font-size:.88rem;color:var(--gray-700);margin-top:4px}.shift-block{border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);margin-bottom:14px;overflow:hidden}.shift-header{background:var(--gray-50);padding:10px 14px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--gray-200)}.shift-name{font-weight:700;font-size:.95rem}.shift-time{font-size:.82rem;color:var(--gray-700);margin-left:8px}.shift-locked-badge{font-size:.72rem;font-weight:700;background:var(--amber-light);color:var(--amber);border:1px solid var(--amber);border-radius:4px;padding:2px 7px;margin-left:8px}.shift-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;padding:12px 14px}.slot-box{border:1.5px solid var(--gray-300);border-radius:var(--radius-sm);padding:10px 12px;background:#fff;transition:border-color var(--transition)}.slot-box.slot-filled{border-color:var(--green-mid);background:var(--green-light)}.slot-box.slot-mine{border-color:var(--blue);background:var(--blue-light)}.slot-number{font-size:.7rem;font-weight:700;color:var(--gray-500);margin-bottom:4px;text-transform:uppercase}.slot-name{font-weight:700;font-size:.88rem}.slot-note{font-size:.78rem;color:var(--gray-700);margin-top:3px;word-break:break-word}.slot-actions{margin-top:8px;display:flex;gap:5px;flex-wrap:wrap}.slot-empty-label{font-size:.85rem;color:var(--gray-500);font-style:italic}.notice{border-radius:var(--radius-sm);padding:12px 16px;font-size:.9rem;margin-bottom:16px;display:flex;align-items:center;gap:8px}.notice-info{background:var(--blue-light);color:var(--blue);border:1px solid #90caf9}.notice-warn{background:var(--amber-light);color:var(--amber);border:1px solid #ffcc80}.error-msg{color:var(--red);font-size:.85rem;margin-top:6px}.loading-wrap{display:flex;flex-direction:column;align-items:center;gap:16px;padding-top:60px;color:var(--gray-500)}.spinner{width:36px;height:36px;border:3px solid var(--gray-300);border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-overlay{position:fixed;inset:0;background:#0a1e0e8c;z-index:500;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--gray-200)}.modal-title{font-size:1.05rem;font-weight:700}.modal-close-btn{background:none;border:none;cursor:pointer;font-size:1.1rem;color:var(--gray-500);padding:4px 8px;border-radius:4px}.modal-close-btn:hover{background:var(--gray-200)}.modal-body{padding:20px}.modal-body .field-group{margin-bottom:14px}.modal-body .field-group:last-child{margin-bottom:0}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px;flex-wrap:wrap}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--green-dark);color:#fff;padding:10px 18px;border-radius:8px;font-size:.875rem;font-weight:600;box-shadow:var(--shadow-md);z-index:999;animation:fadeSlideUp .3s ease}.toast.toast-error{background:var(--red)}.toast.toast-success{background:var(--green)}@keyframes fadeSlideUp{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.install-helper{position:fixed;left:12px;right:12px;bottom:12px;z-index:1000;background:#fff;border:1px solid var(--gray-300);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.install-helper-title{font-weight:700;font-size:.9rem;color:var(--green)}.install-helper-text{font-size:.8rem;color:var(--gray-700);margin-top:2px}.install-helper-actions{display:flex;gap:6px;flex-shrink:0}@media (min-width: 769px){.install-helper{max-width:460px;left:auto;right:16px}}.offline-helper{position:fixed;left:12px;right:12px;top:12px;z-index:1000;background:var(--amber-light);border:1px solid var(--amber);color:var(--amber);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:10px 14px;font-size:.85rem;font-weight:600;text-align:center}@media (min-width: 769px){.offline-helper{max-width:460px;left:auto;right:16px}}.tabs{display:flex;gap:4px;border-bottom:2px solid var(--gray-200);margin-bottom:24px;overflow-x:auto}.tab-btn{padding:10px 18px;border:none;background:transparent;cursor:pointer;font-weight:600;font-size:.88rem;color:var(--gray-700);border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap;transition:color var(--transition),border-color var(--transition)}.tab-btn:hover{color:var(--green)}.tab-btn.active{color:var(--green);border-bottom-color:var(--green)}.tab-panel{display:none}.tab-panel.active{display:block}.admin-page .tabs{margin:-24px calc(50% - 50vw) 24px;padding:0 max(8px,calc(50vw - 50% + 8px));gap:0;border:0;border-radius:0;background:var(--green-menu);flex-wrap:nowrap}.admin-page .tab-btn{padding:12px 16px;border:0;border-bottom:3px solid transparent;border-radius:0;margin-bottom:0;color:#d8ead9;background:transparent}.admin-page .tab-btn:hover{color:#fff;background:transparent}.admin-page .tab-btn.active{color:#fff;border-bottom-color:var(--gold);background:transparent;box-shadow:none}.admin-tabs-toggle-btn{display:none;align-items:center;margin:-24px calc(50% - 50vw) 0;padding:12px max(16px,calc(50vw - 50% + 16px));border:0;border-bottom:3px solid var(--gold);border-radius:0;background:var(--green-menu);color:#fff;font-weight:600;font-size:.95rem;cursor:pointer;text-align:left}@media (max-width: 768px){.admin-tabs-toggle-btn{display:flex}.admin-page .tabs{display:none;flex-direction:column;gap:0;overflow-x:visible;position:relative;z-index:20;margin:0 calc(50% - 50vw) 16px;padding:0}.admin-page .tabs.tabs-open{display:flex}.admin-page .tab-btn{width:100%;text-align:left;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.12);border-left:4px solid transparent}.admin-page .tab-btn.active{border-bottom-color:#ffffff1f;border-left-color:var(--gold)}.admin-page .tab-btn:last-child{border-bottom:none}.admin-page .tabs:not(.tabs-open)+.tab-panel{margin-top:16px}}.admin-page #tab-events>.toolbar,.admin-page #tab-reports>.card,.admin-page #tab-audit>.toolbar,.admin-page #vol-pin-reset-card,.admin-page #vol-merge-card,.admin-page #tab-settings>.settings-section{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px}.admin-page #tab-events>.toolbar,.admin-page #tab-audit>.toolbar,.admin-page #vol-pin-reset-card,.admin-page #vol-merge-card{margin-bottom:16px}.admin-page #tab-reports>.card,.admin-page #tab-settings>.settings-section{box-shadow:none}.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--line);background:#fff}table{width:100%;border-collapse:collapse;font-size:.875rem}thead th{background:#eef5ef;padding:10px 14px;text-align:left;font-weight:700;color:var(--green-dark);border-bottom:1px solid var(--line);white-space:nowrap}tbody td{padding:9px 14px;border-bottom:1px solid var(--line);vertical-align:top}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--gray-50)}.badge{display:inline-block;font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:99px;text-transform:uppercase;letter-spacing:.5px}.badge-active{background:var(--green-light);color:var(--green)}.badge-inactive{background:var(--gray-200);color:var(--gray-700)}.badge-archived,.badge-locked{background:var(--amber-light);color:var(--amber)}.badge-unlocked{background:var(--green-light);color:var(--green)}.badge-completed{background:var(--blue-light);color:var(--blue)}.badge-position{background:#ede7f6;color:#5e35b1}.badge-category{background:#e3f2fd;color:#1565c0;text-transform:none;letter-spacing:0}.badge-category-xl{font-size:1.25rem;font-weight:700;padding:6px 18px;border-radius:var(--radius-sm)}.badge-category-fundraiser{background:#fce4ec;color:#ad1457}.badge-category-community_event{background:#e8f5e9;color:#2e7d32}.badge-category-outreach{background:#fff3e0;color:#ef6c00}.badge-category-training{background:#ede7f6;color:#5e35b1}.badge-category-meeting{background:#e3f2fd;color:#1565c0}.toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:16px}.toolbar-left,.toolbar-right{display:flex;gap:8px;flex-wrap:wrap}.event-selector-bar{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.event-selector-bar label{margin:0;font-weight:700;white-space:nowrap}.event-selector-bar select{max-width:320px}.event-selector-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.event-selector-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;max-width:460px}.event-selector-actions .btn{width:100%;white-space:nowrap}.settings-section{max-width:520px}.settings-section h3{font-size:1rem;font-weight:700;margin-bottom:12px;color:var(--green-dark)}.in-app-report-shell{position:fixed;inset:0;z-index:700;background:var(--gray-100);overflow-y:auto;padding:16px}.in-app-report-toolbar{position:sticky;top:0;z-index:2;display:flex;gap:8px;flex-wrap:wrap;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:8px;margin-bottom:12px}.in-app-report-content{max-width:860px;margin:0 auto}.in-app-report-card h1{margin-bottom:4px;font-size:1.3rem}body.in-app-report-open{overflow:hidden}.org-letterhead{margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid var(--gray-700)}.org-letterhead-name{font-size:1rem;font-weight:700}.org-letterhead-address{font-size:.82rem;color:var(--gray-700)}.hours-summary{display:flex;gap:14px;margin:12px 0 8px;flex-wrap:wrap}.hours-summary-card{border:1.5px solid #a5d6a7;background:var(--green-light);border-radius:var(--radius-sm);padding:12px 18px;min-width:180px}.hours-summary-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.4px;color:var(--green);font-weight:700}.hours-summary-value{font-size:1.5rem;font-weight:700;color:var(--green);margin-top:4px}@media print{body.in-app-report-printing>:not(#in-app-report-shell){display:none!important}body.in-app-report-printing #in-app-report-shell{position:static;inset:auto;background:#fff;overflow:visible;padding:0}body.in-app-report-printing .in-app-report-toolbar{display:none}body.in-app-report-printing .in-app-report-card{box-shadow:none;border-radius:0;padding:0}}@media (max-width: 900px){input[type=text],input[type=email],input[type=time],input[type=date],input[type=password],select,textarea{font-size:16px}}@media (max-width: 600px){.table-wrap{overflow-x:visible;border:0;background:transparent}.table-wrap table,.table-wrap tbody,.table-wrap tr,.table-wrap td,#committees-root table,#committees-root tbody,#committees-root tr,#committees-root td,#tab-committees table,#tab-committees tbody,#tab-committees tr,#tab-committees td{display:block;width:100%}.table-wrap thead,#committees-root thead,#tab-committees thead{display:none}.table-wrap tr,#committees-root tr,#tab-committees tr{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px;margin-bottom:10px}.table-wrap td,#committees-root td,#tab-committees td{border:0;padding:3px 0;white-space:normal}.table-wrap tbody tr:hover td{background:transparent}.table-wrap td[data-label]:before,#committees-root td[data-label]:before,#tab-committees td[data-label]:before{content:attr(data-label) ": ";font-weight:600;color:var(--gray-700)}.card{padding:16px}.toolbar{flex-direction:column;align-items:stretch}.toolbar-right{justify-content:flex-end}.tab-btn{padding:8px 12px;font-size:.82rem}.event-selector-left{width:100%;min-width:0;flex-wrap:nowrap}.event-selector-bar select{flex:1 1 0;min-width:0;max-width:none}.event-selector-actions{grid-template-columns:1fr;max-width:none;width:100%}.report-buttons{grid-template-columns:1fr}.install-helper{bottom:8px;left:8px;right:8px;padding:8px 10px}.install-helper-actions .btn{padding:4px 8px;font-size:.74rem}.in-app-report-shell{padding:10px}.in-app-report-toolbar .btn{flex:1 1 100%}}body.supervisor-mode #new-event-btn,body.supervisor-mode #add-shift-btn,body.supervisor-mode #vol-pin-reset-card,body.supervisor-mode #vol-merge-card,body.supervisor-mode #vol-contact-card,body.supervisor-mode #archive-all-btn,body.supervisor-mode #settings-supervisor-card,body.supervisor-mode [onclick^=adminEditEvent],body.supervisor-mode [onclick^=adminDuplicateEvent],body.supervisor-mode [onclick^=adminDeleteEvent],body.supervisor-mode [onclick^=adminSaveAsTemplate],body.supervisor-mode [onclick^=adminSetStatus],body.supervisor-mode [onclick^=adminEditVol],body.supervisor-mode [onclick^=adminEditContact],body.supervisor-mode [onclick^=adminResetVolunteerPin],body.supervisor-mode [onclick^=openSlotModal],body.supervisor-mode [onclick^=openShiftModal],body.supervisor-mode [onclick^=deleteShift],body.supervisor-mode [onclick^=toggleShiftLock],body.supervisor-mode [onclick^=openShiftHoursModal],body.supervisor-mode [onclick^=openSlotHoursModal],body.supervisor-mode [onclick^=adminSetEventCompleted]{display:none!important}.view-toggle-btn{margin-left:auto;margin-right:8px;color:inherit}.site-header .brand{margin-right:auto}.site-header .view-toggle-btn{margin-left:0}.help-btn{color:#fff;border-color:#ffffff80}.committee-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.committee-card+.committee-card{margin-top:12px}.committee-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid #e0e0e0;flex-wrap:wrap}.committee-row:first-of-type{border-top:0}.committee-badge{display:inline-block;font-size:.75rem;font-weight:600;padding:1px 8px;border-radius:10px;background:var(--blue-light);color:var(--blue)}.committee-badge-late{background:var(--red-light);color:var(--red)}.committee-badge-done{background:var(--green-light);color:var(--green)}.committee-task-done>span:first-child{opacity:.65}.committee-agenda{margin:4px 0 8px 20px;padding:0}
