.mfp-tp-wrap,
.mfp-tp-login {
    --mfp-border: #dfe3e8;
    --mfp-text: #202428;
    --mfp-muted: #667085;
    --mfp-bg: #f7f8fa;
    --mfp-primary: #2358d8;
    --mfp-danger: #b42318;
    --mfp-success: #067647;
    max-width: 1180px;
    margin: 32px auto;
    color: var(--mfp-text);
    font-size: 16px;
    line-height: 1.5;
}

.mfp-tp-login {
    max-width: 520px;
    padding: 28px;
    border: 1px solid var(--mfp-border);
    border-radius: 14px;
    background: #fff;
}

.mfp-tp-login input[type="text"],
.mfp-tp-login input[type="password"] {
    width: 100%;
    box-sizing: border-box;
}

.mfp-tp-nav {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 22px;
    padding: 8px;
    border: 1px solid var(--mfp-border);
    border-radius: 12px;
    background: #fff;
}

.mfp-tp-nav a {
    padding: 9px 12px;
    border-radius: 8px;
    text-decoration: none;
    color: var(--mfp-text);
    font-weight: 600;
}

.mfp-tp-nav a:hover,
.mfp-tp-nav a:focus {
    background: var(--mfp-bg);
}

.mfp-tp-nav .mfp-tp-nav-logout {
    margin-left: auto;
    color: var(--mfp-danger);
}

.mfp-tp-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-bottom: 22px;
}

.mfp-tp-header h1 {
    margin: 0;
    font-size: clamp(28px, 4vw, 42px);
    line-height: 1.12;
}

.mfp-tp-eyebrow {
    margin: 0 0 5px;
    color: var(--mfp-muted);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.mfp-tp-user {
    padding: 9px 13px;
    border-radius: 999px;
    background: var(--mfp-bg);
    font-weight: 650;
}

.mfp-tp-panel {
    margin-bottom: 22px;
    padding: 24px;
    border: 1px solid var(--mfp-border);
    border-radius: 14px;
    background: #fff;
}

.mfp-tp-panel h2 {
    margin-top: 0;
}

.mfp-tp-panel-heading {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.mfp-tp-panel-heading p,
.mfp-tp-help,
.mfp-tp-form small {
    color: var(--mfp-muted);
}

.mfp-tp-cards,
.mfp-tp-actions-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 22px;
}

.mfp-tp-card,
.mfp-tp-action-card {
    padding: 22px;
    border: 1px solid var(--mfp-border);
    border-radius: 14px;
    background: #fff;
}

.mfp-tp-card span,
.mfp-tp-card small,
.mfp-tp-action-card span {
    display: block;
    color: var(--mfp-muted);
}

.mfp-tp-card strong {
    display: block;
    margin: 3px 0;
    font-size: 36px;
    line-height: 1.1;
}

.mfp-tp-action-card {
    text-decoration: none;
    color: var(--mfp-text);
}

.mfp-tp-action-card:hover,
.mfp-tp-action-card:focus {
    border-color: var(--mfp-primary);
}

.mfp-tp-action-card strong {
    display: block;
    margin-bottom: 5px;
    font-size: 19px;
}

.mfp-tp-next {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.mfp-tp-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.mfp-tp-form label,
.mfp-tp-filters label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-weight: 650;
}

.mfp-tp-form input,
.mfp-tp-form select,
.mfp-tp-form textarea,
.mfp-tp-filters input,
.mfp-tp-filters select {
    width: 100%;
    min-height: 44px;
    box-sizing: border-box;
    padding: 9px 11px;
    border: 1px solid #cfd4dc;
    border-radius: 8px;
    background: #fff;
    color: var(--mfp-text);
    font: inherit;
}

.mfp-tp-form textarea {
    min-height: 100px;
    resize: vertical;
}

.mfp-tp-full-field {
    margin-top: 16px;
}

.mfp-tp-days {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin: 18px 0;
    padding: 16px;
    border: 1px solid var(--mfp-border);
    border-radius: 10px;
}

.mfp-tp-days legend {
    padding: 0 6px;
    font-weight: 700;
}

.mfp-tp-days label {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 6px;
    font-weight: 500;
}

.mfp-tp-days input {
    width: auto;
    min-height: auto;
}

.mfp-tp-form-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-top: 18px;
}

.mfp-tp-button,
button.mfp-tp-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 42px;
    padding: 9px 16px;
    border: 1px solid var(--mfp-primary);
    border-radius: 8px;
    background: var(--mfp-primary);
    color: #fff;
    font: inherit;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.mfp-tp-button-secondary,
button.mfp-tp-button-secondary {
    border-color: #cfd4dc;
    background: #fff;
    color: var(--mfp-text);
}

.mfp-tp-alert {
    margin-bottom: 18px;
    padding: 13px 15px;
    border: 1px solid;
    border-radius: 10px;
    font-weight: 600;
}

.mfp-tp-alert-success {
    border-color: #75e0a7;
    background: #ecfdf3;
    color: var(--mfp-success);
}

