.teconce-month-grid{width:100%;border-collapse:collapse}
.teconce-month-grid th,.teconce-month-grid td{border:1px solid #e5e7eb;vertical-align:top;padding:.5rem}
.teconce-month-grid td.is-empty{background:#fafafa}
.teconce-month-grid .day-num{font-weight:600;margin-bottom:.25rem}
.teconce-month-grid .badge{display:inline-block;font-size:12px;padding:.1rem .4rem;border-radius:3px;margin:.15rem .25rem .25rem 0}
.teconce-month-grid .badge.available{background:#e6f7ef;color:green;}
.teconce-month-grid .badge.booked{background:#fde8e8;color:red;}
.teconce-month-grid .tac-day{cursor:pointer}
.teconce-month-grid .tac-day:focus{outline:2px solid #2563eb;outline-offset:2px}

.tac-head{display:flex;align-items:center;gap:.75rem}
.tac-head .tac-prev,.tac-head .tac-next{text-decoration:none;font-size:18px}

.tac-modal{position:fixed;inset:0;display:none; z-index:999999;}
.tac-modal.is-open{display:block}
.tac-modal__overlay{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.tac-modal__dialog{position:relative;z-index:10;background:#fff;max-width:640px;margin:10vh auto;padding:1rem 1.25rem;border-radius:8px;box-shadow:0 20px 50px rgba(0,0,0,.2)}
.tac-modal__close{position:absolute;right:.5rem;top:.25rem;border:0;background:transparent;font-size:24px;cursor:pointer;line-height:1}
.tac-modal__title{margin:.5rem 0 1rem;font-weight:700}
.tac-slots{list-style:none;margin:0;padding:0}
.tac-item{padding:.4rem .25rem;border-bottom:1px dashed #eee}
.tac-item:last-child{border-bottom:0}
.tac-item.is-booked .tac-time{text-decoration:line-through;opacity:.85}
.tac-item .tac-meta{display:block;font-size:12px;opacity:.8;margin-top:.15rem}
.tac-group{padding:.35rem .25rem;background:#f8fafc;border:1px solid #eef2f7;margin:.35rem 0;font-size:13px}
body.tac-lock{overflow:hidden}
.artist-image .teconce-artist-calendar{
    margin-top:20px;
}
.tac-head{
    font-size:20px;
}
