:root {
  --orange: #f04a1f;
  --orange-dark: #d93e14;
  --orange-soft: #fff2ec;
  --orange-soft-2: #ffe3d6;
  --ink: #111111;
  --ink-2: #1d1d1f;
  --ink-3: #2f2f33;
  --text: #1f2937;
  --muted: #6b7280;
  --muted-2: #8b95a7;
  --bg: #f7f5f3;
  --bg-2: #fcfbfa;
  --card: #ffffff;
  --line: #ece7e3;
  --line-strong: #ddd5cf;
  --green: #0f9f68;
  --red: #d93445;
  --amber: #dd8b10;
  --blue: #2878dd;
  --radius: 18px;
  --radius-lg: 24px;
  --shadow: 0 14px 40px rgba(17,17,17,.06);
  --shadow-soft: 0 10px 26px rgba(240,74,31,.10);
}
* { box-sizing:border-box; }
html, body { margin:0; padding:0; font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--text); background:linear-gradient(180deg,#faf8f6 0%,#f5f2ef 100%); }
a { color:inherit; text-decoration:none; }
button, input, select, textarea { font:inherit; }
button { cursor:pointer; }
img { max-width:100%; }

.topbar {
  height:80px;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(17,17,17,.06);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 26px;
  position:sticky;
  top:0;
  z-index:40;
  box-shadow:0 8px 26px rgba(17,17,17,.04);
}
.brand { display:flex; align-items:center; gap:18px; min-width:0; }
.brand img { width:136px; height:50px; object-fit:contain; object-position:left center; display:block; }
.brand-divider { width:1px; height:40px; background:linear-gradient(180deg,transparent,rgba(17,17,17,.12),transparent); }
.brand-title { font-weight:800; font-size:18px; letter-spacing:-.01em; color:var(--ink); white-space:nowrap; }
.brand-subtitle { font-size:12px; color:var(--muted); margin-top:4px; }
.top-actions { display:flex; align-items:center; gap:12px; font-size:13px; }
.mobile-menu { display:none; background:transparent; border:0; color:var(--orange); font-size:28px; }

.status-pill { display:inline-flex; align-items:center; justify-content:center; border-radius:999px; padding:9px 12px; font-size:12px; font-weight:800; color:var(--orange-dark); background:var(--orange-soft); border:1px solid rgba(240,74,31,.12); }
.status-pill-dark { color:var(--ink); background:#f3f4f6; border-color:#e5e7eb; }
.user-chip { display:flex; align-items:center; gap:10px; padding:8px 12px; border-radius:999px; background:#fff; border:1px solid var(--line); }
.user-avatar { width:36px; height:36px; display:grid; place-items:center; border-radius:50%; background:linear-gradient(135deg,var(--orange),#ff8b63); color:#fff; font-weight:800; }
.user-name { font-size:13px; font-weight:800; color:var(--ink); line-height:1.1; }
.user-role { font-size:11px; color:var(--muted); margin-top:2px; }

.shell { display:grid; grid-template-columns:280px minmax(0,1fr); min-height:calc(100vh - 80px); }
.sidebar {
  background:linear-gradient(180deg,#111111 0%,#1a1a1a 100%);
  color:#f8fafc;
  padding:20px 16px;
  position:sticky;
  top:80px;
  height:calc(100vh - 80px);
  border-right:1px solid rgba(255,255,255,.06);
}
.sidebar-head { padding:6px 12px 18px; margin-bottom:8px; border-bottom:1px solid rgba(255,255,255,.08); }
.sidebar-mini-title { font-size:12px; text-transform:uppercase; letter-spacing:.10em; color:#f7b7a3; font-weight:800; }
.sidebar-mini-subtitle { font-size:17px; font-weight:800; color:#fff; margin-top:6px; }
.sidebar-section { font-size:11px; letter-spacing:.10em; text-transform:uppercase; color:#f7b7a3; font-weight:800; padding:14px 12px 10px; }
.nav-link { position:relative; display:flex; align-items:center; gap:12px; padding:13px 14px; border-radius:14px; margin-bottom:6px; font-size:14px; font-weight:600; color:rgba(255,255,255,.82); transition:.18s ease; }
.nav-link:hover { background:rgba(255,255,255,.06); color:#fff; transform:translateX(2px); }
.nav-link.active { background:linear-gradient(90deg,rgba(240,74,31,.22) 0%,rgba(240,74,31,.08) 100%); color:#fff; box-shadow:inset 3px 0 0 var(--orange); }
.nav-icon { width:24px; text-align:center; color:#ff9a72; font-size:15px; }
.sidebar-footer { position:absolute; left:16px; bottom:18px; right:16px; }
.sidebar-footer-card { border-radius:16px; padding:14px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); display:flex; flex-direction:column; gap:5px; }
.sidebar-footer-label { font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:#f7b7a3; font-weight:800; }
.sidebar-footer-card strong { color:#fff; font-size:15px; }
.sidebar-footer-copy { font-size:12px; line-height:1.45; color:rgba(255,255,255,.72); }

.content { padding:28px; min-width:0; }
.page-head { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:22px; }
.page-title h1 { margin:0 0 6px; font-size:28px; letter-spacing:-.02em; color:var(--ink); }
.page-title p { margin:0; color:var(--muted); font-size:14px; }

.card { background:rgba(255,255,255,.98); border:1px solid rgba(17,17,17,.06); border-radius:var(--radius-lg); box-shadow:var(--shadow); }
.card-pad { padding:22px; }
.grid { display:grid; gap:18px; }
.grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.grid-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.metric { position:relative; overflow:hidden; padding:20px; display:flex; justify-content:space-between; gap:10px; min-height:120px; }
.metric::before { content:''; position:absolute; left:0; top:0; right:0; height:4px; background:linear-gradient(90deg,var(--orange) 0%,#ff9d78 100%); }
.metric-label { color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.06em; }
.metric-value { font-size:30px; font-weight:800; letter-spacing:-.02em; color:var(--ink); margin-top:6px; }
.metric-note { font-size:12px; color:var(--muted); margin-top:5px; line-height:1.45; }
.metric-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:14px; background:var(--orange-soft); color:var(--orange); font-size:20px; box-shadow:var(--shadow-soft); }

.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:0; border-radius:12px; padding:11px 16px; font-weight:800; font-size:13px; transition:.16s ease; }
.btn:hover { transform:translateY(-1px); }
.btn-primary { color:#fff; background:linear-gradient(135deg,var(--orange) 0%,#ff7e4a 100%); box-shadow:0 12px 24px rgba(240,74,31,.18); }
.btn-primary:hover { background:linear-gradient(135deg,var(--orange-dark) 0%,var(--orange) 100%); }
.btn-secondary { color:var(--ink); background:#f3f4f6; border:1px solid #e5e7eb; }
.btn-success { color:#fff; background:var(--green); }
.btn-danger { color:#fff; background:var(--red); }
.btn-outline { color:var(--orange-dark); background:#fff; border:1px solid rgba(240,74,31,.28); }
.btn-sm { padding:8px 11px; font-size:12px; }
.actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }

label { display:block; font-weight:800; color:var(--ink-2); font-size:12px; margin-bottom:6px; }
.input, input[type=text], input[type=email], input[type=password], input[type=number], input[type=date], input[type=time], select, textarea {
  width:100%; border:1px solid var(--line-strong); background:#fff; border-radius:12px; padding:11px 13px; color:var(--text); outline:none; transition:.15s ease;
}
input:focus, select:focus, textarea:focus { border-color:rgba(240,74,31,.5); box-shadow:0 0 0 4px rgba(240,74,31,.11); }
textarea { min-height:130px; resize:vertical; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.form-group.full { grid-column:1/-1; }
.help { font-size:11px; color:var(--muted); margin-top:5px; }

.table-wrap { overflow:auto; border-radius:16px; border:1px solid var(--line); }
table { width:100%; border-collapse:collapse; min-width:760px; }
th { text-align:left; font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; background:#fbfaf9; padding:13px 14px; border-bottom:1px solid var(--line); }
td { padding:14px; border-bottom:1px solid #f0ebe7; vertical-align:middle; font-size:13px; }
tr:last-child td { border-bottom:0; }
.badge { display:inline-flex; align-items:center; gap:5px; border-radius:999px; padding:6px 10px; font-size:11px; font-weight:800; white-space:nowrap; }
.badge-green { background:#ddf8ec; color:#087847; }
.badge-blue { background:#e5f0ff; color:#1a63ba; }
.badge-orange { background:#fff0df; color:#aa5d00; }
.badge-red { background:#ffe5e8; color:#b42335; }
.badge-gray { background:#eef1f5; color:#596575; }

.flash { margin-bottom:18px; padding:13px 15px; border-radius:14px; font-size:13px; font-weight:700; }
.flash-success { background:#dff7ec; color:#087847; border:1px solid #b8ecd4; }
.flash-danger { background:#ffe5e8; color:#a71e30; border:1px solid #ffcbd1; }
.empty { text-align:center; color:var(--muted); padding:42px 20px; }
.muted { color:var(--muted); }
.small { font-size:12px; }
.mono { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; }
.section-title { margin:0 0 15px; font-size:18px; color:var(--ink); letter-spacing:-.01em; }
.divider { height:1px; background:var(--line); margin:18px 0; }
.eyebrow { display:inline-flex; align-items:center; padding:7px 10px; border-radius:999px; background:var(--orange-soft); color:var(--orange-dark); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; margin-bottom:12px; }

.login-page {
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(360px,48%) 1fr;
  background:linear-gradient(135deg,#151515 0%,#1f1f1f 55%,#111111 100%);
}
.login-brand { position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; padding:8vw 6vw; color:#fff; }
.login-brand::before { content:''; position:absolute; inset:auto auto -140px -120px; width:360px; height:360px; background:radial-gradient(circle,rgba(240,74,31,.42),rgba(240,74,31,0) 70%); }
.login-brand::after { content:''; position:absolute; top:-120px; right:-120px; width:320px; height:320px; background:radial-gradient(circle,rgba(255,255,255,.10),rgba(255,255,255,0) 70%); }
.login-brand-inner { position:relative; z-index:1; max-width:540px; }
.login-badge { display:inline-flex; align-items:center; padding:8px 12px; border-radius:999px; background:rgba(255,255,255,.08); color:#ffd3c1; border:1px solid rgba(255,255,255,.10); font-size:11px; text-transform:uppercase; letter-spacing:.08em; font-weight:800; margin-bottom:24px; }
.login-brand img { width:230px; height:auto; object-fit:contain; object-position:left; margin-bottom:34px; filter:drop-shadow(0 12px 28px rgba(0,0,0,.14)); }
.login-brand h1 { font-size:48px; line-height:1.02; margin:0 0 18px; letter-spacing:-.03em; }
.login-brand p { color:rgba(255,255,255,.78); max-width:520px; line-height:1.65; font-size:16px; }
.feature-list { margin-top:34px; display:grid; gap:14px; }
.feature-item { display:flex; gap:14px; align-items:flex-start; padding:16px 18px; border-radius:18px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08); }
.feature-dot { width:26px; height:26px; display:grid; place-items:center; border-radius:50%; background:var(--orange); color:#fff; font-size:18px; line-height:1; flex:0 0 26px; }
.feature-item strong { display:block; margin-bottom:4px; color:#fff; }
.feature-item span:last-child { color:rgba(255,255,255,.72); font-size:14px; line-height:1.5; }

.login-box { display:flex; align-items:center; justify-content:center; padding:50px 40px; background:linear-gradient(180deg,#faf8f6 0%,#f4f1ee 100%); }
.login-card { width:min(460px,100%); padding:34px; border-radius:30px; border:1px solid rgba(17,17,17,.06); box-shadow:0 24px 60px rgba(17,17,17,.08); }
.login-card-head { margin-bottom:26px; }
.login-card h2 { font-size:34px; margin:0 0 8px; color:var(--ink); letter-spacing:-.03em; }
.login-card p { margin:0; color:var(--muted); line-height:1.55; }
.login-support { margin-top:16px; color:var(--muted); font-size:12px; text-align:center; }

.public-page { min-height:100vh; background:linear-gradient(180deg,#faf8f6,#f3efeb); padding:24px 14px 50px; }
.public-shell { width:min(590px,100%); margin:0 auto; }
.public-logo { text-align:center; margin:14px 0 20px; }
.public-logo img { width:160px; height:54px; object-fit:contain; }
.booking-card { background:#fff; border:1px solid #ece7e3; border-radius:26px; box-shadow:0 18px 50px rgba(17,17,17,.08); overflow:hidden; }
.booking-hero { padding:30px 24px 22px; text-align:center; border-bottom:1px solid var(--line); background:linear-gradient(180deg,#fff 0%,#fff8f5 100%); }
.gift { font-size:56px; margin-bottom:9px; }
.booking-hero h1 { margin:0 0 8px; color:var(--ink); font-size:26px; letter-spacing:-.02em; }
.booking-hero p { margin:0; color:var(--muted); line-height:1.55; }
.booking-body { padding:22px; }
.date-scroller { display:flex; gap:8px; overflow:auto; padding-bottom:5px; margin-bottom:18px; }
.date-btn { min-width:82px; padding:11px 8px; border-radius:14px; border:1px solid #ddd5cf; background:#fff; text-align:center; color:var(--ink); transition:.15s ease; }
.date-btn.active { background:var(--orange-soft); color:var(--orange-dark); border-color:rgba(240,74,31,.35); box-shadow:var(--shadow-soft); }
.date-btn b { display:block; font-size:17px; }
.date-btn span { display:block; font-size:10px; text-transform:uppercase; margin-bottom:2px; }
.time-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.time-option input { display:none; }
.time-option span { display:block; text-align:center; border:1px solid #ddd5cf; border-radius:12px; padding:12px 6px; font-weight:800; color:var(--ink); background:#fff; }
.time-option input:checked + span { background:var(--orange-soft); color:var(--orange-dark); border-color:rgba(240,74,31,.35); box-shadow:var(--shadow-soft); }
.booking-submit { margin-top:20px; width:100%; padding:14px; font-size:15px; }
.booking-footer { text-align:center; color:#8a97a8; font-size:11px; padding:15px; border-top:1px solid var(--line); }
.confirm-check { width:76px; height:76px; border-radius:50%; display:grid; place-items:center; margin:0 auto 15px; background:#e0f8ed; color:#08a15f; font-size:42px; font-weight:900; }
.confirm-box { background:#f8fafb; border-radius:16px; padding:16px; margin:20px 0; text-align:left; border:1px solid #ebeff3; }

.agenda-day { display:grid; grid-template-columns:80px 1fr; gap:14px; padding:14px 0; border-bottom:1px solid var(--line); }
.agenda-time { font-size:18px; font-weight:800; color:var(--ink); padding-top:14px; }
.agenda-item { padding:16px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 8px 24px rgba(17,17,17,.04); }
.agenda-name { font-weight:800; margin-bottom:4px; font-size:17px; color:var(--ink); }
.weekdays { display:flex; flex-wrap:wrap; gap:8px; }
.weekdays label { margin:0; font-weight:600; background:#f8f5f2; border:1px solid #ece7e3; padding:8px 10px; border-radius:10px; }
.weekdays input { width:auto; margin-right:4px; }

@media (max-width:1180px) {
  .grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .grid-3 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .shell { grid-template-columns:250px minmax(0,1fr); }
  .top-actions { gap:8px; }
  .user-chip { display:none; }
}
@media (max-width:900px) {
  .login-page { grid-template-columns:1fr; }
  .login-brand { min-height:420px; padding:52px 28px; }
  .login-brand h1 { font-size:40px; }
}
@media (max-width:760px) {
  .topbar { padding:0 14px; height:72px; }
  .brand img { width:108px; height:38px; }
  .brand-divider, .brand-subtitle { display:none; }
  .brand-title { font-size:14px; max-width:180px; overflow:hidden; text-overflow:ellipsis; }
  .mobile-menu { display:block; }
  .top-actions { display:none; }
  .shell { grid-template-columns:1fr; min-height:calc(100vh - 72px); }
  .sidebar { position:fixed; top:72px; left:-290px; width:270px; height:calc(100vh - 72px); z-index:30; transition:.2s; }
  body.sidebar-open .sidebar { left:0; box-shadow:10px 0 35px rgba(0,0,0,.30); }
  .content { padding:18px 13px; }
  .grid-4, .grid-3, .grid-2, .form-grid { grid-template-columns:1fr; }
  .page-head { flex-direction:column; }
  .login-brand { display:none; }
  .login-box { min-height:100vh; padding:24px; }
  .login-card { padding:26px 22px; border-radius:24px; }
  .login-card h2 { font-size:28px; }
  .time-grid { grid-template-columns:repeat(2,1fr); }
  .agenda-day { grid-template-columns:1fr; }
  .agenda-time { padding-top:0; }
}
