/* =========================================================
   MEMBER.CSS (FULL UPDATED)
   - RESPONSIVE: MOBILE / TABLET / WEB
   - VERIFY MODAL: NO SCROLL
   - ID CARD: NORMAL SIZE + AUTO SHRINK TO FIT (NO OVERFLOW)
   - STAMP: INSIDE ID CARD (LOWER-LEFT)
   - NEW: STATUS PILL (ACTIVE=GREEN, RENEWAL=ORANGE)
   - FIX: ID CARD HAS VISIBLE BORDER (ALWAYS) + STATUS BORDER COLOR
   - NEW: OUTER ID FRAME (LIKE YOUR SCREENSHOT) VIA .id-shell
========================================================= */

/* ================= RESET ================= */
*{margin:0;padding:0;box-sizing:border-box}

/* ================= THEME TOKENS ================= */
:root{
  --bg:#f6f7fb;
  --text:#0b0f1a;
  --muted:rgba(11,15,26,.65);

  --glass:rgba(255,255,255,.62);
  --glass-strong:rgba(255,255,255,.86);

  --border:rgba(15,23,42,.10);
  --border-soft:rgba(15,23,42,.06);

  --shadow-sm:0 12px 25px rgba(15,23,42,.08);
  --shadow-md:0 18px 50px rgba(15,23,42,.10);
  --shadow-lg:0 28px 80px rgba(15,23,42,.16);

  --radius:28px;
  --radius-md:22px;
  --radius-sm:16px;

  --accent:#ffcc00;
  --accent2:#ff4c4c;

  --blue:#1a3e6f;
  --blue-dark:#0a2e5d;

  --ring:0 0 0 6px rgba(255,204,0,.16);
  --ring-blue:0 0 0 6px rgba(26,62,111,.14);
}

/* ================= BASE ================= */
html, body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}
body{
  font-family:"Inter",sans-serif;
  color:var(--text);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

/* ================= PAGE HEADER (NO GRADIENT) ================= */
.page-header{
  padding:100px 20px;
  text-align:center;
  color:#fff;
  position:relative;
  overflow:hidden;
  background:#0b0b0b;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.page-header::before{
  content:"";
  position:absolute;
  inset:-220px;
  background:
    radial-gradient(circle at 25% 20%, rgba(255,204,0,.30), transparent 46%),
    radial-gradient(circle at 80% 15%, rgba(255,76,76,.26), transparent 50%),
    radial-gradient(circle at 55% 40%, rgba(31,64,104,.24), transparent 56%);
  filter:blur(38px);
  opacity:.62;
}
.page-header h1{
  position:relative;
  font-family:"Merriweather",serif;
  font-size:clamp(40px,5vw,62px);
  line-height:1.05;
  font-weight:900;
  margin-bottom:14px;
  letter-spacing:.2px;
  text-shadow:0 18px 60px rgba(0,0,0,.45);
}
.page-header p{
  position:relative;
  max-width:920px;
  margin:0 auto;
  font-size:16.8px;
  line-height:1.85;
  opacity:.94;
  color:rgba(255,255,255,.90);
}

/* ================= MAIN WRAPPER ================= */
.container-guide{
  max-width:1180px;
  margin:40px auto;
  padding:0 20px;
}

/* ================= MODERN 2-COLUMN LAYOUT ================= */
.layout-modern{
  display:grid;
  grid-template-columns:1fr 392px;
  gap:22px;
  align-items:start;
  min-width:0;
}
.guide-left{
  display:flex;
  flex-direction:column;
  gap:22px;
  min-width:0;
}
.guide-right{
  position:sticky;
  top:95px;
  display:flex;
  flex-direction:column;
  gap:18px;
  min-width:0;
}

/* ================= CARDS (NO GRADIENT) ================= */
.guide-section{
  position:relative;
  background:#fff;
  border:1px solid rgba(15,23,42,.09);
  border-radius:var(--radius);
  padding:28px;
  box-shadow:var(--shadow-md);
  overflow:hidden;
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
  min-width:0;
}
.guide-section::before{
  content:"";
  position:absolute;
  inset:-120px -140px auto -140px;
  height:220px;
  background:
    radial-gradient(circle at 35% 55%, rgba(255,204,0,.18), transparent 55%),
    radial-gradient(circle at 70% 50%, rgba(31,64,104,.12), transparent 58%);
  filter:blur(18px);
  opacity:.7;
  pointer-events:none;
}
.guide-section:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-lg);
  border-color:rgba(15,23,42,.12);
}
.guide-section h2{
  position:relative;
  font-family:"Merriweather",serif;
  font-size:26px;
  font-weight:900;
  margin-bottom:12px;
  display:flex;
  align-items:center;
  gap:10px;
}
.guide-section h2 i{color:var(--blue);opacity:.95}
.guide-section p{
  position:relative;
  color:var(--muted);
  line-height:1.85;
  font-size:15.7px;
  margin-bottom:10px;
  word-break:break-word;
  overflow-wrap:anywhere;
}

