#ems-plugin .ems-volunteer-dashboard-wrap{
    max-width: 1400px;
    margin: 0 auto;
    padding: 20px 0;
}#ems-plugin .ems-volunteer-header{
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 2px solid var(--ems-border-light);
}#ems-plugin .ems-volunteer-header-content{
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}#ems-plugin .ems-volunteer-header h1{
    margin: 0 0 10px 0;
    font-size: 32px;
    color: var(--ems-text-primary);
}#ems-plugin .ems-volunteer-subtitle{
    margin: 0;
    color: var(--ems-text-muted);
}#ems-plugin .ems-volunteer-header-actions{
    flex-shrink: 0;
}#ems-plugin .ems-volunteer-header-actions .ems-btn{
    display: flex;
    align-items: center;
    gap: 6px;
    text-decoration: none !important;
}#ems-plugin .ems-btn-icon{
    margin-right: 6px;
    width: 20px;
}#ems-plugin .ems-btn-icon img.emoji{
    max-width: 12px;
}#ems-plugin .ems-volunteer-layout{
    display: flex;
    gap: 30px;
    margin-top: 30px;
}#ems-plugin .ems-volunteer-layout > .ems-volunteer-content{
    width: 100%;
}#ems-plugin .ems-volunteer-sidebar{
    width: 250px;
    flex-shrink: 0;
    background: var(--ems-bg-surface);
    border: 1px solid var(--ems-border-light);
    border-radius: var(--ems-radius-md);
    padding: var(--ems-space-5) 0;
    box-shadow: var(--ems-shadow-sm);
    height: fit-content;
    position: sticky;
    top: 20px;
}#ems-plugin .ems-volunteer-nav{
    padding: 0;
}#ems-plugin .ems-volunteer-menu{
    list-style: none;
    margin: 0;
    padding: 0;
}#ems-plugin .ems-volunteer-menu li{
    margin-bottom: 10px;
}#ems-plugin .ems-volunteer-item{
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 20px;
    color: var(--ems-text-muted);
    text-decoration: none !important;
    border-left: 3px solid transparent;
    transition: all 0.2s ease;
}#ems-plugin .ems-volunteer-item:hover{
    background: var(--ems-bg-secondary);
    color: var(--ems-primary);
    border-left-color: var(--ems-primary);
}#ems-plugin .ems-volunteer-item.active{
    background: var(--ems-primary-focus);
    color: var(--ems-primary);
    border-left-color: var(--ems-primary);
    font-weight: 600;
}#ems-plugin .ems-volunteer-icon{
    font-size: 18px;
    width: 24px;
    text-align: center;
}#ems-plugin .ems-volunteer-label{
    flex: 1;
}#ems-plugin .ems-volunteer-content{
    flex: 1;
    background: var(--ems-bg-surface);
    border: 1px solid var(--ems-border-light);
    border-radius: var(--ems-radius-md);
    padding: var(--ems-space-8);
    box-shadow: var(--ems-shadow-sm);
}#ems-plugin .ems-volunteer-section{
    display: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}#ems-plugin .ems-volunteer-section.active{
    display: block;
    opacity: 1;
    visibility: visible;
}#ems-plugin .ems-section-header{
    margin-bottom: 25px;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--ems-border-light);
}#ems-plugin .ems-section-header h2{
    margin: 0;
    font-size: 24px;
    color: var(--ems-text-primary);
}#ems-plugin .ems-volunteer-stats{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
}#ems-plugin .ems-volunteer-stat-card{
    background: var(--ems-bg-surface);
    border: 1px solid var(--ems-border);
    border-radius: var(--ems-radius-md);
    padding: var(--ems-space-5);
    display: flex;
    align-items: center;
    gap: var(--ems-space-4);
    box-shadow: var(--ems-shadow-sm);
    transition: all 0.3s ease;
}#ems-plugin .ems-volunteer-stat-card:hover{
    box-shadow: var(--ems-shadow-md);
    transform: translateY(-2px);
}#ems-plugin .ems-volunteer-stat-icon{
    font-size: 36px;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    flex-shrink: 0;
}#ems-plugin .ems-volunteer-stat-content{
    flex: 1;
}#ems-plugin .ems-volunteer-stat-number{
    font-size: 32px;
    font-weight: 700;
    color: var(--ems-text-primary);
    line-height: 1;
    margin-bottom: 5px;
}#ems-plugin .ems-volunteer-stat-label{
    font-size: 13px;
    color: var(--ems-text-muted);
    text-transform: uppercase;
    font-weight: 600;
}#ems-plugin .ems-volunteer-form{
    max-width: 800px;
}#ems-plugin .ems-form-group{
    margin-bottom: 20px;
}#ems-plugin .ems-form-row{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
}#ems-plugin .ems-form-group label{
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: var(--ems-text-primary);
    font-size: 14px;
}#ems-plugin .ems-form-group .required{
    color: var(--ems-error);
}#ems-plugin .ems-form-control{
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--ems-border);
    border-radius: 4px;
    font-size: 14px;
    transition: border-color 0.2s ease;
}#ems-plugin .ems-form-control:focus{
    outline: none;
    border-color: var(--ems-primary);
    box-shadow: 0 0 0 1px var(--ems-primary);
}#ems-plugin .ems-form-actions{
    display: flex;
    gap: 10px;
    margin-top: 25px;
}/*
.ems-btn{
    display: inline-block;
    padding: 10px 20px;
    border-radius: 4px;
    border: none;
    cursor: pointer;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
    font-size: 14px;
    text-align: center;
}#ems-plugin .ems-btn-primary{
    background: var(--ems-primary);
    color: var(--ems-white);
}#ems-plugin .ems-btn-primary:hover{
    background: var(--ems-primary-hover);
    transform: translateY(-1px);
    box-shadow: var(--ems-shadow-sm);
}#ems-plugin .ems-btn-secondary{
    background: var(--ems-bg-secondary);
    color: var(--ems-text-primary);
}#ems-plugin .ems-btn-secondary:hover{
    background: var(--ems-border-light);
}*/


