/* CUT&CO — Ticket metaphor storefront (white-label) */
@import url("https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@500;600;700;800&family=Barlow+Condensed:wght@400;500;600;700&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,400&display=swap");

:root {
  /* SalonConfig.brand — swap per client */
  --brand-name: "CUT&CO";
  --brand-tagline: "Rez. oštar. Bez čekanja.";
  --color-bg: #140f0c;
  --color-surface: #1e1712;
  --color-elevated: #2a211c;
  --color-text: #ede6d9;
  --color-muted: #9a9086;
  --color-border: rgba(184, 192, 200, 0.22);
  --color-chrome: #b8c0c8;
  --color-primary: #c4a46a;       /* brass CTA */
  --color-primary-soft: rgba(196, 164, 106, 0.14);
  --color-on-primary: #140f0c;
  --color-danger: #8e1c1c;        /* pole crimson — rare */
  --color-danger-soft: rgba(142, 28, 28, 0.18);
  --color-ticket: #f3eee3;        /* paper — keep light; see .ticket color-scheme */
  --color-ticket-ink: #1a1410;
  --color-ticket-mute: #5c564e;
  --font-display: "Big Shoulders Display", Impact, sans-serif;
  --font-body: "Source Serif 4", Georgia, serif;
  --font-ui: "Barlow Condensed", system-ui, sans-serif;
  --radius: 4px;
  --radius-sm: 2px;
  --hero-image: url("https://images.unsplash.com/photo-1585747860715-2ba37e788b70?w=1200&q=80&auto=format&fit=crop");
  --header-image: url("https://images.unsplash.com/photo-1621605815971-fbc98d665033?w=1200&q=80&auto=format&fit=crop");
  --photo-filter: none;
  --phone-w: 390px;
  --phone-h: 844px;
  --tab-h: 64px;
  --safe-bot: 14px;
}