/* ================= LISTS ================= */
.list{
  margin-top:12px;
  padding-left:22px;
  line-height:2;
  font-size:15.2px;
  color:rgba(11,15,26,.72);
}
.steps{
  margin-top:10px;
  padding-left:18px;
  font-size:15px;
  line-height:2.05;
  color:rgba(11,15,26,.70);
}

/* ================= BENEFITS GRID ================= */
.grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(210px, 1fr));
  gap:16px;
  margin-top:16px;
  min-width:0;
}
.card{
  background:#fff;
  border:1px solid rgba(15,23,42,.07);
  border-radius:22px;
  padding:18px 18px 16px;
  box-shadow:0 10px 22px rgba(15,23,42,.07);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  min-width:0;
}
.card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 46px rgba(15,23,42,.12);
  border-color:rgba(15,23,42,.11);
}
.card h3{
  font-size:16px;
  font-weight:900;
  margin-bottom:6px;
  display:flex;
  align-items:center;
  gap:8px;
}
.card h3 i{color:var(--blue)}
.card p{
  font-size:14.2px;
  line-height:1.7;
  color:rgba(11,15,26,.62);
  word-break:break-word;
  overflow-wrap:anywhere;
}

/* ================= NOTE (NO GRADIENT) ================= */
.note{
  margin-top:14px;
  padding:14px 16px;
  border-radius:18px;
  background:rgba(255,204,0,.14);
  border:1px solid rgba(255,204,0,.28);
  color:rgba(70,52,0,.98);
  font-size:14.6px;
  line-height:1.7;
  word-break:break-word;
  overflow-wrap:anywhere;
}

/* ================= RIGHT CARDS (NO GRADIENT) ================= */
.verify-card,
.login-card{
  background:#fff;
  border:1px solid rgba(15,23,42,.09);
  border-radius:var(--radius);
  padding:22px;
  box-shadow:var(--shadow-md);
  overflow:hidden;
  position:relative;
}
.verify-card::before,
.login-card::before{
  content:"";
  position:absolute;
  inset:-120px -130px auto -130px;
  height:200px;
  background:
    radial-gradient(circle at 35% 55%, rgba(255,204,0,.16), transparent 58%),
    radial-gradient(circle at 70% 50%, rgba(31,64,104,.10), transparent 60%);
  filter:blur(18px);
  opacity:.75;
  pointer-events:none;
}

.verify-card h2,
.login-card h2{
  position:relative;
  font-family:"Merriweather",serif;
  font-size:22px;
  font-weight:900;
  margin-bottom:8px;
  display:flex;
  align-items:center;
  gap:10px;
}
.verify-card h2 i,
.login-card h2 i{color:var(--blue)}
.verify-card p,
.login-card p{
  position:relative;
  color:rgba(11,15,26,.65);
  line-height:1.65;
  font-size:14.8px;
}

/* ================= VERIFY FORM ================= */
.modern-search{
  position:relative;
  display:flex;
  gap:10px;
  margin-top:14px;
  align-items:center;
  min-width:0;
}
.modern-search input{
  flex:1;
  min-width:0;
  padding:13px 14px;
  border-radius:16px;
  border:1px solid rgba(15,23,42,.14);
  background:rgba(255,255,255,.92);
  font-size:14.6px;
  outline:none;
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.modern-search input:focus{
  border-color:rgba(255,204,0,.95);
  box-shadow:var(--ring);
  background:#fff;
}
.modern-search button{
  padding:13px 16px;
  border-radius:16px;
  border:none;
  font-weight:900;
  cursor:pointer;
  background:var(--blue);
  color:#fff;
  white-space:nowrap;
  box-shadow:0 14px 34px rgba(26,62,111,.18);
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.modern-search button:hover{
  transform:translateY(-2px);
  box-shadow:0 22px 50px rgba(26,62,111,.22);
  background:var(--blue-dark);
}

/* =========================================================
   VERIFY MODAL — NO SCROLL + CENTERED CONTENT
========================================================= */
.verify-modal{
  position:fixed;
  inset:0;
  display:none;
  justify-content:center;
  align-items:center;
  padding: max(14px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right))
           max(14px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));
  z-index:99999;
  background:rgba(0,0,0,.50);
}
.verify-modal.active{display:flex}