.ems-volunteer-recent-events{
    margin-top: 30px;
}#ems-plugin .ems-volunteer-recent-events h2{
    margin: 0 0 20px 0;
    font-size: 20px;
    color: var(--ems-text-primary);
}#ems-plugin .ems-volunteer-events-list{
    display: flex;
    flex-direction: column;
    gap: 15px;
}#ems-plugin .ems-volunteer-event-item{
    background: var(--ems-bg-secondary);
    border: 1px solid var(--ems-border-light);
    border-radius: 6px;
    padding: 15px;
    transition: all 0.2s ease;
}#ems-plugin .ems-volunteer-event-item:hover{
    border-color: var(--ems-primary);
    box-shadow: var(--ems-shadow-sm);
}#ems-plugin .ems-volunteer-event-title{
    font-weight: 600;
    color: var(--ems-text-primary);
    margin-bottom: 8px;
    font-size: 16px;
}#ems-plugin .ems-volunteer-event-meta{
    display: flex;
    align-items: center;
    gap: 15px;
    font-size: 13px;
    color: var(--ems-text-muted);
}#ems-plugin .ems-volunteer-event-meta img.emoji{
    max-width: 10px;
}#ems-plugin .ems-volunteer-event-meta span:first-child{
    width: 100%;
}#attendance-attendees-list{
    margin-bottom: 20px;
}#ems-plugin .ems-attendee-item{
    background: var(--ems-bg-secondary);
    border: 1px solid var(--ems-border-light);
    border-radius: var(--ems-radius-md);
    padding: var(--ems-space-4);
    margin-bottom: var(--ems-space-4);
    display: flex;
    gap: 15px;
    align-items: flex-start;
}#ems-plugin .ems-attendee-item input[type="text"],
#ems-plugin .ems-attendee-item input[type="email"]{
    flex: 1;
}#ems-plugin .ems-attendee-item input[type="checkbox"],
#ems-plugin .ems-attendance-checkbox{
    width: 18px;
    height: 18px;
    cursor: pointer;
    margin: 0;
}#ems-plugin .ems-attendee-item label{
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    margin: 0;
    font-weight: 500;
    color: var(--ems-text-primary);
}#ems-plugin .ems-attendee-item strong{
    color: var(--ems-text-primary);
    font-size: 15px;
}#ems-plugin .ems-remove-attendee{
    background: var(--ems-error);
    color: var(--ems-white);
    border: none;
    border-radius: var(--ems-radius-sm);
    padding: var(--ems-space-2) var(--ems-space-3);
    cursor: pointer;
    font-size: 12px;
}#ems-plugin .ems-remove-attendee:hover{
    background: var(--ems-error-text);
}#ems-plugin .ems-volunteer-error,
#ems-plugin .ems-volunteer-success{
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 4px;
}#ems-plugin .ems-volunteer-error{
    background: var(--ems-error-bg);
    color: var(--ems-error-text);
    border: 1px solid var(--ems-error-border);
}#ems-plugin .ems-volunteer-success{
    background: var(--ems-success-bg);
    color: var(--ems-success-text);
    border: 1px solid var(--ems-success-border);
}#ems-plugin .ems-status-badge{
    display: inline-block;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
}#ems-plugin .ems-status-badge.status-active{
    background: var(--ems-success-bg);
    color: var(--ems-success-text);
}#ems-plugin .ems-status-badge.status-draft{
    background: #f3f4f6;
    color: #4b5563;
}#ems-plugin .ems-status-badge.status-finalized{
    background: var(--ems-info-bg);
    color: var(--ems-info-text);
}#ems-plugin .ems-draft-count{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    margin-left: 6px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--ems-primary, #1d4ed8);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
}#ems-plugin .ems-draft-event-meta{
    margin-top: 4px;
    font-size: 12px;
    font-weight: 400;
    color: #6b7280;
}@media screen and (max-width: 1024px){#ems-plugin .ems-volunteer-layout{
        flex-direction: column;
    }#ems-plugin .ems-volunteer-sidebar{
        width: 100%;
        position: relative;
        top: 0;
    }#ems-plugin .ems-volunteer-menu{
        display: flex;
        overflow-x: auto;
        padding: 0 10px;
    }#ems-plugin .ems-volunteer-item{
        white-space: nowrap;
        border-left: none;
        border-bottom: 3px solid transparent;
        padding: 12px 15px;
    }#ems-plugin .ems-volunteer-item.active{
        border-left: none;
        border-bottom-color: var(--ems-primary);
    }
}@media screen and (max-width: 782px){#ems-plugin .ems-volunteer-header-content{
        flex-direction: column;
        align-items: flex-start;
    }#ems-plugin .ems-volunteer-header-actions{
        width: 100%;
    }#ems-plugin .ems-volunteer-header-actions .ems-btn{
        width: 100%;
    }#ems-plugin .ems-volunteer-stats{
        grid-template-columns: 1fr;
    }#ems-plugin .ems-form-row{
        grid-template-columns: 1fr;
    }
}#ems-plugin .ems-ticket-preview{
    background: var(--ems-bg-secondary);
    border: 1px solid var(--ems-border-light);
    border-radius: 4px;
    padding: 15px;
    margin-top: 10px;
}#ems-plugin .ems-ticket-preview h4{
    margin-top: 0;
    margin-bottom: 10px;
    color: var(--ems-text-primary);
}#ems-plugin .ems-ticket-preview p{
    margin: 5px 0;
    color: var(--ems-text-muted);
}#ems-plugin .ems-ticket-preview strong{
    color: var(--ems-text-primary);
}#ems-plugin .ems-volunteer-info{
    background: var(--ems-info-bg);
    border-left: 4px solid var(--ems-info-border);
    color: var(--ems-info-text);
    padding: 10px;
    margin: 10px 0;
    border-radius: 4px;
}#ems-plugin .ems-message{
    padding: 12px 16px;
    margin-bottom: 20px;
    border-radius: 6px;
    font-size: 14px;
}#ems-plugin .ems-message p{
    margin: 0;
}#ems-plugin .ems-message.ems-success{
    background: linear-gradient(135deg, var(--ems-success-bg) 0%, var(--ems-success-border) 100%);
    color: var(--ems-success-text);
    border: 1px solid var(--ems-success-border);
}#ems-plugin .ems-message.ems-error{
    background: linear-gradient(135deg, var(--ems-error-bg) 0%, var(--ems-error-border) 100%);
    color: var(--ems-error-text);
    border: 1px solid var(--ems-error-border);
}#ems-plugin .ems-image-upload-wrapper{
    display: flex;
    flex-direction: column;
    gap: 15px;
}#ems-plugin .ems-image-preview{
    max-width: 300px;
    border-radius: 8px;
    overflow: hidden;
    border: 2px solid var(--ems-border-light);
    position: relative;
}#ems-plugin .ems-image-preview img{
    width: 100%;
    height: auto;
    display: block;
}#ems-plugin .ems-image-preview .ems-remove-image{
    position: absolute;
    top: 10px;
    right: 10px;
    background: var(--ems-error);
    opacity: 0.9;
    color: var(--ems-white);
    border: none;
    border-radius: 4px;
    padding: 6px 12px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    transition: background 0.2s ease;
}#ems-plugin .ems-image-preview .ems-remove-image:hover{
    background: var(--ems-error-text);
}#ems-plugin .ems-attachments-list{
    margin-top: 15px;
}#ems-plugin .ems-attachment-item{
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 15px;
    background: var(--ems-bg-secondary);
    border: 1px solid var(--ems-border-light);
    border-radius: 6px;
    margin-bottom: 10px;
}#ems-plugin .ems-attachment-item span{
    flex: 1;
    font-weight: 500;
    color: var(--ems-text-primary);
}#ems-plugin .ems-attachment-item a{
    color: var(--ems-primary);
    margin-right: 15px;
    font-size: 13px;
}#ems-plugin .ems-attachment-item .ems-remove-attachment{
    background: none;
    border: none;
    color: var(--ems-error);
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
}#ems-plugin .ems-attachment-item .ems-remove-attachment:hover{
    color: var(--ems-error-text);
}#ems-plugin .ems-event-hidden{
    display: none !important;
}#ems-plugin .ems-load-more-container{
    text-align: center;
    margin-top: 25px;
    padding-top: 15px;
    border-top: 1px dashed var(--ems-border-light);
}#ems-load-more-events{
    min-width: 150px;
    box-shadow: var(--ems-shadow-sm);
}#ems-load-more-events:hover{
    background-color: var(--ems-border-light);
    transform: translateY(-1px);
}#ems-plugin .ems-share-event-modal-content{
    max-width: 560px;
    width: 90%;
    overflow: hidden;
}
#ems-plugin #ems-share-event-modal{
    z-index: var(--ems-z-modal-elevated);
}
#ems-plugin #ems-share-event-modal .ems-modal-header{
    background: var(--ems-bg-secondary);
    align-items: center;
}
#ems-plugin #ems-share-event-modal .ems-modal-header h2{
    margin: 0;
    font-size: 18px;
    line-height: 1.35;
    color: var(--ems-text-primary);
    font-weight: 600;
}
#ems-plugin #ems-share-event-modal .ems-modal-body{
    background: var(--ems-bg-surface);
}
#ems-plugin #ems-share-event-modal .ems-form-group label{
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.02em;
    color: var(--ems-text-secondary);
}
#ems-plugin .ems-share-event-field{
    margin-bottom: 16px;
}
#ems-plugin .ems-share-event-permalink-row{
    display: flex;
    gap: 10px;
    align-items: stretch;
}
#ems-plugin .ems-share-event-permalink-row .ems-form-control{
    flex: 1;
    min-width: 0;
}
#ems-plugin .ems-share-event-permalink-row .ems-btn{
    flex-shrink: 0;
}
#ems-plugin .ems-share-event-help{
    margin: 6px 0 0;
    font-size: 13px;
    color: var(--ems-text-muted);
}#ems-plugin .ems-edit-event-modal{
    position: fixed;
    inset: 0;
    z-index: 9999;
    align-items: flex-start;
    justify-content: center;
    overflow: hidden;
    padding: 24px;
    background-color: rgba(0, 0, 0, 0.5);
}#ems-plugin .ems-edit-event-modal-content{
    width: min(1180px, 96vw);
    max-height: calc(100vh - 48px);
    margin: 0 auto;
    padding: 0;
    border: 1px solid var(--ems-border);
    border-radius: 8px;
    background-color: var(--ems-white);
    box-shadow: var(--ems-shadow-lg);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}#ems-plugin .ems-edit-event-modal-header{
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 24px;
    border-bottom: 1px solid var(--ems-border-light);
    background-color: var(--ems-white);
}#ems-plugin .ems-edit-event-modal-body{
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 0;
}#ems-plugin .ems-edit-event-modal-body .ems-app,
#ems-plugin .ems-edit-event-modal-body .ems-container,
#ems-plugin .ems-edit-event-modal-body .ems-add-event-wrapper,
#ems-plugin .ems-edit-event-modal-body .ems-create-event-wrap{
    width: 100%;
    max-width: none;
    margin: 0;
}#ems-plugin .ems-edit-event-modal-body .ems-create-event-wrap{
    padding: 24px;
}#ems-plugin .ems-edit-event-modal-body .ems-create-event-header{
    margin-bottom: 20px;
}#ems-plugin .ems-edit-event-modal-body #ems-create-event-form .ems-form-actions{
    position: sticky;
    bottom: 0;
    z-index: 2;
    margin: 24px -24px -24px;
    padding: 16px 24px;
    border-top: 1px solid var(--ems-border-light);
    background-color: var(--ems-white);
}@media (max-width: 768px){#ems-plugin .ems-edit-event-modal{
        padding: 12px;
    }#ems-plugin .ems-edit-event-modal-content{
        width: calc(100vw - 24px);
        max-height: calc(100vh - 24px);
    }#ems-plugin .ems-edit-event-modal-body .ems-create-event-wrap{
        padding: 16px;
    }#ems-plugin .ems-edit-event-modal-body #ems-create-event-form .ems-form-actions{
        margin: 20px -16px -16px;
        padding: 14px 16px;
    }
}#ems-plugin .ems-form-section .ems-form-row,
#ems-plugin .ems-form-section .ems-form-group{
    width: 100%;
}.flex_me{
    display: flex;
    gap: 20px;
}#ems-plugin .ems-timesheet-section{
    overflow: visible;
}#ems-plugin .ems-timesheet-header{
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--ems-border-light);
}#ems-plugin .ems-timesheet-title{
    margin: 0 0 6px;
    color: var(--ems-text-primary);
    font-size: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}#ems-plugin .ems-timesheet-event-meta{
    margin: 0;
    font-size: 13px;
    color: var(--ems-text-secondary);
}#ems-plugin .ems-timesheet-meta-sep{
    margin: 0 8px;
    color: var(--ems-text-muted);
}#ems-plugin .ems-timesheet-duration-box{
    min-width: 220px;
    padding: 12px 14px;
    background: var(--ems-bg-secondary);
    border: 1px solid var(--ems-border-light);
    border-radius: 8px;
    text-align: right;
}#ems-plugin .ems-timesheet-duration-label{
    font-size: 11px;
    font-weight: 600;
    color: var(--ems-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}#ems-plugin .ems-timesheet-duration-value{
    margin-top: 4px;
    font-size: 22px;
    font-weight: 700;
    color: var(--ems-text-primary);
    line-height: 1.2;
}#ems-plugin .ems-timesheet-duration-range{
    margin-top: 4px;
    font-size: 12px;
    color: var(--ems-text-muted);
}#ems-plugin .ems-timesheet-table-wrap{
    overflow-x: auto;
    overflow-y: visible;
}#ems-plugin .ems-timesheet-table{
    overflow: visible;
}#ems-plugin .ems-timesheet-table th{
    background: var(--ems-bg-secondary);
    color: var(--ems-text-secondary);
    font-weight: 600;
    position: relative;
    overflow: visible;
    vertical-align: middle;
    padding: 10px 12px;
    text-align: left;
    font-size: 12px;
    border-bottom: 1px solid var(--ems-border-light);
}#ems-plugin .ems-timesheet-table thead{
    overflow: visible;
}#ems-plugin .ems-timesheet-table-grouped .ems-timesheet-head-primary th{
    background: var(--ems-bg-secondary);
    border-bottom: 1px solid var(--ems-border-light);
}#ems-plugin .ems-timesheet-table-grouped .ems-timesheet-head-secondary th{
    background: var(--ems-bg-tertiary, #f1f5f9);
    font-size: 11px;
    font-weight: 600;
}#ems-plugin .ems-timesheet-th-sub{
    display: block;
    font-size: 10px;
    font-weight: 500;
    color: var(--ems-text-muted);
    margin-top: 2px;
}#ems-plugin .ems-timesheet-th-instructional{
    min-width: 100px;
}#ems-plugin .ems-timesheet-td-instructional{
    background: transparent;
}#ems-plugin .ems-timesheet-th-miscellaneous-group{
    text-align: center !important;
    border-left: 1px solid var(--ems-border-light);
    border-right: 1px solid var(--ems-border-light);
}#ems-plugin .ems-timesheet-th-misc-category,
#ems-plugin .ems-timesheet-td-misc-category{
    min-width: 110px;
    background: transparent;
    border-left: 1px solid var(--ems-border-light);
}#ems-plugin .ems-timesheet-th-misc-total,
#ems-plugin .ems-timesheet-td-misc-total{
    min-width: 130px;
    background: transparent;
    border-left: 1px solid var(--ems-border-light);
    border-right: 1px solid var(--ems-border-light);
    font-weight: 600;
}#ems-plugin .ems-timesheet-th-total,
#ems-plugin .ems-timesheet-td-total{
    min-width: 120px;
    font-weight: 600;
}#ems-plugin .ems-timesheet-td-name{
    font-size: 14px;
    font-weight: 500;
    padding: 12px;
}#ems-plugin .ems-timesheet-td-default{
    padding: 12px;
    font-size: 14px;
    color: var(--ems-text-primary);
    font-weight: 600;
}#ems-plugin .ems-timesheet-td-instructional,
#ems-plugin .ems-timesheet-td-misc-category,
#ems-plugin .ems-timesheet-td-misc-total,
#ems-plugin .ems-timesheet-td-total{
    padding: 12px;
}#ems-plugin .ems-timesheet-table td{
    border-bottom: 1px solid var(--ems-border-light);
    background: #fff;
}#ems-plugin .volunteer-instructional-hours-input,
#ems-plugin .volunteer-misc-category-hours-input{
    width: 90px;
    padding: 5px 8px;
}#ems-plugin .volunteer-instructional-hours-input:focus,
#ems-plugin .volunteer-misc-category-hours-input:focus{
    border-color: var(--ems-primary);
    box-shadow: 0 0 0 2px var(--ems-primary-focus);
}#ems-plugin .ems-timesheet-th-label{
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    white-space: normal;
    justify-content: center;
}#ems-plugin .ems-info-tooltip{
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    margin: 0;
    font-size: 14px;
    line-height: 1;
    color: var(--ems-primary);
    cursor: help;
    border: none;
    background: transparent;
    vertical-align: middle;
    outline: none;
}#ems-plugin .ems-info-tooltip-icon{
    display: block;
    line-height: 1;
}#ems-plugin .ems-info-tooltip .ems-tooltip-text{
    visibility: hidden;
    opacity: 0;
    position: absolute;
    z-index: 1000;
    left: 50%;
    top: calc(100% + 8px);
    bottom: auto;
    transform: translateX(-50%);
    width: min(260px, 70vw);
    max-width: 260px;
    padding: 10px 12px;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.45;
    color: var(--ems-text-primary);
    background: var(--ems-white);
    border: 1px solid var(--ems-border-light);
    border-radius: 6px;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.14);
    text-align: left;
    pointer-events: none;
    white-space: normal;
    transition: opacity 0.15s ease, visibility 0.15s ease;
}#ems-plugin .ems-info-tooltip .ems-tooltip-text::before{
    content: '';
    position: absolute;
    left: 50%;
    bottom: 100%;
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-bottom-color: var(--ems-border-light);
}#ems-plugin .ems-info-tooltip .ems-tooltip-text::after{
    content: '';
    position: absolute;
    left: 50%;
    bottom: 100%;
    margin-bottom: 1px;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-bottom-color: var(--ems-white);
}#ems-plugin .ems-info-tooltip:hover .ems-tooltip-text,
#ems-plugin .ems-info-tooltip:focus .ems-tooltip-text,
#ems-plugin .ems-info-tooltip:focus-visible .ems-tooltip-text{
    visibility: visible;
    opacity: 1;
}.volunteer-instructional-hours-input.ems-hours-invalid,
.volunteer-misc-category-hours-input.ems-hours-invalid{
    border-color: var(--ems-unverified-text) !important;
    box-shadow: 0 0 0 2px var(--ems-unverified-border) !important;
}#ems-plugin .ems-timesheet-summary{
    margin-top: 16px;
    padding: 14px 16px;
    background: var(--ems-bg-secondary);
    border: 1px solid var(--ems-border-light);
    border-radius: 8px;
}#ems-plugin .ems-timesheet-summary-title{
    font-size: 13px;
    font-weight: 700;
    color: var(--ems-text-primary);
    margin-bottom: 10px;
}#ems-plugin .ems-timesheet-summary-grid{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
}#ems-plugin .ems-timesheet-summary-categories{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    width: 100%;
}#ems-plugin .ems-timesheet-summary-item{
    font-size: 13px;
    width: 100%;
}#ems-plugin .ems-timesheet-summary-label{
    font-weight: 600;
    color: var(--ems-text-primary);
    margin-right: 4px;
}#ems-plugin .ems-timesheet-summary-value{
    color: var(--ems-text-primary);
    font-weight: 600;
}#ems-plugin .ems-summary-total .ems-timesheet-summary-value{
    font-weight: 700;
}#ems-plugin .ems-timesheet-summary .ems-timesheet-warning{
    color: var(--ems-amber-700);
}#ems-plugin .ems-timesheet-summary .ems-timesheet-error{
    color: var(--ems-unverified-text);
}#ems-plugin .ems-timesheet-help{
    margin-top: 14px;
    padding: 12px 14px;
    background: var(--ems-bg-secondary);
    border: 1px solid var(--ems-border-light);
    border-radius: 8px;
}#ems-plugin .ems-timesheet-help-title{
    font-size: 13px;
    font-weight: 700;
    color: var(--ems-text-primary);
    margin-bottom: 8px;
}#ems-plugin .ems-timesheet-help-list{
    margin: 0;
    font-size: 12px;
    color: var(--ems-text-muted);
    line-height: 1.55;
}#ems-plugin .ems-timesheet-help-list li{
    margin-bottom: 4px;
}#ems-plugin .ems-timesheet-note{
    margin-top: 12px;
    padding: 10px 12px;
    background: var(--ems-bg-secondary);
    border: 1px solid var(--ems-border-light);
    border-radius: 8px;
    font-size: 12px;
    color: var(--ems-text-secondary);
    display: flex;
    align-items: flex-start;
    gap: 8px;
}.volunteer-miscellaneous-hours-display,
.volunteer-total-hours-display{
    font-weight: 700;
    color: var(--ems-text-primary);
}#ems-plugin .ems-timesheet-row-warning td{
    background: transparent;
}#ems-plugin .ems-timesheet-row-warning .ems-timesheet-td-instructional{
    background: transparent;
}@media (max-width: 768px){
    #ems-plugin .ems-timesheet-header{
        flex-direction: column;
    }
    #ems-plugin .ems-timesheet-duration-box{
        width: 100%;
        text-align: left;
    }
}#ems-plugin .ems-attachment-upload-area{
    transition: all 0.2s ease;
}#ems-plugin .ems-attachment-upload-area:hover{
    border-color: var(--ems-primary) !important;
    background: var(--ems-bg-secondary) !important;
}#ems-plugin .ems-attachment-preview-item{
    transition: transform 0.2s ease;
}#ems-plugin .ems-attachment-preview-item:hover{
    transform: scale(1.05);
    box-shadow: var(--ems-shadow-md);
}#ems-plugin .ems-remove-attachment:hover{
    background: var(--ems-error) !important;
}#ems-plugin .ems-modal,
#ems-plugin-modals .ems-modal{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: var(--ems-z-modal);
    display: flex;
    align-items: center;
    justify-content: center;
}#ems-plugin #ems-image-selector-modal{
    z-index: var(--ems-z-modal-elevated);
}#ems-plugin .ems-modal-overlay,
#ems-plugin-modals .ems-modal-overlay{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
}#ems-plugin .ems-modal-container{
    position: relative;
    background: var(--ems-bg-surface);
    width: 90%;
    max-width: 800px;
    max-height: 80vh;
    border-radius: var(--ems-radius-lg);
    box-shadow: var(--ems-shadow-xl);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: emsModalFadeIn 0.3s ease;
}@keyframes emsModalFadeIn{
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}#ems-plugin .ems-modal-header,
#ems-plugin-modals .ems-modal-header{
    padding: 20px 25px;
    border-bottom: 1px solid var(--ems-border-light);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}#ems-plugin .ems-modal-header h3,
