:root {
    --ce-navy: #062b78;
    --ce-navy-strong: #031d52;
    --ce-blue: #174fc5;
    --ce-blue-soft: #eff5ff;
    --ce-ink: #081b42;
    --ce-muted: #586983;
    --ce-border: #d7e0ee;
    --ce-surface: #ffffff;
    --ce-surface-soft: #f5f8fc;
    --ce-success: #18743a;
    --ce-error: #ad2231;
    --ce-shadow: 0 24px 70px rgba(6, 25, 65, 0.22);
}

.ce-live-zoom { display: grid; gap: 0.6rem; border-bottom: 1px solid var(--ce-border); padding-bottom: 1rem; min-width: 0; }
.ce-live-zoom-heading { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; color: var(--ce-ink); font-weight: 700; }
.ce-live-zoom-heading output { color: var(--ce-navy); font-size: 1.35rem; font-variant-numeric: tabular-nums; }
.ce-live-zoom p { margin: 0; color: var(--ce-muted); font-size: 0.82rem; line-height: 1.5; }
.ce-live-zoom-slider { display: flex; gap: 0.7rem; align-items: center; }
.ce-live-zoom-slider button { width: 44px; flex: 0 0 44px; font-size: 1.4rem; }
.ce-live-zoom-slider input { min-width: 0; width: 100%; min-height: 44px; accent-color: var(--ce-navy); }
.ce-live-zoom button { border: 1px solid #b8c8df; border-radius: 9px; background: #fff; color: var(--ce-navy); min-height: 44px; cursor: pointer; }
.ce-live-zoom button:disabled, .ce-live-zoom input:disabled { opacity: 0.5; cursor: not-allowed; }
.ce-live-zoom-limits { display: flex; justify-content: space-between; padding: 0 55px; color: var(--ce-muted); font-size: 0.75rem; }
.ce-live-zoom-presets { display: flex; gap: 0.5rem; }
.ce-live-zoom-presets button { flex: 1; padding: 0.4rem; }
.ce-live-zoom-presets button[aria-pressed="true"] { background: var(--ce-blue-soft); border-color: var(--ce-blue); }
.ce-live-zoom .ce-live-zoom-status { color: var(--ce-success); min-height: 1.5em; }
.ce-live-zoom .ce-live-zoom-status.is-warning { color: #884816; }
.ce-live-zoom :focus-visible { outline: 3px solid var(--ce-blue); outline-offset: 3px; }
.ce-live-zoom-badge { position: absolute; right: 1rem; bottom: 1rem; padding: 0.35rem 0.65rem; background: #071020e6; color: #fff; border-radius: 8px; font-weight: 700; }

.ce-primary-button,
.ce-secondary-button,
.ce-link-button {
    align-items: center;
    border-radius: 9px;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: 700;
    justify-content: center;
    min-height: 42px;
    padding: 0.68rem 1rem;
    text-decoration: none;
}

.ce-live-room [hidden] {
    display: none !important;
}

.ce-primary-button {
    background: var(--ce-navy);
    border: 1px solid var(--ce-navy);
    color: #fff;
}

.ce-primary-button:hover,
.ce-primary-button:focus-visible {
    background: var(--ce-navy-strong);
    border-color: var(--ce-navy-strong);
}

.ce-primary-button:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.ce-primary-button.is-full {
    font-size: 1.05rem;
    width: 100%;
}

.ce-secondary-button {
    background: #fff;
    border: 1px solid #b8c8df;
    color: var(--ce-navy);
}

.ce-secondary-button:hover,
.ce-secondary-button:focus-visible {
    background: var(--ce-blue-soft);
    border-color: #7e9dcc;
}

.ce-link-button {
    background: transparent;
    border: 0;
    color: var(--ce-blue);
    min-height: 36px;
    padding-inline: 0;
}

.ce-field {
    display: grid;
    gap: 0.45rem;
}

.ce-field > span {
    color: #344663;
    font-size: 0.9rem;
    font-weight: 700;
}

.ce-field input {
    background: #fff;
    border: 1px solid #b9c8dc;
    border-radius: 8px;
    color: var(--ce-ink);
    font: inherit;
    min-height: 46px;
    padding: 0.72rem 0.8rem;
}

.ce-field input:focus {
    border-color: var(--ce-blue);
    box-shadow: 0 0 0 3px rgba(23, 79, 197, 0.13);
    outline: none;
}

.ce-field input[readonly] {
    background: var(--ce-surface-soft);
}

.ce-collection-head-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    justify-content: flex-end;
}

.ce-collection-state {
    background: #fff;
    border: 1px solid var(--ce-border);
    border-radius: 10px;
    display: grid;
    gap: 1px;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    margin-bottom: 0.9rem;
    overflow: hidden;
}

.ce-collection-state > div {
    background: var(--ce-surface-soft);
    display: grid;
    gap: 0.2rem;
    padding: 0.75rem 0.9rem;
}

.ce-collection-state span {
    color: var(--ce-muted);
    font-size: var(--font-caption);
}

.ce-collection-state strong {
    color: var(--ce-ink);
    font-size: 0.9rem;
}

.ce-collection-state .ce-collection-state-action {
    align-content: center;
    gap: 0.45rem;
}

.ce-collection-state-action a {
    justify-self: start;
}

.ce-modal[hidden] {
    display: none;
}

.ce-modal {
    align-items: center;
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 1.2rem;
    position: fixed;
    z-index: 1000;
}

.ce-modal-backdrop {
    background: rgba(8, 20, 43, 0.63);
    border: 0;
    inset: 0;
    position: absolute;
}

.ce-modal-dialog {
    background: #fff;
    border: 1px solid rgba(216, 225, 238, 0.8);
    border-radius: 14px;
    box-shadow: var(--ce-shadow);
    max-height: calc(100vh - 2.4rem);
    max-width: 960px;
    overflow: auto;
    position: relative;
    width: 100%;
}

.ce-modal-dialog.is-compact {
    max-width: 650px;
}

.ce-modal-header {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 1.35rem 1.5rem 0.8rem;
}

.ce-modal-header h2 {
    color: var(--ce-ink);
    font-size: clamp(1.35rem, 3vw, 1.75rem);
    margin: 0;
}

.ce-modal-header p {
    color: var(--ce-muted);
    margin: 0.35rem 0 0;
}

.ce-modal-close {
    background: transparent;
    border: 0;
    border-radius: 8px;
    color: #5a6b84;
    cursor: pointer;
    font-size: 1.7rem;
    height: 40px;
    line-height: 1.2;
    width: 40px;
}

.ce-modal-close:hover,
.ce-modal-close:focus-visible {
    background: var(--ce-surface-soft);
    color: var(--ce-ink);
}

.ce-mode-grid {
    border: 0;
    display: grid;
    gap: 0.9rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
    padding: 0.8rem 1.5rem 1rem;
}

.ce-mode-card {
    background: #fff;
    border: 1px solid var(--ce-border);
    border-radius: 11px;
    cursor: pointer;
    display: grid;
    gap: 0.45rem;
    min-height: 180px;
    padding: 1.1rem;
    position: relative;
}

.ce-mode-card:has(input:checked),
.ce-mode-card.is-selected {
    background: var(--ce-blue-soft);
    border-color: var(--ce-blue);
    box-shadow: inset 0 0 0 1px var(--ce-blue);
}

.ce-mode-card input {
    height: 18px;
    margin: 0;
    position: absolute;
    right: 1rem;
    top: 1rem;
    width: 18px;
}

.ce-mode-card strong {
    color: var(--ce-ink);
    font-size: 1.05rem;
}

.ce-mode-card > span:not(.ce-collection-mode-icon) {
    color: #485a76;
    line-height: 1.45;
}

.ce-mode-card > .ce-collection-mode-icon {
    margin-bottom: 0.25rem;
    margin-right: 0;
}

.ce-mode-card small {
    color: #85610b;
    line-height: 1.35;
}

.ce-mode-card.is-disabled {
    cursor: not-allowed;
    opacity: 0.67;
}

.ce-collection-config {
    border-top: 1px solid #e2e8f1;
    display: grid;
    gap: 0.8rem;
    padding: 1rem 1.5rem 1.2rem;
}

.ce-collection-config .ce-field[hidden],
.ce-collection-config .ce-appointment-method[hidden] {
    display: none !important;
}

.ce-collection-config h3 {
    color: #344663;
    font-size: var(--font-body);
    margin: 0;
}

.ce-appointment-method {
    border: 0;
    display: grid;
    gap: 0.65rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    padding: 0;
}

.ce-appointment-method legend {
    color: #344663;
    font-size: var(--font-caption);
    font-weight: 700;
    grid-column: 1 / -1;
    margin-bottom: 0.1rem;
}

.ce-appointment-method label {
    align-items: flex-start;
    background: #fff;
    border: 1px solid #cfdae8;
    border-radius: 10px;
    cursor: pointer;
    display: flex;
    gap: 0.65rem;
    min-width: 0;
    padding: 0.75rem;
}

.ce-appointment-method label:has(input:checked) {
    background: var(--ce-blue-soft);
    border-color: var(--ce-blue);
    box-shadow: inset 0 0 0 1px var(--ce-blue);
}

.ce-appointment-method input {
    flex: 0 0 auto;
    margin: 0.15rem 0 0;
}

.ce-appointment-method span {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
}

.ce-appointment-method strong {
    color: var(--ce-ink);
    font-size: 0.9rem;
}

.ce-appointment-method small {
    color: var(--ce-muted);
    line-height: 1.35;
}

.ce-info-note {
    background: var(--ce-surface-soft);
    border: 1px solid #e1e8f2;
    border-radius: 8px;
    color: var(--ce-muted);
    font-size: 0.88rem;
    margin: 0;
    padding: 0.65rem 0.75rem;
}

.ce-collection-result {
    background: #f4f9f5;
    border: 1px solid #c9e4ce;
    border-radius: 8px;
    color: #155d2d;
    display: grid;
    gap: 0.65rem;
    padding: 0.75rem;
}

.ce-collection-result[hidden] {
    display: none;
}

.ce-link-row {
    display: grid;
    gap: 0.5rem;
    grid-template-columns: minmax(0, 1fr) auto auto auto;
}

.ce-link-row [hidden] {
    display: none;
}

.ce-link-row input {
    background: #fff;
    border: 1px solid #c2d2c5;
    border-radius: 8px;
    min-width: 0;
    padding: 0.65rem;
}

.ce-form-status {
    color: var(--ce-muted);
    min-height: 1.2rem;
    margin: 0;
}

.ce-form-status.is-error {
    color: var(--ce-error);
}

.ce-modal-footer {
    align-items: center;
    border-top: 1px solid #e2e8f1;
    display: flex;
    gap: 0.7rem;
    justify-content: flex-end;
    padding: 1rem 1.5rem 1.2rem;
}

body.ce-modal-open {
    overflow: hidden;
}

.ce-booking-app {
    color: var(--ce-ink);
    margin: 0 auto;
    max-width: 920px;
    width: 100%;
}

.ce-booking-header {
    align-items: center;
    border-bottom: 1px solid var(--ce-border);
    display: flex;
    justify-content: space-between;
    padding: 1rem 0;
}

.ce-booking-brand {
    align-items: center;
    display: inline-flex;
}

.ce-booking-brand img {
    background: transparent;
    height: auto;
    object-fit: contain;
    width: 176px;
}

.ce-booking-brand strong {
    color: var(--ce-ink);
    font-size: var(--font-body);
    font-weight: 700;
    overflow-wrap: anywhere;
}

.ce-secure-badge {
    background: var(--ce-surface-soft);
    border: 1px solid var(--ce-border);
    border-radius: 9px;
    color: #52627a;
    font-weight: 700;
    padding: 0.65rem 0.8rem;
}

.ce-booking-main {
    display: grid;
    gap: 1.25rem;
    padding: 1.5rem 0 2rem;
}

.ce-booking-intro h1 {
    color: var(--ce-ink);
    font-family: var(--font-display);
    font-size: clamp(2rem, 6vw, 3.4rem);
    letter-spacing: -0.025em;
    line-height: 1.2;
    margin: 0;
}

.ce-booking-intro p {
    color: var(--ce-muted);
    font-size: 1.05rem;
    line-height: 1.5;
    margin: 0.7rem 0 0;
}

.ce-booking-summary {
    border: 1px solid var(--ce-border);
    border-radius: 12px;
    display: grid;
    overflow: hidden;
}

.ce-booking-summary > div:not(.ce-booking-facts) {
    border-bottom: 1px solid var(--ce-border);
    display: grid;
    gap: 0.18rem;
    padding: 0.9rem 1rem;
}

.ce-booking-summary span {
    color: var(--ce-muted);
}

.ce-booking-summary strong {
    color: var(--ce-ink);
}

.ce-booking-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ce-booking-facts span {
    padding: 0.9rem 1rem;
}

.ce-booking-facts span + span {
    border-left: 1px solid var(--ce-border);
}

.ce-current-appointment {
    align-items: flex-start;
    background: #f3f8f4;
    border: 1px solid #bddbc5;
    border-radius: 12px;
    display: grid;
    gap: 0.65rem;
    padding: 1rem;
}

.ce-current-appointment > span {
    color: var(--ce-success);
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.ce-current-appointment > strong { font-size: clamp(20px, 3vw, 27px); line-height: 1.35; }
.ce-booking-change { border: 1px solid #d6e1ef; border-radius: 14px; background: #fff; padding: 0 18px; }
.ce-booking-change > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; min-height: 58px; color: #194b8f; font-weight: 700; list-style: none; }
.ce-booking-change > summary::-webkit-details-marker { display: none; }
.ce-booking-change > summary:focus-visible { outline: 3px solid #367ee6; outline-offset: 3px; }
.ce-booking-change[open] > summary span { transform: rotate(180deg); }
.ce-booking-change > p { margin: 0 0 18px; color: #52647a; line-height: 1.55; }
.ce-booking-change > .ce-calendar-card { margin-bottom: 20px; }
.ce-booking-change > .ce-booking-form { padding-bottom: 20px; }
.ce-booking-cancel-note { margin: 0 0 -12px; font-size: 13px; color: #52647a; line-height: 1.5; }
@media (max-width: 480px) { .ce-booking-change { padding: 0 12px; } }

.ce-calendar-card {
    border: 1px solid var(--ce-border);
    border-radius: 12px;
    padding: 0.9rem;
}

.ce-calendar-card > header {
    align-items: center;
    display: grid;
    grid-template-columns: 44px 1fr 44px;
}

.ce-calendar-card header a {
    align-items: center;
    border-radius: 8px;
    color: var(--ce-navy);
    display: flex;
    font-size: var(--font-title-large);
    height: 44px;
    justify-content: center;
    text-decoration: none;
}

.ce-calendar-card header a:hover,
.ce-calendar-card header a:focus-visible {
    background: var(--ce-blue-soft);
}

.ce-calendar-card h2 {
    font-family: var(--font-display);
    font-size: 1.35rem;
    margin: 0;
    text-align: center;
}

.ce-calendar-weekdays,
.ce-calendar-days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    text-align: center;
}

.ce-calendar-weekdays {
    color: var(--ce-muted);
    font-size: var(--font-caption);
    font-weight: 700;
    margin-top: 0.7rem;
}

.ce-calendar-weekdays span,
.ce-calendar-days > * {
    align-items: center;
    display: flex;
    justify-content: center;
    min-height: 46px;
}

.ce-calendar-days a {
    border-radius: 10px;
    color: var(--ce-ink);
    text-decoration: none;
}

.ce-calendar-days a:hover,
.ce-calendar-days a:focus-visible {
    background: var(--ce-blue-soft);
}

.ce-calendar-days .is-selected {
    background: var(--ce-navy);
    color: #fff;
    font-weight: 700;
}

.ce-calendar-days .is-outside {
    color: var(--muted);
}

.ce-calendar-days .is-disabled {
    color: #bdc6d2;
}

.ce-booking-form {
    display: grid;
    gap: 1rem;
}

.ce-time-picker {
    border: 0;
    margin: 0;
    padding: 0;
}

.ce-time-picker legend {
    font-family: var(--font-display);
    font-size: var(--font-section);
    font-weight: 700;
    margin-bottom: 0.75rem;
}

.ce-time-grid {
    display: grid;
    gap: 0.65rem;
    grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
}

.ce-time-grid input {
    opacity: 0;
    position: absolute;
}

.ce-time-grid span {
    align-items: center;
    background: #fff;
    border: 1px solid #8ca4c7;
    border-radius: 9px;
    color: var(--ce-ink);
    cursor: pointer;
    display: flex;
    font-weight: 700;
    justify-content: center;
    min-height: 50px;
}

.ce-time-grid input:checked + span {
    background: var(--ce-navy);
    border-color: var(--ce-navy);
    color: #fff;
}

.ce-time-grid input:focus-visible + span {
    box-shadow: 0 0 0 3px rgba(23, 79, 197, 0.18);
}

.ce-notice {
    border-radius: 9px;
    padding: 0.8rem 0.9rem;
}

.ce-notice.is-success {
    background: #eff8f1;
    border: 1px solid #b8d9c0;
    color: var(--ce-success);
}

.ce-notice.is-warning {
    color: #713f12;
    background: #fef3c7;
    border: 1px solid #d97706;
}

.ce-notice.is-error {
    background: #fff1f2;
    border: 1px solid #efc1c6;
    color: var(--ce-error);
}

.ce-empty-state {
    background: var(--ce-surface-soft);
    border-radius: 9px;
    color: var(--ce-muted);
    padding: 1rem;
}

.ce-cancel-form {
    text-align: center;
}

.ce-cancel-form button {
    background: transparent;
    border: 0;
    color: var(--ce-error);
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    text-decoration: underline;
}

.ce-booking-support {
    color: var(--ce-muted);
    margin: 0;
    text-align: center;
}

.ce-agenda-app {
    color: var(--ce-ink);
}

.ce-agenda-main {
    padding: 1.4rem;
}

.ce-agenda-page-head {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 1.1rem;
}

.ce-agenda-page-head h1 {
    font-size: clamp(1.65rem, 3vw, 2.2rem);
    margin: 0;
}

.ce-agenda-page-head p {
    color: var(--ce-muted);
    margin: 0.3rem 0 0;
}

.fp-review-actions a.is-active {
    background: var(--ce-navy);
    color: #fff;
}

.ce-agenda-layout {
    display: grid;
    gap: 1.1rem;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
}

.ce-week-card,
.ce-sidebar-card {
    background: #fff;
    border: 1px solid var(--ce-border);
    border-radius: 11px;
}

.ce-week-toolbar {
    align-items: center;
    border-bottom: 1px solid var(--ce-border);
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr auto 1fr;
    padding: 0.8rem;
}

.ce-week-toolbar nav {
    display: flex;
    gap: 0.4rem;
}

.ce-week-toolbar nav a {
    align-items: center;
    border: 1px solid var(--ce-border);
    border-radius: 7px;
    color: var(--ce-navy);
    display: flex;
    font-weight: 700;
    min-height: 38px;
    min-width: 38px;
    padding: 0 0.7rem;
    text-decoration: none;
}

.ce-week-toolbar h2 {
    font-size: 1.15rem;
    margin: 0;
    text-align: center;
}

.ce-week-toolbar form {
    justify-self: end;
}

.ce-week-grid {
    display: grid;
    grid-template-columns: 64px repeat(5, minmax(115px, 1fr));
    min-width: 720px;
    overflow: auto;
}

.ce-time-axis {
    height: 620px;
    margin-top: 45px;
    position: relative;
}

.ce-time-axis span {
    color: var(--ce-muted);
    font-size: var(--font-caption);
    left: 8px;
    position: absolute;
    top: calc(var(--line) * (620px / 540) - 7px);
}

.ce-day-column {
    border-left: 1px solid var(--ce-border);
}

.ce-day-column h3 {
    align-items: center;
    display: flex;
    font-size: var(--font-caption);
    height: 45px;
    justify-content: center;
    margin: 0;
}

.ce-day-slots {
    height: 620px;
    position: relative;
}

.ce-hour-line {
    border-top: 1px solid #e5ebf3;
    left: 0;
    position: absolute;
    right: 0;
    top: calc(var(--line) * (620px / 540));
}

.ce-appointment-card {
    background: var(--ce-navy);
    border-radius: 8px;
    color: #fff;
    display: grid;
    font-size: var(--font-caption);
    gap: 0.12rem;
    left: 6px;
    min-height: 58px;
    overflow: hidden;
    padding: 0.45rem;
    position: absolute;
    right: 6px;
    top: calc(var(--start) * (620px / 540));
    z-index: 2;
}

.ce-appointment-card small {
    background: rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    justify-self: start;
    padding: 0.1rem 0.35rem;
}

.ce-appointment-card a {
    color: #fff;
    font-weight: 700;
    margin-top: 0.2rem;
}

.ce-appointment-card.is-cancelled {
    background: #e5e9ef;
    color: #657188;
    text-decoration: line-through;
}

.ce-agenda-sidebar {
    display: grid;
    gap: 1rem;
}

.ce-sidebar-card {
    padding: 1rem;
}

.ce-sidebar-card h2 {
    font-size: 1.1rem;
    margin: 0 0 0.8rem;
}

.ce-sidebar-card dl {
    border: 1px solid var(--ce-border);
    border-radius: 8px;
    margin: 0;
    overflow: hidden;
}

.ce-sidebar-card dl div {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 0.75rem;
}

.ce-sidebar-card dl div + div {
    border-top: 1px solid var(--ce-border);
}

.ce-sidebar-card dt {
    font-weight: 700;
}

.ce-sidebar-card dd {
    color: #3f506c;
    margin: 0;
}

.ce-provider-row {
    align-items: center;
    border: 1px solid var(--ce-border);
    display: flex;
    gap: 0.7rem;
    justify-content: space-between;
    padding: 0.75rem;
}

.ce-provider-row + .ce-provider-row {
    border-top: 0;
}

.ce-provider-row:first-of-type {
    border-radius: 8px 8px 0 0;
}

.ce-provider-row:last-of-type {
    border-radius: 0 0 8px 8px;
}

.ce-provider-row > div {
    display: grid;
    gap: 0.2rem;
}

.ce-provider-row small {
    color: var(--ce-muted);
}

.ce-provider-status {
    color: var(--ce-muted);
    font-size: var(--font-caption);
}

.ce-provider-status.is-connected {
    background: #e9f7ed;
    border-radius: 999px;
    color: var(--ce-success);
    font-weight: 700;
    justify-self: start;
    padding: 0.15rem 0.45rem;
}

.ce-sync-note {
    background: var(--ce-surface-soft);
    border-radius: 8px;
    color: var(--ce-muted);
    font-size: var(--font-caption);
    line-height: 1.45;
    margin: 0.9rem 0 0;
    padding: 0.7rem;
}

.ce-availability-grid {
    display: grid;
    gap: 0.55rem;
    padding: 0.8rem 1.5rem 1.2rem;
}

.ce-availability-grid > div {
    align-items: center;
    display: grid;
    gap: 0.5rem;
    grid-template-columns: minmax(100px, 1fr) 112px auto 112px;
}

.ce-availability-grid label {
    align-items: center;
    display: flex;
    gap: 0.45rem;
}

.ce-availability-grid input[type="time"] {
    border: 1px solid var(--ce-border);
    border-radius: 7px;
    min-height: 40px;
    padding: 0.35rem;
}

.ce-studio-calendar {
    color: var(--ce-ink);
    display: grid;
    gap: 1.1rem;
    padding: 1.4rem;
}

.ce-studio-calendar > * {
    min-width: 0;
}

.ce-studio-calendar-head {
    align-items: end;
    display: flex;
    gap: 1.25rem;
    justify-content: space-between;
}

.ce-studio-calendar-heading-row {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
}

.ce-studio-calendar-heading-row h1 {
    font-size: clamp(1.65rem, 3vw, 2.2rem);
    margin: 0;
}

.ce-studio-calendar-heading-row span,
.ce-studio-calendar-status {
    background: #eaf2ff;
    border-radius: 999px;
    color: #1b5ab7;
    font-size: var(--font-caption);
    font-weight: 700;
    padding: 0.28rem 0.55rem;
}

.ce-studio-personal-calendar-link {
    display: inline-flex;
    margin-top: 0.8rem;
}

.ce-studio-calendar-head > div > p {
    color: var(--ce-muted);
    margin: 0.35rem 0 0;
    max-width: 760px;
}

.ce-studio-calendar-filter {
    background: #fff;
    border: 1px solid var(--ce-border);
    border-radius: 12px;
    display: grid;
    gap: 0.45rem;
    min-width: min(100%, 360px);
    padding: 0.8rem;
}

.ce-studio-calendar-filter label {
    color: #4f5f76;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-studio-calendar-filter > div {
    display: grid;
    gap: 0.55rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.ce-studio-calendar-filter select {
    appearance: none;
    background: #fff
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%234f5f76' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")
        no-repeat right 0.7rem center;
    border: 1px solid #cfd9e7;
    border-radius: 8px;
    color: var(--ce-ink);
    font: inherit;
    min-height: 42px;
    padding: 0.45rem 2.2rem 0.45rem 0.7rem;
}

.ce-studio-calendar-kpis {
    display: grid;
    gap: 0.8rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ce-studio-calendar-kpis article {
    background: #fff;
    border: 1px solid var(--ce-border);
    border-radius: 12px;
    display: grid;
    gap: 0.35rem;
    overflow: hidden;
    padding: 0.95rem 1rem;
    position: relative;
}

.ce-studio-calendar-kpis article::before {
    background: #173c77;
    bottom: 0;
    content: "";
    left: 0;
    position: absolute;
    top: 0;
    width: 4px;
}

.ce-studio-calendar-kpis article.is-green::before { background: #1f8a55; }
.ce-studio-calendar-kpis article.is-red::before { background: #c04455; }
.ce-studio-calendar-kpis article.is-blue::before { background: #3b73d1; }

.ce-studio-calendar-kpis span {
    color: var(--ce-muted);
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-studio-calendar-kpis strong {
    color: #10213e;
    font-size: 1.65rem;
}

.ce-studio-calendar-board,
.ce-studio-calendar-workload {
    background: #fff;
    border: 1px solid var(--ce-border);
    border-radius: 13px;
    min-width: 0;
    overflow: hidden;
}

.ce-studio-calendar-toolbar {
    align-items: center;
    border-bottom: 1px solid var(--ce-border);
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr auto 1fr;
    padding: 0.9rem 1rem;
}

.ce-studio-calendar-toolbar nav {
    display: flex;
    gap: 0.4rem;
}

.ce-studio-calendar-toolbar nav a {
    align-items: center;
    border: 1px solid var(--ce-border);
    border-radius: 8px;
    color: var(--ce-navy);
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 40px;
    min-width: 40px;
    padding: 0 0.75rem;
    text-decoration: none;
}

.ce-studio-calendar-toolbar h2 {
    font-size: 1.05rem;
    margin: 0;
    text-align: center;
}

.ce-studio-calendar-days {
    display: flex;
    min-width: 0;
    overflow-x: auto;
    width: 100%;
}

.ce-studio-calendar-day {
    border-left: 1px solid var(--ce-border);
    flex: 1 0 185px;
    min-width: 185px;
}

@media (min-width: 1280px) {
    .ce-studio-calendar-days {
        overflow-x: hidden;
    }

    .ce-studio-calendar-day {
        flex: 1 1 0;
        min-width: 0;
    }
}

.ce-studio-calendar-day:first-child {
    border-left: 0;
}

.ce-studio-calendar-day > header {
    align-items: center;
    background: #f8fafc;
    border-bottom: 1px solid var(--ce-border);
    display: flex;
    justify-content: space-between;
    padding: 0.7rem 0.75rem;
}

.ce-studio-calendar-day > header span {
    color: var(--ce-muted);
    font-size: var(--font-caption);
    font-weight: 700;
    text-transform: uppercase;
}

.ce-studio-calendar-day > header strong {
    align-items: center;
    display: inline-flex;
    font-size: 0.9rem;
    height: 30px;
    justify-content: center;
    width: 30px;
}

.ce-studio-calendar-day.is-today > header strong {
    background: var(--ce-navy);
    border-radius: 50%;
    color: #fff;
}

.ce-studio-calendar-day-list {
    display: grid;
    gap: 0.6rem;
    min-height: 240px;
    padding: 0.7rem;
}

.ce-studio-calendar-day-empty {
    align-self: start;
    color: #8a96a8;
    font-size: var(--font-caption);
    padding: 0.4rem 0.15rem;
}

.ce-studio-calendar-appointment {
    align-content: start;
    background: linear-gradient(155deg, #0e2d5f, #164b93);
    border-radius: 10px;
    box-shadow: 0 8px 18px rgba(15, 45, 94, 0.14);
    color: #fff;
    display: grid;
    gap: 0.32rem;
    min-height: 154px;
    padding: 0.7rem;
}

.ce-studio-calendar-time {
    align-items: baseline;
    display: flex;
    gap: 0.35rem;
}

.ce-studio-calendar-time strong {
    font-size: var(--font-body);
}

.ce-studio-calendar-time span,
.ce-studio-calendar-appointment > span {
    color: rgba(255, 255, 255, 0.78);
    font-size: var(--font-caption);
    line-height: 1.35;
}

.ce-studio-calendar-appointment > strong {
    font-size: 0.88rem;
}

.ce-studio-calendar-appointment .ce-studio-calendar-status {
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    justify-self: start;
}

.ce-studio-calendar-appointment a {
    color: #fff;
    font-size: var(--font-caption);
    font-weight: 700;
    margin-top: auto;
}

.ce-studio-calendar-appointment .ce-studio-calendar-live-action,
.ce-appointment-card .ce-agenda-live-action {
    align-items: center;
    background: #fff;
    border-radius: 8px;
    color: #0e2d5f;
    display: inline-flex;
    justify-content: center;
    line-height: 1.25;
    margin-top: 0.35rem;
    min-height: 36px;
    padding: 0.45rem 0.65rem;
    text-align: center;
    text-decoration: none;
}

.ce-studio-calendar-appointment .ce-studio-calendar-live-action:hover,
.ce-studio-calendar-appointment .ce-studio-calendar-live-action:focus-visible,
.ce-appointment-card .ce-agenda-live-action:hover,
.ce-appointment-card .ce-agenda-live-action:focus-visible {
    background: #e8f2ff;
    color: #0a2854;
    outline: 2px solid rgba(255, 255, 255, 0.7);
    outline-offset: 2px;
}

.ce-studio-calendar-appointment.is-cancelled {
    background: #eef1f5;
    box-shadow: none;
    color: #667287;
}

.ce-studio-calendar-appointment.is-cancelled .ce-studio-calendar-status {
    background: #f5dfe3;
    color: #9b3042;
}

.ce-studio-calendar-appointment.is-cancelled > span,
.ce-studio-calendar-appointment.is-cancelled a {
    color: #667287;
}

.ce-studio-calendar-empty {
    align-items: center;
    background: #f8fbff;
    border-bottom: 1px solid var(--ce-border);
    display: flex;
    gap: 0.55rem;
    justify-content: center;
    padding: 0.8rem;
}

.ce-studio-calendar-empty span {
    color: var(--ce-muted);
    font-size: var(--font-caption);
}

.ce-studio-calendar-workload > header {
    align-items: start;
    border-bottom: 1px solid var(--ce-border);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 1rem;
}

.ce-studio-calendar-workload h2,
.ce-studio-calendar-workload p {
    margin: 0;
}

.ce-studio-calendar-workload h2 {
    font-size: 1.05rem;
}

.ce-studio-calendar-workload header p {
    color: var(--ce-muted);
    font-size: var(--font-body);
    line-height: 1.5;
    margin-top: 0.3rem;
    max-width: 560px;
}

.ce-studio-calendar-workload > header > p {
    background: #f4f7fb;
    border-radius: 8px;
    padding: 0.55rem 0.7rem;
}

.ce-studio-calendar-workload > div {
    display: grid;
    gap: 0.7rem;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    padding: 0.9rem 1rem 1rem;
}

.ce-studio-calendar-workload article {
    align-items: center;
    border: 1px solid var(--ce-border);
    border-radius: 10px;
    display: grid;
    gap: 0.15rem 0.65rem;
    grid-template-columns: auto 1fr;
    padding: 0.65rem;
}

.ce-studio-calendar-workload article > span {
    align-items: center;
    background: #dce9fb;
    border-radius: 10px;
    color: #174a94;
    display: flex;
    font-weight: 700;
    grid-row: 1 / 3;
    height: 38px;
    justify-content: center;
    width: 38px;
}

.ce-studio-calendar-workload article > span.is-tone-2 { background: #dff4e7; color: #176b43; }
.ce-studio-calendar-workload article > span.is-tone-3 { background: #fff0d8; color: #965712; }
.ce-studio-calendar-workload article > span.is-tone-4 { background: #eee5fb; color: #6440a1; }
.ce-studio-calendar-workload article > span.is-tone-5 { background: #f9e0e7; color: #963b55; }
.ce-studio-calendar-workload article > span.is-tone-6 { background: #dff3f4; color: #17666d; }

.ce-studio-calendar-workload article strong {
    font-size: var(--font-caption);
}

.ce-studio-calendar-workload article small {
    color: var(--ce-muted);
}

.ce-studio-calendar-no-periti {
    color: var(--ce-muted);
    font-size: var(--font-caption);
    margin: 0;
}

@media (max-width: 980px) {
    .ce-mode-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ce-agenda-layout {
        grid-template-columns: 1fr;
    }

    .ce-agenda-sidebar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ce-week-card {
        overflow-x: auto;
    }

    .ce-studio-calendar-head {
        align-items: stretch;
        flex-direction: column;
    }

    .ce-studio-calendar-filter {
        min-width: 0;
    }

    .ce-studio-calendar-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .ce-collection-head-actions {
        justify-content: stretch;
    }

    .ce-collection-head-actions .ce-primary-button,
    .ce-collection-head-actions .ce-secondary-button {
        flex: 1 1 190px;
    }

    .ce-mode-grid {
        grid-template-columns: 1fr;
    }

    .ce-appointment-method {
        grid-template-columns: 1fr;
    }

    .ce-mode-card {
        min-height: 150px;
    }

    .ce-link-row {
        grid-template-columns: 1fr 1fr;
    }

    .ce-link-row input {
        grid-column: 1 / -1;
    }

    .ce-collection-state {
        grid-template-columns: 1fr;
    }

    .ce-agenda-sidebar {
        grid-template-columns: 1fr;
    }

    .ce-agenda-page-head {
        align-items: stretch;
        flex-direction: column;
    }

    .ce-agenda-page-head .ce-primary-button {
        width: 100%;
    }

    .ce-week-toolbar {
        grid-template-columns: 1fr;
    }

    .ce-week-toolbar nav,
    .ce-week-toolbar form {
        justify-self: center;
    }

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

    .ce-studio-calendar-toolbar nav {
        justify-self: center;
    }

    .ce-studio-calendar-workload > header {
        flex-direction: column;
    }

    .ce-availability-grid > div {
        grid-template-columns: 1fr 1fr;
    }

    .ce-availability-grid label {
        grid-column: 1 / -1;
    }
}

@media (max-width: 540px) {
    .ce-modal {
        align-items: flex-end;
        padding: 0;
    }

    .ce-modal-dialog {
        border-radius: 16px 16px 0 0;
        max-height: 94vh;
    }

    .ce-modal-header,
    .ce-mode-grid,
    .ce-collection-config,
    .ce-modal-footer {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .ce-modal-footer {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .ce-booking-header {
        padding-inline: 0.15rem;
    }

    .ce-booking-brand {
        font-size: 1.08rem;
    }

    .ce-booking-main {
        padding-inline: 0.15rem;
    }

    .ce-booking-facts {
        grid-template-columns: 1fr;
    }

    .ce-booking-facts span + span {
        border-left: 0;
        border-top: 1px solid var(--ce-border);
    }

    .ce-calendar-card {
        padding-inline: 0.35rem;
    }

    .ce-calendar-weekdays span,
    .ce-calendar-days > * {
        min-height: 42px;
    }

    .ce-time-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ce-studio-calendar {
        padding: 0.9rem;
    }

    .ce-studio-calendar-filter > div,
    .ce-studio-calendar-kpis {
        grid-template-columns: 1fr;
    }

    .ce-studio-calendar-filter .ce-primary-button {
        width: 100%;
    }

    .ce-studio-calendar-empty {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ce-modal *,
    .ce-agenda-app *,
    .ce-booking-app * {
        scroll-behavior: auto !important;
        transition: none !important;
    }
}

.ce-live-preflight {
    background: #fff;
    border: 1px solid #d7e1ef;
    border-radius: 18px;
    box-sizing: border-box;
    box-shadow: 0 18px 45px rgba(20, 43, 79, 0.1);
    display: grid;
    gap: 1rem;
    margin: 0 auto;
    max-width: 720px;
    min-width: 0;
    padding: clamp(1rem, 3vw, 1.6rem);
    width: 100%;
}

.ce-live-preflight-heading h2,
.ce-live-preflight-step h3 {
    color: var(--ce-ink);
    margin: 0.25rem 0 0;
}

.ce-live-preflight-heading p,
.ce-live-preflight-step > p {
    color: var(--ce-muted);
    line-height: 1.55;
    margin: 0.45rem 0 0;
}

.ce-live-preflight-step {
    display: grid;
    gap: 0.8rem;
}

.ce-live-step-counter {
    background: #eaf2ff;
    border-radius: 999px;
    color: #174a91;
    font-size: var(--font-caption);
    font-weight: 700;
    justify-self: start;
    padding: 0.3rem 0.65rem;
}

.ce-live-consent {
    align-items: center;
    background: #f8fafc;
    border: 1px solid #dce5f1;
    border-radius: 10px;
    color: var(--ce-ink);
    cursor: pointer;
    display: flex;
    gap: 0.7rem;
    min-height: 48px;
    padding: 0.7rem 0.8rem;
}

.ce-live-consent input {
    accent-color: var(--ce-blue);
    height: 20px;
    margin: 0;
    width: 20px;
}

.ce-live-preflight .ce-field input {
    background: #fff;
    border: 1px solid #b9c8dc;
    border-radius: 8px;
    box-sizing: border-box;
    color: var(--ce-ink);
    font: inherit;
    min-height: 46px;
    padding: 0.65rem 0.7rem;
    width: 100%;
}

.ce-live-preflight .ce-field small {
    color: var(--ce-muted);
}

.ce-live-preflight-details {
    border: 1px solid #dce5f1;
    border-radius: 10px;
    padding: 0.75rem 0.85rem;
}

.ce-live-preflight-details summary {
    color: var(--ce-ink);
    cursor: pointer;
    font-weight: 700;
}

.ce-live-preflight-details > div {
    display: grid;
    gap: 0.35rem;
    padding-top: 0.8rem;
}

.ce-live-preflight-details p {
    color: var(--ce-muted);
    line-height: 1.45;
    margin: 0 0 0.45rem;
}

.ce-live-preflight-error,
.ce-live-gps-status {
    border-radius: 10px;
    font-weight: 650;
    padding: 0.75rem 0.85rem;
}

.ce-live-preflight-error {
    background: #fff1f3;
    color: #9c1c2e !important;
}

.ce-live-gps-status {
    background: #edf7ef;
    color: #176a35 !important;
    margin: 0 !important;
}

.ce-live-gps-status.is-warning {
    background: #fff6e6;
    color: #8a5200 !important;
}

.ce-live-gps-reference {
    background: #f1f7ff;
    border: 1px solid #cfe0f7;
    border-radius: 10px;
    display: grid;
    gap: 0.25rem;
    padding: 0.8rem;
}

.ce-live-gps-reference span,
.ce-live-gps-grid span {
    color: var(--ce-muted);
    font-size: var(--font-caption);
}

.ce-live-gps-reference strong,
.ce-live-gps-grid strong {
    color: var(--ce-ink);
}

.ce-live-gps-grid {
    display: grid;
    gap: 0.6rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ce-live-gps-grid span {
    display: grid;
    gap: 0.2rem;
}

@media (max-width: 520px) {
    .ce-live-gps-grid {
        grid-template-columns: 1fr;
    }
}

.ce-live-room {
    box-sizing: border-box;
    display: grid;
    gap: 1rem;
    margin: 0 auto;
    max-width: 1320px;
    min-height: calc(100vh - 5rem);
    padding: clamp(0.75rem, 2vw, 1.5rem);
    width: 100%;
}

.ce-live-room-header {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.ce-live-room-header h1 {
    color: var(--ce-ink);
    font-size: clamp(1.65rem, 3vw, 2.35rem);
    letter-spacing: -0.035em;
    margin: 0.2rem 0;
}

.ce-live-room-header p {
    color: var(--ce-muted);
    margin: 0;
}

.ce-live-studio-brand {
    align-items: center;
    display: flex;
    margin-bottom: 0.85rem;
    min-height: 40px;
}

.ce-live-studio-brand img {
    display: block;
    height: 40px;
    max-width: 210px;
    object-fit: contain;
    object-position: left center;
    width: auto;
}

.ce-live-studio-brand strong {
    color: var(--ce-ink);
    font-size: var(--font-body);
    font-weight: 700;
}

.ce-live-eyebrow {
    color: var(--ce-blue);
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ce-live-security {
    align-items: flex-start;
    background: #f1f7ff;
    border: 1px solid #cfe0f7;
    border-radius: 12px;
    color: #24466f;
    display: flex;
    font-size: var(--font-caption);
    gap: 0.55rem;
    line-height: 1.4;
    max-width: 390px;
    padding: 0.75rem 0.9rem;
}

.ce-live-security span {
    color: var(--ce-success);
}

.ce-live-statusbar {
    align-items: center;
    background: #fff;
    border: 1px solid var(--ce-border);
    border-radius: 11px;
    color: var(--ce-muted);
    display: flex;
    flex-wrap: wrap;
    font-size: 0.88rem;
    gap: 0.55rem;
    min-height: 44px;
    padding: 0.55rem 0.8rem;
}

.ce-live-statusbar strong {
    color: var(--ce-ink);
}

.ce-live-media-retry,
.ce-live-audio-start {
    margin-left: auto;
    min-height: 36px;
    padding-block: 0.45rem;
}

.ce-live-status-dot {
    background: #8996aa;
    border-radius: 50%;
    height: 9px;
    width: 9px;
}

.ce-live-room.is-connected .ce-live-status-dot {
    background: var(--ce-success);
    box-shadow: 0 0 0 4px rgba(24, 116, 58, 0.12);
}

.ce-live-grid {
    align-items: start;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) minmax(290px, 350px);
}

.ce-live-media-column {
    display: grid;
    gap: 1rem;
    min-width: 0;
}

.ce-live-stage {
    aspect-ratio: 16 / 10;
    background:
        radial-gradient(circle at 50% 20%, rgba(49, 93, 166, 0.24), transparent 42%),
        linear-gradient(150deg, #0b1730, #071020);
    border: 1px solid #152747;
    border-radius: 18px;
    box-shadow: 0 22px 55px rgba(5, 18, 43, 0.24);
    min-height: 380px;
    min-width: 0;
    overflow: hidden;
    position: relative;
    width: 100%;
}

.ce-live-stage-join {
    align-items: center;
    background: rgba(5, 20, 42, 0.46);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 1.25rem;
    position: absolute;
    z-index: 4;
}

.ce-live-stage-join[hidden] {
    display: none !important;
}

.ce-live-stage-join-action {
    box-shadow: 0 18px 44px rgba(0, 39, 98, 0.42);
    font-size: clamp(1rem, 3vw, 1.25rem);
    font-weight: 700;
    max-width: 360px;
    min-height: 62px;
    padding: 1rem 1.35rem;
    width: 100%;
}

.ce-live-stage video {
    height: 100%;
    object-fit: contain;
    width: 100%;
}

.ce-live-stage-placeholder {
    align-items: center;
    color: #dbe7fb;
    display: flex;
    flex-direction: column;
    inset: 0;
    justify-content: center;
    padding: 2rem;
    position: absolute;
    text-align: center;
}

.ce-live-stage-placeholder > span {
    align-items: center;
    background: rgba(122, 157, 213, 0.16);
    border: 1px solid rgba(177, 201, 237, 0.22);
    border-radius: 50%;
    display: inline-flex;
    font-size: 1.55rem;
    height: 62px;
    justify-content: center;
    margin-bottom: 0.9rem;
    width: 62px;
}

.ce-live-stage-placeholder strong {
    font-size: 1.15rem;
}

.ce-live-stage-placeholder p {
    color: #9eb1cf;
    line-height: 1.5;
    margin: 0.45rem 0 0;
    max-width: 430px;
}

.ce-live-video-label {
    backdrop-filter: blur(12px);
    background: rgba(4, 13, 30, 0.72);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    bottom: 0.8rem;
    color: #fff;
    font-size: var(--font-caption);
    font-weight: 700;
    left: 0.8rem;
    padding: 0.45rem 0.65rem;
    position: absolute;
}

.ce-live-captured-photos {
    background: #fff;
    border: 1px solid var(--ce-border);
    border-radius: 14px;
    box-shadow: 0 12px 32px rgba(20, 43, 79, 0.07);
    display: grid;
    gap: 0.8rem;
    padding: 1rem;
}

.ce-live-captured-photos-head {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.ce-live-captured-photos-head h2 {
    color: var(--ce-ink);
    font-size: var(--font-body);
    margin: 0;
}

.ce-live-captured-photos-head span {
    align-items: center;
    background: #eaf2ff;
    border-radius: 999px;
    color: #174a91;
    display: inline-flex;
    font-size: var(--font-caption);
    font-weight: 700;
    justify-content: center;
    min-height: 28px;
    min-width: 28px;
    padding: 0 0.5rem;
}

.ce-live-captured-photos-empty {
    border: 1px dashed #bfd0e7;
    border-radius: 10px;
    color: var(--ce-muted);
    font-size: var(--font-caption);
    margin: 0;
    padding: 0.85rem;
}

.ce-live-captured-photos-empty[hidden] {
    display: none;
}

.ce-live-captured-photos-list {
    display: grid;
    gap: 0.7rem;
    grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
}

.ce-live-captured-photo {
    background: #f8fafc;
    border: 1px solid #d7e1ef;
    border-radius: 11px;
    color: var(--ce-ink);
    cursor: zoom-in;
    display: grid;
    font: inherit;
    gap: 0.45rem;
    min-width: 0;
    overflow: hidden;
    padding: 0.4rem;
    text-align: left;
}

.ce-live-captured-photo:hover,
.ce-live-captured-photo:focus-visible {
    border-color: #2d67b2;
    box-shadow: 0 0 0 3px rgba(45, 103, 178, 0.14);
    outline: none;
}

.ce-live-captured-photo img {
    aspect-ratio: 4 / 3;
    background: #e8eef7;
    border-radius: 7px;
    display: block;
    object-fit: cover;
    width: 100%;
}

.ce-live-captured-photo span {
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.25;
    overflow: hidden;
    padding: 0 0.2rem 0.15rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ce-live-photo-viewer {
    align-items: center;
    background: rgba(3, 12, 28, 0.88);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: clamp(1rem, 4vw, 3rem);
    position: fixed;
    z-index: 100;
}

.ce-live-photo-viewer[hidden] {
    display: none;
}

.ce-live-photo-viewer > button {
    align-items: center;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.42);
    border-radius: 50%;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    font-size: var(--font-title-small);
    height: 44px;
    justify-content: center;
    position: absolute;
    right: 1rem;
    top: 1rem;
    width: 44px;
}

.ce-live-photo-viewer > button:focus-visible {
    outline: 3px solid #8ab9ff;
    outline-offset: 3px;
}

.ce-live-photo-viewer figure {
    display: grid;
    gap: 0.75rem;
    margin: 0;
    max-height: 90vh;
    max-width: min(1100px, 92vw);
}

.ce-live-photo-viewer img {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.38);
    max-height: 80vh;
    max-width: 100%;
    object-fit: contain;
}

.ce-live-photo-viewer figcaption {
    color: #fff;
    font-size: 0.9rem;
    font-weight: 700;
    text-align: center;
}

.ce-live-panel {
    display: grid;
    gap: 0.8rem;
}

.ce-live-card {
    background: #fff;
    border: 1px solid var(--ce-border);
    border-radius: 14px;
    box-shadow: var(--shadow-soft);
    display: grid;
    gap: 0.75rem;
    padding: 1rem;
}

.ce-live-recovery-item {
    display: grid;
    gap: 0.65rem;
}

.ce-live-recovery-item + .ce-live-recovery-item {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--ce-border, #dce5f4);
}

.ce-live-recovery-item p {
    margin: 0;
}

.ce-live-card[hidden] {
    display: none;
}

.ce-live-card h2 {
    color: var(--ce-ink);
    font-size: var(--font-body);
    margin: 0;
}

.ce-live-presence {
    display: grid;
    gap: 0.5rem;
    grid-template-columns: 1fr 1fr;
}

.ce-live-presence > div {
    background: var(--ce-surface-soft);
    border: 1px solid #e5ebf4;
    border-radius: 9px;
    display: grid;
    gap: 0.2rem;
    min-width: 0;
    padding: 0.65rem;
}

.ce-live-presence span {
    color: var(--ce-muted);
    font-size: var(--font-caption);
}

.ce-live-presence strong {
    color: var(--ce-ink);
    font-size: var(--font-caption);
    overflow: hidden;
    text-overflow: ellipsis;
}

.ce-live-wide-action {
    width: 100%;
}

.ce-live-card .ce-live-admit-action {
    background: linear-gradient(135deg, #0757c9, #003b8f);
    border-color: #0757c9;
    box-shadow: 0 12px 26px rgba(7, 87, 201, 0.28);
    font-size: 1.04rem;
    font-weight: 700;
    min-height: 54px;
}

.ce-live-admit-action:hover,
.ce-live-admit-action:focus-visible {
    background: linear-gradient(135deg, #064cae, #002f73);
    border-color: #064cae;
    box-shadow: 0 0 0 4px rgba(65, 137, 234, 0.24), 0 14px 30px rgba(7, 87, 201, 0.3);
    outline: none;
}

.ce-live-waiting-card.is-insured-waiting {
    border-color: #7faae5;
    box-shadow: var(--shadow-soft);
}

.ce-live-waiting-card.is-insured-waiting .ce-live-admit-action {
    animation: ce-live-admit-pulse 1.8s ease-in-out infinite;
}

@keyframes ce-live-admit-pulse {
    0%, 100% { box-shadow: 0 12px 26px rgba(7, 87, 201, 0.28); }
    50% { box-shadow: 0 0 0 5px rgba(65, 137, 234, 0.16), 0 14px 30px rgba(7, 87, 201, 0.32); }
}

@media (prefers-reduced-motion: reduce) {
    .ce-live-waiting-card.is-insured-waiting .ce-live-admit-action {
        animation: none;
    }
}

.ce-live-estimate {
    border-top: 4px solid #2d67b2;
    overflow: hidden;
}

.ce-live-estimate.is-processing {
    border-top-color: #d49322;
}

.ce-live-estimate.is-ready {
    border-top-color: #15805f;
}

.ce-live-estimate.is-error {
    border-top-color: #b42335;
}

.ce-live-estimate.is-stale {
    background: #fffaf0;
    border-color: #e3b55f;
}

.ce-live-estimate-heading {
    display: grid;
    gap: 0.2rem;
}

.ce-live-estimate-heading > span {
    color: #2d67b2;
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ce-live-estimate-value {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.ce-live-estimate-value > strong {
    color: var(--ce-ink);
    font-size: clamp(1.35rem, 3vw, 1.8rem);
    line-height: 1.2;
}

.ce-live-estimate-value > span {
    background: #e9f6f1;
    border-radius: 999px;
    color: #116249;
    font-size: var(--font-caption);
    font-weight: 700;
    padding: 0.3rem 0.55rem;
}

.ce-live-estimate-status,
.ce-live-estimate-notice {
    line-height: 1.45;
    margin: 0;
}

.ce-live-estimate-status {
    color: #344764;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-live-estimate-notice {
    color: var(--ce-muted);
    font-size: var(--font-caption);
}

.ce-live-close-card p {
    color: var(--ce-muted);
    line-height: 1.5;
    margin: 0.45rem 0 0;
}

.ce-live-danger-button {
    align-items: center;
    background: #fff;
    border: 1px solid #b42335;
    border-radius: 9px;
    color: #9c1c2e;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: 700;
    justify-content: center;
    min-height: 44px;
    padding: 0.72rem 1rem;
    width: 100%;
}

.ce-live-danger-button:hover,
.ce-live-danger-button:focus-visible {
    background: #fff1f3;
    border-color: #8f1727;
}

.ce-live-danger-button:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.ce-live-close-confirm {
    display: grid;
    gap: 0.7rem;
}

.ce-live-close-actions {
    display: grid;
    gap: 0.55rem;
    grid-template-columns: 1fr 1fr;
}

@media (max-width: 520px) {
    .ce-live-close-actions {
        grid-template-columns: 1fr;
    }
}

.ce-live-card select {
    background: #fff;
    border: 1px solid #b9c8dc;
    border-radius: 8px;
    color: var(--ce-ink);
    font: inherit;
    min-height: 44px;
    padding: 0.65rem 0.7rem;
    width: 100%;
}

.ce-live-action-stack {
    display: grid;
    gap: 0.55rem;
    grid-template-columns: 1fr;
}

.ce-live-privacy {
    background: #f8fafc;
    box-shadow: none;
}

.ce-live-privacy p {
    color: #4c5e79;
    font-size: var(--font-body);
    line-height: 1.45;
    margin: 0;
}

@media (max-width: 920px) {
    .ce-live-grid {
        grid-template-columns: 1fr;
    }

    .ce-live-panel {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ce-live-waiting-card,
    .ce-live-privacy,
    .ce-live-close-card {
        grid-column: 1 / -1;
    }
}

@media (max-width: 640px) {
    .ce-live-room {
        min-height: auto;
        padding: 0.35rem;
    }

    .ce-live-room-header {
        display: grid;
    }

    .ce-live-security {
        max-width: none;
    }

    .ce-live-media-retry,
    .ce-live-audio-start {
        margin-left: 0;
        width: 100%;
    }

    .ce-live-stage {
        aspect-ratio: 3 / 4;
        border-radius: 14px;
        min-height: 430px;
    }

    .ce-live-panel {
        grid-template-columns: 1fr;
    }

    .ce-live-panel > * {
        grid-column: auto;
    }
}

.ce-agenda-managed-note {
    background: #eaf2ff;
    border-radius: 999px;
    color: #17427a;
    font-size: var(--font-caption);
    font-weight: 700;
    padding: 0.55rem 0.8rem;
}

.ce-studio-calendar-management {
    background: #fff;
    border: 1px solid #d9e3ef;
    border-radius: 1rem;
    box-shadow: 0 14px 40px rgb(25 54 93 / 8%);
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
    min-width: 0;
    padding: 1.2rem;
}

.ce-studio-calendar-management > header h2,
.ce-studio-calendar-management > header p,
.ce-studio-calendar-management h3,
.ce-studio-appointment-form p {
    margin: 0;
}

.ce-studio-calendar-management > header p,
.ce-studio-appointment-form p {
    color: #5c6f88;
    margin-top: 0.3rem;
}

.ce-studio-priority-form,
.ce-studio-appointment-form,
.ce-studio-availability-list {
    background: #f8fafc;
    border: 1px solid #e1e8f0;
    border-radius: 0.9rem;
    display: grid;
    gap: 0.85rem;
    padding: 1rem;
}

.ce-studio-priority-form > div {
    display: grid;
    gap: 0.65rem;
    grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
}

.ce-studio-priority-form label,
.ce-studio-appointment-form label {
    display: grid;
    gap: 0.3rem;
    min-width: 0;
}

.ce-studio-priority-form select,
.ce-studio-appointment-form select,
.ce-studio-appointment-form input {
    background: #fff;
    border: 1px solid #bdcada;
    border-radius: 0.65rem;
    min-width: 0;
    min-height: 2.75rem;
    padding: 0 0.7rem;
    width: 100%;
}

.ce-studio-availability-list details {
    background: #fff;
    border: 1px solid #dce5ef;
    border-radius: 0.75rem;
    overflow: hidden;
}

.ce-studio-availability-list summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    padding: 0.85rem 1rem;
}

.ce-studio-availability-list details form {
    border-top: 1px solid #e3eaf2;
    display: grid;
    gap: 0.85rem;
    padding: 1rem;
}

.ce-studio-appointment-form {
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
}

.ce-studio-appointment-form [hidden] {
    display: none;
}

.ce-studio-appointment-form h3,
.ce-studio-appointment-form p {
    grid-column: 1 / -1;
}

.ce-studio-appointment-form .ce-primary-button {
    align-self: end;
}

.ce-studio-appointment-practice-field {
    position: relative;
    display: grid;
    gap: 0.3rem;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr);
    grid-column: span 2;
}

.ce-practice-trigger {
    align-items: center;
    background: #fff;
    border: 1px solid #bdcada;
    border-radius: 0.65rem;
    color: inherit;
    cursor: pointer;
    display: flex;
    font: inherit;
    gap: 0.5rem;
    justify-content: space-between;
    min-height: 2.75rem;
    min-width: 0;
    padding: 0.55rem 0.7rem;
    text-align: left;
    width: 100%;
}
.ce-practice-trigger > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ce-practice-trigger:focus-visible, .ce-practice-search input:focus {
    outline: 3px solid #bad3f3;
    outline-offset: 1px;
    border-color: #438cd9;
}
.ce-practice-trigger[aria-invalid="true"] { border-color: #b42318; }
.ce-practice-popup {
    background: #fff;
    border: 1px solid #bdcada;
    border-radius: 0.7rem;
    box-shadow: 0 8px 24px rgb(16 35 63 / 14%);
    inset-inline: 0;
    margin-top: 0.35rem;
    position: absolute;
    z-index: 30;
    overflow: hidden;
}
.ce-practice-search { padding: 0.6rem; border-bottom: 1px solid #e1e8f0; }
.ce-practice-results { max-height: 15rem; max-height: min(15rem, 40dvh); overflow-y: auto; overscroll-behavior: contain; padding: 0.3rem; }
.ce-practice-option { border-radius: 0.4rem; cursor: pointer; display: grid; gap: 0.15rem; min-height: 3.4rem; padding: 0.55rem 0.65rem; overflow-wrap: anywhere; }
.ce-practice-option strong { font-weight: 650; }
.ce-practice-option span { color: #52677f; font-size: 0.85rem; }
.ce-practice-option:hover, .ce-practice-option.is-active { background: #eaf3ff; }
.ce-practice-option[aria-selected="true"] { box-shadow: inset 3px 0 #1769e0; }
.ce-practice-result-status { border-top: 1px solid #e1e8f0; color: #52677f; font-size: 0.8rem; padding: 0.5rem 0.75rem; }

.ce-studio-calendar-mode {
    color: #335f91;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-studio-appointment-form .ce-studio-appointment-status {
    min-height: 1.25rem;
    color: #52677f;
    font-size: var(--font-caption);
    font-weight: 650;
}

.ce-studio-appointment-form .ce-studio-appointment-status.is-error {
    color: #b42318;
}

.ce-studio-appointment-form :is(input, select):disabled,
.ce-studio-appointment-form .ce-primary-button:disabled {
    cursor: not-allowed;
    opacity: 0.62;
}

.ce-studio-calendar-workload article b {
    color: #1f5c99;
    font-size: var(--font-caption);
}

.ce-studio-calendar-appointment form {
    margin: 0;
}

.ce-link-button.is-danger {
    color: #b42318;
}

@media (max-width: 820px) {
    .ce-studio-appointment-form {
        grid-template-columns: 1fr;
    }

    .ce-studio-appointment-form h3,
    .ce-studio-appointment-form p,
    .ce-studio-appointment-practice-field {
        grid-column: auto;
    }
}

/* Calendar Studio workspace v2 */
.ce-studio-calendar-v2 {
    --ce-calendar-ink: #10233f;
    --ce-calendar-muted: #617087;
    --ce-calendar-line: #dfe7f0;
    --ce-calendar-blue: #1769e0;
    --ce-calendar-blue-soft: #eaf3ff;
    --ce-calendar-amber: #b25b00;
    --ce-calendar-amber-soft: #fff3df;
    color: var(--ce-calendar-ink);
    display: grid;
    gap: 1.35rem;
    max-width: none;
    min-width: 0;
}

.ce-studio-calendar-symbols { height: 0; overflow: hidden; position: absolute; width: 0; }

.ce-studio-calendar-v2 [hidden] { display: none !important; }
.ce-studio-calendar-v2 .ce-visually-hidden {
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    white-space: nowrap !important;
    width: 1px !important;
}

.ce-studio-calendar-v2 .ce-studio-calendar-head {
    align-items: flex-end;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    display: flex;
    gap: 2rem;
    justify-content: space-between;
    padding: 0;
}

.ce-studio-calendar-breadcrumb {
    color: var(--muted) !important;
    font-size: var(--font-caption) !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em;
    margin: 0 0 0.45rem !important;
}

.ce-studio-calendar-v2 .ce-studio-calendar-heading-row { gap: 0; }
.ce-studio-calendar-v2 .ce-studio-calendar-heading-row h1 { color: var(--ce-calendar-ink); font-size: clamp(2rem, 2.7vw, 2.35rem); letter-spacing: -0.04em; line-height: 1.2; }
.ce-studio-calendar-v2 .ce-studio-calendar-head > div > p:last-child { color: var(--ce-calendar-muted); margin: 0.35rem 0 0; }

.ce-studio-new-appointment {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    gap: 0.45rem;
    min-height: 2.9rem;
    padding-inline: 1.25rem;
}
.ce-studio-new-appointment span { font-size: 1.35rem; font-weight: 400; line-height: 1.2; }

.ce-studio-calendar-tabs {
    border-bottom: 1px solid var(--ce-calendar-line);
    display: flex;
    gap: 3.2rem;
    overflow-x: auto;
}
.ce-studio-calendar-tabs a {
    border-bottom: 2px solid transparent;
    color: #5c6d83;
    flex: 0 0 auto;
    font-size: 0.92rem;
    font-weight: 700;
    padding: 0.25rem 0 0.95rem;
    text-decoration: none;
}
.ce-studio-calendar-tabs a:hover { color: var(--ce-calendar-blue); }
.ce-studio-calendar-tabs a.is-active { border-bottom-color: var(--ce-calendar-blue); color: var(--ce-calendar-blue); }

.ce-studio-calendar-panel { display: grid; gap: 1.15rem; min-width: 0; }
.ce-studio-calendar-v2 .ce-studio-calendar-kpis {
    display: grid;
    gap: 1.4rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.ce-studio-calendar-v2 .ce-studio-calendar-kpis article {
    align-items: center;
    background: #fff;
    border: 1px solid var(--ce-calendar-line);
    border-radius: 0.8rem;
    box-shadow: 0 8px 24px rgba(16, 35, 63, 0.045);
    display: flex;
    gap: 1rem;
    min-height: 5.15rem;
    padding: 1rem 1.15rem;
}
.ce-studio-calendar-v2 .ce-studio-calendar-kpis article::before { content: none !important; }
.ce-studio-calendar-v2 .ce-studio-calendar-kpis article > div { display: grid; gap: 0.2rem; min-width: 0; }
.ce-studio-kpi-icon,
.ce-studio-kpi-avatar { align-items: center; background: #eef5ff; border-radius: 0.7rem; color: #0866e8; display: flex; flex: 0 0 auto; height: 2.65rem; justify-content: center; width: 2.65rem; }
.ce-studio-kpi-icon svg { fill: none; height: 1.45rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; width: 1.45rem; }
.ce-studio-calendar-kpis article.is-green .ce-studio-kpi-icon { background: #e8f7ef; color: #16905b; }
.ce-studio-calendar-kpis article.is-red .ce-studio-kpi-icon { background: #fff0ef; color: #e24a3b; }
.ce-studio-calendar-kpis article.is-violet .ce-studio-kpi-icon { background: #f0edff; color: #6551db; }
.ce-studio-kpi-avatar { border-radius: 50%; font-size: var(--font-caption); font-style: normal; font-weight: 700; }
.ce-studio-calendar-kpis article.is-tone-2 .ce-studio-kpi-avatar { background: #e7f6ed; color: #198a50; }
.ce-studio-calendar-kpis article.is-tone-3 .ce-studio-kpi-avatar { background: #f0edff; color: #6551db; }
.ce-studio-calendar-v2 .ce-studio-calendar-kpis article strong { color: var(--ce-calendar-ink); font-size: 1.55rem; line-height: 1.2; }
.ce-studio-calendar-v2 .ce-studio-calendar-kpis article span { color: var(--ce-calendar-muted); font-size: var(--font-caption); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.ce-studio-calendar-v2 .ce-studio-calendar-board {
    background: #fff;
    border: 1px solid var(--ce-calendar-line);
    border-radius: 0.95rem;
    box-shadow: 0 14px 36px rgba(16, 35, 63, 0.055);
    min-width: 0;
    overflow: hidden;
}
.ce-studio-calendar-v2 .ce-studio-calendar-toolbar {
    align-items: start;
    border-bottom: 1px solid var(--ce-calendar-line);
    display: grid;
    gap: 1rem 1.4rem;
    grid-template-columns: auto minmax(12rem, 1fr) auto;
    min-height: 6.7rem;
    padding: 0.75rem 1.15rem;
}
.ce-studio-calendar-v2 .ce-studio-calendar-toolbar > nav,
.ce-studio-calendar-v2 .ce-studio-calendar-toolbar > h2 { margin-top: 0.2rem; }
.ce-studio-calendar-v2 .ce-studio-calendar-toolbar > nav { align-items: center; display: flex; gap: 0.35rem; }
.ce-studio-calendar-v2 .ce-studio-calendar-toolbar > nav a { align-items: center; border: 1px solid var(--ce-calendar-line); border-radius: 0.5rem; color: #435873; display: inline-flex; font-size: 0.88rem; font-weight: 700; height: 2.35rem; justify-content: center; min-width: 2.35rem; padding: 0 0.72rem; text-decoration: none; }
.ce-studio-calendar-v2 .ce-studio-calendar-toolbar > h2 { font-size: 1.08rem; text-align: center; }
.ce-studio-calendar-toolbar-actions { align-items: end; display: grid; gap: 0.55rem; justify-items: end; }
.ce-studio-calendar-view-switcher { background: #f2f5f9; border-radius: 0.55rem; display: flex; padding: 0.2rem; }
.ce-studio-calendar-view-switcher button { background: transparent; border: 0; border-radius: 0.4rem; color: var(--muted); cursor: pointer; font-size: var(--font-label); font-weight: 700; min-height: 2.1rem; padding: 0.45rem 0.8rem; }
.ce-studio-calendar-view-switcher button.is-active { background: #fff; box-shadow: 0 1px 4px rgba(16, 35, 63, 0.13); color: var(--ce-calendar-blue); }
.ce-studio-calendar-v2 .ce-studio-calendar-filter { align-items: center; background: transparent; border: 0; border-radius: 0; display: flex; flex-direction: row; gap: 0.65rem; margin: 0; min-width: 0; padding: 0; }
.ce-studio-calendar-v2 .ce-studio-calendar-filter select { border-color: var(--ce-calendar-line); font-size: var(--font-body); min-height: 2.35rem; max-width: 10.5rem; padding: 0.4rem 1.8rem 0.4rem 0.65rem; }
.ce-studio-calendar-v2 .ce-studio-calendar-filter button { display: none; }
.ce-studio-calendar-v2 .ce-studio-calendar-empty { border: 0; border-bottom: 1px solid var(--ce-calendar-line); border-radius: 0; margin: 0; }
.ce-studio-calendar-v2 .ce-studio-calendar-empty span { font-size: var(--font-caption); }

.ce-studio-calendar-shell { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; }
.ce-studio-calendar-views { min-width: 0; }
.ce-studio-time-grid-scroll,
.ce-studio-resource-grid-scroll { max-width: 100%; overflow: auto; }
.ce-studio-time-grid-head,
.ce-studio-time-grid-body { display: grid; grid-template-columns: 3.5rem repeat(7, minmax(8.5rem, 1fr)); min-width: 63rem; }
.ce-studio-time-grid-head { background: #fbfcfe; border-bottom: 1px solid var(--ce-calendar-line); position: sticky; top: 0; z-index: 4; }
.ce-studio-time-grid-head > span { border-right: 1px solid var(--ce-calendar-line); }
.ce-studio-time-grid-head > strong { align-items: center; border-right: 1px solid var(--ce-calendar-line); display: flex; gap: 0.5rem; justify-content: center; min-height: 2.8rem; }
.ce-studio-time-grid-head > strong span { color: var(--muted); font-size: var(--font-caption); text-transform: none; }
.ce-studio-time-grid-head > strong b { align-items: center; border-radius: 50%; display: inline-flex; font-size: 0.9rem; height: 1.9rem; justify-content: center; width: 1.9rem; }
.ce-studio-time-grid-head > strong.is-today b { background: var(--ce-calendar-blue); color: #fff; }
.ce-studio-time-grid-body { box-sizing: content-box; height: var(--ce-grid-height); padding-bottom: var(--ce-event-min-height); position: relative; }
.ce-studio-time-rail { border-right: 1px solid var(--ce-calendar-line); height: var(--ce-grid-height); position: relative; }
.ce-studio-time-rail span { color: var(--muted); font-size: var(--font-caption); position: absolute; right: 0.65rem; transform: translateY(-50%); }
.ce-studio-time-column,
.ce-studio-resource-column { background-image: none; border-right: 1px solid var(--ce-calendar-line); height: var(--ce-grid-height); position: relative; }
.ce-studio-time-column.is-today { background-color: #f8fbff; }
.ce-studio-hour-line { border-top: 1px solid #edf1f6; left: 0; pointer-events: none; position: absolute; right: 0; }
.ce-studio-calendar-event,
.ce-studio-resource-event { border: 1px solid #b9d6fb; border-left: 3px solid #3487ed; border-radius: 0.35rem; color: #163d6d; cursor: pointer; overflow: hidden; text-align: left; }
.ce-studio-calendar-v2 .ce-studio-calendar-event,
.ce-studio-calendar-v2 .ce-studio-resource-event { align-content: center; background: var(--ce-calendar-blue-soft); display: grid; gap: 1px; height: var(--ce-event-min-height); min-height: var(--ce-event-min-height); left: 3px; right: 3px; padding: 3px 6px; position: absolute; }
.ce-studio-calendar-event:focus-visible,
.ce-studio-resource-event:focus-visible { outline: 2px solid var(--ce-calendar-blue); outline-offset: 1px; }
.ce-studio-calendar-v2 .ce-studio-calendar-event.is-onsite,
.ce-studio-calendar-v2 .ce-studio-resource-event.is-onsite { background: var(--ce-calendar-amber-soft); border-color: #f2c982; border-left-color: #dc8a16; color: #71440d; }
.ce-studio-calendar-event.is-selected,
.ce-studio-resource-event.is-selected,
.ce-studio-agenda-event.is-selected { box-shadow: 0 0 0 2px var(--ce-calendar-blue); }
.ce-studio-calendar-event.is-cancelled,
.ce-studio-resource-event.is-cancelled,
.ce-studio-agenda-event.is-cancelled { filter: grayscale(0.75); opacity: 0.58; text-decoration: line-through; }
.ce-studio-calendar-event > span:first-child { font-size: var(--font-caption); font-weight: 700; }
.ce-studio-calendar-v2 .ce-studio-calendar-event > span { color: inherit; line-height: 1.2; }
.ce-studio-calendar-event strong { font-size: var(--font-caption); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ce-studio-calendar-event small,
.ce-studio-calendar-event-customer,
.ce-studio-calendar-event-perito { font-size: var(--font-caption); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ce-studio-calendar-event .ce-studio-calendar-event-practice { display: block; font-size: var(--font-caption); line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.ce-studio-resource-view { padding: 0.75rem; }
.ce-studio-resource-days { display: flex; gap: 0.35rem; margin-bottom: 0.7rem; overflow-x: auto; }
.ce-studio-resource-days button { background: #fff; border: 1px solid var(--ce-calendar-line); border-radius: 0.5rem; color: #64758b; cursor: pointer; display: grid; min-width: 3rem; padding: 0.35rem 0.6rem; text-align: center; }
.ce-studio-resource-days button span { font-size: var(--font-label); text-transform: uppercase; }
.ce-studio-resource-days button.is-active { background: var(--ce-calendar-blue); border-color: var(--ce-calendar-blue); color: #fff; }
.ce-studio-resource-head,
.ce-studio-resource-grid { display: grid; grid-template-columns: 3.5rem repeat(var(--ce-perito-count), minmax(9.5rem, 1fr)); min-width: calc(3.5rem + (var(--ce-perito-count) * 9.5rem)); }
.ce-studio-resource-head { background: #fbfcfe; border: 1px solid var(--ce-calendar-line); border-bottom: 0; min-height: 3.8rem; }
.ce-studio-resource-head > strong { align-items: center; border-left: 1px solid var(--ce-calendar-line); display: flex; gap: 0.45rem; justify-content: center; padding: 0.5rem; }
.ce-studio-resource-head > strong b,
.ce-studio-avatar-large { align-items: center; background: #e7f0ff; border-radius: 50%; color: #285b9b; display: flex; flex: 0 0 auto; font-size: var(--font-caption); height: 1.8rem; justify-content: center; width: 1.8rem; }
.ce-studio-resource-head > strong span { font-size: var(--font-caption); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ce-studio-resource-grid { border: 1px solid var(--ce-calendar-line); }
.ce-studio-resource-event { background: var(--ce-calendar-blue-soft); display: grid; gap: 0.05rem; left: 0.28rem; min-height: 2.6rem; padding: 0.35rem; position: absolute; right: 0.28rem; top: calc(var(--ce-event-start) * var(--ce-minute-px)); }
.ce-studio-resource-event span,
.ce-studio-resource-event small { font-size: var(--font-caption); }
.ce-studio-resource-event strong { font-size: var(--font-caption); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.ce-studio-agenda-view { display: grid; gap: 0.8rem; padding: 1rem; }
.ce-studio-agenda-empty { color: var(--ce-calendar-muted); margin: 0; padding: 2rem; text-align: center; }
.ce-studio-agenda-day { display: grid; gap: 0.65rem; grid-template-columns: 7rem minmax(0, 1fr); }
.ce-studio-agenda-day > header { display: grid; align-content: start; }
.ce-studio-agenda-day > header span { color: var(--ce-calendar-muted); font-size: var(--font-caption); font-weight: 700; text-transform: uppercase; }
.ce-studio-agenda-day > header strong { font-size: var(--font-caption); }
.ce-studio-agenda-day > div { display: grid; gap: 0.45rem; }
.ce-studio-agenda-event { align-items: center; background: #f7fbff; border: 1px solid #d7e8fb; border-left: 3px solid #3487ed; border-radius: 0.55rem; color: var(--ce-calendar-ink); cursor: pointer; display: grid; gap: 0.4rem; grid-template-columns: 7rem minmax(0, 1fr); padding: 0.7rem 0.8rem; text-align: left; }
.ce-studio-agenda-event.is-onsite { background: #fffaf0; border-color: #f3d8ab; border-left-color: #dc8a16; }
.ce-studio-agenda-event span,
.ce-studio-agenda-event small { color: var(--ce-calendar-muted); font-size: var(--font-caption); }
.ce-studio-agenda-event strong { font-size: var(--font-caption); min-width: 0; overflow-wrap: anywhere; }

.ce-calendar-modal-open { overflow: hidden; }
.ce-studio-calendar-context { background: #fff; border: 1px solid var(--ce-calendar-line); border-radius: 1rem; box-shadow: 0 24px 80px #10233f40; color: var(--ce-calendar-ink); margin: auto; max-height: calc(100dvh - 2rem); min-width: 0; overflow: auto; padding: 1.5rem; width: min(32rem, calc(100% - 2rem)); }
.ce-studio-calendar-context::backdrop { background: rgb(16 35 63 / 45%); }
.ce-studio-calendar-context > div > header { align-items: flex-start; display: flex; justify-content: space-between; margin-bottom: 1rem; }
.ce-studio-calendar-context > div > header div { display: grid; gap: 0.18rem; }
.ce-studio-calendar-context > div > header span { color: var(--ce-calendar-muted); font-size: var(--font-caption); font-weight: 700; text-transform: uppercase; }
.ce-studio-calendar-context > div > header strong { font-size: 1.05rem; }
.ce-studio-calendar-context > div > header button { background: #fff; border: 1px solid var(--ce-calendar-line); border-radius: 50%; color: #53667f; cursor: pointer; height: 2.75rem; width: 2.75rem; flex-shrink: 0; }
.ce-studio-workload-list { display: grid; gap: 0; }
.ce-studio-workload-list article { align-items: center; border-bottom: 1px solid #e8edf3; display: flex; gap: 0.8rem; min-height: 4.8rem; padding: 0.6rem 0; }
.ce-studio-workload-list article:last-child { border-bottom: 0; }
.ce-studio-workload-list article > span,
.ce-studio-availability-team button > span,
.ce-studio-priority-list article > span:not(.ce-studio-priority-handle) { align-items: center; background: #e8f1ff; border-radius: 50%; color: #285b9b; display: flex; flex: 0 0 auto; font-size: var(--font-label); font-weight: 700; height: 2.65rem; justify-content: center; width: 2.65rem; }
.ce-studio-workload-list article > div { display: grid; flex: 1; gap: 0.3rem; grid-template-columns: minmax(0, 1fr) auto; min-width: 0; }
.ce-studio-workload-list article strong { font-size: var(--font-caption); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ce-studio-workload-list article small { color: var(--ce-calendar-muted); font-size: var(--font-caption); grid-column: 2; grid-row: 1; }
.ce-studio-workload-list article div > div { background: #e6ebf1; border-radius: 1rem; grid-column: 1 / -1; height: 0.38rem; overflow: hidden; }
.ce-studio-workload-list article div > div i { background: #4b8be1; border-radius: inherit; display: block; height: 100%; }
.ce-studio-detail-status { border: 1px solid currentColor; border-radius: 0.45rem; display: inline-flex; font-size: var(--font-caption); font-weight: 700; margin-bottom: 1rem; padding: 0.38rem 0.7rem; }
.ce-studio-detail-status.is-confirmed { background: #e7f6ed; color: #237148; }
.ce-studio-detail-status.is-cancelled { background: #fbeaea; color: #a33c37; }
.ce-studio-detail-schedule { border-bottom: 1px solid var(--ce-calendar-line); display: grid; gap: 0.7rem; margin-bottom: 1rem; padding-bottom: 1rem; }
.ce-studio-detail-schedule span { align-items: center; color: #425a76; display: flex; font-size: var(--font-caption); gap: 0.6rem; }
.ce-studio-detail-schedule svg { fill: none; height: 1rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; width: 1rem; }
.ce-studio-calendar-context dl { display: grid; gap: 0.75rem; margin: 0; }
.ce-studio-calendar-context dl div { border-bottom: 1px solid #e7edf4; display: grid; gap: 0.14rem; padding-bottom: 0.65rem; }
.ce-studio-calendar-context dt { color: var(--ce-calendar-muted); font-size: var(--font-caption); font-weight: 700; text-transform: uppercase; }
.ce-studio-calendar-context dd { font-size: var(--font-caption); font-weight: 700; margin: 0; overflow-wrap: anywhere; }
.ce-studio-detail-actions { display: grid; gap: 0.5rem; margin-top: 1rem; }
.ce-studio-detail-actions a { justify-content: center; text-align: center; }
.ce-studio-detail-actions form { margin: 0; text-align: center; }
.ce-studio-detail-actions form .ce-secondary-button { width: 100%; }

.ce-studio-appointment-composer { background: #fff; border: 1px solid var(--ce-calendar-line); border-radius: 0.9rem; box-shadow: 0 14px 36px rgba(16, 35, 63, 0.07); padding: 1.2rem; position: relative; scroll-margin-top: 1rem; }
.ce-studio-composer-close { background: #fff; border: 1px solid var(--ce-calendar-line); border-radius: 50%; color: #53667f; cursor: pointer; height: 2rem; position: absolute; right: 1rem; top: 1rem; width: 2rem; z-index: 2; }
.ce-studio-calendar-v2 .ce-studio-appointment-form { gap: 0.9rem; padding-right: 2.5rem; }
.ce-studio-calendar-v2 .ce-studio-appointment-form h3 { color: var(--ce-calendar-ink); font-size: 1.05rem; margin: 0; }
.ce-studio-calendar-v2 .ce-studio-appointment-form > p { margin-top: -0.45rem; }

.ce-studio-availability-workspace,
.ce-studio-priority-workspace { align-items: stretch; display: grid; gap: 1.15rem; grid-template-columns: minmax(21rem, 0.33fr) minmax(34rem, 0.67fr); }
.ce-studio-calendar-v2 .ce-studio-availability-workspace.ce-studio-availability-list { background: transparent; border: 0; border-radius: 0; gap: 1.15rem; padding: 0; }
.ce-studio-availability-workspace > aside,
.ce-studio-availability-editors,
.ce-studio-priority-form,
.ce-studio-priority-workspace > aside > section { background: #fff; border: 1px solid var(--ce-calendar-line); border-radius: 0.85rem; box-shadow: 0 10px 28px rgba(16, 35, 63, 0.045); }
.ce-studio-availability-workspace > aside > header,
.ce-studio-availability-editors form > header,
.ce-studio-priority-form > header { border-bottom: 1px solid var(--ce-calendar-line); padding: 1.35rem 1.45rem; }
.ce-studio-availability-workspace h2,
.ce-studio-priority-workspace h2 { color: var(--ce-calendar-ink); font-size: 1.2rem; margin: 0; }
.ce-studio-availability-workspace header p,
.ce-studio-priority-form > header p { color: var(--ce-calendar-muted); font-size: var(--font-body); margin: 0.35rem 0 0; }
.ce-studio-availability-team { display: grid; gap: 0.75rem; max-height: 45rem; overflow-y: auto; padding: 1rem; }
.ce-studio-availability-team button { align-items: center; background: transparent; border: 1px solid var(--ce-calendar-line); border-radius: 0.7rem; color: var(--ce-calendar-ink); cursor: pointer; display: grid; gap: 1rem; grid-template-columns: auto minmax(0, 1fr) auto; min-height: 7.9rem; padding: 1rem; text-align: left; }
.ce-studio-availability-team button:hover { background: #f8fafc; }
.ce-studio-availability-team button.is-active { background: #eef5ff; border-color: #c9def9; }
.ce-studio-availability-team button > span { font-size: var(--font-label); height: 3.35rem; width: 3.35rem; }
.ce-studio-availability-team button > strong { align-items: start; display: grid; gap: 0.32rem; grid-template-columns: auto 1fr; }
.ce-studio-availability-team button > strong > b { font-size: var(--font-body); grid-column: 1; }
.ce-studio-availability-team button mark { background: #edf4ff; border-radius: 0.35rem; color: var(--ce-calendar-blue); font-size: var(--font-label); font-weight: 700; grid-column: 1; justify-self: start; padding: 0.22rem 0.5rem; }
.ce-studio-availability-team button small { color: var(--ce-calendar-muted); font-size: var(--font-label); font-weight: 600; grid-column: 1 / -1; }
.ce-studio-availability-team button i { background: #dfe7f0; border-radius: 1rem; grid-column: 1 / -1; height: 0.38rem; overflow: hidden; }
.ce-studio-availability-team button i b { background: #4b8be1; display: block; height: 100%; }
.ce-studio-availability-team button em { color: #8090a4; font-size: 1.2rem; font-style: normal; }
.ce-studio-availability-editors { min-width: 0; overflow: hidden; }
.ce-studio-availability-editors form > header { align-items: center; display: flex; gap: 1rem; justify-content: space-between; }
.ce-studio-availability-editors form > header > div > span { color: var(--ce-calendar-blue); font-size: var(--font-caption); font-weight: 700; text-transform: uppercase; }
.ce-studio-availability-summary { background: #f5f8fc; border: 1px solid var(--ce-calendar-line); border-radius: 0.55rem; color: #314965 !important; flex: 0 0 auto; font-size: var(--font-caption) !important; margin: 0 !important; padding: 0.8rem 1rem; }
.ce-studio-availability-summary span { margin: 0 0.55rem; }
.ce-studio-avatar-large { height: 2.7rem; width: 2.7rem; }
.ce-studio-availability-days { display: grid; gap: 0; padding: 0 1.45rem; }
.ce-studio-availability-days > div { align-items: center; border-bottom: 1px solid #e9eef4; display: grid; gap: 1rem; grid-template-columns: minmax(10rem, 1fr) auto minmax(8rem, auto); min-height: 3.65rem; }
.ce-studio-availability-days > div > label { align-items: center; cursor: pointer; display: flex; gap: 0.6rem; }
.ce-studio-availability-days > div > label input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.ce-studio-availability-days > div > label span { background: #c7d0dc; border-radius: 1rem; height: 1.45rem; position: relative; transition: background 160ms ease; width: 2.55rem; }
.ce-studio-availability-days > div > label span::after { background: #fff; border-radius: 50%; box-shadow: 0 1px 4px rgba(16, 35, 63, 0.25); content: ''; height: 1.08rem; left: 0.18rem; position: absolute; top: 0.18rem; transition: transform 160ms ease; width: 1.08rem; }
.ce-studio-availability-days > div.is-enabled > label span { background: var(--ce-calendar-blue); }
.ce-studio-availability-days > div.is-enabled > label span::after { transform: translateX(1.1rem); }
.ce-studio-availability-days > div > label input:focus-visible + span { outline: 2px solid var(--ce-calendar-blue); outline-offset: 2px; }
.ce-studio-availability-days > div > label strong { font-size: var(--font-caption); }
.ce-studio-availability-days > div > div { align-items: center; display: flex; gap: 0.35rem; }
.ce-studio-availability-days input[type="time"] { border: 1px solid var(--ce-calendar-line); border-radius: 0.5rem; font-size: var(--font-body); min-height: 2.6rem; padding: 0.5rem 0.65rem; width: 9rem; }
.ce-studio-availability-days > div:not(.is-enabled) input[type="time"] { opacity: 0.45; }
.ce-studio-availability-days > div > em { color: #75859a; font-size: var(--font-caption); font-style: normal; text-align: right; }
.ce-studio-availability-note,
.ce-studio-priority-manual-note { background: #eef5fd; border: 1px solid #cfe0f4; border-radius: 0.55rem; color: #355474; font-size: var(--font-caption); margin: 1rem 1.45rem; padding: 0.9rem 1rem; }
.ce-studio-availability-note,
.ce-studio-priority-manual-note { align-items: center; display: flex; gap: 0.7rem; }
.ce-studio-availability-note::before,
.ce-studio-priority-manual-note::before { background: radial-gradient(circle at 50% 28%, currentColor 0 1.5px, transparent 1.8px), linear-gradient(currentColor, currentColor) center 68% / 2px 6px no-repeat; border: 1px solid currentColor; border-radius: 50%; content: ''; display: block; flex: 0 0 auto; height: 1.25rem; width: 1.25rem; }
.ce-studio-availability-editors form > footer,
.ce-studio-priority-form > footer { align-items: center; border-top: 1px solid var(--ce-calendar-line); display: flex; gap: 0.7rem; justify-content: flex-end; min-height: 4.8rem; padding: 1rem 1.45rem; }
.ce-studio-availability-editors form > footer > span { color: #9a6300; font-size: var(--font-caption); font-weight: 700; margin-right: auto; }

.ce-studio-priority-workspace { grid-template-columns: repeat(auto-fit, minmax(min(100%, 28rem), 1fr)); }
.ce-studio-calendar-v2 .ce-studio-priority-form { gap: 0; padding: 0; }
.ce-studio-priority-form > header h2,
.ce-studio-priority-workspace > aside h2 { font-size: 1.45rem; }
.ce-studio-priority-list { display: grid; grid-auto-rows: max-content; align-content: start; gap: 0.65rem; grid-template-columns: minmax(0, 1fr) !important; max-height: 38rem; overflow-y: auto; padding: 0.3rem 1.45rem 1.2rem; }
.ce-studio-priority-list article { align-items: center; background: #fff; border: 1px solid var(--ce-calendar-line); border-radius: 0.7rem; display: grid; gap: 0.85rem; grid-template-columns: 2.2rem 1.1rem auto minmax(0, 1fr) minmax(6rem, auto) auto; min-height: 6.4rem; padding: 0.9rem 1rem; transition: border-color 150ms ease, box-shadow 150ms ease; width: 100%; }
.ce-studio-priority-list article:hover { border-color: #bdd3ef; box-shadow: 0 4px 12px rgba(16, 35, 63, 0.06); }
.ce-studio-priority-handle { color: #7184a0; cursor: grab; font-size: 1.1rem; letter-spacing: -0.28rem; }
.ce-studio-priority-list article > b { color: var(--ce-calendar-blue); font-size: 1.85rem; font-weight: 500; line-height: 1.2; }
.ce-studio-priority-list article > div { display: grid; gap: 0.2rem; min-width: 0; }
.ce-studio-priority-list article > div strong { font-size: var(--font-body); overflow-wrap: anywhere; }
.ce-studio-priority-list article > div small { color: var(--ce-calendar-muted); font-size: var(--font-caption); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ce-studio-priority-list article > p { color: var(--ce-calendar-muted); display: grid; font-size: var(--font-body); gap: 0.2rem; margin: 0; }
.ce-studio-priority-list article > p strong { color: #365170; font-size: var(--font-body); }
.ce-studio-priority-list article nav { display: grid; grid-template-columns: repeat(2, 2.75rem); grid-template-rows: 2.75rem; gap: 0.35rem; align-self: center; }
.ce-studio-priority-list article nav button { background: #fff; border: 1px solid var(--ce-calendar-line); border-radius: 0.4rem; color: #315072; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; padding: 0; line-height: 1; height: 2.75rem; min-height: 2.75rem; width: 2.75rem; }
.ce-studio-priority-list article nav button:disabled { cursor: default; opacity: 0.3; }
.ce-studio-priority-form > footer > span { color: #9a6300; font-size: var(--font-caption); font-weight: 700; margin-right: auto; }
.ce-studio-priority-workspace > aside { display: grid; gap: 1rem; }
.ce-studio-priority-workspace > aside > section { padding: 1.45rem; }
.ce-studio-priority-workspace > aside h2 { margin-bottom: 0.3rem; }
.ce-studio-priority-week { color: #304964; font-size: var(--font-caption); font-weight: 700; margin: 0 0 0.7rem; }
.ce-studio-priority-how ol { counter-reset: priority-step; display: grid; gap: 0.7rem; list-style: none; margin: 0; padding: 0; }
.ce-studio-priority-how li { align-items: center; color: #415873; counter-increment: priority-step; display: flex; font-size: var(--font-caption); gap: 0.7rem; }
.ce-studio-priority-how li::before { align-items: center; background: #e9f2ff; border-radius: 50%; color: var(--ce-calendar-blue); content: counter(priority-step); display: flex; flex: 0 0 auto; font-size: var(--font-caption); font-weight: 700; height: 1.55rem; justify-content: center; width: 1.55rem; }
.ce-studio-priority-how p { border-top: 1px solid var(--ce-calendar-line); color: var(--ce-calendar-muted); font-size: var(--font-body); line-height: 1.45; margin: 0.9rem 0 0; padding-top: 0.8rem; }

@media (max-width: 1180px) {
    .ce-studio-calendar-v2 .ce-studio-calendar-toolbar { grid-template-columns: auto 1fr; }
    .ce-studio-calendar-v2 .ce-studio-calendar-toolbar > h2 { text-align: right; }
    .ce-studio-calendar-toolbar-actions { grid-column: 1 / -1; justify-content: space-between; }
    .ce-studio-calendar-shell { grid-template-columns: minmax(0, 1fr); }
    .ce-studio-availability-workspace { grid-template-columns: minmax(18rem, 0.36fr) minmax(30rem, 0.64fr); }
    .ce-studio-priority-workspace { grid-template-columns: repeat(auto-fit, minmax(min(100%, 28rem), 1fr)); }
    .ce-studio-priority-list article { grid-template-columns: 2rem 1rem auto minmax(0, 1fr) auto; }
    .ce-studio-priority-list article > p { display: none; }
}

@media (max-width: 860px) {
    .ce-studio-calendar-v2 .ce-studio-calendar-head { align-items: flex-start; }
    .ce-studio-calendar-v2 .ce-studio-calendar-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ce-studio-calendar-shell { grid-template-columns: 1fr; }

    .ce-studio-availability-workspace,
    .ce-studio-priority-workspace { grid-template-columns: 1fr; }
    .ce-studio-priority-workspace > aside { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .ce-studio-calendar-v2 { gap: 0.85rem; }
    .ce-studio-calendar-v2 .ce-studio-calendar-head { display: grid; gap: 0.9rem; }
    .ce-studio-new-appointment { justify-content: center; width: 100%; }
    .ce-studio-calendar-tabs { gap: 1.25rem; margin-inline: -0.2rem; padding-inline: 0.2rem; scrollbar-width: thin; white-space: nowrap; }
    .ce-studio-calendar-tabs a { flex: 0 0 auto; font-size: var(--font-caption); text-align: center; }
    .ce-studio-calendar-v2 .ce-studio-calendar-toolbar { grid-template-columns: 1fr auto; }
    .ce-studio-calendar-toolbar-actions { align-items: stretch; display: grid; grid-column: 1 / -1; }
    .ce-studio-calendar-view-switcher { justify-content: stretch; }
    .ce-studio-calendar-view-switcher button { flex: 1; white-space: nowrap; }
    .ce-studio-calendar-v2 .ce-studio-calendar-filter { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ce-studio-calendar-v2 .ce-studio-calendar-filter select { max-width: none; width: 100%; }
    .ce-studio-agenda-day { grid-template-columns: 1fr; }
    .ce-studio-agenda-event { grid-template-columns: 1fr; }
    .ce-studio-availability-days > div { align-items: start; gap: 0.5rem; grid-template-columns: 1fr; padding: 0.75rem 0; }
    .ce-studio-availability-days > div > em { text-align: left; }
    .ce-studio-priority-list article { grid-template-columns: auto auto auto minmax(0, 1fr); }
    .ce-studio-priority-list article > p { display: grid; grid-column: 4; }
    .ce-studio-priority-list article nav { grid-column: 2 / -1; justify-content: flex-end; }
    .ce-studio-priority-workspace > aside { grid-template-columns: 1fr; }
    .ce-studio-availability-editors form > footer,
    .ce-studio-priority-form > footer { position: sticky; z-index: 5; bottom: 0; align-items: stretch; display: grid; padding-bottom: max(1rem, env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .97); box-shadow: 0 -8px 22px rgba(16, 35, 63, .08); }
    .ce-studio-availability-editors form > footer > span,
    .ce-studio-priority-form > footer > span { margin: 0; }
}

@media (max-width: 440px) {
    .ce-studio-calendar-v2 .ce-studio-calendar-kpis { gap: .65rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ce-studio-calendar-v2 .ce-studio-calendar-kpis article { gap: .65rem; min-height: 4.5rem; padding: .75rem .8rem; }
    .ce-studio-calendar-v2 .ce-studio-calendar-kpis article span { line-height: 1.2; overflow: visible; text-overflow: clip; white-space: normal; }
    .ce-studio-calendar-v2 .ce-studio-calendar-toolbar { grid-template-columns: 1fr; }
    .ce-studio-calendar-v2 .ce-studio-calendar-toolbar > h2 { grid-row: 1; text-align: left; }
    .ce-studio-calendar-v2 .ce-studio-calendar-toolbar > nav { grid-row: 2; }
}

/* Recoverable media guidance for the insured participant */
.ce-live-media-help{margin:0 0 20px;border:1px solid #d6e2f0;border-radius:12px;background:#fff;color:#17324f}
.ce-live-media-help>summary{min-height:48px;cursor:pointer;padding:15px 18px;font-weight:700;font-size:15px;line-height:1.5}
.ce-live-media-help>summary:focus-visible{outline:3px solid #2873d2;outline-offset:3px;border-radius:8px}
.ce-live-media-help[open]>summary{border-bottom:1px solid #e3eaf2}
.ce-live-media-help-body{padding:4px 22px 16px}
.ce-live-media-help ol{padding-left:22px;display:grid;gap:14px;margin:14px 0 0}
.ce-live-media-help li{padding-left:4px;line-height:1.5;font-size:15px}
.ce-live-media-help li::marker{color:#315f97;font-weight:700}
.ce-live-media-help strong{font-weight:700}.ce-live-media-help p{margin:4px 0 0;color:#52657a;font-size:14px;line-height:1.6;max-width:85ch}
@media(max-width:480px){.ce-live-media-help>summary{padding:14px}.ce-live-media-help-body{padding:2px 15px 16px}}

/* Entry recovery and expert progress */
.ce-live-permission-guides{display:grid;gap:8px;margin:16px 0}
.ce-live-permission-guides details{border:1px solid #d6e2f0;border-radius:8px;background:#f7faff}
.ce-live-permission-guides summary{cursor:pointer;padding:12px;font-weight:650;min-height:44px}
.ce-live-permission-guides p{padding:0 12px 12px}
.ce-live-customer-progress{border-left:4px solid #356cb1}
.ce-live-customer-progress>strong{font-size:16px;line-height:1.5;color:#17324f}
.ce-live-customer-progress p{font-size:14px;line-height:1.6;margin:10px 0}
.ce-live-customer-progress small{display:block;color:#52657a;line-height:1.5}
.ce-live-customer-progress[data-stage="permissions_blocked"],.ce-live-customer-progress[data-stage="device_busy"]{border-left-color:#ad650c}
.ce-live-customer-progress[data-stage="connected"]{border-left-color:#247950}
.ce-live-progress-gps{padding:10px 12px;border-radius:8px;background:#f4f7fb}
[data-ce-preflight-gps-continue]{white-space:normal;min-height:48px}
