:root{
  --primary:#4f46e5;
  --primary-dark:#3730a3;
  --accent:#06b6d4;
  --bg:#f4f6fb;
  --card-bg:#ffffff;
  --text:#1e2230;
  --muted:#6b7280;
  --border:#e5e7eb;
  --success:#16a34a;
  --danger:#dc2626;
  --radius:14px;
  --shadow:0 4px 16px rgba(31,41,55,0.06);
}
*{box-sizing:border-box;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Segoe UI',Inter,system-ui,-apple-system,sans-serif;
  font-size:15px;
}
a{text-decoration:none;}

/* ---------- Sidebar ---------- */
.sidebar{
  position:fixed; top:0; left:0; bottom:0; width:250px; z-index:1030;
  background:linear-gradient(180deg, #d2a85e, #a77620),var(--primary);
  color:#fff; padding:20px 14px; overflow-y:auto;
  transition:transform .25s ease;
}
.sidebar .brand{font-weight:700; font-size:1.25rem; padding:8px 10px 20px; display:flex; align-items:center; gap:10px;}
.sidebar .brand img{height:34px;}
.sidebar a.nav-link{
  color:rgba(255,255,255,.85); padding:11px 14px; border-radius:10px;
  margin-bottom:4px; display:flex; align-items:center; gap:10px; font-weight:500;
}
.sidebar a.nav-link:hover, .sidebar a.nav-link.active{
  background:rgba(255,255,255,.16); color:#fff;
}
.sidebar .section-title{font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; opacity:.6; margin:18px 10px 6px;}

.main-wrap{margin-left:250px; min-height:100vh; transition:margin .25s ease;}
.topbar{
  background:var(--card-bg); padding:14px 24px; display:flex; align-items:center;
  justify-content:space-between; box-shadow:var(--shadow); position:sticky; top:0; z-index:1020;
}
.topbar .menu-toggle{display:none; background:none; border:none; font-size:1.4rem; color:var(--text);}
.content{padding:24px;}

/* ---------- Cards ---------- */
.card-modern{
  background:var(--card-bg); border:none; border-radius:var(--radius); box-shadow:var(--shadow);
}
.stat-card{
  border-radius:var(--radius); padding:20px; color:#fff; box-shadow:var(--shadow);
  position:relative; overflow:hidden;
}
.stat-card h3{font-size:1.8rem; font-weight:700; margin:6px 0 0;}
.stat-card .label{opacity:.85; font-size:.85rem;}
.stat-card .icon{position:absolute; right:16px; top:16px; font-size:2rem; opacity:.35;}
.bg-grad-1{background:linear-gradient(135deg,#4f46e5,#7c3aed);}
.bg-grad-2{background:linear-gradient(135deg,#06b6d4,#0ea5e9);}
.bg-grad-3{background:linear-gradient(135deg,#16a34a,#22c55e);}
.bg-grad-4{background:linear-gradient(135deg,#f59e0b,#f97316);}

/* ---------- Buttons ---------- */
.btn-primary{    background: #d2a85e;border-color: #d2a85e;}
.btn-primary:hover{background:var(--primary-dark); border-color:var(--primary-dark);}
.btn-soft{background:#eef2ff; color:var(--primary); border:none; font-weight:600;}
.btn-soft:hover{background:#e0e7ff;}

/* ---------- Tables ---------- */
.table-modern thead{background:#f8fafc;}
.table-modern th{font-size:.8rem; text-transform:uppercase; color:var(--muted); letter-spacing:.03em; border-bottom:2px solid var(--border);}
.table-modern td, .table-modern th{vertical-align:middle; padding:12px 14px;}
.badge-status{padding:5px 10px; border-radius:20px; font-size:.75rem; font-weight:600;}

/* ---------- Forms ---------- */
.form-label{font-weight:600; font-size:.95rem; color:#374151;}
.form-control, .form-select{border-radius:9px; border:1px solid var(--border); padding:12px 14px; font-size:1rem; min-height:46px;}
.form-control:focus, .form-select:focus{border-color:var(--primary); box-shadow:0 0 0 3px rgba(79,70,229,.12);}
.section-card{background:#fafbff; border:1px solid var(--border); border-radius:12px; padding:18px; margin-bottom:18px;}

/* Inputs inside dynamic tables (passenger rows, room rows) - bigger than Bootstrap's default "sm" */
.form-control-sm, .form-select-sm{
  padding:9px 10px !important;
  font-size:.95rem !important;
  min-height:40px !important;
}
.table-modern input, .table-modern select{min-width:90px;}

/* ---------- Login ---------- */
.login-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg, #fcf2e2, #ffe5b6 60%, #c19756);}
.login-card{background:#fff; border-radius:18px; box-shadow:0 20px 60px rgba(0,0,0,.25); width:100%; max-width:400px; padding:38px 34px;}

/* ---------- Print Invoice ---------- */
.invoice-paper{background:#fff; max-width:760px; margin:0 auto; border:1px solid #d8dbe2; border-radius:10px; padding:0; box-shadow:0 2px 10px rgba(0,0,0,.05); overflow:hidden;}
.invoice-paper table{width:100%; border-collapse:collapse; margin-top:10px;}
.invoice-paper td, .invoice-paper th{border:1px solid #e3e5ea; padding:4px 7px; font-size:12px; line-height:1.35;}
.invoice-paper thead th{background:#f6f4ff; color:#3730a3; font-weight:700; text-transform:uppercase; font-size:10.5px; letter-spacing:.02em;}
.invoice-letterhead{text-align:center; padding:16px 16px 12px; background:#fcf2e2; color:#0c3d6e; -webkit-print-color-adjust:exact; print-color-adjust:exact; color-adjust:exact;}
.invoice-letterhead img{height:88px; margin-bottom:6px; background:#fff; border-radius:8px; padding:4px;}
.invoice-letterhead h1{font-style:italic; color:#0c3d6e; font-size:1.45rem; margin:0; letter-spacing:.5px;}
.invoice-letterhead div{color:#0c3d6e;}
.invoice-body{padding:0 16px 16px;}
.invoice-paper-wide{max-width:920px;}
.statement-table th, .statement-table td{font-size:11px; padding:3px 6px;}

/* ---------- Responsive ---------- */
@media (max-width: 991px){
  .sidebar{transform:translateX(-100%);}
  .sidebar.show{transform:translateX(0);}
  .main-wrap{margin-left:0;}
  .topbar .menu-toggle{display:inline-block;}
  .content{padding:14px;}
  .invoice-paper{font-size:11px;}
}
@media print{
  .sidebar, .topbar, .no-print{display:none !important;}
  .main-wrap{margin-left:0;}
  body{background:#fff;}
  *{-webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; color-adjust:exact !important;}
}