#ems-plugin-modals .ems-modal-header h3,
#ems-plugin .ems-modal-header h2,
#ems-plugin-modals .ems-modal-header h2{
    margin: 0;
    font-size: 20px;
    color: var(--ems-text-primary);
}#ems-plugin .ems-modal-subtitle{
    margin: 5px 0 0 0;
    font-size: 13px;
    color: var(--ems-text-muted);
}#ems-plugin .ems-modal-close,
#ems-plugin-modals .ems-modal-close{
    background: none;
    border: none;
    font-size: 28px;
    line-height: 1;
    color: var(--ems-text-muted);
    cursor: pointer;
    padding: 0;
    transition: color 0.2s;
}#ems-plugin .ems-modal-close:hover,
#ems-plugin-modals .ems-modal-close:hover{
    color: var(--ems-error);
}#ems-plugin .ems-modal-body,
#ems-plugin-modals .ems-modal-body{
    padding: 25px;
    overflow-y: auto;
    flex: 1;
    background: var(--ems-bg-secondary);
}#ems-plugin .ems-modal-footer,
#ems-plugin-modals .ems-modal-footer{
    padding: 15px 25px;
    border-top: 1px solid var(--ems-border-light);
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}#ems-plugin .ems-modal-content,
#ems-plugin-modals .ems-modal-content{
    position: relative;
    background: var(--ems-bg-surface);
    border-radius: var(--ems-radius-lg);
    box-shadow: var(--ems-shadow-xl);
    max-width: 500px;
    width: 90%;
    max-height: 90vh;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}#ems-plugin .ems-modal[style*="display: block"],
