:root{
  --green-deep:#06402B;
  --green:#0B6E4F;
  --red:#E0383B;
  --cream:#F6F1E4;
  --paper:#FBF8EF;
  --ink:#1B2420;
  --ink-soft:#5B6660;
  --line:#D9D0B8;
  --gold:#C99A3C;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Noto Sans Bengali','Space Grotesk',sans-serif;background:var(--cream);color:var(--ink);line-height:1.5;}
.mono{font-family:'JetBrains Mono',monospace;}
a{text-decoration:none;}

/* ===== NAV ===== */
nav{background:var(--green-deep);color:var(--paper);position:sticky;top:0;z-index:50;border-bottom:3px solid var(--red);}
.nav-bar{display:flex;align-items:center;justify-content:space-between;padding:14px 56px;position:relative;}
.brand{display:flex;align-items:center;gap:10px;color:var(--paper);}
.brand-mark{width:34px;height:34px;border:2px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono';font-weight:700;color:var(--gold);font-size:14px;}
.brand-logo-img{height:36px;max-width:140px;object-fit:contain;}
.brand-name{font-family:'Space Grotesk';font-weight:700;font-size:20px;letter-spacing:0.5px;}
.brand-name span{color:var(--gold);}
.nav-links{display:flex;gap:32px;align-items:center;}
.nav-links a{color:var(--paper);opacity:0.88;font-size:14.5px;}
.nav-links a:hover,.nav-links a.active{opacity:1;color:var(--gold);}
.nav-cta{display:flex;gap:12px;align-items:center;}
.nav-cta-mobile{display:none;}
.nav-user{font-size:13.5px;color:var(--gold);}
.btn{padding:9px 20px;border-radius:3px;font-size:14px;font-weight:600;border:none;cursor:pointer;font-family:'Space Grotesk','Noto Sans Bengali';display:inline-block;}
.btn-ghost{background:transparent;border:1.5px solid rgba(251,248,239,0.4);color:var(--paper);}
.btn-primary{background:var(--red);color:var(--paper);}
.btn-gold{background:var(--gold);color:var(--green-deep);}

.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;}
.hamburger span{width:24px;height:2.5px;background:var(--paper);border-radius:2px;transition:0.25s;}
.hamburger.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}

.flash-msg{padding:12px 56px;font-size:14px;font-family:'Space Grotesk';}
.flash-success{background:rgba(11,110,79,0.12);color:var(--green);}
.flash-error{background:rgba(224,56,59,0.12);color:var(--red);}

