:root{--bg-main: #0f172a;--bg-card: #1e293b;--bg-card-hover: #334155;--bg-modal: #1e293b;--border-color: #334155;--border-glow: rgba(59, 130, 246, .4);--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--accent-blue: #3b82f6;--accent-cyan: #06b6d4;--accent-emerald: #10b981;--accent-amber: #f59e0b;--accent-rose: #f43f5e;--accent-purple: #8b5cf6;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .2);--shadow-md: 0 4px 20px rgba(0, 0, 0, .35);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .5);--font-heading: "Outfit", -apple-system, BlinkMacSystemFont, sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-main);color:var(--text-primary);line-height:1.5;min-height:100vh;background-image:radial-gradient(at 0% 0%,rgba(59,130,246,.12) 0px,transparent 50%),radial-gradient(at 100% 100%,rgba(139,92,246,.12) 0px,transparent 50%);background-attachment:fixed}.app-container{max-width:1440px;margin:0 auto;padding:1.5rem 1rem 3rem;display:flex;flex-direction:column;gap:1.5rem}.header-card{background:#1e293bbf;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;box-shadow:var(--shadow-md)}.brand-title{display:flex;align-items:center;gap:.75rem}.brand-icon{width:44px;height:44px;background:linear-gradient(135deg,var(--accent-blue),var(--accent-purple));border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem;box-shadow:0 4px 12px #3b82f64d}.brand-text h1{font-family:var(--font-heading);font-size:1.4rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary)}.brand-text p{font-size:.8rem;color:var(--text-secondary)}.month-navigator{display:flex;align-items:center;gap:.5rem;background:#0f172a99;padding:.35rem .5rem;border-radius:var(--radius-md);border:1px solid var(--border-color)}.nav-btn{background:transparent;border:none;color:var(--text-primary);width:36px;height:36px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.nav-btn:hover{background:var(--bg-card-hover);color:var(--accent-blue)}.current-month-display{font-family:var(--font-heading);font-size:1.15rem;font-weight:700;padding:0 .75rem;min-width:160px;text-align:center;color:var(--text-primary)}.today-btn{background:#3b82f626;color:var(--accent-blue);border:1px solid rgba(59,130,246,.3);padding:.4rem .8rem;font-size:.85rem;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.today-btn:hover{background:var(--accent-blue);color:#fff}.header-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.user-badge-button{display:flex;align-items:center;gap:.6rem;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);padding:.4rem .8rem;border-radius:9999px;cursor:pointer;transition:all .2s ease}.user-badge-button:hover{background:#3b82f633;border-color:var(--accent-blue);transform:translateY(-1px)}.user-avatar-chip{width:28px;height:28px;border-radius:50%;color:#fff;font-weight:700;font-size:.75rem;display:flex;align-items:center;justify-content:center}.user-info-text{text-align:left;display:flex;flex-direction:column}.user-info-text .user-name{font-size:.85rem;font-weight:600;color:var(--text-primary)}.user-info-text .user-label{font-size:.7rem;color:var(--text-secondary)}.icon-button{background:#ffffff0d;border:1px solid var(--border-color);color:var(--text-primary);padding:.5rem .8rem;border-radius:var(--radius-md);font-size:.85rem;font-weight:500;display:flex;align-items:center;gap:.4rem;cursor:pointer;transition:all .2s ease}.icon-button:hover{background:var(--bg-card-hover);border-color:var(--text-secondary)}.filter-bar{background:#1e293b99;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.75rem 1rem;display:flex;align-items:center;gap:.75rem;overflow-x:auto;white-space:nowrap}.filter-title{font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.filter-chips{display:flex;gap:.4rem}.filter-chip{background:#0f172a80;border:1px solid var(--border-color);color:var(--text-secondary);padding:.25rem .6rem;border-radius:9999px;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.3rem}.filter-chip:hover,.filter-chip.active{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.filter-chip .dot{width:8px;height:8px;border-radius:50%}.calendar-wrapper{background:#1e293bb3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);width:100%}.calendar-scroll-area{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.calendar-grid-min-width{min-width:860px;width:100%}.calendar-header-days{display:grid;grid-template-columns:repeat(7,1fr);background:#0f172acc;border-bottom:1px solid var(--border-color)}.weekday-cell{padding:.85rem .5rem;text-align:center;font-family:var(--font-heading);font-weight:700;font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.weekday-cell.weekend{color:var(--accent-amber)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border-color)}.day-cell{background:#1e293bd9;min-height:130px;padding:.45rem;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;transition:all .2s ease;position:relative}.day-cell:hover{background:#334155f2;z-index:2}.day-cell.other-month{background:#0f172a66;opacity:.45}.day-cell.is-today{box-shadow:inset 0 0 0 2px var(--accent-blue);background:#3b82f614}.day-cell.filter-matched{background:#10b98126!important;box-shadow:inset 0 0 0 2px var(--accent-emerald)}.day-top-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}.day-number{font-family:var(--font-heading);font-size:1.1rem;font-weight:700;color:var(--text-primary);width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%}.is-today .day-number{background:var(--accent-blue);color:#fff}.shift-status-badge{font-size:.65rem;font-weight:600;padding:.15rem .4rem;border-radius:var(--radius-sm);text-transform:uppercase}.status-complete{background:#10b98133;color:var(--accent-emerald)}.status-partial{background:#f59e0b33;color:var(--accent-amber)}.status-empty{background:#f43f5e26;color:var(--accent-rose)}.workers-list{display:flex;flex-direction:column;gap:.35rem;margin-top:auto}.worker-card{display:flex;align-items:center;gap:.4rem;background:#0f172ab3;border:1px solid rgba(255,255,255,.05);padding:.3rem .45rem;border-radius:var(--radius-sm);transition:transform .15s ease}.worker-card:hover{transform:translate(2px)}.worker-acronym-tag{font-size:.65rem;font-weight:700;padding:.1rem .35rem;border-radius:4px;color:#fff;flex-shrink:0}.worker-full-name{font-size:.78rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty-worker-slot{font-size:.72rem;color:var(--text-muted);font-style:italic;padding:.25rem .4rem;border:1px dashed var(--border-color);border-radius:var(--radius-sm);text-align:center}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172acc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg-modal);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:100%;max-width:580px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.modal-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.modal-header h2{font-family:var(--font-heading);font-size:1.25rem;font-weight:700}.modal-close-btn{background:transparent;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center}.modal-close-btn:hover{background:var(--bg-card-hover);color:var(--text-primary)}.modal-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:.75rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-label{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.form-select,.form-input{background:#0f172acc;border:1px solid var(--border-color);color:var(--text-primary);padding:.7rem 1rem;border-radius:var(--radius-md);font-size:.95rem;outline:none;transition:border-color .2s ease;width:100%}.form-select:focus,.form-input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px #3b82f633}.btn{padding:.65rem 1.25rem;border-radius:var(--radius-md);font-size:.9rem;font-weight:600;cursor:pointer;border:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s ease}.btn-primary{background:linear-gradient(135deg,var(--accent-blue),#2563eb);color:#fff;box-shadow:0 4px 12px #3b82f64d}.btn-primary:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn-secondary{background:#ffffff14;color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-card-hover)}.btn-danger{background:#f43f5e26;color:var(--accent-rose);border:1px solid rgba(244,63,94,.3)}.btn-danger:hover{background:var(--accent-rose);color:#fff}.user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem}.user-card-select{background:#0f172a99;border:1px solid var(--border-color);padding:.75rem;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;gap:.6rem;transition:all .2s ease}.user-card-select:hover,.user-card-select.selected{border-color:var(--accent-blue);background:#3b82f626;transform:translateY(-2px)}.audit-list{display:flex;flex-direction:column;gap:.6rem}.audit-item{background:#0f172a99;border:1px solid var(--border-color);padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.85rem;display:flex;flex-direction:column;gap:.3rem}.audit-header{display:flex;justify-content:space-between;color:var(--text-secondary);font-size:.75rem}.audit-user{color:var(--accent-blue);font-weight:700}.audit-action{color:var(--text-primary);font-weight:500}@media print{body{background:#fff!important;color:#000!important}.header-actions,.filter-bar,.nav-btn,.today-btn,.btn{display:none!important}.calendar-wrapper{box-shadow:none!important;border:1px solid #000!important}.calendar-grid{background:#ccc!important}.day-cell{background:#fff!important;color:#000!important;min-height:100px!important}.worker-card{background:#f1f5f9!important;border:1px solid #cbd5e1!important;color:#000!important}.worker-full-name{color:#000!important}}@media(max-width:768px){.app-container{padding:.5rem .35rem;gap:1rem}.header-card{padding:.85rem;flex-direction:column;align-items:stretch;gap:.85rem}.brand-text h1{font-size:1.2rem}.brand-text p{font-size:.72rem}.month-navigator{justify-content:space-between;width:100%}.current-month-display{min-width:130px;font-size:1rem}.header-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.5rem}.user-badge-button{grid-column:span 2;justify-content:center}.icon-button{padding:.6rem;font-size:.8rem;justify-content:center;min-height:42px}.calendar-grid{gap:1px}.day-cell{min-height:85px;padding:.25rem}.worker-full-name{font-size:.68rem}.worker-acronym-tag{font-size:.6rem;padding:.05rem .25rem}.weekday-cell{padding:.4rem .1rem;font-size:.7rem}.desktop-only-text{display:none}.form-select,.form-input{font-size:16px!important;min-height:46px}.modal-content{max-height:95vh;border-radius:var(--radius-md)}.modal-header,.modal-body{padding:1rem}}@media(max-width:480px){.day-cell{min-height:75px;padding:.2rem}.day-number{font-size:.95rem;width:22px;height:22px}.empty-worker-slot{font-size:.65rem;padding:.15rem}}