#ems-plugin-modals .ems-modal[style*="display: block"]{
    display: flex !important;
}#ems-plugin .ems-modal-content-confirm,
#ems-plugin-modals .ems-modal-content-confirm{
    max-width: 480px;
}#ems-plugin .ems-confirm-modal-layout{
    display: flex;
    align-items: flex-start;
    gap: var(--ems-space-4);
}#ems-plugin .ems-confirm-icon{
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: var(--ems-radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
}#ems-plugin .ems-confirm-icon-warning{
    background: var(--ems-warning-icon-bg);
    color: var(--ems-pending-text);
}#ems-plugin .ems-confirm-icon-danger{
    background: var(--ems-error-icon-bg);
    color: var(--ems-unverified-text);
}#ems-plugin .ems-confirm-icon-info{
    background: var(--ems-info-icon-bg);
    color: var(--ems-blue-600);
}#ems-plugin .ems-confirm-heading{
    margin: 0 0 6px;
    font-weight: var(--ems-font-weight-bold);
    font-size: 15px;
    color: var(--ems-slate-900);
}#ems-plugin .ems-confirm-message{
    margin: 0;
    color: var(--ems-text-muted);
    font-size: var(--ems-body-size);
    line-height: 1.5;
}#ems-plugin .ems-image-grid{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 15px;
}#ems-plugin .ems-image-item{
    aspect-ratio: 1;
    border-radius: var(--ems-radius-md);
    overflow: hidden;
    border: 3px solid transparent;
    cursor: pointer;
    transition: all 0.2s ease;
    position: relative;
    background: var(--ems-bg-surface);
}#ems-plugin .ems-image-item:hover{
    transform: scale(1.03);
    box-shadow: var(--ems-shadow-md);
}#ems-plugin .ems-image-item.selected{
    border-color: var(--ems-primary);
    box-shadow: 0 0 0 4px var(--ems-primary-focus);
}#ems-plugin .ems-image-item img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}#ems-plugin .ems-image-item-check{
    position: absolute;
    top: 8px;
    right: 8px;
    background: var(--ems-primary);
    color: white;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    opacity: 0;
    transform: scale(0.5);
    transition: all 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}#ems-plugin .ems-image-item.selected .ems-image-item-check{
    opacity: 1;
    transform: scale(1);
}#ems-plugin .ems-image-grid-loading{
    grid-column: 1 / -1;
    text-align: center;
    padding: 40px 0;
    color: var(--ems-text-muted);
}#ems-plugin .ems-no-approved-images{
    grid-column: 1 / -1;
    text-align: center;
    padding: 40px 20px;
}#ems-plugin .ems-no-approved-images p{
    color: var(--ems-text-muted);
    font-style: italic;
}#ems-plugin .ems-multi-preview-grid{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 12px;
    margin-bottom: 15px;
}#ems-plugin .ems-preview-thumb{
    position: relative;
    aspect-ratio: 1;
    border-radius: 6px;
    overflow: hidden;
    border: 1px solid var(--ems-border-light);
}#ems-plugin .ems-preview-thumb img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}#ems-plugin .ems-remove-single-image{
    position: absolute;
    top: 2px;
    right: 2px;
    background: rgba(239, 68, 68, 0.9);
    color: white;
    border: none;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    line-height:1;
    z-index: 5;
}#ems-plugin .ems-remove-single-image:hover{
    background: var(--ems-error);
}#ems-plugin .ems-remove-image{
    margin-top: 10px;
}#ems-plugin .ems-invite-section-header{
    margin-bottom: 15px;
}#ems-plugin .ems-subsection-title{
    margin: 0 0 5px 0;
    font-size: 18px;
    color: var(--ems-text-primary);
}#ems-plugin .ems-invite-list{
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 15px;
}#ems-plugin .ems-invite-email-row{
    display: flex;
    gap: 10px;
    align-items: center;
}#ems-plugin .ems-invite-email-row .ems-form-control{
    flex: 1;
}#ems-plugin .ems-remove-invite-email{
    background: var(--ems-error-bg);
    color: var(--ems-error-text);
    border: 1px solid var(--ems-error-border);
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    cursor: pointer;
    font-size: 18px;
    transition: all 0.2s;
}#ems-plugin .ems-remove-invite-email:hover{
    background: var(--ems-error);
    color: white;
}#ems-plugin .ems-invite-actions{
    display: flex;
    gap: 12px;
    align-items: center;
}#ems-plugin .ems-btn-sm{
    padding: 6px 12px;
    font-size: 13px;
}#ems-send-invites-btn{
    display: flex;
    align-items: center;
    gap: 8px;
}#private_invites_section{
    background: var(--ems-bg-secondary);
    border: 1px solid var(--ems-border-light);
    border-radius: var(--ems-radius-md);
    padding: 20px;
}

