/* Xiangtai Dental: service blue #0069be, selected blue #004da8, accent #e74c75. */
:root{
  --primary:#0069be;
  --primary-strong:#004da8;
  --primary-soft:#eaf3fd;
  --accent:#e74c75;
  --accent-strong:#c83460;
  --accent-soft:#fff0f5;
  --paper:#f8f9f9;
  --ink:#16324f;
  --muted:#5d6f84;
  --sage:#eaf3fd;
  --line:#dce6ef;
  --green:var(--primary);
  --dark:var(--primary-strong);
  --bg:var(--paper);
  --text:var(--ink);
}
::selection{background:#cce6ff;color:#004da8}
.brand,.brand-mark,.footer-brand{color:var(--primary-strong)}
.announcement{background:var(--primary-soft);color:#355c7f}
.header{background:var(--paper)}
.desktop-nav a:hover,.text-link,.content-link{color:var(--primary-strong)}
.button-dark{background:var(--primary);color:#fff}
.button-dark:hover{background:var(--primary-strong)}
.hero-actions>.button-dark,.quick-book>.button-dark{background:var(--accent-strong)}
.hero-actions>.button-dark:hover,.quick-book>.button-dark:hover{background:#ad254e}
.button-light{background:var(--primary-soft);color:var(--primary-strong)}
.button-outline{border-color:#a9c7e3;color:var(--primary-strong);background:#fff}
.button-outline:hover{background:#edf6ff}
.status-dot{background:var(--accent)}
.hero h1 em,h2 em{color:var(--accent-strong)}
.smile-seal{background:var(--primary-soft)}
.hero-star{fill:var(--primary)}
.photo-caption{background:#123149cc;padding:5px 8px;border-radius:4px}
.floating-icon,.note-symbol{background:#edf5fd;color:var(--primary)}
.floating-card,.quick-book{background:#fff}
.treatment-sage{background:#eef6ff}
.treatment-sand{background:#fff1f5}
.treatment-blue{background:#edf6fb}
.treatment-rose{background:#fff3f6}
.treatment-card{border:1px solid #dae6f0}
.treatment-card:hover{border-color:#83b7df}
.card-top{color:var(--primary-strong)}
.card-bottom{color:#586e84}
.china-price{background:var(--primary-strong);border-color:var(--primary-strong);color:#fff}
.china-price .price-kind,.china-price .price-converted,.china-price .price-scope,.china-price .price-market>span{color:#dcecff}
.china-price .price-source{border-color:#7aa5d4;color:#fff}
.budget,.international,.approach-art{border-color:var(--line)}
.service-notice,.story-demo-label,.treatment-source-note{background:var(--primary-soft);color:#416383}
.publication-card,.publication-card-copy{background:#fff}
.publication-badge{background:#ffffffed;color:var(--primary-strong);border-color:#c5dcef}
.publication-art,.news-art{background:#e9f3fc}
.publication-art>svg,.news-art>svg{stroke:#5b91bb}
.publication-art>span{color:#5a7e9e}
.publication-card:nth-child(2) .story-art{background:#fff0f5}
.publication-card:nth-child(2) .story-art>svg{stroke:#c76587}
.publication-card:nth-child(3) .story-art{background:#edf5fc}
.publication-card:nth-child(3) .story-art>svg{stroke:#5b91bb}
.art-orbit{border-color:#b9d2e680}
.publication-read,.publication-body a,.guide-link,.price-source{color:var(--primary-strong)}
.publication-body blockquote{background:#eef6fe;border-color:#93bce0;color:#496c8a}
.booking-progress .active{background:var(--primary-soft);color:var(--primary-strong)}
.toast{background:var(--primary-strong)}
.sidebar,.login-brand{background:var(--primary-strong)}
.sidebar{color:#e4effb}
.sidebar .admin-brand,.login-brand .admin-brand{color:#fff}
.sidebar nav>a{color:#e2edfa}
.sidebar nav>a:hover{background:#ffffff18}
.sidebar nav>a.active{background:#f4f9ff;color:var(--primary-strong);box-shadow:inset 3px 0 0 var(--accent)}
.sidebar nav b{background:#f7d3df;color:#73233e}
.nav-label,.sidebar-bottom,.sidebar-bottom>small,.login-brand p,.login-brand>small{color:#c8ddf5}
.sidebar-bottom a{border-color:#ffffff3d}
.sidebar .local-dot{background:#f5a4bd}
.admin-topbar{background:#fff}
.admin-brand{color:var(--primary-strong)}
.primary{background:var(--primary);border-color:var(--primary);color:#fff}
.primary:hover{background:var(--primary-strong);border-color:var(--primary-strong)}
.secondary{color:var(--primary-strong);border-color:#c8dced;background:#fff}
.secondary:hover{background:var(--primary-soft)}
.inline-link,.back-link,.eyebrow{color:var(--primary-strong)}
.notice,.pill,.imported-treatment-info{background:var(--primary-soft);color:#446786;border-color:#d2e3f3}
.imported-treatment-info p{color:#54718d}
.article-toolbar button{background:#f1f7fd;border-color:#c8dced;color:var(--primary-strong)}
.article-toolbar button:hover{background:#dfedfb}
.login-body{background:var(--paper)}
.login-brand h1{color:#fff}
.login-brand .eyebrow{color:#c8ddf5}
.user-avatar{background:var(--primary-soft);color:var(--primary-strong)}
input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline-color:#4b98d1}

/* English, accessible inline validation for public forms. */
#appointment-form [aria-invalid="true"],#quick-book [aria-invalid="true"],#budget-form [aria-invalid="true"]{border-color:#c83460;box-shadow:0 0 0 1px #c8346020}
.field-error{color:#b72a50;font-size:11px;line-height:1.6;margin:7px 0 14px;text-align:left;overflow-wrap:anywhere}

/* English date/month pickers, including browsers with Chinese UI locales. */
.flatpickr-wrapper{width:100%}
.flatpickr-calendar{font-family:var(--body,'DM Sans',sans-serif);color:#16324f}
.flatpickr-calendar.static.open{z-index:30;max-width:100%}
.flatpickr-calendar .flatpickr-days,.flatpickr-calendar .dayContainer{width:100%;min-width:0;max-width:100%}
#booking-dialog .flatpickr-calendar .numInputWrapper input,.quick-book .flatpickr-calendar .numInputWrapper input{width:100%;min-height:0;height:auto;padding:0 0 0 .5ch;border:0;border-radius:0;background:transparent;font-size:14px;box-shadow:none}
#booking-dialog .flatpickr-calendar select.flatpickr-monthDropdown-months,.quick-book .flatpickr-calendar select.flatpickr-monthDropdown-months{width:auto;min-height:0;height:auto;padding:0;border:0;background:transparent;appearance:auto;font-size:14px}
.flatpickr-day.selected,.flatpickr-day.selected:hover,.flatpickr-day.selected:focus,.flatpickr-monthSelect-month.selected,.flatpickr-monthSelect-month.selected:hover{background:#0069be;border-color:#0069be;color:#fff}
.flatpickr-calendar.flatpickr-monthSelect-theme-light.static{left:auto;right:0;top:auto;bottom:calc(100% + 6px);width:300px;max-width:calc(100vw - 96px)}
.flatpickr-calendar.flatpickr-monthSelect-theme-light::before,.flatpickr-calendar.flatpickr-monthSelect-theme-light::after{display:none}
.flatpickr-monthSelect-months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;margin:8px}
.flatpickr-monthSelect-month{width:100%;margin:0;padding:10px 3px;font-size:12px}
.flatpickr-monthSelect-month.flatpickr-disabled{color:#8795a3}
