/* =============================================
   GJCM Pro v2 — Unified CSS
   ============================================= */
@import url('https://fonts.googleapis.com/css2?family=Hind+Siliguri:wght@400;500;600;700&display=swap');
:root{
  --p:#667eea;--p2:#764ba2;--ok:#27ae60;--err:#e74c3c;--warn:#f39c12;
  --bg:#f8f9fa;--card:#fff;--bdr:#e0e0e0;--txt:#333;--muted:#777;
  --r:10px;--sh:0 2px 12px rgba(0,0,0,.08);--sh2:0 8px 24px rgba(0,0,0,.14);
}
*{box-sizing:border-box}

/* ======= AUTH / LOGIN ======= */
.gjcm2-auth-wrap{max-width:460px;margin:40px auto;padding:0 16px;font-family:'Hind Siliguri',sans-serif}
.gjcm2-auth-card{background:#fff;border-radius:16px;box-shadow:0 10px 40px rgba(102,126,234,.18);overflow:hidden}
.gjcm2-tabs{display:flex;background:var(--bg);border-bottom:1px solid var(--bdr)}
.gjcm2-tab{flex:1;padding:14px;border:none;background:none;font-size:15px;font-weight:600;color:var(--muted);cursor:pointer;transition:.2s;font-family:inherit}
.gjcm2-tab.active{background:#fff;color:var(--p);border-bottom:3px solid var(--p)}
.gjcm2-tab-content{display:none;padding:32px}
.gjcm2-tab-content.active{display:block}
.gjcm2-logo{font-size:48px;text-align:center;margin-bottom:8px}
.gjcm2-auth-card h2{text-align:center;font-size:22px;margin:0 0 4px;color:var(--txt);font-family:inherit}
.gjcm2-sub{text-align:center;color:var(--muted);font-size:14px;margin-bottom:24px}
.gjcm2-field{margin-bottom:16px}
.gjcm2-field label{display:block;font-size:13px;font-weight:700;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.4px}
.gjcm2-field input{width:100%;padding:12px 14px;border:2px solid var(--bdr);border-radius:8px;font-size:15px;font-family:inherit;transition:.2s;outline:none}
.gjcm2-field input:focus{border-color:var(--p);box-shadow:0 0 0 3px rgba(102,126,234,.12)}
.gjcm2-pass-wrap{position:relative}
.gjcm2-pass-wrap input{padding-right:44px}
.gjcm2-eye{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:18px;padding:0}
.gjcm2-forgot{font-size:13px;color:var(--p);text-decoration:none}
.gjcm2-forgot:hover{text-decoration:underline}
.gjcm2-submit-btn{width:100%;padding:14px;background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;border:none;border-radius:9px;font-size:16px;font-weight:700;cursor:pointer;font-family:inherit;transition:.2s}
.gjcm2-submit-btn:hover{transform:translateY(-2px);box-shadow:0 5px 16px rgba(102,126,234,.4)}
.gjcm2-reg-btn{background:linear-gradient(135deg,#11998e,#38ef7d)}
.gjcm2-alert{margin:16px 16px 0;padding:12px 16px;border-radius:8px;font-size:14px;font-weight:600}
.gjcm2-ok{background:#eafaf1;color:#1a7a40;border-left:4px solid var(--ok)}
.gjcm2-err{background:#fdecea;color:#a93226;border-left:4px solid var(--err)}

/* ======= MY ACCOUNT ======= */
.gjcm2-account-wrap{font-family:'Hind Siliguri',sans-serif;max-width:900px;margin:0 auto}
.gjcm2-profile-header{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;border-radius:14px;padding:24px;margin-bottom:22px}
.gjcm2-avatar{width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;flex-shrink:0}
.gjcm2-profile-header h2{margin:0;font-size:20px}
.gjcm2-profile-header p{margin:4px 0 0;opacity:.85;font-size:14px}
.gjcm2-logout-btn{margin-left:auto;background:rgba(255,255,255,.2);color:#fff;padding:8px 18px;border-radius:7px;text-decoration:none;font-size:13px;font-weight:600;border:1px solid rgba(255,255,255,.3);flex-shrink:0}
.gjcm2-logout-btn:hover{background:rgba(255,255,255,.35);color:#fff}
.gjcm2-acc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}
.gjcm2-acc-stat{background:#fff;border:1px solid var(--bdr);border-radius:10px;padding:18px;text-align:center;box-shadow:var(--sh)}
.gjcm2-acc-stat .n{display:block;font-size:28px;font-weight:700;color:var(--p)}
.gjcm2-acc-stat span:last-child{font-size:13px;color:var(--muted)}
.gjcm2-acc-tabs{display:flex;gap:6px;margin-bottom:20px;flex-wrap:wrap}
.gjcm2-acc-tab{padding:10px 22px;border:2px solid var(--bdr);border-radius:30px;background:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:.2s;font-family:inherit;color:var(--txt)}
.gjcm2-acc-tab.active{background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;border-color:transparent}
.gjcm2-acc-section{display:none}
.gjcm2-acc-section.active{display:block}
.gjcm2-mini-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.gjcm2-mini-card{background:#fff;border:1px solid var(--bdr);border-radius:10px;padding:16px;transition:.2s}
.gjcm2-mini-card:hover{box-shadow:var(--sh2);transform:translateY(-2px)}
.gjcm2-mini-card.expired{opacity:.7}
.gjcm2-mini-title a{font-size:14px;font-weight:700;color:var(--txt);text-decoration:none;line-height:1.4;display:block;margin-bottom:8px}
.gjcm2-mini-title a:hover{color:var(--p)}
.gjcm2-mini-meta{font-size:12px;color:var(--muted);margin-bottom:10px}
.gjcm2-mini-meta span{margin-right:10px}
.gjcm2-mini-btns{display:flex;gap:6px;flex-wrap:wrap}
.gjcm2-mb{padding:5px 12px;border-radius:20px;font-size:12px;font-weight:600;text-decoration:none;background:var(--bg);color:var(--txt);border:1px solid var(--bdr);cursor:pointer}
.gjcm2-mb:hover{background:var(--p);color:#fff;border-color:var(--p)}
.gjcm2-mb.gjcm2-mb-apply{background:var(--p);color:#fff;border-color:var(--p)}

/* ======= REMINDER LIST ======= */
.gjcm2-reminder-list{display:flex;flex-direction:column;gap:12px}
.gjcm2-reminder-item{background:#fff;border:1px solid var(--bdr);border-radius:10px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.gjcm2-rem-title{font-weight:700;color:var(--txt);text-decoration:none;font-size:14px}
.gjcm2-rem-title:hover{color:var(--p)}
.gjcm2-rem-meta{font-size:12px;color:var(--muted);margin-top:4px}
.gjcm2-del-rem{background:#fdecea;color:var(--err);border:none;border-radius:6px;padding:6px 12px;cursor:pointer;font-size:13px;flex-shrink:0}

/* ======= SINGLE CIRCULAR ======= */
.gjcm2-single{font-family:'Hind Siliguri',sans-serif;background:#fff;border-radius:14px;padding:26px;box-shadow:var(--sh);margin-bottom:28px;border:1px solid var(--bdr)}
.gjcm2-badge{display:inline-block;padding:5px 16px;border-radius:20px;font-size:12px;font-weight:700;margin-bottom:18px;text-transform:uppercase;letter-spacing:.5px}
.gjcm2-badge.act{background:#eafaf1;color:#1a7a40}
.gjcm2-badge.exp{background:#fdecea;color:#a93226}
.gjcm2-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:20px}
.gjcm2-info{background:var(--bg);border-radius:8px;padding:12px 14px}
.gjcm2-info small{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.gjcm2-info strong{display:block;font-size:14px;margin-top:3px}

/* ======= COUNTDOWN ======= */
.gjcm2-countdown{background:linear-gradient(135deg,#fff3e0,#fff8e1);border:1px solid #ffe0b2;border-radius:10px;padding:18px;margin-bottom:20px;text-align:center}
.gjcm2-cd-lbl{font-size:13px;color:var(--muted);margin-bottom:12px;font-weight:600}
.gjcm2-cd-boxes{display:flex;justify-content:center;align-items:center;gap:8px}
.gjcm2-cd-b{display:flex;flex-direction:column;align-items:center}
.gjcm2-cd-n{display:block;background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;font-size:26px;font-weight:700;width:60px;height:60px;line-height:60px;text-align:center;border-radius:9px;box-shadow:0 3px 10px rgba(102,126,234,.3)}
.gjcm2-cd-b small{font-size:11px;color:var(--muted);margin-top:4px}
.gjcm2-cd-sep{font-size:24px;font-weight:700;color:var(--p);align-self:flex-start;padding-top:13px}

/* ======= ACTION BUTTONS ======= */
.gjcm2-action-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:4px}
.gjcm2-btn{display:inline-flex;align-items:center;gap:6px;padding:11px 20px;border-radius:8px;font-size:14px;font-weight:600;text-decoration:none;border:none;cursor:pointer;transition:.22s;font-family:inherit}
.gjcm2-btn-dl{background:var(--ok);color:#fff}
.gjcm2-btn-apply{background:var(--p);color:#fff}
.gjcm2-btn-bm{background:var(--bg);color:var(--txt);border:2px solid var(--bdr)}
.gjcm2-btn-bm.active{background:#fff3cd;border-color:var(--warn);color:var(--warn)}
.gjcm2-btn-applied{background:var(--bg);color:var(--txt);border:2px solid var(--bdr)}
.gjcm2-btn-applied.active{background:#eafaf1;border-color:var(--ok);color:var(--ok)}
.gjcm2-btn-rem{background:var(--bg);color:var(--txt);border:2px solid var(--bdr)}
.gjcm2-btn-rem.active{background:#e8f4fd;border-color:#2980b9;color:#2980b9}
.gjcm2-btn-login-hint{background:var(--bg);color:var(--muted);border:2px dashed var(--bdr);font-size:13px}
.gjcm2-btn:hover{transform:translateY(-2px);box-shadow:var(--sh)}

/* ======= REMINDER BOX ======= */
.gjcm2-rem-box{background:#e8f4fd;border:1px solid #bee3f8;border-radius:8px;padding:16px;margin-top:10px;width:100%}
.gjcm2-rem-box label{display:block;font-size:13px;font-weight:700;color:#1a5276;margin-bottom:8px}
.gjcm2-rem-box input[type=date]{padding:9px 12px;border:2px solid #bee3f8;border-radius:6px;font-size:14px;margin-right:8px;margin-bottom:8px}
.gjcm2-btn-rem-save{background:#2980b9;color:#fff;padding:9px 18px;border-radius:6px;border:none;font-size:13px;font-weight:700;cursor:pointer}
.gjcm2-btn-del-rem{background:#fdecea;color:var(--err);padding:9px 16px;border-radius:6px;border:none;font-size:13px;font-weight:600;cursor:pointer;margin-left:6px}

/* ======= JOBS LIST / FILTER ======= */
.gjcm2-wrap{font-family:'Hind Siliguri',sans-serif;max-width:1100px;margin:0 auto}
.gjcm2-filter{background:#fff;border:1px solid var(--bdr);border-radius:var(--r);padding:20px;margin-bottom:24px;box-shadow:var(--sh)}
.gjcm2-search-row{display:flex;gap:10px;margin-bottom:12px}
.gjcm2-input{flex:1;padding:11px 14px;border:2px solid var(--bdr);border-radius:8px;font-size:15px;font-family:inherit;transition:.2s;outline:none}
.gjcm2-input:focus{border-color:var(--p);box-shadow:0 0 0 3px rgba(102,126,234,.12)}
.gjcm2-search-btn{padding:11px 26px;background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;white-space:nowrap;transition:.2s}
.gjcm2-search-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(102,126,234,.4)}
.gjcm2-filter-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.gjcm2-sel{padding:9px 12px;border:2px solid var(--bdr);border-radius:7px;font-size:14px;font-family:inherit;background:#fff;outline:none;cursor:pointer}
.gjcm2-sel:focus{border-color:var(--p)}
.gjcm2-chk{display:flex;align-items:center;gap:6px;font-size:14px;cursor:pointer;color:var(--muted)}
.gjcm2-reset-btn{padding:9px 16px;background:var(--bg);border:2px solid var(--bdr);border-radius:7px;font-size:14px;cursor:pointer;color:var(--muted);transition:.2s}
.gjcm2-reset-btn:hover{border-color:var(--err);color:var(--err)}
.gjcm2-count{font-size:13px;color:var(--muted);margin-bottom:14px}
.gjcm2-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.gjcm2-spinner{display:inline-block;width:42px;height:42px;border:4px solid #e0e0e0;border-top-color:var(--p);border-radius:50%;animation:gspin .8s linear infinite;margin:40px auto;display:block}
@keyframes gspin{to{transform:rotate(360deg)}}

/* ======= CARD ======= */
.gjcm2-card{background:#fff;border:1px solid var(--bdr);border-radius:var(--r);padding:18px;transition:.22s;display:flex;flex-direction:column}
.gjcm2-card:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.gjcm2-card.expired{opacity:.75}
.gjcm2-min-tag{display:inline-block;background:rgba(102,126,234,.1);color:var(--p);font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;margin-bottom:8px;text-transform:uppercase;letter-spacing:.4px}
.gjcm2-card-title{font-size:15px;font-weight:700;margin:0 0 10px;line-height:1.4}
.gjcm2-card-title a{color:var(--txt);text-decoration:none}
.gjcm2-card-title a:hover{color:var(--p)}
.gjcm2-card-meta{font-size:12px;color:var(--muted);margin-bottom:8px;border-bottom:1px solid #f5f5f5;padding-bottom:8px}
.gjcm2-card-meta span{display:block;margin:2px 0}
.gjcm2-days{display:inline-block;font-size:12px;font-weight:700;padding:3px 12px;border-radius:20px;margin-bottom:8px;background:#eafaf1;color:var(--ok)}
.gjcm2-days.urgent{background:#fff3e0;color:var(--warn);animation:gpulse 1.5s infinite}
.gjcm2-days.exp-tag{background:#fdecea;color:var(--err)}
@keyframes gpulse{0%,100%{opacity:1}50%{opacity:.6}}
.gjcm2-card-exc{font-size:13px;color:var(--muted);line-height:1.55;flex:1;margin-bottom:12px}
.gjcm2-card-ft{display:flex;gap:7px;flex-wrap:wrap}
.gjcm2-cbtn{display:inline-block;padding:6px 14px;border-radius:20px;font-size:12px;font-weight:600;text-decoration:none;background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;transition:.2s}
.gjcm2-cbtn.dl{background:var(--ok)}
.gjcm2-cbtn.ap{background:#0073aa}
.gjcm2-cbtn:hover{transform:translateY(-1px);opacity:.9;color:#fff}

/* ======= SUBSCRIBE BOX ======= */
.gjcm2-sub-box{margin-top:44px;background:linear-gradient(135deg,var(--p),var(--p2));border-radius:14px;padding:2px}
.gjcm2-sub-box>div{background:#fff;border-radius:13px;padding:32px;text-align:center}
.gjcm2-sub-box h3{margin:0 0 6px;font-size:19px}
.gjcm2-sub-form{display:flex;gap:8px;max-width:500px;margin:16px auto 0;flex-wrap:wrap}
.gjcm2-sub-submit{padding:11px 22px;background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap}

/* ======= EMPTY ======= */
.gjcm2-empty{text-align:center;padding:50px 20px;color:var(--muted);font-size:15px;background:var(--bg);border-radius:var(--r)}
.gjcm2-empty small{display:block;margin-top:6px;font-size:13px}

/* ======= TOAST ======= */
.gjcm2-toast{position:fixed;bottom:20px;right:20px;z-index:99999;padding:12px 20px;border-radius:8px;font-size:14px;font-weight:600;box-shadow:0 4px 16px rgba(0,0,0,.12);max-width:300px;transition:opacity .3s;font-family:'Hind Siliguri',sans-serif}

/* ======= RESPONSIVE ======= */
@media(max-width:768px){
  .gjcm2-search-row,.gjcm2-action-row,.gjcm2-sub-form{flex-direction:column}
  .gjcm2-filter-row,.gjcm2-acc-tabs{flex-direction:column}
  .gjcm2-grid,.gjcm2-mini-grid{grid-template-columns:1fr}
  .gjcm2-profile-header{flex-wrap:wrap}
  .gjcm2-logout-btn{margin-left:0;margin-top:8px}
  .gjcm2-acc-stats{grid-template-columns:repeat(3,1fr)}
  .gjcm2-cd-n{width:50px;height:50px;line-height:50px;font-size:20px}
  .gjcm2-auth-wrap{margin:16px auto}
  .gjcm2-tab-content{padding:20px}
  .gjcm2-rem-box input[type=date]{width:100%;margin-right:0}
}