/* Walk-in Attendee */
#ems-plugin .ems-walkin-actions{
    display: flex;
    justify-content: flex-start;
    align-items: center;
}
#ems-plugin .ems-walkin-modal-content,
#ems-plugin-modals .ems-walkin-modal-content{
    max-width: 520px;
    width: 92%;
}
#ems-plugin .ems-walkin-user-summary,
#ems-plugin-modals .ems-walkin-user-summary{
    background: var(--ems-bg-secondary, #f6f7f7);
    border: 1px solid var(--ems-border-light, #e2e4e7);
    border-radius: var(--ems-radius-md, 6px);
    padding: 14px 16px;
    margin-top: 12px;
}
#ems-plugin .ems-walkin-user-summary p,
#ems-plugin-modals .ems-walkin-user-summary p{
    margin: 0 0 8px 0;
}
#ems-plugin .ems-walkin-user-summary p:last-child,
#ems-plugin-modals .ems-walkin-user-summary p:last-child{
    margin-bottom: 0;
}
#ems-plugin .ems-walkin-confirm-intro,
#ems-plugin-modals .ems-walkin-confirm-intro{
    margin: 0 0 4px 0;
    color: var(--ems-text-secondary, #50575e);
}
#ems-plugin .ems-walkin-message,
#ems-plugin-modals .ems-walkin-message{
    margin: 10px 0 0 0;
    font-size: 14px;
}
#ems-plugin .ems-walkin-message-error,
#ems-plugin-modals .ems-walkin-message-error{
    color: #b32d2e;
}
#ems-plugin .ems-walkin-loading,
#ems-plugin-modals .ems-walkin-loading{
    text-align: center;
    padding: 24px 10px;
    color: var(--ems-text-secondary, #50575e);
}
#ems-plugin .ems-walkin-modal-content .ems-form-group,
#ems-plugin-modals .ems-walkin-modal-content .ems-form-group{
    margin-bottom: 14px;
}
#ems-plugin .ems-walkin-modal-content .ems-required,
#ems-plugin-modals .ems-walkin-modal-content .ems-required{
    color: #b32d2e;
}