.verify-modal-card{
  width:100%;
  max-width:min(520px, 96vw);

  /* screenshot-like background */
  background:#f3f4f6;

  border-radius:26px;
  border:1px solid rgba(15,23,42,.10);
  box-shadow:0 30px 95px rgba(15,23,42,.26);

  padding: clamp(14px, 2.6vw, 22px);
  position:relative;
  text-align:center;

  overflow:hidden;
  max-height:min(88svh, 760px);

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;

  padding-left:26px;
  padding-right:26px;
}

.verify-close{
  position:absolute;
  top:12px;
  right:12px;
  border:none;
  width:40px;
  height:40px;
  border-radius:999px;
  cursor:pointer;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(0,0,0,.08);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  color:#333;
}
.verify-close:hover{filter:brightness(.98)}

.verify-modal-title{
  font-family:"Merriweather",serif;
  font-size:clamp(18px, 2.2vw, 22px);
  font-weight:900;
  margin-bottom:6px;
  color:#111;
}
.verify-modal-sub{
  font-size:clamp(13.2px, 1.8vw, 14.8px);
  color:rgba(11,15,26,.68);
  line-height:1.55;
  margin-bottom:8px;
}

/* content wrapper */
#verifyModalContent{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  margin:0;
  padding:0;
}

/* ================= STATUS PILL ================= */
.status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:8px 14px;
  border-radius:999px;
  font-weight:950;
  font-size:12.5px;
  letter-spacing:.6px;
  margin: 6px 0 10px;
  border:2px solid rgba(15,23,42,.10);
  background:#fff;
  box-shadow:0 10px 22px rgba(15,23,42,.08);
}
.status-active{
  border-color: rgba(34,197,94,.55);
  color: #0f5a2c;
}
.status-renewal{
  border-color: rgba(249,115,22,.70);
  color: #ff7b00;
}
.status-other{
  border-color: rgba(148,163,184,.55);
  color: rgba(15,23,42,.78);
}

/* =========================================================
   NEW: ID SHELL (OUTER FRAME LIKE YOUR SCREENSHOT)
   Works with your existing PHP because you already have:
   <div class='id-shell'>
     <div class='id-card'>...</div>
     ... stamp ...
   </div>
========================================================= */
.id-shell{
  width:min(420px, 100%);
  margin: 0 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
}

/* the outer frame/border */
.id-shell{
  padding:12px;
  border-radius:22px;
  background: rgba(255,255,255,.70);
  border:2px solid rgba(15,23,42,.14);
  box-shadow:0 18px 50px rgba(15,23,42,.12);
}

/* status-colored frame */
.status-active .id-shell,
.id-shell.status-active{
  border-color: rgba(34,197,94,.55);
  box-shadow: 0 18px 55px rgba(34,197,94,.10);
}
.status-renewal .id-shell,
.id-shell.status-renewal{
  border-color: rgba(249,115,22,.65);
  box-shadow: 0 18px 55px rgba(249,115,22,.10);
}
.status-other .id-shell,
.id-shell.status-other{
  border-color: rgba(148,163,184,.55);
  box-shadow: 0 18px 55px rgba(148,163,184,.10);
}

/* =========================================================
   ID CARD — NORMAL SIZE + AUTO SHRINK TO FIT
   FIX: VISIBLE BORDER (ALWAYS) + STATUS BORDER COLOR
========================================================= */
.id-card{
  position:relative;
  width:360px;
  max-width:100%;
  height:auto;
  aspect-ratio:360 / 228;
  border-radius:18px;
  overflow:hidden;
  background:#fff;

  /* ALWAYS-visible border */
  border:1px solid rgba(15,23,42,.18);

  box-shadow:0 10px 26px rgba(0,0,0,.16);
  margin:0; /* IMPORTANT: shell controls spacing */
  font-family:"Inter",sans-serif;
}

/* crisp inner outline without shifting layout */
.id-card::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  border:2px solid rgba(255,255,255,.45);
}

