/* Shared Liquid Glass material. Optical layers are decorative and never intercept input. */
:root {
  --font-system: -apple-system, 'SF Pro Text', 'SF Pro Display', BlinkMacSystemFont, system-ui, 'Segoe UI', sans-serif;
  --space-xs: 4px; --space-sm: 8px; --space-md: 16px; --space-lg: 24px; --space-xl: 32px; --space-xxl: 48px;
  --type-small: 13px; --type-body: 16px; --type-lead: 20px; --type-title: 32px; --type-display: 44px;
  --radius-control: 14px; --radius-card: 28px; --radius-pill: 999px; --target: 48px;
  --motion-fast: 300ms; --motion-sheet: 320ms; --motion-ease: cubic-bezier(.2,.8,.2,1);
  --c-background: #F2F4F3; --c-surface: #FFFFFF; --c-ink: #182E29; --c-muted: #52635D;
  --c-primary: #153D35; --c-tint: #153D35EB; --c-on-primary: #FFFFFF; --c-accent: #DCE9AA;
  --cell-line: rgba(0,0,0,.12); --c-border: #7A8983; --c-separator: rgba(24,46,41,.12); --c-subtle: #EAF0E7;
  --c-warning: #785015; --c-warning-surface: #FFF4DD; --c-error: #9D2C2C; --c-error-surface: #FFF0EE; --c-focus: #245BC5;
  --c-overlay: #182E2980; --c-cancelled: #F3F4F5; --c-disabled: #E6E9EB; --c-success: #155A4A;
  --c-badge: #9D2C2C; --c-on-badge: #FFFFFF;
  --c-glass: rgba(255,255,255,.64); --c-scrim: rgba(255,255,255,.78);
  --c-glass-edge: rgba(255,255,255,.9); --c-glass-edge-low: rgba(255,255,255,.12);
  --c-glow: #DCE9AA40; --c-glow-cool: #B7D7CB30;
  --c-shine: rgba(255,255,255,.45); --c-shadow: rgba(24,46,41,.12);
  --c-lens: rgba(255,255,255,.55); --c-button-shine: rgba(255,255,255,.08);
  --glass-filter: none; --glass-surface: var(--c-surface); --glass-protection: var(--c-surface); --button-fill: var(--c-primary);
  --glass-highlight: linear-gradient(135deg, var(--c-glass-edge), var(--c-glass-edge-low) 45%, var(--c-glass-edge-low) 100%);
  --shadow-card: inset 0 1px 0 var(--c-shine), inset 0 -1px 0 var(--c-separator), 0 10px 30px var(--c-shadow);
  --shadow-nav: inset 0 1px 0 var(--c-shine), 0 12px 36px var(--c-shadow), 0 3px 8px var(--c-shadow);
  --page-background: radial-gradient(ellipse at 8% 5%, var(--c-glow), transparent 60%), radial-gradient(ellipse at 95% 65%, var(--c-glow-cool), transparent 65%), var(--c-background);
}
:root[data-theme='dark'] {
  --c-background: #000000; --c-surface: #1C1C1E; --c-ink: #FFFFFF; --c-muted: rgba(235,235,245,.6);
  --c-primary: #DCE9AA; --c-tint: #DCE9AAEB; --c-on-primary: #153D35; --c-accent: #DCE9AA;
  --cell-line: rgba(255,255,255,.14); --c-border: #8E8E93; --c-separator: rgba(255,255,255,.12); --c-subtle: #242426;
  --c-warning: #FFD089; --c-warning-surface: #392B18; --c-error: #FFB4AB; --c-error-surface: #3B2224; --c-focus: #93BAFF;
  --c-overlay: #00000099; --c-cancelled: #202022; --c-disabled: #29292B; --c-success: #A9DEC9;
  --c-badge: #FFB4AB; --c-on-badge: #3B2224;
  --c-glass: rgba(255,255,255,.10); --c-scrim: rgba(0,0,0,.92);
  --c-glass-edge: rgba(255,255,255,.55); --c-glass-edge-low: rgba(255,255,255,.08);
  --c-shine: rgba(255,255,255,.45); --c-shadow: rgba(0,0,0,.45);
  --c-lens: rgba(255,255,255,.14); --c-button-shine: rgba(255,255,255,.16);
  --page-background: #000000;
}
@supports ((backdrop-filter: blur(28px)) or (-webkit-backdrop-filter: blur(28px))) {
  :root { --glass-filter: blur(28px) saturate(180%); --glass-surface: var(--c-glass); --glass-protection: var(--c-scrim); --button-fill: var(--c-tint); }
}
html { scroll-padding-top: 112px; scroll-padding-bottom: 96px; color-scheme: light; color: var(--c-ink); background: var(--c-background); font-family: var(--font-system); }
html[data-theme='dark'] { color-scheme: dark; }
body { background: var(--page-background); background-attachment: fixed; color: var(--c-ink); font-family: var(--font-system); }
button, input, select, textarea { font: inherit; color: inherit; }
select, input, textarea { background-color: var(--c-surface); color: var(--c-ink); border-color: var(--c-border); border-radius: var(--radius-control); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, [tabindex]:focus-visible { outline: 3px solid var(--c-focus) !important; outline-offset: 3px; }
/* Static cards use the same material without a per-row backdrop render surface. */
.glass, [data-glass] { position: relative; background-color: var(--glass-surface); box-shadow: var(--shadow-card); }
.glass, [data-glass] { background-image: linear-gradient(var(--glass-surface), var(--glass-surface)), linear-gradient(var(--glass-protection), var(--glass-protection)); background-color: transparent; }
.glass, [data-glass='true'] { backdrop-filter: var(--glass-filter); -webkit-backdrop-filter: var(--glass-filter); }
.glass::after, [data-glass]::after, .glass-button::after, [data-glass-button]::after, .switch-track::after {
  content: ''; position: absolute; inset: 0; padding: 1px; border-radius: inherit; pointer-events: none;
  background: var(--glass-highlight); -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
}
[data-ui='header'], .schedule-topbar, .owner-topbar { position: sticky !important; top: 0; z-index: 30; border-radius: 0 0 var(--radius-card) var(--radius-card); border-color: var(--c-separator) !important; }
.schedule-topbar, .owner-topbar { padding: 4px 0; border-radius: var(--radius-card); }
[data-ui='header'] { margin-left: -6px; margin-right: -6px; padding-left: 6px; padding-right: 6px; }
.glass-button, [data-glass-button] { position: relative; border-radius: var(--radius-pill) !important; box-shadow: var(--shadow-card); background-image: linear-gradient(165deg, var(--c-button-shine), transparent 65%); transition: transform var(--motion-fast) var(--motion-ease), box-shadow var(--motion-fast) var(--motion-ease); }
.glass-button:not([data-tone='primary']):not([aria-disabled='true']), [data-glass-button='secondary'] { background-color: var(--glass-surface) !important; }
.glass-button[data-tone='primary'], [data-glass-button='primary'] { background-color: var(--button-fill) !important; color: var(--c-on-primary); }
.glass-button:active:not(:disabled), [data-glass-button]:active:not([aria-disabled='true']) { opacity: 1; transform: scale(.97); box-shadow: inset 0 2px 8px var(--c-shadow), inset 0 1px 0 var(--c-glass-edge); }
/* A single moving lens, shared by navigation, status filters and appearance radios. */
.glass-segments { position: relative; display: flex; gap: 0; padding: 4px; border-radius: var(--radius-pill); background-color: var(--glass-surface); box-shadow: var(--shadow-card); }
.glass-segments::before { content: ''; position: absolute; left: 4px; top: 4px; bottom: 4px; width: calc((100% - 8px) / var(--segment-count)); border-radius: var(--radius-pill); background: linear-gradient(155deg, var(--c-lens), transparent), var(--glass-surface); box-shadow: inset 0 1px 0 var(--c-shine), 0 2px 8px var(--c-shadow); transform: translateX(calc(var(--segment-index) * 100%)); transition: transform var(--motion-fast) var(--motion-ease); pointer-events: none; }
.glass-segments > button, .glass-segments > a, .glass-segments > label { position: relative; z-index: 1; background: transparent !important; border-color: transparent !important; border-radius: var(--radius-pill) !important; color: var(--c-ink) !important; }
.staff-navigation { position: fixed; z-index: 20; left: max(16px, env(safe-area-inset-left)); right: max(16px, env(safe-area-inset-right)); bottom: calc(16px + env(safe-area-inset-bottom, 0px)); height: 64px; box-sizing: border-box; max-width: 640px; margin: 0 auto; box-shadow: var(--shadow-nav); }
.staff-navigation > a, .staff-navigation > button { min-width: 0 !important; min-height: 44px !important; font-size: 11px !important; padding: 0; }
.staff-navigation [aria-current='page'] { color: var(--c-primary) !important; }
body:has(.staff-navigation) [role='main'] { padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px)); }
.switch-row { display: flex; align-items: center; gap: 12px; width: 100%; min-height: var(--target); padding: 8px 0; border: 0; background: transparent; color: var(--c-ink); text-align: left; font-size: var(--type-body); cursor: pointer; border-radius: var(--radius-control); }
.switch-row:disabled { cursor: default; opacity: .6; }
.switch-track { display: block; position: relative; flex: 0 0 52px; height: 32px; border: 2px solid var(--c-border); border-radius: var(--radius-pill); background: linear-gradient(160deg, var(--c-lens), transparent), var(--c-subtle); box-shadow: inset 0 1px 3px var(--c-shadow); transition: background-color var(--motion-fast), border-color var(--motion-fast); }
.switch-thumb { display: block; width: 24px; height: 24px; margin: 2px; border-radius: var(--radius-pill); background: linear-gradient(155deg, #FFFFFF, #FFFFFFCC), #FFFFFF; box-shadow: inset 0 1px 0 #FFFFFF, 0 2px 5px #00000040; transition: transform var(--motion-fast) var(--motion-ease); }
.switch-row[aria-checked='true'] .switch-track { background-color: var(--c-primary); border-color: var(--c-primary); }
.switch-row[aria-checked='true'] .switch-thumb { transform: translateX(20px); }
.appearance { padding: 16px; border: 1px solid var(--c-separator); border-radius: var(--radius-card); min-width: 0; color: var(--c-ink); }
.appearance h3 { margin: 0 0 12px; font-size: var(--type-lead); }
.theme-segments label { display: flex; flex: 1; align-items: center; justify-content: center; min-width: 0; min-height: 44px; font-size: 13px; cursor: pointer; }
.theme-segments label:has(:focus-visible) { outline: 3px solid var(--c-focus); outline-offset: 2px; }
.theme-segments input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.theme-menu { position: relative; }
.theme-menu .theme-trigger { list-style: none; width: 44px; height: 44px; display: grid; place-items: center; cursor: pointer; border-radius: var(--radius-pill); color: var(--c-primary); background: var(--glass-surface); border: 1px solid var(--c-border); box-shadow: var(--shadow-card); }
.theme-menu .theme-trigger::-webkit-details-marker { display: none; }
.theme-menu .appearance { position: absolute; z-index: 60; right: 0; top: 50px; width: 272px; }
dialog, [role='dialog'], [role='alertdialog'] { color: var(--c-ink); border-radius: var(--radius-card) var(--radius-card) var(--radius-control) var(--radius-control); animation: sheet-in var(--motion-sheet) var(--motion-ease); }
dialog.staff-dialog::backdrop { background: var(--c-overlay); }
@keyframes sheet-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
  :root { --glass-filter: none; --glass-surface: var(--c-surface); --glass-protection: var(--c-surface); --button-fill: var(--c-primary); --c-lens: var(--c-subtle); --page-background: var(--c-background); }
}
@media (prefers-contrast: more) { :root { --c-border: var(--c-ink); --c-separator: var(--c-ink); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } .glass-button:active, [data-glass-button]:active { transform: none; } }
.switch-row:focus { outline: 3px solid var(--c-focus); outline-offset: 3px; }

@media (max-width: 359px) { .staff-navigation > a, .staff-navigation > button { font-size: 10px !important; } }

/* The document already owns vertical scrolling; avoid a non-scrolling sticky trap. */
[data-ui='page-scroll'] { overflow: visible !important; }

.owner-topbar { padding-left: 8px; padding-right: 8px; min-height: 44px; box-sizing: border-box; }

.staff-navigation::before { animation: lens-arrive var(--motion-fast) var(--motion-ease); }
@keyframes lens-arrive { from { transform: translateX(calc(var(--segment-origin) * 100%)); } to { transform: translateX(calc(var(--segment-index) * 100%)); } }

/* Preserve the existing visible-card density despite the floating navigation inset. */
.schedule-topbar { padding: 0; }
.status-segments { padding: 2px; }
.status-segments > button { min-height: 44px !important; }
.status-segments::before { left: 2px; top: 2px; bottom: 2px; width: calc((100% - 4px) / var(--segment-count)); }

/* Appointment actions share a single grid; the card clips its outer corners. */
.cell-button { position: relative; background: transparent !important; border-radius: 0 !important; box-shadow: none; box-sizing: border-box; padding: 2px; border: 0 solid var(--cell-line) !important; border-left-width: 1px !important; border-top-width: 1px !important; transition: background-color var(--motion-fast) var(--motion-ease); }
.cell-button:active:not(:disabled) { background: var(--glass-surface) !important; }
.cell-button:focus-visible { outline: none !important; }
.cell-button:focus-visible::after { content: ''; position: absolute; inset: 4px; border: 3px solid var(--c-focus); border-radius: 2px; pointer-events: none; }
.appointment-actions[data-columns='2'] > .cell-button:nth-child(2)::after,
.appointment-actions[data-columns='3'] > .cell-button:nth-child(3)::after { border-top-right-radius: 22px; }
.appointment-actions[data-columns='2'] > .cell-button:nth-child(4)::after,
.appointment-actions[data-columns='3'] > div > .cell-button:last-of-type::after { border-bottom-right-radius: 22px; }

.staff-navigation-label { max-width: 100%; overflow-wrap: anywhere; text-align: center; }

/* Javni izbor jezika deli glass sočivo i AA tokene kontrole izgleda. */
.language-switch { display: flex; position: relative; isolation: isolate; border: 1px solid var(--c-border); border-radius: 999px; padding: 2px; color: var(--c-ink); background: var(--c-surface); flex-shrink: 0; }
.language-switch label { position: relative; display: flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; font-size: 12px; font-weight: 700; cursor: pointer; border-radius: 999px; }
.language-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.language-switch label:has(input:focus-visible) { outline: 3px solid var(--c-focus); outline-offset: -3px; }
