.tesb { max-width: 720px; }
.tesb-wrap { display: grid; gap: 1rem; }
.tesb-intro { margin: 0 0 .5rem; }
.tesb-cal-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: .5rem; }
.tesb-cal-head button { border: 1px solid #ccc; background: #fff; border-radius: 4px; padding: .2rem .6rem; cursor: pointer; }
.tesb-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; }
.tesb-dow { font-size: .75rem; color: #888; padding: 2px 0; }
.tesb-day { padding: .5rem 0; border-radius: 4px; }
.tesb-off { color: #ccc; }
.tesb-avail { background: #e7f3ff; color: #0d6efd; cursor: pointer; font-weight: 600; }
.tesb-avail:hover { background: #cfe6ff; }
.tesb-sel { background: #0d6efd; color: #fff; }
.tesb-slot-list { display: flex; flex-wrap: wrap; gap: .4rem; }
.tesb-slot { border: 1px solid #0d6efd; background: #fff; color: #0d6efd; border-radius: 4px; padding: .35rem .7rem; cursor: pointer; }
.tesb-slot:hover { background: #e7f3ff; }
.tesb-slot-sel { background: #0d6efd; color: #fff; }
.tesb-form { display: grid; gap: .6rem; border-top: 1px solid #eee; padding-top: 1rem; }
.tesb-form label { display: grid; gap: .2rem; font-size: .9rem; }
.tesb-form input, .tesb-form select { padding: .5rem; border: 1px solid #ccc; border-radius: 4px; font: inherit; }
.tesb-submit { background: #0d6efd; color: #fff; border: 0; border-radius: 4px; padding: .6rem 1rem; cursor: pointer; font-weight: 600; }
.tesb-submit:disabled { opacity: .6; cursor: default; }
.tesb-hp { position: absolute; left: -9999px; width: 1px; height: 1px; }
.tesb-muted { color: #888; }
.tesb-error { color: #c00; }
.tesb-loading { color: #888; }
.tesb-done { padding: 1.5rem; background: #e7f7ec; border-radius: 8px; }
