/* City VIP Transfer - Universal Mobile Responsive Patch
   Safe override file. Does not change business logic, PHP actions, mail, payment or database. */

*{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
img,svg,video,iframe{max-width:100%}
input,select,textarea,button{font-size:16px;max-width:100%}
button,a,input,select,textarea{-webkit-tap-highlight-color:rgba(255,138,29,.18)}
.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.compact-table{border-collapse:collapse}
.compact-table th,.compact-table td{vertical-align:middle}
.nowrap,.flight-code{white-space:nowrap!important}

/* Public header */
.site-header{z-index:999;position:sticky;top:0}
.nav-wrap{min-width:0}
.brand,.brand-main{min-width:0;display:flex;align-items:center;gap:8px}
.brand img,.brand-main img{display:block;object-fit:contain;max-width:100%}
.brand-domain{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-menu a{white-space:nowrap}

/* General public layouts */
.container{max-width:1180px;width:100%;padding-left:18px;padding-right:18px;margin-left:auto;margin-right:auto}
.split-hero,.office-location-card,.map-picker-grid,.panel-preview,.footer-grid,.workflow-grid,.grid-3,.dashboard-cards,.guest-reservation-preview,.admin-two-col{min-width:0}
.booking-card,.soft-card,.dashboard-preview,.office-location-card,.vehicle-card,.workflow-card,.feature-card,.map-pane,.phone-frame{max-width:100%}
.form-grid{min-width:0}
.form-grid .field,.field{min-width:0}
.field.full,.form-grid .full{grid-column:1 / -1}
.account-links{display:flex;flex-wrap:wrap;gap:10px}
.account-links .btn,.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.location-field{min-width:0}
.tt-suggestions{max-width:100vw}
.map-canvas{min-height:320px}
.office-map-wrap iframe{width:100%}
.dashboard-preview .compact-table,.flight-live-table{min-width:840px}
.my-reservations-table,.admin-table table{min-width:860px}

/* Login pages */
.login-page{min-height:100vh;padding:18px;background:#0b1b33}
.login-card{width:min(420px,calc(100vw - 28px));max-width:100%;margin:0 auto;border-radius:20px}
.login-logo{height:auto;max-height:72px;object-fit:contain}
.login-card .form-grid{display:grid;grid-template-columns:1fr!important}
.login-card .btn{width:100%}
.login-hint{line-height:1.8}

/* Payment / iyzico */
.iyzico-card-holder,#city-iyzico-form-wrapper,#iyzipay-checkout-form{max-width:100%;overflow:visible!important}
#iyzipay-checkout-form iframe{max-width:100%!important}

/* Admin / partner / driver panel universal */
.admin-body{min-width:0;max-width:100%;overflow-x:hidden}
.admin-sidebar{z-index:1000}
.admin-sidebar nav a{white-space:nowrap}
.admin-main{min-width:0;max-width:100%}
.admin-topbar{gap:10px}
.admin-table{max-width:100%;overflow:hidden}
.admin-table .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.admin-table .compact-table{min-width:900px}
.admin-form-card{min-width:0}
.action-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.small-btn,.danger-btn{min-height:36px;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.admin-main input,.admin-main select,.admin-main textarea,.admin-main button{font-size:16px}
.filter-bar,.filters,.admin-filters,.booking-filters{display:flex;flex-wrap:wrap;gap:12px}
.filter-bar .field,.filters .field,.admin-filters .field,.booking-filters .field{min-width:180px;flex:1}
.detail-grid{min-width:0}

/* Medium screens */
@media (max-width: 1100px){
    .nav-wide{padding-left:16px;padding-right:16px}
    .split-hero{grid-template-columns:1fr!important;gap:28px!important}
    .booking-card{width:100%}
    .office-location-card{grid-template-columns:1fr!important}
    .panel-preview{grid-template-columns:1fr!important;gap:24px}
    .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))!important}
    .workflow-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* Phones */
@media (max-width: 768px){
    body{font-size:15px}
    .container{padding-left:14px;padding-right:14px}
    .section{padding-top:34px!important;padding-bottom:34px!important}

    /* Header mobile menu */
    .site-header{position:sticky;top:0;background:#132036;box-shadow:0 8px 28px rgba(7,20,41,.22)}
    .nav-wrap{height:auto;min-height:74px;display:flex;align-items:center;justify-content:space-between;padding:12px 14px!important;gap:10px;position:relative}
    .brand-main{flex:1 1 auto;max-width:calc(100% - 58px)}
    .brand-main img{width:auto!important;height:38px!important;max-width:170px!important;object-fit:contain}
    .brand-domain{font-size:17px;line-height:1;max-width:190px}
    .nav-toggle{display:inline-flex!important;align-items:center;justify-content:center;width:46px;height:46px;border-radius:14px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff;font-size:24px;flex:0 0 auto}
    .nav-menu{display:none!important;position:absolute;top:100%;left:10px;right:10px;background:#132036;border:1px solid rgba(255,255,255,.12);border-radius:18px;box-shadow:0 22px 60px rgba(0,0,0,.28);padding:12px;max-height:calc(100vh - 92px);overflow-y:auto;z-index:9999;grid-template-columns:1fr!important}
    .nav-menu.open{display:grid!important}
    .nav-menu a{display:flex!important;width:100%;padding:13px 14px;border-radius:12px;color:#fff;text-decoration:none;background:rgba(255,255,255,.04);white-space:normal;line-height:1.25}
    .nav-menu a:hover{background:rgba(255,138,29,.18)}
    .lang-switcher{width:100%;position:relative!important}
    .lang-current{width:100%;justify-content:center;min-height:44px}
    .lang-menu{left:0!important;right:0!important;min-width:100%!important;max-height:260px;overflow:auto}

    /* Hero / home */
    .hero,.hero-mini{padding-top:36px!important;padding-bottom:36px!important;min-height:auto!important}
    .split-hero{display:grid!important;grid-template-columns:1fr!important;gap:22px!important}
    .hero h1,.hero-mini h1{font-size:clamp(34px,10vw,48px)!important;line-height:1.05!important;letter-spacing:-1px!important;word-break:normal;overflow-wrap:break-word}
    .hero p,.hero-mini p{font-size:17px!important;line-height:1.6!important}
    .eyebrow{font-size:13px!important;letter-spacing:3px!important}
    .trust-row{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
    .trust-item{min-height:56px!important;padding:14px!important}
    .notice-card,.quote-box,.danger-note,.success-note{font-size:14px;line-height:1.5;border-radius:16px;padding:14px!important}
    .account-links{display:grid!important;grid-template-columns:1fr!important;width:100%}
    .account-links .btn,.btn{width:100%;padding:13px 16px!important}

    /* Forms */
    .booking-card{border-radius:22px!important;padding:18px!important}
    .booking-card h2{font-size:24px!important;line-height:1.15}
    .form-grid,.guest-booking-form{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}
    .field.full,.form-grid .full{grid-column:auto!important}
    .field label{font-size:12px!important;margin-bottom:6px!important}
    .field input,.field select,.field textarea{width:100%!important;min-height:48px;border-radius:13px!important;padding:12px 14px!important}
    .field textarea{min-height:110px!important}
    .location-field input{padding-left:42px!important}
    html[dir="rtl"] .location-field input{padding-left:14px!important;padding-right:42px!important}
    .tt-suggestions{position:absolute!important;left:0!important;right:0!important;max-height:240px;border-radius:14px}
    .guest-reservation-preview{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
    .guest-step{min-height:auto!important}

    /* Maps, office, cards */
    .map-picker-grid{display:grid!important;grid-template-columns:1fr!important;gap:16px!important}
    .map-canvas{min-height:300px!important}
    .office-location-card{display:grid!important;grid-template-columns:1fr!important;border-radius:22px!important}
    .office-location-content{padding:20px!important}
    .office-location-content h2{font-size:26px!important;line-height:1.15!important}
    .office-contact-actions{display:grid!important;grid-template-columns:1fr!important}
    .office-contact-item{padding:13px!important}
    .office-map-wrap,.office-map-wrap iframe{min-height:320px!important}
    .workflow-grid,.grid-3,.dashboard-cards{display:grid!important;grid-template-columns:1fr!important;gap:14px!important}
    .vehicle-card,.workflow-card,.feature-card,.dash-card{border-radius:18px!important}
    .vehicle-card img{height:auto!important;max-height:240px;object-fit:cover;width:100%}
    .panel-preview{display:grid!important;grid-template-columns:1fr!important}
    .phone-frame{width:100%!important;max-width:360px;margin:0 auto}
    .phone-screen{width:100%!important}
    .footer{padding-top:36px!important;padding-bottom:18px!important}
    .footer-grid{display:grid!important;grid-template-columns:1fr!important;gap:26px!important}
    .footer-logo{max-width:220px!important;height:auto!important}
    .footer a,.footer p{font-size:15px!important;line-height:1.7}

    /* Tables */
    .table-wrap{margin-left:-2px;margin-right:-2px;padding-bottom:6px}
    .compact-table{min-width:760px}
    .compact-table th,.compact-table td{padding:11px 10px!important;font-size:13px!important;line-height:1.25!important}
    .dashboard-preview,.flight-board-card{border-radius:20px!important;overflow:hidden}
    .dashboard-top{display:grid!important;grid-template-columns:1fr!important;gap:6px!important}
    .flight-search-card{padding:14px!important;border-radius:18px!important}
    .flight-date-form{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}
    .flight-date-form .field,.flight-date-form input,.flight-date-form select,.flight-date-form button{width:100%!important;min-width:0!important}
    .flight-origin{min-width:150px!important;max-width:220px!important}

    /* Account / customer pages */
    .customer-card,.account-card,.reservation-card,.profile-card{width:100%!important;max-width:100%!important;border-radius:20px!important;padding:18px!important}
    .my-account-card,.my-reservations-card{overflow:hidden}

    /* Admin/Partner/Driver panels on phones */
    .admin-body{display:block!important;background:#f3f6fb!important;padding:0!important}
    .admin-sidebar{position:sticky!important;top:0!important;left:0!important;right:0!important;width:100%!important;height:auto!important;min-height:0!important;padding:10px!important;background:#071429!important;display:block!important;overflow:visible!important;box-shadow:0 12px 30px rgba(7,20,41,.18)}
    .admin-brand{display:flex!important;align-items:center!important;gap:10px!important;margin:0 0 10px!important;padding:8px!important;border-radius:12px!important;min-width:0!important}
    .admin-brand img{width:auto!important;max-width:170px!important;height:42px!important;object-fit:contain!important}
    .admin-brand span{font-size:15px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff!important}
    .admin-sidebar nav{display:flex!important;gap:8px!important;overflow-x:auto!important;white-space:nowrap!important;padding:2px 0 6px!important;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
    .admin-sidebar nav a{display:inline-flex!important;flex:0 0 auto!important;align-items:center!important;min-height:42px!important;padding:10px 13px!important;border-radius:12px!important;background:rgba(255,255,255,.08)!important;color:#fff!important;text-decoration:none!important;scroll-snap-align:start;font-size:14px!important}
    .admin-main{margin-left:0!important;width:100%!important;max-width:100%!important;padding:12px!important}
    .admin-topbar{display:grid!important;grid-template-columns:1fr!important;gap:6px!important;padding:12px!important;border-radius:16px!important;margin-bottom:12px!important;font-size:14px!important}
    .admin-two-col{display:grid!important;grid-template-columns:1fr!important;gap:14px!important}
    .admin-form-card,.soft-card.pad{padding:16px!important;border-radius:18px!important}
    .admin-form-card h3,.admin-main h1,.admin-main h2,.admin-main h3{font-size:22px!important;line-height:1.2!important}
    .admin-main .form-grid{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}
    .admin-main .field,.admin-main .field.full{grid-column:auto!important;width:100%!important}
    .admin-main input,.admin-main select,.admin-main textarea{width:100%!important;min-height:46px!important;border-radius:13px!important;padding:11px 13px!important}
    .admin-main textarea{min-height:110px!important}
    .admin-table{border-radius:18px!important;overflow:hidden!important}
    .admin-table .compact-table{min-width:850px!important}
    .action-row{display:flex!important;gap:8px!important;flex-wrap:wrap!important}
    .small-btn,.danger-btn{min-height:40px!important;padding:9px 12px!important;border-radius:11px!important;font-size:13px!important}
    .detail-grid{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}
    .filter-bar,.filters,.admin-filters,.booking-filters{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
    .filter-bar .field,.filters .field,.admin-filters .field,.booking-filters .field{min-width:0!important;width:100%!important}
    .badge{white-space:nowrap!important}

    /* Login pages */
    .login-page{display:flex!important;align-items:center!important;justify-content:center!important;padding:16px!important;min-height:100vh!important}
    .login-card{padding:22px!important;border-radius:22px!important;box-shadow:0 24px 70px rgba(0,0,0,.25)!important}
    .login-card h1{font-size:28px!important;line-height:1.15!important}
    .login-logo{max-width:240px!important;width:100%!important;margin:0 auto 16px!important}
}

/* Very small phones */
@media (max-width: 420px){
    .container{padding-left:12px;padding-right:12px}
    .nav-wrap{padding-left:10px!important;padding-right:10px!important}
    .brand-main img{max-width:140px!important;height:34px!important}
    .brand-domain{font-size:15px;max-width:150px}
    .hero h1,.hero-mini h1{font-size:clamp(30px,11vw,40px)!important}
    .hero p,.hero-mini p{font-size:16px!important}
    .booking-card{padding:15px!important}
    .compact-table{min-width:700px}
    .admin-table .compact-table{min-width:780px!important}
    .office-location-content h2{font-size:24px!important}
    .footer-logo{max-width:190px!important}
}

/* Landscape phones / tablets */
@media (min-width: 769px) and (max-width: 1024px){
    .split-hero{grid-template-columns:1fr!important}
    .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
    .admin-main{padding:18px!important}
    .admin-table .compact-table{min-width:900px}
}
