:root{color-scheme:light;--bg: #edf1f5;--bg-accent: #d9e2ec;--ink: #15202b;--muted: #52606d;--surface: #f8fafc;--line: #cbd2d9;--brand: #245b8a;--brand-strong: #1a4468;--danger: #8b2e2e;--success: #1f6b45;--warn: #8a6d1d;--focus: #3b82a8;font-family:Segoe UI,Trebuchet MS,sans-serif;line-height:1.5;color:var(--ink);background:radial-gradient(circle at top right,#c5d7ea 0%,transparent 40%),linear-gradient(165deg,var(--bg),var(--bg-accent));min-height:100%}*{box-sizing:border-box}body{margin:0;min-height:100vh}#root{min-height:100vh}button,input,select{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto}.app-header{position:relative;display:flex;flex-direction:column;gap:.75rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 90%,white)}.brand{margin:0;font-size:clamp(1.5rem,4vw,2rem);font-weight:700;color:var(--brand)}.tagline,.header-note,.muted{margin:0;color:var(--muted)}.header-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.header-settings-btn{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;color:var(--ink)}.header-user{margin:0;display:inline-flex;align-items:center;gap:.5rem;font-weight:600}.header-center{text-align:center;max-width:min(28rem,calc(100% - 22rem))}.header-greeting{margin:0;font-size:1.05rem;font-weight:650;line-height:1.3}.header-greeting-sub{margin:.15rem 0 0;font-size:.85rem;color:var(--muted);line-height:1.3}.pending-badge{display:inline-flex;min-width:1.4rem;height:1.4rem;padding:0 .35rem;border-radius:999px;align-items:center;justify-content:center;background:#c2410c;color:#fff;font-size:.8rem}button.pending-badge{border:0;cursor:pointer}button.pending-badge:hover{background:#9a3412}.app-main{padding:1.25rem 1rem 2rem;width:min(1100px,100%);margin:0 auto}.app-footer{padding:.75rem 1.5rem 1.25rem;color:var(--muted);font-size:.8rem}.page-intro h1,.login-form h1{margin:0 0 .4rem;font-size:clamp(1.4rem,3vw,1.9rem)}.login-page{display:grid;place-items:center;min-height:60vh}.login-form,.panel,.panel-form,.entity-card{background:var(--surface);border:1px solid var(--line);border-radius:1rem}.login-form,.panel-form,.panel{padding:1.25rem;display:grid;gap:.9rem}.login-form{width:min(24rem,100%)}.field{display:grid;gap:.35rem}.field span{color:var(--muted);font-size:.92rem}.field input,.field select,.edit-row input,.edit-grid input{border:1px solid var(--line);border-radius:.75rem;padding:.7rem .85rem;background:#fff}.tabs{display:flex;gap:.5rem;flex-wrap:wrap}.tab-btn,.btn{border-radius:.75rem;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;padding:.65rem .95rem}.tab-btn.is-active,.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-ghost{background:transparent}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn:disabled,.tab-btn:disabled{opacity:.6;cursor:not-allowed}.cabinet-page{display:grid;gap:1.25rem}.cabinet-grid{display:grid;gap:1rem}.card-list{display:grid;gap:.75rem}.entity-card{padding:1rem;display:grid;gap:.45rem}.entity-card.is-new{border-color:color-mix(in srgb,#c2410c 45%,var(--line));box-shadow:inset 3px 0 #c2410c}.entity-main{display:flex;justify-content:space-between;gap:.75rem;align-items:start;min-width:0}.entity-title{margin:0;font-weight:650}.entity-client{margin:.2rem 0 0;font-size:.88rem;color:var(--ink)}.entity-meta{margin:0;color:var(--muted);font-size:.92rem}.entity-actions,.edit-row,.filter-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:end}.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;width:100%}.edit-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.5rem;align-items:end}.edit-grid-calendar{grid-template-columns:1fr}.slot-calendar{display:grid;gap:.55rem;padding:.75rem;border:1px solid var(--line);border-radius:.85rem;background:#fff}.slot-calendar.is-disabled{opacity:.65}.slot-calendar-label{color:var(--muted);font-size:.92rem}.slot-calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.slot-calendar-nav-btn{min-width:2.25rem;padding:.35rem .55rem}.slot-calendar-title{margin:0;font-weight:600;text-transform:capitalize;text-align:center}.slot-calendar-weekdays,.slot-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.2rem}.slot-calendar-weekdays span{text-align:center;font-size:.75rem;color:var(--muted);text-transform:lowercase}.slot-calendar-cell{display:grid;justify-items:center;gap:.15rem;min-height:2.6rem;padding:.25rem .1rem .35rem;border:1px solid transparent;border-radius:.55rem;background:transparent;color:var(--ink);cursor:pointer}.slot-calendar-cell.is-empty{pointer-events:none}.slot-calendar-cell:hover:not(:disabled):not(.is-empty){background:color-mix(in srgb,var(--brand) 8%,white)}.slot-calendar-cell.is-selected{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 12%,white)}.slot-calendar-cell.is-multi-selected{border-color:var(--brand);border-style:dashed;background:color-mix(in srgb,var(--brand) 20%,white);font-weight:600}.slot-calendar-grid{touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.slot-calendar-day{font-size:.92rem;line-height:1.2}.slot-calendar-dots{display:flex;flex-wrap:wrap;gap:.15rem;min-height:.45rem;align-items:center;justify-content:center;max-width:100%}.slot-dot-more{font-size:.65rem;color:var(--muted);line-height:1}.entity-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;min-width:0}.entity-icon-actions{display:inline-flex;gap:.25rem;flex-shrink:0}.icon-btn{width:2rem;height:2rem;border-radius:.55rem;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:1.05rem;line-height:1;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;padding:0}.icon-btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.entity-slot-title{margin:0;font-weight:600;color:var(--brand-strong)}.slot-card{padding:0;gap:0;overflow:hidden}.slot-card.outcome-realized,.slot-card.outcome-failed,.slot-card.outcome-not_realized{background:var(--surface)}.slot-card-head{margin:0;padding:.18rem .75rem;font-size:.75rem;line-height:1.35;font-weight:650;text-align:center}.slot-card-head.outcome-realized{color:var(--success);background:#d7f0e2}.slot-card-head.outcome-failed{color:var(--danger);background:#f3d6d6}.slot-card-head.outcome-not_realized{color:var(--muted);background:#e3e6ea}.slot-card-head.booking-pending{color:#9a3412;background:color-mix(in srgb,#c2410c 22%,white)}.slot-card-body{display:grid;gap:.35rem;padding:.7rem .85rem;min-width:0}.slot-card-top{display:flex;align-items:center;justify-content:space-between;gap:.4rem .55rem;min-width:0}.slot-card-top .entity-title{margin:0;min-width:0;flex:1 1 8rem}.slot-card-toolbar{display:flex;align-items:center;gap:.35rem;flex:0 1 auto;min-width:0}.slot-card-toolbar .status-pill{margin:0;flex-shrink:0}.slot-card-toolbar .entity-icon-actions{flex-shrink:0}.slot-card-client{display:flex;align-items:flex-start;justify-content:space-between;gap:.45rem .6rem;min-width:0}.slot-card-client-info{min-width:0;flex:1 1 auto}.slot-card .entity-slot-title,.slot-card .entity-client,.slot-card .entity-meta{overflow-wrap:anywhere;word-break:break-word}.slot-card-top .entity-title{overflow-wrap:break-word;word-break:normal}.slot-card .entity-client{margin:0;font-weight:600}.slot-card .entity-meta{margin:0}.slot-card-client .outcome-actions{margin:0;flex:0 0 auto;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-end}.slot-card-client .outcome-actions .btn{white-space:nowrap}.slot-attach-summary{margin:0;display:grid;gap:.55rem;padding:.75rem .85rem;border:1px solid var(--line);border-radius:.75rem;background:color-mix(in srgb,var(--surface) 70%,white)}.slot-attach-summary div{display:grid;gap:.12rem}.slot-attach-summary dt{margin:0;color:var(--muted);font-size:.82rem}.slot-attach-summary dd{margin:0;font-weight:600}.attach-client-form{display:grid;gap:.7rem;min-width:0}.confirm-message{margin:0 0 .45rem;line-height:1.4}.confirm-irreversible{margin:0 0 1rem;color:var(--danger);font-size:.92rem;font-weight:600}.outcome-banner{margin:.35rem 0 0;padding:.45rem .65rem;border-radius:.55rem;font-size:.9rem;font-weight:600}.outcome-realized,.entity-card.outcome-realized,.booking-card.outcome-realized{background:#e8f6ee}.outcome-banner.outcome-realized{color:var(--success);background:#d7f0e2}.outcome-failed,.entity-card.outcome-failed,.booking-card.outcome-failed{background:#f8eaea}.outcome-banner.outcome-failed{color:var(--danger);background:#f3d6d6}.outcome-not_realized,.entity-card.outcome-not_realized,.booking-card.outcome-not_realized{background:#eef0f2}.outcome-banner.outcome-not_realized{color:var(--muted);background:#e3e6ea}.outcome-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem}.btn-compact{padding:.4rem .7rem;font-size:.88rem}.booking-card-compact{padding:.75rem .9rem}.booking-compact-top{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}.panel-hint{margin:0 0 .75rem;font-size:.88rem}.panel-heading-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.35rem}.panel-heading-row h2{margin:0}.add-circle-btn{margin-left:auto;width:2.6rem;height:2.6rem;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--brand);background:var(--brand);color:#fff;font-size:1.65rem;font-weight:500;line-height:1;cursor:pointer;padding:0}.add-circle-btn:hover{background:var(--brand-strong);border-color:var(--brand-strong)}.view-toggle{display:inline-flex;border:1px solid var(--line);border-radius:.65rem;overflow:hidden}.view-toggle-btn{border:0;background:#fff;padding:.4rem .75rem;cursor:pointer;color:var(--muted);font:inherit}.view-toggle-btn.is-active{background:color-mix(in srgb,var(--brand) 12%,white);color:var(--brand-strong);font-weight:600}.title-suggest{position:relative}.title-suggest-list{position:absolute;z-index:8;left:0;right:0;top:calc(100% - .15rem);margin:0;padding:.35rem 0;list-style:none;border:1px solid var(--line);border-radius:.65rem;background:#fff;max-height:12rem;overflow:auto;box-shadow:0 8px 20px #141e2814}.title-suggest-option{display:block;width:100%;text-align:left;border:0;background:transparent;padding:.45rem .75rem;cursor:pointer;font:inherit;color:var(--ink)}.title-suggest-option:hover{background:color-mix(in srgb,var(--brand) 10%,white)}.time-picker{position:relative}.time-picker-shell{width:100%}.time-picker-shell input{width:100%;cursor:text}.time-picker-panel{position:absolute;z-index:6;left:0;right:0;top:calc(100% + .25rem);display:grid;grid-template-columns:1fr 1fr;gap:.35rem;padding:.45rem;border:1px solid var(--line);border-radius:.75rem;background:#fff;box-shadow:0 10px 24px #141e281a}.time-picker-col{max-height:12rem;overflow:auto;display:grid;gap:.15rem}.time-picker-option{border:0;border-radius:.45rem;background:transparent;padding:.4rem .5rem;cursor:pointer;font:inherit;text-align:center}.time-picker-option:hover{background:color-mix(in srgb,var(--brand) 10%,white)}.time-picker-option.is-selected{background:color-mix(in srgb,var(--brand) 16%,white);color:var(--brand-strong);font-weight:600}.slot-timeline{display:grid;gap:.5rem;user-select:none;-webkit-user-select:none}.slot-timeline-body{position:relative;display:grid;grid-template-columns:3.5rem 1fr;gap:.35rem;border:1px solid var(--line);border-radius:.85rem;background:#fff;overflow:hidden}.slot-timeline-hours{position:relative}.slot-timeline-hour{position:absolute;left:.35rem;transform:translateY(-50%);font-size:.72rem;color:var(--muted);white-space:nowrap}.slot-timeline-track{position:relative;margin:.35rem .5rem .35rem 0;border-left:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent,transparent 71px,color-mix(in srgb,var(--line) 70%,white) 72px);cursor:crosshair}.slot-timeline-block{position:absolute;left:.35rem;right:.35rem;border-radius:.45rem;padding:.15rem 0 .15rem .4rem;overflow:hidden;border:1px solid var(--line);cursor:pointer;font:inherit;color:inherit;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;flex-direction:row;align-items:center;gap:.25rem;z-index:1}.slot-timeline-block-main{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:row;align-items:center;gap:.4rem}.slot-timeline-block-text{min-width:0;flex:1 1 auto;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:.08rem}.slot-timeline-drag-handle{position:relative;z-index:2;flex:0 0 1.75rem;width:1.75rem;margin:-.25rem 0;display:flex;align-items:center;justify-content:center;border:0;border-left:1px solid color-mix(in srgb,var(--line) 80%,white);border-radius:0 .35rem .35rem 0;background:color-mix(in srgb,var(--ink) 7%,white);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;color:var(--muted)}.slot-timeline-drag-handle:hover,.slot-timeline-drag-handle:focus-visible{background:color-mix(in srgb,var(--brand) 16%,white);color:var(--brand-strong);outline:none}.slot-timeline-drag-grip{width:.7rem;height:.95rem;background-image:radial-gradient(circle,currentColor 1.15px,transparent 1.25px);background-size:.35rem .32rem;background-position:0 0}.slot-timeline-block.is-selected{outline:2px solid var(--brand);outline-offset:-1px;z-index:3}.slot-timeline-block.is-ghost{background:color-mix(in srgb,var(--brand) 14%,white);border-style:dashed;border-color:var(--brand);z-index:4;cursor:default}.slot-timeline-block-tools{display:flex;flex-wrap:nowrap;flex-shrink:0;gap:.2rem;align-items:center;margin-right:.7rem}.slot-timeline-block-tools .icon-btn{width:1.6rem;height:1.6rem;font-size:.9rem}.slot-timeline-block-tools .entity-icon-actions,.slot-timeline-block-tools .outcome-actions{margin:0}.slot-timeline-block-tools .btn-compact{padding:.2rem .45rem;font-size:.72rem}.slot-timeline-detail{margin-bottom:.65rem}.slot-timeline-block.status-open{background:color-mix(in srgb,#8a97a5 22%,white)}.slot-timeline-block.status-booked{background:color-mix(in srgb,var(--success) 28%,white)}.slot-timeline-block-label{font-size:.78rem;line-height:1.2;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.slot-timeline-block-client{font-size:.72rem;line-height:1.15;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot-timeline-block-phone{font-size:.7rem;line-height:1.15;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot-timeline-block-pending{font-size:.7rem;line-height:1.15;font-weight:650;color:#9a3412;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto;min-width:0}.icon-btn.booking-accept{border-color:var(--success);color:var(--success);background:color-mix(in srgb,var(--success) 12%,white)}.icon-btn.booking-accept:hover:not(:disabled){border-color:var(--success);color:var(--success);background:color-mix(in srgb,var(--success) 22%,white)}.icon-btn.booking-reject{border-color:var(--danger);color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,white)}.icon-btn.booking-reject:hover:not(:disabled){border-color:var(--danger);color:var(--danger);background:color-mix(in srgb,var(--danger) 22%,white)}.slot-dot{width:.45rem;height:.45rem;border-radius:50%;display:inline-block}.slot-dot-open{background:#8a97a5}.slot-dot-booked{background:var(--success)}@keyframes slot-dot-pending-blink{0%,to{opacity:1}50%{opacity:.2}}.slot-dot-pending{background:#c2410c;animation:slot-dot-pending-blink 1.2s ease-in-out infinite}.slot-calendar-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.85rem;color:var(--muted);font-size:.82rem}.slot-calendar-legend li{display:inline-flex;align-items:center;gap:.35rem}.day-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none}.day-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .3rem .15rem .6rem;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--brand) 8%,white);font-size:.85rem;white-space:nowrap}.day-chip-remove{display:inline-flex;align-items:center;justify-content:center;min-width:1.15rem;min-height:1.15rem;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:.95rem;line-height:1;cursor:pointer}.day-chip-remove:hover{background:color-mix(in srgb,var(--brand) 18%,white);color:var(--ink)}.duration-combo-list.is-floating,.time-picker-panel.is-floating{position:fixed;right:auto;top:auto;bottom:auto;z-index:60;overflow-y:auto}.bulk-notices{display:grid;gap:.35rem;margin-top:.6rem}.status-pill{margin:0;padding:.2rem .55rem;border-radius:999px;font-size:.8rem;border:1px solid var(--line);white-space:nowrap}.status-open{color:var(--success);border-color:color-mix(in srgb,var(--success) 35%,var(--line))}.status-booked{color:var(--brand);border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}.status-cancelled,.status-rejected{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,var(--line))}.status-pending{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 35%,var(--line))}.status-confirmed{color:var(--success);border-color:color-mix(in srgb,var(--success) 35%,var(--line))}.status-message{margin:0;padding:.85rem 1rem;border-radius:.85rem;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 80%,white)}.status-error{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,var(--line))}.inline-field{min-width:12rem}.admin-panel,.admin-section{display:grid;gap:1rem}.admin-tabs{margin-bottom:.25rem}.admin-form h2,.admin-section h2{margin:0;font-size:1.15rem}.admin-subheading{margin:.75rem 0 .35rem;font-size:1rem}.admin-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.65rem}.admin-stat-card{padding:.75rem .85rem;border:1px solid var(--line);border-radius:.75rem;background:#fff}.admin-stat-label{margin:0;color:var(--muted);font-size:.88rem}.admin-stat-value{margin:.2rem 0 0;font-size:1.35rem;font-weight:700;color:var(--brand)}.admin-stat-hint{margin:.25rem 0 0;color:var(--muted);font-size:.82rem}.admin-sms-form{display:grid;gap:.75rem;max-width:24rem}.role-pill{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;font-size:.82rem;font-weight:600;white-space:nowrap}.role-pill-trainer{background:color-mix(in srgb,var(--brand) 12%,white);color:var(--brand-strong)}.role-pill-admin{background:color-mix(in srgb,var(--warn) 18%,white);color:var(--warn)}.admin-bar-chart{display:grid;gap:.45rem;margin-bottom:.75rem}.admin-bar-row{display:grid;grid-template-columns:6.5rem 1fr 2rem;gap:.45rem;align-items:center}.admin-bar-label,.admin-bar-count{font-size:.88rem;color:var(--muted)}.admin-bar-track{height:.65rem;border-radius:999px;background:color-mix(in srgb,var(--line) 55%,white);overflow:hidden}.admin-bar-fill{height:100%;border-radius:inherit;background:var(--brand);min-width:0}.admin-table{width:100%;border-collapse:collapse;font-size:.92rem}.admin-table th,.admin-table td{border:1px solid var(--line);padding:.45rem .55rem;text-align:left}.admin-table th{background:color-mix(in srgb,var(--surface) 70%,white)}@media(max-width:767px){.edit-grid{grid-template-columns:1fr}.admin-bar-row{grid-template-columns:1fr;gap:.2rem}.inline-field{min-width:0;width:100%}.desktop-only,.desktop-tabs{display:none!important}.mobile-slots-pane{display:none}.mobile-slots-pane.is-visible{display:block}.mobile-slots-pane.is-visible .panel{display:flex;flex-direction:column;max-height:calc(100dvh - 11rem - env(safe-area-inset-bottom,0px))}.mobile-slots-pane.is-visible .slots-scroll-area{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.app-header{flex-direction:row;align-items:center;justify-content:space-between;padding:.45rem .75rem;gap:.35rem}.brand{font-size:1.05rem;line-height:1.2}.tagline{display:none}.header-actions{gap:.35rem;flex-wrap:nowrap}.header-user{font-size:.82rem;max-width:7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions .btn,.header-settings-btn{padding:.35rem .55rem;font-size:.82rem}.header-settings-btn{width:2rem;height:2rem;padding:0}.app-main{padding:.65rem .75rem calc(5.25rem + env(safe-area-inset-bottom,0px))}.app-footer{display:none}.page-intro{margin-bottom:-.35rem}.page-intro h1{font-size:1.05rem;margin:0;line-height:1.3}.page-intro-sub{display:none}.cabinet-page{gap:.75rem}.panel,.panel-form{padding:.85rem}.client-card{padding:.75rem}.client-list .add-circle-btn{width:2.35rem;height:2.35rem;font-size:1.4rem}.client-list .entity-icon-actions .icon-btn{width:2.15rem;height:2.15rem}input[type=time]{min-height:2.75rem}.bottom-nav{position:fixed;z-index:30;left:0;right:0;bottom:0;display:flex;align-items:stretch;justify-content:space-around;gap:.15rem;padding:.3rem .4rem calc(.3rem + env(safe-area-inset-bottom,0px));border-top:1px solid color-mix(in srgb,var(--line) 80%,white);background:color-mix(in srgb,var(--surface) 88%,white);box-shadow:0 -8px 24px #0f172014;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.bottom-nav-btn{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.12rem;border:0;background:transparent;color:var(--muted);font:inherit;font-size:.68rem;font-weight:550;line-height:1.15;padding:.35rem .15rem .3rem;border-radius:.85rem;cursor:pointer}.bottom-nav-btn.is-active{color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,transparent);font-weight:700}.bottom-nav-icon{width:1.45rem;height:1.45rem;display:block}.bottom-nav-icon-wrap{position:relative;display:inline-flex}.bottom-nav-icon-wrap .pending-badge{position:absolute;top:-.4rem;right:-.55rem;min-width:1.05rem;height:1.05rem;font-size:.62rem;padding:0 .22rem}.slot-card-body{padding:.7rem .8rem;gap:.35rem}.slot-card-top{flex-wrap:nowrap;align-items:center}.slot-card-top .entity-title{flex:1 1 auto;min-width:0;font-size:.92rem;line-height:1.3}.slot-card-toolbar{margin-left:0;flex:0 0 auto}.slot-card .entity-icon-actions .icon-btn{width:2.15rem;height:2.15rem}.slot-card-client .outcome-actions{margin-left:auto}}@media(max-width:360px){.slot-card-top{flex-wrap:wrap}.slot-card-top .entity-title{flex:0 1 auto}.slot-card-toolbar{margin-left:auto}}@media(min-width:768px){.mobile-only,.bottom-nav{display:none!important}.app-header{flex-direction:row;align-items:center;justify-content:space-between;padding:1.5rem 2rem}.header-center{position:absolute;left:50%;transform:translate(-50%)}.app-main{padding:2rem}.cabinet-grid{display:grid;grid-template-columns:minmax(16rem,22rem) 1fr;align-items:start}.panel,.panel-form{padding:1.5rem}}.panel-heading-left{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.btn-back{padding:.35rem .55rem}.panel-form-plain{border:0;padding:0;background:transparent;box-shadow:none}.modal-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:1rem}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#0f172073;cursor:pointer}.modal-panel{position:relative;z-index:1;display:flex;flex-direction:column;width:min(100%,26rem);max-height:90vh;overflow:hidden;border-radius:1rem;background:#fff;border:1px solid var(--line);box-shadow:0 16px 40px #0f17202e;padding:1rem 1.1rem 1.15rem}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem;flex-shrink:0}.modal-title{margin:0;font-size:1.05rem}.modal-body{min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto}.modal-body input,.modal-body select{width:100%;min-width:0;max-width:100%}.modal-actions-stack{display:grid;gap:.55rem}@media(max-width:767px){.modal-root{display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding:.75rem}.modal-root.is-keyboard{justify-content:flex-start;padding:0;padding-top:env(safe-area-inset-top,0px)}.modal-panel{width:100%;max-width:none;border-radius:1rem;max-height:85dvh;margin:0}.modal-root.is-keyboard .modal-panel{border-radius:0 0 1rem 1rem}}.duration-combo{position:relative}.duration-combo-shell{display:grid;grid-template-columns:1fr auto;align-items:stretch}.duration-combo-shell input{width:100%;border-top-right-radius:0;border-bottom-right-radius:0}.duration-combo-toggle{border:1px solid var(--line);border-left:0;border-radius:0 .75rem .75rem 0;background:#fff;padding:0 .7rem;cursor:pointer;color:var(--muted)}.duration-combo-list{position:absolute;z-index:8;left:0;right:0;top:calc(100% + .2rem);margin:0;padding:.35rem 0;list-style:none;border:1px solid var(--line);border-radius:.65rem;background:#fff;max-height:12rem;overflow:auto;box-shadow:0 8px 20px #141e2814}.duration-combo-option{display:block;width:100%;text-align:left;border:0;background:transparent;padding:.45rem .75rem;cursor:pointer;font:inherit}.duration-combo-option:hover,.duration-combo-option.is-selected{background:color-mix(in srgb,var(--brand) 12%,white)}.checkbox-field span{display:flex;align-items:center;gap:.45rem;color:var(--ink)}.slot-timeline-block.is-ghost{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.35rem;padding-right:.4rem;background:color-mix(in srgb,var(--brand) 10%,white);border:1px dashed var(--brand)}.ghost-add-btn{width:1.85rem;height:1.85rem;flex-shrink:0;border-radius:999px;border:1px dashed var(--brand);background:#fff;color:var(--brand);font-size:1.15rem;line-height:1;cursor:pointer;padding:0}.slot-timeline.is-live-drag,.slot-timeline.is-live-drag *{user-select:none!important;-webkit-user-select:none!important;cursor:grabbing}.slot-timeline-block.is-drag-origin{opacity:.38;border-style:dashed}.slot-timeline-block.is-dragging{z-index:8;pointer-events:none;cursor:grabbing;padding-right:.4rem;box-shadow:0 12px 28px #0f172038;border-color:var(--brand);background:color-mix(in srgb,var(--brand) 16%,white)}.slot-timeline-block.is-invalid{background:color-mix(in srgb,var(--danger) 22%,white);border-color:var(--danger)}.client-picker{position:relative;display:grid;gap:.65rem}.slot-datetime-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem;align-items:start}.slot-datetime-time,.slot-datetime-row .field{min-width:0}.slot-datetime-row input{width:100%;min-width:0}.client-form{display:grid;gap:.65rem;min-width:0}.client-form .field,.client-form input{min-width:0;width:100%}.client-card .entity-main{display:grid;gap:.15rem;justify-content:start;min-width:0;flex:1}.client-card .entity-title,.client-card .entity-meta{overflow-wrap:anywhere;word-break:break-word}.client-list,.client-list .card-list,.client-list .entity-row{min-width:0}.client-list .entity-row{align-items:center}@keyframes slot-pending-booking-card-blink{0%,to{background-color:color-mix(in srgb,#c2410c 26%,white);border-color:#c2410c}50%{background-color:var(--surface);border-color:var(--line)}}@keyframes slot-pending-booking-block-blink{0%,to{background-color:color-mix(in srgb,#c2410c 32%,white);border-color:#c2410c}50%{background-color:color-mix(in srgb,var(--success) 28%,white);border-color:var(--line)}}.slot-card.has-pending-booking,.btn.has-pending-booking{animation:slot-pending-booking-card-blink 1.4s ease-in-out infinite}.slot-timeline-block.has-pending-booking{animation:slot-pending-booking-block-blink 1.4s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.slot-card.has-pending-booking,.btn.has-pending-booking,.slot-timeline-block.has-pending-booking{animation:none;background-color:color-mix(in srgb,#c2410c 26%,white);border-color:#c2410c}.slot-dot-pending{animation:none}}.sms-marks{display:flex;align-items:center;gap:.25rem;flex:0 0 auto;min-width:0}.sms-mark{font-size:.85rem;line-height:1;letter-spacing:-.08em;white-space:nowrap}.sms-mark.is-sent{color:var(--warn)}.sms-mark.is-delivered{color:var(--success);font-weight:700}.sms-marks-compact{gap:.2rem}.sms-marks-compact .sms-mark{font-size:.75rem}.slot-timeline-block-label-row{display:flex;align-items:center;gap:.3rem;min-width:0}.settings-section{margin-top:1.4rem;padding-top:1.1rem;border-top:1px solid var(--line);display:grid;gap:.85rem}.settings-section-title{margin:0;font-size:1rem}.settings-section-hint{margin:0;color:var(--muted);font-size:.88rem;line-height:1.35}.sms-template-field textarea{width:100%;resize:vertical;font:inherit;padding:.5rem .6rem;border:1px solid var(--line);border-radius:.45rem;background:var(--surface);color:var(--ink)}.sms-template-field .field-hint{color:var(--muted);font-size:.83rem}.sms-template-counter{color:var(--muted);font-size:.85rem;font-variant-numeric:tabular-nums}
