@layer reset,base,components,utilities;@layer base{html{font-size:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:none;text-size-adjust:none;background:var(--color-canvas);color:var(--color-ink);font-family:var(--font-sans);line-height:1.5}a{text-decoration:none;color:inherit}a:not([class]){color:var(--color-link);text-decoration:underline;text-decoration-skip-ink:auto}a,button,input,textarea,select{transition:var(--transition-fast);transition-property:background-color,border-color,box-shadow,color,outline;touch-action:manipulation}:is(a,button,input,textarea,select):focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}:is(a,button,input,textarea,select):disabled{cursor:not-allowed;opacity:.5;pointer-events:none}::selection{background:var(--color-selected)}code,kbd,pre,samp{font-family:var(--font-mono)}@media screen and (-webkit-min-device-pixel-ratio:0)and (min-resolution:.001dpcm){*{scrollbar-color:oklch(var(--lch-ink-light)) transparent;scrollbar-width:thin}}@media print{.no-print{display:none}}}:root{--inline-space: 1ch;--inline-space-half: calc(var(--inline-space) / 2);--inline-space-double: calc(var(--inline-space) * 2);--block-space: 1rem;--block-space-half: calc(var(--block-space) / 2);--block-space-double: calc(var(--block-space) * 2);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--text-xx-small: .55rem;--text-x-small: .75rem;--text-small: .875rem;--text-normal: 1rem;--text-medium: 1.125rem;--text-large: 1.5rem;--text-x-large: 1.875rem;--text-xx-large: 2.5rem;--lch-black: 0% 0 0;--lch-white: 100% 0 0;--lch-ink-darkest: 26% .02 260;--lch-ink-darker: 40% .02 260;--lch-ink-dark: 56% .01 260;--lch-ink-medium: 66% .008 260;--lch-ink-light: 84% .005 260;--lch-ink-lighter: 92% .003 260;--lch-ink-lightest: 96% .002 260;--lch-blue-darkest: 26% .126 264;--lch-blue-darker: 40% .166 262;--lch-blue-dark: 57% .19 260;--lch-blue-medium: 66% .196 258;--lch-blue-light: 84% .072 255;--lch-blue-lighter: 92% .026 254;--lch-blue-lightest: 96% .016 252;--lch-red-darkest: 26% .105 34;--lch-red-darker: 40% .154 36;--lch-red-dark: 59% .19 38;--lch-red-medium: 66% .204 40;--lch-red-light: 84% .084 42;--lch-red-lighter: 92% .03 44;--lch-red-lightest: 96% .013 46;--lch-green-darkest: 26% .071 149;--lch-green-darker: 40% .12 148;--lch-green-dark: 55% .162 147;--lch-green-medium: 66% .208 146;--lch-green-light: 84% .077 145;--lch-green-lighter: 92% .044 144;--lch-green-lightest: 96% .022 143;--lch-yellow-darkest: 26% .073 40;--lch-yellow-darker: 40% .12 50;--lch-yellow-dark: 58% .156 60;--lch-yellow-medium: 74% .184 70;--lch-yellow-light: 84% .12 80;--lch-yellow-lighter: 92% .076 90;--lch-yellow-lightest: 96% .034 100;--lch-purple-darkest: 26% .131 314;--lch-purple-darker: 40% .178 312;--lch-purple-dark: 58% .21 310;--lch-purple-medium: 66% .258 308;--lch-purple-light: 84% .078 306;--lch-purple-lighter: 92% .03 304;--lch-purple-lightest: 96% .019 302;--color-canvas: oklch(var(--lch-white));--color-ink: oklch(var(--lch-ink-darkest));--color-ink-light: oklch(var(--lch-ink-light));--color-ink-lighter: oklch(var(--lch-ink-lighter));--color-ink-lightest: oklch(var(--lch-ink-lightest));--color-ink-medium: oklch(var(--lch-ink-medium));--color-ink-dark: oklch(var(--lch-ink-dark));--color-ink-darker: oklch(var(--lch-ink-darker));--color-primary: oklch(var(--lch-blue-dark));--color-primary-light: oklch(var(--lch-blue-lighter));--color-primary-foreground: oklch(var(--lch-white));--color-link: oklch(var(--lch-blue-dark));--color-negative: oklch(var(--lch-red-dark));--color-positive: oklch(var(--lch-green-dark));--color-warning: oklch(var(--lch-yellow-medium));--color-selected: oklch(var(--lch-blue-lighter));--color-selected-dark: oklch(var(--lch-blue-light));--color-highlight: oklch(var(--lch-yellow-lighter));--color-muted: oklch(var(--lch-ink-lightest));--color-muted-foreground: oklch(var(--lch-ink-medium));--border-color: oklch(var(--lch-ink-lighter));--border: 1px solid var(--border-color);--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px oklch(var(--lch-black) / 5%);--shadow-sm: 0 1px 3px oklch(var(--lch-black) / 10%), 0 1px 2px oklch(var(--lch-black) / 6%);--shadow-md: 0 4px 6px oklch(var(--lch-black) / 10%), 0 2px 4px oklch(var(--lch-black) / 6%);--shadow-lg: 0 10px 15px oklch(var(--lch-black) / 10%), 0 4px 6px oklch(var(--lch-black) / 5%);--focus-ring-color: var(--color-primary);--focus-ring-offset: 2px;--focus-ring-size: 2px;--focus-ring: var(--focus-ring-size) solid var(--focus-ring-color);--transition-fast: .1s ease-out;--transition-normal: .15s ease-out;--transition-slow: .3s ease-out;--sidebar-width: 320px;--time-column-width: 60px;--day-column-min-width: 120px;--hour-height: 60px;--slot-height: 15px;--appointment-horizontal-margin: 4px;--calendar-bg-primary: var(--color-canvas);--calendar-bg-secondary: oklch(var(--lch-ink-lightest));--calendar-grid-line: var(--border-color);--calendar-hour-line: oklch(var(--lch-ink-light));--calendar-current-time: oklch(var(--lch-red-medium));--appointment-scheduled: oklch(var(--lch-blue-dark));--appointment-in-progress: oklch(65% .15 195);--appointment-completed-unbilled: oklch(var(--lch-yellow-dark));--appointment-completed-invoiced: oklch(var(--lch-purple-dark));--appointment-completed-paid: oklch(var(--lch-green-dark));--appointment-cancelled: oklch(var(--lch-ink-medium));--appointment-no-show: oklch(var(--lch-red-dark));--btn-height-sm: 2rem;--btn-height-md: 2.25rem;--btn-height-lg: 2.5rem;--input-height: 2.25rem}@media(max-width:1199px){:root{--day-column-min-width: 96px}}@layer reset{*,*:before,*:after{box-sizing:border-box}body,h1,h2,h3,h4,h5,h6{margin:0}p,li,h1,h2,h3,h4{word-break:break-word}html,body{overflow-x:clip}body{min-height:100dvh;font-family:sans-serif;font-size:100%;line-height:1.5;text-rendering:optimizeSpeed}img{display:block;max-inline-size:100%}input,button,textarea,select{font:inherit}button{cursor:pointer}summary::-webkit-details-marker{display:none}summary::marker{content:""}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}html{scroll-behavior:initial}}dialog{border:0;padding:0}dialog:where(:focus-visible):focus,dialog:where(:focus-visible):active{outline:0}}@layer components{.btn{--btn-bg: var(--color-canvas);--btn-border-color: var(--border-color);--btn-color: var(--color-ink);--btn-hover-brightness: .95;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;white-space:nowrap;border-radius:var(--radius-md);font-size:var(--text-small);font-weight:500;line-height:1.25rem;flex-shrink:0;outline:none;background-color:var(--btn-bg);color:var(--btn-color);border:1px solid var(--btn-border-color);transition:var(--transition-normal);transition-property:background-color,border-color,box-shadow,color,filter}.btn:disabled{pointer-events:none;opacity:.5}.btn svg{pointer-events:none;flex-shrink:0}.btn svg:not([class*=size-]){width:1rem;height:1rem}@media(any-hover:hover){.btn:hover{filter:brightness(var(--btn-hover-brightness))}}.btn:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}.btn[aria-invalid=true]{border-color:var(--color-negative);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-negative) 20%,transparent)}.btn--default{--btn-bg: var(--color-primary);--btn-border-color: var(--color-primary);--btn-color: var(--color-primary-foreground);background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-foreground)}.btn--destructive{--btn-bg: var(--color-negative);--btn-border-color: var(--color-negative);--btn-color: oklch(var(--lch-white));background-color:var(--color-negative);border-color:var(--color-negative);color:oklch(var(--lch-white))}.btn--destructive:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-negative) 20%,transparent)}.btn--outline{--btn-bg: var(--color-canvas);--btn-border-color: var(--border-color);--btn-color: var(--color-ink);background-color:var(--color-canvas);border-color:var(--border-color);color:var(--color-ink);box-shadow:var(--shadow-xs)}.btn--outline:hover{--btn-bg: var(--color-muted);background-color:var(--color-muted)}.btn--secondary{--btn-bg: var(--color-muted);--btn-border-color: var(--color-muted);--btn-color: var(--color-ink);background-color:var(--color-muted);border-color:var(--color-muted);color:var(--color-ink)}.btn--ghost{--btn-bg: transparent;--btn-border-color: transparent;--btn-color: var(--color-ink);background-color:transparent;border-color:transparent;color:var(--color-ink)}.btn--ghost:hover{--btn-bg: var(--color-muted);--btn-border-color: var(--border-color);background-color:var(--color-muted);border-color:var(--border-color)}.btn--link{--btn-bg: transparent;--btn-border-color: transparent;--btn-color: var(--color-link);background-color:transparent;border-color:transparent;color:var(--color-link);text-decoration:underline;text-underline-offset:4px}.btn--md{height:var(--btn-height-md);padding:.5rem 1rem}.btn--md:has(>svg:only-child){padding:.5rem .75rem}.btn--sm{height:var(--btn-height-sm);border-radius:var(--radius-md);gap:.375rem;padding:.5rem .75rem}.btn--sm:has(>svg:only-child){padding:.5rem .625rem}.btn--lg{height:var(--btn-height-lg);border-radius:var(--radius-md);padding:.5rem 1.5rem}.btn--lg:has(>svg:only-child){padding:.5rem 1rem}.btn--icon{width:var(--btn-height-md);height:var(--btn-height-md);padding:0}.btn--icon-sm{width:var(--btn-height-sm);height:var(--btn-height-sm);padding:0}.btn--icon-lg{width:var(--btn-height-lg);height:var(--btn-height-lg);padding:0}}@layer components{.card{background-color:var(--color-canvas);color:var(--color-ink);display:flex;flex-direction:column;gap:1.5rem;border-radius:var(--radius-xl);border:var(--border);padding:1.5rem 0;box-shadow:var(--shadow-xs)}.card__header{container-type:inline-size;container-name:card-header;display:grid;grid-auto-rows:min-content;grid-template-rows:auto auto;align-items:start;gap:.5rem;padding:0 1.5rem}.card__header:has([data-slot=card-action]){grid-template-columns:1fr auto}.card__header--border{padding-bottom:1.5rem;border-bottom:var(--border)}.card__title{line-height:1;font-weight:600}.card__description{color:var(--color-muted-foreground);font-size:var(--text-small);line-height:1.25rem}.card__action{grid-column-start:2;grid-row:1 / span 2;align-self:start;justify-self:end}.card__content{padding:0 1.5rem}.card__footer{display:flex;align-items:center;padding:0 1.5rem}.card__footer--border{padding-top:1.5rem;border-top:var(--border)}}@layer components{.date-picker{width:100%;justify-content:flex-start;text-align:left;font-weight:400;gap:.75rem;padding:.625rem 1rem;border-radius:var(--radius-lg);border:var(--border);background-color:var(--color-canvas);box-shadow:var(--shadow-xs);transition:var(--transition-normal);transition-property:background-color,border-color,box-shadow}.date-picker[data-empty=true]{color:var(--color-muted-foreground)}.date-picker:hover{background-color:var(--color-muted)}.date-picker:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 15%,transparent)}.date-picker svg{width:1rem;height:1rem;flex-shrink:0}.date-picker__popover{width:auto;padding:0}.calendar{background-color:transparent;padding:1rem;border-radius:var(--radius-lg)}.calendar :global(.rdp-months){gap:0}.calendar :global(.rdp-month){width:100%}.calendar :global(.rdp-table){width:100%;border-collapse:separate;border-spacing:2px}.calendar :global(.rdp-head_cell){text-align:center;font-weight:500;font-size:var(--text-x-small);color:var(--color-muted-foreground);padding:.5rem 0}.calendar :global(.rdp-cell){text-align:center;position:relative}.calendar :global(.rdp-button){width:var(--btn-height-md);height:var(--btn-height-md);border:1px solid transparent;background:var(--color-canvas);border-radius:var(--radius-md);transition:var(--transition-normal);font-weight:400;font-size:var(--text-small);color:var(--color-ink);cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;box-shadow:var(--shadow-xs)}.calendar :global(.rdp-button:hover){background-color:var(--color-muted);border-color:var(--border-color);box-shadow:var(--shadow-sm)}.calendar :global(.rdp-button:focus-visible){outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}.calendar :global(.rdp-day_selected){background-color:var(--color-primary)!important;color:var(--color-primary-foreground)!important;font-weight:600!important;box-shadow:var(--shadow-sm);border-color:var(--color-primary)!important}.calendar :global(.rdp-day_today){background-color:var(--color-muted)!important;font-weight:600!important;border-color:var(--color-primary)!important;position:relative}.calendar :global(.rdp-day_today:after){content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:4px;height:4px;background-color:var(--color-primary);border-radius:var(--radius-full)}.calendar :global(.rdp-day_selected.rdp-day_today:after){background-color:var(--color-primary-foreground)}.calendar :global(.rdp-day_outside){color:var(--color-muted-foreground);opacity:.3;background-color:transparent!important;box-shadow:none!important}.calendar :global(.rdp-day_disabled){color:var(--color-muted-foreground);opacity:.5;cursor:not-allowed}.calendar :global(.rdp-nav){display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.calendar :global(.rdp-button_previous),.calendar :global(.rdp-button_next){width:var(--btn-height-md);height:var(--btn-height-md);padding:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);border:var(--border);background-color:var(--color-canvas);transition:var(--transition-normal);box-shadow:var(--shadow-xs)}.calendar :global(.rdp-button_previous:hover),.calendar :global(.rdp-button_next:hover){background-color:var(--color-muted);box-shadow:var(--shadow-sm)}.calendar :global(.rdp-caption_label){font-weight:600;font-size:var(--text-small)}.calendar :global(.rdp-dropdown_root){position:relative;display:inline-flex;align-items:center;gap:.25rem}.calendar :global(.rdp-dropdown){appearance:none;background:transparent;border:none;font-weight:600;font-size:var(--text-small);padding:.25rem 1.5rem .25rem .5rem;border-radius:var(--radius-sm);cursor:pointer;color:inherit}.calendar :global(.rdp-dropdown:hover){background-color:var(--color-muted)}.calendar__day--today{background-color:color-mix(in srgb,var(--color-primary) 15%,transparent)!important;color:var(--color-primary)!important;font-weight:600!important;border:1px solid var(--color-primary)!important;border-radius:var(--radius-md)!important}.calendar__day--outside{opacity:.3!important;color:var(--color-muted-foreground)!important}}@layer components{.input{height:var(--input-height);width:auto;min-width:0;border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--color-canvas);color:var(--color-ink);padding:.25rem .75rem;font-size:1rem;line-height:1.5rem;box-shadow:var(--shadow-xs);transition:var(--transition-normal);transition-property:border-color,box-shadow;outline:none}@media(min-width:768px){.input{font-size:var(--text-small);line-height:1.25rem}}.input:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 25%,transparent)}.input[aria-invalid=true]{border-color:var(--color-negative);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-negative) 20%,transparent)}.input:disabled{pointer-events:none;cursor:not-allowed;opacity:.5}.input[type=file]::file-selector-button{display:inline-flex;height:1.75rem;border:0;background-color:transparent;font-size:var(--text-small);font-weight:500;color:var(--color-ink)}.input::placeholder{color:var(--color-muted-foreground)}.input::selection{background-color:var(--color-selected)}.input--textarea{height:auto;min-height:5rem;padding:.5rem .75rem;resize:vertical}}@layer components{.label{display:flex;align-items:center;gap:.5rem;font-size:var(--text-small);line-height:1;font-weight:500;-webkit-user-select:none;user-select:none}.label:has(+:disabled),.label:has(+[disabled]){cursor:not-allowed;opacity:.5}.group[data-disabled=true] .label{pointer-events:none;opacity:.5}}@layer components{.popover__content{background-color:var(--color-canvas);color:var(--color-ink);z-index:50;width:auto;min-width:16rem;max-width:20rem;border-radius:var(--radius-lg);border:var(--border);padding:0;box-shadow:var(--shadow-lg);outline:none;margin:0;position:fixed;inset:unset}.popover__content:popover-open{animation:popover-in .2s cubic-bezier(.16,1,.3,1)}@starting-style{.popover__content:popover-open{opacity:0;transform:scale(.95) translateY(-10px)}}@keyframes popover-in{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes popover-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}}@layer components{.sheet__overlay{position:fixed;inset:0;z-index:50;background-color:oklch(var(--lch-black) / 50%)}.sheet__overlay[data-state=open]{animation:sheet-fade-in .2s cubic-bezier(.16,1,.3,1)}.sheet__overlay[data-state=closed]{animation:sheet-fade-out .2s cubic-bezier(.16,1,.3,1)}@keyframes sheet-fade-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-fade-out{0%{opacity:1}to{opacity:0}}.sheet__content{background-color:var(--color-canvas);position:fixed;z-index:50;display:flex;flex-direction:column;gap:1rem;box-shadow:var(--shadow-lg);transition:transform .3s cubic-bezier(.4,0,.2,1)}.sheet__content[data-state=open]{animation-duration:.5s;animation-timing-function:cubic-bezier(.4,0,.2,1)}.sheet__content[data-state=closed]{animation-duration:.3s;animation-timing-function:cubic-bezier(.4,0,.2,1)}.sheet__content--right{top:0;right:0;bottom:0;height:100%;width:75%;border-left:var(--border)}@media(min-width:640px){.sheet__content--right{max-width:24rem}}.sheet__content--right[data-state=open]{animation-name:sheet-slide-in-right}.sheet__content--right[data-state=closed]{animation-name:sheet-slide-out-right}@keyframes sheet-slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sheet-slide-out-right{0%{transform:translate(0)}to{transform:translate(100%)}}.sheet__content--left{top:0;left:0;bottom:0;height:100%;width:75%;border-right:var(--border)}@media(min-width:640px){.sheet__content--left{max-width:24rem}}.sheet__content--left[data-state=open]{animation-name:sheet-slide-in-left}.sheet__content--left[data-state=closed]{animation-name:sheet-slide-out-left}@keyframes sheet-slide-in-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes sheet-slide-out-left{0%{transform:translate(0)}to{transform:translate(-100%)}}.sheet__content--top{top:0;left:0;right:0;height:auto;border-bottom:var(--border)}.sheet__content--top[data-state=open]{animation-name:sheet-slide-in-top}.sheet__content--top[data-state=closed]{animation-name:sheet-slide-out-top}@keyframes sheet-slide-in-top{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes sheet-slide-out-top{0%{transform:translateY(0)}to{transform:translateY(-100%)}}.sheet__content--bottom{bottom:0;left:0;right:0;height:auto;border-top:var(--border)}.sheet__content--bottom[data-state=open]{animation-name:sheet-slide-in-bottom}.sheet__content--bottom[data-state=closed]{animation-name:sheet-slide-out-bottom}@keyframes sheet-slide-in-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sheet-slide-out-bottom{0%{transform:translateY(0)}to{transform:translateY(100%)}}.sheet__close{position:absolute;top:1rem;right:1rem;border-radius:var(--radius-sm);opacity:.7;transition:opacity var(--transition-normal);outline:none}.sheet__close:hover{opacity:1}.sheet__close:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}.sheet__close:disabled{pointer-events:none}.sheet__close svg{width:1rem;height:1rem}.sheet__header{display:flex;flex-direction:column;gap:.375rem;padding:1rem}.sheet__footer{margin-top:auto;display:flex;flex-direction:column;gap:.5rem;padding:1rem}.sheet__title{color:var(--color-ink);font-weight:600}.sheet__description{color:var(--color-muted-foreground);font-size:var(--text-small);line-height:1.25rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}}@layer components{.sonner :global(.lucide-circle-check),.sonner :global(.lucide-info),.sonner :global(.lucide-triangle-alert),.sonner :global(.lucide-octagon-x),.sonner :global(.lucide-loader-2){width:1rem;height:1rem}.sonner :global(.lucide-loader-2){animation:sonner-spin 1s linear infinite}@keyframes sonner-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}}@layer components{.tabs{display:flex;flex-direction:column;gap:.5rem}.tabs__list{background-color:var(--color-muted);color:var(--color-muted-foreground);display:inline-flex;height:var(--btn-height-md);width:fit-content;align-items:center;justify-content:center;border-radius:var(--radius-lg);padding:3px}.tabs__trigger{color:var(--color-ink);display:inline-flex;height:calc(100% - 1px);flex:1;align-items:center;justify-content:center;gap:.375rem;border-radius:var(--radius-md);border:1px solid transparent;padding:.25rem .5rem;font-size:var(--text-small);font-weight:500;white-space:nowrap;transition:var(--transition-normal);transition-property:background-color,border-color,box-shadow,color;outline:none;background:transparent}.tabs__trigger:disabled{pointer-events:none;opacity:.5}.tabs__trigger svg{pointer-events:none;flex-shrink:0}.tabs__trigger svg:not([class*=size-]){width:1rem;height:1rem}.tabs__trigger:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}.tabs__trigger[data-state=active]{background-color:var(--color-canvas);box-shadow:var(--shadow-xs)}.tabs__content{flex:1;outline:none}}@layer components{.app-layout{display:flex;flex-direction:column;height:100dvh}.app-layout__header{display:flex;align-items:center;gap:16px;padding:8px 16px;border-bottom:var(--border);background:var(--calendar-bg-primary)}.app-layout__name{font-weight:600;font-size:1rem;color:var(--color-ink)}.app-layout__desktop-nav{display:flex;gap:4px}.app-layout__nav-link{padding:6px 12px;border-radius:var(--radius-sm);font-size:var(--text-small);color:var(--color-ink-dark);text-decoration:none;transition:var(--transition-normal);transition-property:background-color,color}.app-layout__nav-link:hover{background:var(--calendar-bg-secondary);color:var(--color-ink)}.app-layout__nav-link--active{background:var(--calendar-bg-secondary);color:var(--color-ink);font-weight:500}.app-layout__user-section{margin-left:auto;display:flex;align-items:center;gap:12px}.app-layout__user-email{font-size:var(--text-small);color:var(--color-muted-foreground)}.app-layout__logout-btn{font-size:var(--text-small);color:var(--color-negative);background:none;border:none;cursor:pointer;padding:0}.app-layout__logout-btn:hover{text-decoration:underline}.app-layout__main{flex:1;display:flex;flex-direction:column;overflow:hidden}.app-layout__mobile-nav{display:none}@media(max-width:768px){.app-layout__desktop-nav,.app-layout__user-email{display:none}.app-layout__main{padding-bottom:56px}.app-layout__mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:56px;background:var(--calendar-bg-primary);border-top:var(--border);z-index:50}.app-layout__mobile-nav-link{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--color-muted-foreground);text-decoration:none;font-size:var(--text-x-small);transition:color var(--transition-normal)}.app-layout__mobile-nav-link:hover{color:var(--color-ink-dark)}.app-layout__mobile-nav-link--active{color:var(--color-ink)}}}@layer components{.calendar-layout{display:grid;grid-template-columns:1fr var(--sidebar-width);grid-template-rows:1fr;flex:1;min-height:0}@media(max-width:768px){.calendar-layout{grid-template-columns:1fr}}}@layer components{button.appointment{position:absolute;border-radius:var(--radius-sm);color:oklch(var(--lch-white));overflow:hidden;-webkit-user-select:none;user-select:none;cursor:pointer;transition:var(--transition-normal);transition-property:box-shadow,opacity;display:flex;flex-direction:column;border:none;padding:0;text-align:left;background:transparent}button.appointment:hover{box-shadow:var(--shadow-md)}button.appointment:focus-visible{outline:none;box-shadow:0 0 0 2px oklch(var(--lch-white)),0 0 0 4px currentColor}.appointment--selected{box-shadow:0 0 0 2px oklch(var(--lch-white)),0 0 0 4px oklch(var(--lch-black) / 30%);z-index:10}.appointment--dragging{opacity:.85;cursor:grabbing;z-index:20}.appointment--draft{border:2px dashed oklch(var(--lch-white) / 50%);background-image:repeating-linear-gradient(45deg,transparent,transparent 4px,oklch(var(--lch-white) / 5%) 4px,oklch(var(--lch-white) / 5%) 8px)}.appointment__content{flex:1;padding:4px 8px;min-height:0;overflow:hidden}.appointment__title{font-size:var(--text-x-small);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appointment__time{font-size:11px;opacity:.9;margin-top:2px}.appointment__resize-handle{position:absolute;left:0;right:0;height:8px;cursor:ns-resize;background:transparent;border:none;padding:0;appearance:none}.appointment__resize-handle:hover{background:oklch(var(--lch-white) / 20%)}.appointment__resize-handle--top{top:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0}.appointment__resize-handle--bottom{bottom:0;border-radius:0 0 var(--radius-sm) var(--radius-sm)}.appointment--status-cancelled{opacity:.6;text-decoration:line-through}.appointment--status-no-show{opacity:.7}}@layer components{.calendar-week-view{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--calendar-bg-primary)}.calendar-week-view__scroll-container{flex:1;overflow-y:auto;overflow-x:auto;overscroll-behavior:contain;position:relative;scrollbar-width:thin}.calendar-week-view__scroll-hint{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:3;width:fit-content;margin:0 auto;padding:4px 10px;border-radius:var(--radius-full);background:var(--calendar-bg-secondary);color:var(--color-ink-medium);font-size:var(--text-x-small);letter-spacing:.02em;pointer-events:none}.calendar-week-view__content{display:flex;min-height:calc(24 * var(--hour-height));min-width:calc(var(--time-column-width) + 7 * var(--day-column-min-width));position:relative}.calendar-week-view__day-columns{display:flex;flex:1}}@layer components{.current-time-indicator{position:absolute;left:0;right:0;z-index:5;pointer-events:none;height:0;transform:translateY(-50%)}.current-time-indicator__label{position:absolute;left:calc(var(--time-column-width) - 2px);top:0;font-size:11px;color:oklch(var(--lch-white));font-weight:600;background:var(--calendar-current-time);padding:2px 6px;border-radius:var(--radius-full);line-height:1;transform:translate(-100%,calc(-50% + .5px))}.current-time-indicator__line{position:absolute;left:calc(var(--time-column-width) - 10px);right:0;height:2px;background:var(--calendar-current-time);opacity:.25}.current-time-indicator__line--strong{position:absolute;height:2px;background:var(--calendar-current-time);opacity:1}}@layer components{.day-column{flex:1;position:relative;height:calc(24 * var(--hour-height));cursor:crosshair;background:var(--calendar-bg-primary);min-width:var(--day-column-min-width);border-right:1px solid var(--calendar-grid-line)}.day-column:last-child{border-right:none}.day-column__interaction-layer{position:absolute;inset:0;border:none;padding:0;background:transparent;cursor:crosshair}.day-column__interaction-layer:focus-visible{outline:2px solid color-mix(in srgb,var(--color-primary) 40%,transparent);outline-offset:-2px}.day-column__grid-lines{position:absolute;inset:0;pointer-events:none}.day-column__hour-line{position:absolute;left:0;right:0;height:1px;background:var(--calendar-hour-line)}.day-column__quarter-line{position:absolute;left:0;right:0;height:1px;background:var(--calendar-grid-line)}.day-column__appointment-layer{position:absolute;inset:0;pointer-events:none}.day-column__appointment-layer>*{pointer-events:auto}.day-column__creation-preview{position:absolute;left:var(--appointment-horizontal-margin);right:var(--appointment-horizontal-margin);background:color-mix(in srgb,var(--color-primary) 20%,transparent);border:2px dashed var(--color-primary);border-radius:var(--radius-sm);pointer-events:none;display:flex;align-items:center;justify-content:center;min-height:15px}.day-column__preview-time{font-size:var(--text-x-small);color:var(--color-primary);font-weight:500}}@layer components{.inline-patient-form{background:var(--calendar-bg-primary);border:var(--border);border-radius:var(--radius-lg);overflow:hidden;animation:inline-patient-form-slide .2s ease}@keyframes inline-patient-form-slide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.inline-patient-form__header{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 8px}.inline-patient-form__title{font-size:13px;font-weight:600;color:var(--color-ink-dark)}.inline-patient-form__cancel{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-muted-foreground);cursor:pointer;transition:var(--transition-normal);transition-property:background-color,color}.inline-patient-form__cancel:hover{background:var(--calendar-bg-secondary);color:var(--color-ink)}.inline-patient-form__fields{display:flex;flex-direction:column;gap:8px;padding:0 12px}.inline-patient-form__row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.inline-patient-form__input{width:100%;padding:8px 10px;border:var(--border);border-radius:var(--radius-md);font-size:13px;background:var(--calendar-bg-secondary);color:var(--color-ink);transition:var(--transition-normal);transition-property:border-color,box-shadow,background-color}.inline-patient-form__input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 10%,transparent);background:var(--calendar-bg-primary)}.inline-patient-form__input::placeholder{color:var(--color-muted-foreground)}.inline-patient-form__actions{display:flex;justify-content:flex-end;gap:8px;padding:12px}.inline-patient-form__btn{padding:6px 12px;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:var(--transition-normal);transition-property:background-color,opacity}.inline-patient-form__btn--primary{background:var(--color-primary);border:none;color:var(--color-primary-foreground)}.inline-patient-form__btn--primary:hover:not(:disabled){filter:brightness(.9)}.inline-patient-form__btn--primary:disabled{opacity:.5;cursor:not-allowed}.inline-patient-form__btn--secondary{background:transparent;border:var(--border);color:var(--color-ink-dark)}.inline-patient-form__btn--secondary:hover{background:var(--calendar-bg-secondary)}.inline-patient-form__error{margin:0;padding:8px 12px;font-size:var(--text-x-small);color:var(--color-negative);background:oklch(var(--lch-red-lightest))}}@layer components{.patient-search{position:relative}.patient-search__input-wrapper{position:relative;display:flex;align-items:center}.patient-search__icon{position:absolute;left:12px;color:var(--color-muted-foreground);pointer-events:none}.patient-search__input{width:100%;padding:10px 12px 10px 36px;border:var(--border);border-radius:var(--radius-lg);font-size:var(--text-small);background:var(--calendar-bg-primary);color:var(--color-ink);transition:var(--transition-normal);transition-property:border-color,box-shadow}.patient-search__input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 10%,transparent)}.patient-search__input::placeholder{color:var(--color-muted-foreground)}.patient-search__dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--calendar-bg-primary);border:var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);z-index:100;max-height:280px;display:flex;flex-direction:column;overflow:hidden;animation:patient-search-fade-in .15s ease}@keyframes patient-search-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.patient-search__list{list-style:none;margin:0;padding:4px;overflow-y:auto;flex:1}.patient-search__option{display:flex;flex-direction:column;gap:2px;padding:10px 12px;cursor:pointer;border-radius:var(--radius-md);transition:background-color .1s ease}.patient-search__option:hover,.patient-search__option--highlighted{background:var(--calendar-bg-secondary)}.patient-search__option-name{font-size:var(--text-small);font-weight:500;color:var(--color-ink)}.patient-search__option-phone{font-size:var(--text-x-small);color:var(--color-muted-foreground)}.patient-search__no-results{padding:12px;text-align:center;font-size:13px;color:var(--color-muted-foreground)}.patient-search__create-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;border:none;border-top:var(--border);background:transparent;font-size:var(--text-small);font-weight:500;color:var(--color-primary);cursor:pointer;transition:background-color .1s ease}.patient-search__create-btn:hover,.patient-search__create-btn--highlighted{background:color-mix(in srgb,var(--color-primary) 5%,transparent)}.patient-search__selected{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--calendar-bg-primary);border:var(--border);border-radius:var(--radius-lg)}.patient-search__patient-info{display:flex;flex-direction:column;gap:2px}.patient-search__patient-name{font-size:var(--text-small);font-weight:500;color:var(--color-ink)}.patient-search__patient-phone{font-size:var(--text-x-small);color:var(--color-muted-foreground)}.patient-search__clear-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-muted-foreground);cursor:pointer;transition:var(--transition-normal);transition-property:background-color,color}.patient-search__clear-btn:hover{background:oklch(var(--lch-red-lightest));color:var(--color-negative)}}@layer components{.sidebar{width:var(--sidebar-width);flex-shrink:0;border-left:var(--border);background:var(--calendar-bg-secondary);display:flex;flex-direction:column;overflow-y:auto}@media(max-width:768px){.sidebar{width:100%;border-left:none}}.sidebar__empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}.sidebar__empty-icon{color:var(--color-muted-foreground);margin-bottom:16px}.sidebar__empty-text{color:var(--color-ink-dark);font-size:var(--text-small);margin:0 0 8px}.sidebar__empty-hint{color:var(--color-muted-foreground);font-size:var(--text-x-small);margin:0}.sidebar__header{display:flex;align-items:flex-start;justify-content:space-between;padding:16px;border-bottom:var(--border);background:var(--calendar-bg-primary)}.sidebar__header-text{display:flex;flex-direction:column;gap:4px}.sidebar__header-title,.sidebar__title{font-size:var(--text-small);font-weight:600;margin:0;color:var(--color-ink)}.sidebar__switch-link{background:none;border:none;padding:0;font-size:var(--text-x-small);color:var(--color-muted-foreground);cursor:pointer;text-decoration:underline;text-align:left}.sidebar__switch-link:hover{color:var(--color-ink)}.sidebar__switch-link:focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}.sidebar__header-actions{display:flex;align-items:center;gap:8px}.sidebar__save-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px;background-color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-md);font-size:13px;font-weight:500;color:var(--color-primary-foreground);cursor:pointer;transition:var(--transition-normal);transition-property:background-color,opacity}.sidebar__save-btn:hover:not(:disabled){filter:brightness(.9)}.sidebar__save-btn:disabled{opacity:.5;cursor:not-allowed}.sidebar__save-btn--saving{filter:brightness(.9)}.sidebar__spinner{animation:sidebar-spin 1s linear infinite}@keyframes sidebar-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sidebar__delete-btn{background:none;border:none;padding:6px;cursor:pointer;color:var(--color-muted-foreground);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:var(--transition-normal);transition-property:background-color,color}.sidebar__delete-btn:hover{background:oklch(var(--lch-red-lightest));color:var(--color-negative)}.sidebar__form{padding:16px;display:flex;flex-direction:column;gap:16px;flex:1}.sidebar__field{display:flex;flex-direction:column;gap:6px}.sidebar__label{font-size:var(--text-x-small);font-weight:500;color:var(--color-ink-dark);text-transform:uppercase;letter-spacing:.5px}.sidebar__input{padding:8px 12px;border:var(--border);border-radius:var(--radius-md);font-size:var(--text-small);background:var(--calendar-bg-primary);color:var(--color-ink);transition:var(--transition-normal);transition-property:border-color,box-shadow}.sidebar__input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 10%,transparent)}.sidebar__select{padding:8px 12px;border:var(--border);border-radius:var(--radius-md);font-size:var(--text-small);background:var(--calendar-bg-primary);color:var(--color-ink);cursor:pointer;transition:var(--transition-normal);transition-property:border-color,box-shadow}.sidebar__select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 10%,transparent)}.sidebar__textarea{padding:8px 12px;border:var(--border);border-radius:var(--radius-md);font-size:var(--text-small);font-family:inherit;background:var(--calendar-bg-primary);color:var(--color-ink);resize:vertical;min-height:80px;transition:var(--transition-normal);transition-property:border-color,box-shadow}.sidebar__textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 10%,transparent)}.sidebar__time-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sidebar__duration{font-size:13px;color:var(--color-ink-dark)}.sidebar__footer{display:flex;align-items:center;justify-content:space-between;padding:16px;border-top:var(--border);background:var(--calendar-bg-primary)}.sidebar__footer-left{display:flex;flex-direction:column;gap:4px}.sidebar__time-display{font-size:13px;color:var(--color-ink-dark)}.sidebar__field-value{font-size:var(--text-small);color:var(--color-ink);white-space:pre-wrap}.sidebar__field-value--muted{font-size:var(--text-small);color:var(--color-muted-foreground);font-style:italic}.sidebar__edit-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px;background-color:var(--color-canvas);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:13px;font-weight:500;color:var(--color-ink);cursor:pointer;box-shadow:var(--shadow-xs);transition:var(--transition-normal);transition-property:background-color,border-color}.sidebar__edit-btn:hover{background-color:var(--color-muted);border-color:var(--color-ink-medium)}.sidebar__edit-actions{display:flex;gap:8px;justify-content:flex-end;padding:16px;border-top:var(--border);background:var(--calendar-bg-primary)}.sidebar__cancel-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px;background-color:var(--color-canvas);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:13px;font-weight:500;color:var(--color-ink);cursor:pointer;box-shadow:var(--shadow-xs);transition:var(--transition-normal);transition-property:background-color,border-color}.sidebar__cancel-btn:hover{background-color:var(--color-muted);border-color:var(--color-ink-medium)}}@layer components{button.time-block{position:absolute;border-radius:var(--radius-sm);color:oklch(var(--lch-white));overflow:hidden;-webkit-user-select:none;user-select:none;cursor:pointer;transition:var(--transition-normal);transition-property:box-shadow,opacity;display:flex;flex-direction:column;border:none;padding:0;text-align:left;background:transparent}button.time-block:hover{box-shadow:var(--shadow-md)}button.time-block:focus-visible{outline:none;box-shadow:0 0 0 2px oklch(var(--lch-white)),0 0 0 4px currentColor}.time-block--selected{box-shadow:0 0 0 2px oklch(var(--lch-white)),0 0 0 4px oklch(var(--lch-black) / 30%);z-index:10}.time-block--dragging{opacity:.85;cursor:grabbing;z-index:20}.time-block--draft{border:2px dashed oklch(var(--lch-white) / 50%);background-image:repeating-linear-gradient(45deg,transparent,transparent 4px,oklch(var(--lch-white) / 10%) 4px,oklch(var(--lch-white) / 10%) 8px)}.time-block__content{flex:1;padding:4px 8px;min-height:0;overflow:hidden}.time-block__title{font-size:var(--text-x-small);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time-block__time{font-size:11px;opacity:.9;margin-top:2px}.time-block__resize-handle{position:absolute;left:0;right:0;height:8px;cursor:ns-resize;background:transparent;border:none;padding:0;appearance:none}.time-block__resize-handle:hover{background:oklch(var(--lch-white) / 20%)}.time-block__resize-handle--top{top:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0}.time-block__resize-handle--bottom{bottom:0;border-radius:0 0 var(--radius-sm) var(--radius-sm)}}@layer components{.time-column{width:var(--time-column-width);flex-shrink:0;position:relative;border-right:1px solid var(--calendar-grid-line)}.time-column__hour{height:var(--hour-height);position:relative}.time-column__label{position:absolute;top:-.6em;right:8px;font-size:11px;color:var(--color-muted-foreground);font-weight:500}.time-column__hour:first-child .time-column__label{display:none}}@layer components{.week-header{display:flex;border-bottom:1px solid var(--calendar-hour-line);background:var(--calendar-bg-primary);position:sticky;top:0;z-index:10;min-width:calc(var(--time-column-width) + var(--day-column-count, 7) * var(--day-column-min-width))}.week-header__time-spacer{width:var(--time-column-width);flex-shrink:0;border-right:1px solid var(--calendar-grid-line)}.week-header__days{display:flex;flex:1;min-width:calc(var(--day-column-count, 7) * var(--day-column-min-width))}.week-header__day{flex:1;min-width:var(--day-column-min-width);padding:12px 8px;text-align:center;border-right:1px solid var(--calendar-grid-line)}.week-header__day:last-child{border-right:none}.week-header__day--today{background:color-mix(in srgb,var(--color-primary) 5%,transparent)}.week-header__day-name{font-size:11px;font-weight:500;color:var(--color-muted-foreground);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.week-header__day--today .week-header__day-name{color:var(--color-primary)}.week-header__day-number{font-size:var(--text-x-large);font-weight:600;color:var(--color-ink);line-height:1}.week-header__day--today .week-header__day-number{color:var(--color-primary)}}@layer components{.week-navigation{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;border-bottom:var(--border);background:var(--calendar-bg-primary)}.week-navigation__arrow-group{display:flex;gap:.5rem}.week-navigation__range{font-size:1rem;font-weight:600;color:var(--color-ink);cursor:pointer;padding:.75rem 1.25rem;border-radius:var(--radius-lg);transition:background-color var(--transition-normal);border:var(--border);background:var(--calendar-bg-secondary)}.week-navigation__range:hover{background-color:var(--color-muted)}.week-navigation__range:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}@media(max-width:640px){.week-navigation{padding:.375rem .5rem}.week-navigation__range{font-size:var(--text-x-small);padding:.25rem .5rem}}}@layer components;@layer components{.patients-layout{display:grid;grid-template-columns:1fr var(--sidebar-width);grid-template-rows:1fr;flex:1;min-height:0}@media(max-width:768px){.patients-layout{grid-template-columns:1fr}.patients-sidebar{width:100%;border-left:none}}.patients-list-container{display:flex;flex-direction:column;overflow:hidden;background:var(--calendar-bg-primary)}.patients-list-header{display:flex;align-items:center;gap:16px;padding:14px 16px;border-bottom:var(--border);background:var(--calendar-bg-primary)}.patients-list-header>:last-child{margin-left:auto}.patients-list-title{font-size:1rem;font-weight:600;margin:0;color:var(--color-ink)}.patients-list-search{flex:1}.patients-list{flex:1;overflow-y:auto}.patients-list__no-results{display:flex;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.patients-list__no-results-text{color:var(--color-muted-foreground)}.patients-list__item{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;padding:12px 16px;border:none;border-bottom:var(--border);background:var(--calendar-bg-primary);cursor:pointer;text-align:left;transition:background-color var(--transition-normal)}.patients-list__item:hover{background:var(--calendar-bg-secondary)}.patients-list__item--selected{background:var(--calendar-bg-secondary);border-left:3px solid var(--color-ink);padding-left:13px}.patients-list__name{font-size:var(--text-small);font-weight:500;color:var(--color-ink)}.patients-list__email{font-size:var(--text-x-small);color:var(--color-muted-foreground)}.patients-sidebar{width:var(--sidebar-width);flex-shrink:0;border-left:var(--border);background:var(--calendar-bg-secondary);display:flex;flex-direction:column;overflow-y:auto}.patients-sidebar__empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}.patients-sidebar__empty-icon{color:var(--color-muted-foreground);margin-bottom:16px}.patients-sidebar__empty-text{color:var(--color-ink-dark);font-size:var(--text-small);margin:0 0 8px}.patients-sidebar__empty-hint{color:var(--color-muted-foreground);font-size:var(--text-x-small);margin:0}.patients-sidebar__header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:var(--border);background:var(--calendar-bg-primary)}.patients-sidebar__title{font-size:var(--text-small);font-weight:600;margin:0;color:var(--color-ink)}.patients-sidebar__details{padding:16px;display:flex;flex-direction:column;gap:16px;flex:1}.patients-sidebar__field{display:flex;flex-direction:column;gap:4px}.patients-sidebar__field-label{font-size:var(--text-x-small);font-weight:500;color:var(--color-muted-foreground);text-transform:uppercase;letter-spacing:.5px}.patients-sidebar__field-value{font-size:var(--text-small);color:var(--color-ink)}.patients-form,.patients-sidebar__form{display:flex;flex-direction:column;gap:16px;padding:16px;flex:1}.patients-form__field{display:flex;flex-direction:column;gap:6px}.patients-form__actions,.patients-sidebar__actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px;padding-top:16px;border-top:var(--border)}.patients-form__error,.patients-sidebar__error{padding:12px;background:color-mix(in srgb,var(--color-negative) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-negative) 30%,transparent);border-radius:var(--radius-md);color:var(--color-negative);font-size:var(--text-small)}}@layer components{.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.login__card{width:100%;max-width:380px;margin:0 auto}.login__header{text-align:center}.login__title{font-size:var(--text-x-large);line-height:2rem}.login__form{display:flex;flex-direction:column;gap:1rem}.login__error{font-size:var(--text-small);color:var(--color-negative);text-align:center}.login__field{display:flex;flex-direction:column;gap:.5rem}.login__submit{width:100%}}
