.calendar-year-nav{z-index:100;border-bottom:2px solid #dee2e6}.calendar-year-nav.sticky-top{background:white !important}.calendar-year-nav h3{font-size:1.75rem;color:#2196f3}.calendar-legend{border:1px solid #dee2e6}.calendar-legend h5{font-size:1rem;font-weight:bold}.calendar-legend .legend-item .legend-color{width:30px;height:30px;border-radius:4px;border:1px solid #dee2e6;flex-shrink:0}.calendar-month{background:white;border:1px solid #dee2e6;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px rgba(0,0,0,0.05)}.calendar-month .month-header{background:#d8ffa2;color:#2d5016;padding:1rem}.calendar-month .month-header h4{margin:0;font-size:1.25rem;font-weight:600}.calendar-month .calendar-grid{display:grid !important;grid-template-columns:repeat(7, 1fr) !important;gap:1px !important;background:#dee2e6 !important}.calendar-month .calendar-grid .day-header{background:#f8f9fa;font-weight:bold;text-align:center;padding:0.5rem;font-size:0.875rem;border-bottom:2px solid #dee2e6;min-height:40px}.calendar-cell{min-height:70px;background:white;position:relative;display:flex;flex-direction:column;justify-content:center}.calendar-cell.empty-cell{background:#fafafa}.calendar-cell.day-header{min-height:40px;display:flex;align-items:center;justify-content:center}.day-cell{padding:0.25rem;cursor:pointer;transition:transform 0.2s, box-shadow 0.2s}.day-cell:hover{transform:scale(1.05);box-shadow:0 4px 8px rgba(0,0,0,0.15);z-index:10}.day-cell .day-number{font-weight:bold;font-size:1rem;position:absolute;top:0.25rem;right:0.25rem}.day-cell .day-country{text-align:center;font-size:0.75rem;font-weight:600;margin-bottom:0.25rem;line-height:1.2}.day-cell .day-count{text-align:center;font-size:0.75rem;font-weight:600}.day-cell .day-overstay,.day-cell .day-wait{text-align:center;font-size:0.7rem;margin-top:0.125rem}.outside-schengen{background-color:#e9ecef;color:#495057}.in-schengen-safe{background-color:#d1f4e0;color:#155724}.in-schengen-warning{background-color:#fff3cd;color:#856404}.overstay{background-color:#f8d7da;color:#721c24;border:2px solid #f0acb2 !important}.waiting-period{background-color:#ffeaa7;color:#856404;border:2px solid #ffde74 !important}.day-cell.current-day{background-color:#fbfdff !important;border:2px solid #2196f3 !important}.day-cell.current-day .day-number{color:#2196f3;font-weight:900}@media (max-width: 768px){.calendar-cell{min-height:50px}.day-cell{padding:0.125rem}.day-cell .day-number{font-size:0.875rem;top:0.125rem;right:0.125rem}.day-cell .day-country{margin-top:1.25rem;font-size:0.65rem}.day-cell .day-count{font-size:0.65rem}.calendar-month{margin-bottom:2rem}.calendar-year-nav h3{font-size:1.25rem}.calendar-year-nav .btn{font-size:0.875rem;padding:0.375rem 0.75rem}}@media (max-width: 480px){.calendar-cell{min-height:50px}.day-cell .day-number{font-size:0.75rem}.day-cell .day-country{font-size:0.6rem}.day-cell .day-count{font-size:0.6rem}.day-cell .day-overstay,.day-cell .day-wait{font-size:0.55rem}}html{scroll-behavior:smooth}.calendar-sidebar{z-index:50;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,0.2) transparent}.calendar-sidebar::-webkit-scrollbar{width:6px}.calendar-sidebar::-webkit-scrollbar-track{background:transparent}.calendar-sidebar::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,0.2);border-radius:3px}.calendar-sidebar::-webkit-scrollbar-thumb:hover{background-color:rgba(0,0,0,0.3)}.day-cell{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.day-cell.clickable{cursor:pointer}.day-cell.clickable:hover{transform:scale(1.05);box-shadow:0 4px 8px rgba(0,0,0,0.15);z-index:10}.day-cell.selecting{outline:2px dashed #2196f3;outline-offset:-2px}.day-cell.selected{outline:3px solid #2196f3;outline-offset:-3px}.context-menu{position:fixed;background:white;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 8px 16px rgba(0,0,0,0.2);z-index:1050;min-width:250px;max-width:350px}.context-menu ul{list-style:none;padding:0.5rem 0;margin:0}.context-menu ul li{padding:0.75rem 1rem;cursor:pointer;transition:background 0.15s ease}.context-menu ul li:hover:not(.divider){background:#f8f9fa}.context-menu ul li:first-child{border-radius:8px 8px 0 0}.context-menu ul li:last-child{border-radius:0 0 8px 8px}.context-menu ul li .visit-country{font-weight:600;color:#212529;font-size:0.95rem;margin-bottom:0.25rem}.context-menu ul li .visit-dates{font-size:0.85rem;color:#6c757d}.context-menu ul .divider{height:0;border-top:1px solid #dee2e6;margin:0.5rem 0;padding:0;cursor:default}.context-menu ul .divider:hover{background:transparent}#visitModal .modal-body{max-height:calc(100vh - 200px);overflow-y:auto}#visitModal .form-horizontal .form-group{margin-bottom:1rem}.empty-calendar-message{text-align:center;padding:3rem 1rem;color:#6c757d}.empty-calendar-message h4{margin-bottom:1rem}.empty-calendar-message p{font-size:1.1rem;margin-bottom:0}.empty-calendar-message .icon{font-size:3rem;margin-bottom:1rem;opacity:0.5}@keyframes highlightPulseGreen{0%{box-shadow:0 0 0 0 rgba(40,167,69,0.7);transform:scale(1)}50%{box-shadow:0 0 0 10px rgba(40,167,69,0);transform:scale(1.02)}100%{box-shadow:0 0 0 0 rgba(40,167,69,0);transform:scale(1)}}.newly-created-visit{animation:highlightPulseGreen 1s ease-in-out 2;border:2px solid #28a745 !important;position:relative;z-index:10}@keyframes highlightPulseBlue{0%{box-shadow:0 0 0 0 rgba(0,123,255,0.7);transform:scale(1)}50%{box-shadow:0 0 0 10px rgba(0,123,255,0);transform:scale(1.02)}100%{box-shadow:0 0 0 0 rgba(0,123,255,0);transform:scale(1)}}.newly-updated-visit{animation:highlightPulseBlue 1s ease-in-out 2;border:2px solid #007bff !important;position:relative;z-index:10}.calendar-day-cell,.day-cell{transition:border 0.3s ease, transform 0.3s ease}.calculator-page-title{font-size:2rem;font-weight:600;color:#2c3e50;margin-top:1rem}@media (max-width: 768px){.calculator-page-title{font-size:1.5rem;margin-top:0.5rem}}
