@keyframes rotate {
 from {
  transform: rotate(0deg);
 }
 to {
  transform: rotate(360deg);
 }
}

@keyframes skeleton-shimmer {
 0% {
  background-position: 100% 0;
 }
 100% {
  background-position: -100% 0;
 }
}

.note-entry .note-content {
 
 word-wrap: break-word;
 overflow-wrap: break-word;
 word-break: break-all;
 white-space: pre-wrap;
 
 
 width: 100%;
 box-sizing: border-box;
 color: var(--dark);
 line-height: 1.4;
 font-size: 0.95rem;
}

 

.note-time{
 font-size:0.8rem;
 color:var(--secondary);
 font-weight:500;
}
.note-author{
 font-size:0.85rem;
 color:var(--primary-dark);
 font-weight:600;
}
#profileNotesSection .profile-notes-header{
 padding-top:0;
 padding-left:0;
 padding-right:0;
 margin-bottom:15px;
}
#profileNotesSection textarea{
 
 width:100%;
 padding:12px 15px !important;
 box-sizing:border-box;
 margin-bottom:15px;
}
#profileNotesSection .form-actions{
 padding:0;
 margin-top:0;
 justify-content:flex-end;
}
.notes-expand-btn{
 background:none;
 border:none;
 color:var(--primary);
 cursor:pointer;
 font-size:1.1rem;
 padding:5px;
 transition:color 0.2s;
}
.notes-expand-btn:hover{
 color:var(--primary-dark);
}
#profileNotesSection.notes-expanded-mode{
 position:fixed;
 top:0;
 left:0;
 width:100%;
 height:100%;
 
 padding:30px;
 background:rgba(255,255,255,0.98);
 z-index:10000;
 display:flex;
 flex-direction:column;
 margin-top:0 !important;
}
#profileNotesSection.notes-expanded-mode .notes-container{
 flex-grow:1;
 max-height:none;
 height:calc(100vh - 120px);
 overflow-y:auto;
 overflow-x:hidden;
 padding:15px;
 margin-bottom:10px;
 border-radius:0;
}
#profileNotesSection.notes-expanded-mode textarea{
 min-height:100px;
}
#daysWorkedModal .modal-content{
 max-width:800px;
}
#currentMonthYear{
 font-size:1.5rem;
 font-weight:600;
 color:var(--dark);
}
#calendarGrid{
 display:grid;
 grid-template-columns:repeat(7,1fr);
 gap:5px;
}
.day-header{
 font-weight:600;
 text-align:center;
 padding:10px 0;
 color:var(--secondary);
 font-size:0.9rem;
}
.day-cell:not(.empty):hover{
 background-color:#e9eef7;
 border-color:var(--primary-dark);
}
.day-cell.selected:hover{
 background-color:var(--primary-dark);
}
.day-cell.selected input:focus{
 outline:2px solid white;
}
.day-cell input::-webkit-outer-spin-button,
.day-cell input::-webkit-inner-spin-button{
 -webkit-appearance:none;
 margin:0;
}
.calendar-legend-color.group-placement{background:#ffd166;}
.calendar-legend-color.compliance-critical{background:#d00000;}
.saved-search-item{
 background:white;
 border:1px solid var(--border);
 border-radius:8px;
 padding:15px;
 transition:all 0.2s;
 cursor:pointer;
}
.saved-search-item:hover{
 border-color:var(--primary);
 box-shadow:0 2px 8px rgba(67,97,238,0.1);
}
.saved-search-actions .btn{
 padding:4px 8px;
 font-size:0.8rem;
}
.saved-search-details{
 color:var(--secondary);
 font-size:0.9rem;
 line-height:1.4;
}
.calendar-event-modal{
 position:fixed;
 top:0;
 left:0;
 width:100%;
 height:100%;
 background:rgba(0,0,0,0.8);
 z-index:2001;
 display:none !important;
 justify-content:center;
 align-items:center;
 padding:20px;
}
.calendar-event-modal[style*="display: flex"],
.calendar-event-modal[style*="display:flex"]{
 display:flex !important;
}
.calendar-event-modal-content{
 background:white;
 border-radius:10px;
 padding:25px;
 max-width:500px;
 width:100%;
 max-height:80vh;
 overflow-y:auto;
 position:relative;
}
.calendar-event-modal-header{
 display:flex;
 justify-content:space-between;
 align-items:center;
 margin-bottom:20px;
 padding-bottom:15px;
 border-bottom:1px solid var(--border);
}
.calendar-event-modal-title{
 font-size:1.3rem;
 font-weight:600;
 color:var(--dark);
 margin:0;
}
.calendar-event-modal-close{
 background:none;
 border:none;
 font-size:1.5rem;
 cursor:pointer;
 color:var(--secondary);
 padding:5px;
}
.calendar-event-details{
 display:flex;
 flex-direction:column;
 gap:12px;
}
.calendar-event-detail-row{
 display:flex;
 align-items:start;
 gap:10px;
}
.calendar-event-detail-label{
 font-weight:600;
 color:var(--dark);
 min-width:100px;
 font-size:0.9rem;
}
.calendar-event-detail-value{
 flex:1;
 color:var(--secondary);
 font-size:0.9rem;
 word-break:break-word;
}
@media (max-width:768px){
 .calendar-controls{
 flex-direction:column;
 align-items:stretch;
 gap:15px;
}
 
 .calendar-save-search{
 margin-left:0;
 align-self:stretch;
}
 
 .calendar-navigation{
 flex-wrap:wrap;
 gap:10px;
}
 
 .calendar-month-title{
 order:-1;
 text-align:center;
 width:100%;
 margin-bottom:10px;
}
 
 .calendar-day-cell{
 min-height:80px;
 padding:4px;
}
 
 .calendar-event{
 font-size:0.7rem;
 padding:1px 4px;
}
 
 .calendar-legend{
 flex-direction:column;
 align-items:stretch;
 gap:10px;
}
}
body.calendar-force-visible #calendar,body.calendar-force-visible #calendar.section,body.calendar-force-visible #calendar.section.active{
 display:block !important;
}
.calendar-grid-container{
 display:block !important;
 visibility:visible !important;
}
.calendar-grid{
 display:grid !important;
 visibility:visible !important;
}
/* Only force opacity when the debug overlay is active — do NOT set here normally
   because it overrides animation keyframes (author !important > animation in cascade) */
body.calendar-force-visible .calendar-grid-container,
body.calendar-force-visible .calendar-grid{
 opacity:1 !important;
}
.calendar-day-cell,.calendar-controls,.calendar-navigation,.calendar-legend{
 display:flex !important;
 visibility:visible !important;
 opacity:1 !important;
}
body.calendar-force-visible #calendar{
 position:fixed !important;
 top:0 !important;
 left:var(--sidebar-width) !important;
 width:calc(100vw - var(--sidebar-width)) !important;
 height:100vh !important;
 background:white !important;
 z-index:9999 !important;
 display:block !important;
 overflow-y:auto !important;
 padding:20px !important;
 box-sizing:border-box !important;
 border:none !important;
}
body.calendar-force-visible{
 overflow:hidden !important;
}
body.calendar-force-visible #calendar *{
 visibility:visible !important;
 opacity:1 !important;
}
body.calendar-force-visible .calendar-grid-container{
 background:#f8f9fb !important;
 border:none !important;
 min-height:auto !important;
 overflow:visible !important;
}
body.calendar-force-visible .calendar-grid{
 background:transparent !important;
 border:none !important;
}
body.calendar-force-visible .calendar-day-header{
 padding:10px !important;
}
body.calendar-force-visible .sidebar{
 z-index:10000 !important;
}
body.calendar-force-visible #calendar .calendar-grid-container{
 padding-bottom:80px !important;
}
.invoice-details .label{
 font-weight:600;
 color:#333;
 margin-bottom:5px;
 font-size:10px;
 text-transform:uppercase;
}
.invoice-items-table th:first-child,
.invoice-items-table td:first-child{
 width:35%;
}
.invoice-items-table th:last-child,
.invoice-items-table td:last-child{
 width:65%;
}
.invoice-items-table td:last-child{
 white-space:pre-wrap;
 word-wrap:break-word;
 overflow-wrap:break-word;
 word-break:break-all;
}
#settings .settings-group{
 background:#fff;
 border:1px solid var(--border);
 border-radius:10px;
 padding:16px;
 margin-bottom:16px;
 box-shadow:var(--card-shadow);
}
#settings .settings-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;}
#settings .settings-row + .settings-row{margin-top:10px;}
#jobTitleList{display:flex;flex-wrap:wrap;gap:8px;}
#jobTitleList .tag{
 display:inline-flex;align-items:center;gap:6px;
 padding:6px 10px;border:1px solid var(--border);border-radius:16px;
 background:#f8f9fa;color:var(--dark);
}
#jobTitleList .tag .btn{padding:4px 8px;}
#bulkStatus{font-size:0.95rem;margin-top:8px;}
body.theme-dark{background-color:#0f172a;color:#e5e7eb;}
body.theme-dark .top-bar{background:#111827;color:#e5e7eb;box-shadow:0 1px 0 rgba(255,255,255,0.04);}
body.theme-dark .section-title{color:#e5e7eb;}
body.theme-dark .form-container,
body.theme-dark .results-container,
body.theme-dark .search-container-full,
body.theme-dark .stat-card,
body.theme-dark table,
body.theme-dark .modal-content,
body.theme-dark #settings .settings-group{
 background:#0b1220;
 border-color:#1f2a44;
 color:#e5e7eb;
 box-shadow:none;
}
body.theme-dark .form-group input,
body.theme-dark .form-group select,
body.theme-dark .form-group textarea,
body.theme-dark .search-container input{
 background:#111827;
 color:#e5e7eb;
 border-color:#374151;
}
body.theme-dark .form-group input:focus,
body.theme-dark .form-group select:focus,
body.theme-dark .form-group textarea:focus{
 background:#0b1220;
 border-color:var(--primary);
}
body.theme-dark th{background:#19233d;color:#e5e7eb;}
body.theme-dark td,
body.theme-dark .list-entry{border-color:#1f2a44;}
body.theme-dark tr:hover,body.theme-dark .list-entry:hover{background:rgba(255,255,255,0.04);}
body.theme-dark #jobTitleList .tag{background:#111827;border-color:#1f2a44;color:#e5e7eb;}
body.theme-dark .search-results,
body.theme-dark .profile-container{
 background:#0b1220;
 border-color:#1f2a44;
}
body.theme-dark .search-result-item{color:#e5e7eb;border-bottom-color:#1f2a44;}
body.theme-dark .search-result-item:hover{background:var(--primary);color:#fff;}
.profile-card{
 background:#fff;
 border:1px solid #e2e8f0;
 border-radius:12px;
 padding:0;
 box-shadow:0 1px 3px rgba(0,0,0,0.1);
 overflow:hidden;
}
.profile-card + .profile-card{margin-top:16px;}
.info-row .label{
 font-size:0.75rem;
 font-weight:500;
 color:#64748b;
 text-transform:uppercase;
 letter-spacing:0.05em;
 margin-bottom:4px;
}
.info-row .value{
 color:#1e293b;
 font-weight:500;
 font-size:0.95rem;
 white-space:normal;
 word-break:keep-all;
 overflow-wrap:break-word;
}
.invoice-list-row>span:last-child{
 font-weight:600;
 color:#1e293b;
 font-size:0.9rem;
}
body.theme-dark .profile-section-heading{color:#e5e7eb;border-bottom-color:var(--primary);}
@media print{
 body,.sidebar,.top-bar,.profile-header,#profileDeleteButtonSection{
  visibility:hidden;
  display:none;
}
 .profile-container{
  visibility:visible;
  width:100%;
  max-width:100%;
  margin:0;
  padding:0;
  border:none;
  box-shadow:none;
  background:none;
}
 @page{
  size:A4;
  margin:0;
 }
}