/* Shared visual language. Accent belongs to actions; selection is neutral. */
@font-face {
    font-family: "Manrope";
    src: url("/static/fonts/manrope-latin-wght.woff2") format("woff2");
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
}
/* Arial metrics adjusted to the bundled Manrope Latin face, including accents. */
@font-face {
    font-family: "Manrope Fallback";
    src: local("Arial");
    font-style: normal;
    font-weight: 400 500;
    size-adjust: 104.1356%;
    ascent-override: 102.3665%;
    descent-override: 28.8086%;
    line-gap-override: 0%;
}
@font-face {
    font-family: "Manrope Fallback";
    src: local("Arial Bold"), local("Arial-BoldMT");
    font-style: normal;
    font-weight: 600 800;
    size-adjust: 104.1356%;
    ascent-override: 102.3665%;
    descent-override: 28.8086%;
    line-gap-override: 0%;
}
:root {
    --ui-font-heading: "Manrope", "Manrope Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --ui-title-page-size: 1.5rem;
    --ui-title-page-weight: 650;
    --ui-title-top-size: 1.125rem;
    --ui-title-top-weight: 600;
    --ui-company-size: .875rem;
    --ui-company-weight: 500;
    --ui-heading-tracking: -.02em;
    --ui-header-glass: rgb(255 255 255 / .90);
    --ui-header-shadow: 0 3px 10px rgb(0 0 0 / .08);
    --ui-bg: #f5f5f7;
    --ui-surface: #ffffff;
    --ui-surface-raised: #ffffff;
    --ui-text: #202124;
    --ui-muted: #62646b;
    --ui-border: #dedee3;
    --ui-selection: #eaeaed;
    --ui-selection-hover: #e1e1e5;
    --ui-selection-border: #d1d1d7;
    --ui-shadow: 0 2px 6px rgb(0 0 0 / .06);
    --ui-complete: #137a49;
    --agenda-free-surface: #edf7f0;
    --agenda-free-hover: #e3f0e7;
    --agenda-free-icon: #247448;
    --agenda-busy-surface: #fbefef;
    --agenda-busy-hover: #f5e5e6;
    --agenda-busy-icon: #a23f49;
    --agenda-complete-surface: #eef4fc;
    --agenda-complete-hover: #e3ecf8;
    --agenda-complete-icon: #315f9f;
}
html.dark {
    --ui-header-glass: rgb(23 23 25 / .90);
    --ui-header-shadow: 0 3px 10px rgb(0 0 0 / .24);
    --ui-bg: #0b0b0c;
    --ui-surface: #171719;
    --ui-surface-raised: #202023;
    --ui-text: #f5f5f7;
    --ui-muted: #a6a6ae;
    --ui-border: #303034;
    --ui-selection: #303034;
    --ui-selection-hover: #39393e;
    --ui-selection-border: #45454b;
    --ui-shadow: 0 2px 6px rgb(0 0 0 / .16);
    --ui-complete: #78dca7;
    --agenda-free-surface: #18251f;
    --agenda-free-hover: #203129;
    --agenda-free-icon: #80cda1;
    --agenda-busy-surface: #2a1e20;
    --agenda-busy-hover: #37282b;
    --agenda-busy-icon: #e5a1a5;
    --agenda-complete-surface: #1b2432;
    --agenda-complete-hover: #253246;
    --agenda-complete-icon: #9bbff2;
}
body.xtore-ui {
    background: var(--ui-bg) !important;
    color: var(--ui-text) !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
    text-underline-offset: .2em;
    accent-color: var(--ui-text);
    caret-color: var(--ui-text);
}
/* Explicit page roles keep modal headings, card labels and figures unchanged. */
.xtore-ui [data-xtore-title="page"],
.xtore-ui.module-servicos :is(.svc-page-title, .svc-directory-heading > h2, .svc-finance-heading__title) {
    font-family: var(--ui-font-heading);
    font-size: var(--ui-title-page-size);
    font-weight: var(--ui-title-page-weight);
    line-height: 1.25;
    letter-spacing: var(--ui-heading-tracking);
}
.xtore-ui [data-xtore-title="top"] {
    font-family: var(--ui-font-heading);
    font-size: var(--ui-title-top-size);
    font-weight: var(--ui-title-top-weight);
    line-height: 1.35;
    letter-spacing: -.01em;
}
.xtore-ui.module-servicos [data-service-company-name] {
    max-inline-size: 24rem;
    font-family: var(--ui-font-heading);
    font-size: var(--ui-company-size);
    font-weight: var(--ui-company-weight);
    line-height: 1.4;
    letter-spacing: 0;
    color: var(--ui-muted);
}
@media (min-width: 640px) {
    :root { --ui-title-page-size: 1.75rem; --ui-company-size: .9375rem; }
}
.xtore-ui ::selection { background: var(--ui-selection); color: var(--ui-text); }
.xtore-ui :is(a, button, input, select, textarea, summary):focus-visible {
    outline: 2px solid var(--ui-muted);
    outline-offset: 3px;
    --tw-ring-color: transparent;
}
.xtore-ui :is(input, select, textarea):focus {
    --tw-ring-color: var(--ui-selection-border);
}
.xtore-ui input::placeholder, .xtore-ui textarea::placeholder { color: var(--ui-muted) !important; opacity: 1; }
.xtore-ui :is(.text-gray-400, .text-gray-500) { color: var(--ui-muted) !important; }
.xtore-ui :is(input[type=checkbox], input[type=radio]) { accent-color: var(--ui-text); }
.xtore-ui input[type=date], .xtore-ui input[type=time], .xtore-ui input[inputmode=decimal] { font-variant-numeric: tabular-nums; }
.xtore-ui :is(.svc-action:not(.svc-action--primary), .svc-filter, .svc-filter:hover) { border-color: var(--ui-border) !important; }
.xtore-ui .svc-action:not(.svc-action--primary) svg, .xtore-ui .svc-filter svg { color: var(--ui-muted) !important; }
.xtore-ui .svc-filter:focus-within { outline: 2px solid var(--ui-muted); outline-offset: 3px; box-shadow: none; }
.xtore-ui .svc-filter :is(input,select):focus-visible { outline: 0; }
.xtore-ui [data-settings-theme-picker] button[aria-pressed=true] { border-color: var(--ui-text) !important; --tw-ring-color: var(--ui-selection-border); }
.xtore-ui :is(.ui-surface, .ui-decoration) { background: var(--ui-surface) !important; color: var(--ui-text) !important; border-color: var(--ui-border) !important; }
.xtore-ui .ui-decoration :is(.text-white, [class*=text-brand-]) { color: var(--ui-text) !important; }
.xtore-ui .ui-selection, .xtore-ui .ui-choice:is([aria-pressed=true], [aria-selected=true], [aria-current], .is-active),
.xtore-ui .ui-choice:has(input:checked) { background: var(--ui-selection) !important; border-color: var(--ui-selection-border) !important; color: var(--ui-text) !important; }
.xtore-ui .ui-selection:hover { background: var(--ui-selection-hover) !important; }
.xtore-ui .ui-secondary { color: var(--ui-text) !important; background: var(--ui-surface) !important; border-color: var(--ui-border) !important; }
.xtore-ui .ui-secondary:hover { background: var(--ui-selection) !important; }
.xtore-ui .ui-count, .xtore-ui .ui-avatar { color: var(--ui-text) !important; background: var(--ui-selection) !important; }
/* Legacy modules share this shell without changing their navigation contracts. */
.xtore-ui .ui-app-header { color: var(--ui-text); border-bottom: 1px solid var(--ui-border); }
.xtore-ui [data-xtore-header] {
    background: var(--ui-surface) !important;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
.xtore-ui [data-xtore-header][data-scrolled="true"] {
    border-bottom-color: transparent;
    box-shadow: var(--ui-header-shadow);
}
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .xtore-ui [data-xtore-header] {
        background: var(--ui-header-glass) !important;
        backdrop-filter: blur(16px);
        -webkit-backdrop-filter: blur(16px);
    }
}
.xtore-ui .ui-app-header :is(.text-white, .text-brand-100, .text-brand-300, .text-brand-400) { color: var(--ui-text) !important; }
.xtore-ui .ui-app-header :is(a, button) { min-height: 44px; }
.xtore-ui .ui-app-header :is(.bg-brand-800, .ui-current) { background: var(--ui-selection) !important; color: var(--ui-text) !important; border-radius: 10px; }
.xtore-ui .ui-app-header :is(.hover\:bg-brand-700, .hover\:bg-brand-800):hover { background: var(--ui-selection-hover) !important; }
.xtore-ui .ui-app-header [class*=border-brand-] { border-color: var(--ui-border) !important; }
.xtore-ui .ui-app-header #nav-menu { border-top: 1px solid var(--ui-border); }
/* Selected Services components consume the same tokens in every palette. */
.xtore-ui.module-servicos {
    --svc-bg: var(--ui-bg);
    --svc-surface: var(--ui-surface);
    --svc-surface-elevated: var(--ui-surface-raised);
    --svc-border: var(--ui-border);
    --svc-text: var(--ui-text);
    --svc-muted: var(--ui-muted);
    --svc-selection-surface: var(--ui-selection);
    --svc-selection-surface-hover: var(--ui-selection-hover);
    --svc-selection-border: var(--ui-selection-border);
    --svc-selection-text: var(--ui-text);
}
.xtore-ui .svc-detail-hero { background: var(--ui-surface); border-bottom: 1px solid var(--ui-border); color: var(--ui-text); }
.xtore-ui .svc-detail-hero :is(.text-white, .text-brand-100) { color: var(--ui-text) !important; }
.xtore-ui .svc-calendar { padding: 8px; }
.xtore-ui .svc-calendar-day {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    min-height: 72px; min-width: 0; padding: 10px 4px; gap: 5px;
    border-radius: 10px; color: var(--ui-muted); background: transparent;
    font-variant-numeric: tabular-nums;
}
.xtore-ui .svc-calendar-day > span:first-child { font-size: 12px; font-weight: 550; }
.xtore-ui .svc-calendar-day > span:nth-child(2) { font-size: 19px; font-weight: 650; color: var(--ui-text); }
.xtore-ui .svc-calendar-day:hover { background: var(--ui-selection-hover); }
.xtore-ui .svc-calendar-day.is-selected { color: var(--ui-text); background: var(--ui-selection); box-shadow: var(--ui-shadow); }
.xtore-ui .svc-calendar-day.is-selected > span:first-child { font-weight: 650; }
.xtore-ui [data-service-page=horarios-livres] .prof-card { container: agenda-professional / inline-size; }
.xtore-ui .svc-slot-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@container agenda-professional (min-width: 480px) {
    .xtore-ui .svc-slot-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@container agenda-professional (min-width: 704px) {
    .xtore-ui .svc-slot-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }
}
@container agenda-professional (min-width: 960px) {
    .xtore-ui .svc-slot-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
}
/* Keep the grid's touch target above the legacy generic Services button minimum. */
.xtore-ui.module-servicos .svc-page .svc-slot { min-height: 56px; }
.xtore-ui .svc-slot {
    --slot-surface: var(--ui-surface);
    --slot-hover: var(--ui-selection);
    --slot-icon: var(--ui-muted);
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
    min-width: 0; padding: 8px 4px; border: 1px solid var(--ui-border) !important;
    border-radius: 10px; background: var(--slot-surface) !important; color: var(--ui-text) !important;
    text-decoration: none; font-size: 13px; font-weight: 550; font-variant-numeric: tabular-nums;
    box-shadow: none !important;
}
.xtore-ui .svc-slot[data-slot-state=livre] {
    --slot-surface: var(--agenda-free-surface);
    --slot-hover: var(--agenda-free-hover);
    --slot-icon: var(--agenda-free-icon);
}
.xtore-ui .svc-slot[data-slot-state=ocupado] {
    --slot-surface: var(--agenda-busy-surface);
    --slot-hover: var(--agenda-busy-hover);
    --slot-icon: var(--agenda-busy-icon);
}
.xtore-ui .svc-slot[data-slot-state=concluido] {
    --slot-surface: var(--agenda-complete-surface);
    --slot-hover: var(--agenda-complete-hover);
    --slot-icon: var(--agenda-complete-icon);
}
.xtore-ui .svc-slot:is(:hover, :active) { background: var(--slot-hover) !important; border-color: var(--ui-selection-border) !important; }
.svc-slot__line { display: inline-flex; align-items: center; justify-content: center; gap: 4px; }
.svc-slot__icon { width: 13px; height: 13px; flex: none; color: var(--slot-icon); }
.xtore-ui .svc-slot[data-slot-state=cancelado] { border-style: dashed !important; color: var(--ui-muted) !important; }
.xtore-ui .svc-slot[data-slot-kind=continuacao] { border-style: dashed !important; }
.svc-slot__detail { max-width: 100%; overflow-wrap: anywhere; font-size: 11px; line-height: 1.25; color: var(--ui-muted); }
/* Admin selection is navigation, not a health status. */
.xtore-ui .admin-nav__link.is-active, .xtore-ui .admin-tabs a[aria-current] {
    background: var(--ui-selection); color: var(--ui-text); box-shadow: none; border-color: var(--ui-selection-border);
}
.xtore-ui .admin-brand__mark { background: var(--ui-selection); color: var(--ui-text); }
.xtore-ui .admin-eyebrow { color: var(--ui-muted); }
.xtore-ui .admin-status-dot { box-shadow: none; }
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .xtore-ui *, .xtore-ui *::before, .xtore-ui *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