/* Event table dashboard */
#ems-plugin .screen-reader-text{
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
#ems-plugin .ems-volunteer-events-panel{
    margin-top: 30px;
}
#ems-plugin .ems-events-panel-header{
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(420px, 620px);
    align-items: end;
    gap: 24px;
    margin-bottom: 18px;
}
#ems-plugin .ems-events-panel-header h2{
    margin: 0 0 4px;
    color: var(--ems-text-primary);
    font-size: 22px;
}
#ems-plugin .ems-events-panel-header p{
    margin: 0;
    color: var(--ems-text-muted);
    font-size: 14px;
}
#ems-plugin .ems-events-toolbar{
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    min-width: 0;
}
#ems-plugin .ems-dashboard-table-tools{
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}
#ems-plugin .ems-dashboard-table-tools .ems-btn{
    min-height: 42px;
    padding: 8px 12px;
    font-size: 12px;
    white-space: nowrap;
}
#ems-plugin .ems-event-search{
    position: relative;
    width: 100%;
}
#ems-plugin .ems-event-search-icon{
    position: absolute;
    top: 50%;
    left: 13px;
    transform: translateY(-50%);
    color: var(--ems-text-muted);
    pointer-events: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
}
#ems-plugin .ems-event-search-icon svg{
    display: block;
}
#ems-plugin .ems-event-search input{
    width: 100%;
    min-height: 44px;
    margin: 0;
    padding: 10px 42px !important;
        border: 1px solid var(--ems-border);
    border-radius: 8px;
    background: var(--ems-bg-surface);
    color: var(--ems-text-primary);
    font: inherit;
    font-size: 14px;
    line-height: 22px;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, .03);
    appearance: none;
}
#ems-plugin .ems-event-search input::placeholder{
    color: var(--ems-text-muted);
    opacity: .85;
}
#ems-plugin .ems-event-search input:focus{
    outline: none;
    border-color: var(--ems-primary);
    box-shadow: 0 0 0 3px var(--ems-primary-focus);
}
#ems-plugin .ems-events-table-wrap{
    overflow-x: auto;
    border: 1px solid var(--ems-border-light);
    border-radius: var(--ems-radius-md);
    background: var(--ems-bg-surface);
}
#ems-plugin .ems-events-table{
    width: 100%;
    min-width: 860px;
    margin: 0;
    border: 0;
    border-collapse: collapse;
    background: transparent;
}
#ems-plugin .ems-events-table th,
#ems-plugin .ems-events-table td{
    padding: 16px;
    border: 0;
    border-bottom: 1px solid var(--ems-border-light);
    text-align: left;
    vertical-align: middle;
}
#ems-plugin .ems-events-table thead th{
    padding-top: 12px;
    padding-bottom: 12px;
    background: var(--ems-bg-secondary);
    color: var(--ems-text-secondary);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}
#ems-plugin .ems-events-table tbody tr:last-child > *{
    border-bottom: 0;
}
#ems-plugin .ems-events-table tbody tr:hover{
    background: var(--ems-bg-secondary);
}
#ems-plugin .ems-event-row[hidden]{
    display: none !important;
}
#ems-plugin .ems-events-table tbody th{
    width: 28%;
    color: var(--ems-text-primary);
    font-weight: 600;
}
#ems-plugin .ems-events-table tbody th a{
    color: var(--ems-text-primary);
    text-decoration: none;
}
#ems-plugin .ems-events-table tbody th a:hover,
#ems-plugin .ems-events-table tbody th a:focus{
    color: var(--ems-primary);
    text-decoration: underline;
}
#ems-plugin .ems-events-table td:nth-child(2){
    width: 19%;
    color: var(--ems-text-secondary);
    font-size: 13px;
}
#ems-plugin .ems-events-table td:nth-child(3){
    width: 12%;
}
#ems-plugin .ems-events-table td:last-child{
    width: 170px;
}
#ems-plugin .ems-event-primary-actions{
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    width: 100%;
    max-width: 150px;
}
#ems-plugin .ems-event-primary-actions .ems-btn{
    width: 100%;
    min-height: 32px;
    padding: 6px 9px;
    border-radius: var(--ems-radius-sm);
    font-size: 12px;
    line-height: 1.25;
    white-space: nowrap;
}
#ems-plugin .ems-event-primary-actions .ems-btn:disabled{
    opacity: .5;
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}
#ems-plugin .ems-event-primary-actions [data-workflow="attendance"]{
    border-color: #5cad78;
    background: #f3fbf5;
    color: #24733f;
}
#ems-plugin .ems-event-primary-actions [data-workflow="attendance"]:hover:not(:disabled),
#ems-plugin .ems-event-primary-actions [data-workflow="attendance"]:focus:not(:disabled){
    border-color: #24733f;
    background: #e5f6e9;
    color: #18542d;
}
#ems-plugin .ems-event-primary-actions [data-workflow="log-time"]{
    border-color: #6f91cf;
    background: #f2f6fd;
    color: #315fae;
}
#ems-plugin .ems-event-primary-actions [data-workflow="log-time"]:hover:not(:disabled),
#ems-plugin .ems-event-primary-actions [data-workflow="log-time"]:focus:not(:disabled){
    border-color: #315fae;
    background: #e5edfb;
    color: #244a8a;
}
#ems-plugin .ems-event-primary-actions [data-workflow="finalize"]{
    border-color: #a96a3e;
    background: #fff8f2;
    color: #8a4d25;
}
#ems-plugin .ems-event-primary-actions [data-workflow="finalize"]:hover:not(:disabled),
#ems-plugin .ems-event-primary-actions [data-workflow="finalize"]:focus:not(:disabled){
    border-color: #8a4d25;
    background: #f8eadf;
    color: #6e3919;
}
#ems-plugin .ems-event-more-actions{
    position: relative;
    display: block;
    width: 100%;
    max-width: 150px;
    margin-top: 7px;
}
#ems-plugin .ems-event-more-toggle{
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 5px;
    width: 100%;
    min-height: 30px;
    padding: 5px 8px;
    border: 1px solid transparent;
    border-radius: var(--ems-radius-sm);
    background: transparent;
    color: var(--ems-primary);
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    text-align: left;
}
#ems-plugin .ems-event-more-toggle:hover,
#ems-plugin .ems-event-more-toggle:focus,
#ems-plugin .ems-event-more-toggle[aria-expanded="true"]{
    outline: none;
    border-color: var(--ems-border);
    background: var(--ems-bg-secondary);
}
#ems-plugin .ems-event-more-menu[hidden]{
    display: none !important;
}
#ems-plugin .ems-event-more-menu{
    z-index: 100020;
    width: 190px;
    margin: 0;
    padding: 6px;
    border: 1px solid var(--ems-border-light);
    border-radius: 8px;
    background: var(--ems-bg-surface);
    box-shadow: 0 12px 30px rgba(15, 23, 42, .18);
}
#ems-plugin .ems-event-more-menu a,
#ems-plugin .ems-event-more-menu button{
    display: block;
    width: 100%;
    min-height: 34px;
    padding: 7px 9px;
    border: 0;
    border-radius: var(--ems-radius-sm);
    background: transparent;
    color: var(--ems-text-primary);
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    line-height: 20px;
    text-align: left;
    text-decoration: none;
}
#ems-plugin .ems-event-more-menu a:hover,
#ems-plugin .ems-event-more-menu a:focus,
#ems-plugin .ems-event-more-menu button:hover,
#ems-plugin .ems-event-more-menu button:focus{
    outline: none;
    background: var(--ems-bg-secondary);
    color: var(--ems-primary);
}
#ems-plugin .ems-event-more-menu .ems-event-delete-action{
    color: var(--ems-error-text);
}
#ems-plugin .ems-events-empty-state{
    padding: 32px 20px;
    border: 1px dashed var(--ems-border);
    border-radius: var(--ems-radius-md);
    background: var(--ems-bg-secondary);
    color: var(--ems-text-muted);
    text-align: center;
}
#ems-plugin .ems-events-empty-state p{
    margin: 0;
}
#ems-plugin .ems-events-pagination{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 16px;
}
#ems-plugin .ems-events-pagination[hidden]{
    display: none !important;
}
#ems-plugin .ems-events-pagination p{
    margin: 0;
    color: var(--ems-text-muted);
    font-size: 13px;
}
#ems-plugin .ems-events-pagination-actions{
    display: flex;
    align-items: center;
    gap: 10px;
}
#ems-plugin .ems-events-pagination-actions .ems-btn{
    min-height: 34px;
    padding: 6px 12px;
    font-size: 12px;
}
#ems-plugin #ems-events-page-status{
    min-width: 76px;
    color: var(--ems-text-secondary);
    font-size: 12px;
    text-align: center;
}
#ems-plugin .ems-workflow-back{
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 12px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--ems-primary);
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
}
#ems-plugin .ems-workflow-back:hover,
#ems-plugin .ems-workflow-back:focus{
    text-decoration: underline;
}