/* Status border (works if the status class is on wrapper OR on the card itself) */
.status-active .id-card,
.id-card.status-active{ border-color: rgba(34,197,94,.55); }
.status-active .id-card::after,
.id-card.status-active::after{ border-color: rgba(34,197,94,.45); }

.status-renewal .id-card,
.id-card.status-renewal{ border-color: rgba(249,115,22,.60); }
.status-renewal .id-card::after,
.id-card.status-renewal::after{ border-color: rgba(249,115,22,.50); }

.status-other .id-card,
.id-card.status-other{ border-color: rgba(148,163,184,.55); }
.status-other .id-card::after,
.id-card.status-other::after{ border-color: rgba(148,163,184,.45); }

.id-bg{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.id-number{
  position:absolute;
  top:69px;
  left:35px;
  font-size:7px;
  font-weight:900;
  letter-spacing:.6px;
  color:#111;
  text-shadow:0 1px 0 rgba(255,255,255,.6);
}
.id-last{
  position:absolute;
  top:76px;
  left:150px;
  font-size:16px;
  font-weight:900;
  letter-spacing:.7px;
  color:#111;
  white-space:nowrap;
}
.id-first{
  position:absolute;
  top:100px;
  left:119px;
  font-size:15px;
  font-weight:800;
  letter-spacing:.4px;
  color:#111;
  white-space:nowrap;
}
.id-photo{
  position:absolute;
  top:85px;
  left:14px;
  width:96px;
  height:116px;
  object-fit:cover;
  border:3px solid rgba(255,255,255,.95);
  border-radius:14px;
  background:#eee;
  box-shadow:0 10px 20px rgba(0,0,0,.12);
}

.id-info{
  position:absolute;
  top:122px;
  left:119px;
  width:214px;
  bottom:34px;
  display:flex;
  flex-direction:column;
  gap:2px;
  text-align:left;
}
.id-club{
  position:relative;
  top:2px;
  font-size:10px;
  font-weight:900;
  line-height:1.08;
  word-break:break-word;
  overflow-wrap:anywhere;
}
.id-position{
  position:relative;
  top:6px;
  font-size:10.5px;
  font-weight:900;
  line-height:1.08;
  word-break:break-word;
  overflow-wrap:anywhere;
}
.id-region{
  position:relative;
  top:11px;
  font-size:10.2px;
  font-weight:900;
  line-height:1.08;
  word-break:break-word;
  overflow-wrap:anywhere;
}

/* STAMP — INSIDE .id-shell (outside card) OR INSIDE .id-card
   If your stamp is OUTSIDE .id-card (current index.php earlier), keep this:
*/
.id-stamp-img{
  position:absolute;
  left: calc(50% - 180px + 14px); /* aligns with card's left edge */
  bottom: 14px;
  width: clamp(60px, 22%, 85px);
  height:auto;
  transform: rotate(-18deg);
  z-index:60;
  opacity:.95;
  pointer-events:none;
}

/* Make the stamp positioning safe inside the shell */
.id-shell{ position:relative; }

/* If you instead move stamp INSIDE .id-card, comment the block above
   and use this (recommended):
   .id-stamp-img{
     position:absolute;
     left:14px;
     bottom:14px;
     width: clamp(60px, 22%, 85px);
     height:auto;
     transform: rotate(-18deg);
     z-index:60;
     opacity:.95;
     pointer-events:none;
   }
*/

/* ================= LOGIN/SIGNUP MODAL ================= */
.login-modal{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.58);
  align-items:center;
  justify-content:center;
  z-index:99999;
  padding: max(14px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right))
           max(14px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));
}
.login-modal.active{display:flex}

.login-modal-card{
  width:100%;
  max-width:470px;
  border-radius:24px;
  padding:22px;
  position:relative;
  background:rgba(255,255,255,.90);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border:1px solid rgba(15,23,42,.10);
  box-shadow:0 34px 110px rgba(15,23,42,.28);
  overflow:hidden;
}
.login-modal-card::before{
  content:"";
  position:absolute;
  inset:-140px -140px auto -140px;
  height:260px;
  background:
    radial-gradient(circle at 30% 50%, rgba(255,204,0,.30), transparent 58%),
    radial-gradient(circle at 70% 50%, rgba(255,76,76,.16), transparent 60%),
    radial-gradient(circle at 55% 40%, rgba(31,64,104,.14), transparent 62%);
  filter:blur(20px);
  opacity:.85;
  pointer-events:none;
}

