html{--lumo-primary-color: hsl(214, 90%, 52%);--lumo-primary-color-50pct: hsla(214, 90%, 52%, .5);--lumo-primary-color-10pct: hsla(214, 90%, 52%, .1);--lumo-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--lumo-border-radius-s: 4px;--lumo-border-radius-m: 6px;--lumo-border-radius-l: 8px;--lumo-space-xs: .25rem;--lumo-space-s: .5rem;--lumo-space-m: 1rem;--lumo-space-l: 1.5rem;--lumo-space-xl: 2.5rem;--lumo-success-color: hsl(122, 39%, 49%);--lumo-success-color-50pct: hsla(122, 39%, 49%, .5);--lumo-success-color-10pct: hsla(122, 39%, 49%, .1);--lumo-error-color: hsl(4, 90%, 58%);--lumo-error-color-50pct: hsla(4, 90%, 58%, .5);--lumo-error-color-10pct: hsla(4, 90%, 58%, .1)}:root{--bd-primary-color: #2196F3;--bd-primary-dark: #1976D2;--bd-primary-light: #BBDEFB;--bd-secondary-color: #667eea;--bd-secondary-dark: #764ba2;--bd-success-color: #4CAF50;--bd-warning-color: #FF9800;--bd-error-color: #F44336;--bd-info-color: #2196F3;--bd-shadow-sm: 0 2px 4px rgba(0,0,0,.1);--bd-shadow-md: 0 4px 8px rgba(0,0,0,.15);--bd-shadow-lg: 0 8px 16px rgba(0,0,0,.2);--bd-space-xs: .25rem;--bd-space-sm: .5rem;--bd-space-md: 1rem;--bd-space-lg: 1.5rem;--bd-space-xl: 2rem}.dashboard-card,.stat-card{transition:all .3s cubic-bezier(.4,0,.2,1)}.dashboard-card:hover,.stat-card:hover{transform:translateY(-2px)}.stat-card-primary{border-left-color:var(--bd-primary-color)!important}.stat-card-success{border-left-color:var(--bd-success-color)!important}.stat-card-warning{border-left-color:var(--bd-warning-color)!important}.stat-card-error{border-left-color:var(--bd-error-color)!important}.stat-card-info{border-left-color:var(--bd-info-color)!important}.stat-card-neutral{border-left-color:var(--lumo-contrast-30pct)!important}.employee-dashboard-view,.management-dashboard-view,.my-time-tracking-view{background:var(--lumo-contrast-5pct)}.info-card{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:var(--lumo-space-l);border-radius:var(--lumo-border-radius-l);box-shadow:var(--bd-shadow-sm);margin-bottom:var(--lumo-space-m)}.current-day-card{background:linear-gradient(135deg,#e3f2fd,#bbdefb);padding:var(--lumo-space-l);border-radius:var(--lumo-border-radius-l);box-shadow:var(--bd-shadow-sm)}.status-badge{display:inline-block;padding:var(--lumo-space-xs) var(--lumo-space-s);border-radius:var(--lumo-border-radius-m);font-weight:500;font-size:var(--lumo-font-size-s)}.status-badge-active{background:var(--lumo-success-color-10pct);color:var(--lumo-success-color)}.status-badge-inactive{background:var(--lumo-contrast-10pct);color:var(--lumo-contrast-60pct)}.status-badge-warning{background:var(--bd-warning-color);color:#fff}.status-badge-error{background:var(--bd-error-color);color:#fff}.irregularities-card{background:linear-gradient(135deg,#fff9e0,#ffe0b2);padding:var(--lumo-space-l);border-radius:var(--lumo-border-radius-l);border-left:4px solid var(--bd-warning-color);box-shadow:var(--bd-shadow-sm)}.alert-item{padding:var(--lumo-space-s);background:var(--lumo-base-color);border-left:3px solid var(--bd-info-color);border-radius:var(--lumo-border-radius-m);margin-bottom:var(--lumo-space-s)}.alert-item-error{border-left-color:var(--bd-error-color);background:var(--lumo-error-color-10pct)}.alert-item-warning{border-left-color:var(--bd-warning-color);background:#ff98001a}.alert-item-info{border-left-color:var(--bd-info-color);background:var(--lumo-primary-color-10pct)}vaadin-grid.hr-grid{--lumo-font-size-s: .875rem}vaadin-grid.hr-grid::part(cell){padding:var(--lumo-space-s)}vaadin-grid-cell-content.row-warning{background:#ff98001a}vaadin-grid-cell-content.row-error{background:#f443361a}vaadin-grid-cell-content.row-success{background:#4caf501a}vaadin-button.clock-button{font-size:var(--lumo-font-size-l);padding:var(--lumo-space-l);min-height:80px}vaadin-button.action-button{display:flex;flex-direction:column;align-items:center;gap:var(--lumo-space-s);padding:var(--lumo-space-m)}.form-container{background:var(--lumo-base-color);padding:var(--lumo-space-l);border-radius:var(--lumo-border-radius-l);box-shadow:var(--bd-shadow-sm)}.form-section-title{color:var(--lumo-header-text-color);font-weight:600;font-size:var(--lumo-font-size-l);margin-bottom:var(--lumo-space-m);padding-bottom:var(--lumo-space-s);border-bottom:2px solid var(--bd-primary-color)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{transform:translate(-20px);opacity:0}to{transform:translate(0);opacity:1}}.fade-in{animation:fadeIn .3s ease-out}.slide-in{animation:slideIn .3s ease-out}@media (max-width: 768px){.stat-card,.dashboard-card{min-width:100%!important}.info-card{padding:var(--lumo-space-m)}vaadin-button.clock-button{min-height:60px;font-size:var(--lumo-font-size-m)}}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--lumo-secondary-text-color)}.text-bold{font-weight:600}.text-primary{color:var(--bd-primary-color)}.text-success{color:var(--bd-success-color)}.text-warning{color:var(--bd-warning-color)}.text-error{color:var(--bd-error-color)}.mt-sm{margin-top:var(--bd-space-sm)}.mt-md{margin-top:var(--bd-space-md)}.mt-lg{margin-top:var(--bd-space-lg)}.mb-sm{margin-bottom:var(--bd-space-sm)}.mb-md{margin-bottom:var(--bd-space-md)}.mb-lg{margin-bottom:var(--bd-space-lg)}[theme~=dark]{--bd-primary-light: #1976D2}[theme~=dark] .info-card,[theme~=dark] .current-day-card,[theme~=dark] .irregularities-card{background:var(--lumo-contrast-10pct)}*:focus-visible{outline:2px solid var(--bd-primary-color);outline-offset:2px}.skip-link{position:absolute;top:-40px;left:0;background:var(--lumo-primary-color);color:#fff;padding:var(--lumo-space-s);text-decoration:none;z-index:100}.skip-link:focus{top:0}@media print{.dashboard-card,.stat-card{box-shadow:none!important;border:1px solid #ddd;page-break-inside:avoid}vaadin-button,.skip-link{display:none}}.calendar-slot{transition:all .15s ease;position:relative}.calendar-slot:hover{background-color:var(--lumo-primary-color-10pct)!important;box-shadow:inset 0 0 0 2px var(--lumo-primary-color-50pct)}.calendar-slot:hover:after{content:"+";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:20px;font-weight:700;color:var(--lumo-primary-color);opacity:.6}.appointment-card{transition:transform .2s ease,box-shadow .2s ease}.appointment-card:hover{transform:scale(1.02);box-shadow:0 4px 12px #0003!important;z-index:20!important}.appointment-scheduled{background-color:#3b82f6!important}.appointment-confirmed{background-color:#10b981!important}.appointment-checked-in{background-color:#f59e0b!important}.appointment-in-progress{background-color:#ef4444!important}.appointment-completed{background-color:#6b7280!important}.appointment-cancelled{background-color:#9ca3af!important}.cabinet-header{background:linear-gradient(135deg,var(--lumo-primary-color) 0%,var(--bd-secondary-color) 100%)}.date-navigation{display:flex;align-items:center;gap:var(--lumo-space-m)}.date-label{font-size:var(--lumo-font-size-xl);font-weight:600;color:var(--lumo-header-text-color);min-width:350px;text-align:center;text-transform:capitalize}.appointment-legend{display:flex;gap:var(--lumo-space-l);justify-content:center;padding:var(--lumo-space-s) var(--lumo-space-m)}.legend-item{display:flex;align-items:center;gap:var(--lumo-space-xs);font-size:var(--lumo-font-size-s);color:var(--lumo-secondary-text-color)}.legend-dot{width:10px;height:10px;border-radius:50%}.stats-item{text-align:center;padding:var(--lumo-space-s) var(--lumo-space-l)}.stats-value{font-size:var(--lumo-font-size-xl);font-weight:700}.stats-label{font-size:var(--lumo-font-size-s);color:var(--lumo-secondary-text-color)}.clinical-photo-slot{position:relative;aspect-ratio:4 / 3;width:100%;min-height:150px;box-sizing:border-box}.clinical-photo-slot vaadin-upload{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:var(--lumo-space-xs)}.clinical-photo-slot vaadin-upload::part(file-list){display:none}.clinical-photo-slot vaadin-upload::part(drop-label){flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--lumo-space-xs);text-align:center;margin:0;padding:var(--lumo-space-xs);min-height:0;overflow:hidden}.clinical-photo-slot vaadin-upload::part(primary-buttons){flex-shrink:0;margin:0 auto var(--lumo-space-xs)}.clinical-photo-slot__preview{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--lumo-contrast-5pct)}.clinical-photo-slot__preview img{width:100%;height:100%;object-fit:contain;object-position:center;display:block}.clinical-photo-slot__actions{position:absolute;top:var(--lumo-space-s);right:var(--lumo-space-s);z-index:1}.clinical-photo-slot__label{position:absolute;bottom:var(--lumo-space-s);left:var(--lumo-space-s);z-index:1;padding:var(--lumo-space-xs) var(--lumo-space-s);border-radius:var(--lumo-border-radius-s);background:var(--lumo-base-color);font-size:var(--lumo-font-size-xs);font-weight:600;box-shadow:var(--lumo-box-shadow-xs);opacity:.95}
