html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;background:var(--color-surface-base);color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--color-text-link);text-decoration:none}a:hover{color:var(--color-primary-main)}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}:focus-visible{outline:2px solid var(--color-primary-container);outline-offset:2px}.ui-visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ui-text--pageTitle{font-size:var(--font-size-4xl);font-weight:700;letter-spacing:-.02em;line-height:1.2}.ui-text--cardTitle{font-size:var(--font-size-lg);font-weight:700}.ui-text--overline{font-size:var(--font-size-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.ui-text--metric{font-size:var(--font-size-2xl);font-weight:700;font-variant-numeric:tabular-nums}.ui-btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--radius-control);font-weight:600;line-height:1;white-space:nowrap;text-decoration:none;cursor:pointer;transition-property:background-color,border-color,color,scale;transition-duration:.15s;transition-timing-function:ease-out}.ui-btn:active:not(:disabled){scale:.96}.ui-btn:disabled{opacity:.5;cursor:not-allowed}.ui-btn--sm{height:var(--size-control-sm);padding:0 12px;font-size:var(--font-size-sm)}.ui-btn--md{height:var(--size-control-md);padding:0 16px;font-size:var(--font-size-base)}.ui-btn--lg{height:var(--size-control-lg);padding:0 20px;border-radius:var(--radius-segment);font-size:var(--font-size-md)}.ui-btn--block{width:100%}.ui-btn--primary{background:var(--color-primary-main);border-color:var(--color-primary-main);color:var(--color-primary-on)}.ui-btn--primary:hover:not(:disabled){background:var(--color-primary-container);border-color:var(--color-primary-container);color:var(--color-primary-on)}.ui-btn--secondary{background:var(--color-surface-card);border-color:var(--color-border-outline);color:var(--color-primary-main)}.ui-btn--secondary:hover:not(:disabled){background:var(--color-surface-containerLow);color:var(--color-primary-main)}.ui-btn--ghost{background:transparent;color:var(--color-primary-main)}.ui-btn--ghost:hover:not(:disabled){background:var(--color-surface-containerLow)}.ui-btn--danger{background:transparent;color:var(--color-error-main)}.ui-btn--danger:hover:not(:disabled){background:var(--color-error-tint);color:var(--color-error-main)}.ui-btn--danger-solid{background:var(--color-error-main);border-color:var(--color-error-main);color:var(--color-text-inverse)}.ui-icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;border-radius:var(--radius-md);background:var(--color-surface-containerLow);color:var(--color-text-secondary);cursor:pointer;transition:background-color .15s ease-out}.ui-icon-btn:hover{background:var(--color-surface-container);color:var(--color-primary-main)}.ui-icon-btn:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px}.ui-spinner{display:inline-flex}.ui-spinner--center{display:flex;justify-content:center;padding:48px 0}.ui-spinner__ring{display:inline-block;border-width:2px;border-style:solid;border-radius:50%;animation:ui-spin .7s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.ui-spinner__ring{animation-duration:2s}}.ui-avatar{display:inline-flex;flex:none;align-items:center;justify-content:center;line-height:1}.ui-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:600;line-height:1.3;white-space:nowrap}.ui-badge__dot{border-radius:50%}.ui-switch{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer}.ui-switch.is-disabled{opacity:.5;cursor:not-allowed}.ui-switch__text{display:flex;flex-direction:column}.ui-switch__label{font-weight:600}.ui-switch__description{font-size:var(--font-size-sm);color:var(--color-text-muted)}.ui-switch__input{position:absolute;opacity:0;width:1px;height:1px}.ui-switch__track{position:relative;flex:none;width:44px;height:26px;border-radius:var(--radius-pill);background:var(--color-border-outline);transition:background-color .15s ease-out}.ui-switch__track:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--color-surface-card);box-shadow:var(--shadow-xs);transition:translate .15s ease-out}.ui-switch__input:checked+.ui-switch__track{background:var(--color-primary-main)}.ui-switch__input:checked+.ui-switch__track:after{translate:18px 0}.ui-switch__input:focus-visible+.ui-switch__track{outline:2px solid var(--color-primary-container);outline-offset:2px}.ui-checkbox{display:flex;align-items:flex-start;gap:10px;color:var(--color-text-secondary);cursor:pointer}.ui-checkbox input{width:18px;height:18px;margin:2px 0 0;flex:none;accent-color:var(--color-primary-main)}.ui-field{display:flex;flex-direction:column;gap:6px;min-width:0}.ui-field__label-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:var(--font-size-sm)}.ui-field__label{font-weight:600}.ui-field__required{color:var(--color-error-main)}.ui-field__control{position:relative;display:flex;align-items:center;color:var(--color-text-muted)}.ui-field__control>svg:first-child{position:absolute;left:14px;pointer-events:none}.ui-field__control>svg:first-child+.ui-field__input{padding-left:40px}.ui-field__input{width:100%;height:var(--size-input);box-sizing:border-box;padding:0 14px;border:1px solid var(--color-border-outline);border-radius:var(--radius-control);background:var(--color-surface-card);color:var(--color-text-primary);transition:border-color .15s ease-out,box-shadow .15s ease-out}.ui-field--lg .ui-field__input{height:var(--size-inputLg)}.ui-field__input::placeholder{color:var(--color-text-muted)}.ui-field__input:focus{outline:none;border-color:var(--color-primary-main);box-shadow:0 0 0 3px var(--color-surface-container)}.ui-field__input:disabled{background:var(--color-surface-containerLow);cursor:not-allowed}.ui-field__input--multiline{height:auto;padding:12px 14px;resize:vertical}.has-error .ui-field__input{border-color:var(--color-error-main)}.ui-field__control--select .ui-field__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:40px;cursor:pointer}.ui-field__control--select>svg{position:absolute;right:14px;pointer-events:none}.ui-field__toggle{position:absolute;right:6px;height:36px;padding:0 10px;border:0;border-radius:var(--radius-sm);background:var(--color-surface-containerLow);color:var(--color-primary-main);font-size:var(--font-size-sm);font-weight:600;cursor:pointer}.ui-field__control:has(.ui-field__toggle) .ui-field__input{padding-right:84px}.ui-field__message{font-size:var(--font-size-xs);color:var(--color-text-muted)}.ui-field__message.is-error{color:var(--color-error-main)}.ui-pill{display:inline-flex;align-items:center;gap:8px;height:var(--size-pill);padding:0 8px 0 14px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);background:var(--color-surface-card);color:var(--color-text-secondary);font-weight:600;cursor:pointer;transition-property:background-color,border-color,color,scale;transition-duration:.15s;transition-timing-function:ease-out}.ui-pill--plain{padding:0 14px}.ui-pill:hover:not(.is-selected){border-color:var(--color-border-outline)}.ui-pill:active{scale:.96}.ui-pill.is-selected{background:var(--color-primary-main);border-color:var(--color-primary-main);color:var(--color-primary-on)}.ui-pill__count{min-width:22px;box-sizing:border-box;padding:1px 7px;border-radius:var(--radius-pill);background:var(--color-surface-container);color:var(--color-primary-main);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;text-align:center}.ui-pill.is-selected .ui-pill__count{background:var(--color-onPrimaryMuted);color:var(--color-primary-on)}.ui-segment{display:inline-flex;flex-wrap:wrap;gap:4px;align-self:flex-start;padding:4px;border-radius:var(--radius-segment);background:var(--color-surface-container)}.ui-segment--sm{gap:0;padding:3px;border-radius:var(--radius-control);background:var(--color-surface-containerLow)}.ui-segment--block{display:flex;align-self:stretch}.ui-segment--block .ui-segment__item{flex:1}.ui-segment__item{height:38px;padding:0 16px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font-weight:600;cursor:pointer;transition:background-color .15s ease-out,color .15s ease-out}.ui-segment--sm .ui-segment__item{height:34px;padding:0 14px;border-radius:9px}.ui-segment__item:hover:not(.is-selected){color:var(--color-primary-main)}.ui-segment__item.is-selected{background:var(--color-surface-card);color:var(--color-primary-main);box-shadow:var(--shadow-xs)}.ui-stat{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-cardMobile);background:var(--color-surface-card);box-shadow:var(--shadow-sm);color:var(--color-text-primary);text-align:left}.ui-stat.is-interactive{cursor:pointer;transition:box-shadow .15s ease-out,border-color .15s ease-out}.ui-stat.is-interactive:hover{border-color:var(--color-border-outline);box-shadow:var(--shadow-lg)}.ui-stat__icon{display:flex;flex:none;align-items:center;justify-content:center;border-radius:50%}.ui-stat__text{display:flex;flex-direction:column;gap:2px;min-width:0}.ui-stat__label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.ui-stat__value{font-size:24px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.ui-stat__hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.ui-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 20px;text-align:center}.ui-empty__icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;margin-bottom:4px;border-radius:50%;background:var(--color-surface-container);color:var(--color-primary-main)}.ui-empty__title{font-weight:600}.ui-empty__description{color:var(--color-text-secondary)}.ui-card{display:flex;flex-direction:column;gap:16px;min-width:0;box-sizing:border-box;border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface-card);box-shadow:var(--shadow-sm);color:var(--color-text-primary);text-align:left}.ui-card--tinted{border-color:transparent;border-radius:var(--radius-segment);background:var(--color-surface-containerLow);box-shadow:none}.ui-card.is-interactive{width:100%;cursor:pointer;transition:box-shadow .15s ease-out,border-color .15s ease-out}.ui-card.is-interactive:hover{border-color:var(--color-border-outline);box-shadow:var(--shadow-lg)}.ui-card__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.ui-card__heading{display:flex;align-items:center;gap:10px}.ui-card__title{margin:0;font-size:var(--font-size-lg);font-weight:700}.ui-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px 16px}.ui-modal--top{align-items:flex-start;padding-top:110px}.ui-modal__scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-scrim);animation:ui-fade-in .15s ease-out}.ui-modal__dialog{position:relative;display:flex;flex-direction:column;width:100%;max-height:calc(100vh - 48px);overflow:hidden;border-radius:var(--radius-modal);background:var(--color-surface-card);box-shadow:var(--shadow-2xl);animation:ui-dialog-in .18s ease-out}.ui-modal--top .ui-modal__dialog{border-radius:var(--radius-card)}.ui-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 24px 8px}.ui-modal__heading{display:flex;flex-direction:column;gap:4px}.ui-modal__title{margin:0;font-size:var(--font-size-xl);font-weight:700;letter-spacing:-.02em}.ui-modal__description{margin:0;color:var(--color-text-secondary)}.ui-modal__body{display:flex;flex-direction:column;gap:16px;padding:16px 24px;overflow-y:auto}.ui-modal__footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:16px 24px 24px;border-top:1px solid var(--color-border-subtle)}.ui-confirm{display:flex;flex-direction:column;align-items:center;padding-top:28px;text-align:center}.ui-confirm .ui-modal__header{justify-content:center;padding-top:12px}.ui-confirm__icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%}.ui-confirm__icon--danger{background:var(--color-error-tint);color:var(--color-error-main)}.ui-confirm__icon--primary{background:var(--color-surface-container);color:var(--color-primary-main)}@keyframes ui-fade-in{0%{opacity:0}}@keyframes ui-dialog-in{0%{opacity:0;transform:translateY(8px) scale(.98)}}@media (prefers-reduced-motion: reduce){.ui-modal__scrim,.ui-modal__dialog{animation:none}}.ui-odontogram{overflow-x:auto}.ui-odontogram__inner{display:flex;flex-direction:column;gap:10px;min-width:680px}.ui-odontogram__caption{display:flex;justify-content:space-between;font-size:var(--font-size-2xs);font-weight:600;letter-spacing:.06em;color:var(--color-text-muted)}.ui-odontogram__jaw{display:flex;justify-content:center;gap:2px;padding:12px 8px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-segment);background:var(--color-surface-subtle)}.ui-odontogram__tooth{display:flex;flex-direction:column;align-items:center;gap:4px;width:40px;padding:4px 0;border:1.5px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:background-color .15s ease-out,border-color .15s ease-out}.ui-odontogram__tooth.is-marked{color:var(--color-text-primary)}.ui-odontogram__tooth:hover:not(.is-selected){background:var(--color-surface-card)}.ui-odontogram__tooth.is-selected{border-color:var(--color-primary-main);background:var(--color-surface-card);color:var(--color-primary-main)}.ui-odontogram__number{font-size:var(--font-size-xs);font-weight:600;font-variant-numeric:tabular-nums}.ui-odontogram__legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0;padding:0;list-style:none;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.ui-odontogram__legend li{display:inline-flex;align-items:center;gap:6px}.ui-odontogram__swatch{width:10px;height:10px;box-sizing:border-box;border-radius:3px}.app{min-height:100vh;display:flex;flex-direction:column;font-variant-numeric:tabular-nums}.app-header{position:sticky;top:0;z-index:20;background:var(--color-surface-card);border-bottom:1px solid var(--color-border-subtle)}.app-header__inner{max-width:var(--size-contentMax);margin:0 auto;padding:0 32px;min-height:var(--size-header-desktop);display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px}.app-header__logo{display:flex;align-items:center}.app-header__logo img{height:30px;width:auto;display:block}.app-nav{display:flex;flex-wrap:wrap;gap:4px;flex:1 1 auto}.app-nav__link{display:flex;align-items:center;height:40px;padding:0 14px;border-radius:var(--radius-control);color:var(--color-text-secondary);font-weight:500;transition:background-color .15s ease-out,color .15s ease-out}.app-nav__link:hover{color:var(--color-primary-main);background:var(--color-surface-containerLow)}.app-nav__link.active{background:var(--color-surface-container);color:var(--color-primary-main);font-weight:600}.app-header__tools{position:relative;display:flex;align-items:center;gap:10px}.search-trigger{display:flex;align-items:center;gap:8px;height:40px;padding:0 10px 0 12px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-control);background:var(--color-surface-base);color:var(--color-text-secondary);cursor:pointer;transition:border-color .15s ease-out}.search-trigger:hover{border-color:var(--color-border-outline)}.kbd{font-size:var(--font-size-2xs);font-weight:600;color:var(--color-text-muted);background:var(--color-surface-card);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xs);padding:1px 6px}.search-trigger .kbd{margin-left:12px}.account-button{display:flex;align-items:center;gap:10px;height:44px;padding:0 8px 0 4px;border:0;border-radius:var(--radius-control);background:transparent;cursor:pointer;text-align:left}.account-button:hover{background:var(--color-surface-containerLow)}.account-button__text{display:flex;flex-direction:column;line-height:1.25}.account-button__name{font-weight:600;font-size:var(--font-size-sm)}.account-button__clinic{font-size:var(--font-size-xs);color:var(--color-text-muted)}@media (max-width: 900px){.account-button__text,.search-trigger__label,.search-trigger .kbd{display:none}}.menu{position:absolute;top:calc(100% + 8px);z-index:30;min-width:220px;padding:6px;background:var(--color-surface-card);border:1px solid var(--color-border-subtle);border-radius:var(--radius-cardMobile);box-shadow:var(--shadow-lg)}.menu--right{right:0}.menu--left{left:0}.menu__item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-text-primary);text-align:left;cursor:pointer}.menu__item:hover,.menu__item[aria-selected=true]{background:var(--color-surface-container);color:var(--color-text-primary)}.menu__item[aria-selected=true]{font-weight:600}.menu__item--danger{color:var(--color-error-main)}.menu__item--danger:hover{background:var(--color-error-tint);color:var(--color-error-main)}.menu__divider{height:1px;margin:6px 4px;background:var(--color-border-subtle)}.menu__check{color:var(--color-primary-main)}.page{width:100%;max-width:var(--size-contentMax);margin:0 auto;padding:32px 32px 64px;box-sizing:border-box;display:flex;flex-direction:column;gap:24px}.page--detail{padding-top:24px;gap:20px}.page--narrow{max-width:880px;padding-top:24px;padding-bottom:120px;gap:20px}@media (max-width: 640px){.page,.app-header__inner{padding-left:16px;padding-right:16px}}.page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}.page-header__text{display:flex;flex-direction:column;gap:6px}.page-title{margin:0;font-size:var(--font-size-4xl);font-weight:700;letter-spacing:-.02em;line-height:1.2}.page-subtitle{margin:0;color:var(--color-text-secondary)}.page-actions{position:relative;display:flex;flex-wrap:wrap;gap:10px}.breadcrumbs{display:flex;gap:8px;align-items:center;font-size:var(--font-size-sm);color:var(--color-text-muted)}.breadcrumbs a{font-weight:500}.breadcrumbs [aria-current=page]{color:var(--color-text-primary);font-weight:500}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.split{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}.split__main{flex:999 1 640px;min-width:0;display:flex;flex-direction:column;gap:20px}.split__aside{flex:1 1 300px;display:flex;flex-direction:column;gap:20px}.settings-layout{display:grid;grid-template-columns:var(--size-settingsMenu) minmax(0,1fr);gap:24px;align-items:start}@media (max-width: 860px){.settings-layout{grid-template-columns:minmax(0,1fr)}}.stack{display:flex;flex-direction:column;gap:16px}.stack--sm{gap:10px}.row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.row--between{justify-content:space-between}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px 20px}.form-grid__full{grid-column:1 / -1}.muted{color:var(--color-text-muted)}.secondary-text{color:var(--color-text-secondary)}.strong{font-weight:600}.tooth-ref{font-weight:700;color:var(--color-primary-main)}.amount-due{font-weight:600;color:var(--color-warning-main)}.amount-paid{font-weight:600;color:var(--color-success-main)}.section-label{font-size:var(--font-size-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.link-button{border:0;padding:0;background:none;color:var(--color-text-link);font-weight:600;cursor:pointer}.link-button:hover{color:var(--color-primary-main)}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th{padding:12px 16px;border-bottom:1px solid var(--color-border-subtle);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);text-align:left;white-space:nowrap}.data-table td{padding:12px 16px;border-bottom:1px solid var(--color-surface-container);vertical-align:middle}.data-table th:first-child,.data-table td:first-child{padding-left:20px}.data-table th:last-child,.data-table td:last-child{padding-right:20px}.data-table .is-numeric{text-align:right}.data-table tbody tr{transition:background-color .12s ease-out}.data-table tbody tr.is-clickable{cursor:pointer}.data-table tbody tr.is-clickable:hover{background:var(--color-surface-containerLow)}.cell-stack{display:flex;flex-direction:column;line-height:1.3}.cell-person{display:flex;align-items:center;gap:12px;color:var(--color-text-primary)}.panel-toolbar{padding:18px 20px;display:flex;flex-direction:column;gap:14px;border-bottom:1px solid var(--color-border-subtle)}.panel-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;color:var(--color-text-secondary)}.panel-heading{padding:18px 20px;display:flex;justify-content:space-between;align-items:center}.pagination{display:flex;gap:6px}.pagination__item{min-width:38px;height:38px;padding:0 10px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface-card);color:var(--color-text-secondary);font-weight:600;cursor:pointer}.pagination__item[aria-current=page]{background:var(--color-primary-main);border-color:var(--color-primary-main);color:var(--color-primary-on)}.pagination__item:disabled{opacity:.5;cursor:default}.filter-trigger{display:flex;align-items:center;gap:8px;height:44px;padding:0 12px 0 14px;border:1px solid var(--color-border-outline);border-radius:var(--radius-control);background:var(--color-surface-card);cursor:pointer}.filter-trigger__label{color:var(--color-text-muted)}.filter-trigger__value{font-weight:600}.search-field{flex:1 1 280px;max-width:380px}.definition-grid{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px 24px}.definition-grid dt{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.definition-grid dd{margin:2px 0 0;font-weight:500}.summary-list{margin:0;display:grid;grid-template-columns:1fr auto;gap:10px 12px}.summary-list dt{color:var(--color-text-secondary)}.summary-list dd{margin:0;text-align:right;font-weight:600}.summary-list .is-total{padding-top:10px;border-top:1px solid var(--color-border-subtle);font-weight:700;color:var(--color-text-primary)}.progress{flex:1;height:8px;border-radius:4px;background:var(--color-surface-container);overflow:hidden}.progress__bar{height:100%;border-radius:4px;background:var(--color-primary-main)}.date-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;width:50px;height:50px;border-radius:var(--radius-control);background:var(--color-surface-card);border:1px solid var(--color-border-subtle)}.date-chip__month{font-size:var(--font-size-2xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase}.date-chip__day{font-size:18px;font-weight:700;line-height:1}.list-link{display:flex;gap:14px;align-items:center;padding:12px;border-radius:var(--radius-segment);background:var(--color-surface-containerLow);color:var(--color-text-primary)}.list-link:hover{background:var(--color-surface-container);color:var(--color-text-primary)}.sticky-actions{position:sticky;bottom:0;z-index:10;background:var(--color-surface-card);border-top:1px solid var(--color-border-subtle)}.sticky-actions__inner{max-width:880px;margin:0 auto;padding:14px 32px;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;align-items:center}.sticky-actions__note{margin-right:auto;font-size:var(--font-size-sm);color:var(--color-text-muted)}.form-card{margin:0;padding:24px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface-card);box-shadow:var(--shadow-sm);display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px 20px;min-width:0}.form-card legend{float:left;width:100%;padding:0;margin-bottom:4px;font-size:var(--font-size-lg);font-weight:700}.form-card--stack{display:flex;flex-direction:column}.choice-group{display:flex;flex-wrap:wrap;gap:8px}.choice{height:42px;padding:0 16px;border:1px solid var(--color-border-outline);border-radius:var(--radius-control);background:var(--color-surface-card);color:var(--color-text-secondary);font-weight:600;cursor:pointer}.choice[aria-checked=true],.choice[aria-pressed=true]{border:1.5px solid var(--color-primary-main);background:var(--color-surface-container);color:var(--color-primary-main)}.tag-input{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:var(--size-input);padding:6px 10px;border:1px solid var(--color-border-outline);border-radius:var(--radius-control);box-sizing:border-box;background:var(--color-surface-card)}.tag-input:focus-within{border-color:var(--color-primary-main);box-shadow:0 0 0 3px var(--color-surface-container)}.tag-input input{flex:1;min-width:140px;height:32px;border:0;outline:none;background:transparent}.tag{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 12px;border-radius:var(--radius-pill);background:var(--color-error-tint);color:var(--color-appointmentStatus-CANCELLED-text);font-weight:600;font-size:var(--font-size-sm)}.tag button{width:22px;height:22px;border:0;border-radius:50%;background:transparent;color:inherit;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer}.tag button:hover{background:var(--color-surface-card)}.quick-add{height:30px;padding:0 12px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);background:var(--color-surface-card);color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer}.consent-box{grid-column:1 / -1;display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:var(--color-surface-containerLow);border-radius:var(--radius-segment)}.alert{padding:12px 14px;border-radius:var(--radius-control);background:var(--color-error-tint);color:var(--color-error-main);font-weight:500}.info-box{padding:12px 14px;border-radius:var(--radius-control);background:var(--color-surface-containerLow);color:var(--color-text-secondary)}.palette__search{display:flex;align-items:center;gap:12px;padding:0 20px;height:64px;border-bottom:1px solid var(--color-border-subtle);color:var(--color-text-muted)}.palette__search input{flex:1;height:44px;border:0;outline:none;font-size:var(--font-size-lg);color:var(--color-text-primary);background:transparent}.palette__results{padding:8px;display:flex;flex-direction:column;max-height:60vh;overflow-y:auto}.palette__group{padding:10px 12px 4px}.palette__item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:0;border-radius:var(--radius-control);background:transparent;color:var(--color-text-primary);text-align:left;cursor:pointer}.palette__item.is-active{background:var(--color-surface-container)}.palette__item-text{flex:1;display:flex;flex-direction:column;line-height:1.3;min-width:0}.palette__hint{font-size:var(--font-size-xs);color:var(--color-primary-main);font-weight:600}.palette__footer{padding:10px 20px;border-top:1px solid var(--color-border-subtle);display:flex;gap:18px;font-size:var(--font-size-xs);color:var(--color-text-muted)}.icon-tile{display:flex;flex:none;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-md)}.auth{min-height:100vh;position:relative;overflow:hidden;display:flex;flex-direction:column}.auth__glow{position:absolute;width:520px;height:520px;border-radius:50%;pointer-events:none}.auth__glow--lavender{top:-160px;right:-120px;background:var(--color-glow-lavender);filter:blur(60px);opacity:.9}.auth__glow--mint{bottom:-200px;left:-160px;background:var(--color-glow-mint);filter:blur(70px);opacity:.7}.auth__header{position:relative;max-width:1200px;width:100%;margin:0 auto;padding:24px 32px;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;gap:16px}.auth__header img{height:34px;width:auto}.auth__main{position:relative;flex:1;display:flex;flex-wrap:wrap;gap:40px;align-items:center;justify-content:center;padding:32px 20px 64px}.auth-card{width:100%;max-width:420px;background:var(--color-surface-card);border:1px solid var(--color-border-subtle);border-radius:var(--radius-modal);padding:36px;box-sizing:border-box;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;gap:18px}@media (max-width: 480px){.auth-card{padding:24px}}.auth-card--wide{flex:1 1 400px;max-width:460px;padding:32px}.auth-card__title{margin:0;font-size:var(--font-size-3xl);font-weight:700;letter-spacing:-.02em}.auth-card__lead{margin:0;color:var(--color-text-secondary)}.auth-fine-print{margin:0;text-align:center;font-size:var(--font-size-sm);color:var(--color-text-muted)}.auth-fine-print a{color:var(--color-text-secondary);text-decoration:underline}.auth-pitch{flex:1 1 360px;max-width:440px;display:flex;flex-direction:column;gap:18px}.auth-pitch__title{margin:0;font-size:var(--font-size-5xl);font-weight:700;letter-spacing:-.03em;line-height:1.15}.auth-pitch__title em{font-style:normal;color:var(--color-primary-container)}.auth-pitch ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}.auth-pitch li{display:flex;gap:10px;align-items:center}.check-dot{width:22px;height:22px;border-radius:50%;background:var(--color-secondary-tint);color:var(--color-secondary-main);display:flex;align-items:center;justify-content:center;flex:none}.eyebrow-pill{align-self:flex-start;font-size:var(--font-size-xs);font-weight:600;color:var(--color-primary-main);background:var(--color-surface-container);padding:6px 12px;border-radius:var(--radius-pill)}.stepper{display:flex;align-items:center;gap:10px}.stepper__dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-sm);background:var(--color-surface-container);color:var(--color-primary-main)}.stepper__dot.is-done{background:var(--color-primary-main);color:var(--color-primary-on)}.stepper__label{font-weight:600;color:var(--color-text-muted)}.stepper__label.is-done{color:var(--color-text-primary)}.stepper__line{flex:1;height:2px;background:var(--color-border-subtle)}.success-mark{width:60px;height:60px;border-radius:50%;background:var(--color-secondary-tint);color:var(--color-secondary-main);display:flex;align-items:center;justify-content:center}.settings-menu{display:flex;flex-direction:column;gap:18px;padding:12px;background:var(--color-surface-card);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card)}.settings-menu__group{display:flex;flex-direction:column;gap:2px}.settings-menu__title{padding:4px 12px 6px;font-size:var(--font-size-2xs);font-weight:600;letter-spacing:.08em;color:var(--color-text-muted)}.settings-menu__link{display:flex;justify-content:space-between;align-items:center;height:40px;padding:0 12px;border-radius:var(--radius-control);color:var(--color-text-primary);font-weight:500}.settings-menu__link:hover{background:var(--color-surface-containerLow);color:var(--color-text-primary)}.settings-menu__link.active{background:var(--color-surface-container);color:var(--color-primary-main);font-weight:600}.settings-menu__badge{font-size:var(--font-size-xs);font-weight:600;color:var(--color-secondary-main)}.calendar{--calendar-hour-height: 72px;position:relative;display:grid;overflow:hidden}.calendar__columns{display:grid;border-bottom:1px solid var(--color-border-subtle)}.calendar__column-head{padding:12px 14px;display:flex;align-items:center;gap:10px;border-left:1px solid var(--color-border-subtle);font-weight:600}.calendar__column-head.is-today{color:var(--color-primary-main)}.calendar__body{position:relative;display:grid;overflow-y:auto;max-height:720px}.calendar__hours{display:flex;flex-direction:column}.calendar__hour{height:var(--calendar-hour-height);box-sizing:border-box;padding:0 10px;font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:right;transform:translateY(-8px)}.calendar__lane{position:relative;border-left:1px solid var(--color-border-subtle);background-image:linear-gradient(to bottom,var(--color-surface-container) 1px,transparent 1px);background-size:100% var(--calendar-hour-height)}.calendar__lane.is-off{background-color:var(--color-surface-subtle)}.calendar__event{position:absolute;left:4px;right:4px;box-sizing:border-box;padding:6px 10px;border:0;border-left:3px solid currentColor;border-radius:var(--radius-md);overflow:hidden;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:2px;line-height:1.25;transition:box-shadow .15s ease-out}.calendar__event:hover{box-shadow:var(--shadow-lg)}.calendar__event-title{font-weight:600;color:var(--color-text-primary);font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar__event-meta{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar__now{position:absolute;left:0;right:0;height:2px;background:var(--color-error-main);pointer-events:none}.calendar__now:before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--color-error-main)}.date-nav{display:flex;align-items:center;gap:8px}.date-nav__label{font-size:var(--font-size-lg);font-weight:700;min-width:220px}.drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:flex;justify-content:flex-end}.drawer__scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-scrim)}.drawer__panel{position:relative;width:100%;max-width:440px;height:100%;background:var(--color-surface-card);box-shadow:var(--shadow-2xl);display:flex;flex-direction:column;animation:drawer-in .2s ease-out}@keyframes drawer-in{0%{transform:translate(24px);opacity:0}}@media (prefers-reduced-motion: reduce){.drawer__panel{animation:none}}.drawer__header{padding:20px 24px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--color-border-subtle)}.drawer__body{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:18px}.drawer__footer{padding:16px 24px;border-top:1px solid var(--color-border-subtle);display:flex;flex-wrap:wrap;gap:10px}.bar-chart{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);align-items:end;gap:4px;height:220px;padding-top:12px;border-bottom:1px solid var(--color-border-subtle)}.bar-chart__item{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.bar-chart__stack{width:100%;max-width:28px;min-height:2px;display:flex;flex-direction:column;gap:2px}.bar-chart__paid{display:block;min-height:2px;border-radius:0 0 2px 2px;background:var(--color-primary-main)}.bar-chart__pending{display:block;min-height:2px;border-radius:4px 4px 0 0;background:var(--color-primary-fixedDim)}.bar-chart__stack>:only-child{border-radius:4px 4px 2px 2px}.bar-chart__label{font-size:var(--font-size-2xs);color:var(--color-text-muted);min-height:14px}.bar-chart__item.is-current .bar-chart__label{color:var(--color-primary-main);font-weight:600}.chart-legend{display:flex;gap:16px;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.chart-legend i{width:10px;height:10px;border-radius:3px}.hours-row{display:grid;grid-template-columns:160px auto 1fr;align-items:center;gap:16px;padding:14px 20px;border-top:1px solid var(--color-surface-container)}.hours-row__times{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hours-row__break-label{margin-left:16px;font-size:var(--font-size-sm)}.time-input{height:40px;padding:0 10px;border:1px solid var(--color-border-outline);border-radius:var(--radius-md);background:var(--color-surface-card)}@media (max-width: 720px){.hours-row{grid-template-columns:1fr auto}.hours-row__times{grid-column:1 / -1}}.plan-line{display:grid;grid-template-columns:54px minmax(0,1fr) 140px 120px 44px;gap:12px;align-items:end}@media (max-width: 720px){.plan-line{grid-template-columns:1fr 1fr}}.price-total{font-size:var(--font-size-2xl);font-weight:700;font-variant-numeric:tabular-nums}.plan-option{display:flex;flex-direction:column;gap:14px;padding:22px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface-card)}.plan-option.is-current{border:2px solid var(--color-primary-main)}.plan-option__price{font-size:var(--font-size-4xl);font-weight:700;letter-spacing:-.02em}.plan-option ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;color:var(--color-text-secondary)}.calendar__free{position:absolute;left:4px;right:4px;box-sizing:border-box;border:1.5px dashed var(--color-border-outline);border-radius:var(--radius-md);display:flex;align-items:flex-start;justify-content:center;padding-top:8px;color:var(--color-primary-main);font-weight:600;font-size:var(--font-size-sm);opacity:0;transition:opacity .15s ease-out}.calendar__lane:hover .calendar__free,.calendar__free:focus-visible{opacity:1}.status-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.status-legend__item{display:inline-flex;align-items:center;gap:6px}.status-legend__swatch{width:10px;height:10px;border-radius:3px}.list-row{display:grid;grid-template-columns:110px minmax(0,1fr) 180px 130px auto;gap:16px;align-items:center;padding:14px 20px;border-top:1px solid var(--color-surface-container)}@media (max-width: 860px){.list-row{grid-template-columns:90px minmax(0,1fr) auto}.list-row__doctor,.list-row__status{display:none}}.slot{height:42px;border:1px solid var(--color-border-outline);border-radius:var(--radius-md);background:var(--color-surface-card);font-weight:600;cursor:pointer}.slot:hover:not(:disabled){border-color:var(--color-primary-main)}.slot:disabled{background:var(--color-surface-subtle);border-color:var(--color-surface-container);color:var(--color-text-muted);text-decoration:line-through;cursor:not-allowed}.slot.is-selected{background:var(--color-primary-main);border-color:var(--color-primary-main);color:var(--color-primary-on)}.stack>.ui-badge{align-self:flex-start}
