:root {
  --cream: #fbf7ef;
  --sand: #eadcc9;
  --linen: #fffdf9;
  --clay: #8c4e3e;
  --sage: #344f41;
  --ink: #342d28;
  --muted: #625b54;
  --line: #e5d8c7;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: "Segoe UI", system-ui, sans-serif;
  line-height: 1.5;
}
a { color: var(--clay); text-decoration: none; font-weight: 600; }
h1, h2 { font-family: Georgia, "Times New Roman", serif; margin: 0 0 .35rem; }
h1 { font-size: clamp(2rem, 4vw, 3rem); }
h2 { font-size: 1.35rem; }
.container { max-width: 1180px; margin: 0 auto; padding: 1.25rem; }
.topbar {
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
  padding: .8rem 1.25rem; background: var(--linen); border-bottom: 1px solid var(--line);
  position: sticky; top: 0; z-index: 5;
}
.brand { display: flex; align-items: center; gap: .65rem; color: var(--ink); font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; }
.brand img, .login-logo { width: 48px; height: 48px; object-fit: contain; border-radius: 14px; background: white; }
nav { display: flex; gap: .25rem; flex-wrap: wrap; flex: 1; }
nav a { padding: .5rem .7rem; border-radius: 999px; color: var(--ink); font-size: .94rem; }
nav a:hover { background: var(--cream); }
nav a.active { background: var(--sand); color: var(--ink); }
button, .button {
  border: 0; border-radius: 14px; padding: .75rem 1rem; background: var(--sage); color: white;
  font-weight: 700; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; min-height: 44px;
}
.button.secondary { background: var(--clay); }
.button.danger { background: #9f3f3f; }
.link-button { background: transparent; color: var(--clay); padding: .4rem; }
.danger-text { color: #9f3f3f; }
.page-head { display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin: .5rem 0 1.1rem; }
.page-head p, .muted { color: var(--muted); margin: 0; }
.panel, .stat, .login-card {
  background: var(--linen); border: 1px solid var(--line); border-radius: 22px; padding: 1.1rem;
  box-shadow: 0 12px 28px rgba(81, 64, 43, .07);
}
.grid { display: grid; gap: 1rem; }
.grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.stat span { color: var(--muted); display: block; }
.stat strong { font-size: 1.8rem; }
.dashboard-hero { display: grid; grid-template-columns: minmax(320px, 1.15fr) minmax(320px, .85fr); gap: 1rem; align-items: stretch; }
.dashboard-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 0; }
.next-panel { display: grid; align-content: center; gap: .75rem; background: linear-gradient(135deg, var(--linen), #fff4e3); }
.next-panel h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); }
.next-panel p { margin: 0; color: var(--muted); }
.eyebrow { color: var(--clay); font-weight: 800; text-transform: uppercase; font-size: .78rem; letter-spacing: .08em; }
.panel-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .55rem; }
.panel-head h2 { margin-bottom: 0; }
.agenda-card strong { display: block; }
.agenda-card span { color: var(--muted); }
.row-card { padding: .8rem 0; border-bottom: 1px solid var(--line); display: flex; flex-direction: column; gap: .15rem; }
.row-card:last-child { border-bottom: 0; }
.row-card span { color: var(--muted); }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .75rem .55rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--muted); font-size: .86rem; }
.right { text-align: right; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.form-grid.single { grid-template-columns: 1fr; }
.full { grid-column: 1 / -1; }
label { display: grid; gap: .35rem; font-weight: 700; color: var(--ink); }
input, textarea, select {
  width: 100%; border: 1px solid var(--line); border-radius: 14px; background: white; padding: .75rem;
  font: inherit; color: var(--ink);
}
.compact-select { width: auto; min-width: 6rem; padding: .35rem .5rem; border-radius: 10px; font-size: .88rem; }
textarea { min-height: 110px; resize: vertical; }
.flash { margin-bottom: 1rem; padding: .85rem 1rem; border-radius: 14px; border: 1px solid var(--line); background: white; }
.flash.success { border-color: #b9d2ac; }
.flash.danger { border-color: #d9a6a6; }
.alert-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .75rem; }
.alert-card {
  display: block; background: #fff8ea; border: 1px solid #e9c98f; border-radius: 16px; padding: .85rem 1rem;
  color: var(--ink); box-shadow: 0 10px 20px rgba(81, 64, 43, .06);
}
.alert-card.danger { background: #fff1f1; border-color: #d9a6a6; color: #7f2f2f; }
.login-wrap { min-height: 90vh; display: grid; place-items: center; }
.login-card { width: min(440px, 100%); text-align: center; }
.login-card p { color: var(--muted); }
.stack { display: grid; gap: 1rem; text-align: left; }
.actions { display: flex; gap: .6rem; flex-wrap: wrap; }
.inline-form { display: inline; margin-left: .35rem; }
.filter-bar { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .8rem; align-items: end; margin-bottom: 1rem; }
.filter-actions { display: flex; gap: .5rem; align-items: center; }
.filter-tabs { display: flex; gap: .45rem; flex-wrap: wrap; margin-bottom: 1rem; }
.filter-tabs a { padding: .45rem .7rem; border-radius: 999px; color: var(--ink); }
.filter-tabs a.active, .filter-tabs a:hover { background: var(--sand); }
.tax-estimate-box {
  border: 1px solid var(--line); border-radius: 16px; background: white; padding: 1rem;
}
.vat-card.normal { border-left: 6px solid var(--sage); }
.vat-card.watch { border-left: 6px solid #c49a43; background: #fffaf0; }
.vat-card.warning { border-left: 6px solid var(--clay); background: #fff6ed; }
.vat-card.urgent { border-left: 6px solid #9f3f3f; background: #fff1f1; }
details summary { cursor: pointer; font-weight: 800; color: var(--clay); }
.checkbox-row { display: flex; align-items: center; gap: .55rem; font-weight: 700; }
.checkbox-row input { width: auto; }
.section-gap { margin-top: 1rem; }
.money-actions { display: grid; gap: .7rem; margin-top: 1rem; }
.money-action { background: #fff8ea; border: 1px solid #e9c98f; border-radius: 16px; padding: .85rem 1rem; font-weight: 800; }
.money-action:nth-child(3) { background: #eef5ec; border-color: #b9d2ac; }

.calendar-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem; }
.calendar-day {
  background: var(--linen); border: 1px solid var(--line); border-radius: 22px; padding: 1rem;
  min-height: 150px; box-shadow: 0 12px 28px rgba(81, 64, 43, .07);
}
.calendar-day h2 { font-size: 1.05rem; margin-bottom: .7rem; }
.calendar-event { border-left: 4px solid var(--sage); padding: .6rem .7rem; margin-bottom: .6rem; background: white; border-radius: 14px; display: grid; gap: .15rem; }
.calendar-event span { color: var(--muted); font-size: .92rem; }
.month-shell {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 12px 28px rgba(81, 64, 43, .07);
}
.weekday {
  background: var(--sand);
  padding: .65rem;
  font-weight: 800;
  color: var(--ink);
  text-align: center;
}
.month-day {
  background: var(--linen);
  min-height: 145px;
  padding: .55rem;
  display: flex;
  flex-direction: column;
  gap: .4rem;
}
.month-day.outside { background: #f4ede3; color: var(--muted); }
.month-day.today { box-shadow: inset 0 0 0 3px var(--sage); }
.day-number { font-weight: 800; color: var(--clay); }
.calendar-event.compact { margin-bottom: 0; padding: .45rem .5rem; font-size: .86rem; }
.calendar-event.compact a { font-size: .82rem; }
.calendar-event[draggable="true"] { cursor: grab; }
.calendar-event.dragging { opacity: .55; cursor: grabbing; }
.month-day.drop-target { background: #fff7e9; box-shadow: inset 0 0 0 3px var(--clay); }
.mini-actions { display: flex; gap: .45rem; flex-wrap: wrap; align-items: center; }
.mini-actions form { margin: 0; }
.mini-actions .link-button { min-height: auto; padding: 0; font-size: .82rem; font-weight: 700; }
.compact-button { min-height: 36px; padding: .45rem .7rem; }
.reserve-builder { display: grid; gap: .7rem; }
.reserve-head { display: flex; justify-content: space-between; align-items: center; gap: .7rem; }
.reserve-head h3 { margin: 0; font-size: 1rem; }
.reserve-rows { display: grid; gap: .65rem; }
.reserve-row { display: grid; grid-template-columns: minmax(150px, 1fr) 8rem auto; gap: .6rem; align-items: end; }
.reserve-summary { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); display: grid; gap: .45rem; }
.reserve-summary div { display: flex; justify-content: space-between; gap: 1rem; }
.reserve-summary span { color: var(--muted); }
.summary-line { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem 0; border-bottom: 1px solid var(--line); }
.summary-line:last-child { border-bottom: 0; }
.summary-line span { color: var(--muted); }
.travel-total {
  align-self: end; background: var(--cream); border: 1px solid var(--line); border-radius: 14px; padding: .75rem;
  display: flex; justify-content: space-between; gap: 1rem; font-weight: 800;
}
.travel-total span { color: var(--muted); font-weight: 700; }
.bar-chart { display: grid; gap: .7rem; margin-top: .8rem; }
.bar-row {
  display: grid;
  grid-template-columns: 5.8rem minmax(120px, 1fr) 5.5rem;
  align-items: center;
  gap: .7rem;
  font-size: .9rem;
}
.bar-row span { color: var(--muted); }
.bar-row strong { text-align: right; font-size: .92rem; }
.bar-track { height: .85rem; background: var(--cream); border: 1px solid var(--line); border-radius: 999px; overflow: hidden; }
.bar-fill { height: 100%; background: linear-gradient(90deg, var(--sage), var(--clay)); border-radius: inherit; }
.line-items { display: grid; gap: .75rem; margin-bottom: .75rem; }
.line-item-row { display: grid; grid-template-columns: minmax(220px, 1fr) 8rem 8rem auto; gap: .65rem; align-items: end; }
.invoice-total, .totals-box {
  margin-top: .75rem; padding: .85rem; border: 1px solid var(--line); border-radius: 16px; background: var(--cream);
  display: grid; gap: .45rem; max-width: 420px; margin-left: auto;
}
.invoice-total div, .totals-box div { display: flex; justify-content: space-between; gap: 1rem; }
.invoice-total span, .totals-box span { color: var(--muted); }
.print-body { background: white; }
.invoice-print {
  width: min(920px, calc(100% - 2rem)); margin: 1rem auto; background: white; color: var(--ink);
  border: 1px solid var(--line); border-radius: 18px; padding: 2rem;
}
.invoice-brand { display: flex; justify-content: space-between; gap: 1.5rem; border-bottom: 2px solid var(--sand); padding-bottom: 1rem; margin-bottom: 1.5rem; }
.invoice-brand img { width: 72px; height: 72px; object-fit: contain; border-radius: 16px; }
.invoice-to, .invoice-notes { margin: 1.5rem 0; }
.print-totals { box-shadow: none; }
.no-print { margin-top: 1rem; }
@media (max-width: 760px) {
  .page-head, .topbar { align-items: stretch; }
  .page-head { flex-direction: column; }
  .grid.two, .stats, .form-grid, .dashboard-hero, .dashboard-stats, .filter-bar { grid-template-columns: 1fr; }
  .panel-head { align-items: flex-start; flex-direction: column; }
  nav { order: 3; width: 100%; overflow-x: auto; flex-wrap: nowrap; }
  table { display: block; overflow-x: auto; white-space: nowrap; }
  .reserve-head, .reserve-summary div { align-items: flex-start; flex-direction: column; }
  .reserve-row, .line-item-row { grid-template-columns: 1fr; }
  .bar-row { grid-template-columns: 1fr; gap: .3rem; }
  .bar-row strong { text-align: left; }
  .month-shell { grid-template-columns: 1fr; background: transparent; border: 0; gap: .7rem; box-shadow: none; }
  .weekday { display: none; }
  .month-day { border: 1px solid var(--line); border-radius: 16px; min-height: auto; }
  .month-day.outside { display: none; }
}
@media print {
  .no-print, .topbar { display: none !important; }
  .invoice-print { width: 100%; margin: 0; border: 0; border-radius: 0; padding: 0; }
  body { background: white; }
  a { color: inherit; }
}

.workflow-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.workflow-card{display:flex;flex-direction:column;gap:7px;text-decoration:none;color:var(--ink);background:var(--linen);border:1px solid var(--line);border-radius:18px;padding:16px;min-height:122px}.workflow-card:hover{border-color:var(--clay)}.workflow-number{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;background:var(--sage);color:white;font-weight:700}.workflow-card small{color:var(--muted);line-height:1.35}.row-card form{margin-top:6px}

/* Booking-request administration: mobile cards, no wide customer tables. */
.staging-banner{background:#344f41;color:white;padding:.5rem 1.25rem;font-size:.82rem;text-align:center}.request-status{display:inline-block;padding:.3rem .7rem;border-radius:30px;background:#eee8da;color:#514430;font-size:.8rem;text-transform:capitalize;font-weight:700}.request-status.approved{background:#dbead7;color:#254624}.request-status.declined{background:#f2dfd8;color:#6e3026}.request-filters{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:.8rem;align-items:end;margin-bottom:1rem}.request-filters button{justify-self:start}.request-list{display:grid;gap:1rem}.request-row{display:grid;grid-template-columns:1.6fr 1fr auto;gap:1rem;align-items:center}.request-row h2{margin-top:.5rem}.request-row p{margin:.35rem 0;overflow-wrap:anywhere}.request-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.request-details{display:grid;grid-template-columns:140px 1fr;gap:.8rem}.request-details dt{font-weight:700}.request-details dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.request-decision{margin-block:1rem}.request-pagination{align-items:center;margin-top:1rem}.checkbox-line{display:flex;align-items:flex-start;gap:.7rem}.checkbox-line input{width:20px;min-width:20px;margin-top:4px}.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}button.danger{background:#9f3f3f}button.secondary{background:var(--clay)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #8c4e3e;outline-offset:3px}
@media(max-width:760px){.request-filters,.request-detail-grid,.request-row{grid-template-columns:1fr}.request-row .button{justify-self:start}.request-details{grid-template-columns:1fr;gap:.3rem}.request-details dd{margin-bottom:.7rem}.page-head{align-items:flex-start;flex-wrap:wrap}.request-decision .form-grid{grid-template-columns:1fr}.request-decision button{width:100%}.topbar{position:static}.topbar nav{min-width:0}.topbar nav a{font-size:.8rem;padding:.45rem .55rem}}
