
.pw-calendar-app{
    --pw-free:#e4f3df;
    --pw-few:#fff0b7;
    --pw-full:#f7d2d2;
    --pw-rest:#e2e3e5;
    --pw-none:#dce7f3;
    --pw-past:#f1f1f1;
    width:100%;
    max-width:900px;
    margin:0 auto;
    font-family:inherit;
    color:#2f3133;
}
.pw-calendar-nav{
    display:grid;
    grid-template-columns:48px 1fr 48px;
    gap:12px;
    align-items:center;
    margin-bottom:14px;
}
.pw-nav-title{
    text-align:center;
    font-weight:800;
    font-size:clamp(22px,4vw,32px);
}
.pw-nav-button{
    appearance:none !important;
    -webkit-appearance:none !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    border:2px solid #555 !important;
    background:#f4f4f4 !important;
    color:#222 !important;
    -webkit-text-fill-color:#222 !important;
    border-radius:12px !important;
    width:48px !important;
    min-width:48px !important;
    height:48px !important;
    padding:0 !important;
    margin:0 !important;
    font-family:Arial,sans-serif !important;
    font-size:34px !important;
    font-weight:800 !important;
    line-height:1 !important;
    text-shadow:none !important;
    box-shadow:0 2px 5px rgba(0,0,0,.10) !important;
    cursor:pointer !important;
    opacity:1 !important;
}
.pw-nav-button:hover,
.pw-nav-button:focus{
    background:#e8e8e8 !important;
    color:#000 !important;
    -webkit-text-fill-color:#000 !important;
    border-color:#222 !important;
    outline:2px solid rgba(0,0,0,.12) !important;
    outline-offset:2px !important;
}
.pw-calendar-months{
    display:grid;
    gap:28px;
}
.pw-calendar-month h3{
    text-align:center;
    font-size:clamp(20px,3vw,28px);
    margin:0 0 14px;
}
.pw-weekdays,.pw-calendar-grid{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:7px;
}
.pw-weekdays{
    margin-bottom:7px;
    text-align:center;
    font-size:14px;
    font-weight:700;
    color:#555;
}
.pw-day,.pw-empty{aspect-ratio:.9;min-width:0}
.pw-day{
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(0,0,0,.09);
    border-radius:10px;
    font-size:clamp(19px,4.6vw,34px);
    font-weight:800;
    line-height:1;
    box-sizing:border-box;
}
.pw-free{background:var(--pw-free)}
.pw-few{background:var(--pw-few)}
.pw-full{background:var(--pw-full)}
.pw-rest{background:var(--pw-rest)}
.pw-none{background:var(--pw-none)}
.pw-past{
    background:var(--pw-past);
    color:#aaa;
    text-decoration:line-through;
}
.pw-legend{
    display:flex;
    flex-wrap:wrap;
    gap:14px 22px;
    margin-top:20px;
    font-size:clamp(14px,3.5vw,18px);
    line-height:1.35;
}
.pw-legend span{
    display:inline-flex;
    align-items:center;
    gap:8px;
}
.pw-dot{
    width:22px;
    height:22px;
    border-radius:6px;
    border:1px solid rgba(0,0,0,.12);
    display:inline-block;
    flex:0 0 auto;
}
@media(max-width:600px){
    .pw-weekdays,.pw-calendar-grid{gap:6px}
    .pw-day{border-radius:8px}
    .pw-legend{gap:12px 16px}
}