/* Per-event workflow modal */
body.ems-workflow-modal-is-open{
    overflow: hidden;
}
#ems-plugin .ems-event-workflow-modal[hidden]{
    display: none !important;
}
#ems-plugin .ems-event-workflow-modal{
    position: fixed;
    z-index: var(--ems-z-modal-elevated);
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
#ems-plugin .ems-workflow-modal-overlay{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: rgba(20, 24, 29, .66);
    cursor: default;
}
#ems-plugin .ems-workflow-modal-panel{
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    width: min(100%, 880px);
    max-height: calc(100vh - 48px);
    overflow: hidden;
    border: 1px solid var(--ems-border-light);
    border-radius: 10px;
    background: var(--ems-bg-surface);
    box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
}
#ems-plugin .ems-event-workflow-modal[data-workflow="finalize"] .ems-workflow-modal-panel{
    width: min(100%, 1120px);
}
#ems-plugin .ems-workflow-modal-bar{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 64px;
    padding: 14px 20px;
    border-bottom: 1px solid var(--ems-border-light);
    background: var(--ems-bg-secondary);
}
#ems-plugin .ems-workflow-modal-bar h2{
    margin: 0;
    color: var(--ems-text-primary);
    font-size: 21px;
    line-height: 1.3;
}
#ems-plugin .ems-workflow-modal-close{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    margin: 0;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 50%;
    background: transparent;
    color: var(--ems-text-secondary);
    cursor: pointer;
    font-size: 28px;
    font-weight: 400;
    line-height: 1;
}
#ems-plugin .ems-workflow-modal-close:hover,
#ems-plugin .ems-workflow-modal-close:focus{
    border-color: var(--ems-border);
    outline: none;
    background: var(--ems-bg-surface);
    color: var(--ems-text-primary);
}
#ems-plugin .ems-workflow-modal-body{
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 24px;
}
#ems-plugin .ems-workflow-modal-body > .ems-volunteer-section{
    display: block;
    opacity: 1;
    visibility: visible;
}
#ems-plugin .ems-workflow-modal-body > .ems-volunteer-section > .ems-section-header{
    display: none;
}
#ems-plugin .ems-workflow-modal-body .ems-volunteer-form{
    max-width: none;
}

/* Log Time — admin-defined category hours list (Image 3) */
#ems-plugin .ems-log-time-categories{
    margin-bottom: 20px;
}
#ems-plugin .ems-log-time-category-row{
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px solid var(--ems-border-light);
}
#ems-plugin .ems-log-time-category-row:first-child{
    padding-top: 0;
}
#ems-plugin .ems-log-time-category-name{
    flex: 1;
    min-width: 0;
    padding-top: 28px;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.4;
    color: var(--ems-text-primary);
    text-align: left;
}
#ems-plugin .ems-log-time-hours-field{
    flex: 0 0 120px;
    width: 120px;
    text-align: right;
}
#ems-plugin .ems-log-time-hours-field label{
    display: block;
    margin-bottom: 6px;
    font-size: 12px;
    font-weight: 600;
    color: var(--ems-text-primary);
    text-align: left;
}
#ems-plugin .ems-log-time-hours-field .ems-form-control{
    width: 100%;
    margin: 0;
    text-align: left;
}
#ems-plugin .ems-log-time-hours-field .ems-form-control.ems-field-invalid{
    border-color: var(--ems-error);
    box-shadow: 0 0 0 1px var(--ems-error);
}
#ems-plugin .ems-log-time-total{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 0 0;
    margin-top: 4px;
}
#ems-plugin .ems-log-time-total-label{
    font-size: 14px;
    font-weight: 400;
    color: var(--ems-text-primary);
}
#ems-plugin .ems-log-time-total-value{
    flex: 0 0 120px;
    width: 120px;
    font-size: 16px;
    font-weight: 700;
    color: var(--ems-text-primary);
    text-align: right;
}

/* Log Time History */
#ems-plugin .ems-log-time-history-card{
    padding: 0;
    overflow: hidden;
}
#ems-plugin .ems-log-time-history-accordion{
    display: flex;
    flex-direction: column;
}
#ems-plugin .ems-log-time-event-accordion{
    border-bottom: 1px solid var(--ems-border-light);
}
#ems-plugin .ems-log-time-event-accordion:last-child{
    border-bottom: none;
}
#ems-plugin .ems-log-time-event-accordion-header{
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    background: var(--ems-bg-secondary);
    border: none;
    cursor: pointer;
    text-align: left;
    color: var(--ems-text-primary);
}
#ems-plugin .ems-log-time-event-accordion-header:hover{
    background: var(--ems-bg-tertiary, #f1f5f9);
}
#ems-plugin .ems-log-time-event-accordion-title{
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
#ems-plugin .ems-log-time-event-accordion-chevron{
    display: inline-block;
    font-size: 10px;
    color: var(--ems-text-muted);
    transition: transform 0.15s ease;
    transform: rotate(-90deg);
}
#ems-plugin .ems-log-time-event-accordion.is-open .ems-log-time-event-accordion-chevron{
    transform: rotate(0deg);
}
#ems-plugin .ems-log-time-event-name{
    font-size: 14px;
    font-weight: 600;
}
#ems-plugin .ems-log-time-event-accordion-meta{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--ems-text-secondary);
    white-space: nowrap;
}
#ems-plugin .ems-log-time-event-meta-sep{
    color: var(--ems-text-muted);
}
#ems-plugin .ems-log-time-event-accordion-body{
    padding: 0;
    background: #fff;
}
#ems-plugin .ems-log-time-event-accordion-body[hidden]{
    display: none !important;
}
#ems-plugin .ems-log-time-history-table-wrap{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
#ems-plugin .ems-log-time-history-table{
    width: 100%;
    border-collapse: collapse;
}
#ems-plugin .ems-log-time-history-table thead th{
    padding: 12px;
    text-align: left;
    font-size: 13px;
    font-weight: 600;
    color: var(--ems-text-primary);
    background: #fff;
    border-bottom: 1px solid var(--ems-border-light);
    white-space: nowrap;
}
#ems-plugin .ems-log-time-history-table tbody td{
    padding: 12px;
    font-size: 14px;
    color: var(--ems-text-primary);
    border-bottom: 1px solid var(--ems-border-light);
    vertical-align: middle;
}
#ems-plugin .ems-log-time-history-table tbody tr:last-child td{
    border-bottom: none;
}
#ems-plugin .ems-log-time-history-actions-col,
#ems-plugin .ems-log-time-history-actions{
    text-align: right;
    white-space: nowrap;
}
#ems-plugin .ems-log-time-history-actions .ems-btn{
    font-size: 12px;
    padding: 6px 12px;
    margin-left: 6px;
}
#ems-plugin .ems-delete-log-time-btn{
    color: #b91c1c;
    border-color: #fecaca;
}
#ems-plugin .ems-delete-log-time-btn:hover{
    background: #fef2f2;
}
#ems-plugin .ems-log-time-status-badge{
    display: inline-block;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    background: var(--ems-bg-secondary);
    color: var(--ems-text-secondary);
}
#ems-plugin .ems-log-time-history-pagination{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border-top: 1px solid var(--ems-border-light);
}
#ems-plugin .ems-log-time-history-pagination[hidden]{
    display: none !important;
}
#ems-plugin .ems-log-time-history-pagination p{
    margin: 0;
    font-size: 13px;
    color: var(--ems-text-secondary);
}
#ems-plugin .ems-log-time-history-pagination-actions{
    display: flex;
    gap: 8px;
}
#ems-plugin .ems-view-log-time-modal-content{
    width: 92%;
    max-width: 560px;
}
#ems-plugin .ems-view-log-time-details{
    display: flex;
    flex-direction: column;
    gap: 16px;
}
#ems-plugin .ems-view-log-time-field{
    display: flex;
    flex-direction: column;
    gap: 4px;
}
#ems-plugin .ems-view-log-time-label{
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--ems-text-secondary);
}
#ems-plugin .ems-view-log-time-value{
    font-size: 15px;
    color: var(--ems-text-primary);
    line-height: 1.45;
}
#ems-plugin .ems-view-log-time-categories,
#ems-plugin .ems-view-log-time-summary{
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px 0;
    border-top: 1px solid var(--ems-border-light);
    border-bottom: 1px solid var(--ems-border-light);
}
#ems-plugin .ems-view-log-time-summary{
    border-bottom: none;
    padding-bottom: 0;
}
#ems-plugin .ems-view-log-time-category-row{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    font-size: 14px;
    color: var(--ems-text-primary);
}
#ems-plugin .ems-view-log-time-description{
    white-space: pre-wrap;
}

