/* RideGo Cab Booking — Frontend Styles */
:root{
  --rg-blue:#1A3C8F;--rg-blue-dark:#112870;--rg-blue-light:#EEF3FB;
  --rg-blue-mid:#2B5BE0;--rg-amber:#F59E0B;--rg-amber-light:#FEF3C7;
  --rg-red:#EF4444;--rg-pink:#FDF2F8;--rg-pink-b:#E879B0;
  --rg-bg:#F5F7FC;--rg-white:#fff;--rg-text:#131A2E;
  --rg-mid:#3A4460;--rg-muted:#7A82A0;--rg-border:#D8DCF0;
  --rg-r:12px;--rg-rs:8px;--rg-sh:0 2px 16px rgba(26,60,143,.10);
}
#ridego-app{font-family:'DM Sans',sans-serif;color:var(--rg-text);background:var(--rg-bg);margin:0 -20px}
#ridego-app *{box-sizing:border-box}

/* HERO */
.rg-hero{background:var(--rg-blue-dark);padding:40px 24px 90px;text-align:center;position:relative;overflow:hidden}
.rg-hero::before{content:'';position:absolute;top:-40px;right:-60px;width:300px;height:300px;background:rgba(43,91,224,.18);border-radius:50%}
.rg-hero::after{content:'';position:absolute;bottom:-80px;left:-40px;width:240px;height:240px;background:rgba(43,91,224,.12);border-radius:50%}
.rg-hero-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(43,91,224,.2);border:1px solid rgba(43,91,224,.4);color:#9DB8FF;padding:5px 14px;border-radius:20px;font-size:12px;font-weight:500;margin-bottom:16px}
.rg-hero-title{font-family:'Syne',sans-serif;font-size:clamp(26px,4vw,44px);font-weight:800;color:#fff;line-height:1.15;margin:0 0 10px}
.rg-hero-title span{color:#9DB8FF}
.rg-hero-sub{color:rgba(255,255,255,.6);font-size:15px;margin:0 0 28px}
.rg-hero-stats{display:flex;gap:28px;justify-content:center;flex-wrap:wrap}
.rg-stat{text-align:center}
.rg-stat-num{font-family:'Syne',sans-serif;font-size:20px;font-weight:700;color:#9DB8FF}
.rg-stat-lbl{font-size:12px;color:rgba(255,255,255,.5)}

/* SEARCH */
.rg-search-wrap{max-width:920px;margin:-48px auto 0;padding:0 16px;position:relative;z-index:10}
.rg-search-card{background:var(--rg-white);border-radius:var(--rg-r);box-shadow:0 8px 40px rgba(0,0,0,.13);padding:22px}
.rg-tabs{display:flex;gap:4px;margin-bottom:18px;background:var(--rg-bg);padding:4px;border-radius:var(--rg-rs)}
.rg-tab{flex:1;padding:8px;text-align:center;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;color:var(--rg-muted);transition:all .2s}
.rg-tab.active{background:var(--rg-white);color:var(--rg-blue);box-shadow:var(--rg-sh)}
.rg-search-row{display:grid;grid-template-columns:1fr auto 1fr 1fr 1fr auto;gap:10px;align-items:end}
.rg-sf{display:flex;flex-direction:column;gap:5px;position:relative}
.rg-sf label{font-size:11px;font-weight:500;color:var(--rg-muted);text-transform:uppercase;letter-spacing:.05em}
.rg-city-input,.rg-sf input[type=date],.rg-sf select{background:var(--rg-bg);border:1.5px solid var(--rg-border);border-radius:var(--rg-rs);padding:10px 14px;font-size:15px;font-weight:600;color:var(--rg-text);font-family:'DM Sans',sans-serif;outline:none;width:100%;transition:border-color .2s}
.rg-sf input[type=date]{font-size:13px;font-weight:500}
.rg-city-input:focus,.rg-sf input:focus,.rg-sf select:focus{border-color:var(--rg-blue)}
.rg-autocomplete{position:absolute;top:100%;left:0;right:0;background:var(--rg-white);border:1.5px solid var(--rg-border);border-radius:var(--rg-rs);box-shadow:var(--rg-sh);z-index:50;display:none}
.rg-autocomplete.open{display:block}
.rg-ac-item{padding:10px 14px;cursor:pointer;font-size:14px;border-bottom:1px solid var(--rg-bg)}
.rg-ac-item:last-child{border-bottom:none}
.rg-ac-item:hover{background:var(--rg-blue-light)}
.rg-swap-btn{width:38px;height:38px;border-radius:50%;background:var(--rg-white);border:1.5px solid var(--rg-border);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;color:var(--rg-muted);transition:all .2s;margin-bottom:2px;flex-shrink:0}
.rg-swap-btn:hover{border-color:var(--rg-blue);background:var(--rg-blue-light)}
.rg-search-btn{background:var(--rg-blue);color:#fff;border:none;padding:12px 22px;border-radius:var(--rg-rs);font-size:15px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:background .2s;white-space:nowrap;align-self:end}
.rg-search-btn:hover{background:var(--rg-blue-dark)}

/* SECTION */
.rg-section{max-width:960px;margin:0 auto;padding:48px 16px}
.rg-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.rg-section-title{font-family:'Syne',sans-serif;font-size:22px;font-weight:700;margin:0}
.rg-close-btn{background:none;border:1.5px solid var(--rg-border);padding:7px 16px;border-radius:var(--rg-rs);font-size:13px;cursor:pointer;font-family:'DM Sans',sans-serif}

/* DATE STRIP */
.rg-date-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:20px;scrollbar-width:none}
.rg-date-strip::-webkit-scrollbar{display:none}
.rg-date-pill{flex-shrink:0;padding:8px 16px;border-radius:20px;border:1.5px solid var(--rg-border);cursor:pointer;text-align:center;transition:all .2s;background:var(--rg-white)}
.rg-date-pill .rg-dp-day{font-size:11px;color:var(--rg-muted);font-weight:500}
.rg-date-pill .rg-dp-date{font-size:15px;font-weight:600}
.rg-date-pill.active{border-color:var(--rg-blue);background:var(--rg-blue-light);color:var(--rg-blue-dark)}

/* CAB CARD */
.rg-cab-card{background:var(--rg-white);border:1.5px solid var(--rg-border);border-radius:var(--rg-r);padding:18px 20px;margin-bottom:12px;transition:box-shadow .2s,border-color .2s;cursor:pointer}
.rg-cab-card:hover{box-shadow:var(--rg-sh);border-color:var(--rg-blue)}
.rg-cab-card.expanded{border-color:var(--rg-blue);box-shadow:var(--rg-sh)}
.rg-cab-top{display:grid;grid-template-columns:1fr auto 1fr auto auto;align-items:center;gap:16px}
.rg-cab-operator{display:flex;align-items:center;gap:10px}
.rg-cab-logo{width:42px;height:42px;border-radius:var(--rg-rs);background:var(--rg-blue-light);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.rg-cab-name{font-size:14px;font-weight:600}
.rg-cab-sublabel{font-size:12px;color:var(--rg-muted)}
.rg-time-block{text-align:center}
.rg-time{font-family:'Syne',sans-serif;font-size:20px;font-weight:700}
.rg-city{font-size:12px;color:var(--rg-muted)}
.rg-dur-block{display:flex;flex-direction:column;align-items:center;gap:4px}
.rg-dur-line{display:flex;align-items:center;gap:4px;width:90px}
.rg-dur-line::before,.rg-dur-line::after{content:'';flex:1;height:1.5px;background:var(--rg-border)}
.rg-dur-dot{width:6px;height:6px;border-radius:50%;background:var(--rg-blue-mid);flex-shrink:0}
.rg-dur-text{font-size:11px;color:var(--rg-muted);font-weight:500}
.rg-price-block{text-align:right}
.rg-from-lbl{font-size:11px;color:var(--rg-muted)}
.rg-price{font-family:'Syne',sans-serif;font-size:22px;font-weight:700;color:var(--rg-blue)}
.rg-seats-left{font-size:12px;font-weight:500;color:var(--rg-amber)}
.rg-cab-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.rg-tag{padding:3px 10px;border-radius:20px;font-size:11px;font-weight:500}
.rg-tag-blue{background:var(--rg-blue-light);color:var(--rg-blue)}
.rg-tag-amber{background:var(--rg-amber-light);color:#92400E}
.rg-tag-gray{background:#EDEEF5;color:var(--rg-muted)}
.rg-tag-pink{background:var(--rg-pink);color:#BE185D}
.rg-badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-left:4px}
.rg-badge-mini{background:#E0F2FE;color:#0369A1}
.rg-badge-sedan{background:var(--rg-blue-light);color:var(--rg-blue)}
.rg-badge-suv{background:#F0FDF4;color:#15803D}
.rg-badge-prime{background:#FDF4FF;color:#7E22CE}

/* SEAT PANEL */
.rg-seat-panel{display:none;border-top:1.5px dashed var(--rg-border);margin-top:16px;padding-top:16px}
.rg-cab-card.expanded .rg-seat-panel{display:grid;grid-template-columns:1fr 300px;gap:20px}
.rg-seat-panel-title{font-size:13px;font-weight:600;color:var(--rg-muted);margin-bottom:12px;text-transform:uppercase;letter-spacing:.05em}
.rg-cab-layout{background:var(--rg-bg);border-radius:var(--rg-rs);padding:16px;border:1px solid var(--rg-border)}
.rg-cab-silhouette{max-width:210px;margin:0 auto}
.rg-cab-roof{background:var(--rg-white);border:2px solid var(--rg-border);border-radius:24px 24px 18px 18px;padding:12px 10px 16px}
.rg-windshield{height:14px;background:var(--rg-blue-light);border-radius:10px 10px 4px 4px;margin-bottom:12px;border:1px solid var(--rg-border)}
.rg-interior{display:flex;flex-direction:column;gap:8px}
.rg-cab-row{display:flex;gap:8px;justify-content:center;align-items:center}
.rg-cab-row.rg-front-row{justify-content:space-between;padding:0 4px}
.rg-boot{height:10px;background:var(--rg-bg);border:1px solid var(--rg-border);border-radius:0 0 14px 14px;margin:8px -10px -16px;opacity:.5}
.rg-console{height:6px;background:var(--rg-bg);border-top:1px dashed var(--rg-border);border-bottom:1px dashed var(--rg-border);margin:0 -10px;position:relative}
.rg-console::after{content:'Console';position:absolute;left:50%;transform:translateX(-50%);top:50%;margin-top:-7px;font-size:9px;color:var(--rg-muted);background:var(--rg-bg);padding:0 6px;font-weight:500}
.rg-driver-ph{width:52px;height:48px;border-radius:8px 8px 5px 5px;background:var(--rg-bg);border:2px dashed var(--rg-border);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10px;color:var(--rg-muted);gap:2px}
.rg-seat-btn{width:52px;height:48px;border-radius:8px 8px 5px 5px;border:2px solid var(--rg-border);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;background:var(--rg-white);position:relative;font-size:10px;font-weight:700;color:var(--rg-mid);gap:2px}
.rg-seat-btn .rg-si{font-size:14px;line-height:1}
.rg-seat-btn:hover:not(.rg-booked):not(.rg-selected){border-color:var(--rg-blue);color:var(--rg-blue)}
.rg-seat-btn.rg-selected{background:var(--rg-blue);border-color:var(--rg-blue);color:#fff}
.rg-seat-btn.rg-booked{background:#EDEEF5;border-color:var(--rg-border);color:var(--rg-border);cursor:not-allowed}
.rg-seat-btn.rg-booked::after{content:'';position:absolute;width:55%;height:2px;background:var(--rg-border);transform:rotate(-45deg)}
.rg-seat-btn.rg-ladies{background:var(--rg-pink);border-color:var(--rg-pink-b);color:#BE185D}
.rg-seat-btn.rg-ladies:hover:not(.rg-booked){border-color:#BE185D;background:#FCE7F3}
.rg-seat-btn.rg-ladies.rg-selected{background:#BE185D;border-color:#BE185D;color:#fff}
.rg-seat-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px;justify-content:center}
.rg-leg-item{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--rg-muted)}
.rg-leg-box{width:13px;height:13px;border-radius:3px;border:2px solid}
.rg-leg-avail{background:var(--rg-white);border-color:var(--rg-border)}
.rg-leg-sel{background:var(--rg-blue);border-color:var(--rg-blue)}
.rg-leg-booked{background:#EDEEF5;border-color:var(--rg-border)}
.rg-leg-ladies{background:var(--rg-pink);border-color:var(--rg-pink-b)}

/* SIDEBAR */
.rg-sidebar-card{background:var(--rg-white);border:1.5px solid var(--rg-border);border-radius:var(--rg-rs);padding:14px;margin-bottom:10px}
.rg-sidebar-card h4{font-size:13px;font-weight:600;margin:0 0 10px}
.rg-sel-display{display:flex;flex-wrap:wrap;gap:5px;min-height:32px;margin-bottom:10px}
.rg-sel-badge{background:var(--rg-blue-light);color:var(--rg-blue);font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px}
.rg-none-msg{font-size:12px;color:var(--rg-muted)}
.rg-fare-row{display:flex;justify-content:space-between;font-size:13px;padding:5px 0;border-bottom:1px solid var(--rg-bg)}
.rg-fare-row:last-child{border-bottom:none}
.rg-total{font-weight:700;font-size:15px;padding-top:8px;border-top:1.5px solid var(--rg-border);margin-top:4px}
.rg-blue{color:var(--rg-blue)}
.rg-select{width:100%;background:var(--rg-bg);border:1.5px solid var(--rg-border);border-radius:var(--rg-rs);padding:8px 10px;font-size:13px;color:var(--rg-text);font-family:'DM Sans',sans-serif;outline:none}
.rg-select:focus{border-color:var(--rg-blue)}
.rg-promo-row{display:flex;gap:6px}
.rg-promo-input{flex:1;background:var(--rg-bg);border:1.5px solid var(--rg-border);border-radius:var(--rg-rs);padding:8px 10px;font-size:13px;font-family:'DM Sans',sans-serif;outline:none;color:var(--rg-text)}
.rg-promo-input:focus{border-color:var(--rg-blue)}
.rg-apply-btn{padding:8px 12px;background:none;border:1.5px solid var(--rg-border);border-radius:var(--rg-rs);font-size:12px;cursor:pointer;color:var(--rg-muted);font-family:'DM Sans',sans-serif}
.rg-apply-btn:hover{background:var(--rg-bg)}
.rg-promo-msg{font-size:12px;min-height:16px;margin-top:6px}
.rg-proceed-btn{width:100%;background:var(--rg-blue);color:#fff;border:none;padding:13px;border-radius:var(--rg-rs);font-size:14px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:background .2s;margin-top:2px}
.rg-proceed-btn:hover{background:var(--rg-blue-dark)}
.rg-proceed-btn:disabled{background:var(--rg-border);color:var(--rg-muted);cursor:not-allowed}

/* FEATURES */
.rg-features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.rg-feat-card{background:var(--rg-white);border:1.5px solid var(--rg-border);border-radius:var(--rg-r);padding:20px 16px;transition:box-shadow .2s}
.rg-feat-card:hover{box-shadow:var(--rg-sh)}
.rg-feat-icon{width:40px;height:40px;border-radius:var(--rg-rs);background:var(--rg-blue-light);display:flex;align-items:center;justify-content:center;margin-bottom:12px;font-size:18px}
.rg-feat-title{font-size:14px;font-weight:600;margin-bottom:4px}
.rg-feat-desc{font-size:12px;color:var(--rg-muted);line-height:1.5}

/* ROUTES */
.rg-routes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.rg-route-card{background:var(--rg-white);border:1.5px solid var(--rg-border);border-radius:var(--rg-r);padding:16px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:all .2s}
.rg-route-card:hover{border-color:var(--rg-blue);background:var(--rg-blue-light)}
.rg-route-cities{font-size:14px;font-weight:600}
.rg-route-detail{font-size:11px;color:var(--rg-muted);margin-top:2px}
.rg-route-price{font-size:13px;font-weight:600;color:var(--rg-blue)}

/* MODAL */
.rg-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9999;align-items:center;justify-content:center;padding:16px}
.rg-modal-overlay.open{display:flex}
.rg-modal{background:var(--rg-white);border-radius:var(--rg-r);width:100%;max-width:480px;max-height:90vh;overflow-y:auto}
.rg-modal-header{padding:20px 24px 16px;border-bottom:1px solid var(--rg-border);display:flex;justify-content:space-between;align-items:center}
.rg-modal-header h3{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;margin:0}
.rg-modal-close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--rg-muted)}
.rg-modal-body{padding:20px 24px}
.rg-trip-summary{background:var(--rg-bg);border-radius:var(--rg-rs);padding:14px;margin-bottom:18px}
.rg-trip-route{font-family:'Syne',sans-serif;font-size:16px;font-weight:700;margin-bottom:4px}
.rg-trip-detail{font-size:12px;color:var(--rg-muted)}
.rg-modal-total{font-size:15px;font-weight:700;color:var(--rg-blue);margin-top:8px}
.rg-pax-form h4{font-size:14px;font-weight:600;margin:0 0 12px}
.rg-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}
.rg-fld{display:flex;flex-direction:column;gap:4px}
.rg-fld.rg-full{grid-column:1/-1}
.rg-fld label{font-size:11px;font-weight:500;color:var(--rg-muted);text-transform:uppercase;letter-spacing:.04em}
.rg-fld input,.rg-fld select{background:var(--rg-bg);border:1.5px solid var(--rg-border);border-radius:var(--rg-rs);padding:9px 12px;font-size:13px;color:var(--rg-text);font-family:'DM Sans',sans-serif;outline:none;transition:border-color .2s}
.rg-fld input:focus,.rg-fld select:focus{border-color:var(--rg-blue)}
.rg-pay-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.rg-pay-opt{border:1.5px solid var(--rg-border);border-radius:var(--rg-rs);padding:12px 8px;text-align:center;cursor:pointer;transition:all .2s;font-size:11px;font-weight:500;color:var(--rg-mid)}
.rg-pay-opt:hover{border-color:var(--rg-blue)}
.rg-pay-opt.active{border-color:var(--rg-blue);background:var(--rg-blue-light)}
.rg-pay-icon{font-size:22px;margin-bottom:4px}
.rg-upi-section{background:var(--rg-bg);border-radius:var(--rg-rs);padding:12px;margin-bottom:14px}
.rg-upi-apps{display:flex;gap:8px;margin-top:10px}
.rg-upi-app{flex:1;border:1.5px solid var(--rg-border);border-radius:var(--rg-rs);padding:8px;text-align:center;cursor:pointer;font-size:11px;font-weight:500;color:var(--rg-mid)}
.rg-pay-btn{width:100%;background:var(--rg-blue);color:#fff;border:none;padding:14px;border-radius:var(--rg-rs);font-size:15px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:background .2s}
.rg-pay-btn:hover{background:var(--rg-blue-dark)}
.rg-secure-note{text-align:center;font-size:11px;color:var(--rg-muted);margin-top:8px}
.rg-success-icon{width:64px;height:64px;background:var(--rg-blue-light);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:28px}
.rg-ticket{background:var(--rg-bg);border-radius:var(--rg-rs);padding:16px;text-align:left;margin-bottom:20px}
.rg-ticket-row{display:flex;justify-content:space-between;font-size:13px;padding:5px 0;border-bottom:1px dashed var(--rg-border)}
.rg-ticket-row:last-child{border-bottom:none}
.rg-tl{color:var(--rg-muted)}
.rg-tv{font-weight:600}
.rg-pnr{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--rg-blue);letter-spacing:2px}
.rg-done-btn{background:var(--rg-blue);color:#fff;border:none;padding:12px 32px;border-radius:var(--rg-rs);font-size:14px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif}

@media(max-width:700px){
  #ridego-app{margin:0 -15px}
  .rg-search-row{grid-template-columns:1fr}
  .rg-swap-btn{display:none}
  .rg-cab-top{grid-template-columns:1fr 1fr;gap:10px}
  .rg-cab-card.expanded .rg-seat-panel{grid-template-columns:1fr}
  .rg-form-grid{grid-template-columns:1fr}
}
