*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;min-height:100vh}body{background-color:#2f1b14;color:#fdf6e3;line-height:1.5}button{border:none;background:none;cursor:pointer;font-family:inherit}.app{min-height:100vh;display:flex;justify-content:center;align-items:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.cell-datepicker{display:flex;flex-direction:column;align-items:center;font-family:Courier New,monospace;max-width:800px;width:100%;padding:20px}.load-more-btn{background:#d2691e;color:#fdf6e3;border:none;padding:12px 24px;border-radius:4px;font-size:14px;font-weight:600;cursor:pointer;margin-bottom:20px;transition:all .3s ease;box-shadow:0 4px 15px #d2691e4d}.load-more-btn:hover{transform:translateY(-2px);background:peru;box-shadow:0 6px 20px #d2691e66}.load-more-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.load-more-btn:disabled:hover{transform:none;box-shadow:0 4px 15px #667eea4d}.spinner{display:inline-block;width:12px;height:12px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite;margin-right:8px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.date-cells{display:flex;flex-wrap:wrap;gap:15px;justify-content:center;align-items:flex-start;width:100%;will-change:auto;transform:translateZ(0)}.date-cell{background:#fdf6e3;border:2px solid #8b4513;border-radius:2px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;box-shadow:0 3px 6px #8b451333;position:relative;overflow:hidden;flex-shrink:0;contain:layout style;will-change:transform;color:#2f1b14}.date-cell:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 8px 16px #8b45134d;border-color:#d2691e;background:#f4f1e8}.date-cell.tiny{width:75px;height:48px}.date-cell.mini{width:75px;height:52px}.date-cell.small{width:77px;height:53px}.date-cell.compact{width:79px;height:54px}.date-cell.medium-small{width:75px;height:58px}.date-cell.medium{width:80px;height:60px}.date-cell.medium-large{width:85px;height:62px}.date-cell.large{width:90px;height:62px}.date-cell.big{width:95px;height:68px}.date-cell.huge{width:94px;height:70px}.date-cell.massive{width:95px;height:72px}.date-cell.giant{width:99px;height:77px}.date-cell.today{border-color:tomato;background:#ffe4e1;color:#8b0000}.date-cell.selected{border-color:#8b0000;background:plum;color:#2f1b14;transform:translateY(-3px) scale(1.05);box-shadow:0 10px 20px #8b000066}.date-cell.holiday{border-color:#228b22;background:#f0fff0;color:#006400}.date-cell.holiday.selected{background:#90ee90;color:#2f1b14}.cell-content{padding:4px;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.date-number{font-size:34px;font-weight:700;margin-bottom:4px;line-height:1;color:#2f1b14}.date-cell.small .date-number{font-size:28px}.date-cell.large .date-number{font-size:38px}.day-name{font-size:10px;font-weight:600;margin-bottom:2px;opacity:.8}.month-year{font-size:14px;font-weight:500;opacity:.8;margin-bottom:3px;color:#5d2f1a}.holiday{font-size:10px;font-weight:600;padding:2px 4px;background:#228b2233;border-radius:2px;margin-top:3px;line-height:1;color:#006400}.date-cell.selected .holiday{background:#2f1b1433;color:#2f1b14}@keyframes cellAppear{0%{opacity:0;transform:translateY(-20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.date-cell{animation:cellAppear .4s ease forwards}.date-cell.align-top{align-self:flex-start}.date-cell.align-center{align-self:center}.date-cell.align-bottom{align-self:flex-end}.date-cell.align-stretch{align-self:stretch}.cell-datepicker.small .date-cell.small{width:80px;height:70px}.cell-datepicker.small .date-cell.medium{width:100px;height:85px}.cell-datepicker.small .date-cell.large{width:120px;height:100px}.cell-datepicker.tiny .date-cell.small{width:60px;height:50px}.cell-datepicker.tiny .date-cell.medium{width:75px;height:60px}.cell-datepicker.tiny .date-cell.large{width:90px;height:70px}.cell-datepicker.small .date-number{font-size:24px}.cell-datepicker.small .date-cell.large .date-number{font-size:26px}.cell-datepicker.tiny .date-number{font-size:20px}.cell-datepicker.tiny .date-cell.large .date-number{font-size:22px}.cell-datepicker.small .day-name{font-size:8px}.cell-datepicker.tiny .day-name{font-size:6px}.cell-datepicker.small .month-year{font-size:9px}.cell-datepicker.tiny .month-year{font-size:7px}.cell-datepicker.small .holiday{font-size:8px;padding:1px 3px}.cell-datepicker.tiny .holiday{font-size:7px;padding:1px 2px}.cell-datepicker.small .cell-content{padding:2px}.cell-datepicker.tiny .cell-content{padding:1px}.cell-datepicker.small .date-cells{gap:10px}.cell-datepicker.tiny .date-cells{gap:8px}.cell-datepicker.small .load-more-btn{padding:8px 16px;font-size:12px}.cell-datepicker.tiny .load-more-btn{padding:6px 12px;font-size:10px}.date-tooltip{position:fixed;z-index:1000;background:#8b4513;color:#fdf6e3;border:2px solid #d2691e;border-radius:0;padding:0;min-width:250px;box-shadow:0 6px 12px #8b451366;animation:tooltipAppear .2s ease;pointer-events:none}.anchor-tooltip{position:absolute;position-anchor:var(--anchor-name);left:anchor(right);top:anchor(top);margin-left:10px;position-try-fallbacks:--tooltip-left}@position-try --tooltip-left{right:anchor(left);left:auto;top:anchor(top);margin-left:0;margin-right:10px}@keyframes tooltipAppear{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.tooltip-header{background:#d2691e;padding:12px 16px;border-radius:0;font-weight:600;font-size:14px;text-align:center;color:#fdf6e3}.tooltip-content{padding:12px 16px 16px}.tooltip-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px}.tooltip-row:last-child{margin-bottom:0}.tooltip-label{color:#fdf6e3cc;font-weight:500}.tooltip-value{color:#fdf6e3;font-weight:600;text-align:right}.tooltip-row.leap-year{justify-content:center;margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.2)}.tooltip-row.leap-year .tooltip-value{color:#fbbf24;text-align:center}.selection-emoji{position:absolute;top:4px;right:4px;font-size:18px;z-index:10;animation:selectionSparkle 2s ease-in-out infinite;pointer-events:none}@keyframes selectionSparkle{0%,to{transform:scale(1) rotate(0)}50%{transform:scale(1.1) rotate(10deg)}}.cell-datepicker.small .selection-emoji{font-size:14px;top:3px;right:3px}.cell-datepicker.tiny .selection-emoji{font-size:10px;top:2px;right:2px}.month-break{width:100%;display:flex;align-items:center;margin:20px 0;font-family:Courier New,monospace}.month-break-line{flex:1;height:2px;background:#8b4513;margin:0 10px}.month-break-label{color:#d2691e;font-size:16px;font-weight:600;padding:8px 16px;background:#2f1b14;border:2px solid #d2691e;border-radius:0;white-space:nowrap}.floating-selected-date{position:fixed;top:20px;right:20px;z-index:1000;background:#8b4513;border:2px solid #d2691e;border-radius:0;box-shadow:0 6px 12px #8b451366;font-family:Courier New,monospace;animation:floatIn .3s ease}@keyframes floatIn{0%{opacity:0;transform:translateY(-10px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.selected-date-content{display:flex;align-items:center;padding:12px 16px;color:#fdf6e3}.selected-date-day{font-size:32px;font-weight:700;margin-right:12px;line-height:1;color:#d2691e}.selected-date-info{display:flex;flex-direction:column}.selected-date-weekday{font-size:14px;font-weight:600;margin-bottom:2px;color:#fdf6e3}.selected-date-month-year{font-size:12px;font-weight:500;color:#fdf6e3cc}@media (max-width: 768px){.floating-selected-date{position:fixed;inset:auto 20px 20px;width:auto}.selected-date-content{justify-content:center;padding:16px}.selected-date-day{font-size:28px;margin-right:16px}.selected-date-weekday{font-size:16px}.selected-date-month-year{font-size:14px}}@media (max-width: 480px){.floating-selected-date{bottom:10px;left:10px;right:10px}.selected-date-content{padding:12px}.selected-date-day{font-size:24px;margin-right:12px}}
