/* ==========================
   Oja Premium Blue & Gold Theme
========================== */

:root{
    --oja-bg1:#071021;
    --oja-bg2:#0c1b35;
  
    --oja-card: rgba(255,255,255,.06);
    --oja-stroke: rgba(255,255,255,.12);
  
    --oja-text:#eaf1ff;
    --oja-muted: rgba(234,241,255,.72);
  
    --oja-blue:#3ea6ff;
    --oja-gold:#f6c453;
    --oja-gold2:#ffd966;
  
    --oja-danger:#ff5a6a;
    --oja-ok:#35d07f;
  
    --oja-radius:18px;
    --oja-shadow: 0 18px 50px rgba(0,0,0,.45);
  }
  
  body{
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    margin: 0;
    padding: 0;
    color: var(--oja-text);
  
    background:
      radial-gradient(900px 500px at 15% 10%, rgba(62,166,255,.18), transparent 55%),
      radial-gradient(800px 520px at 90% 20%, rgba(246,196,83,.14), transparent 55%),
      linear-gradient(160deg, var(--oja-bg1), var(--oja-bg2));
  }
  
  /* Container */
  .container{
    max-width: 900px;
    margin: 40px auto;
    padding: 20px;
  }
  
  /* Headings */
  h1, h2{
    text-align: center;
    color: var(--oja-gold);
    margin-bottom: 20px;
  }
  
  /* Cards */
  .card{
    background: var(--oja-card);
    border: 1px solid var(--oja-stroke);
    border-radius: var(--oja-radius);
    box-shadow: var(--oja-shadow);
  }
  
  .product-card{
    background: var(--oja-card);
    border: 1px solid var(--oja-stroke);
    border-radius: var(--oja-radius);
    box-shadow: var(--oja-shadow);
  
    padding: 30px;
    text-align: center;
    position: relative;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
  }
  .product-card:hover{
    transform: translateY(-5px);
    box-shadow: 0 24px 70px rgba(0,0,0,.55);
  }
  
  /* Text styles */
  .price{
    font-size: 1.6em;
    font-weight: 900;
    color: var(--oja-gold);
  }
  .meta, .stock{
    margin: 6px 0;
    font-weight: 700;
    color: var(--oja-muted);
  }
  
  /* Product Image */
  .product-image{
    width: 100%;
    max-width: 320px;
    display: block;
    margin: 25px auto;
    border-radius: 16px;
    box-shadow: 0 12px 35px rgba(0,0,0,.55);
    cursor: zoom-in;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
  }
  .product-image:hover{
    transform: scale(1.10);
    box-shadow: 0 28px 65px rgba(0,0,0,.65);
  }
  
  /* Sparkle Animation */
  @keyframes sparkle{
    0% { transform: scale(1); opacity: 1; }
    100% { transform: scale(1.3); opacity: 0; }
  }
  .sparkle{ display: inline-block; animation: sparkle 0.4s ease-out; }
  
  /* ==========================
     Oja Button System
  ========================== */
  .btn,
  .reserve-btn{
    appearance: none;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 14px;
    padding: 12px 18px;
    font-weight: 800;
    font-size: 1rem;
    cursor: pointer;
    transition: transform .2s ease, filter .2s ease;
  }
  
  .btn-primary,
  .reserve-btn{
    background: linear-gradient(90deg, rgba(62,166,255,.85), rgba(246,196,83,.85));
    color: #081225;
  }
  
  .btn-gold{
    background: #f6c453;
    color: #1f4d7a;
  }
  
  .btn-danger{
    background: #d9534f;
    color: #fff;
  }
  
  .btn-dark{
    background: #1f4d3a;
    color: #fff;
  }
  
  .btn:hover,
  .reserve-btn:hover{
    transform: scale(1.04);
    filter: brightness(1.05);
  }
  
  .btn:disabled,
  .reserve-btn:disabled{
    opacity: .6;
    cursor: not-allowed;
  }
  
  /* Footer / misc */
  footer{
    text-align: center;
    margin-top: 50px;
    font-size: 0.9rem;
    color: #fff;
  }
  a, button { pointer-events: auto; }


/* ==========================
   Admin override (premium light)
========================== */
body.admin {
    background:
      radial-gradient(900px 500px at 15% 10%, rgba(62,166,255,.10), transparent 55%),
      radial-gradient(800px 520px at 90% 20%, rgba(246,196,83,.08), transparent 55%),
      linear-gradient(160deg, #0b1730, #12264a);
    color: var(--oja-text);
  }
  
  /* Slightly soften cards for admin readability */
  body.admin .product-card,
  body.admin .reservation-card {
    background: rgba(255,255,255,.10);
  }
  
  /* Inputs readable on dark */
  body.admin input {
    background: rgba(255,255,255,.95);
    color: #111;
  }  
  
body.admin h1,
body.admin h2{
    color: var(--oja-gold);
}
  
  /* Make admin cards slightly brighter than public */
  body.admin .product-card{
    background: rgba(255,255,255,.10);
}

/* Force theme background everywhere (prevents old inline styles from winning) */
body,
body.admin{
  background:
    radial-gradient(900px 500px at 15% 10%, rgba(62,166,255,.12), transparent 55%),
    radial-gradient(800px 520px at 90% 20%, rgba(246,196,83,.10), transparent 55%),
    linear-gradient(160deg, #0b1730, #12264a) !important;
}

/* ==========================
   Oja Modal (Policy)
========================== */
.oja-modal{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
}

.oja-modal.show{ display: block; }

.oja-modal__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(6px);
}

.oja-modal__panel{
  position: relative;
  width: min(720px, calc(100% - 28px));
  margin: 80px auto;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--oja-radius);
  box-shadow: var(--oja-shadow);
  overflow: hidden;
}

.oja-modal__top{
  display:flex;
  justify-content: space-between;
  align-items:center;
  gap: 10px;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(255,255,255,.12);
  background: linear-gradient(90deg, rgba(62,166,255,.10), rgba(246,196,83,.08));
}

.oja-modal__title{
  font-weight: 900;
  letter-spacing: .2px;
  color: var(--oja-text);
}

.oja-modal__close{
  appearance:none;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.18);
  color: var(--oja-text);
  border-radius: 12px;
  padding: 8px 10px;
  cursor: pointer;
  font-weight: 900;
}

.oja-modal__body{
  padding: 16px;
}

.oja-modal__actions{
  padding: 14px 16px 16px 16px;
  border-top: 1px solid rgba(255,255,255,.12);
  display:flex;
  justify-content:flex-end;
}

.oja-policy p{
  margin: 10px 0;
  color: var(--oja-text);
  font-weight: 650;
  line-height: 1.6;
}

.oja-policy strong{
  color: var(--oja-gold);
}

.oja-policy__muted{
  margin-top: 14px;
  color: var(--oja-muted) !important;
  font-weight: 750;
}
