.tv-calendar{
background:#cdd7cc;
padding:18px;
border-radius:18px;
max-width:100%;
box-sizing:border-box;
box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

.tv-calendar .wrap-grid{
    background:#fff;
    padding: 7px;
    border-radius:12px;
    box-sizing:border-box;
}

/* header */

.tv-header{
font-size:20px;
font-weight:600;
margin-bottom:15px;
}

/* weekday header */

.tv-grid-header{
display:grid;
grid-template-columns:repeat(7,1fr);
text-align:center;
font-weight:bold;
font-size:14px;
margin-bottom:8px;
}

/* calendar grid */

#tv-calendar-grid{
display:grid;
grid-template-columns:repeat(7,1fr);
gap:8px;
}

/* day cell */

.tv-day{
background:#e8ebe8;
border-radius:12px;
padding:8px;
text-align:center;
cursor:pointer;
transition:all .15s ease;
}

.tv-day:hover{
background:#dde4dc;
}

.tv-day.today{
background:#b7c7b8;
}

/* solar date */

.solar{
font-size:18px;
font-weight:bold;
}

/* lunar date */

.lunar{
font-size:11px;
margin-top:3px;
color:#555;
}
.lunar.special-lunar-day {color: red;}

/* legend */
.tv-legend{
    display:flex;
    gap:25px;
    margin-top:18px;
    font-size:14px;
}

/* dots */
.dot{
    width:7px;
    height:7px;
    border-radius:50%;
    display:inline-block;
    margin-right:6px;
}

.dot.good{
    background:#ff6b6b;
}

.dot.bad{
    background:#511310 !important;
    color: #fff !important;
}

/* day detail */
.tv-day.active{
    background:#ffe9c6;
}

/* Extend day detail */
.tv-day-detail{
    display:flex;
    justify-content:space-between;
    background:linear-gradient(135deg,#f6f6f6,#8cc2ee);
    border-radius:18px;
    padding:30px;
    margin-top:15px;
    box-shadow:0 10px 25px rgba(0,0,0,0.08);
    overflow:hidden;

    max-height:0;
    opacity:0;
    transform:translateY(-10px);
    transition:all .35s ease;
}

.tv-day-detail.show{
    max-height:500px;
    opacity:1;
    transform:translateY(0);
}

.day-detail-left{
    text-align:center;
    position:relative;
}

.day-month{
    font-size:22px;
    color:#333;
    margin-bottom:15px;
}

.day-number{
    font-size:110px;
    font-weight:bold;
    color:#ff6a63;
    line-height:1;
}

.day-week{
    font-size:30px;
    font-weight:bold;
    margin-top:10px;
}

.day-badge{
    position:absolute;
    top:70px;
    right:-30px;
    background:#eee;
    padding:8px 18px;
    border-radius:12px;
    transform:rotate(-35deg);
    font-weight:bold;
    color:#555;
}
.day-badge.good, .day-badge.very-good {
  color: red;
  border: 1px solid red;
  background-color: #f6f6ae;
}

.day-badge.bad, .day-badge.very-bad {
  color: #626262;
  border: 1px solid #626262;
}

.tv-hours{
margin-top:20px;
border-radius:10px;
overflow:hidden;
background:#fff;
}

.tv-hours-title{
background:#f26c63;
color:#fff;
padding:12px 15px;
font-weight:600;
}

.tv-hour-row{
display:flex;
justify-content:space-between;
padding:14px;
border-bottom:1px solid #eee;
}

.tv-hour-left{
display:flex;
align-items:center;
gap:12px;
}

.tv-hour-icon{
font-size:28px;
}

.tv-hour-name{
min-width:90px;
}

.tv-hour-time{
font-size:13px;
color:#777;
}

.tv-hour-badge{
padding:4px 12px;
border-radius:14px;
font-size:12px;
color:#fff;
}

.tv-hour-badge.very_good{
background:#27ae60;
}

.tv-hour-badge.good{
background:#2ecc71;
}

.tv-hour-badge.bad{
background:#555;
}

.tv-hour-right{
display: flex;
max-width:60%;
color:#444;
}

.day-detail-right{
    min-width:300px;
}

.lunar-date{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:15px;
}

.lunar-number{
    font-size:48px;
    font-weight:bold;
    color:#ff884d;
}

.lunar-text{
    font-size:18px;
}

.lunar-info{
    list-style:none;
    padding:0;
    margin:0;
    text-align: left;
}

.lunar-info li{
    margin-bottom:6px;
    position:relative;
    padding-left:16px;
}

.lunar-info li:before{
    content:"•";
    position:absolute;
    left:0;
    color:#ff6a63;
}

/* tablet */
@media (max-width:900px){
    .tv-header{
        font-size:18px;
    }
    .solar{
        font-size:16px;
    }
}

/* mobile */

@media (max-width:600px){
    .tv-calendar{
        padding:12px;
    }

    .tv-grid-header{
        font-size:12px;
    }

    #tv-calendar-grid{
        gap:5px;
    }

    .tv-day{
        padding:6px;
        border-radius:8px;
    }

    .solar{
        font-size:14px;
    }

    .lunar{
        font-size:10px;
    }

    .tv-legend{
        font-size:12px;
        gap:15px;
    }

    .tv-day-detail{
        flex-direction:column;
        text-align:center;
    }

    .day-badge{
        right:10px;
        top:60px;
    }

    .day-number{
        font-size:90px;
    }
}

/* Viec nen lam - khong nen lam */
/* container */
.lsv-goodbad{
    margin-top:20px;
    border-radius:10px;
    overflow:hidden;
    background:#f3f3f3;
}

/* header */
.lsv-goodbad-header{
    background:#2b63aa;
    color:#fff;
    font-weight:600;
    padding:12px 16px;
    font-size:18px;
}

/* body */
.lsv-goodbad-body{
    padding:18px;
}

/* item */
.lsv-item{
    display:flex;
    align-items:flex-start;
    gap:12px;
    margin-bottom:18px;
}

/* bar */
.lsv-bar{
    width:6px;
    border-radius:4px;
    min-height:28px;
}

/* good */
.lsv-item.good .lsv-bar{
    background:#ff7a73;
}

/* bad */
.lsv-item.bad .lsv-bar{
    background:#b8c4cf;
}
/* text */
.lsv-content{
    font-size:16px;
    text-align: left;
    width: 95%;
}

.lsv-content .label{
    font-weight:600;
    color:#2b63aa;
}

.lsv-item.bad .label{
    color:#333;
}
.lsv-item.bad .text{
    color:#595959;
}

.lsv-content .text{
    color:#ff884d;
}

/* mobile */
@media (max-width:600px){
    .lsv-goodbad-header{
        font-size:16px;
    }
    .lsv-content{
        font-size:15px;
    }
    .lsv-item{
        gap:10px;
    }

}


/* Gio trong ngay */
.tv-hour-click{
cursor:pointer;
font-weight:600;
color:#ff884d;
}

.tv-hour-popup{
position:fixed;
top:0;
left:0;
right:0;
bottom:0;
background:rgba(0,0,0,0.5);
display:none;
align-items:center;
justify-content:center;
z-index:9999;
}

.tv-hour-popup-content{
background:#fff;
padding:20px;
border-radius:10px;
max-width:300px;
position:relative;
}

.tv-hour-popup-close{
position:absolute;
top:8px;
right:12px;
cursor:pointer;
font-size:20px;
}
