:root{--color-primary:#047fbb;--color-primary-hover:#03699b;--color-primary-soft:#e3f1f8;--color-secondary:#d6eaf6;--color-accent:#1ea0d8;--color-track:#e8eef6;--shadow-rgb:16,38,74;--color-black:#000;--color-white:#fff;--color-ink:#15448a;--color-text:#10264a;--color-muted:#4b5a72;--color-danger:#b42318;--color-danger-soft:#fdecea;--color-success:#137a4b;--color-success-soft:#e3f4ea;--color-warning:#a15c07;--color-warning-soft:#fdf1dc;--color-info:#2a5db0;--color-info-soft:#e6eefa;--color-bg:#f4f7fb;--color-surface:#fff;--color-surface-alt:#f7f9fc;--color-border:#e0e7f0;--color-border-strong:#c4cfdd;--gap-xs:4px;--gap-s:8px;--gap-m:12px;--gap-l:20px;--gap-xl:32px;--font-size-xs:12px;--font-size-s:13px;--font-size-m:14px;--font-size-l:17px;--font-size-xl:22px;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--input-height:36px;--button-height:36px;--button-height-sm:28px;--sidebar-width:216px;--topbar-height:56px;--content-padding:20px;--cell-padding:8px 12px;--font-family:"Armata",Arial,sans-serif;--transition-fast:0.2s ease}.btn{align-items:center;border:1px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:var(--font-size-s);font-weight:700;gap:8px;height:var(--button-height);justify-content:center;padding:0 14px;text-decoration:none;transition:background var(--transition-fast),border-color var(--transition-fast);white-space:nowrap}.btn--primary{background:var(--color-primary);color:var(--color-white)}.btn--primary:hover{background:var(--color-primary-hover)}.btn--secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.btn--secondary:hover{background:var(--color-surface-alt)}.btn--ghost{background:#0000;color:var(--color-text)}.btn--ghost:hover{background:var(--color-surface-alt)}.btn--danger{background:#0000;color:var(--color-danger)}.btn--danger:hover{background:var(--color-danger-soft)}.btn--destructive{background:var(--color-danger);color:var(--color-white)}.btn--destructive:hover{background:var(--color-danger);filter:brightness(.92)}.btn--sm{font-size:var(--font-size-xs);height:var(--button-height-sm);padding:0 10px}.btn--icon{padding:0;width:var(--button-height)}.btn:disabled{cursor:not-allowed;opacity:.5}.badge{align-items:center;border-radius:999px;display:inline-flex;font-size:var(--font-size-xs);font-weight:700;gap:6px;height:20px;padding:0 8px;white-space:nowrap}.badge:before{background:currentColor;border-radius:50%;content:"";height:6px;width:6px}.badge--neutral{background:var(--color-surface-alt);color:var(--color-muted)}.badge--info{background:var(--color-info-soft);color:var(--color-info)}.badge--success{background:var(--color-success-soft);color:var(--color-success)}.badge--warning{background:var(--color-warning-soft);color:var(--color-warning)}.badge--danger{background:var(--color-danger-soft);color:var(--color-danger)}.badge--primary{background:var(--color-primary-soft);color:var(--color-primary)}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px}.panel__header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.panel__title{font-size:var(--font-size-m);font-weight:700;margin:0}.panel__subtitle{color:var(--color-muted);font-size:var(--font-size-xs);margin:2px 0 0}.panel--flush{overflow:hidden;padding:0}.toolbar{justify-content:space-between;margin-bottom:14px}.toolbar,.toolbar__group{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.search{min-width:260px;position:relative}.search__icon{color:var(--color-muted);left:12px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search__input{background:var(--color-surface);border:1px solid var(--color-border-strong);height:var(--input-height);padding:0 12px 0 40px;width:100%}.search__input,.tabs{border-radius:var(--radius-md)}.tabs{background:var(--color-track);gap:2px;padding:3px}.tabs,.tabs__item{display:inline-flex}.tabs__item{align-items:center;background:#0000;border:0;border-radius:6px;color:var(--color-muted);cursor:pointer;font-size:var(--font-size-xs);font-weight:700;gap:6px;height:28px;padding:0 12px}.tabs__item--active{background:var(--color-surface);color:var(--color-text)}.tabs__item--disabled,.tabs__item:disabled{color:var(--color-muted);cursor:not-allowed;opacity:.7}.tabs__soon{background:var(--color-warning-soft);color:var(--color-warning);padding:0 7px}.tabs__count,.tabs__soon{align-items:center;border-radius:999px;display:inline-flex;font-size:11px;height:18px}.tabs__count{background:var(--color-surface-alt);justify-content:center;min-width:20px;padding:0 6px}.data-table{border-collapse:collapse;font-size:var(--font-size-s);width:100%}.data-table__wrap{overflow-x:auto}.data-table th{background:var(--color-surface-alt);color:var(--color-muted);font-size:var(--font-size-xs);font-weight:700;text-align:left;white-space:nowrap}.data-table td,.data-table th{border-bottom:1px solid var(--color-border);padding:var(--cell-padding)}.data-table td{vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table__row--clickable{cursor:pointer}.data-table__row--clickable:hover td{background:var(--color-surface-alt)}.data-table__primary{font-weight:700}.data-table__secondary{color:var(--color-muted);display:block;font-size:var(--font-size-xs);margin-top:1px}.data-table__nowrap,.data-table__num{white-space:nowrap}.data-table__num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.form-field{display:flex;flex-direction:column;gap:4px}.form-field__label{color:var(--color-text);font-size:var(--font-size-xs);font-weight:700}.form-field__control{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);height:var(--input-height);padding:0 12px;width:100%}.form-field textarea.form-field__control{height:auto;min-height:72px;padding:8px 12px;resize:vertical}.form-field__hint{color:var(--color-muted);font-size:var(--font-size-xs)}.form-field__hint--warning{color:var(--color-warning);font-weight:700}.appt-form__notice{background:var(--color-warning-soft);color:var(--color-warning);margin:0 0 16px}.appt-form__notice,.form-error{border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:700;padding:10px 12px}.form-error{background:var(--color-danger-soft);color:var(--color-danger);margin:16px 0 0}.form-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid__full{grid-column:1/-1}.modal{align-items:center;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:50}.modal__backdrop{background:rgba(var(--shadow-rgb),.45);border:0;cursor:pointer;inset:0;position:absolute}.modal__dialog{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:0 24px 60px rgba(var(--shadow-rgb),.25);max-height:calc(100vh - 40px);max-width:560px;overflow-y:auto;position:relative;width:100%}.modal__header{align-items:center;border-bottom:1px solid var(--color-border);display:flex;gap:12px;justify-content:space-between;padding:12px 16px}.modal__title{font-size:var(--font-size-m);margin:0}.modal__body{padding:16px}.modal__lead{color:var(--color-muted);margin:0 0 16px}.modal__lead strong{color:var(--color-text)}.modal__footer{border-top:1px solid var(--color-border);display:flex;gap:8px;justify-content:flex-end;padding:12px 16px}.empty-state{color:var(--color-muted);padding:28px 16px;text-align:center}.empty-state__title{color:var(--color-text);font-weight:700;margin:0 0 4px}.avatar{align-items:center;background:var(--color-primary-soft);border-radius:8px;color:var(--color-primary);display:inline-flex;flex:none;font-size:var(--font-size-xs);font-weight:700;height:30px;justify-content:center;width:30px}.avatar--lg{border-radius:12px;font-size:var(--font-size-l);height:52px;width:52px}.avatar--photo{background:var(--color-surface-alt);overflow:hidden}.avatar--photo img{height:100%;object-fit:cover;width:100%}@media(max-width:640px){.form-error{background:var(--color-danger-soft);border-radius:var(--radius-md);color:var(--color-danger);font-size:var(--font-size-xs);font-weight:700;margin:16px 0 0;padding:10px 12px}.form-grid{grid-template-columns:1fr}.search{min-width:0;width:100%}}@font-face{font-family:Armata;font-style:normal;font-weight:400;src:url(/static/media/Armata-Regular.d421c2a581801667b825.ttf) format("truetype")}*,:after,:before{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;background:var(--color-bg);color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-s);margin:0}button,input,select,textarea{color:inherit;font-family:inherit;font-size:inherit}a{color:var(--color-primary)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.visually-hidden{clip:rect(0 0 0 0);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.app-layout{background:var(--color-bg);display:flex;min-height:100vh}.app-layout__sidebar{background:var(--color-ink);color:var(--color-white);display:flex;flex:none;flex-direction:column;height:100vh;padding:14px 10px;position:sticky;top:0;width:var(--sidebar-width)}.app-layout__brand{align-items:center;border-bottom:1px solid #ffffff1f;display:flex;gap:10px;margin-bottom:10px;padding:2px 6px 14px}.app-layout__brand-mark{align-items:center;background:var(--color-primary);border-radius:8px;display:flex;flex:none;height:32px;justify-content:center;overflow:hidden;width:32px}.app-layout__brand-mark--logo{background:#0000}.app-layout__brand-mark img{height:100%;object-fit:contain;width:100%}.app-layout__brand-text{display:flex;flex-direction:column;min-width:0}.app-layout__brand-text strong{font-size:var(--font-size-m);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-layout__brand-text span{color:#ffffffa6;font-size:var(--font-size-xs)}.app-layout__menu{display:flex;flex:1 1;flex-direction:column;gap:2px;overflow-y:auto}.app-layout__menu-item{align-items:center;border-radius:var(--radius-md);color:#ffffffbf;display:flex;font-size:var(--font-size-s);font-weight:700;gap:10px;min-height:36px;padding:0 10px;text-decoration:none;transition:background var(--transition-fast),color var(--transition-fast)}.app-layout__menu-item:hover{background:#ffffff14;color:var(--color-white)}.app-layout__menu-item--active,.app-layout__menu-item--active:hover{background:var(--color-primary);color:var(--color-white)}.app-layout__menu-icon{flex:none}.app-layout__menu-item--disabled{color:#fff6;cursor:not-allowed}.app-layout__menu-item--disabled:hover{background:#0000;color:#fff6}.app-layout__soon{align-items:center;background:#ffffff1a;border-radius:999px;color:#ffffffb3;display:inline-flex;font-size:11px;font-weight:700;height:20px;margin-left:auto;padding:0 8px;white-space:nowrap}.app-layout__logout{align-items:center;background:#ffffff14;border:0;border-radius:var(--radius-md);color:var(--color-white);cursor:pointer;display:flex;font-size:var(--font-size-s);font-weight:700;gap:10px;height:var(--button-height);justify-content:center}.app-layout__logout:hover{background:#ffffff24}.app-layout__main{flex:1 1;min-width:0}.app-layout__topbar{align-items:center;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;gap:12px;min-height:var(--topbar-height);padding:0 var(--content-padding);position:sticky;top:0;z-index:5}.app-layout__heading{flex:1 1;min-width:0}.app-layout__title{color:var(--color-text);font-size:var(--font-size-l);margin:0}.app-layout__date{color:var(--color-muted);font-size:var(--font-size-xs);margin:2px 0 0}.app-layout__profile{align-items:center;display:flex;gap:10px}.app-layout__profile-text{display:flex;flex-direction:column}.app-layout__profile-text strong{font-size:var(--font-size-s)}.app-layout__profile-text span{color:var(--color-muted);font-size:var(--font-size-xs)}.app-layout__avatar{align-items:center;background:var(--color-primary-soft);border-radius:8px;color:var(--color-primary);display:flex;font-size:var(--font-size-xs);font-weight:700;height:32px;justify-content:center;width:32px}.app-layout__content{padding:var(--content-padding)}.app-layout__menu-toggle,.app-layout__overlay{display:none}@media(max-width:900px){.app-layout__sidebar{bottom:0;left:0;position:fixed;top:0;transform:translateX(-100%);transition:transform var(--transition-fast);z-index:20}.app-layout__sidebar--open{transform:translateX(0)}.app-layout__overlay{background:rgba(var(--shadow-rgb),.45);border:0;display:block;inset:0;position:fixed;z-index:15}.app-layout__menu-toggle{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;display:inline-flex;flex:none;height:var(--button-height);justify-content:center;width:var(--button-height)}.app-layout__topbar{padding:0 16px}.app-layout__content{padding:20px 16px}.app-layout__profile-text{display:none}}.login-page{align-items:center;background:var(--color-ink);display:flex;justify-content:center;min-height:100vh;padding:24px}.login-page__card{background:var(--color-surface);border-radius:18px;max-width:400px;padding:32px;width:100%}.login-page__brand{align-items:center;display:flex;gap:12px;margin-bottom:32px}.login-page__brand strong{display:block;font-size:var(--font-size-m)}.login-page__brand span span{color:var(--color-muted);font-size:var(--font-size-xs)}.login-page__mark{align-items:center;background:var(--color-primary);border-radius:14px;color:var(--color-white);display:flex;height:48px;justify-content:center;overflow:hidden;width:48px}.login-page__mark--logo{background:#0000}.login-page__mark img{height:100%;object-fit:contain;width:100%}.login-page__title{font-size:var(--font-size-xl);margin:0}.login-page__subtitle{color:var(--color-muted);margin:6px 0 24px}.login-page__form{display:flex;flex-direction:column;gap:16px}.login-page__form .form-error{margin:0}.login-page__password{display:block;position:relative}.login-page__password .form-field__control{padding-right:48px}.login-page__reveal{align-items:center;background:#0000;border:0;color:var(--color-muted);cursor:pointer;display:flex;height:40px;justify-content:center;position:absolute;right:2px;top:50%;transform:translateY(-50%);width:44px}.login-page__submit{height:var(--button-height);margin-top:4px;width:100%}.dashboard-page__greeting{font-size:var(--font-size-xl);margin:0}.dashboard-page__lead{color:var(--color-muted);margin:4px 0 0}.dashboard-page__stats{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-page__stat{display:flex;flex-direction:column;gap:4px;padding:12px 16px}.dashboard-page__stat+.dashboard-page__stat{border-left:1px solid var(--color-border)}.dashboard-page__stat-label{color:var(--color-muted);font-size:var(--font-size-xs)}.dashboard-page__stat-value{font-feature-settings:"tnum";font-size:22px;font-variant-numeric:tabular-nums}.dashboard-page__now{margin-top:20px}.dashboard-page__section-title{font-size:var(--font-size-m);margin:0 0 10px}.dashboard-page__now-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-page__grid{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-columns:minmax(0,2fr) minmax(0,1fr);margin-top:20px}.dashboard-page__panel-head{padding:14px 16px 0}.dashboard-page__subhead{font-size:var(--font-size-s);margin:18px 0 8px}.dashboard-page__muted{color:var(--color-muted);margin:0}.dentist-status{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden}.dentist-status__header{align-items:center;display:flex;font-size:var(--font-size-xs);font-weight:700;padding:8px 12px}.dentist-status--busy .dentist-status__header{background:var(--color-primary);color:var(--color-white)}.dentist-status--ready .dentist-status__header{background:var(--color-warning-soft);color:var(--color-warning)}.dentist-status--free .dentist-status__header{background:var(--color-surface-alt);color:var(--color-muted)}.dentist-status__dentist{align-items:center;display:flex;gap:10px;padding:12px 12px 0}.dentist-status__dentist strong{display:block;font-size:var(--font-size-s)}.dentist-status__role{color:var(--color-muted);display:block;font-size:var(--font-size-xs)}.dentist-status__body{background:var(--color-surface-alt);border-radius:var(--radius-md);display:flex;flex:1 1;flex-direction:column;gap:2px;justify-content:center;margin:10px 12px;min-height:52px;padding:10px}.dentist-status__body span,.dentist-status__next{color:var(--color-muted);font-size:var(--font-size-xs)}.dentist-status__next{border-top:1px solid var(--color-border);padding:8px 12px}.dentist-status__next strong{color:var(--color-text)}.schedule-list{list-style:none;margin:12px 0 0;padding:0}.schedule-list__item{grid-gap:14px;align-items:center;border-top:1px solid var(--color-border);display:grid;gap:14px;grid-template-columns:72px 4px minmax(0,1fr) auto 128px;padding:8px 16px}.schedule-list__time{font-feature-settings:"tnum";font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;font-weight:700}.schedule-list__bar{border-radius:2px;height:32px;width:4px}.schedule-list__info{display:flex;flex-direction:column;gap:2px;min-width:0}.schedule-list__patient{color:var(--color-text);font-weight:700;text-decoration:none}.schedule-list__patient:hover{text-decoration:underline}.schedule-list__meta{color:var(--color-muted);font-size:var(--font-size-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-list__action{display:flex;justify-content:flex-end}.attention-list{display:flex;flex-direction:column;gap:8px}.attention-list__item{align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);display:flex;gap:12px;padding:10px;text-decoration:none}.attention-list__item:hover{background:var(--color-surface-alt)}.attention-list__icon{align-items:center;border-radius:10px;display:flex;flex:none;height:34px;justify-content:center;width:34px}.attention-list__icon--warning{background:var(--color-warning-soft);color:var(--color-warning)}.attention-list__icon--danger{background:var(--color-danger-soft);color:var(--color-danger)}.attention-list__text{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.attention-list__text span{color:var(--color-muted);font-size:var(--font-size-xs)}.alert-list{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}.alert-list__item{align-items:flex-start;display:flex;gap:10px}.alert-list__name{color:var(--color-text);font-weight:700;text-decoration:none}.alert-list__tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}@media(max-width:1200px){.dashboard-page__grid{grid-template-columns:1fr}}@media(max-width:900px){.dashboard-page__stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-page__stat:nth-child(3){border-left:0}.dashboard-page__stat:nth-child(n+3){border-top:1px solid var(--color-border)}.dashboard-page__now-grid{grid-template-columns:1fr}.schedule-list__item{grid-template-columns:64px 4px minmax(0,1fr);row-gap:8px}.schedule-list__item .badge,.schedule-list__item .schedule-list__action{grid-column:3;justify-self:start}}.treatment-picker{display:flex;flex-direction:column;gap:6px}.treatment-picker__chips{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}.treatment-picker__chip{align-items:center;background:var(--color-primary-soft);border-radius:999px;color:var(--color-primary);display:inline-flex;font-size:var(--font-size-xs);font-weight:700;gap:4px;min-height:34px;padding:0 4px 0 12px}.treatment-picker__chip button{align-items:center;background:#0000;border:0;border-radius:50%;color:inherit;cursor:pointer;display:flex;height:28px;justify-content:center;width:28px}.treatment-picker__chip button:hover{background:var(--color-secondary)}.treatment-picker__chip-meta{font-weight:400;opacity:.8}.treatment-picker__field{position:relative}.treatment-picker__icon{color:var(--color-muted);left:12px;pointer-events:none;position:absolute;top:calc((var(--input-height) - 18px)/2)}.treatment-picker__input{padding-left:40px}.treatment-picker__panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 12px 32px rgba(var(--shadow-rgb),.16);left:0;margin-top:4px;overflow:hidden;position:absolute;right:0;top:100%;z-index:30}.treatment-picker__filters{border-bottom:1px solid var(--color-border);display:flex;gap:6px;overflow-x:auto;padding:8px}.treatment-picker__filter{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:999px;color:var(--color-text);cursor:pointer;flex:none;font-size:var(--font-size-xs);font-weight:700;height:32px;padding:0 12px;white-space:nowrap}.treatment-picker__filter--active{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-white)}.treatment-picker__list{list-style:none;margin:0;max-height:240px;overflow-y:auto;padding:6px}.treatment-picker__option{align-items:center;border-radius:8px;cursor:pointer;display:flex;gap:10px;min-height:36px;padding:0 10px}.treatment-picker__option--active{background:var(--color-surface-alt)}.treatment-picker__box{align-items:center;border:1.5px solid var(--color-border-strong);border-radius:5px;color:var(--color-white);display:flex;flex:none;height:20px;justify-content:center;width:20px}.treatment-picker__box--checked{background:var(--color-primary);border-color:var(--color-primary)}.treatment-picker__name{flex:1 1;font-weight:700;min-width:0}.treatment-picker__meta{font-feature-settings:"tnum";color:var(--color-muted);flex:none;font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}.treatment-picker__empty{color:var(--color-muted);font-size:var(--font-size-xs);padding:8px 10px}.search-select{display:flex;flex-direction:column;gap:6px}.search-select,.search-select__field{position:relative}.search-select__icon{color:var(--color-muted);left:12px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search-select__input{height:36px;padding-left:40px}.search-select__list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 12px 32px rgba(var(--shadow-rgb),.16);left:0;list-style:none;margin:4px 0 0;max-height:340px;overflow-y:auto;padding:6px;position:absolute;right:0;top:100%;z-index:30}.search-select__option{align-items:center;border-radius:8px;cursor:pointer;display:flex;gap:10px;min-height:44px;padding:6px 10px}.search-select__option--active{background:var(--color-primary-soft)}.search-select__text{display:flex;flex:1 1;flex-direction:column;min-width:0}.search-select__text strong{font-size:var(--font-size-s)}.search-select__text span{font-feature-settings:"tnum";color:var(--color-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}.search-select__empty{color:var(--color-muted);font-size:var(--font-size-xs);padding:10px}.search-select__create{align-items:center;border-radius:0 0 8px 8px;border-top:1px solid var(--color-border);color:var(--color-primary);cursor:pointer;display:flex;gap:10px;margin-top:4px;min-height:44px;padding:6px 10px}.search-select__create:hover{background:var(--color-primary-soft)}.search-select__create strong{color:var(--color-primary)}.search-select__create-icon{align-items:center;border:1px dashed var(--color-primary);border-radius:50%;display:inline-flex;flex:none;height:36px;justify-content:center;width:36px}.search-select__foot{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.search-select__create-link{align-items:center;background:none;border:0;color:var(--color-primary);cursor:pointer;display:inline-flex;font:inherit;font-size:var(--font-size-xs);font-weight:700;gap:6px;padding:0;white-space:nowrap}.search-select__selected{align-items:center;background:var(--color-primary-soft);border:1px solid var(--color-primary);border-radius:var(--radius-md);display:flex;gap:10px;min-height:40px;padding:6px 6px 6px 10px}.appointments-page__date{margin-left:6px}.appointments-page__date h2{font-size:var(--font-size-l);margin:0}.appointments-page__date span{color:var(--color-muted);font-size:var(--font-size-xs)}.appointments-page__jump .form-field__control{width:170px}.appointments-page__layout{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:minmax(0,1fr)}.appointments-page__layout--with-panel{grid-template-columns:minmax(0,1fr) 320px}.appointments-page__legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.day-grid{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.day-grid__scroll{overflow-x:auto}.day-grid__body,.day-grid__head{display:grid;min-width:max-content}.day-grid__head{background:var(--color-surface-alt);border-bottom:1px solid var(--color-border)}.day-grid__dentist{align-items:center;border-left:1px solid var(--color-border);display:flex;gap:10px;padding:12px 14px}.day-grid__dentist strong{display:block;font-size:var(--font-size-s)}.day-grid__dentist span span{color:var(--color-muted);font-size:var(--font-size-xs)}.day-grid__times{display:flex;flex-direction:column}.day-grid__time{font-feature-settings:"tnum";color:var(--color-muted);font-size:11px;font-variant-numeric:tabular-nums;height:var(--row-height);padding:0 10px;text-align:right;transform:translateY(-7px);white-space:nowrap}.day-grid__time:first-child{padding-top:4px;transform:none}.day-grid__column{border-left:1px solid var(--color-border);display:flex;flex-direction:column;position:relative}.day-grid__column--off{background:repeating-linear-gradient(135deg,var(--color-surface-alt),var(--color-surface-alt) 8px,var(--color-surface) 8px,var(--color-surface) 16px)}.day-grid__slot{background:#0000;border:0;border-bottom:1px solid var(--color-border);cursor:pointer;flex:none;height:var(--row-height)}.day-grid__slot:nth-child(2n){border-bottom-style:dashed}.day-grid__slot:hover:not(:disabled){background:var(--color-primary-soft)}.day-grid__slot:disabled{cursor:default}.day-grid__off-label{background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;color:var(--color-muted);font-size:var(--font-size-xs);left:50%;padding:4px 10px;position:absolute;top:16px;transform:translateX(-50%);white-space:nowrap}.appt-block{background:color-mix(in srgb,var(--dentist-color) 12%,#fff);border:1px solid #0000;border-left:4px solid var(--dentist-color);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:1px;left:6px;overflow:hidden;padding:6px 8px;position:absolute;right:6px;text-align:left;z-index:1}.appt-block:hover{background:color-mix(in srgb,var(--dentist-color) 20%,#fff)}.appt-block--selected{border-color:var(--dentist-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--dentist-color) 35%,#0000)}.appt-block--inactive{background:var(--color-surface-alt);border-left-color:var(--color-border-strong);color:var(--color-muted)}.appt-block--inactive .appt-block__patient{text-decoration:line-through}.appt-block--completed{opacity:.7}.appt-block--short{align-content:center;column-gap:8px;flex-direction:row;flex-wrap:wrap;padding-bottom:4px;padding-top:4px;row-gap:0}.appt-block--short .appt-block__patient{flex:1 1;min-width:0}.appt-block--short .appt-block__treatment{flex-basis:100%}.appt-block--tiny{align-items:center;flex-direction:row;gap:8px;padding-bottom:0;padding-top:0}.appt-block--tiny .appt-block__patient{flex:1 1;font-size:var(--font-size-xs);min-width:0}.appt-block--tiny .appt-block__treatment{display:none}.appt-block__time{align-items:center;color:var(--color-muted);display:flex;flex:none;font-size:11px;font-weight:700;gap:6px}.appt-block__alert{color:var(--color-danger)}.appt-block__patient{font-size:var(--font-size-s);font-weight:700}.appt-block__patient,.appt-block__treatment{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appt-block__treatment{color:var(--color-muted);font-size:var(--font-size-xs)}.appt-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px 20px 20px;position:sticky;top:calc(var(--topbar-height) + var(--content-padding))}.appt-panel__header{align-items:center;display:flex;justify-content:space-between}.appt-panel__patient{font-size:var(--font-size-l);margin:10px 0 2px}.appt-panel__phone{color:var(--color-muted);margin:0}.appt-panel__alerts{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.appt-panel__details{display:flex;flex-direction:column;gap:12px;margin:18px 0}.appt-panel__details div{grid-gap:8px;display:grid;gap:8px;grid-template-columns:84px 1fr}.appt-panel__details dt{color:var(--color-muted);font-size:var(--font-size-xs)}.appt-panel__details dd{font-weight:700;margin:0}.appt-panel__actions{border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:8px;padding-top:16px}.appt-panel__treatment{display:block}.appt-panel__moved{color:var(--color-muted);font-weight:400!important;text-decoration:line-through}.appt-panel__secondary{display:flex;gap:8px;justify-content:space-between}@media(max-width:1100px){.appointments-page__layout--with-panel{grid-template-columns:minmax(0,1fr)}.appt-panel{position:static}}.counter{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-areas:"queue cart pay";grid-template-columns:250px minmax(0,1fr) 340px}.counter__queue{grid-area:queue}.counter__cart,.counter__receipt{grid-area:cart;min-width:0}.counter__receipt{grid-column:cart/pay}.counter__pay{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:10px;grid-area:pay;padding:14px;position:sticky;top:92px}.counter__heading{font-size:var(--font-size-m);margin:0 0 10px}.counter__subheading{color:var(--color-muted);font-size:var(--font-size-xs);margin:10px 0 2px}.counter__queue-list{display:flex;flex-direction:column;gap:8px}.counter__empty{color:var(--color-muted);font-size:var(--font-size-xs);margin:0;padding:14px}.counter__cart{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.counter__cart,.queue-card{background:var(--color-surface)}.queue-card{align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;display:flex;gap:10px;min-height:52px;padding:8px 10px;text-align:left;width:100%}.queue-card:hover{border-color:var(--color-border-strong)}.queue-card--active,.queue-card--active:hover{background:var(--color-primary-soft);border-color:var(--color-primary)}.queue-card--pending{background:var(--color-surface-alt);border-style:dashed;cursor:default}.queue-card--walkin{margin-top:10px}.queue-card__text{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.queue-card__text strong{font-size:var(--font-size-s);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-card__text span{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--color-muted);display:-webkit-box;font-size:var(--font-size-xs);overflow:hidden;text-overflow:ellipsis}.queue-card__amount{font-feature-settings:"tnum";flex:none;font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;font-weight:700}.avatar--md{border-radius:10px;font-size:var(--font-size-s);height:40px;width:40px}.bill-head{align-items:center;border-bottom:1px solid var(--color-border);display:flex;gap:14px;padding:12px 16px}.bill-head__text{flex:1 1;min-width:0}.bill-head__text h2{font-size:var(--font-size-l);margin:0}.bill-head__text p{color:var(--color-muted);font-size:var(--font-size-xs);margin:2px 0 0}.bill-head__walkin{flex:1 1;max-width:420px}.bill-head__alert{align-items:center;background:var(--color-danger-soft);color:var(--color-danger);display:flex;font-size:var(--font-size-xs);font-weight:700;gap:6px;margin:0;padding:8px 16px}.bill-lines{list-style:none;margin:0;padding:0}.bill-lines__item{grid-gap:14px;align-items:center;border-bottom:1px solid var(--color-border);display:grid;gap:14px;grid-template-columns:minmax(0,1fr) auto 110px 36px;padding:8px 12px 8px 16px}.bill-lines__name{display:flex;flex-direction:column;gap:2px;min-width:0}.bill-lines__name span{color:var(--color-muted);font-size:var(--font-size-xs)}.bill-lines__total{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.bill-lines__price-row{align-items:center;display:flex;flex-wrap:wrap;gap:2px 8px}.bill-lines__price{align-items:center;background:#0000;border:1px dashed #0000;border-radius:8px;color:var(--color-muted);cursor:pointer;display:inline-flex;font-size:var(--font-size-xs);gap:6px;margin-left:-8px;min-height:32px;padding:0 8px}.bill-lines__price svg{color:var(--color-primary)}.bill-lines__price:hover{background:var(--color-surface-alt);border-color:var(--color-border-strong)}.bill-lines__price--adjusted{background:var(--color-success-soft);color:var(--color-success);font-weight:700}.bill-lines__was{color:var(--color-muted);font-size:var(--font-size-xs)}.bill-lines__reset{background:none;border:0;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-xs);font-weight:700;min-height:32px;padding:0 4px;text-decoration:underline}.bill-lines__note{color:var(--color-muted);font-size:var(--font-size-xs)}.bill-lines__remove{color:var(--color-muted);height:36px;width:36px}.bill-lines__empty{border-bottom:1px solid var(--color-border);color:var(--color-muted);padding:28px 20px;text-align:center}.stepper{align-items:center;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.stepper button{align-items:center;background:var(--color-surface);border:0;cursor:pointer;display:flex;height:36px;justify-content:center;width:36px}.stepper button:hover{background:var(--color-surface-alt)}.stepper span{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;min-width:36px;text-align:center}.price-edit{align-items:center;display:flex;gap:6px;margin-top:4px}.price-edit__prefix{color:var(--color-muted);font-size:var(--font-size-xs);font-weight:700}.price-edit__input{font-weight:700;height:32px;text-align:right;width:110px}.price-edit__done{height:32px;width:40px}.catalog{background:var(--color-surface-alt);padding:12px 16px 16px}.catalog__bar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:12px}.catalog__search{flex:1 1;max-width:280px;min-width:200px}.catalog__grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.catalog__tile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;display:flex;flex-direction:column;gap:8px;justify-content:space-between;min-height:64px;padding:10px;text-align:left}.catalog__tile:hover:not(:disabled){border-color:var(--color-primary)}.catalog__tile:active:not(:disabled){background:var(--color-primary-soft)}.catalog__tile:disabled{cursor:not-allowed;opacity:.5}.catalog__name{font-size:var(--font-size-s);font-weight:700;line-height:1.3}.catalog__meta{align-items:baseline;display:flex;font-size:var(--font-size-xs);gap:6px;justify-content:space-between}.catalog__meta span{color:var(--color-muted)}.catalog__low{color:var(--color-warning)!important;font-weight:700}.totals{flex-direction:column;margin:0}.totals,.totals>div{display:flex;gap:10px}.totals>div{align-items:center;justify-content:space-between}.totals dt{color:var(--color-muted)}.totals dd{font-feature-settings:"tnum";align-items:flex-end;display:flex;flex-direction:column;font-variant-numeric:tabular-nums;font-weight:700;gap:4px;margin:0}.totals__discount{display:flex;gap:6px}.totals__discount .form-field__control{height:32px;text-align:right;width:84px}.totals__unit{padding:3px}.totals__unit .tabs__item{height:26px;padding:0 10px}.totals__minus{color:var(--color-success);font-size:var(--font-size-xs)}.totals__check{align-items:center;cursor:pointer;display:flex;gap:8px;min-height:32px}.totals__check input{accent-color:var(--color-primary);height:18px;width:18px}.totals__panel{grid-gap:8px;display:grid!important;gap:8px;grid-template-columns:minmax(0,1fr) 110px}.totals__grand{border-top:1px solid var(--color-border);padding-top:12px}.totals__grand dt{color:var(--color-text);font-weight:700}.totals__grand dd{font-size:22px}.paid-list{background:var(--color-success-soft);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:4px;list-style:none;margin:0;padding:10px 12px}.paid-list li{align-items:center;display:flex;font-size:var(--font-size-xs);gap:8px}.paid-list li span{color:var(--color-success);flex:1 1;font-weight:700}.pay-box{border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:12px;padding-top:14px}.pay-box__due{align-items:baseline;display:flex;justify-content:space-between}.pay-box__due span{color:var(--color-muted);font-size:var(--font-size-xs)}.pay-box__due strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pay-box__amount{display:flex;flex-direction:column;gap:4px}.pay-box__amount>span:first-child{font-size:var(--font-size-xs);font-weight:700}.pay-box__display{align-items:center;background:var(--color-surface-alt);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-muted);display:flex;font-size:var(--font-size-m);gap:6px;height:44px;justify-content:flex-end;padding:0 14px}.pay-box__display output{font-feature-settings:"tnum";color:var(--color-text);font-size:22px;font-variant-numeric:tabular-nums}.pay-box__take{font-size:var(--font-size-m);height:44px}.pay-box--done{align-items:center;color:var(--color-success);text-align:center}.pay-box--done>strong{color:var(--color-text);font-size:var(--font-size-l)}.pay-box--done .pay-box__take{width:100%}.pay-box__change{background:var(--color-warning-soft);border-radius:var(--radius-md);color:var(--color-warning);font-weight:700;padding:10px 16px}.pay-box__change strong{font-size:var(--font-size-l)}.method-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.method-grid__item{align-items:center;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);cursor:pointer;display:flex;flex-direction:column;font-size:var(--font-size-xs);font-weight:700;gap:4px;justify-content:center;min-height:48px;white-space:nowrap}.method-grid__item--active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.quick-cash{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(4,minmax(0,1fr))}.quick-cash button{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-xs);font-weight:700;min-height:32px;padding:0 4px}.quick-cash button:hover{background:var(--color-surface-alt)}.keypad{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(3,minmax(0,1fr))}.keypad button{align-items:center;background:var(--color-surface-alt);border:0;border-radius:var(--radius-md);cursor:pointer;display:flex;font-size:var(--font-size-l);font-weight:700;height:40px;justify-content:center}.keypad button:active{background:var(--color-secondary)}.receipt-done{align-items:center;background:var(--color-success-soft);border-radius:var(--radius-lg);color:var(--color-success);display:flex;gap:14px;padding:12px 16px}.receipt-done h2{color:var(--color-text);font-size:var(--font-size-l);margin:0}.receipt-done p{color:var(--color-text);margin:2px 0 0}.receipt{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-s);margin:20px auto;max-width:380px;padding:24px}.receipt__head{align-items:center;border-bottom:1px dashed var(--color-border-strong);display:flex;flex-direction:column;gap:2px;padding-bottom:14px;text-align:center}.receipt__head strong{font-size:var(--font-size-m)}.receipt__head span,.receipt__meta{color:var(--color-muted);font-size:var(--font-size-xs)}.receipt__meta{border-bottom:1px dashed var(--color-border-strong);display:flex;flex-direction:column;gap:2px;padding:12px 0}.receipt__lines{border-collapse:collapse;margin:8px 0;width:100%}.receipt__lines td{padding:6px 0;vertical-align:top}.receipt__lines td:last-child{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.receipt__lines td span{color:var(--color-muted)}.receipt__adjusted{display:block;font-size:var(--font-size-xs)}.receipt__totals{border-top:1px dashed var(--color-border-strong);display:flex;flex-direction:column;gap:6px;margin:0;padding-top:10px}.receipt__totals div{display:flex;gap:12px;justify-content:space-between}.receipt__totals dt{color:var(--color-muted)}.receipt__totals dd{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:0}.receipt__grand{font-size:var(--font-size-m);font-weight:700;padding:6px 0}.receipt__grand dt{color:var(--color-text)!important}.receipt__balance{color:var(--color-danger);font-weight:700}.receipt__balance dt{color:var(--color-danger)!important}.receipt__foot{border-top:1px dashed var(--color-border-strong);color:var(--color-muted);font-size:var(--font-size-xs);margin-top:16px;padding-top:12px;text-align:center}.receipt-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.receipt-actions .btn{height:40px;padding:0 20px}.closing__summary{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:20px}.closing__figure{display:flex;flex-direction:column;gap:4px;padding:12px 14px}.closing__figure+.closing__figure{border-left:1px solid var(--color-border)}.closing__figure strong{font-feature-settings:"tnum";font-size:18px;font-variant-numeric:tabular-nums}.closing__figure>span:last-child,.closing__label{color:var(--color-muted);font-size:var(--font-size-xs)}.closing__label{align-items:center;display:flex;gap:6px}.closing__grid{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:minmax(0,1fr) 340px}.closing__panel-head{padding:14px 16px 0}.closing__cash{gap:16px}.closing__calc,.closing__cash{display:flex;flex-direction:column}.closing__calc{gap:8px;margin:0}.closing__calc div{display:flex;justify-content:space-between}.closing__calc dt{color:var(--color-muted)}.closing__calc dd{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;margin:0}.closing__expected{border-top:1px solid var(--color-border);padding-top:8px}.closing__expected dt{color:var(--color-text)!important;font-weight:700}.closing__count{font-size:22px;height:44px!important;text-align:right}.closing__diff{border-radius:var(--radius-md);font-weight:700;margin:0;padding:12px;text-align:center}.closing__diff--ok{background:var(--color-success-soft);color:var(--color-success)}.closing__diff--over{background:var(--color-warning-soft);color:var(--color-warning)}.closing__diff--short{background:var(--color-danger-soft);color:var(--color-danger)}.closing__closed{align-items:center;color:var(--color-success);display:flex;font-weight:700;gap:6px;margin:0}@media(max-width:1280px){.counter{grid-template-areas:"queue queue" "cart pay";grid-template-columns:minmax(0,1fr) 320px}.counter__receipt{grid-column:1/-1}.counter__queue-list{flex-direction:row;overflow-x:auto;padding-bottom:4px}.counter__subheading{display:none}.queue-card{flex:none;width:260px}.queue-card--walkin{margin-top:0}.closing__summary{grid-template-columns:repeat(3,minmax(0,1fr))}.closing__figure:nth-child(4){border-left:0}.closing__figure:nth-child(n+4){border-top:1px solid var(--color-border)}}@media(max-width:900px){.counter{grid-template-areas:"queue" "cart" "pay";grid-template-columns:minmax(0,1fr)}.counter__pay{position:static}.closing__grid{grid-template-columns:1fr}.bill-lines__item{grid-template-columns:minmax(0,1fr) auto 36px}.bill-lines__item .bill-lines__total{grid-column:1;grid-row:2;text-align:left}}@media print{.app-layout__sidebar,.app-layout__topbar,.checkout-page__no-print,.counter__queue{display:none!important}.app-layout__content{padding:0}.counter{display:block}.receipt{border:0;margin:0 auto}}.phone-input{display:flex;gap:8px}.phone-input__code{flex:none;padding-right:4px;width:112px}.phone-input__code,.phone-input__number{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.phone-input__number{flex:1 1;min-width:0}.patients-page__identity{align-items:center;display:flex;gap:12px}.patients-page__name{color:var(--color-text);font-weight:700;text-decoration:none}.patients-page__name:hover{text-decoration:underline}.patients-page__alert{align-items:center;color:var(--color-danger);display:flex;font-size:var(--font-size-xs);font-weight:700;gap:4px;margin-top:2px}.patients-page__none{color:var(--color-muted)}.patients-page__due{color:var(--color-danger)}.patient-detail__back{align-items:center;color:var(--color-muted);display:inline-flex;font-weight:700;gap:6px;margin-bottom:12px;min-height:36px;text-decoration:none}.patient-detail__back:hover{color:var(--color-text)}.patient-detail__header{align-items:flex-start;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-wrap:wrap;gap:12px;padding:14px 16px}.patient-detail__identity{flex:1 1 320px;min-width:0}.patient-detail__name{font-size:var(--font-size-xl);margin:0}.patient-detail__facts{color:var(--color-muted);display:flex;flex-wrap:wrap;font-size:var(--font-size-xs);gap:4px 18px;margin:6px 0 0}.patient-detail__alerts{align-items:center;color:var(--color-danger);display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.patient-detail__actions{display:flex;flex-wrap:wrap;gap:10px}.patient-detail__tabs{margin:14px 0 12px}.patient-detail__overview{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.patient-detail__link{align-items:center;display:inline-flex;gap:4px;text-decoration:none}.patient-detail__inline-link{background:none;border:0;color:var(--color-primary);cursor:pointer;font-weight:700;padding:0;text-decoration:underline}.patient-detail__muted{color:var(--color-muted);margin:0}.patient-detail__notes{color:var(--color-muted);max-width:280px}.detail-list{display:flex;flex-direction:column;margin:0}.detail-list div{grid-gap:12px;border-top:1px solid var(--color-border);display:grid;gap:12px;grid-template-columns:130px 1fr;padding:8px 0}.detail-list div:first-child{border-top:0;padding-top:0}.detail-list dt{color:var(--color-muted);font-size:var(--font-size-xs)}.detail-list dd{font-weight:700;margin:0}.visit-list{list-style:none;margin:0;padding:0}.visit-list__item{align-items:center;border-top:1px solid var(--color-border);display:flex;gap:12px;justify-content:space-between;padding:8px 0}.visit-list__item:first-child{border-top:0;padding-top:0}.visit-list__item div{display:flex;flex-direction:column;gap:2px}.visit-list__item span{color:var(--color-muted);font-size:var(--font-size-xs)}@media(max-width:1100px){.patient-detail__overview{grid-template-columns:1fr}}.dentists-page{display:flex;flex-direction:column;gap:16px}.dentists-page__grid{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.dentist-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);border-top:4px solid var(--dentist-color);display:flex;flex-direction:column;gap:12px;padding:14px}.dentist-card--inactive{border-top-color:var(--color-border-strong)}.dentist-card--inactive .dentist-card__day--on,.dentist-card--inactive .dentist-card__header .avatar{filter:grayscale(1);opacity:.6}.dentist-card__header{align-items:center;display:flex;gap:10px}.dentist-card__identity{min-width:0}.dentist-card__flags{display:flex;flex-wrap:wrap;gap:6px}.dentist-card__flags .badge{gap:4px}.dentist-card__hours{align-items:center;color:var(--color-muted);display:flex;font-size:var(--font-size-xs);gap:6px;margin:10px 0 0}.dentist-card__hours+.dentist-card__hours{margin-top:4px}.dentist-card__name{font-size:var(--font-size-m);margin:0}.dentist-card__role{color:var(--color-muted);font-size:var(--font-size-xs);margin:2px 0 0}.dentist-card__focus{display:flex;flex-wrap:wrap;gap:6px}.dentist-card__label{color:var(--color-muted);font-size:var(--font-size-xs);font-weight:700;margin:0 0 8px}.dentist-card__week{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(7,minmax(0,1fr));list-style:none;margin:0;padding:0}.dentist-card__day{align-items:center;background:var(--color-surface-alt);border-radius:8px;color:var(--color-muted);display:flex;font-size:var(--font-size-xs);font-weight:700;height:32px;justify-content:center}.dentist-card__day--on{background:var(--dentist-color);color:var(--color-white)}.dentist-card__day--closed{background:#0000;border:1px dashed var(--color-border-strong)}.dentist-card__today{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.dentist-card__today li{grid-gap:8px;display:grid;font-size:var(--font-size-s);gap:8px;grid-template-columns:70px 1fr}.dentist-card__today span{font-feature-settings:"tnum";color:var(--color-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;padding-top:2px}.dentist-card__today a{color:var(--color-text);font-weight:700;text-decoration:none}.dentist-card__today a:hover{text-decoration:underline}.dentist-card__muted{color:var(--color-muted);margin:0}.dentist-card__footer{align-items:center;border-top:1px solid var(--color-border);color:var(--color-muted);display:flex;font-size:var(--font-size-xs);gap:10px;justify-content:space-between;padding-top:16px}.dentist-form__tabs{margin-bottom:14px}.dentist-form__identity{align-items:center;display:flex;gap:12px}.dentist-form__photo-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.dentist-form__photo-actions .form-field__hint{flex-basis:100%}.dentist-form__photo-actions label.btn{cursor:pointer}.dentist-form__colors{display:flex;flex-wrap:wrap;gap:10px}.dentist-form__color{border:3px solid var(--color-surface);border-radius:50%;box-shadow:0 0 0 1px var(--color-border-strong);cursor:pointer;height:32px;width:32px}.dentist-form__color--active{box-shadow:0 0 0 2px var(--color-text)}.dentist-form__days{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(7,minmax(0,1fr))}.dentist-form__day{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;font:inherit;font-size:var(--font-size-xs);font-weight:700;height:32px}.dentist-form__day--on{color:var(--color-white)}.dentist-form__day:disabled{background:#0000;border-style:dashed;color:var(--color-muted);cursor:not-allowed}.dentist-form__booking{display:flex;flex-direction:column;gap:12px}.dentist-form__switch{align-items:flex-start;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;display:flex;gap:12px;padding:10px}.dentist-form__switch input{accent-color:var(--color-primary);height:18px;margin-top:2px;width:18px}.dentist-form__switch>span{display:flex;flex-direction:column;gap:2px}.dentist-form__switch strong{font-size:var(--font-size-s)}.dentist-form__switch span span{color:var(--color-muted);font-size:var(--font-size-xs)}.dentist-form__group{grid-gap:6px 16px;border:0;display:grid;gap:6px 16px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0}.dentist-form__group legend{color:var(--color-muted);font-size:var(--font-size-xs);font-weight:700;margin-bottom:6px}.dentist-form__check{align-items:center;cursor:pointer;display:flex;font-size:var(--font-size-s);gap:8px;min-height:32px}.dentist-form__check input{accent-color:var(--color-primary);height:16px;width:16px}.leave__title{font-size:var(--font-size-s);margin:0 0 10px}.leave__title:not(:first-child){margin-top:24px}.leave__list{border:1px solid var(--color-border);border-radius:var(--radius-md);list-style:none;margin:0;padding:0}.leave__item{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:8px 10px}.leave__item+.leave__item{border-top:1px solid var(--color-border)}.leave__item>span{display:flex;flex-direction:column;gap:2px}.leave__item span span{color:var(--color-muted);font-size:var(--font-size-xs)}.leave__empty{color:var(--color-muted);margin:0}.leave__clash{margin-top:16px}.leave__clash ul{font-weight:400;margin:6px 0 0;padding-left:18px}.leave__add{margin-top:16px}.deactivate__list{font-weight:400;margin:6px 0 0;padding-left:18px}@media(max-width:640px){.dentist-form__group{grid-template-columns:1fr}}.dentists-page .toolbar{margin-bottom:0}.deactivate__conflicts{margin-top:0}.action-menu{align-self:flex-start;margin-left:auto;position:relative}.action-menu__list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 12px 32px rgba(var(--shadow-rgb),.16);list-style:none;margin:0;min-width:200px;padding:6px;position:absolute;right:0;top:calc(100% + 4px);z-index:25}.action-menu__item{align-items:center;background:none;border:0;border-radius:8px;color:var(--color-text);cursor:pointer;display:flex;font:inherit;font-size:var(--font-size-s);gap:10px;min-height:40px;padding:0 10px;text-align:left;width:100%}.action-menu__item:hover{background:var(--color-surface-alt)}.action-menu__item--danger{color:var(--color-danger)}.billing-page__summary{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.billing-page__figure{display:flex;flex-direction:column;gap:6px;padding:12px 16px}.billing-page__figure+.billing-page__figure{border-left:1px solid var(--color-border)}.billing-page__figure span{color:var(--color-muted);font-size:var(--font-size-xs)}.billing-page__figure strong{font-feature-settings:"tnum";font-size:18px;font-variant-numeric:tabular-nums}.billing-page__danger{color:var(--color-danger)}.billing-page__patient{color:var(--color-text);font-weight:700;text-decoration:none}.billing-page__patient:hover{text-decoration:underline}@media(max-width:900px){.billing-page__summary{grid-template-columns:repeat(2,minmax(0,1fr))}.billing-page__figure:nth-child(3){border-left:0}.billing-page__figure:nth-child(n+3){border-top:1px solid var(--color-border)}}.settings-page{display:flex;flex-direction:column;gap:16px;max-width:860px}.settings-page__rules{grid-template-columns:repeat(3,minmax(0,1fr))}.settings-page__footer{align-items:center;background:var(--color-bg);border-top:1px solid var(--color-border);bottom:0;display:flex;gap:16px;justify-content:flex-end;padding:10px 0;position:sticky}.settings-page__saved{align-items:center;color:var(--color-success);display:inline-flex;font-weight:700;gap:6px}.hours-list{display:flex;flex-direction:column}.hours-list__row{align-items:center;border-top:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:12px 24px;padding:8px 0}.hours-list__row:first-child{border-top:0}.hours-list__toggle{align-items:center;cursor:pointer;display:flex;font-weight:700;gap:10px;min-height:36px;width:90px}.hours-list__toggle input{accent-color:var(--color-primary);height:18px;width:18px}.hours-list__times{align-items:center;display:flex;gap:10px}.hours-list__times .form-field__control{width:130px}.hours-list__closed,.hours-list__to{color:var(--color-muted)}@media(max-width:760px){.settings-page__rules{grid-template-columns:1fr}}
/*# sourceMappingURL=main.2ae7c64a.css.map*/