.theme-gold {
  --brand-name: "John Smoe's";
  --brand-tagline: "Klasično. Oštro. Vaše.";
  --color-bg: #0c0b09;
  --color-surface: #181612;
  --color-elevated: #242018;
  --color-primary: #d4af37;
  --color-primary-soft: rgba(212, 175, 55, 0.14);
  --color-on-primary: #0c0b09;
  --color-ticket: #f5f0e4;
  --hero-image: url("https://images.unsplash.com/photo-1503951914875-452162b0f3f1?w=1200&q=80&auto=format&fit=crop");
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body {
  font-family: var(--font-body);
  background: #2a2420;
  color: var(--color-text);
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button { font: inherit; border: 0; background: none; cursor: pointer; color: inherit; }
img { display: block; max-width: 100%; }

/* ——— Motion: orchestrated, not scattered ——— */
@keyframes wordmark-up {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes blade-wipe {
  from { clip-path: inset(0 100% 0 0); }
  to { clip-path: inset(0 0 0 0); }
}
@keyframes stamp-slam {
  0% { opacity: 0; transform: scale(1.6) rotate(-12deg); }
  55% { opacity: 1; transform: scale(0.92) rotate(2deg); }
  100% { opacity: 1; transform: scale(1) rotate(-3deg); }
}
@keyframes ticket-settle {
  from { opacity: 0; transform: translateY(28px) rotate(1.5deg); }
  to { opacity: 1; transform: translateY(0) rotate(0); }
}
@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes highlight-ticket {
  0%, 100% { box-shadow: 0 8px 24px rgba(0,0,0,0.35); }
  40% { box-shadow: 0 0 0 3px var(--color-primary), 0 12px 32px rgba(0,0,0,0.4); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

.anim-word { animation: wordmark-up 0.55s cubic-bezier(0.22, 1, 0.36, 1) both; }
.anim-word-d1 { animation-delay: 0.1s; }
.anim-wipe { animation: blade-wipe 0.45s cubic-bezier(0.65, 0, 0.35, 1) both; }
.anim-ticket { animation: ticket-settle 0.5s cubic-bezier(0.22, 1, 0.36, 1) both; }

.phone {
  width: var(--phone-w);
  height: var(--phone-h);
  margin: 24px auto;
  background: var(--color-bg);
  border-radius: 40px;
  overflow: hidden;
  position: relative;
  box-shadow:
    0 24px 60px rgba(0, 0, 0, 0.55),
    0 0 0 10px #1a1512,
    0 0 0 12px #3d342c;
  display: flex;
  flex-direction: column;
}

.status {
  height: 48px;
  padding: 14px 24px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-ui);
  font-size: 15px;
  font-weight: 600;
  flex-shrink: 0;
  position: relative;
  z-index: 8;
}
.status.over-hero { color: var(--color-text); text-shadow: 0 1px 10px rgba(0,0,0,0.6); }
.status-icons { display: flex; gap: 6px; font-size: 12px; opacity: 0.85; }

.app { flex: 1; display: flex; flex-direction: column; min-height: 0; position: relative; }
.scroll { flex: 1; overflow-y: auto; min-height: 0; -webkit-overflow-scrolling: touch; }

/* Tabs — typographic, thin */
.tabs {
  height: var(--tab-h);
  background: var(--color-bg);
  border-top: 1px solid var(--color-border);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  flex-shrink: 0;
  padding: 6px 0 var(--safe-bot);
}
.tabs a {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 2px;
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-muted);
  transition: color 0.15s ease;
}
.tabs a.on { color: var(--color-primary); }
.tabs svg { width: 18px; height: 18px; stroke-width: 1.6; }

/* Buttons — brass stub, not SaaS pill */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 8px;
  padding: 15px 20px;
  border-radius: var(--radius);
  font-family: var(--font-ui);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  width: 100%;
  transition: transform 0.12s ease, filter 0.15s ease;
}
.btn:active { transform: scale(0.98); }
.btn-primary {
  background: var(--color-primary);
  color: var(--color-on-primary);
}
.btn-ghost {
  background: transparent;
  border: 1px solid var(--color-border);
  color: var(--color-text);
}
.btn-danger {
  background: var(--color-danger-soft);
  color: #e8c4c4;
  border: 1px solid rgba(142, 28, 28, 0.45);
  letter-spacing: 0.1em;
}

/* Ticket stub CTA (home) */
.btn-ticket {
  display: flex;
  width: 100%;
  border-radius: var(--radius);
  overflow: hidden;
  color-scheme: only light;
  forced-color-adjust: none;
  background-color: #f3eee3;
  background-color: var(--color-ticket, #f3eee3);
  color: #1a1410;
  color: var(--color-ticket-ink, #1a1410);
  box-shadow: 0 10px 28px rgba(0,0,0,0.35);
  transition: transform 0.12s ease;
}
.btn-ticket:active { transform: scale(0.98); }
.btn-ticket .stub {
  flex: 0 0 72px;
  background: var(--color-primary);
  color: var(--color-on-primary);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-right: 1px dashed rgba(20, 15, 12, 0.35);
  position: relative;
}
.btn-ticket .stub::before,
.btn-ticket .stub::after {
  content: "";
  position: absolute;
  right: -5px;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--color-bg);
}
.btn-ticket .stub::before { top: -5px; }
.btn-ticket .stub::after { bottom: -5px; }
.btn-ticket .main {
  flex: 1;
  padding: 16px 18px;
  font-family: var(--font-ui);
  font-weight: 700;
  font-size: 17px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.btn-ticket .main span { opacity: 0.45; font-size: 18px; }

.muted { color: var(--color-muted); }
.display {
  font-family: var(--font-display);
  letter-spacing: 0.02em;
  line-height: 0.92;
  text-transform: uppercase;
  font-weight: 700;
}
.ui {
  font-family: var(--font-ui);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.nav-bar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 4px 12px 12px;
  flex-shrink: 0;
  border-bottom: 1px solid var(--color-border);
}
.nav-bar h1 {
  font-family: var(--font-ui);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.nav-bar .step {
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: var(--color-muted);
  text-transform: uppercase;
}
.back {
  display: inline-flex; align-items: center; gap: 2px;
  padding: 10px 10px;
  font-family: var(--font-ui);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
  transition: color 0.15s;
}
.back:hover { color: var(--color-text); }
.back svg { width: 16px; height: 16px; }

.hairline {
  height: 1px;
  background: var(--color-border);
  margin: 0 20px;
}

.seg {
  display: grid; grid-template-columns: 1fr 1fr;
  border-bottom: 1px solid var(--color-border);
}
.seg button {
  padding: 14px;
  font-family: var(--font-ui);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-muted);
  border-bottom: 2px solid transparent;
  transition: color 0.15s, border-color 0.15s;
}
.seg button.on {
  color: var(--color-text);
  border-bottom-color: var(--color-primary);
}

.footer-cta {
  padding: 14px 20px calc(12px + var(--safe-bot));
  border-top: 1px solid var(--color-border);
  background: var(--color-bg);
  flex-shrink: 0;
}

.field { margin-bottom: 14px; }
.field label {
  display: block;
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-muted);
  margin-bottom: 6px;
}
.field input, .field textarea {
  width: 100%;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 14px;
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--color-text);
  outline: none;
  transition: border-color 0.15s;
}
.field textarea { min-height: 88px; resize: none; }
.field input:focus, .field textarea:focus {
  border-color: var(--color-primary);
}

.list-row {
  display: flex; align-items: center; gap: 14px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--color-border);
}
.list-row:active { background: var(--color-surface); }
.list-row .ico {
  width: 36px; height: 36px;
  border: 1px solid var(--color-border);
  color: var(--color-chrome);
  display: grid; place-items: center;
  flex-shrink: 0;
  border-radius: var(--radius-sm);
}
.list-row .ico svg { width: 18px; height: 18px; }
.list-row .meta { flex: 1; min-width: 0; }
.list-row .meta b {
  display: block;
  font-family: var(--font-ui);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.list-row .meta span {
  font-size: 13px;
  font-style: italic;
  color: var(--color-muted);
}
.list-row .chev { color: var(--color-muted); font-family: var(--font-ui); font-size: 18px; }

.empty {
  text-align: center;
  padding: 64px 28px;
  color: var(--color-muted);
}
.empty b {
  display: block;
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text);
  margin-bottom: 8px;
}
.empty p {
  font-size: 15px;
  font-style: italic;
  line-height: 1.45;
  max-width: 22ch;
  margin: 0 auto;
}

/* ——— Ticket object (signature) ———
   color-scheme: light — stops OS/browser forced-dark from
   inverting cream paper while leaving dark ink (invisible tickets). */
.ticket {
  position: relative;
  display: block;
  color-scheme: only light;
  forced-color-adjust: none;
  -webkit-text-fill-color: currentColor;
  background-color: #f3eee3;
  background-color: var(--color-ticket, #f3eee3);
  color: #1a1410;
  color: var(--color-ticket-ink, #1a1410);
  border-radius: var(--radius);
  margin: 12px 16px;
  padding: 18px 18px 16px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
  overflow: hidden;
  isolation: isolate;
}
.ticket::before,
.ticket::after {
  content: "";
  position: absolute;
  left: 68px;
  width: 12px; height: 12px;
  border-radius: 50%;
  background-color: #140f0c;
  background-color: var(--color-bg, #140f0c);
  z-index: 2;
}
.ticket::before { top: -6px; }
.ticket::after { bottom: -6px; }
.ticket .perf {
  position: absolute;
  left: 74px;
  top: 8px; bottom: 8px;
  border-left: 1px dashed rgba(26, 20, 16, 0.28);
  pointer-events: none;
}
.ticket .rail {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 6px;
  background-color: #c4a46a;
  background-color: var(--color-primary, #c4a46a);
}
.ticket .micro {
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #6b635a;
  color: var(--color-ticket-mute, #6b635a);
  margin-bottom: 6px;
  padding-left: 78px;
}
.ticket .when {
  font-family: var(--font-display);
  font-size: 36px;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 0.95;
  text-transform: uppercase;
  color: #1a1410;
  color: var(--color-ticket-ink, #1a1410);
  padding-left: 78px;
  margin-bottom: 6px;
}
.ticket .date {
  font-family: var(--font-body);
  font-size: 14px;
  font-style: italic;
  padding-left: 78px;
  margin-bottom: 12px;
  color: #6b635a;
  color: var(--color-ticket-mute, #6b635a);
}
.ticket .meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding-left: 78px;
  font-family: var(--font-ui);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #1a1410;
  color: var(--color-ticket-ink, #1a1410);
  border-top: 1px solid rgba(26, 20, 16, 0.12);
  padding-top: 10px;
}
.ticket .meta .price {
  color: #6b635a;
  color: var(--color-ticket-mute, #6b635a);
}
.ticket.highlight { animation: highlight-ticket 1.4s ease; }
.ticket.past { opacity: 0.78; }
.ticket.past .rail { background-color: #8a8278; }

.ticket-lg {
  margin: 16px 20px;
  padding: 22px 20px 18px;
}
.ticket-lg .when { font-size: 44px; }
.ticket-lg::before,
.ticket-lg::after { left: 72px; }
.ticket-lg .perf { left: 78px; }
.ticket-lg .micro,
.ticket-lg .when,
.ticket-lg .date,
.ticket-lg .meta { padding-left: 86px; }

.haptic-hint {
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-muted);
  opacity: 0.65;
}

.theme-note {
  font-family: var(--font-ui);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-muted);
  text-align: center;
  padding: 10px 16px 16px;
}

.pad { padding: 0 20px; }
.switch {
  width: 44px; height: 26px; border-radius: 999px;
  background: var(--color-elevated);
  border: 1px solid var(--color-border);
  position: relative;
  transition: background 0.2s;
  flex-shrink: 0;
}
.switch.on { background: var(--color-primary); border-color: var(--color-primary); }
.switch i {
  position: absolute; top: 2px; left: 2px;
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--color-ticket);
  transition: transform 0.2s;
}
.switch.on i { transform: translateX(18px); }
