:root{--brand-primary: #165CAB;--brand-dark: #044187;--brand-medium: #07305C;--brand-light: #1F76D8;--brand-focus: #0095FF;--brand-focus-bg: #C2E5FF;--brand-hover-light: #E0F2FF;--gray-1000: #131517;--gray-900: #1E2328;--gray-700: #616365;--gray-500: #8B8D8F;--gray-300: #C4C7CA;--gray-200: #DFE3E8;--gray-100: #F5F7F9;--white: #FFFFFF;--jade-500: #1E8F6B;--jade-100: #D4F5E9;--sage-500: #549970;--sage-100: #E2F0E7;--danger-500: #D63B3B;--danger-100: #FDE8E8;--warning-500: #D4880F;--warning-100: #FFF3D6;--color-office: #165CAB;--color-wfh: #7C5CBF;--color-pto: #D4880F;--color-holiday: #D63B3B;--color-weekend: #DFE3E8;--font-family: "Inter", "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif;--font-h1: 700 24px/32px var(--font-family);--font-h2: 600 20px/28px var(--font-family);--font-body: 400 14px/20px var(--font-family);--font-label: 500 11px/16px var(--font-family);--font-small: 400 12px/16px var(--font-family);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 2px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .12);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--sidebar-width: 240px;--header-height: 56px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{height:100%}body{font:var(--font-body);color:var(--gray-1000);background:var(--gray-100);height:100%;-webkit-font-smoothing:antialiased}.login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,var(--brand-medium) 0%,var(--brand-dark) 50%,#021B3A 100%);padding:var(--space-lg)}.login-card{background:var(--white);border-radius:var(--radius-lg);padding:48px 40px;width:100%;max-width:420px;box-shadow:var(--shadow-lg),0 0 80px #165cab26;text-align:center}.login-logo{margin-bottom:var(--space-lg)}.login-title{font:var(--font-h1);color:var(--gray-1000);margin-bottom:var(--space-xs)}.login-subtitle{font:var(--font-small);color:var(--gray-700);margin-bottom:var(--space-lg)}.login-disclaimer{font:var(--font-body);color:var(--gray-700);margin-bottom:var(--space-xl);line-height:1.5}.login-form{text-align:left;margin-bottom:var(--space-lg)}.form-label{display:block;font:var(--font-label);color:var(--gray-700);text-transform:uppercase;letter-spacing:.8px;margin-bottom:var(--space-sm)}.form-input{width:100%;padding:10px 14px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);font:var(--font-body);color:var(--gray-1000);background:var(--white);transition:border-color .2s,box-shadow .2s}.form-input:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 3px var(--brand-focus-bg)}.form-input::placeholder{color:var(--gray-500)}.login-error{font:var(--font-small);color:var(--danger-500);min-height:20px;margin-top:var(--space-sm);margin-bottom:var(--space-sm)}.btn-primary{width:100%;padding:11px 20px;background:var(--brand-primary);color:var(--white);border:none;border-radius:var(--radius-sm);font:var(--font-body);font-weight:600;cursor:pointer;transition:background .2s,transform .1s}.btn-primary:hover{background:var(--brand-dark)}.btn-primary:active{transform:scale(.98)}.btn-login{margin-top:var(--space-sm)}.login-footer{font:var(--font-small);color:var(--gray-500);line-height:1.6}.dashboard{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-width);background:var(--brand-medium);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:var(--space-md);padding:20px var(--space-lg);border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-brand-text{font-weight:700;font-size:16px;color:var(--white);letter-spacing:-.3px}.sidebar-nav{flex:1;padding:var(--space-md) var(--space-md);display:flex;flex-direction:column;gap:2px}.sidebar-link{display:flex;align-items:center;gap:var(--space-md);padding:10px var(--space-md);color:#ffffffa6;text-decoration:none;font-size:14px;font-weight:500;border-radius:var(--radius-sm);transition:all .15s}.sidebar-link:hover{color:var(--white);background:#ffffff14}.sidebar-link.active{color:var(--white);background:var(--brand-light)}.sidebar-link.disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.sidebar-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid rgba(255,255,255,.08)}.sidebar-user{display:flex;align-items:center;gap:var(--space-md)}.sidebar-avatar{width:32px;height:32px;border-radius:50%;background:var(--brand-light);color:var(--white);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.sidebar-user-info{display:flex;flex-direction:column}.sidebar-username{color:var(--white);font-size:13px;font-weight:600}.sidebar-role{color:#ffffff73;font-size:11px}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.top-header{height:var(--header-height);background:var(--white);border-bottom:1px solid var(--gray-200);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-xl);flex-shrink:0}.breadcrumbs{display:flex;align-items:center;gap:var(--space-sm);font-size:13px;color:var(--gray-700)}.breadcrumb-item.active{color:var(--gray-1000);font-weight:500}.breadcrumb-sep{color:var(--gray-300)}.header-right{display:flex;align-items:center;gap:var(--space-md)}.header-greeting{font-size:13px;color:var(--gray-700)}.btn-icon{width:36px;height:36px;border:1px solid var(--gray-200);background:var(--white);border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--gray-700);transition:all .15s}.btn-icon:hover{border-color:var(--brand-primary);color:var(--brand-primary)}.page-content{flex:1;overflow-y:auto;padding:var(--space-xl)}.page{display:none}.page.active{display:block}.month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.month-title{font:var(--font-h1);color:var(--gray-1000)}.btn-nav{display:flex;align-items:center;gap:var(--space-sm);padding:8px 16px;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:13px;font-weight:500;color:var(--gray-700);cursor:pointer;transition:all .15s}.btn-nav:hover{border-color:var(--brand-primary);color:var(--brand-primary)}.kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-md);margin-bottom:var(--space-lg)}.kpi-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:20px;display:flex;flex-direction:column;transition:box-shadow .2s}.kpi-card:hover{box-shadow:var(--shadow-md)}.kpi-label{font:var(--font-label);color:var(--gray-700);text-transform:uppercase;letter-spacing:.6px;margin-bottom:var(--space-sm)}.kpi-value{font-size:32px;font-weight:700;color:var(--gray-1000);line-height:1;margin-bottom:var(--space-sm);transition:color .3s}.kpi-desc{font:var(--font-small);color:var(--gray-500)}.kpi-highlight{background:var(--brand-primary);border-color:var(--brand-primary)}.kpi-highlight .kpi-label{color:#ffffffb3}.kpi-highlight .kpi-value{color:var(--white)}.kpi-highlight .kpi-desc{color:#fff9}.kpi-highlight.kpi-danger{background:var(--danger-500);border-color:var(--danger-500)}.kpi-highlight.kpi-warning{background:var(--warning-500);border-color:var(--warning-500)}.kpi-highlight.kpi-success{background:var(--jade-500);border-color:var(--jade-500)}.legend-bar{display:flex;align-items:center;gap:var(--space-lg);padding:12px var(--space-lg);background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.legend-item{display:flex;align-items:center;gap:var(--space-sm);font-size:12px;font-weight:500;color:var(--gray-700)}.legend-dot{width:10px;height:10px;border-radius:2px}.legend-dot.office{background:var(--color-office)}.legend-dot.wfh{background:var(--color-wfh)}.legend-dot.pto{background:var(--color-pto)}.legend-dot.holiday{background:var(--color-holiday)}.legend-dot.weekend{background:var(--color-weekend)}.calendar-container{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-lg)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-header{text-align:center;font:var(--font-label);color:var(--gray-700);text-transform:uppercase;letter-spacing:.6px;padding:8px 0 12px}.cal-cell{border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:8px;min-height:88px;display:flex;flex-direction:column;background:var(--white);transition:all .15s;position:relative}.cal-cell:hover:not(.cal-weekend):not(.cal-holiday):not(.cal-empty){border-color:var(--brand-primary);box-shadow:0 0 0 1px var(--brand-focus-bg)}.cal-empty{background:transparent;border-color:transparent;min-height:auto}.cal-day{font-size:13px;font-weight:600;color:var(--gray-1000);margin-bottom:4px}.cal-weekend{background:var(--gray-100);border-color:var(--gray-200)}.cal-weekend .cal-day{color:var(--gray-500)}.cal-holiday{background:var(--danger-100);border-color:#f5c6c6}.cal-holiday-name{font-size:9px;font-weight:600;color:var(--danger-500);line-height:1.2;margin-bottom:4px;text-transform:uppercase;letter-spacing:.3px}.cal-today{border:2px solid var(--brand-primary);box-shadow:0 0 0 2px var(--brand-focus-bg)}.cal-today.recommended-wfh,.cal-today.recommended-pto{border:none;box-shadow:none}.cal-toggles{display:flex;gap:3px;margin-top:auto}.cal-toggle{flex:1;padding:4px 2px;border:1px solid var(--gray-200);border-radius:3px;background:var(--white);font-size:9px;font-weight:600;letter-spacing:.3px;cursor:pointer;color:var(--gray-500);transition:all .15s;text-transform:uppercase}.cal-toggle:hover{border-color:var(--gray-300);color:var(--gray-700)}.cal-toggle.active-office{background:var(--color-office);border-color:var(--color-office);color:var(--white)}.cal-toggle.active-wfh{background:var(--color-wfh);border-color:var(--color-wfh);color:var(--white)}.cal-toggle.active-pto{background:var(--color-pto);border-color:var(--color-pto);color:var(--white)}.cal-status-dot{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%}.cal-status-dot.office{background:var(--color-office)}.cal-status-dot.wfh{background:var(--color-wfh)}.cal-status-dot.pto{background:var(--color-pto)}.actions-bar{display:flex;justify-content:flex-end;gap:var(--space-md)}.btn-secondary{display:inline-flex;align-items:center;gap:var(--space-sm);padding:9px 18px;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:13px;font-weight:500;color:var(--gray-700);cursor:pointer;transition:all .15s}.btn-secondary:hover{border-color:var(--brand-primary);color:var(--brand-primary)}.page-header{margin-bottom:var(--space-lg)}.page-header h2{font:var(--font-h2);color:var(--gray-1000);margin-bottom:var(--space-xs)}.page-desc{font:var(--font-body);color:var(--gray-700)}.holidays-table-wrap{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-md);overflow:hidden}.holidays-table{width:100%;border-collapse:collapse;font-size:14px}.holidays-table th{font:var(--font-label);color:var(--gray-700);text-transform:uppercase;letter-spacing:.6px;text-align:left;padding:14px 20px;background:var(--gray-100);border-bottom:1px solid var(--gray-200)}.holidays-table td{padding:14px 20px;border-bottom:1px solid var(--gray-200);color:var(--gray-1000)}.holidays-table tr:last-child td{border-bottom:none}.holidays-table tr:hover td{background:var(--brand-hover-light)}.holiday-status-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}.holiday-status-badge.upcoming{background:var(--brand-focus-bg);color:var(--brand-primary)}.holiday-status-badge.past{background:var(--gray-100);color:var(--gray-500)}.lost-card{background:var(--white);border:1px solid var(--gray-200);border-left:4px solid var(--warning-500);border-radius:var(--radius-md);padding:var(--space-xl)}.lost-card h3{font:var(--font-h2);margin-bottom:var(--space-md)}.lost-card p{font:var(--font-body);color:var(--gray-700);margin-bottom:var(--space-sm);line-height:1.6}.lost-footer{margin-top:var(--space-md)!important;padding-top:var(--space-md);border-top:1px solid var(--gray-200);font-style:italic;color:var(--gray-500)!important}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:var(--space-sm)}.toast{background:var(--white);border:1px solid var(--gray-200);border-left:4px solid var(--brand-primary);border-radius:var(--radius-sm);padding:14px 20px;min-width:320px;max-width:420px;box-shadow:var(--shadow-lg);animation:slideIn .3s ease-out;font-size:13px;color:var(--gray-1000);line-height:1.5}.toast.toast-danger{border-left-color:var(--danger-500)}.toast.toast-warning{border-left-color:var(--warning-500)}.toast.toast-success{border-left-color:var(--jade-500)}.toast-title{font-weight:600;margin-bottom:2px}.toast-body{color:var(--gray-700)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.toast.removing{animation:slideOut .3s ease-in forwards}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#13151780;display:flex;align-items:center;justify-content:center;z-index:10000}.loading-card{background:var(--white);border-radius:var(--radius-md);padding:40px 48px;text-align:center;box-shadow:var(--shadow-lg)}.loading-spinner{width:36px;height:36px;border:3px solid var(--gray-200);border-top-color:var(--brand-primary);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto var(--space-md)}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:14px;color:var(--gray-700);font-weight:500}.optimizer-settings{background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-md);padding:16px 20px;margin-bottom:12px}.optimizer-settings-header{font-size:13px;font-weight:600;color:var(--gray-700);margin-bottom:12px}.optimizer-inputs{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}.optimizer-input-group{display:flex;flex-direction:column;gap:6px}.optimizer-input-group>label{font-size:11px;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px}.optimizer-number-input{width:64px;padding:6px 10px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:14px;font-weight:600;color:var(--gray-800);text-align:center;transition:border-color .2s}.optimizer-number-input:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-focus-bg)}.optimizer-checkboxes{display:flex;gap:8px;flex-wrap:wrap}.optimizer-checkbox{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:500;color:var(--gray-600);cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);border:1px solid var(--gray-100);transition:all .15s}.optimizer-checkbox:hover{background:var(--gray-50);border-color:var(--gray-200)}.optimizer-checkbox input[type=checkbox]{width:14px;height:14px;accent-color:var(--brand-primary);cursor:pointer}.btn-optimize{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;background:linear-gradient(135deg,#7c3aed,#2563eb);color:var(--white);border:none;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #7c3aed4d}.btn-optimize:hover{transform:translateY(-1px);box-shadow:0 4px 16px #7c3aed66}.btn-optimize:active{transform:translateY(0)}.cal-cell.recommended-wfh{background:#2563eb14!important;box-shadow:inset 0 0 0 2px #2563eb80,0 0 12px #2563eb26;animation:pulseWfh 2s ease-in-out infinite}.cal-cell.recommended-pto{background:#ea580c14!important;box-shadow:inset 0 0 0 2px #ea580c80,0 0 12px #ea580c26;animation:pulsePto 2s ease-in-out infinite}@keyframes pulseWfh{0%,to{box-shadow:inset 0 0 0 2px #2563eb80,0 0 8px #2563eb1a}50%{box-shadow:inset 0 0 0 2px #2563ebcc,0 0 16px #2563eb40}}@keyframes pulsePto{0%,to{box-shadow:inset 0 0 0 2px #ea580c80,0 0 8px #ea580c1a}50%{box-shadow:inset 0 0 0 2px #ea580ccc,0 0 16px #ea580c40}}.optimize-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;transition:opacity .2s ease}.optimize-modal-overlay.active{opacity:1}.optimize-modal{background:var(--white);border:1px solid var(--gray-200);border-left:4px solid var(--brand-primary);border-radius:var(--radius-sm);padding:24px 28px;max-width:460px;width:90%;box-shadow:var(--shadow-lg);transform:scale(.95);transition:transform .2s ease;color:var(--gray-1000)}.optimize-modal-overlay.active .optimize-modal{transform:scale(1)}.optimize-modal-header{font-size:1.1rem;font-weight:700;color:var(--gray-1000);margin-bottom:8px}.optimize-modal-text{color:var(--gray-700);font-size:.88rem;margin-bottom:8px;line-height:1.5}.optimize-modal-warning{color:var(--warning-500);font-size:.8rem;margin-bottom:16px;padding:8px 12px;background:#ea580c14;border-radius:var(--radius-sm);border-left:3px solid var(--warning-500)}.optimize-modal-options{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.optimize-modal-btn{display:flex;flex-direction:column;align-items:flex-start;padding:16px 20px;border:1px solid var(--gray-200);border-radius:var(--radius-md);background:var(--gray-50);cursor:pointer;transition:all .2s ease;text-align:left}.optimize-modal-btn:hover{border-color:var(--brand-primary);background:#2563eb0f;transform:translateY(-1px)}.optimize-modal-btn.fresh:hover{border-color:var(--warning-500);background:#ea580c0f}.optimize-modal-btn-icon{font-size:1.3rem;margin-bottom:4px}.optimize-modal-btn-title{font-weight:700;color:var(--gray-1000);font-size:.95rem}.optimize-modal-btn-desc{color:var(--gray-500);font-size:.8rem;margin-top:2px}.optimize-modal-cancel{width:100%;padding:8px;background:transparent;border:none;color:var(--gray-500);font-size:.82rem;cursor:pointer;border-radius:var(--radius-sm);transition:color .15s ease}.optimize-modal-cancel:hover{color:var(--gray-1000)}.optimize-summary{background:linear-gradient(135deg,#ea580c0d,#2563eb0d);border:1px solid rgba(234,88,12,.2);border-radius:var(--radius-lg);padding:20px 24px;margin-bottom:20px}.optimize-summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;font-weight:700;font-size:15px;color:#7c3aed}.btn-clear-optimize{background:transparent;border:1px solid var(--gray-300);border-radius:var(--radius-sm);padding:4px 12px;font-size:12px;color:var(--gray-500);cursor:pointer;transition:all .2s}.btn-clear-optimize:hover{background:var(--gray-100);color:var(--gray-700)}.optimize-actions{display:flex;gap:8px;align-items:center}.btn-accept-optimize{background:linear-gradient(135deg,#059669,#10b981);color:var(--white);border:none;border-radius:var(--radius-sm);padding:6px 16px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.btn-accept-optimize:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0596694d}.optimize-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:14px}.optimize-stat{text-align:center}.optimize-stat-value{display:block;font-size:22px;font-weight:700;color:var(--gray-900)}.optimize-stat-label{display:block;font-size:11px;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.cross-month-banner{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:10px 14px;background:#2563eb0f;border:1px solid rgba(37,99,235,.15);border-radius:var(--radius-md);margin-top:12px;font-size:12px}.cross-month-label{font-weight:600;color:var(--text-secondary)}.cross-month-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;letter-spacing:.02em}.cross-month-tag.wfh{background:#2563eb26;color:var(--brand-primary)}.cross-month-tag.pto{background:#ea580c26;color:var(--warning-500)}.cross-month-hint{color:var(--text-tertiary);font-size:11px;font-style:italic}.optimize-note{font-size:12px;color:var(--gray-500);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.optimize-legend-dot{display:inline-block;width:12px;height:12px;border-radius:3px}.optimize-legend-dot.wfh-dot{background:#2563eb99;box-shadow:0 0 4px #2563eb66}.optimize-legend-dot.pto-dot{background:#ea580c99;box-shadow:0 0 4px #ea580c66}.btn-optimize .spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.btn-optimize:disabled{opacity:.7;cursor:not-allowed;transform:none}.confetti-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:99999;overflow:hidden}.confetti-piece{position:absolute;width:10px;height:10px;animation:confetti-fall 3s ease-out forwards}@keyframes confetti-fall{0%{transform:translateY(-10vh) rotate(0);opacity:1}to{transform:translateY(110vh) rotate(720deg);opacity:0}}.achievement-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.8);background:linear-gradient(135deg,#1a1a2e,#16213e);border:2px solid #ffd700;border-radius:16px;padding:32px 48px;text-align:center;z-index:100000;opacity:0;transition:all .4s cubic-bezier(.34,1.56,.64,1);box-shadow:0 20px 60px #00000080,0 0 40px #ffd7004d}.achievement-toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.achievement-icon{font-size:48px;margin-bottom:12px;animation:achievement-bounce .6s ease-out}@keyframes achievement-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.achievement-title{font-size:20px;font-weight:700;color:gold;margin-bottom:4px;text-transform:uppercase;letter-spacing:2px}.achievement-desc{font-size:14px;color:#ffffffb3}.shortcut-hint{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:#000000d9;color:#fff;padding:12px 24px;border-radius:8px;font-size:13px;z-index:9999;opacity:0;transition:opacity .3s;pointer-events:none}.shortcut-hint.show{opacity:1}.shortcut-hint kbd{background:#ffffff26;padding:2px 8px;border-radius:4px;font-family:monospace;margin:0 2px}.cal-cell.chain-member{position:relative}.cal-cell.chain-member:after{content:"🔗";position:absolute;top:2px;left:2px;font-size:10px;animation:chain-pulse 1.5s ease-in-out infinite}@keyframes chain-pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.skeleton{background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-200) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.cal-cell[data-tooltip]{cursor:help}.cal-cell[data-tooltip]:before{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-4px);background:var(--gray-900);color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:100}.cal-cell[data-tooltip]:hover:before{opacity:1;transform:translate(-50%) translateY(-8px)}@media (max-width: 1100px){.kpi-row{grid-template-columns:repeat(3,1fr)}}@media (max-width: 860px){.sidebar{display:none}.kpi-row{grid-template-columns:repeat(2,1fr)}.calendar-grid{gap:3px}.cal-cell{min-height:72px;padding:6px}.cal-toggle{font-size:8px;padding:3px 1px}.page-content{padding:var(--space-md)}}@media (max-width: 600px){.kpi-row{grid-template-columns:1fr 1fr}.kpi-value{font-size:24px}.month-title{font-size:18px}.legend-bar{flex-wrap:wrap;gap:var(--space-md)}.cal-cell{min-height:64px}.cal-holiday-name{font-size:8px}.cal-toggles{gap:2px}}