/* ===== HERO ===== */
.hero{background:radial-gradient(circle at 85% 20%, rgba(201,154,60,0.10), transparent 45%),linear-gradient(180deg, var(--green-deep) 0%, #07331F 100%);color:var(--paper);padding:70px 56px;position:relative;overflow:hidden;}
.hero-inner{display:grid;grid-template-columns:1.1fr 0.9fr;gap:48px;align-items:center;max-width:1300px;margin:0 auto;}
.eyebrow{font-family:'JetBrains Mono';font-size:12.5px;letter-spacing:3px;color:var(--gold);text-transform:uppercase;margin-bottom:18px;}
.hero h1{font-family:'Space Grotesk';font-weight:700;font-size:50px;line-height:1.12;margin-bottom:20px;}
.hero h1 em{font-style:normal;color:var(--gold);}
.hero p.lead{font-size:17px;color:rgba(251,248,239,0.78);max-width:480px;margin-bottom:32px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;}
.hero-actions .btn{padding:13px 28px;font-size:15px;}

.board{background:#08231A;border:1px solid rgba(201,154,60,0.35);border-radius:6px;padding:18px;box-shadow:0 30px 60px -25px rgba(0,0,0,0.6);}
.board-head{display:flex;justify-content:space-between;align-items:center;padding:0 6px 12px;border-bottom:1px solid rgba(251,248,239,0.12);margin-bottom:10px;}
.board-head span:first-child{font-family:'JetBrains Mono';font-size:11px;letter-spacing:2px;color:var(--gold);}
.board-head span:last-child{font-family:'JetBrains Mono';font-size:11px;color:rgba(251,248,239,0.5);}
.board-row{display:grid;grid-template-columns:1.1fr 1.6fr 1.6fr 0.9fr 0.9fr;padding:10px 6px;border-bottom:1px solid rgba(251,248,239,0.06);font-family:'JetBrains Mono';font-size:13px;align-items:center;}
.board-row.head{color:rgba(251,248,239,0.4);font-size:10.5px;letter-spacing:1.5px;padding-bottom:8px;}
.flap{background:#0E2F22;border-radius:2px;padding:3px 6px;display:inline-block;color:#F4E8C8;letter-spacing:1px;}
.status-ontime{color:#7FD99A;}
.status-board{color:var(--gold);}

/* ===== SECTION SHELL ===== */
section{padding:70px 56px;max-width:1300px;margin:0 auto;}
.section-head{margin-bottom:40px;max-width:620px;}
.section-head .eyebrow{color:var(--red);}
.section-head h2{font-family:'Space Grotesk';font-size:32px;font-weight:700;color:var(--green-deep);margin-bottom:10px;}
.section-head p{color:var(--ink-soft);font-size:15.5px;}
.sub-h{font-family:'Space Grotesk';font-size:20px;color:var(--green-deep);margin-bottom:14px;}
.empty-state{padding:30px;text-align:center;color:var(--ink-soft);background:var(--paper);border:1.5px dashed var(--line);border-radius:10px;}

/* ===== SEARCH FORM ===== */
.ticket-card{background:var(--paper);border:1.5px solid var(--line);border-radius:10px;position:relative;}
.search-panel{display:grid;grid-template-columns:repeat(3,1fr) auto;align-items:stretch;}
.field{padding:18px 22px;border-right:1px dashed var(--line);}
.field:last-of-type{border-right:none;}
.field label{display:block;font-family:'JetBrains Mono';font-size:10.5px;letter-spacing:1.5px;color:var(--ink-soft);text-transform:uppercase;margin-bottom:6px;}
.bare-input{border:none;background:transparent;font-family:'Space Grotesk';font-size:17px;font-weight:600;color:var(--ink);width:100%;outline:none;}
.swap-icon{display:flex;align-items:center;justify-content:center;color:var(--green);font-size:18px;}
.search-go{background:var(--red);color:var(--paper);border:none;padding:0 38px;font-family:'Space Grotesk';font-weight:700;font-size:15px;border-radius:0 10px 10px 0;cursor:pointer;}

/* ===== RESULT STUB ===== */
.results{margin-top:30px;display:flex;flex-direction:column;gap:16px;}
.stub{display:grid;grid-template-columns:1fr auto 200px;background:var(--paper);border:1.5px solid var(--line);border-radius:10px;overflow:hidden;}
.stub-main{padding:22px 26px;}
.stub-top{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap;}
.train-name{font-family:'Space Grotesk';font-weight:700;font-size:17px;color:var(--green-deep);}
.train-no{font-family:'JetBrains Mono';font-size:11.5px;background:var(--green-deep);color:var(--gold);padding:3px 8px;border-radius:3px;letter-spacing:1px;}
.stub-route{display:flex;align-items:center;gap:18px;}
.stub-route .time{font-family:'JetBrains Mono';font-size:22px;font-weight:700;color:var(--ink);}
.stub-route .city{font-size:12.5px;color:var(--ink-soft);margin-top:2px;}
.route-line{flex:1;height:1px;background:repeating-linear-gradient(to right,var(--line) 0,var(--line) 6px,transparent 6px,transparent 12px);position:relative;margin-top:-18px;}
.route-line::after{content:"🚆";position:absolute;left:50%;top:-12px;transform:translateX(-50%);font-size:14px;}
.coach-tags{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap;}
.tag{font-family:'JetBrains Mono';font-size:11px;padding:4px 10px;border-radius:20px;border:1px solid var(--line);color:var(--ink-soft);}
.tag.avail{border-color:var(--green);color:var(--green);background:rgba(11,110,79,0.06);}
.perforation{width:0;border-left:2px dashed var(--line);position:relative;}
.perforation::before,.perforation::after{content:"";position:absolute;left:-9px;width:18px;height:18px;background:var(--cream);border-radius:50%;}
.perforation::before{top:-9px;}
.perforation::after{bottom:-9px;}
.stub-price{background:var(--green-deep);color:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;}
.stub-price .price{font-family:'Space Grotesk';font-size:24px;font-weight:700;color:var(--gold);}
.stub-price .from{font-family:'JetBrains Mono';font-size:10px;color:rgba(251,248,239,0.6);letter-spacing:1px;}
.buy-btn{background:var(--red);color:var(--paper);border:none;padding:9px 22px;border-radius:4px;font-weight:700;font-size:13.5px;cursor:pointer;font-family:'Space Grotesk';}

/* ===== SELL ===== */
.sell-wrap{background:var(--green-deep);border-radius:14px;padding:48px;color:var(--paper);display:grid;grid-template-columns:0.9fr 1.1fr;gap:48px;}
.sell-copy h2{font-family:'Space Grotesk';font-size:30px;font-weight:700;margin-bottom:14px;}
.sell-copy p{color:rgba(251,248,239,0.72);font-size:15px;margin-bottom:22px;}
.step-list{display:flex;flex-direction:column;gap:16px;}
.step{display:flex;gap:14px;align-items:flex-start;}
.step-num{font-family:'JetBrains Mono';font-size:12px;color:var(--green-deep);background:var(--gold);width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:700;}
.step-text strong{display:block;font-size:14.5px;margin-bottom:2px;}
.step-text span{font-size:13px;color:rgba(251,248,239,0.6);}

.sell-form{background:var(--paper);border-radius:10px;padding:28px;color:var(--ink);}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.form-grid .full{grid-column:1/-1;}
.form-group label{display:block;font-family:'JetBrains Mono';font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px;}
.form-group input,.form-group select{width:100%;padding:11px 12px;border:1.5px solid var(--line);border-radius:5px;background:var(--cream);font-size:14px;font-family:'Space Grotesk','Noto Sans Bengali';color:var(--ink);}
.upload-box{display:block;border:1.5px dashed var(--green);border-radius:6px;padding:18px;text-align:center;background:rgba(11,110,79,0.05);font-size:13px;color:var(--green);cursor:pointer;}
.upload-box span{display:block;font-size:11px;color:var(--ink-soft);margin-top:4px;}
.seat-chip-box{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border:1.5px solid var(--line);border-radius:5px;padding:10px 12px;background:var(--cream);}
.seat-chip{display:flex;align-items:center;gap:6px;background:var(--green-deep);color:var(--paper);font-family:'JetBrains Mono';font-size:12px;padding:5px 10px;border-radius:20px;}
.seat-chip i{font-style:normal;color:var(--gold);cursor:pointer;font-weight:700;}
.seat-input{border:none;background:transparent;outline:none;flex:1;min-width:140px;font-family:'Space Grotesk';font-size:13.5px;color:var(--ink);}
.sell-submit{margin-top:18px;width:100%;background:var(--red);color:var(--paper);border:none;padding:13px;border-radius:6px;font-weight:700;font-family:'Space Grotesk';font-size:14.5px;cursor:pointer;}
.form-error{background:rgba(224,56,59,0.1);color:var(--red);padding:10px 14px;border-radius:6px;font-size:13.5px;margin-bottom:14px;}

/* ===== FLOW ===== */
.flow{display:flex;align-items:stretch;gap:0;margin-top:10px;flex-wrap:wrap;}
.flow-step{flex:1;min-width:220px;background:var(--paper);border:1.5px solid var(--line);border-radius:10px;padding:24px;position:relative;}
.flow-step + .flow-step{margin-left:34px;}
.flow-step + .flow-step::before{content:"→";position:absolute;left:-30px;top:50%;transform:translateY(-50%);color:var(--gold);font-size:20px;font-family:'JetBrains Mono';}
.flow-icon{width:40px;height:40px;border-radius:50%;background:var(--green-deep);color:var(--gold);display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono';font-weight:700;margin-bottom:14px;font-size:14px;}
.flow-step h4{font-family:'Space Grotesk';font-size:15.5px;margin-bottom:6px;color:var(--ink);}
.flow-step p{font-size:13px;color:var(--ink-soft);}
.flow-step.pending .flow-icon{background:var(--red);}
.flow-step.success .flow-icon{background:var(--green);}

/* ===== ADMIN ===== */
.admin-mock{background:#101814;border-radius:12px;padding:0;overflow:hidden;border:1px solid #25332C;margin-bottom:10px;}
.admin-bar{background:#0B120E;padding:14px 22px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #25332C;}
.admin-bar span{font-family:'JetBrains Mono';font-size:12px;color:var(--gold);letter-spacing:1px;}
.admin-body{padding:22px;overflow-x:auto;}
.admin-row{display:grid;grid-template-columns:50px 1fr 1fr 1fr auto;align-items:center;gap:14px;padding:14px 10px;border-bottom:1px solid #1C2620;font-size:13px;color:#C9D2CC;min-width:600px;}
.admin-row.header{font-family:'JetBrains Mono';font-size:10.5px;color:#62716A;text-transform:uppercase;letter-spacing:1px;}
.thumb-img{width:40px;height:40px;border-radius:6px;object-fit:cover;border:1px solid #2C3A33;}
.pill{padding:4px 10px;border-radius:20px;font-size:11px;font-family:'JetBrains Mono';display:inline-block;}
.pill.wait{background:rgba(201,154,60,0.15);color:var(--gold);}
.row-actions{display:flex;gap:8px;}
.mini-btn{padding:6px 14px;border-radius:4px;font-size:11.5px;font-family:'Space Grotesk';font-weight:700;border:none;cursor:pointer;}
.mini-btn.approve{background:var(--green);color:var(--paper);}
.mini-btn.reject{background:transparent;color:#E0383B;border:1px solid #E0383B;}

/* ===== AUTH ===== */
.auth-section{display:flex;justify-content:center;}
.auth-card{background:var(--paper);border:1.5px solid var(--line);border-radius:12px;padding:36px;max-width:420px;width:100%;}
.auth-card h2{font-family:'Space Grotesk';font-size:26px;color:var(--green-deep);margin-bottom:18px;}
.auth-form .form-group{margin-bottom:14px;}
.auth-switch{margin-top:16px;font-size:13.5px;color:var(--ink-soft);text-align:center;}
.auth-switch a{color:var(--green);font-weight:600;}
.current-logo-preview{max-height:60px;margin-bottom:16px;}

/* ===== BUY/PAYMENT ===== */
.ticket-preview-img{max-width:280px;border-radius:8px;border:1.5px solid var(--line);}
.seat-select-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:10px;margin-top:14px;}
.seat-option{display:flex;align-items:center;gap:8px;border:1.5px solid var(--line);border-radius:6px;padding:10px;cursor:pointer;font-family:'JetBrains Mono';font-size:13px;}
.seat-option:has(input:checked){border-color:var(--green);background:rgba(11,110,79,0.06);}

.station-invalid{border-color:var(--red) !important;background:rgba(224,56,59,0.06) !important;}
.stats-strip{background:var(--paper);border-bottom:1.5px solid var(--line);}
.stats-inner{max-width:1300px;margin:0 auto;padding:0 56px;display:flex;align-items:center;justify-content:center;gap:0;}
.stat-item{flex:1;text-align:center;padding:22px 20px;}
.stat-num{font-family:'Space Grotesk';font-size:36px;font-weight:700;color:var(--green-deep);}
.stat-label{font-family:'JetBrains Mono';font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--ink-soft);margin-top:4px;}
.stat-div{width:1px;height:50px;background:var(--line);}

.admin-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:10px;}
.admin-stat-card{background:var(--paper);border:1.5px solid var(--line);border-radius:10px;padding:22px 20px;text-align:center;}
.admin-stat-card.visitor{border-color:var(--green);background:rgba(11,110,79,0.04);}
.admin-stat-card.pending{border-color:var(--gold);background:rgba(201,154,60,0.06);}
.asc-icon{font-size:24px;margin-bottom:8px;}
.asc-num{font-family:'Space Grotesk';font-size:32px;font-weight:700;color:var(--green-deep);}
.admin-stat-card.pending .asc-num{color:var(--red);}
.asc-label{font-family:'JetBrains Mono';font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-soft);margin-top:5px;}
@media(max-width:900px){.admin-stats-grid{grid-template-columns:repeat(2,1fr);}
.stats-inner{padding:0 20px;flex-wrap:wrap;}
.stat-item{flex:1;min-width:120px;}
.stat-div{display:none;}}

.whatsapp-float{
  position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;
  background:#25D366;display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 20px rgba(0,0,0,0.25);z-index:80;transition:transform 0.2s;
}
.whatsapp-float:hover{transform:scale(1.08);}

.lightbox-overlay{
  position:fixed;inset:0;background:rgba(6,64,43,0.92);z-index:200;
  display:none;align-items:center;justify-content:center;padding:30px;cursor:zoom-out;
}
.lightbox-overlay.open{display:flex;}
.lightbox-overlay img{max-width:90vw;max-height:88vh;border-radius:8px;box-shadow:0 30px 60px rgba(0,0,0,0.5);}
.thumb-img{cursor:zoom-in;}

.seat-option{position:relative;}
.amount-bar{
  display:flex;justify-content:space-between;align-items:center;
  background:var(--green-deep);color:var(--paper);padding:16px 22px;border-radius:8px;margin-top:20px;
}
.amount-bar .label{font-family:'JetBrains Mono';font-size:12px;letter-spacing:1px;color:rgba(251,248,239,0.7);}
.amount-bar .total{font-family:'Space Grotesk';font-size:24px;font-weight:700;color:var(--gold);}

.bought-ticket-thumb{width:50px;height:50px;border-radius:6px;object-fit:cover;border:1px solid var(--line);cursor:zoom-in;}

footer{background:var(--green-deep);color:rgba(251,248,239,0.55);padding:30px 56px;text-align:center;font-size:13px;border-top:3px solid var(--red);}
footer strong{color:var(--gold);}

/* ===================== MOBILE ===================== */
@media (max-width: 900px){
  .nav-bar{padding:14px 20px;}
  .hamburger{display:flex;}
  .nav-cta-desktop{display:none;}
  .nav-links{
    position:absolute;top:100%;left:0;right:0;background:var(--green-deep);
    flex-direction:column;align-items:flex-start;gap:0;
    max-height:0;overflow:hidden;transition:max-height 0.3s ease;border-bottom:3px solid var(--red);
  }
  .nav-links.open{max-height:420px;}
  .nav-links a{padding:14px 20px;width:100%;border-bottom:1px solid rgba(251,248,239,0.08);}
  .nav-cta-mobile{display:flex;flex-direction:column;gap:10px;padding:16px 20px;width:100%;}
  .nav-cta-mobile .btn{width:100%;text-align:center;}

  .hero{padding:40px 20px;}
  .hero-inner{grid-template-columns:1fr;gap:32px;}
  .hero h1{font-size:32px;}
  .hero p.lead{font-size:15px;}
  .board-row{grid-template-columns:1fr 1fr;row-gap:6px;}
  .board-row span:nth-child(3),.board-row span:nth-child(5){display:none;}

  section{padding:44px 20px;}
  .section-head h2{font-size:25px;}

  .search-panel{grid-template-columns:1fr;}
  .field{border-right:none;border-bottom:1px dashed var(--line);}
  .search-go{border-radius:0 0 10px 10px;padding:16px;}

  .stub{grid-template-columns:1fr;}
  .perforation{display:none;}
  .stub-price{flex-direction:row;justify-content:space-between;padding:16px 22px;}

  .sell-wrap{grid-template-columns:1fr;padding:24px;}
  .form-grid{grid-template-columns:1fr;}

  .flow{flex-direction:column;}
  .flow-step + .flow-step{margin-left:0;margin-top:30px;}
  .flow-step + .flow-step::before{content:"↓";left:50%;top:-26px;transform:translateX(-50%);}

  .admin-row{grid-template-columns:40px 1fr 1fr;min-width:0;}
  .admin-row span:nth-child(3),.row-actions{grid-column:1/-1;}
  .admin-body{padding:14px;}

  .ticket-preview-img{max-width:100%;}
}