*{margin:0;padding:0;box-sizing:border-box}:root{--bg: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #334155 100%);--card: rgba(15, 23, 42, .8);--soft: rgba(100, 116, 139, .3);--muted: #94a3b8;--heading: #f1f5f9;--text: #e2e8f0;--accent: #00d4ff;--accent2: #0ea5e9;--accent3: rgba(0, 212, 255, .1);--button-bg: linear-gradient(135deg, #0ea5e9, #00d4ff);--button-hover: linear-gradient(135deg, #0284c7, #0ea5e9);--pill-bg: rgba(0, 212, 255, .2);--shadow: 0 8px 32px rgba(0, 0, 0, .3);--glow: 0 0 20px rgba(0, 212, 255, .5);--footer-bg: rgba(15, 23, 42, .9);--avatar-bg: rgba(15, 23, 42, .6)}body{font-family:Inter,Roboto,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6;color:var(--text);background:var(--bg)}.page{min-height:100vh;display:flex;flex-direction:column;position:relative;background:transparent}.topbar{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#0f172ad9;-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);border-bottom:1px solid rgba(0,212,255,.4);box-shadow:0 8px 32px #0006}.topbar .logo{display:flex;align-items:center;gap:10px}.topbar h1{margin:0;font-size:1.8rem;font-weight:800;color:var(--heading);letter-spacing:.5px;text-shadow:0 0 10px rgba(0,212,255,.5)}.topbar .actions{display:flex;align-items:center;gap:10px}.topbar .actions button{padding:10px 20px;border-radius:25px;border:1px solid rgba(0,212,255,.5);background:var(--button-bg);color:#fff;font-weight:600;cursor:pointer;box-shadow:var(--glow);transition:all .3s ease;font-size:.9rem;outline:none}.topbar .actions button:hover{background:var(--button-hover);transform:translateY(-2px) scale(1.05);box-shadow:0 0 30px #00d4ffcc}.topbar .actions button:active{transform:scale(.97);box-shadow:0 1px 4px #4caf502e}.monthselector{display:flex;gap:12px;align-items:center;justify-content:center;padding:16px;margin-bottom:8px;background:#0f172acc;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:20px;border:1px solid rgba(0,212,255,.4);box-shadow:0 8px 32px #0000004d}.monthselector button{padding:8px 16px;border-radius:20px;border:1px solid rgba(0,212,255,.4);background:#00d4ff1a;color:var(--accent);font-size:1.1rem;font-weight:700;cursor:pointer;box-shadow:0 0 10px #00d4ff4d;transition:all .3s ease}.monthselector button:hover{background:var(--accent);color:#0f172a;transform:scale(1.08);box-shadow:0 0 20px #00d4ff99}.monthselector>div{font-size:1.4rem;font-weight:800;color:var(--heading);text-shadow:0 0 10px rgba(0,212,255,.5)}.container{display:flex;flex-direction:column;padding:8px;max-width:100vw;margin:0}.main{width:100%}.calendar{background:#0f172ae6;-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);border-radius:20px;overflow-x:auto;box-shadow:0 12px 48px #0006;padding:16px;border:1px solid rgba(0,212,255,.4)}.calendar-grid{display:grid;grid-template-columns:140px repeat(31,1fr);gap:1px;min-width:fit-content}.header-empty{background:#0f172ae6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(0,212,255,.5);padding:12px 8px;font-weight:800;color:var(--heading);font-size:12px;border-radius:15px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 20px #00d4ff66;text-shadow:0 0 10px rgba(0,212,255,.6)}.date-header{background:#0f172acc;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:1px solid rgba(0,212,255,.5);padding:8px 4px;text-align:center;font-weight:700;color:var(--heading);font-size:11px;min-width:32px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 15px #00d4ff4d;transition:all .3s ease;position:relative}.date-header:hover{transform:translateY(-2px);box-shadow:0 0 20px #00d4ff66}.weekend-header{background:linear-gradient(135deg,#ef44444d,#dc26264d)!important;border-color:#ef4444!important;color:#fecaca!important;box-shadow:0 0 15px #ef444466!important}.weekend-cell{background:#ef444426!important;border-color:#ef444480!important}.weekend-cell:hover{transform:none!important;box-shadow:0 0 10px #ef44444d!important}.leave-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;padding:12px 16px;background:#0f172acc;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:16px;border:1px solid rgba(0,212,255,.3);margin-bottom:12px}.legend-item{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#0f172a99;border-radius:12px;border:1px solid rgba(100,116,139,.3)}.legend-color{width:16px;height:16px;border-radius:4px;box-shadow:0 0 8px #0000004d}.legend-text{font-size:12px;font-weight:600;color:var(--heading)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#0f172af2;-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);border-radius:20px;padding:24px;border:1px solid rgba(0,212,255,.4);box-shadow:0 20px 60px #00000080;min-width:300px}.modal-content h3{margin:0 0 16px;color:var(--heading);font-size:18px;font-weight:700;text-align:center;text-shadow:0 0 10px rgba(0,212,255,.5)}.leave-options{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.leave-option{display:flex;flex-direction:column;align-items:center;padding:12px;border:1px solid rgba(255,255,255,.2);border-radius:12px;cursor:pointer;transition:all .3s ease;font-weight:600;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.8),0 0 8px rgba(0,0,0,.5)}.leave-option:hover{transform:scale(1.02);box-shadow:0 0 20px #0000004d}.leave-code{font-size:14px;font-weight:700}.leave-name{font-size:11px;opacity:.9}.modal-close{width:100%;padding:10px;background:#64748b4d;border:1px solid rgba(100,116,139,.5);border-radius:12px;color:var(--heading);font-weight:600;cursor:pointer;transition:all .3s ease}.modal-close:hover{background:#64748b80;transform:scale(1.02)}.on-duty-row-label{background:linear-gradient(135deg,#00d4ff,#0ea5e9);padding:12px;font-weight:800;color:#0f172a;font-size:12px;border-radius:15px;display:flex;align-items:center;justify-content:center;text-shadow:0 0 10px rgba(255,255,255,.5);min-height:40px;border:1px solid rgba(0,212,255,.6);box-shadow:0 0 20px #00d4ff66}.on-duty-cell{padding:8px 4px;text-align:center;font-weight:700;font-size:11px;border-radius:12px;display:flex;align-items:center;justify-content:center;min-height:32px;border:1px solid;transition:all .3s ease;position:relative}.on-duty-cell:hover{transform:scale(1.05)}.on-duty-cell.good{background:linear-gradient(135deg,#22c55e33,#16a34a33);border-color:#22c55e;color:#22c55e;box-shadow:0 0 15px #22c55e4d}.on-duty-cell.warning{background:linear-gradient(135deg,#f59e0b33,#d9770633);border-color:#f59e0b;color:#f59e0b;box-shadow:0 0 15px #f59e0b4d}.on-duty-cell.low-staffing{background:linear-gradient(135deg,#a855f733,#9333ea33);border-color:#a855f7;color:#a855f7;box-shadow:0 0 15px #a855f74d}.on-duty-cell.critical{background:linear-gradient(135deg,#ef444433,#dc262633);border-color:#ef4444;color:#ef4444;box-shadow:0 0 15px #ef44444d}.column-good{background:#22c55e1a}.column-warning{background:#f59e0b1a}.column-low-staffing{background:#a855f71a}.column-critical{background:#ef44441a}.low-staffing-header{background:linear-gradient(135deg,#a855f74d,#9333ea4d)!important;border-color:#a855f7!important;color:#c4b5fd!important;box-shadow:0 0 20px #a855f766!important;animation:pulse-purple 2s infinite}.low-staffing-cell{background:#a855f726!important;border-color:#a855f780!important;box-shadow:0 0 10px #a855f74d!important}.staffing-warning{position:absolute;top:2px;right:2px;font-size:10px;animation:blink 1.5s infinite}@keyframes pulse-purple{0%,to{box-shadow:0 0 20px #a855f766}50%{box-shadow:0 0 30px #a855f799}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:.3}}.member-name{background:#0f172ad9;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);padding:12px;font-weight:700;color:var(--heading);font-size:12px;border:1px solid rgba(0,212,255,.4);border-radius:15px;display:flex;flex-direction:column;align-items:flex-start;box-shadow:0 0 15px #00d4ff4d;min-height:40px;gap:6px;transition:all .3s ease;white-space:normal;overflow:visible}.member-name:hover{transform:translate(4px);box-shadow:0 0 20px #00d4ff66}.row-highlighted{border:3px solid #000000!important;outline:2px solid #ffffff!important;outline-offset:-1px!important;transform:scale(1.01);z-index:10;position:relative}.day-cell{background:#0f172ab3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;border-radius:10px;border:1px solid rgba(100,116,139,.4);position:relative}.day-cell:hover{transform:scale(1.05);box-shadow:0 0 15px #00d4ff66;border-color:#00d4ff99}.day-cell:empty:before{content:"✔️";font-size:14px;opacity:.6}.day-cell.has-leave{background:transparent;padding:2px}.leave-pill{display:block;padding:6px 8px;border-radius:15px;color:#fff;font-weight:700;font-size:10px;box-shadow:0 0 10px #0000004d;cursor:pointer;transition:all .3s ease;text-align:center;width:100%;border:1px solid rgba(255,255,255,.3);text-shadow:0 1px 3px rgba(0,0,0,.8),0 0 8px rgba(0,0,0,.5)}.leave-pill:hover{transform:scale(1.1);box-shadow:0 0 20px #00d4ff99;background:linear-gradient(135deg,var(--accent),rgba(0,212,255,.8));color:#0f172a}.onduty-badges{display:grid;grid-template-columns:140px repeat(31,1fr);gap:1px;margin-bottom:4px;padding:4px}.duty-label{font-size:11px;font-weight:700;color:var(--heading);display:flex;align-items:center;justify-content:center;padding:4px;background:linear-gradient(90deg,var(--accent3),#ffffff);border-radius:4px;box-shadow:0 1px 2px #43c6ac1a}.duty-badge{height:6px;border-radius:3px;background:linear-gradient(90deg,var(--accent2),var(--accent));opacity:.8;box-shadow:0 1px 2px #43c6ac33}.duty-badge.low{background:linear-gradient(90deg,#ef4444,#dc2626);opacity:.9}.footer{text-align:center;padding:16px 0;color:var(--muted);font-size:.9rem;background:#0f172acc;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid rgba(0,212,255,.4);margin-top:16px}@media (max-width: 900px){.container,.calendar{padding:4px}.calendar-grid{grid-template-columns:140px repeat(31,1fr)}.date-header{font-size:11px;padding:8px 2px}.member-name{font-size:12px;padding:8px 10px}.day-cell{min-height:40px}.onduty-badges{grid-template-columns:140px repeat(31,1fr)}.duty-label{font-size:12px;padding:6px}.topbar{padding:8px 12px;flex-direction:column;gap:8px}.topbar .actions{flex-wrap:wrap;justify-content:center}.leave-pill{font-size:9px;padding:2px 4px}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.team-modal{background:#0f172af2;border:1px solid rgba(0,212,255,.3);border-radius:16px;width:90%;max-width:500px;max-height:80vh;overflow:hidden;box-shadow:0 25px 50px -12px #000c;animation:slideUp .3s ease-out}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid rgba(0,212,255,.2);background:linear-gradient(135deg,#00d4ff1a,#8b5cf61a)}.modal-title{display:flex;align-items:center;gap:12px;color:#00d4ff}.modal-title h2{margin:0;font-size:20px;font-weight:600}.close-btn{background:none;border:none;color:#64748b;cursor:pointer;padding:8px;border-radius:8px;transition:all .2s}.close-btn:hover{background:#00d4ff1a;color:#00d4ff}.modal-content{padding:24px;max-height:60vh;overflow-y:auto}.add-member-section{margin-bottom:32px}.add-member-section h3{color:#e2e8f0;margin:0 0 16px;font-size:16px;font-weight:500}.add-member-form{display:flex;gap:12px;margin-bottom:8px}.member-input{flex:1;background:#1e293bcc;border:1px solid rgba(0,212,255,.3);border-radius:8px;padding:12px 16px;color:#e2e8f0;font-size:14px;transition:all .2s}.member-input:focus{outline:none;border-color:#00d4ff;box-shadow:0 0 0 3px #00d4ff1a}.member-input::placeholder{color:#64748b}.add-btn{background:linear-gradient(135deg,#00d4ff,#0ea5e9);border:none;border-radius:8px;padding:12px 20px;color:#fff;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s;min-width:100px;justify-content:center}.add-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 25px #00d4ff4d}.add-btn:disabled{opacity:.6;cursor:not-allowed}.error-message{color:#ef4444;font-size:14px;margin-top:8px;padding:8px 12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px}.members-section h3{color:#e2e8f0;margin:0 0 16px;font-size:16px;font-weight:500}.members-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}.member-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#1e293b99;border:1px solid rgba(51,65,85,.8);border-radius:8px;transition:all .2s}.member-item:hover{background:#1e293bcc;border-color:#00d4ff4d}.member-info{display:flex;align-items:center;gap:12px}.member-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#00d4ff,#8b5cf6);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px}.member-name{color:#e2e8f0;font-weight:500}.member-actions{display:flex;gap:4px}.edit-btn,.save-btn,.cancel-btn,.remove-btn{background:none;border:none;color:#64748b;cursor:pointer;padding:8px;border-radius:6px;transition:all .2s}.edit-btn:hover{background:#00d4ff1a;color:#00d4ff}.save-btn:hover{background:#22c55e1a;color:#22c55e}.cancel-btn:hover{background:#64748b1a;color:#94a3b8}.remove-btn:hover{background:#ef44441a;color:#ef4444}.edit-input{background:#1e293bcc;border:1px solid rgba(0,212,255,.5);border-radius:6px;padding:6px 10px;color:#e2e8f0;font-size:14px;font-weight:500;min-width:150px}.edit-input:focus{outline:none;border-color:#00d4ff;box-shadow:0 0 0 2px #00d4ff1a}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-container{background:#0f172af2;border:1px solid rgba(0,212,255,.3);border-radius:20px;padding:40px;text-align:center;box-shadow:0 25px 50px -12px #000c;max-width:400px;width:100%}.login-header{margin-bottom:32px}.login-header svg{color:#00d4ff;margin-bottom:16px}.login-header h1{color:#f1f5f9;margin:0 0 8px;font-size:28px}.login-header p{color:#94a3b8;margin:0}.login-form{display:flex;flex-direction:column;gap:16px}.member-select{background:#1e293bcc;border:1px solid rgba(0,212,255,.3);border-radius:12px;padding:16px;color:#e2e8f0;font-size:16px;transition:all .2s}.member-select:focus{outline:none;border-color:#00d4ff;box-shadow:0 0 0 3px #00d4ff1a}.login-btn{background:linear-gradient(135deg,#00d4ff,#0ea5e9);border:none;border-radius:12px;padding:16px 24px;color:#fff;font-weight:600;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.login-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #00d4ff4d}.login-btn:disabled{opacity:.5;cursor:not-allowed}.topbar-left{display:flex;align-items:center;gap:24px}.user-info{display:flex;align-items:center;gap:12px;font-size:14px;color:#94a3b8}.admin-badge{background:linear-gradient(135deg,#00d4ff,#0ea5e9);color:#fff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.admin-login-btn{opacity:0;transition:opacity .3s ease;background:#00d4ff1a!important;border:1px solid rgba(0,212,255,.3)!important;color:#64748b!important}.actions:hover .admin-login-btn{opacity:1}.admin-login-btn:hover{opacity:1!important;background:#00d4ff33!important;color:#00d4ff!important}.pin-modal{background:#0f172afa;border:1px solid rgba(0,212,255,.3);border-radius:24px;padding:40px;text-align:center;box-shadow:0 25px 50px -12px #000c;max-width:400px;width:90%;position:relative;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.pin-header{margin-bottom:32px;position:relative}.pin-header svg{color:#00d4ff;margin-bottom:16px}.pin-header h2{color:#f1f5f9;margin:0 0 8px;font-size:24px;font-weight:600}.pin-header p{color:#94a3b8;margin:0;font-size:14px}.pin-header .close-btn{position:absolute;top:-8px;right:-8px;background:none;border:none;color:#64748b;cursor:pointer;padding:8px;border-radius:50%;transition:all .2s}.pin-header .close-btn:hover{background:#00d4ff1a;color:#00d4ff}.pin-inputs{display:flex;gap:16px;justify-content:center;margin-bottom:24px}.pin-input{width:60px;height:60px;background:#1e293bcc;border:2px solid rgba(0,212,255,.3);border-radius:12px;color:#f1f5f9;font-size:24px;font-weight:600;text-align:center;transition:all .2s;outline:none}.pin-input:focus{border-color:#00d4ff;box-shadow:0 0 0 3px #00d4ff1a;transform:scale(1.05)}.pin-input.error{border-color:#ef4444;background:#ef44441a;animation:shake .5s ease-in-out}.pin-error{color:#ef4444;font-size:14px;font-weight:500;margin-bottom:16px;padding:8px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;display:inline-block}.pin-hint{color:#64748b;font-size:12px;font-style:italic}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@media (max-width: 480px){.pin-inputs{gap:12px}.pin-input{width:50px;height:50px;font-size:20px}}.request-modal{background:#0f172af2;border:1px solid rgba(0,212,255,.3);border-radius:16px;width:90%;max-width:500px;max-height:80vh;overflow:hidden;box-shadow:0 25px 50px -12px #000c;animation:slideUp .3s ease-out}.request-info{background:#00d4ff1a;padding:16px;margin-bottom:24px;border-radius:8px;border:1px solid rgba(0,212,255,.3);text-align:center}.request-info p{margin:0;color:#e2e8f0;font-size:14px}.request-info strong{color:#00d4ff;font-weight:600}.form-section{margin-bottom:24px}.form-section label{display:flex;align-items:center;gap:8px;color:#e2e8f0;font-weight:500;margin-bottom:12px;font-size:14px}.form-select{width:100%;background:#1e293bcc;border:1px solid rgba(0,212,255,.3);border-radius:8px;padding:12px 16px;color:#e2e8f0;font-size:14px;transition:all .2s}.form-select:focus{outline:none;border-color:#00d4ff;box-shadow:0 0 0 3px #00d4ff1a}.leave-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.leave-option{background:transparent;border:2px solid;border-radius:8px;padding:12px 8px;cursor:pointer;transition:all .2s;text-align:center}.leave-option:hover{transform:scale(1.02)}.leave-option.selected{color:#fff;font-weight:600}.leave-option .leave-code{font-size:14px;font-weight:700;margin-bottom:4px}.leave-option .leave-name{font-size:10px;opacity:.9}.form-actions{display:flex;gap:12px;justify-content:flex-end}.submit-btn{background:linear-gradient(135deg,#00d4ff,#0ea5e9);border:none;border-radius:8px;padding:12px 24px;color:#fff;font-weight:600;cursor:pointer;transition:all .2s}.submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 25px #00d4ff4d}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.cancel-btn{background:transparent;border:1px solid rgba(100,116,139,.5);border-radius:8px;padding:12px 24px;color:#94a3b8;font-weight:500;cursor:pointer;transition:all .2s}.cancel-btn:hover{background:#64748b1a;border-color:#94a3b8}.member-display{background:#00d4ff1a;border:1px solid rgba(0,212,255,.3);border-radius:8px;padding:12px 16px;color:#00d4ff;font-weight:600;text-align:center}.date-range{display:flex;align-items:center;gap:12px;margin-bottom:8px}.date-input{flex:1;background:#1e293bcc;border:1px solid rgba(0,212,255,.3);border-radius:8px;padding:12px 16px;color:#e2e8f0;font-size:14px;transition:all .2s}.date-input:focus{outline:none;border-color:#00d4ff;box-shadow:0 0 0 3px #00d4ff1a}.date-separator{color:#94a3b8;font-weight:500;font-size:14px}.date-info{color:#64748b;font-size:12px;font-style:italic;text-align:center}@media (max-width: 480px){.date-range{flex-direction:column;gap:8px}.date-separator{display:none}}.leave-pill.pending{background:linear-gradient(135deg,#f59e0b,#d97706)!important;border:1px solid #f59e0b!important;position:relative}.leave-pill.pending:after{content:"PENDING";position:absolute;top:-8px;right:-8px;background:#f59e0b;color:#fff;font-size:8px;padding:2px 4px;border-radius:4px;font-weight:700}.approve-btn{background:linear-gradient(135deg,#22c55e,#16a34a);border:none;border-radius:6px;padding:4px 8px;color:#fff;font-size:10px;font-weight:600;cursor:pointer;margin-top:4px;transition:all .2s}.approve-btn:hover{transform:scale(1.05);box-shadow:0 4px 12px #22c55e4d}.leave-details{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#1e293b99;border:1px solid rgba(51,65,85,.8);border-radius:8px;transition:all .2s}.detail-row:hover{background:#1e293bcc;border-color:#00d4ff4d}.detail-row strong{color:#94a3b8;font-weight:600;font-size:14px}.status-badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase;margin-left:8px}.status-badge.approved{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.status-badge.pending{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.modal-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}.delete-btn{background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:8px;padding:10px 20px;color:#fff;font-weight:600;cursor:pointer;transition:all .2s}.delete-btn:hover{transform:translateY(-1px);box-shadow:0 8px 25px #ef44444d}@media (max-width: 768px){.topbar{flex-direction:column;gap:12px}.topbar-left{flex-direction:column;gap:8px;text-align:center}.user-info,.modal-actions{justify-content:center}.detail-row{flex-direction:column;align-items:flex-start;gap:8px}}.number-badge{position:absolute;bottom:.5px;right:.5px;background-color:#ffb300;color:#000;font-size:.7rem;font-weight:600;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 4px #0000004d;pointer-events:none;z-index:2}.date-header{position:relative;text-align:center;padding:4px 0}.sort-arrow{position:absolute;top:2px;right:4px;font-size:10px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s,transform .2s}.sort-arrow:hover{color:var(--accent);transform:scale(1.2)}.day-cell{position:relative}.delete-btn{display:none;position:absolute;top:2px;right:2px;background:#ff5722;color:#fff;border:none;border-radius:50%;width:18px;height:18px;font-size:12px;cursor:pointer;line-height:16px;text-align:center;padding:0;transition:background .2s}.delete-btn:hover{background:#d84315}.day-cell.has-leave:hover .delete-btn{display:block}.update-shift-btn{margin-left:8px;font-size:11px;background:#0078d4;color:#fff;border:none;padding:3px 8px;border-radius:4px;cursor:pointer}.update-shift-btn:hover{background:#005ea2}.shift-options{display:flex;gap:10px;margin-top:8px}.shift-option{padding:8px 14px;border:1px solid var(--border-color, #ccc);border-radius:6px;background:transparent;cursor:pointer;font-weight:500;color:#d4d3d3}.shift-option.selected{background:#0078d4;color:#fff;border-color:#0078d4}.update-shift-btn{margin-top:4px;font-size:10px;padding:2px 6px;border-radius:6px;background-color:#0d6efd;color:#fff;border:none;cursor:pointer}.update-shift-btn:hover{background-color:#0b5ed7}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .3s ease-out}.modal-content2{background:#1e2a4a;color:#e0e0e0;padding:30px;border-radius:12px;width:450px;max-height:90vh;overflow-y:auto;border:1px solid #3c4c6c;box-shadow:0 10px 30px #00000080;animation:slideUp .3s ease-out}.modal-content2 h2{color:#8c9eff;margin-top:0;margin-bottom:20px;font-weight:600;text-align:center;border-bottom:2px solid #3c4c6c;padding-bottom:10px}.holiday-table{width:100%;border-collapse:separate;border-spacing:0;margin-top:20px;font-size:14px}.holiday-table th,.holiday-table td{border:none;padding:12px 15px;text-align:left}.holiday-table th{background:#253351;color:#a4b3f1;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.holiday-table thead tr th:first-child{border-top-left-radius:8px}.holiday-table thead tr th:last-child{border-top-right-radius:8px}.holiday-table tbody tr{border-bottom:1px solid #3c4c6c}.holiday-table tbody tr:nth-child(2n){background-color:#1a243e}.holiday-table tbody tr:hover{background-color:#2a3a5e;cursor:default}.holiday-table td:last-child{color:#b0c4de}.close-btn2{margin-top:30px;padding:10px 20px;cursor:pointer;background:linear-gradient(90deg,#4c68ff,#8c9eff);color:#fff;border:none;border-radius:6px;font-weight:600;font-size:16px;box-shadow:0 4px 10px #0006;transition:all .2s ease;display:block;width:100%}.close-btn2:hover{background:linear-gradient(90deg,#5a74ff,#9aa9ff);transform:translateY(-2px);box-shadow:0 6px 12px #0009}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.ph-summary-modal{width:600px;max-width:95vw}.ph-summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.ph-summary-header h2{margin:0;border:none;padding:0}.ph-summary-table .ph-summary-row{cursor:pointer}.ph-summary-table .ph-summary-row:hover{background-color:#2a3a5e}.ph-summary-table .ph-summary-row.expanded{background-color:#253351}.ph-detail-row td{padding:8px 15px 12px!important;background:#151f38}.ph-detail-list{display:flex;flex-direction:column;gap:6px}.ph-detail-item{display:flex;align-items:center;gap:10px;font-size:13px}.ph-type-badge{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700;min-width:60px;text-align:center}.ph-type-badge.fixed{background:#6366f14d;color:#a5b4fc;border:1px solid rgba(99,102,241,.5)}.ph-type-badge.optional{background:#f59e0b33;color:#fcd34d;border:1px solid rgba(245,158,11,.4)}.ph-type-badge.unknown{background:#64748b33;color:#94a3b8;border:1px solid rgba(100,116,139,.3)}.ph-detail-date{color:#94a3b8;min-width:90px}.ph-detail-name{color:#e2e8f0}
