:root {
  --tk24-ink: #18212f;
  --tk24-muted: #647084;
  --tk24-border: #dce3eb;
  --tk24-surface: #fff;
  --tk24-soft: #f5f7fb;
  --tk24-primary: #2458d3;
  --tk24-primary-dark: #1744aa;
  --tk24-accent: #16a085;
  --tk24-danger: #b42318;
  --tk24-shadow: 0 12px 34px rgb(24 33 47 / 8%);
  --tk24-radius: 16px;
}

.tk24-provider-grid { align-items: stretch; }
.tk24-provider-card { display: flex; flex-direction: column; gap: .85rem; }
.tk24-provider-card .tk24-btn { margin-top: auto; align-self: flex-start; }
.tk24-provider-logo { width: 5rem; height: 5rem; object-fit: contain; border-radius: .75rem; background: #fff; border: 1px solid var(--tk24-border, #dfe5ec); }
.tk24-provider-logo--large { width: 8rem; height: 8rem; }
.tk24-provider-hero__actions { display: flex; flex-direction: column; align-items: flex-end; gap: .75rem; }
.tk24-favourite-form { margin: 0; }
.tk24-btn--favourite { background: #fff0f3; border-color: #f4adbb; color: #a61b3b; }
.tk24-btn--favourite:hover { background: #ffe3e9; color: #82152e; }
.tk24-favourites-heading { margin-top: 2.25rem; }
.tk24-favourite-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1rem; margin-bottom: 2rem; }
.tk24-favourite-card { display: flex; flex-direction: column; gap: 1rem; }
.tk24-favourite-card__identity { display: flex; align-items: center; gap: .9rem; }
.tk24-favourite-card__identity h3, .tk24-favourite-card__identity p { margin: 0; }
.tk24-favourite-card__identity p { color: #64748b; margin-top: .25rem; font-size: .92rem; }
.tk24-favourite-card__footer { border-top: 1px solid var(--tk24-border, #dfe5ec); padding-top: .8rem; display: flex; align-items: center; gap: .65rem; flex-wrap: wrap; color: #64748b; font-size: .9rem; }
.tk24-favourite-card__footer .tk24-btn { margin-left: auto; }
.tk24-favourites-empty { display: flex; align-items: center; gap: .7rem; padding: 1rem 1.2rem; margin-bottom: 2rem; border: 1px dashed var(--tk24-border, #dfe5ec); border-radius: .85rem; color: #64748b; background: #f8fafc; }
.tk24-favourites-empty span { font-size: 1.5rem; color: #be3455; }
.tk24-favourites-empty p { margin: 0; }
.tk24-sharing { margin: 1rem 0 1.5rem; }
.tk24-sharing .tk24-section-heading { margin-top: 0; }
.tk24-sharing-add { display: grid; grid-template-columns: minmax(14rem, 1fr) minmax(10rem, .45fr) auto; gap: .8rem; align-items: end; padding: 1rem; border-radius: .8rem; background: #f4f8fb; }
.tk24-sharing-add label { display: grid; gap: .35rem; font-weight: 700; color: #31485b; }
.tk24-sharing-add input, .tk24-sharing-add select, .tk24-share-row-form select { min-height: 2.75rem; padding: .6rem .7rem; border: 1px solid #cfd9e2; border-radius: .55rem; background: #fff; }
.tk24-sharing-table-wrap { margin-top: 1rem; }
.tk24-sharing-table { width: 100%; border-collapse: collapse; }
.tk24-sharing-table th { padding: .7rem .8rem; text-align: left; color: #fff; background: #235e7e; font-size: .75rem; text-transform: uppercase; }
.tk24-sharing-table td { padding: .8rem; border-bottom: 1px solid #e1e8ee; vertical-align: middle; }
.tk24-sharing-table td strong, .tk24-sharing-table td small { display: block; }
.tk24-sharing-table td small { margin-top: .2rem; color: #718096; }
.tk24-share-row-form { display: flex; align-items: center; gap: .5rem; }
.tk24-sharing-empty, .tk24-shared-empty, .tk24-shared-notice { display: flex; align-items: center; gap: .75rem; padding: 1rem; border: 1px dashed #cbd8e2; border-radius: .8rem; color: #63788a; background: #f8fafc; }
.tk24-sharing-empty { margin-top: 1rem; }
.tk24-sharing-empty p, .tk24-shared-empty p, .tk24-shared-notice p { margin: 0; }
.tk24-shared-notice { margin: 1rem 0; border-style: solid; background: #eef7fb; color: #29495e; }
.tk24-shared-heading { margin-top: 2.25rem; }
.tk24-shared-empty { margin-bottom: 2rem; }
.tk24-share-role { padding: .3rem .6rem; border-radius: 999px; font-size: .75rem; font-weight: 800; }
.tk24-share-role--viewer { color: #315a74; background: #e6f0f6; }
.tk24-share-role--editor { color: #176044; background: #e4f7ef; }
.tk24-share-status { display: inline-flex; margin-top: .35rem; padding: .2rem .55rem; border-radius: 999px; color: #815d12; background: #fff2c9; font-size: .72rem; font-weight: 800; }
.tk24-invite-page { display: grid; min-height: 65vh; place-items: center; }
.tk24-invite-card { width: min(100%, 36rem); padding: clamp(1.5rem, 4vw, 3rem); text-align: center; }
.tk24-invite-icon { display: grid; width: 3.5rem; height: 3.5rem; margin: 0 auto 1rem; border-radius: 50%; place-items: center; color: #fff; background: #235e7e; font-size: 1.7rem; font-weight: 800; }
.tk24-invite-icon--error { background: #a93636; }
.tk24-invite-detail { display: flex; justify-content: space-between; gap: 1rem; margin: 1.25rem 0; padding: .85rem 1rem; border-radius: .7rem; background: #f4f8fb; text-align: left; }
.tk24-invite-actions { justify-content: center; }
@media (max-width: 760px) { .tk24-sharing-add { grid-template-columns: 1fr; }.tk24-sharing-add .tk24-btn { width: 100%; }.tk24-share-row-form { align-items: stretch; flex-direction: column; }.tk24-sharing-table { min-width: 42rem; } }
.tk24-provider-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(16rem, 1fr); gap: 1.25rem; margin-top: 1.25rem; }
.tk24-provider-contact { display: grid; gap: .8rem; margin: 1.25rem 0 0; }
.tk24-provider-contact div { display: grid; grid-template-columns: 8rem 1fr; gap: 1rem; }
.tk24-provider-contact dt { font-weight: 700; }
.tk24-provider-summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1.25rem 0; }
.tk24-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }

@media (max-width: 760px) {
  .tk24-provider-layout, .tk24-form-grid { grid-template-columns: 1fr; }
  .tk24-provider-summary { align-items: flex-start; flex-direction: column; }
  .tk24-provider-contact div { grid-template-columns: 1fr; gap: .2rem; }
}

.tk24-shell,
.tk24-shell * {
  box-sizing: border-box;
}

.tk24-shell {
  width: min(1180px, calc(100% - 2rem));
  margin: 2rem auto 4rem;
  color: var(--tk24-ink);
}

.tk24-shell a {
  text-underline-offset: .18em;
}

.tk24-hero,
.tk24-calendar-header,
.tk24-form-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
  padding: clamp(1.5rem, 4vw, 3.25rem);
  margin-block-end: 1.5rem;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 88% 12%, rgb(255 255 255 / 18%), transparent 24rem),
    linear-gradient(135deg, #183b8f 0%, #2458d3 58%, #287bb8 100%);
  border-radius: 24px;
  box-shadow: var(--tk24-shadow);
}

.tk24-hero--compact {
  padding-block: clamp(1.4rem, 3vw, 2.35rem);
}

.tk24-hero h1,
.tk24-calendar-header h1,
.tk24-form-header h1 {
  max-width: 19ch;
  margin: 0 0 .55rem;
  color: inherit;
  font-size: clamp(2rem, 4vw, 3.35rem);
  font-weight: 760;
  letter-spacing: -.035em;
  line-height: 1.05;
}

.tk24-hero p,
.tk24-calendar-header p,
.tk24-form-header p {
  max-width: 66ch;
  margin: 0;
  color: rgb(255 255 255 / 84%);
}

.tk24-eyebrow {
  margin-block-end: .7rem !important;
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.tk24-card {
  padding: 1.35rem;
  background: var(--tk24-surface);
  border: 1px solid var(--tk24-border);
  border-radius: var(--tk24-radius);
  box-shadow: 0 5px 18px rgb(24 33 47 / 4%);
}

.tk24-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  min-height: 2.75rem;
  padding: .65rem 1rem;
  color: var(--tk24-ink);
  font: inherit;
  font-weight: 720;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  cursor: pointer;
  background: #fff;
  border: 1px solid var(--tk24-border);
  border-radius: 10px;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, background .16s ease;
}

.tk24-btn:hover {
  color: var(--tk24-primary);
  border-color: #b5c5e9;
  box-shadow: 0 6px 18px rgb(36 88 211 / 12%);
  transform: translateY(-1px);
}

.tk24-btn:focus-visible,
.tk24-calendar-tool:focus-visible,
.tk24-event:focus-visible,
.tk24-agenda-event:focus-visible,
.tk24-day-cell__add:focus-visible {
  outline: 3px solid rgb(36 88 211 / 28%);
  outline-offset: 2px;
}

.tk24-btn--primary {
  color: #fff;
  background: var(--tk24-primary);
  border-color: var(--tk24-primary);
}

.tk24-btn--primary:hover {
  color: #fff;
  background: var(--tk24-primary-dark);
  border-color: var(--tk24-primary-dark);
}

.tk24-btn--secondary {
  color: var(--tk24-primary);
  background: #edf3ff;
  border-color: #cddcff;
}

.tk24-btn--ghost {
  background: transparent;
}

.tk24-hero .tk24-btn--ghost,
.tk24-calendar-header .tk24-btn--secondary {
  color: #fff;
  background: rgb(255 255 255 / 12%);
  border-color: rgb(255 255 255 / 38%);
}

.tk24-hero .tk24-btn--ghost:hover,
.tk24-calendar-header .tk24-btn--secondary:hover {
  color: #fff;
  background: rgb(255 255 255 / 20%);
}

.tk24-btn--danger {
  color: #fff;
  background: var(--tk24-danger);
  border-color: var(--tk24-danger);
}

.tk24-btn--danger:hover {
  color: #fff;
  background: #8f1b13;
  border-color: #8f1b13;
}

.tk24-btn--small {
  min-height: 2.25rem;
  padding: .45rem .7rem;
  font-size: .88rem;
}

.tk24-actions,
.tk24-card__actions,
.tk24-form-actions,
.tk24-dialog__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  align-items: center;
}

.tk24-account-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: 1rem;
  align-items: center;
  padding: 1rem 1.25rem;
  margin-block-end: 2rem;
  background: var(--tk24-soft);
  border: 1px solid var(--tk24-border);
  border-radius: 14px;
}

.tk24-account-strip > div {
  display: grid;
  gap: .12rem;
}

.tk24-account-strip span,
.tk24-code span,
.tk24-sharebar span {
  color: var(--tk24-muted);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.tk24-tier {
  color: var(--tk24-primary);
  text-transform: capitalize;
}

.tk24-tier--paid {
  color: #8a5a00;
}

.tk24-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin-block-end: 1rem;
}

.tk24-section-heading h2,
.tk24-section-heading p {
  margin: 0;
}

.tk24-section-heading p {
  color: var(--tk24-muted);
}

.tk24-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 275px), 1fr));
  gap: 1rem;
}

.tk24-calendar-card {
  display: flex;
  flex-direction: column;
  gap: .85rem;
  min-height: 245px;
}

.tk24-calendar-card__top,
.tk24-heading-row {
  display: flex;
  align-items: center;
  gap: .7rem;
}

.tk24-calendar-card__top {
  justify-content: space-between;
}

.tk24-calendar-mark {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  color: #fff;
  font-size: 1.15rem;
  font-weight: 800;
  place-items: center;
  background: linear-gradient(145deg, var(--tk24-primary), #48a4cb);
  border-radius: 12px;
}

.tk24-calendar-card h3 {
  margin: 0;
  font-size: 1.28rem;
}

.tk24-calendar-card h3 a {
  color: inherit;
  text-decoration: none;
}

.tk24-calendar-card .tk24-card__actions {
  margin-block-start: auto;
}

.tk24-badge {
  display: inline-flex;
  width: fit-content;
  padding: .28rem .52rem;
  color: #3a4658;
  font-size: .72rem;
  font-weight: 760;
  line-height: 1;
  background: #edf0f5;
  border-radius: 999px;
}

.tk24-badge--public { color: #05603a; background: #dcfce9; }
.tk24-badge--unlisted { color: #744b00; background: #fff1c2; }
.tk24-badge--private { color: #4a5568; background: #e8ecf2; }

.tk24-code {
  display: grid;
  gap: .2rem;
}

.tk24-code code,
.tk24-sharebar code {
  color: var(--tk24-primary-dark);
  font-size: .92rem;
  font-weight: 760;
  letter-spacing: .08em;
}

.tk24-muted {
  color: var(--tk24-muted) !important;
}

.tk24-empty {
  display: grid;
  max-width: 720px;
  padding: clamp(2rem, 6vw, 4rem);
  margin-inline: auto;
  text-align: center;
  place-items: center;
}

.tk24-empty h2,
.tk24-empty h3 {
  margin-block: .5rem;
}

.tk24-empty__icon {
  display: grid;
  width: 4rem;
  height: 4rem;
  color: #fff;
  font-size: 1.3rem;
  font-weight: 850;
  place-items: center;
  background: var(--tk24-primary);
  border-radius: 20px;
  transform: rotate(-5deg);
}

.tk24-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-block-end: 1rem;
  color: var(--tk24-muted);
  font-size: .9rem;
}

.tk24-calendar-header {
  margin-block-end: 1rem;
  padding-block: 1.8rem;
}

.tk24-calendar-header h1 {
  margin: 0;
  font-size: clamp(1.8rem, 3vw, 2.75rem);
}

.tk24-calendar-description {
  max-width: 70ch;
  margin-block: .7rem;
  color: rgb(255 255 255 / 88%);
}

.tk24-calendar-header .tk24-badge {
  color: #fff;
  background: rgb(255 255 255 / 18%);
  border: 1px solid rgb(255 255 255 / 26%);
}

.tk24-sharebar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .75rem 1rem;
  margin-block-end: 1rem;
  background: #f6f8fc;
  border: 1px solid var(--tk24-border);
  border-radius: 12px;
}

.tk24-sharebar > div {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  align-items: baseline;
}

.tk24-calendar-app {
  min-height: 540px;
  overflow: hidden;
  background: var(--tk24-surface);
  border: 1px solid var(--tk24-border);
  border-radius: var(--tk24-radius);
  box-shadow: var(--tk24-shadow);
}

.tk24-calendar-toolbar {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 1rem;
  align-items: center;
  padding: 1rem;
  border-block-end: 1px solid var(--tk24-border);
}

.tk24-calendar-toolbar__navigation,
.tk24-view-switcher {
  display: flex;
  gap: .35rem;
}

.tk24-view-switcher {
  justify-content: flex-end;
}

.tk24-calendar-toolbar__title {
  margin: 0;
  font-size: 1.25rem;
  text-align: center;
}

.tk24-calendar-tool {
  min-width: 2.4rem;
  min-height: 2.4rem;
  padding: .4rem .65rem;
  color: var(--tk24-ink);
  font: inherit;
  font-size: .84rem;
  font-weight: 720;
  cursor: pointer;
  background: #fff;
  border: 1px solid var(--tk24-border);
  border-radius: 8px;
}

.tk24-calendar-tool:hover,
.tk24-calendar-tool.is-active {
  color: var(--tk24-primary);
  background: #edf3ff;
  border-color: #c8d8fa;
}

.tk24-month__weekdays,
.tk24-month__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.tk24-month__weekdays {
  color: var(--tk24-muted);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-align: center;
  text-transform: uppercase;
  background: var(--tk24-soft);
  border-block-end: 1px solid var(--tk24-border);
}

.tk24-month__weekdays > div {
  padding: .65rem .35rem;
}

.tk24-day-cell {
  min-width: 0;
  min-height: 118px;
  padding: .38rem;
  border-inline-end: 1px solid var(--tk24-border);
  border-block-end: 1px solid var(--tk24-border);
  transition: background .15s ease;
}

.tk24-day-cell:nth-child(7n) {
  border-inline-end: 0;
}

.tk24-day-cell.is-outside {
  background: #fafbfc;
}

.tk24-day-cell.is-outside .tk24-day-cell__heading {
  opacity: .48;
}

.tk24-day-cell.is-drop-target,
.tk24-week__day.is-drop-target,
.tk24-agenda-day.is-drop-target {
  background: #e8f2ff;
  box-shadow: inset 0 0 0 2px var(--tk24-primary);
}

.tk24-day-cell__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 1.9rem;
  margin-block-end: .25rem;
}

.tk24-day-cell__heading time {
  display: grid;
  width: 1.7rem;
  height: 1.7rem;
  font-size: .84rem;
  font-weight: 720;
  place-items: center;
  border-radius: 50%;
}

.tk24-day-cell__heading time.is-today,
.tk24-week h3.is-today {
  color: #fff;
  background: var(--tk24-primary);
}

.tk24-day-cell__add {
  display: grid;
  width: 1.65rem;
  height: 1.65rem;
  color: var(--tk24-muted);
  font-size: 1rem;
  text-decoration: none;
  place-items: center;
  border-radius: 50%;
}

.tk24-day-cell__add:hover {
  color: var(--tk24-primary);
  background: #edf3ff;
}

.tk24-day-cell__events {
  display: grid;
  gap: .2rem;
}

.tk24-event {
  width: 100%;
  min-width: 0;
  padding: .32rem .42rem;
  overflow: hidden;
  color: #173a84;
  font: inherit;
  font-size: .73rem;
  font-weight: 680;
  line-height: 1.25;
  text-align: start;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
  background: #e9f0ff;
  border: 0;
  border-inline-start: 3px solid #3f70de;
  border-radius: 5px;
}

.tk24-event:hover {
  filter: brightness(.96);
}

.tk24-event.is-dragging {
  opacity: .45;
}

.tk24-event--busy { color: #7b2c19; background: #ffede7; border-color: #d05a39; }
.tk24-event--public { color: #05603a; background: #e4f8ed; border-color: #19a268; }
.tk24-event--availability { color: #5a3d00; background: #fff4cf; border-color: #dfa818; }

.tk24-week {
  display: grid;
  grid-template-columns: repeat(7, minmax(150px, 1fr));
  min-height: 460px;
  overflow-x: auto;
}

.tk24-week__day {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  min-height: 440px;
  padding: .7rem;
  border-inline-end: 1px solid var(--tk24-border);
}

.tk24-week__day:last-child {
  border-inline-end: 0;
}

.tk24-week__day h3 {
  margin: 0 0 .25rem;
  padding: .5rem;
  font-size: .85rem;
  text-align: center;
  border-radius: 8px;
}

.tk24-agenda-day,
.tk24-list-view {
  padding: 1rem;
}

.tk24-list-view__date {
  padding-block: 1.1rem .5rem;
  margin: 0;
  color: var(--tk24-muted);
  font-size: .86rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  border-block-end: 1px solid var(--tk24-border);
}

.tk24-agenda-event {
  display: grid;
  grid-template-columns: minmax(8rem, .32fr) 1fr;
  width: 100%;
  padding: .85rem 1rem;
  color: var(--tk24-ink);
  font: inherit;
  text-align: start;
  cursor: pointer;
  background: #fff;
  border: 0;
  border-block-end: 1px solid var(--tk24-border);
  border-inline-start: 4px solid #3f70de;
}

.tk24-agenda-event:hover {
  background: var(--tk24-soft);
}

.tk24-agenda-event__time {
  color: var(--tk24-muted);
  font-size: .86rem;
}

.tk24-agenda-event__content {
  display: grid;
  gap: .2rem;
}

.tk24-agenda-event__content small {
  color: var(--tk24-muted);
}

.tk24-calendar-loading,
.tk24-calendar-empty,
.tk24-calendar-error {
  display: grid;
  gap: 1rem;
  min-height: 430px;
  padding: 2rem;
  color: var(--tk24-muted);
  text-align: center;
  place-content: center;
  place-items: center;
}

.tk24-dialog {
  width: min(560px, calc(100% - 2rem));
  padding: 1.5rem;
  color: var(--tk24-ink);
  background: #fff;
  border: 0;
  border-radius: 16px;
  box-shadow: 0 25px 80px rgb(0 0 0 / 24%);
}

.tk24-dialog::backdrop {
  background: rgb(12 20 33 / 60%);
  backdrop-filter: blur(3px);
}

.tk24-dialog h2 {
  padding-inline-end: 2rem;
  margin-block: 0 .75rem;
}

.tk24-dialog__close {
  position: absolute;
  inset-block-start: .7rem;
  inset-inline-end: .7rem;
}

.tk24-dialog__close button {
  display: grid;
  width: 2rem;
  height: 2rem;
  padding: 0;
  font-size: 1.35rem;
  cursor: pointer;
  background: var(--tk24-soft);
  border: 0;
  border-radius: 50%;
  place-items: center;
}

.tk24-dialog__when {
  color: var(--tk24-primary-dark);
  font-weight: 700;
}

.tk24-dialog__location,
.tk24-dialog__description {
  white-space: pre-line;
}

.tk24-dialog__actions {
  padding-block-start: 1rem;
  margin-block-start: 1rem;
  border-block-start: 1px solid var(--tk24-border);
}

.tk24-form-page {
  max-width: 900px;
}

.tk24-form-header {
  padding: 1.75rem 2rem;
}

.tk24-form-header h1 {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
}

.tk24-form {
  padding: clamp(1.2rem, 4vw, 2.25rem);
}

.tk24-form .control-group {
  display: grid;
  grid-template-columns: minmax(150px, .38fr) 1fr;
  gap: 1rem;
  align-items: start;
  padding-block: .8rem;
  margin: 0;
  border-block-end: 1px solid #edf0f4;
}

.tk24-form .control-label label {
  padding-block-start: .65rem;
  color: var(--tk24-ink);
  font-weight: 720;
}

.tk24-form .controls input[type="text"],
.tk24-form .controls input[type="url"],
.tk24-form .controls input[type="number"],
.tk24-form .controls textarea,
.tk24-form .controls select,
.tk24-form .controls .choices,
.tk24-form .controls .field-calendar {
  width: 100%;
  max-width: none;
}

.tk24-form .controls input[type="text"],
.tk24-form .controls input[type="url"],
.tk24-form .controls input[type="number"],
.tk24-form .controls textarea,
.tk24-form .controls select {
  min-height: 2.75rem;
  padding: .65rem .75rem;
  border: 1px solid #bdc8d7;
  border-radius: 9px;
}

.tk24-form .controls textarea {
  min-height: 8rem;
}

.tk24-form .form-text,
.tk24-form .form-control-feedback {
  color: var(--tk24-muted);
  font-size: .84rem;
}

.tk24-subform {
  padding-block-start: 1.5rem;
}

.tk24-subform > h2 {
  margin-block-end: .25rem;
  font-size: 1.35rem;
}

.tk24-subform > p {
  color: var(--tk24-muted);
}

.tk24-form-actions {
  justify-content: flex-end;
  padding-block-start: 1.5rem;
}

.tk24-danger-zone {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem;
  margin-block-start: 1.25rem;
  background: #fff7f6;
  border: 1px solid #fac7c2;
  border-radius: 14px;
}

.tk24-danger-zone h2,
.tk24-danger-zone p {
  margin: 0;
}

.tk24-danger-zone h2 {
  color: var(--tk24-danger);
  font-size: 1.05rem;
}

.tk24-danger-zone p {
  margin-block-start: .25rem;
  color: #74403c;
}

.tk24-search {
  padding: clamp(1.25rem, 4vw, 2rem);
  margin: -3rem auto 2rem;
  position: relative;
  width: min(850px, calc(100% - 2rem));
  background: #fff;
  border: 1px solid var(--tk24-border);
  border-radius: 16px;
  box-shadow: var(--tk24-shadow);
}

.tk24-search label {
  display: block;
  margin-block-end: .5rem;
  font-weight: 760;
}

.tk24-search__row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .65rem;
}

.tk24-search input[type="search"] {
  width: 100%;
  min-height: 3rem;
  padding: .7rem .85rem;
  font: inherit;
  border: 1px solid #b9c5d5;
  border-radius: 10px;
}

.tk24-search > p {
  margin: .6rem 0 0;
  color: var(--tk24-muted);
  font-size: .86rem;
}

.tk24-results > h2 {
  margin-block-end: 1rem;
  font-size: 1.25rem;
}

.tk24-result-list {
  display: grid;
  gap: .8rem;
}

.tk24-result {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.tk24-result h3,
.tk24-result p {
  margin: 0;
}

.tk24-result h3 a {
  color: inherit;
  text-decoration: none;
}

@media (max-width: 760px) {
  .tk24-shell {
    width: min(100% - 1rem, 1180px);
    margin-block-start: .5rem;
  }

  .tk24-hero,
  .tk24-calendar-header,
  .tk24-form-header {
    flex-direction: column;
    gap: 1.2rem;
    border-radius: 18px;
  }

  .tk24-account-strip {
    grid-template-columns: 1fr 1fr;
  }

  .tk24-section-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .tk24-calendar-toolbar {
    grid-template-columns: 1fr;
  }

  .tk24-calendar-toolbar__title {
    grid-row: 1;
  }

  .tk24-calendar-toolbar__navigation,
  .tk24-view-switcher {
    justify-content: center;
  }

  .tk24-month {
    overflow-x: auto;
  }

  .tk24-month__weekdays,
  .tk24-month__grid {
    min-width: 660px;
  }

  .tk24-day-cell {
    min-height: 100px;
  }

  .tk24-form .control-group {
    grid-template-columns: 1fr;
    gap: .25rem;
  }

  .tk24-form .control-label label {
    padding-block-start: 0;
  }

  .tk24-danger-zone,
  .tk24-result,
  .tk24-sharebar {
    align-items: stretch;
    flex-direction: column;
  }

  .tk24-search__row {
    grid-template-columns: 1fr;
  }

  .tk24-agenda-event {
    grid-template-columns: 1fr;
    gap: .25rem;
  }
}

@media (max-width: 470px) {
  .tk24-account-strip {
    grid-template-columns: 1fr;
  }

  .tk24-view-switcher {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }

  .tk24-calendar-tool {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tk24-shell * {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

@media (prefers-contrast: more) {
  .tk24-card,
  .tk24-calendar-app,
  .tk24-day-cell,
  .tk24-calendar-tool,
  .tk24-btn {
    border-color: currentcolor;
  }
}

.tk24-schedule-section,
.tk24-booking-preview {
  margin-block-start: 2rem;
}

.tk24-schedule-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
}

.tk24-compact-form,
.tk24-inline-form {
  display: grid;
  gap: .85rem;
}

.tk24-compact-form label,
.tk24-inline-form label {
  display: grid;
  gap: .35rem;
  font-weight: 650;
}

.tk24-compact-form input,
.tk24-compact-form textarea,
.tk24-inline-form input,
.tk24-inline-form select {
  width: 100%;
  padding: .7rem .8rem;
  border: 1px solid var(--tk24-border, #d6dee8);
  border-radius: 10px;
  background: #fff;
}

.tk24-inline-form {
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  align-items: end;
}

.tk24-rule-list {
  display: grid;
  gap: .65rem;
  margin-block-start: 1rem;
}

.tk24-rule {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.2rem;
}

.tk24-rule div {
  display: grid;
  gap: .3rem;
}

.tk24-slot-days {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 1rem;
  margin-block: 1rem;
}

.tk24-slot-day {
  padding: 1rem;
  border: 1px solid var(--tk24-border, #d6dee8);
  border-radius: 14px;
}

.tk24-slot-day h3 {
  margin-block: 0 .75rem;
  font-size: 1rem;
}

.tk24-slots {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.tk24-slot {
  display:inline-flex;
  padding: .42rem .65rem;
  border-radius: 999px;
  color: #0c4a3c;
  background: #dff7ed;
  font-weight: 700;
  text-decoration:none;
}
.tk24-slot:hover { color:#fff; background:#1e765d; }

.tk24-notice {
  padding: .85rem 1rem;
  border-left: 4px solid #ec9a29;
  background: #fff7e9;
}

/* Provider management UI */
.tk24-shell--narrow { max-width: 880px; }
.tk24-breadcrumbs { display:flex; align-items:center; flex-wrap:wrap; gap:.55rem; margin:0 0 1.25rem; color:#65758b; font-size:.9rem; }
.tk24-breadcrumbs a { color:#425b78; text-decoration:none; }
.tk24-breadcrumbs a:hover { text-decoration:underline; }
.tk24-page-header { display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; margin-bottom:1.5rem; padding:1.75rem 0; border-bottom:1px solid #e4eaf1; }
.tk24-page-header h1 { margin:.1rem 0 .4rem; font-size:clamp(2rem,4vw,3rem); letter-spacing:-.035em; }
.tk24-page-header p:last-child { max-width:680px; margin:0; color:#617086; }
.tk24-management-card { overflow:hidden; border:1px solid #dfe6ee; border-radius:18px; background:#fff; box-shadow:0 10px 35px rgba(31,49,72,.07); }
.tk24-management-row { display:grid; align-items:center; gap:1rem; padding:1rem 1.25rem; border-top:1px solid #e9edf2; }
.tk24-service-table .tk24-management-row { grid-template-columns:minmax(260px,2fr) .65fr .8fr .75fr minmax(250px,1.35fr); }
.tk24-availability-table .tk24-management-row { grid-template-columns:.8fr minmax(280px,2fr) 1.2fr minmax(150px,.8fr); }
.tk24-management-row:first-child { border-top:0; }
.tk24-management-row--head { min-height:46px; padding-block:.75rem; color:#64748b; background:#f7f9fc; font-size:.76rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.tk24-management-primary { display:flex; align-items:center; gap:.85rem; min-width:0; }
.tk24-management-primary h2 { margin:0 0 .18rem; font-size:1rem; }
.tk24-management-primary p { overflow:hidden; margin:0; color:#738096; font-size:.84rem; text-overflow:ellipsis; white-space:nowrap; }
.tk24-service-icon,.tk24-provider-avatar { display:grid; flex:0 0 auto; place-items:center; width:44px; height:44px; border-radius:13px; color:#fff; background:linear-gradient(145deg,#235e7e,#173c57); font-weight:800; }
.tk24-action-group { display:inline-flex; justify-self:end; overflow:hidden; border:1px solid #d8e0e9; border-radius:10px; background:#fff; }
.tk24-action-group form { display:flex; margin:0; }
.tk24-action { display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:.48rem .7rem; border:0; border-left:1px solid #e0e6ed; color:#42566e; background:#fff; font:inherit; font-size:.82rem; font-weight:750; text-decoration:none; cursor:pointer; }
.tk24-action:first-child,.tk24-action-group>*:first-child .tk24-action { border-left:0; }
.tk24-action:hover { color:#183f59; background:#f2f6f9; }
.tk24-action--primary { color:#fff; background:#235e7e; }
.tk24-action--primary:hover { color:#fff; background:#194b69; }
.tk24-action--danger { color:#a13232; }
.tk24-action--danger:hover { color:#8a2222; background:#fff1f1; }
.tk24-status { display:inline-flex; align-items:center; gap:.42rem; width:max-content; padding:.33rem .62rem; border-radius:999px; font-size:.78rem; font-weight:750; }
.tk24-status>span { width:7px; height:7px; border-radius:50%; }
.tk24-status--active { color:#176044; background:#e4f7ef; }.tk24-status--active>span { background:#24a574; }
.tk24-status--inactive { color:#67758a; background:#edf1f5; }.tk24-status--inactive>span { background:#8491a3; }
.tk24-rule-type { display:inline-flex; padding:.38rem .62rem; border-radius:8px; color:#31536c; background:#eaf2f7; font-size:.78rem; font-weight:800; }
.tk24-rule-type--available { color:#176044; background:#e4f7ef; }.tk24-rule-type--blocked { color:#923b3b; background:#ffeded; }

.tk24-editor-card { display:grid; gap:1.4rem; padding:1.6rem; border:1px solid #dfe6ee; border-radius:18px; background:#fff; box-shadow:0 10px 35px rgba(31,49,72,.07); }
.tk24-field { display:grid; gap:.42rem; }.tk24-field label { color:#273c51; font-weight:750; }.tk24-field small { color:#738096; }
.tk24-field input,.tk24-field select,.tk24-field textarea { width:100%; min-height:46px; padding:.72rem .82rem; border:1px solid #cfd9e4; border-radius:10px; color:#20364a; background:#fff; font:inherit; }
.tk24-field textarea { resize:vertical; }.tk24-field input:focus,.tk24-field select:focus,.tk24-field textarea:focus { outline:3px solid rgba(35,94,126,.15); border-color:#235e7e; }
.tk24-field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.tk24-form-section { padding:1.2rem; border:1px solid #e0e6ed; border-radius:14px; }.tk24-form-section legend { padding:0 .45rem; font-weight:800; }
.tk24-input-suffix { display:flex; }.tk24-input-suffix input { border-radius:10px 0 0 10px; }.tk24-input-suffix span { display:flex; align-items:center; padding:0 .85rem; border:1px solid #cfd9e4; border-left:0; border-radius:0 10px 10px 0; color:#66758a; background:#f4f7fa; }
.tk24-switch { display:flex; align-items:flex-start; gap:.8rem; cursor:pointer; }.tk24-switch input { position:absolute; opacity:0; }.tk24-switch>span { position:relative; flex:0 0 auto; width:46px; height:26px; border-radius:999px; background:#a9b4c2; transition:.2s; }.tk24-switch>span:after { position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.2); content:""; transition:.2s; }.tk24-switch input:checked+span { background:#238260; }.tk24-switch input:checked+span:after { transform:translateX(20px); }.tk24-switch div { display:grid; }.tk24-switch small { color:#738096; }
.tk24-form-actions { display:flex; justify-content:flex-end; gap:.65rem; margin:0 -1.6rem -1.6rem; padding:1rem 1.6rem; border-top:1px solid #e6ebf1; background:#f8fafc; border-radius:0 0 18px 18px; }

.tk24-provider-console { margin:1.7rem 0 2.2rem; overflow:hidden; border:1px solid #dce5ed; border-radius:20px; background:#fff; box-shadow:0 12px 38px rgba(29,49,72,.08); }
.tk24-provider-console__header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.3rem 1.5rem; border-bottom:1px solid #e7ecf1; background:linear-gradient(120deg,#f8fbfd,#eef5f8); }
.tk24-provider-identity { display:flex; align-items:center; gap:1rem; }.tk24-provider-avatar { width:54px; height:54px; border-radius:16px; font-size:1.25rem; }.tk24-provider-identity h2 { margin:.1rem 0 .4rem; font-size:1.3rem; }.tk24-provider-badges { display:flex; flex-wrap:wrap; gap:.4rem; }
.tk24-provider-console__body { display:grid; grid-template-columns:1fr 1.2fr; gap:1.3rem; padding:1.3rem 1.5rem; }
.tk24-provider-metrics { display:grid; grid-template-columns:repeat(2,1fr); gap:.8rem; }.tk24-provider-metrics div { display:grid; gap:.2rem; padding:1rem; border:1px solid #e3e9ef; border-radius:13px; background:#fbfcfd; }.tk24-provider-metrics div:last-child { grid-column:1/-1; }.tk24-provider-metrics span { color:#718096; font-size:.78rem; font-weight:750; text-transform:uppercase; }.tk24-provider-metrics strong { color:#213a4e; font-size:1.35rem; }.tk24-provider-metrics div:last-child strong { font-size:1rem; }
.tk24-provider-console__actions { display:grid; gap:.65rem; }.tk24-console-action { display:grid; grid-template-columns:38px 1fr auto; align-items:center; gap:.8rem; padding:.9rem 1rem; border:1px solid #dde5ed; border-radius:13px; color:#243d52; text-decoration:none; }.tk24-console-action>span { display:grid; place-items:center; width:38px; height:38px; border-radius:10px; background:#edf3f6; }.tk24-console-action div { display:grid; }.tk24-console-action small { color:#718096; }.tk24-console-action b { font-size:1.6rem; }.tk24-console-action:hover { border-color:#9cb7c7; background:#f8fbfc; }.tk24-console-action--primary { color:#fff; border-color:#235e7e; background:#235e7e; }.tk24-console-action--primary>span { background:rgba(255,255,255,.14); }.tk24-console-action--primary small { color:#d9e9f2; }.tk24-console-action--primary:hover { color:#fff; background:#194b69; }
.tk24-provider-onboarding { display:flex; align-items:center; gap:1rem; margin:1.7rem 0 2.2rem; }.tk24-provider-onboarding>div:nth-child(2) { flex:1; }.tk24-provider-onboarding h2 { margin:.2rem 0; }

@media (max-width:900px) {
  .tk24-management-row--head { display:none; }
  .tk24-service-table .tk24-management-row,.tk24-availability-table .tk24-management-row { grid-template-columns:repeat(2,minmax(0,1fr)); padding:1.1rem; }
  .tk24-management-primary { grid-column:1/-1; padding-bottom:.85rem; border-bottom:1px solid #edf0f4; }
  .tk24-management-row>[data-label] { display:grid; gap:.25rem; }.tk24-management-row>[data-label]:before { color:#7a8799; font-size:.7rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; content:attr(data-label); }
  .tk24-action-group { grid-column:1/-1; justify-self:stretch; }.tk24-action-group>* { flex:1; }.tk24-action { width:100%; }
  .tk24-provider-console__body { grid-template-columns:1fr; }
}
@media (max-width:620px) {
  .tk24-page-header,.tk24-provider-console__header,.tk24-provider-onboarding { align-items:stretch; flex-direction:column; }
  .tk24-page-header .tk24-btn { width:100%; }
  .tk24-service-table .tk24-management-row,.tk24-availability-table .tk24-management-row,.tk24-field-grid { grid-template-columns:1fr; }
  .tk24-management-primary,.tk24-action-group { grid-column:1; }
  .tk24-action-group { display:grid; grid-template-columns:1fr 1fr; }.tk24-action-group form:last-child:nth-child(3) { grid-column:1/-1; }.tk24-action { border-top:1px solid #e0e6ed; border-left:0; }
  .tk24-provider-console__header,.tk24-provider-console__body { padding:1rem; }.tk24-provider-console__header>.tk24-btn { width:100%; }.tk24-provider-metrics { grid-template-columns:1fr; }.tk24-provider-metrics div:last-child { grid-column:1; }
  .tk24-form-actions { justify-content:stretch; }.tk24-form-actions>* { flex:1; }
}

.tk24-service-editor-layout { max-width:1040px; margin-inline:auto; }
.tk24-unified-service-form { gap:0; padding:0; overflow:hidden; }
.tk24-service-form-section { display:grid; gap:1.35rem; padding:1.7rem; }
.tk24-service-form-section+.tk24-service-form-section { border-top:1px solid #e4eaf0; }
.tk24-schedule-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1.2rem; }
.tk24-schedule-presets { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.45rem; }
.tk24-text-action { min-height:36px; padding:.42rem .68rem; border:1px solid #cbd8e2; border-radius:9px; color:#235e7e; background:#fff; font:inherit; font-size:.78rem; font-weight:750; cursor:pointer; }
.tk24-text-action:hover { border-color:#91acbd; background:#f3f8fa; }
.tk24-text-action--muted { color:#66758a; }
.tk24-editor-heading { display:flex; align-items:flex-start; gap:.85rem; }
.tk24-editor-heading h2,.tk24-editor-heading h3 { margin:0 0 .25rem; }
.tk24-editor-heading p { margin:0; color:#718096; }
.tk24-editor-step { display:grid; flex:0 0 auto; place-items:center; width:34px; height:34px; border-radius:10px; color:#fff; background:#235e7e; font-size:.9rem; font-weight:850; }
.tk24-editor-step--soft { color:#235e7e; background:#e7f0f5; }
.tk24-unified-availability { scroll-margin-top:1.5rem; background:#fbfcfd; }
.tk24-unified-availability>.tk24-section-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:0; }
.tk24-unified-availability>.tk24-section-heading>div { display:flex; align-items:flex-start; gap:.85rem; }
.tk24-unified-availability>.tk24-section-heading h2 { margin:0 0 .25rem; }
.tk24-unified-availability>.tk24-section-heading p { margin:0; color:#718096; }
.tk24-availability-editor { display:grid; gap:1.2rem; margin-top:.2rem; padding:1.35rem; scroll-margin-top:1.5rem; border:1px solid #ccd9e3; border-radius:15px; background:#fff; box-shadow:0 8px 24px rgba(31,49,72,.06); }
.tk24-availability-editor[hidden] { display:none; }
.tk24-editor-inline-actions { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:.2rem; }
.tk24-editor-inline-actions small { color:#66758a; }
.tk24-inline-note { padding:1rem 1.1rem; border:1px dashed #cbd7e2; border-radius:12px; color:#607086; background:#fff; }
.tk24-unified-form-actions { margin:0; border-radius:0; }
.tk24-weekly-schedule { overflow:hidden; border:1px solid #dbe4eb; border-radius:15px; background:#fff; }
.tk24-weekly-row { display:grid; grid-template-columns:180px minmax(0,1fr) 120px; align-items:start; gap:1rem; min-height:76px; padding:1rem 1.15rem; border-top:1px solid #e8edf2; }
.tk24-weekly-row:first-child { border-top:0; }
.tk24-weekly-row--head { min-height:auto; padding-block:.7rem; color:#6b7a8d; background:#f5f8fa; font-size:.72rem; font-weight:800; letter-spacing:.055em; text-transform:uppercase; }
.tk24-weekly-day { display:grid; grid-template-columns:1fr; gap:.16rem; }
.tk24-weekly-day>small { padding-left:48px; color:#8a96a6; font-size:.76rem; }
.tk24-day-toggle { display:flex; align-items:center; gap:.7rem; cursor:pointer; }
.tk24-day-toggle input { position:absolute; opacity:0; pointer-events:none; }
.tk24-day-toggle>span { position:relative; flex:0 0 auto; width:38px; height:22px; border-radius:999px; background:#b3bdc9; transition:.2s; }
.tk24-day-toggle>span:after { position:absolute; top:3px; left:3px; width:16px; height:16px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.2); content:""; transition:.2s; }
.tk24-day-toggle input:focus-visible+span { outline:3px solid rgba(35,94,126,.18); outline-offset:2px; }
.tk24-day-toggle input:checked+span { background:#238260; }
.tk24-day-toggle input:checked+span:after { transform:translateX(16px); }
.tk24-day-toggle strong { color:#253d52; }
.tk24-day-hours { min-width:0; }
.tk24-closed-label { display:inline-flex; min-height:40px; align-items:center; color:#8995a5; font-size:.88rem; }
.tk24-time-ranges { display:none; gap:.55rem; }
.tk24-weekly-row.is-open .tk24-time-ranges { display:grid; }
.tk24-weekly-row.is-open .tk24-closed-label { display:none; }
.tk24-time-range { display:grid; grid-template-columns:minmax(110px,150px) auto minmax(110px,150px) 34px; align-items:center; gap:.55rem; }
.tk24-time-range>input[type=time] { width:100%; min-height:40px; padding:.48rem .6rem; border:1px solid #cfd9e4; border-radius:9px; color:#20364a; background:#fff; font:inherit; }
.tk24-time-range>span { color:#7a8798; font-size:.82rem; }
.tk24-icon-action { display:grid; place-items:center; width:32px; height:32px; padding:0; border:0; border-radius:8px; color:#8b5560; background:transparent; font-size:1.25rem; cursor:pointer; }
.tk24-icon-action:hover { color:#9b2f3d; background:#fff0f2; }
.tk24-add-range { justify-self:start; min-height:38px; padding:.42rem .55rem; border:0; color:#235e7e; background:transparent; font:inherit; font-size:.8rem; font-weight:750; cursor:pointer; }
.tk24-add-range:hover { text-decoration:underline; }
.tk24-overrides { display:grid; gap:1rem; margin-top:.35rem; padding-top:1.5rem; border-top:1px solid #dfe6ec; }
.tk24-overrides>.tk24-section-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:0; }
.tk24-overrides>.tk24-section-heading h3 { margin:0 0 .22rem; }
.tk24-overrides>.tk24-section-heading p { margin:0; color:#718096; }
.tk24-inline-empty { display:flex; align-items:center; gap:1rem; padding:1.25rem; border:1px dashed #cbd7e2; border-radius:14px; color:#607086; background:#fafcfd; }
.tk24-inline-empty>span { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; color:#235e7e; background:#e8f1f5; font-size:1.25rem; }
.tk24-inline-empty h3 { margin:0 0 .2rem; color:#263f54; }.tk24-inline-empty p { margin:0; }
.tk24-booking-shell { max-width:1080px; }
.tk24-booking-layout { display:grid; grid-template-columns:minmax(250px,.72fr) minmax(0,1.5fr); align-items:start; gap:1.3rem; }
.tk24-booking-summary { position:sticky; top:1.2rem; padding:1.4rem; border:1px solid #dbe4eb; border-radius:17px; color:#fff; background:linear-gradient(145deg,#173c57,#235e7e); box-shadow:0 12px 35px rgba(31,49,72,.14); }
.tk24-booking-summary>p { margin:0 0 .3rem; color:#cfe2ed; font-size:.76rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.tk24-booking-summary h2 { margin:.2rem 0 1.2rem; color:#fff; }
.tk24-booking-summary dl { display:grid; gap:.85rem; margin:0; }.tk24-booking-summary dl>div { display:grid; gap:.15rem; padding-top:.75rem; border-top:1px solid rgba(255,255,255,.16); }.tk24-booking-summary dt { color:#cfe2ed; font-size:.76rem; }.tk24-booking-summary dd { margin:0; font-weight:750; }
.tk24-booking-form { overflow:hidden; }.tk24-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }.tk24-consent { display:flex; align-items:flex-start; gap:.55rem; }
.tk24-filter-tabs { display:flex; gap:.4rem; overflow-x:auto; margin-bottom:1.2rem; padding:.35rem; border:1px solid #dce4eb; border-radius:13px; background:#f5f8fa; }
.tk24-filter-tabs a { flex:0 0 auto; padding:.55rem .78rem; border-radius:9px; color:#52677e; font-size:.84rem; font-weight:750; text-decoration:none; }.tk24-filter-tabs a:hover,.tk24-filter-tabs a.is-active { color:#fff; background:#235e7e; }
.tk24-appointment-list { display:grid; gap:1rem; }
.tk24-appointment-card { overflow:hidden; border:1px solid #dce4eb; border-radius:17px; background:#fff; box-shadow:0 8px 28px rgba(31,49,72,.06); }
.tk24-appointment-card>header { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1rem; padding:1.1rem 1.25rem; border-bottom:1px solid #e5eaf0; background:#f9fbfc; }.tk24-appointment-card>header p,.tk24-appointment-card>header h2 { margin:0; }.tk24-appointment-card>header p { color:#6f7e90; font-size:.83rem; }.tk24-appointment-card>header h2 { display:inline; margin-right:.5rem; font-size:1.05rem; }.tk24-appointment-card>header code { color:#64748b; }
.tk24-appointment-date { display:grid; place-items:center; width:52px; height:54px; border-radius:12px; color:#fff; background:#235e7e; line-height:1; }.tk24-appointment-date strong { font-size:1.25rem; }.tk24-appointment-date span { font-size:.7rem; text-transform:uppercase; }
.tk24-status--pending { color:#825713; background:#fff1cf; }.tk24-status--pending>span { background:#d89924; }.tk24-status--confirmed { color:#176044; background:#e4f7ef; }.tk24-status--confirmed>span { background:#24a574; }.tk24-status--rejected,.tk24-status--cancelled { color:#8a3232; background:#ffeded; }.tk24-status--rejected>span,.tk24-status--cancelled>span { background:#d05757; }
.tk24-appointment-body { display:grid; grid-template-columns:1.25fr .75fr; gap:1.2rem; padding:1.2rem 1.25rem; }.tk24-appointment-body dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:0; }.tk24-appointment-body dl>div { display:grid; align-content:start; gap:.2rem; }.tk24-appointment-body dt { color:#768497; font-size:.72rem; font-weight:800; text-transform:uppercase; }.tk24-appointment-body dd { display:grid; margin:0; color:#263e52; }.tk24-appointment-body dd small { color:#7b8899; }
.tk24-private-notes label { display:grid; gap:.35rem; color:#4e6278; font-size:.8rem; font-weight:750; }.tk24-private-notes textarea { width:100%; padding:.65rem; border:1px solid #d4dde6; border-radius:9px; font:inherit; }.tk24-private-notes .tk24-text-action { margin-top:.45rem; }
.tk24-customer-tools { display:grid; gap:.7rem; }.tk24-trust-action { padding-top:.65rem; border-top:1px solid #e5eaf0; }.tk24-trusted-badge { display:inline-flex; width:max-content; margin-top:.25rem; padding:.28rem .5rem; border-radius:999px; color:#176044; background:#e4f7ef; font-size:.72rem; font-weight:800; }.tk24-trust-action .tk24-text-action { width:100%; color:#176044; border-color:#b8ddcf; background:#f0faf6; }
.tk24-appointment-actions { display:flex; justify-content:flex-end; gap:.55rem; padding:.85rem 1.25rem; border-top:1px solid #e5eaf0; background:#f9fbfc; }.tk24-appointment-actions form { margin:0; }
.tk24-header-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.55rem; }
.tk24-report-filter { display:flex; align-items:end; flex-wrap:wrap; gap:.8rem; margin-bottom:1rem; padding:1rem 1.1rem; border:1px solid #dce4eb; border-radius:15px; background:#fff; box-shadow:0 8px 28px rgba(31,49,72,.05); }.tk24-report-filter label { display:grid; gap:.35rem; min-width:180px; }.tk24-report-filter label span { color:#65778a; font-size:.76rem; font-weight:800; text-transform:uppercase; }.tk24-report-filter select,.tk24-report-filter input { min-height:44px; padding:.55rem .7rem; border:1px solid #cbd6df; border-radius:9px; color:#263e52; background:#fff; }
.tk24-report-summary { display:grid; grid-template-columns:2fr repeat(3,1fr); gap:.75rem; margin-bottom:1rem; }.tk24-report-summary>div { display:grid; gap:.2rem; padding:1rem; border:1px solid #dce4eb; border-radius:14px; background:#f8fbfc; }.tk24-report-summary span { color:#6f7e90; font-size:.73rem; font-weight:800; text-transform:uppercase; }.tk24-report-summary strong { color:#173b51; font-size:1.15rem; }.tk24-report-summary small { color:#7b8899; }.tk24-report-summary .is-confirmed { border-color:#b8ddcf; background:#f0faf6; }.tk24-report-summary .is-pending { border-color:#ead59f; background:#fffaf0; }
.tk24-table-wrap { overflow-x:auto; border:1px solid #dce4eb; border-radius:15px; background:#fff; box-shadow:0 8px 28px rgba(31,49,72,.05); }.tk24-report-table { width:100%; min-width:980px; border-collapse:collapse; }.tk24-report-table th { padding:.75rem; text-align:left; color:#fff; background:#235e7e; font-size:.72rem; text-transform:uppercase; }.tk24-report-table td { padding:.85rem .75rem; border-bottom:1px solid #e5eaf0; vertical-align:top; color:#263e52; }.tk24-report-table tbody tr:last-child td { border-bottom:0; }.tk24-report-table td strong,.tk24-report-table td small { display:block; }.tk24-report-table td small { margin-top:.2rem; color:#748397; }.tk24-report-empty { padding:2rem!important; text-align:center; color:#6f7e90!important; }

@media (max-width:620px) {
  .tk24-unified-availability>.tk24-section-heading { align-items:stretch; flex-direction:column; }
  .tk24-unified-availability>.tk24-section-heading>.tk24-btn { width:100%; }
  .tk24-service-form-section,.tk24-availability-editor { padding:1rem; }
  .tk24-editor-inline-actions { align-items:stretch; flex-direction:column; }
  .tk24-editor-inline-actions .tk24-btn { width:100%; }
  .tk24-schedule-heading,.tk24-overrides>.tk24-section-heading { align-items:stretch; flex-direction:column; }
  .tk24-schedule-presets { display:grid; grid-template-columns:1fr; }
  .tk24-overrides>.tk24-section-heading>.tk24-btn { width:100%; }
  .tk24-weekly-schedule { overflow:visible; border:0; background:transparent; }
  .tk24-weekly-row--head { display:none; }
  .tk24-weekly-row { grid-template-columns:1fr; gap:.8rem; margin-bottom:.7rem; padding:1rem; border:1px solid #dbe4eb; border-radius:13px; background:#fff; }
  .tk24-weekly-row:first-child { border-top:1px solid #dbe4eb; }
  .tk24-time-range { grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) 32px; gap:.35rem; }
  .tk24-add-range { width:100%; justify-self:stretch; text-align:left; }
  .tk24-booking-layout,.tk24-appointment-body { grid-template-columns:1fr; }
  .tk24-booking-summary { position:static; }
  .tk24-appointment-card>header { grid-template-columns:auto 1fr; }.tk24-appointment-card>header code { grid-column:1/-1; }
  .tk24-appointment-body dl { grid-template-columns:1fr; }
  .tk24-appointment-actions { align-items:stretch; flex-direction:column; }.tk24-appointment-actions .tk24-btn { width:100%; }
  .tk24-report-summary { grid-template-columns:1fr 1fr; }.tk24-report-summary>div:first-child { grid-column:1/-1; }.tk24-header-actions { justify-content:flex-start; }
}