@media screen and (max-width: 640px){
    #ems-plugin .ems-log-time-category-row{
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }
    #ems-plugin .ems-log-time-category-name{
        padding-top: 0;
    }
    #ems-plugin .ems-log-time-hours-field{
        flex: none;
        width: 100%;
        max-width: 160px;
        margin-left: auto;
    }
    #ems-plugin .ems-log-time-total-value{
        flex: none;
        width: auto;
    }
    #ems-plugin .ems-log-time-history-pagination{
        flex-direction: column;
        align-items: stretch;
    }
    #ems-plugin .ems-log-time-history-pagination-actions{
        justify-content: space-between;
    }
}

/* Nested walk-in dialog must remain above the attendance workflow dialog. */
#ems-plugin #ems-walkin-attendee-modal,
#ems-plugin-modals #ems-walkin-attendee-modal{
    z-index: var(--ems-z-modal-stacked);
}
#ems-plugin #ems-walkin-attendee-modal .ems-modal-overlay,
#ems-plugin-modals #ems-walkin-attendee-modal .ems-modal-overlay{
    z-index: var(--ems-z-modal-overlay-stacked);
}
#ems-plugin #ems-walkin-attendee-modal .ems-modal-content,
#ems-plugin-modals #ems-walkin-attendee-modal .ems-modal-content{
    position: relative;
    z-index: var(--ems-z-modal-stacked);
}

@media screen and (max-width: 1100px){
    #ems-plugin .ems-events-panel-header{
        grid-template-columns: 1fr;
        align-items: stretch;
        gap: 14px;
    }
    #ems-plugin .ems-events-toolbar{
        width: 100%;
        max-width: none;
    }
}

@media screen and (max-width: 782px){
    #ems-plugin .ems-volunteer-layout{
        margin-top: 16px;
    }
    #ems-plugin .ems-volunteer-content{
        padding: 14px;
        border-radius: 8px;
    }
    #ems-plugin .ems-volunteer-stats{
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        margin-bottom: 22px;
    }
    #ems-plugin .ems-volunteer-stat-card{
        min-width: 0;
        min-height: 112px;
        padding: 12px 8px;
        flex-direction: column;
        justify-content: center;
        gap: 7px;
        text-align: center;
    }
    #ems-plugin .ems-volunteer-stat-card:hover{
        transform: none;
    }
    #ems-plugin .ems-volunteer-stat-icon{
        width: 30px;
        height: 30px;
        font-size: 22px;
    }
    #ems-plugin .ems-volunteer-stat-content{
        width: 100%;
    }
    #ems-plugin .ems-volunteer-stat-number{
        margin-bottom: 4px;
        font-size: 25px;
    }
    #ems-plugin .ems-volunteer-stat-label{
        font-size: 10px;
        line-height: 1.25;
    }
    #ems-plugin .ems-volunteer-events-panel{
        margin-top: 0;
    }
    #ems-plugin .ems-events-panel-header{
        margin-bottom: 14px;
    }
    #ems-plugin .ems-events-panel-header h2{
        font-size: 20px;
    }
    #ems-plugin .ems-events-panel-header p{
        font-size: 13px;
        line-height: 1.45;
    }
    #ems-plugin .ems-events-toolbar{
        max-width: none;
    }
    #ems-plugin .ems-dashboard-table-tools{
        width: 100%;
        flex-direction: column;
    }
    #ems-plugin .ems-dashboard-table-tools .ems-btn{
        width: 100%;
        min-height: 40px;
        flex: none;
    }
    #ems-plugin .ems-event-search{
        min-width: 0;
    }
    #ems-plugin .ems-event-search input{
        min-height: 42px;
    }
    #ems-plugin .ems-events-table-wrap{
        overflow: visible;
        border: 0;
        background: transparent;
    }
    #ems-plugin .ems-events-table{
        min-width: 0;
    }
    #ems-plugin .ems-events-table thead{
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
    }
    #ems-plugin .ems-events-table,
    #ems-plugin .ems-events-table tbody,
    #ems-plugin .ems-events-table tr,
    #ems-plugin .ems-events-table th,
    #ems-plugin .ems-events-table td{
        display: block;
        width: 100%;
    }
    #ems-plugin .ems-events-table tbody tr{
        margin-bottom: 14px;
        overflow: visible;
        border: 1px solid var(--ems-border-light);
        border-radius: var(--ems-radius-md);
        background: var(--ems-bg-surface);
        box-shadow: var(--ems-shadow-sm);
    }
    #ems-plugin .ems-events-table tbody tr:hover{
        background: var(--ems-bg-surface);
    }
    #ems-plugin .ems-events-table tbody th,
    #ems-plugin .ems-events-table td:last-child{
        width: 100%;
    }
    #ems-plugin .ems-events-table th,
    #ems-plugin .ems-events-table td,
    #ems-plugin .ems-events-table td:nth-child(2),
    #ems-plugin .ems-events-table td:nth-child(3){
        width: 100%;
        padding: 11px 14px;
        border-bottom: 1px solid var(--ems-border-light);
    }
    #ems-plugin .ems-events-table th::before,
    #ems-plugin .ems-events-table td::before{
        display: block;
        margin-bottom: 4px;
        color: var(--ems-text-muted);
        content: attr(data-label);
        font-size: 10px;
        font-weight: 700;
        letter-spacing: .04em;
        text-transform: uppercase;
    }
    #ems-plugin .ems-events-table tbody tr > *:last-child{
        border-bottom: 0;
    }
    #ems-plugin .ems-event-primary-actions,
    #ems-plugin .ems-event-more-actions{
        width: 100%;
        max-width: none;
    }
    #ems-plugin .ems-event-primary-actions{
        gap: 8px;
    }
    #ems-plugin .ems-event-primary-actions .ems-btn{
        min-height: 38px;
        padding: 8px 12px;
        font-size: 13px;
    }
    #ems-plugin .ems-event-more-toggle{
        justify-content: center;
        min-height: 36px;
        margin-top: 2px;
    }
    #ems-plugin .ems-events-pagination{
        align-items: stretch;
        flex-direction: column;
    }
    #ems-plugin .ems-events-pagination-actions{
        justify-content: space-between;
    }
    #ems-plugin .ems-event-workflow-modal{
        align-items: stretch;
        padding: 0;
    }
    #ems-plugin .ems-workflow-modal-panel,
    #ems-plugin .ems-event-workflow-modal[data-workflow="finalize"] .ems-workflow-modal-panel{
        width: 100%;
        max-height: 100vh;
        border: 0;
        border-radius: 0;
    }
    #ems-plugin .ems-workflow-modal-bar{
        min-height: 58px;
        padding: 10px 14px;
    }
    #ems-plugin .ems-workflow-modal-bar h2{
        font-size: 18px;
    }
    #ems-plugin .ems-workflow-modal-body{
        padding: 18px 14px;
    }
}
