:root{--primary:#3b82f6;--primary-light:#60a5fa;--primary-bg:#3b82f626;--success:#22c55e;--success-bg:#22c55e26;--warning:#f59e0b;--warning-bg:#f59e0b26;--danger:#ef4444;--danger-bg:#ef444426;--info:#06b6d4;--info-bg:#06b6d426;--radius:14px;--radius-sm:10px;--glass:#0f172abf;--glass-border:#ffffff26;--glass-hover:#0f172ad1;--text:#ffffffeb;--text-secondary:#ffffff8c;--text-muted:#ffffff59;--shadow:0 4px 24px #0003;--shadow-md:0 8px 32px #00000040;--shadow-lg:0 16px 48px #0000004d}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none;background:#0f172a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif}.app{flex-direction:column;max-width:100vw;min-height:100dvh;display:flex;overflow-x:hidden}.app-content{flex:1;overflow-y:auto}.demo-banner{color:var(--warning);text-align:center;background:#f59e0b33;border-bottom:1px solid #f59e0b33;padding:6px 12px;font-size:.8rem;font-weight:500}.dashboard{z-index:1;max-width:1200px;margin:0 auto;padding:1.25rem 1rem 2rem;position:relative}.dashboard-bg{z-index:0;background:#0f172a url(/bg-curtains.png) 50%/cover no-repeat;position:fixed;inset:0}.dashboard-bg:after{content:"";background:linear-gradient(135deg,#0f172ae0 0%,#1e40afb3 100%);position:absolute;inset:0}.dash-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.dash-header h1{color:#fff;letter-spacing:-.02em;font-size:1.5rem;font-weight:700}.dash-subtitle{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-top:2px;font-size:.8rem}.dash-actions{align-items:center;gap:.5rem;display:flex}.demo-badge{background:var(--warning-bg);color:var(--warning);border:1px solid #f59e0b40;border-radius:20px;padding:4px 12px;font-size:.75rem;font-weight:600}.dash-tabs{background:var(--glass);border-radius:var(--radius-sm);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);gap:4px;margin-bottom:1.25rem;padding:4px;display:flex}.tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:.85rem;font-weight:500;transition:all .2s;display:flex}.tab:hover{color:var(--text);background:#ffffff0d}.tab.active{color:#fff;background:#ffffff1f;box-shadow:0 2px 8px #0003}.stats-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.25rem;display:grid}@media (width>=768px){.stats-grid{grid-template-columns:repeat(4,1fr)}}.stat-card{background:var(--glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius);align-items:center;gap:.75rem;padding:1rem;transition:background .2s,transform .15s,box-shadow .15s;display:flex;position:relative}.stat-card:hover{background:var(--glass-hover)}.stat-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;display:flex}.stat-primary .stat-icon{background:var(--primary-bg);color:var(--primary)}.stat-success .stat-icon{background:var(--success-bg);color:var(--success)}.stat-warning .stat-icon{background:var(--warning-bg);color:var(--warning)}.stat-info .stat-icon{background:var(--info-bg);color:var(--info)}.stat-value{color:#fff;font-size:1.5rem;font-weight:700;line-height:1}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-top:3px;font-size:.72rem}.panel{background:var(--glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1.25rem;overflow:hidden}.panel-header{border-bottom:1px solid var(--glass-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem;display:flex}.panel-header h3{color:#fff;align-items:center;gap:8px;font-size:1rem;font-weight:600;display:flex}.panel-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.search-box{border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-secondary);background:#ffffff0f;align-items:center;gap:6px;padding:6px 10px;display:flex}.search-box input{width:160px;color:var(--text);background:0 0;border:none;outline:none;font-size:.85rem}.search-box input::placeholder{color:var(--text-muted)}.dept-filter{border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text);background:#ffffff0f;outline:none;padding:6px 10px;font-size:.85rem}.dept-filter option{color:#fff;background:#1e293b}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.85rem}.data-table th{text-align:left;color:var(--text-secondary);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--glass-border);background:#ffffff0a;padding:10px 12px;font-weight:600}.data-table th:hover{background:#ffffff14}.data-table td{white-space:nowrap;color:var(--text);border-bottom:1px solid #ffffff0d;padding:10px 12px}.clickable-row{cursor:pointer}.clickable-row:hover{background:#3b82f61a}.name-cell{color:#fff;font-weight:500}.capitalize{text-transform:capitalize}.dept-badge{background:var(--primary-bg);color:var(--primary-light);border:1px solid #3b82f633;border-radius:6px;padding:3px 10px;font-size:.75rem;font-weight:500}.status-pill{border-radius:12px;align-items:center;padding:3px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.pill-green{background:var(--success-bg);color:var(--success);border:1px solid #22c55e40}.pill-grey{color:var(--text-muted);border:1px solid var(--glass-border);background:#ffffff0f}.empty-row{text-align:center;color:var(--text-muted);padding:2rem!important}.empty-text{text-align:center;color:var(--text-muted);padding:2rem}.on-site-grid{flex-wrap:wrap;gap:.75rem;padding:1rem;display:flex}.on-site-card{border-radius:var(--radius-sm);background:var(--success-bg);cursor:pointer;border:1px solid #22c55e33;flex-direction:column;align-items:center;gap:6px;min-width:90px;padding:1rem;transition:all .15s;display:flex}.on-site-card:hover{background:#22c55e33;transform:scale(1.05)}.on-site-avatar{color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;font-size:.85rem;font-weight:700;display:flex;box-shadow:0 2px 12px #22c55e4d}.on-site-name{color:#fff;text-align:center;font-size:.8rem;font-weight:600}.on-site-dept{color:var(--text-secondary);font-size:.7rem}.activity-list{padding:.5rem 0}.activity-item{border-bottom:1px solid #ffffff0d;align-items:center;gap:.75rem;padding:.75rem 1rem;transition:background .15s;display:flex}.activity-item:hover{background:#ffffff08}.activity-item:last-child{border-bottom:none}.activity-icon{width:34px;height:34px;color:var(--text-secondary);background:#ffffff14;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.activity-content{color:var(--text);flex:1;font-size:.85rem}.activity-content strong{color:#fff}.activity-time{color:var(--text-muted);white-space:nowrap;font-size:.75rem}.activity-site{flex-shrink:0}.staff-detail-info{padding:1rem}.detail-grid{color:var(--text);grid-template-columns:1fr 1fr;gap:.75rem;font-size:.9rem;display:grid}.detail-grid strong{color:var(--text-secondary);margin-bottom:2px;font-size:.8rem;font-weight:500;display:block}.icon-green{color:var(--success)}.icon-orange{color:var(--warning)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{border:1px solid var(--glass-border);border-radius:var(--radius);width:100%;max-width:480px;max-height:90vh;box-shadow:var(--shadow-lg);background:#1e293b;overflow-y:auto}.modal-header{border-bottom:1px solid var(--glass-border);justify-content:space-between;align-items:center;padding:1rem;display:flex}.modal-header h3{color:#fff;align-items:center;gap:8px;font-size:1rem;display:flex}.modal-form{flex-direction:column;gap:1rem;padding:1rem;display:flex}.modal-form label{color:var(--text-secondary);flex-direction:column;gap:4px;font-size:.85rem;font-weight:500;display:flex}.modal-form input,.modal-form select{border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text);background:#ffffff0f;outline:none;padding:10px 12px;font-size:.9rem;transition:border-color .2s}.modal-form input::placeholder{color:var(--text-muted)}.modal-form input:focus,.modal-form select:focus{border-color:var(--primary)}.modal-form select option{color:#fff;background:#1e293b}.form-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.modal-actions{justify-content:flex-end;gap:.5rem;padding-top:.5rem;display:flex}.btn-primary{color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:linear-gradient(135deg,#3b82f6,#1e40af);border:none;align-items:center;gap:6px;padding:8px 16px;font-size:.85rem;font-weight:500;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #3b82f64d}.btn-primary:hover{box-shadow:0 4px 16px #3b82f666}.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-secondary{color:var(--text);border:1px solid var(--glass-border);border-radius:var(--radius-sm);cursor:pointer;background:#ffffff14;align-items:center;gap:6px;padding:8px 16px;font-size:.85rem;font-weight:500;display:inline-flex}.btn-secondary:hover{background:#ffffff1f}.btn-icon{border:1px solid var(--glass-border);border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;background:#ffffff0f;justify-content:center;align-items:center;transition:all .2s;display:flex}.btn-icon:hover{color:#fff;background:#ffffff1f}.icon-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;transition:color .2s}.icon-btn:hover{color:#fff}.back-btn{color:var(--primary-light);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:4px 0;font-size:.9rem;transition:color .2s;display:inline-flex}.back-btn:hover{color:#fff}.message{border-radius:var(--radius-sm);align-items:flex-start;gap:8px;margin-bottom:1rem;padding:12px 16px;font-size:.9rem;line-height:1.4;display:flex}.message-error{background:var(--danger-bg);color:#fca5a5;border:1px solid #ef444440}.message-success{background:var(--success-bg);color:#86efac;border:1px solid #22c55e40}.message-warning{background:var(--warning-bg);color:#fcd34d;border:1px solid #f59e0b40}.loading-spinner{color:var(--text-secondary);justify-content:center;align-items:center;gap:8px;padding:1rem;display:flex}.loading-full{height:60vh;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.hours-breakdown .panel-header .period-toggle{background:#ffffff0f;border-radius:8px;gap:2px;padding:2px;display:flex}.hours-breakdown .panel-header .period-toggle button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:5px 12px;font-size:.78rem;font-weight:500;transition:all .2s}.hours-breakdown .panel-header .period-toggle button.active{color:#fff;background:#ffffff1f}[data-theme=light]{--glass:#ffffffd9;--glass-border:#0000001a;--glass-hover:#ffffffeb;--text:#0f172aeb;--text-secondary:#0f172a8c;--text-muted:#0f172a59}[data-theme=light] body,[data-theme=light] .dashboard-bg{background:#f1f5f9}[data-theme=light] .dashboard-bg:after{background:linear-gradient(135deg,#f1f5f9f2 0%,#dbeafee6 100%)}[data-theme=light] .dash-header h1,[data-theme=light] .stat-value,[data-theme=light] .panel-header h3{color:#0f172a}[data-theme=light] .modal{background:#fff;border-color:#0000001a}[data-theme=light] .data-table td{color:#334155;border-bottom-color:#0000000f}[data-theme=light] .data-table th{color:#475569;background:#00000008;border-bottom-color:#00000014}[data-theme=light] .name-cell,[data-theme=light] .on-site-name{color:#0f172a}[data-theme=light] .dept-filter option,[data-theme=light] .modal-form select option{color:#334155;background:#fff}[data-theme=light] .btn-icon,[data-theme=light] .search-box{background:#0000000a;border-color:#0000001a}[data-theme=light] .search-box input{color:#334155}[data-theme=light] .tab{color:#64748b}[data-theme=light] .tab.active{color:#0f172a;background:#0000000f}[data-theme=light] .modal-form input,[data-theme=light] .modal-form select{color:#334155;background:#00000008;border-color:#0000001f}[data-theme=light] .activity-item:hover{background:#00000005}@media (width<=640px){.dashboard{padding:.75rem .5rem 2rem}.stats-grid{gap:.5rem}.stat-card{padding:.75rem}.stat-value{font-size:1.1rem}.stat-icon{width:38px;height:38px}.stat-icon svg{width:20px;height:20px}.stat-label{font-size:.65rem}.data-table{font-size:.78rem}.data-table th,.data-table td{padding:8px 6px}.panel-header{padding:.75rem}.dash-header h1{font-size:1.2rem}.dash-subtitle{font-size:.7rem}.detail-grid{grid-template-columns:1fr}.search-box input{width:100px}.dash-tabs{-webkit-overflow-scrolling:touch;overflow-x:auto}.tab{white-space:nowrap;padding:8px 10px;font-size:.78rem}.dash-actions{gap:.35rem}.btn-primary{padding:6px 10px;font-size:.78rem}.on-site-card{min-width:75px;padding:.75rem}.on-site-avatar{width:38px;height:38px;font-size:.75rem}.on-site-name{font-size:.72rem}.panel-header h3{font-size:.9rem}.modal{max-width:calc(100vw - 2rem)}}
