html, body {
    margin: 0;
    padding: 0;
    background: #ffffff !important;
/*     font-family: system-ui, -apple-system, sans-serif; */
    color: #111;
}
#wrapper,
#main,
.site,
.site-content {
    background: #ffffff !important;
}

.calendar-wrapper{max-width:1200px;margin:auto}

.vn-time{
    background:#f3f4f6;
    padding:12px;
    text-align:center;
    border-radius:12px;
    margin-bottom:20px;
}

.calendar-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:20px;
}
.nav-left,
.nav-right{
    width:25%;
}
.nav-center{
    width:50%;
    text-align:center;
}
.calendar-header h2{
    margin:0;
    font-size:30px;
    font-weight:700;
}	
.nav-left{ text-align:left; }
.nav-right{ text-align:right; }


.calendar-header span{color:#2563eb}

.next-month{
    background:#e5e7eb;
    padding:8px 14px;
    border-radius:20px;
    text-decoration:none;
}

.legend{margin:10px 0 20px;font-size:14px}

.dot{
    display:inline-block;
    width:8px;height:8px;
    border-radius:50%;
    margin:0 5px 0 15px;
}

.dot.red{background:#e11d48}
.dot.black{background:#333}

.weekdays{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:12px;
    margin-bottom:10px;
}

.weekdays div{
    background:#f3f4f6;
    text-align:center;
    padding:10px;
    border-radius:10px;
    font-weight:600;
}

.weekdays .cn{color:#e11d48}

.calendar-grid{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:12px;
}

.day{
    background:#cbd5e1;
    border-radius:16px;
    padding:12px;
    min-height:130px;
    position:relative;
    cursor:pointer;
}

.day.sunday .solar{color:#e11d48}

.day.today{
    box-shadow:0 0 0 3px #3b82f6 inset;
}

.day.empty{background:transparent;pointer-events:none}

.solar{
    font-size:20px;
    font-weight:700;
}

.lunar{
    position:absolute;
    bottom:10px;
    right:12px;
    font-size:13px;
}

.event{
    font-size:13px;
    margin-top:8px;
    color:#1d4ed8;
}

.bottom-dot{
    position:absolute;
    bottom:10px;
    left:12px;
    width:8px;height:8px;
    border-radius:50%;
}

.bottom-dot.red{background:#e11d48}
.bottom-dot.black{background:#333}


.popup{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.5);
    display:none;
    justify-content:center;
    align-items:center;
}

.popup.active{display:flex}

.popup-inner{
    background:#fff;
    width:500px;
    max-height:80vh;
    overflow:auto;
    padding:25px;
    border-radius:16px;
}

.popup-inner button{
    margin-top:20px;
    padding:10px 20px;
    border-radius:10px;
    border:1px solid #ccc;
    cursor:pointer;
}
.nav-month{
    background:#e5e7eb;
    padding:8px 14px;
    border-radius:20px;
    text-decoration:none;
    font-size:14px;
    display:inline-block;
}

.nav-month:hover{
    background:#d1d5db;
}
.popup-inner h3{
    margin-top:10px;
    font-size:22px;
    font-weight:700;
}

.popup-inner .popup-event{
    font-style:italic;
    color:#2563eb;
    margin-bottom:10px;
}

.popup-inner .week{
    font-style:italic;
    opacity:.7;
    margin-bottom:10px;
}

.gio-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    margin:15px 0;
}

.gio-grid div{
    background:#f3f4f6;
    padding:8px;
    text-align:center;
    border-radius:8px;
}

.popup-inner h4{
    margin-top:20px;
    font-size:18px;
}

.popup-inner button{
    margin-top:20px;
    padding:10px 20px;
    border-radius:10px;
    border:1px solid #ccc;
    cursor:pointer;
    width:100%;
}
