body,button,select{font-family:system-ui,'Segoe UI',Roboto,sans-serif}.sticky-header,table.calendar thead{position:sticky;background-color:var(--bg-card)}.solar-date,body{color:var(--text-color)}:root{--primary-color:#c41e3a;--secondary-color:#16a085;--bg-body:#f0f0f0;--bg-card:#ffffff;--border-color:#ccc;--text-color:#000;--header-height:130px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-body);padding:16px;font-size:18px}.container{max-width:1000px;margin:0 auto;background:var(--bg-card);padding:20px;border-radius:12px}.sticky-header{top:0;z-index:1001;padding-top:10px;text-align:center}h1{font-size:20px;margin-bottom:5px;padding:5px}.controls{display:flex;justify-content:center;gap:5px;margin-bottom:10px;flex-wrap:wrap}.canchi,.lunar-date,.solar-date{margin-bottom:5px;font-weight:700}button,select{padding:8px 12px;border-radius:6px;font-size:16px;font-weight:700;cursor:pointer;transition:.2s;touch-action:manipulation}select{border:2px solid #333;background-color:#fff}button,table.calendar th.sunday{background-color:var(--primary-color)}button{color:#fff;border:none;margin:2px}button:hover{background-color:#a01828;transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,.2)}button:active{transform:scale(.95);background-color:#8a1522}.calendar-wrapper{-webkit-overflow-scrolling:touch}table.calendar{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:6px;min-width:800px}table.calendar thead{top:var(--header-height);z-index:1000}table.calendar th{background-color:#2c3e50;color:#fff;padding:15px 8px;text-align:center;font-weight:700;font-size:22px;border-radius:8px}table.calendar td{background:#fafafa;border:2px solid var(--border-color);padding:12px 8px;vertical-align:top;border-radius:8px;text-align:center;transition:.2s}.solar-date{font-size:38px}.lunar-date,.sunday .solar-date{color:var(--primary-color)}.lunar-date{font-size:22px}.canchi{color:var(--secondary-color);font-size:18px}.event{color:#fff;font-size:16px;font-weight:700;background:var(--primary-color);padding:6px;border-radius:6px;margin-top:5px;display:block}.today{background-color:#fffbeb!important;border:4px solid orange!important;box-shadow:0 0 10px rgba(255,165,0,.5);scroll-margin-top:160px}.other-month{background-color:#eee;opacity:.5}.day-name{display:none}button:focus,select:focus{outline:3px solid var(--primary-color);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.today-label{color:red;font-weight:700}@media (max-width:870px){body{padding:0}.container{padding:0;border-radius:0}.sticky-header{padding:10px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.calendar-wrapper{padding:0 10px 10px}table.calendar,tbody,td,th,thead,tr{display:block;width:100%;min-width:auto}.other-month,thead{display:none}table.calendar td{margin-bottom:12px;border:1px solid #ddd;border-radius:10px;background:#fff;padding:15px;min-height:100px}.day-wrapper{display:grid;grid-template-columns:70px 60px 1fr;align-items:center;gap:10px;text-align:left}.day-name{display:block;font-weight:700;color:#555;font-size:16px}.solar-date{font-size:28px;margin-bottom:0}.lunar-row{border-left:2px solid #eee;padding-left:10px;display:flex;flex-direction:column}.lunar-date{font-size:18px}.canchi{font-size:16px}.is-sunday .day-name,.is-sunday .solar-date{color:var(--primary-color)}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}button:active,button:hover{transform:none}}@media (hover:hover){td:hover:not(.other-month){background:#f0f9ff;border-color:#60a5fa;transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.1)}}footer{text-align:center;margin-top:30px;color:#555;font-size:14px;padding:20px;font-weight:400}