@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=Jost:wght@400;500;600&display=swap');

.ovm-app {
  --ovm-bordeaux: #A91C42;
  --ovm-sand: #EDE4D6;
  --ovm-paper: #F7F2EA;
  --ovm-line: #E5DBCB;
  --ovm-ink: #2B241D;
  --ovm-muted: #7A6C5B;
  --ovm-faint: #A79A87;
  --ovm-green: #5B6248;
  font-family: 'Jost', sans-serif;
  background: var(--ovm-sand);
  padding: 24px 16px;
  border-radius: 12px;
  max-width: 480px;
  margin: 0 auto;
  box-sizing: border-box;
}
.ovm-app * { box-sizing: border-box; }
.ovm-app.ovm-wide { max-width: 760px; }

.ovm-card { background: var(--ovm-paper); border: 1px solid var(--ovm-line); border-radius: 20px; padding: 28px; }
.ovm-center { text-align: center; }

.ovm-h1 { font-family: 'Cormorant Garamond', serif; font-size: 26px; letter-spacing: 0.04em; color: var(--ovm-ink); margin: 0 0 6px; text-transform: uppercase; }
.ovm-muted { color: var(--ovm-muted); font-size: 14px; margin: 0 0 20px; }
.ovm-faint { color: var(--ovm-faint); font-size: 12px; }

.ovm-badge { font-family: 'Cormorant Garamond', serif; font-size: 30px; color: var(--ovm-bordeaux); margin-bottom: 4px; }

.ovm-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--ovm-bordeaux); color: var(--ovm-paper); border: none;
  font-family: 'Cormorant Garamond', serif; letter-spacing: 0.12em; font-size: 14px;
  padding: 14px 28px; border-radius: 999px; cursor: pointer; width: 100%;
  text-transform: uppercase;
}
.ovm-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.ovm-btn-ghost { background: transparent; color: var(--ovm-muted); border: 1px solid var(--ovm-line); font-family: 'Jost',sans-serif; text-transform:none; letter-spacing:normal; font-size: 13px; padding: 10px 18px; }

.ovm-list-btn {
  width: 100%; display: flex; align-items: center; gap: 12px; text-align: left;
  background: var(--ovm-paper); border: 1px solid var(--ovm-line); border-radius: 16px;
  padding: 12px 14px; margin-bottom: 8px; cursor: pointer; font-family: 'Jost', sans-serif; font-size: 14px; color: var(--ovm-ink);
}
.ovm-list-btn:hover { border-color: var(--ovm-bordeaux); }
.ovm-tile {
  width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--ovm-bordeaux); color: var(--ovm-paper); font-weight: 600; font-size: 13px;
}
.ovm-ring {
  margin-left: auto; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--ovm-bordeaux);
  display: flex; align-items: center; justify-content: center; color: var(--ovm-bordeaux); font-size: 14px; flex-shrink: 0;
}

.ovm-field {
  width: 100%; padding: 12px 14px; border: 1px solid var(--ovm-line); border-radius: 12px;
  font-family: 'Jost', sans-serif; font-size: 14px; margin-bottom: 10px; background: #FBF8F2;
}

.ovm-check { display: flex; gap: 8px; font-size: 12px; color: var(--ovm-muted); align-items: flex-start; margin: 8px 0 16px; }

.ovm-status { font-size: 10px; padding: 4px 8px; border-radius: 999px; letter-spacing: 0.06em; font-weight: 600; }
.ovm-status-expected { background: #F1E6D2; color: #8A5A18; }
.ovm-status-checked_in { background: #E4E7DC; color: var(--ovm-green); }
.ovm-status-checked_out { background: #EAE3D6; color: var(--ovm-faint); }

.ovm-table { width: 100%; border-collapse: collapse; }
.ovm-table th { font-size: 10px; color: var(--ovm-faint); text-transform: uppercase; letter-spacing: 0.08em; text-align: left; padding: 8px 6px; border-bottom: 1px solid var(--ovm-line); }
.ovm-table td { padding: 10px 6px; border-bottom: 1px solid #EDE4D6; font-size: 13px; color: var(--ovm-ink); }

.ovm-stats { display: flex; gap: 10px; margin-bottom: 18px; }
.ovm-stat { background: var(--ovm-paper); border: 1px solid var(--ovm-line); border-radius: 14px; padding: 10px 16px; text-align: center; }
.ovm-stat b { display: block; font-size: 20px; color: var(--ovm-green); }
.ovm-stat span { font-size: 10px; color: var(--ovm-faint); }

.ovm-toast {
  position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%);
  background: var(--ovm-ink); color: var(--ovm-paper); padding: 12px 20px; border-radius: 999px;
  font-family: 'Jost', sans-serif; font-size: 13px; z-index: 9999; box-shadow: 0 12px 30px rgba(43,36,29,.35);
}