.login-close{
  position:absolute;
  top:12px;
  right:12px;
  width:40px;
  height:40px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.08);
  background:rgba(255,255,255,.78);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:2;
}

.login-tabs{
  display:flex;
  gap:8px;
  margin-bottom:18px;
  background:rgba(15,23,42,.06);
  padding:7px;
  border-radius:18px;
  position:relative;
  z-index:1;
}
.login-tab{
  flex:1;
  padding:11px 0;
  border-radius:14px;
  border:none;
  cursor:pointer;
  font-weight:950;
  font-size:14px;
  background:transparent;
  color:rgba(11,15,26,.62);
  transition:background .18s ease, box-shadow .18s ease, color .18s ease, transform .18s ease;
}
.login-tab.active{
  background:#fff;
  color:#111;
  box-shadow:0 10px 26px rgba(0,0,0,.10);
}
.login-tab:hover{transform:translateY(-1px)}

.login-panel{display:none; position:relative; z-index:1}
.login-panel.active{display:block}

.login-title{
  font-family:"Merriweather",serif;
  font-size:28px;
  font-weight:900;
  margin:6px 0 6px;
}
.login-sub{
  margin:0 0 16px;
  color:rgba(11,15,26,.65);
  font-size:14.6px;
  line-height:1.6;
}

.login-form label{
  display:block;
  font-weight:900;
  font-size:13px;
  margin:12px 0 6px;
  color:rgba(11,15,26,.82);
}
.login-form input{
  width:100%;
  padding:14px 14px;
  border-radius:18px;
  border:1px solid rgba(15,23,42,.12);
  background:rgba(255,255,255,.92);
  outline:none;
  font-size:14.5px;
  transition:box-shadow .16s ease, border-color .16s ease, transform .16s ease, background .16s ease;
}
.login-form input:focus{
  border-color:rgba(26,62,111,.92);
  box-shadow:var(--ring-blue);
  background:#fff;
}
.login-form input::placeholder{color:rgba(11,15,26,.42)}

.password-wrap{display:flex; gap:10px; align-items:center}
.password-wrap input{flex:1; min-width:0}
.toggle-pass{
  width:48px;
  height:48px;
  border-radius:18px;
  border:1px solid rgba(15,23,42,.12);
  background:rgba(255,255,255,.92);
  cursor:pointer;
  transition:transform .12s ease, background .12s ease, box-shadow .12s ease;
}
.toggle-pass:hover{
  transform:translateY(-1px);
  background:#fff;
  box-shadow:0 14px 26px rgba(15,23,42,.10);
}

.login-submit{
  width:100%;
  margin-top:16px;
  padding:14px 16px;
  border:none;
  border-radius:18px;
  background:var(--blue);
  color:#fff;
  font-weight:1000;
  letter-spacing:.2px;
  cursor:pointer;
  box-shadow:0 18px 52px rgba(26,62,111,.18);
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.login-submit:hover{
  transform:translateY(-2px);
  box-shadow:0 28px 78px rgba(26,62,111,.22);
  background:var(--blue-dark);
}

.login-alert{
  margin-top:14px;
  padding:12px 14px;
  border-radius:18px;
  font-weight:900;
  font-size:14px;
  text-align:center;
  border:1px solid rgba(15,23,42,.10);
}
.login-alert.error{background:rgba(255,135,126,.18); color:#8b1d16}
.login-alert.success{background:rgba(128,212,131,.18); color:#1e6b2f}

/* ================= RESPONSIVE ================= */
@media (max-width:980px){
  .layout-modern{grid-template-columns:1fr}
  .guide-right{position:relative; top:unset}
  .modern-search{flex-direction:column; align-items:stretch}
  .modern-search button{width:100%}
}

@media (max-width:420px){
  .verify-modal-card{
    padding-left:18px;
    padding-right:18px;
  }

  .id-shell{ padding:10px; }

  /* keep stamp aligned with card */
  .id-stamp-img{
    left: calc(50% - (min(360px, 100%) / 2) + 14px);
    bottom: 12px;
    width:72px;
  }
}

/* short screens (landscape phones): keep everything fitting */
@media (max-height:720px){
  .verify-modal-sub{ margin-bottom:6px; }
}
@media (max-height:640px){
  .verify-modal-title{ margin-bottom:4px; }
  .verify-modal-sub{ font-size:13px; line-height:1.45; }
}