:root{
  --maroon:#7b1f2d;
  --maroon-dark:#5d1720;
  --muted:#666;
  --bg:#fff8f7;
  --card:#fff;
}

*{
  box-sizing:border-box;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,"Helvetica Neue",Arial;
}

body{
  margin:0;
  background:linear-gradient(180deg,var(--bg),#fff);
  color:#222;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

/* ---------------- TOPBAR ---------------- */
.topbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:18px 24px;
  background:var(--card);
  box-shadow:0 2px 8px rgba(0,0,0,0.06);
}
.brand{display:flex;align-items:center;gap:12px}
.brand h1{margin:0;color:var(--maroon)}
.logo{width:52px;height:52px;object-fit:cover;border-radius:8px}

.actions .btn{margin-left:8px}

.container{padding:28px;flex:1}

/* ---------------- HERO ---------------- */
.hero{
  background:linear-gradient(90deg, rgba(123,31,45,0.06), rgba(123,31,45,0.02));
  padding:20px;
  border-radius:12px;
  margin-bottom:20px;
}
.hero h2{
  margin:0 0 6px 0;
  color:var(--maroon);
}

/* ---------------- MENU GRID ---------------- */
.menu-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:16px;
  margin-top:18px;
}

.card{
  background:var(--card);
  padding:12px;
  border-radius:12px;
  box-shadow:0 6px 18px rgba(0,0,0,0.06);
  display:flex;
  flex-direction:column;
  gap:8px;
}
.card img{
  width:100%;
  height:220px;
  object-fit:cover;
  border-radius:12px;
}
.card h4{margin:0}
.card p{margin:0;color:var(--muted);font-size:14px}
.card .price{font-weight:700;color:var(--maroon)}

/* ---------------- BUTTON ---------------- */
.btn{
  background:var(--maroon);
  color:#fff;
  border:none;
  padding:8px 12px;
  border-radius:10px;
  cursor:pointer;
}
.btn.small{
  padding:6px 8px;
  font-size:14px;
}
.btn.ghost{
  background:transparent;
  border:1px solid #ddd;
  color:inherit;
}

/* ---------------- MODAL ---------------- */
.modal{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,0.36);
  z-index:60;
}
.modal.hidden{display:none}
.modal-content{
  background:#fff;
  padding:18px;
  border-radius:12px;
  max-width:480px;
  width:92%;
}
.cart-footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:12px;
}
.qr{
  width:220px;
  height:220px;
  display:block;
  margin:12px auto;
}

/* ---------------- FOOTER ---------------- */
.footer{
  padding:12px;
  text-align:center;
  color:var(--muted);
  font-size:14px;
  border-top:1px solid #faf0f0;
}

/* ---------------- ADMIN ---------------- */
.admin-container{
  max-width:900px;
  margin:36px auto;
  padding:18px;
}
#login-section input{
  padding:10px;
  margin-right:8px;
  border-radius:8px;
  border:1px solid #ddd;
}
.muted{color:var(--muted)}
.admin-list .admin-item{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:8px;
  border-radius:8px;
  border:1px solid #f0f0f0;
  margin-bottom:8px;
}
.admin-item .meta{
  display:flex;
  gap:12px;
  align-items:center;
}
.input, textarea{
  width:100%;
  padding:8px;
  border-radius:8px;
  border:1px solid #ddd;
  margin-top:8px;
}

/* ---------------- BACK BUTTON ---------------- */
.btn-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #7a1f1f;
    color: #fff;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    border: none;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.1s ease;
}
.btn-back:hover {
    background: #631919;
    transform: translateY(-1px);
}
.btn-back:active {
    transform: translateY(0);
}

/* ---------------------------------------------------
   ---------------- COVER ANIMATION -------------------
------------------------------------------------------ */

#cover {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    background: var(--maroon);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: row;       /* gambar & teks sejajar */
    gap: 40px;
    z-index: 9999;

    opacity: 1;
    transition: opacity 0.8s ease-in-out;
}

#cover.fade-out {
    opacity: 0;
    pointer-events: none;
}

.cover-content h1 {
    color: #fff;
    font-size: 42px;
    margin: 0;
}

.cover-content p {
    color: #ffdede;
    font-size: 18px;
    margin-top: 6px;
}

/* Gambar cover */
.cover-img {
    width: 180px;
    height: auto;
    animation: float 2.4s ease-in-out infinite;
    filter: drop-shadow(0 6px 12px rgba(0,0,0,0.25));
}

/* Animasi blubub / floating */
@keyframes float {
    0% { transform: translateY(0); }
    50% { transform: translateY(-15px); }
    100% { transform: translateY(0); }
}
