/* --------------------------------------------------
   Base Layout
-------------------------------------------------- */
*{box-sizing:border-box}body{margin:0;font-family:Poppins,Arial,sans-serif;background:#fff;color:#1f2937}a{text-decoration:none;color:inherit}.container{max-width:1120px;margin:0 auto;padding:0 16px}.main-wrap{padding:28px 0 48px}

/* --------------------------------------------------
   Header
-------------------------------------------------- */
.site-header{background:linear-gradient(135deg,#0f172a,#111827,#1e293b);padding:18px 0;box-shadow:0 8px 30px rgba(2,6,23,.35)}.header-box{display:flex;align-items:center;justify-content:space-between;gap:20px}.logo-wrap{display:block}.logo-title{font-size:40px;font-weight:800;color:#fff;letter-spacing:.5px}.logo-subtitle{color:#cbd5e1;font-size:12px;margin-top:3px}.top-nav{display:flex;flex-wrap:wrap;gap:10px}.top-nav a{color:#fff;padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.08);box-shadow:0 6px 18px rgba(0,0,0,.18);transition:.2s}.top-nav a:hover{background:rgba(255,255,255,.18)}

/* --------------------------------------------------
   Footer
-------------------------------------------------- */
.site-footer{padding:24px 0 36px}.footer-box{background:#fff;border:1px solid #e5e7eb;border-radius:20px;padding:18px 20px;box-shadow:0 8px 24px rgba(15,23,42,.08);display:flex;justify-content:space-between;gap:12px;align-items:center}.footer-right{text-align:right}

/* --------------------------------------------------
   Components
-------------------------------------------------- */
.card{background:#fff;border:1px solid #e5e7eb;border-radius:22px;box-shadow:0 10px 30px rgba(15,23,42,.08)}.p-24{padding:24px}.mb-24{margin-bottom:24px}.badge{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:#f8fafc;border:1px solid #e5e7eb;font-size:14px;font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 20px;border-radius:999px;border:none;cursor:pointer;font-weight:700;box-shadow:0 10px 24px rgba(15,23,42,.12);transition:.2s}.btn-primary{background:#0f172a;color:#fff}.btn-primary:hover{transform:translateY(-1px);background:#111827}.btn-secondary{background:#fff;color:#111827;border:1px solid #d1d5db}.btn-danger{background:#7f1d1d;color:#fff}.btn-warning{background:#9a3412;color:#fff}.btn-success{background:#166534;color:#fff}.input,select,textarea{width:100%;padding:13px 14px;border:1px solid #d1d5db;border-radius:16px;background:#fff;outline:none;font:inherit}textarea{min-height:120px;resize:vertical}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.stack{display:flex;flex-direction:column;gap:14px}.muted{color:#6b7280}.title-xl{font-size:34px;font-weight:800;line-height:1.15}.title-lg{font-size:28px;font-weight:800}.title-md{font-size:22px;font-weight:800}.text-danger{color:#b91c1c;font-weight:700}.text-success{color:#15803d;font-weight:700}.text-warning{color:#c2410c;font-weight:700}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:top}.table th{background:#f8fafc}.alert{padding:14px 16px;border-radius:16px;margin-bottom:16px}.alert-success{background:#ecfdf5;color:#166534;border:1px solid #bbf7d0}.alert-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}

/* --------------------------------------------------
   Homepage Events
-------------------------------------------------- */
.events-list{display:flex;flex-direction:column;gap:20px}.event-row{display:grid;grid-template-columns:340px 1fr;gap:22px;padding:20px;border-radius:24px;border:1px solid #e5e7eb;box-shadow:0 10px 30px rgba(15,23,42,.08)}.event-row:nth-child(odd){background:#f8fafc}.event-row:nth-child(even){background:#fffdf8}.event-thumb{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px;border:1px solid #e5e7eb}.event-meta{display:flex;flex-direction:column;gap:12px}.event-price{font-size:20px;font-weight:800}

/* --------------------------------------------------
   Event Detail
-------------------------------------------------- */
.event-detail-top{display:grid;grid-template-columns:400px 1fr;gap:24px}.event-detail-img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px;border:1px solid #e5e7eb}.inline-info{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.info-box{background:#f8fafc;border:1px solid #e5e7eb;border-radius:18px;padding:14px}.ticket-item{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px;border-radius:18px;border:1px solid #e5e7eb;background:#fff}

/* --------------------------------------------------
   Forms & Invoice
-------------------------------------------------- */
.form-box{max-width:720px;margin:0 auto}.invoice-box{max-width:760px;margin:0 auto}.countdown{font-size:24px;font-weight:800;color:#991b1b}.status-box{padding:16px;border-radius:18px;border:1px solid #e5e7eb;background:#f8fafc}

/* --------------------------------------------------
   Admin
-------------------------------------------------- */
.admin-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.admin-nav{display:flex;gap:10px;flex-wrap:wrap}.admin-nav a{padding:10px 14px;border-radius:999px;background:#f8fafc;border:1px solid #e5e7eb;font-weight:600}

@media (max-width: 900px){.event-row,.event-detail-top,.grid-2,.grid-3,.inline-info{grid-template-columns:1fr}.logo-title{font-size:28px}.header-box,.footer-box{flex-direction:column;align-items:flex-start}.footer-right{text-align:left}}


/* ===== FIX BUTTON INVOICE ===== */

.invoice-actions .btn {
  color: #fff !important;
  border: none !important;
}

/* Tombol WA */
.btn-whatsapp {
  background: #25D366 !important;
  color: #fff !important;
  box-shadow: 0 12px 28px rgba(37, 211, 102, 0.3);
}

.btn-whatsapp:hover {
  background: #1ebe5d !important;
  transform: translateY(-2px);
}

/* Tombol Konfirmasi */
.btn-confirm-payment {
  background: #1e293b !important; /* dark */
  color: #fff !important;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.3);
}

.btn-confirm-payment:hover {
  background: #0f172a !important;
  transform: translateY(-2px);
}

/* Tombol Tutup */
.btn-secondary {
  background: #374151 !important;
  color: #fff !important;
}

.btn-secondary:hover {
  background: #1f2937 !important;
}

/* Layout tombol */
.invoice-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}


/* --------------------------------------------------
   Admin Orders Compact Table + Proof Modal
-------------------------------------------------- */
.admin-orders-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
  flex-wrap:wrap;
}
.admin-orders-sub{font-size:13px}
.admin-order-notice-wrap{display:flex;align-items:center}
.admin-order-notice{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:999px;
  background:#fff7ed;
  border:1px solid #fdba74;
  color:#9a3412;
  font-size:13px;
  font-weight:700;
  box-shadow:0 8px 22px rgba(154,52,18,.08);
}
.admin-order-notice.is-ok{
  background:#ecfdf5;
  border-color:#86efac;
  color:#166534;
}
.notice-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  background:currentColor;
  display:inline-block;
}
.table-orders{
  font-size:13px;
}
.table-orders th{
  font-size:12px;
  letter-spacing:.2px;
  color:#475569;
  font-weight:700;
  white-space:nowrap;
}
.table-orders td{
  font-size:13px;
  line-height:1.45;
  padding:10px 12px;
}
.row-needs-attention{
  background:#fffaf0;
}
.order-code{
  font-weight:800;
  color:#0f172a;
}
.order-date,
.buyer-phone,
.buyer-email,
.event-name-cell + .muted{
  font-size:11.5px;
}
.buyer-name,
.event-name-cell,
.price-cell{
  font-weight:700;
}
.status-chip{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  font-size:11.5px;
  font-weight:700;
  border:1px solid transparent;
  white-space:nowrap;
}
.status-pending{
  background:#eff6ff;
  color:#1d4ed8;
  border-color:#bfdbfe;
}
.status-verification{
  background:#fff7ed;
  color:#c2410c;
  border-color:#fdba74;
}
.status-paid{
  background:#ecfdf5;
  color:#15803d;
  border-color:#86efac;
}
.status-used{
  background:#f3e8ff;
  color:#7e22ce;
  border-color:#d8b4fe;
}
.status-expired{
  background:#fef2f2;
  color:#b91c1c;
  border-color:#fecaca;
}
.checkin-done{
  background:#ecfdf5;
  color:#166534;
  border-color:#86efac;
}
.checkin-wait{
  background:#f8fafc;
  color:#475569;
  border-color:#cbd5e1;
}
.mini-alert{
  margin-top:6px;
  font-size:11px;
  color:#c2410c;
  font-weight:700;
}
.proof-link{
  color:#0f172a;
  font-weight:700;
  font-size:12.5px;
  text-decoration:underline;
}
.wa-cell{
  min-width:110px;
}
.wa-mini-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 10px;
  border-radius:999px;
  background:#ecfdf5;
  border:1px solid #86efac;
  color:#166534;
  font-size:11.5px;
  font-weight:700;
  margin-bottom:6px;
}
.wa-mini-btn:hover{
  background:#dcfce7;
}
.wa-eticket{
  background:#eff6ff;
  border-color:#93c5fd;
  color:#1d4ed8;
}
.wa-eticket:hover{
  background:#dbeafe;
}
.action-cell{
  min-width:110px;
}
.action-link{
  display:inline-block;
  margin-right:8px;
  margin-bottom:6px;
  font-size:12px;
  font-weight:700;
}
.action-link.success{color:#15803d}
.action-link.warn{color:#c2410c}
.action-link.danger{color:#b91c1c}

.proof-modal{
  position:fixed;
  inset:0;
  display:none;
  z-index:9999;
}
.proof-modal.is-open{
  display:block;
}
.proof-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.6);
  backdrop-filter:blur(2px);
}
.proof-modal-dialog{
  position:relative;
  width:min(920px, calc(100vw - 32px));
  max-height:calc(100vh - 40px);
  margin:20px auto;
  background:#fff;
  border-radius:24px;
  box-shadow:0 30px 80px rgba(15,23,42,.35);
  overflow:hidden;
  z-index:2;
}
.proof-modal-title{
  padding:18px 24px 0;
  font-size:18px;
  font-weight:800;
  color:#0f172a;
}
.proof-modal-body{
  padding:20px 24px 24px;
  max-height:calc(100vh - 100px);
  overflow:auto;
}
.proof-modal-close{
  position:absolute;
  top:12px;
  right:14px;
  width:38px;
  height:38px;
  border:none;
  border-radius:999px;
  background:#f8fafc;
  color:#0f172a;
  font-size:24px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 6px 16px rgba(15,23,42,.12);
}
.proof-image{
  display:block;
  max-width:100%;
  height:auto;
  margin:0 auto;
  border-radius:18px;
  border:1px solid #e5e7eb;
}
.proof-frame{
  width:100%;
  min-height:72vh;
  border:none;
  border-radius:14px;
  background:#fff;
}
body.modal-open{
  overflow:hidden;
}

@media (max-width: 900px){
  .table-orders{
    min-width:1080px;
  }
}


/* =====================================================
   GLOBAL RESPONSIVE PATCH - MOBILE & TABLET FRIENDLY
===================================================== */

/* Base container */
.container{
  width:min(1180px, calc(100% - 24px));
  margin-inline:auto;
}

/* Header / navigation */
.site-header,
.header-inner,
.topbar,
.navbar{
  flex-wrap:wrap;
}

.site-header .logo,
.header-logo{
  max-width:100%;
}

.nav-menu,
.main-menu,
.admin-menu,
.top-menu{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

/* Generic cards and tables */
.card,
.form-box,
.invoice-box,
.table-card,
.detail-card{
  border-radius:18px;
}

.orders-table-wrap,
.table-responsive,
.table-scroll{
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}

/* Frontpage event list */
.event-row,
.event-item,
.home-event-item{
  display:grid;
  grid-template-columns:minmax(220px, 320px) 1fr;
  gap:18px;
  align-items:start;
}

.event-row img,
.event-item img,
.home-event-item img{
  width:100%;
  height:auto;
  border-radius:16px;
  display:block;
}

/* Event detail / ticket area */
.event-detail-grid,
.detail-grid-main,
.ticket-layout{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:20px;
  align-items:start;
}

/* Forms */
form .input,
form input[type="text"],
form input[type="number"],
form input[type="email"],
form input[type="password"],
form input[type="file"],
form textarea,
form select{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}

.invoice-actions,
.admin-nav,
.form-actions,
.action-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.invoice-actions .btn,
.admin-nav .btn,
.form-actions .btn,
.action-row .btn{
  min-height:44px;
}

/* Ticket chooser */
.ticket-item,
.ticket-box,
.ticket-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:14px;
  align-items:center;
}

/* Crew and auth */
.login-box,
.crew-box,
.auth-box{
  width:min(560px, 100%);
  margin-inline:auto;
}

/* Tablet */
@media (max-width:1024px){
  .container{
    width:min(100%, calc(100% - 20px));
  }

  .event-row,
  .event-item,
  .home-event-item{
    grid-template-columns:260px 1fr;
    gap:16px;
  }

  .event-detail-grid,
  .detail-grid-main,
  .ticket-layout{
    grid-template-columns:1fr;
  }
}

/* Mobile */
@media (max-width:768px){
  .container{
    width:calc(100% - 16px);
  }

  .title-lg{
    font-size:22px;
    line-height:1.25;
  }

  .title-xl,
  h1{
    font-size:26px;
    line-height:1.2;
  }

  .event-row,
  .event-item,
  .home-event-item{
    grid-template-columns:1fr;
    gap:14px;
  }

  .ticket-item,
  .ticket-box,
  .ticket-row{
    grid-template-columns:1fr;
    align-items:start;
  }

  .invoice-actions .btn,
  .admin-nav .btn,
  .form-actions .btn,
  .action-row .btn{
    width:100%;
    justify-content:center;
  }

  .table-tools,
  .toolbar,
  .filter-bar{
    flex-direction:column;
    align-items:stretch;
  }

  .table-tools form,
  .toolbar form,
  .filter-bar form{
    width:100%;
  }

  .compact-input{
    min-width:100% !important;
  }

  .proof-modal{
    padding:12px;
  }

  .proof-body iframe{
    height:65vh;
  }
}

/* Small mobile */
@media (max-width:480px){
  .container{
    width:calc(100% - 12px);
  }

  .card,
  .form-box,
  .invoice-box,
  .table-card,
  .detail-card{
    border-radius:14px;
  }

  .title-lg{
    font-size:20px;
  }

  .orders-table thead th,
  .orders-table tbody td{
    font-size:11px;
  }
}
