.calendar-page{display:flex;flex-direction:column;min-height:calc(100dvh - var(--studio-header-height,72px));color:var(--color-text);background:var(--color-bg)}
.calendar-booking{padding:.5rem 0;border-bottom:1px solid var(--color-border)}.calendar-booking div{display:flex;gap:.35rem}.calendar-booking button{border:1px solid var(--color-border);border-radius:.45rem;background:var(--color-surface);color:var(--color-text);padding:.3rem .45rem;font-size:.68rem}.calendar-booking button:last-child{border-color:var(--color-accent);color:var(--color-accent)}
.calendar-slot.is-available{background:color-mix(in srgb,var(--color-success) 5%,transparent);box-shadow:inset 3px 0 color-mix(in srgb,var(--color-success) 40%,transparent)}
.calendar-toolbar{display:grid;grid-template-columns:minmax(12rem,1fr) auto auto auto;gap:1rem;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border);background:var(--color-surface)}
.calendar-toolbar h1{margin:.2rem 0 0;font-size:1.4rem;text-transform:capitalize}.calendar-toolbar>div>span,.calendar-inspector header span{font-size:.75rem;color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.12em}.calendar-toolbar select,.calendar-navigation button{min-height:2.55rem;border:1px solid var(--color-border);border-radius:.75rem;background:var(--color-bg-elevated);color:inherit;padding:.55rem .8rem}.calendar-navigation{display:flex;gap:.35rem}.calendar-workspace{display:grid;grid-template-columns:15.5rem minmax(32rem,1fr) 22rem;min-height:0;flex:1}.calendar-sidebar,.calendar-inspector{background:var(--color-surface);padding:1rem;border-right:1px solid var(--color-border);overflow:auto}.calendar-inspector{border-right:0;border-left:1px solid var(--color-border)}
.calendar-mini header{padding:.3rem}.mini-weekdays,.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;gap:.12rem}.mini-weekdays{font-size:.65rem;color:var(--color-text-subtle);margin:.75rem 0 .35rem}.mini-grid button{border:0;background:transparent;color:inherit;aspect-ratio:1;border-radius:50%;font-size:.75rem}.mini-grid button.is-active{background:var(--color-accent);color:#111;font-weight:800}.mini-grid button.is-muted{opacity:.35}.calendar-filters{display:grid;gap:.7rem;margin:1.25rem 0}.calendar-filters label,.availability-form label,.calendar-inspector label{display:grid;gap:.35rem;font-size:.75rem;color:var(--color-text-subtle)}.calendar-filters select,.availability-form input,.availability-form select,.calendar-inspector input,.calendar-inspector select,.calendar-inspector textarea{width:100%;min-height:2.6rem;border:1px solid var(--color-border);border-radius:.65rem;background:var(--color-bg-elevated);color:var(--color-text);padding:.55rem}.calendar-side-card{border:1px solid var(--color-border);border-radius:1rem;padding:.9rem;margin-bottom:.8rem}.calendar-side-card header{display:flex;justify-content:space-between}.calendar-side-card header span{display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:.5rem;background:color-mix(in srgb,var(--color-accent) 18%,transparent);color:var(--color-accent)}.calendar-side-card p{font-size:.75rem;color:var(--color-text-subtle)}.calendar-availability-button{width:100%}.availability-form{display:grid;gap:.65rem;border-top:1px solid var(--color-border);margin-top:1rem;padding-top:1rem}.availability-form>div,.calendar-form-row{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.calendar-canvas{position:relative;overflow:auto;background:var(--color-bg,#101011)}.calendar-refreshing{position:absolute;z-index:8;top:.5rem;left:50%;transform:translateX(-50%);padding:.45rem .8rem;border-radius:2rem;background:var(--color-surface);box-shadow:0 .4rem 1rem #0004;font-size:.75rem}.calendar-time-grid{min-width:48rem;padding-bottom:2rem}.calendar-grid-head{position:sticky;z-index:5;top:0;display:grid;grid-template-columns:4rem repeat(var(--days),minmax(0,1fr));height:3.25rem;background:color-mix(in srgb,var(--color-surface) 92%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--color-border)}.calendar-grid-head strong{display:grid;min-width:0;place-items:center;border-left:1px solid var(--color-border);font-size:.8rem;text-transform:capitalize}.calendar-grid-head strong.is-today{color:var(--color-accent)}.calendar-grid-body{display:grid;grid-template-columns:4rem repeat(var(--days),minmax(0,1fr));height:64rem}.calendar-hours{display:grid;grid-template-rows:repeat(16,4rem)}.calendar-hours span{font-size:.65rem;color:var(--color-text-subtle);padding:.2rem .45rem;text-align:right}.calendar-day-column{position:relative;min-width:0;border-left:1px solid var(--color-border);background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(4rem - 1px),var(--color-border) calc(4rem - 1px),var(--color-border) 4rem)}.calendar-slot{display:block;width:100%;height:4rem;border:0;background:transparent}.calendar-slot:hover,.calendar-slot:focus-visible{background:color-mix(in srgb,var(--color-accent) 8%,transparent);outline:2px solid var(--color-accent);outline-offset:-2px}.calendar-event-position{position:absolute;left:.2rem;right:.2rem;z-index:2;min-width:0;min-height:2.5rem}.calendar-event{display:flex;flex-direction:column;width:100%;height:100%;min-width:0;min-height:2.5rem;text-align:left;overflow:hidden;border:1px solid color-mix(in srgb,var(--color-accent) 45%,var(--color-border));border-left:4px solid var(--color-accent);border-radius:.55rem;background:color-mix(in srgb,var(--color-accent) 16%,var(--color-surface));color:inherit;padding:.3rem .45rem}.calendar-event time,.calendar-event span{font-size:.63rem;opacity:.75}.calendar-event strong{font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event.is-group{border-left-style:double}.calendar-event.is-consultation{border-left-style:dashed}.calendar-event.is-cancelled{text-decoration:line-through;opacity:.5}
.calendar-month{min-width:44rem}.calendar-month-weekdays,.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-month-weekdays{position:sticky;top:0;z-index:4;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.calendar-month-weekdays strong{text-align:center;padding:.8rem;font-size:.75rem}.calendar-month-day{min-width:0;min-height:8.5rem;border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);padding:.35rem;overflow:hidden}.calendar-month-day>button{border:0;background:transparent;color:inherit}.calendar-month-day.is-muted{opacity:.45}.calendar-month-day .calendar-event{height:auto;margin:.25rem 0}.calendar-month-day .calendar-event span{display:none}
.calendar-inspector.is-empty{display:grid;place-items:center;text-align:center;color:var(--color-text-subtle)}.calendar-inspector.is-empty strong{display:block;color:var(--color-text);font-size:1.1rem;margin:.5rem}.calendar-inspector form{display:grid;gap:.9rem}.calendar-inspector header{display:flex;justify-content:space-between;align-items:start}.calendar-inspector header h2{margin:.25rem 0}.calendar-inspector header button{border:0;background:transparent;color:inherit;font-size:1.8rem}.inspector-tabs{display:flex;gap:.35rem;border-bottom:1px solid var(--color-border)}.inspector-tabs button{border:0;background:transparent;color:var(--color-text-subtle);padding:.6rem .3rem}.inspector-tabs button.is-active{color:var(--color-accent);border-bottom:2px solid var(--color-accent)}.calendar-inspector fieldset{border:0;padding:0;margin:0}.calendar-inspector legend{font-size:.75rem;color:var(--color-text-subtle);margin-bottom:.35rem}.calendar-participants{max-height:9rem;overflow:auto;border:1px solid var(--color-border);border-radius:.7rem}.calendar-participants label{display:flex;align-items:center;padding:.55rem;border-bottom:1px solid var(--color-border)}.calendar-participants input{width:auto;min-height:0}.calendar-inspector textarea{min-height:5rem;resize:vertical}.calendar-inspector footer{display:flex;justify-content:space-between;gap:.5rem;position:sticky;bottom:-1rem;background:var(--color-surface);padding:1rem 0}.calendar-move-controls{display:flex;gap:.4rem}.calendar-move-controls button{border:1px solid var(--color-border);border-radius:.5rem;background:var(--color-bg-elevated);color:inherit;padding:.45rem}.calendar-alert{margin:.6rem 1.5rem;padding:.7rem 1rem;border-radius:.7rem}.calendar-alert.is-error{background:#e5484d20;color:#ff8c8f}.calendar-alert.is-success{background:#31c48d20;color:#59d9a9}.calendar-loading,.calendar-fatal{display:grid;place-items:center;align-content:center;gap:.7rem;min-height:60vh;text-align:center}.calendar-loading i{width:2.5rem;height:2.5rem;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:studio-spin 1s linear infinite}
@media(max-width:80rem){.calendar-workspace{grid-template-columns:13rem minmax(30rem,1fr)}.calendar-inspector{position:fixed;z-index:30;right:0;top:var(--studio-header-height,72px);bottom:0;width:min(25rem,100vw);box-shadow:-1rem 0 3rem #0006}.calendar-inspector.is-empty{display:none}}
@media(max-width:48rem){.calendar-page{min-height:calc(100dvh - 4rem)}.calendar-toolbar{grid-template-columns:1fr auto;padding:.75rem;gap:.55rem}.calendar-toolbar>div:first-child{grid-column:1/-1}.calendar-toolbar h1{font-size:1.15rem}.calendar-navigation{order:3}.calendar-toolbar select{order:4}.calendar-toolbar>[data-create]{position:fixed;z-index:20;right:1rem;bottom:1rem;border-radius:2rem;box-shadow:0 .5rem 2rem #0008}.calendar-workspace{display:block}.calendar-sidebar{display:flex;gap:.5rem;overflow-x:auto;padding:.6rem;border-right:0;border-bottom:1px solid var(--color-border)}.calendar-mini,.calendar-side-card,.calendar-availability-button{display:none}.calendar-filters{display:flex;margin:0;gap:.5rem}.calendar-filters label{min-width:8rem}.calendar-canvas{height:calc(100dvh - 13rem)}.calendar-time-grid{min-width:0}.calendar-grid-head{grid-template-columns:3.5rem 1fr}.calendar-grid-body{grid-template-columns:3.5rem 1fr}.calendar-inspector{top:auto;bottom:0;width:100%;max-height:88dvh;border-radius:1.25rem 1.25rem 0 0}.calendar-form-row{grid-template-columns:1fr}.calendar-month{min-width:40rem}}