.mfp-tp-alert-error {
    border-color: #fda29b;
    background: #fef3f2;
    color: var(--mfp-danger);
}

.mfp-tp-table-wrap {
    overflow-x: auto;
}

.mfp-tp-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 760px;
}

.mfp-tp-table th,
.mfp-tp-table td {
    padding: 12px 10px;
    border-bottom: 1px solid var(--mfp-border);
    text-align: left;
    vertical-align: top;
}

.mfp-tp-table th {
    color: var(--mfp-muted);
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.mfp-tp-row-actions {
    white-space: nowrap;
}

.mfp-tp-row-actions > * {
    margin-right: 10px;
}

.mfp-tp-inline-form {
    display: inline;
    margin: 0;
}

.mfp-tp-link-button {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--mfp-primary);
    font: inherit;
    text-decoration: underline;
    cursor: pointer;
}

.mfp-tp-cancel-appointment .mfp-tp-link-button,
.mfp-tp-delete-connection .mfp-tp-link-button {
    color: var(--mfp-danger);
}

.mfp-tp-status {
    display: inline-block;
    padding: 5px 8px;
    border-radius: 999px;
    background: var(--mfp-bg);
    font-size: 13px;
    font-weight: 700;
}

.mfp-tp-status-confirmed { background: #ecfdf3; color: #067647; }
.mfp-tp-status-pending,
.mfp-tp-status-reservation { background: #fffaeb; color: #b54708; }
.mfp-tp-status-canceled,
.mfp-tp-status-abandoned { background: #fef3f2; color: #b42318; }

.mfp-tp-filters {
    display: grid;
    grid-template-columns: 180px 210px minmax(220px, 1fr) auto;
    gap: 12px;
    align-items: end;
    margin-bottom: 22px;
}

.mfp-tp-details summary {
    cursor: pointer;
    font-weight: 750;
    font-size: 18px;
}

.mfp-tp-details[open] summary {
    margin-bottom: 20px;
}

.mfp-tp-pagination {
    display: flex;
    gap: 7px;
    margin-top: 18px;
}

.mfp-tp-pagination a {
    min-width: 38px;
    padding: 7px 9px;
    border: 1px solid var(--mfp-border);
    border-radius: 7px;
    text-align: center;
    text-decoration: none;
}

.mfp-tp-pagination a.is-current {
    border-color: var(--mfp-primary);
    background: var(--mfp-primary);
    color: #fff;
}

.mfp-tp-slot-message {
    min-height: 20px;
    font-weight: 500;
}

@media (max-width: 820px) {
    .mfp-tp-cards,
    .mfp-tp-actions-grid,
    .mfp-tp-form-grid,
    .mfp-tp-filters {
        grid-template-columns: 1fr;
    }

    .mfp-tp-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .mfp-tp-nav .mfp-tp-nav-logout {
        margin-left: 0;
    }

    .mfp-tp-panel {
        padding: 18px;
    }
}

.mfp-tp-checkbox-field > span:last-child {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    font-weight: 500;
}

.mfp-tp-checkbox-field input[type="checkbox"] {
    width: auto;
    min-height: auto;
}

.mfp-tp-muted {
    color: var(--mfp-muted);
    font-size: 14px;
}

.mfp-tp-delete-block .mfp-tp-link-button {
    color: var(--mfp-danger);
}
.mfp-tp-calendar-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin-bottom:18px}.mfp-tp-calendar-head h2{text-align:center;margin:0;text-transform:capitalize}.mfp-tp-calendar-weekdays,.mfp-tp-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.mfp-tp-calendar-weekdays>div{padding:8px;text-align:center;font-weight:700;color:var(--mfp-muted)}.mfp-tp-day{min-height:145px;border:1px solid var(--mfp-border);border-radius:9px;padding:8px;background:#fff}.mfp-tp-day.is-outside{background:#f7f8fa;opacity:.65}.mfp-tp-day.is-today{box-shadow:inset 0 0 0 2px var(--mfp-primary)}.mfp-tp-day-number{font-weight:800;margin-bottom:6px}.mfp-tp-event{padding:7px 8px;margin-bottom:5px;border-radius:7px;font-size:12px;line-height:1.25;border-left:4px solid #98a2b3;background:#f2f4f7}.mfp-tp-event strong,.mfp-tp-event span,.mfp-tp-event small{display:block}.mfp-tp-event span{font-weight:650;margin-top:2px}.mfp-tp-event small{color:var(--mfp-muted);margin-top:2px}.mfp-tp-event.is-free{border-left-color:#067647;background:#ecfdf3}.mfp-tp-event.is-mine{border-left-color:#2358d8;background:#eef4ff}.mfp-tp-event.is-taken{border-left-color:#98a2b3}.mfp-tp-claim{font-size:11px!important;padding:3px 5px!important;margin-top:5px}.mfp-tp-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#98a2b3;margin-right:3px}.mfp-tp-dot.is-free{background:#067647}.mfp-tp-dot.is-mine{background:#2358d8}.mfp-tp-table form{margin:0}.mfp-tp-table .mfp-tp-button{min-height:34px;padding:6px 10px;font-size:13px}.mfp-tp-status{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700}.mfp-tp-status-confirmed{background:#ecfdf3;color:#067647}.mfp-tp-status-reservation{background:#fff7ed;color:#9a3412}@media(max-width:800px){.mfp-tp-calendar-grid,.mfp-tp-calendar-weekdays{gap:3px}.mfp-tp-day{min-height:105px;padding:5px}.mfp-tp-event{font-size:10px;padding:5px}.mfp-tp-event small{display:none}.mfp-tp-calendar-head{grid-template-columns:1fr 1fr}.mfp-tp-calendar-head h2{grid-column:1/-1;grid-row:1}.mfp-tp-calendar-head a{grid-row:2}.mfp-tp-calendar-head a:last-child{justify-self:end}}

/* 0.2.6: calendar and cases are visible together on desktop. */
.mfp-tp-portal-columns{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}.mfp-tp-calendar-panel{min-width:0}.mfp-tp-cases-panel{position:sticky;top:20px;max-height:calc(100vh - 40px);overflow:hidden}.mfp-tp-cases-panel .mfp-tp-panel-heading{margin-bottom:12px}.mfp-tp-cases-panel .mfp-tp-panel-heading h2{margin-bottom:5px}.mfp-tp-cases-panel .mfp-tp-panel-heading p{margin:0;font-size:13px}.mfp-tp-case-list{display:flex;flex-direction:column;gap:9px;max-height:calc(100vh - 190px);overflow:auto;padding-right:3px}.mfp-tp-case-card{padding:11px 12px;border:1px solid var(--mfp-border);border-left:4px solid #98a2b3;border-radius:9px;background:#fff}.mfp-tp-case-card.is-free{border-left-color:#067647;background:#f4fff8}.mfp-tp-case-card.is-mine{border-left-color:#2358d8;background:#f5f8ff}.mfp-tp-case-card.is-taken{border-left-color:#98a2b3}.mfp-tp-case-card strong,.mfp-tp-case-card span,.mfp-tp-case-card small{display:block}.mfp-tp-case-card strong{margin-top:3px}.mfp-tp-case-card span{font-size:13px;color:var(--mfp-muted);margin-top:2px}.mfp-tp-case-card small{font-weight:700;color:var(--mfp-muted);margin-top:4px}.mfp-tp-case-time{font-size:12px;font-weight:700;color:var(--mfp-muted)}.mfp-tp-button-small{min-height:34px;padding:6px 11px;font-size:13px;margin-top:8px}.mfp-tp-case-card form{margin:0}.mfp-tp-cases-panel{margin-bottom:0}
@media(max-width:1050px){.mfp-tp-portal-columns{grid-template-columns:1fr}.mfp-tp-cases-panel{position:static;max-height:none}.mfp-tp-case-list{max-height:420px}}
.mfp-tp-release{color:var(--mfp-danger)!important}.mfp-tp-release-form{margin-top:4px}.mfp-tp-vacation-panel{margin-bottom:22px}.mfp-tp-vacation-panel h3{margin:20px 0 10px}.mfp-tp-vacation-times{margin-top:14px}.mfp-tp-vacation-list{border-top:1px solid var(--mfp-border);margin-top:18px;padding-top:8px}.mfp-tp-vacation-item{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:11px 0;border-bottom:1px solid var(--mfp-border)}.mfp-tp-vacation-item strong,.mfp-tp-vacation-item span{display:block}.mfp-tp-vacation-item span{color:var(--mfp-muted);font-size:13px;margin-top:3px}.mfp-tp-delete-vacation{color:var(--mfp-danger)!important}.mfp-tp-vacation-form .mfp-tp-form-actions{margin-top:12px}

/* 0.2.8: therapist schedule management */
.mfp-tp-tools-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.mfp-tp-tools-grid .mfp-tp-details{margin:0;padding:16px;border:1px solid var(--mfp-border);border-radius:12px;background:#fbfcfe}.mfp-tp-tools-grid .mfp-tp-details[open]{grid-column:span 1}.mfp-tp-tools-grid .mfp-tp-details summary{font-size:16px}.mfp-tp-tools-grid .mfp-tp-form{margin-top:16px}.mfp-tp-tools-grid .mfp-tp-form-grid{grid-template-columns:1fr}.mfp-tp-event.is-block{border-left-color:#667085;background:#f2f4f7}.mfp-tp-event.is-busy{border-left-color:#b54708;background:#fff7ed}.mfp-tp-dot.is-block{background:#667085}.mfp-tp-dot.is-busy{background:#b54708}.mfp-tp-event-actions,.mfp-tp-case-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:5px;align-items:center}.mfp-tp-event-actions .mfp-tp-link-button{font-size:11px}.mfp-tp-case-actions{margin-top:8px}.mfp-tp-case-actions form{margin:0}.mfp-tp-edit-panel{border-left:4px solid var(--mfp-primary)}
@media(max-width:1050px){.mfp-tp-tools-grid{grid-template-columns:1fr}.mfp-tp-tools-grid .mfp-tp-details[open]{grid-column:auto}}
