:root{
  --tb-bg:#f6f8fc;
  --tb-surface:#ffffff;
  --tb-surface-2:#f8fbff;
  --tb-text:#202124;
  --tb-muted:#5f6368;
  --tb-border:#e6ebf1;
  --tb-primary:#1a73e8;
  --tb-primary-soft:#e8f0fe;
  --tb-success:#188038;
  --tb-warning:#f29900;
  --tb-danger:#d93025;
  --tb-shadow:0 1px 3px rgba(60,64,67,.18),0 4px 8px rgba(60,64,67,.12);
  --tb-shadow-lg:0 12px 32px rgba(32,33,36,.12);
  --tb-radius:20px;
}
html,body{height:100%;}
body.taxibot-dashboard,
body.login-layout.light-login.tb-login-body{background:var(--tb-bg);color:var(--tb-text);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;}
a{transition:all .2s ease;}
.btn{border-radius:12px;font-weight:600;box-shadow:none;}
.btn-primary,.btn-info{background:var(--tb-primary)!important;border-color:var(--tb-primary)!important;}
.btn-primary:hover,.btn-info:hover{filter:brightness(.95);}
.btn-success{background:var(--tb-success)!important;border-color:var(--tb-success)!important;}
.btn-danger{background:var(--tb-danger)!important;border-color:var(--tb-danger)!important;}
.form-control, select, textarea{border-radius:12px!important;border:1px solid var(--tb-border)!important;box-shadow:none!important;min-height:44px;}
.form-control:focus, select:focus, textarea:focus{border-color:var(--tb-primary)!important;box-shadow:0 0 0 4px rgba(26,115,232,.12)!important;}
.table{background:var(--tb-surface);border-radius:16px;overflow:hidden;}
.table>thead>tr>th{background:#f8fafc;border-bottom:1px solid var(--tb-border)!important;color:#445;}
.table>tbody>tr>td{border-color:#eef2f6!important;vertical-align:middle!important;}
.alert{border:none;border-radius:14px;box-shadow:none;}
.modal-content{border:none;border-radius:24px;box-shadow:var(--tb-shadow-lg);overflow:hidden;}
.modal-header,.modal-footer{border:none;background:#fff;}
.modal-body{background:#fff;}

/* LOGIN */
.tb-login-body .main-container,
.tb-login-body .main-content,
.tb-login-body .row,
.tb-login-body .col-sm-10,
.tb-login-body .col-sm-offset-1,
.tb-login-body .login-container{height:100%;}
.tb-login-body{min-height:100vh;position:relative;overflow-x:hidden;}
.tb-login-body:before,
.tb-login-body:after{content:"";position:fixed;border-radius:999px;filter:blur(8px);opacity:.6;z-index:0;}
.tb-login-body:before{width:360px;height:360px;left:-80px;top:-70px;background:#d2e3fc;}
.tb-login-body:after{width:320px;height:320px;right:-90px;bottom:-90px;background:#e6f4ea;}
.tb-login-shell{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 18px;}
.tb-login-grid{width:min(1120px,100%);display:grid;grid-template-columns:1.08fr .92fr;gap:24px;align-items:stretch;}
.tb-login-brand-panel{background:linear-gradient(180deg,#eef4ff 0%,#f8fbff 100%);border:1px solid #dde7f5;border-radius:32px;padding:42px;box-shadow:var(--tb-shadow);position:relative;overflow:hidden;}
.tb-login-brand-panel:after{content:"";position:absolute;right:-40px;bottom:-40px;width:220px;height:220px;border-radius:44px;background:rgba(26,115,232,.08);transform:rotate(18deg);}
.tb-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:#fff;border:1px solid #dbe6fb;color:var(--tb-primary);font-weight:700;font-size:12px;letter-spacing:.04em;text-transform:uppercase;}
.tb-login-logo{display:flex;align-items:center;gap:14px;margin-bottom:28px;position:relative;z-index:1;}
.tb-login-logo img{width:56px;height:56px;object-fit:contain;border-radius:16px;box-shadow:0 6px 18px rgba(26,115,232,.18);background:#fff;padding:6px;}
.tb-login-logo-text h1{font-size:28px;line-height:1.1;margin:0;font-weight:800;color:#174ea6;}
.tb-login-logo-text p{margin:6px 0 0;color:var(--tb-muted);font-size:14px;}
.tb-login-copy{position:relative;z-index:1;max-width:480px;}
.tb-login-copy h2{font-size:38px;line-height:1.12;font-weight:800;margin:18px 0;color:#1f1f1f;}
.tb-login-copy p{font-size:16px;line-height:1.65;color:var(--tb-muted);margin:0 0 24px;}
.tb-feature-list{list-style:none;padding:0;margin:0;display:grid;gap:14px;}
.tb-feature-list li{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:rgba(255,255,255,.85);border:1px solid #e0e6ef;border-radius:18px;backdrop-filter:blur(6px);}
.tb-feature-list i{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:var(--tb-primary-soft);color:var(--tb-primary);font-size:15px;flex:0 0 auto;}
.tb-feature-list strong{display:block;margin-bottom:2px;}
.tb-login-card{background:#fff;border:1px solid var(--tb-border);border-radius:32px;box-shadow:var(--tb-shadow-lg);padding:34px 32px;display:flex;flex-direction:column;justify-content:center;min-height:640px;}
.tb-login-card .widget-body,.tb-login-card .widget-main{background:transparent!important;border:none!important;}
.tb-login-header small{display:block;color:var(--tb-primary);font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;}
.tb-login-header h3{font-size:30px;margin:0 0 8px;font-weight:800;}
.tb-login-header p{margin:0 0 26px;color:var(--tb-muted);line-height:1.6;}
.tb-input-group{margin-bottom:16px;}
.tb-input-label{display:block;margin-bottom:8px;font-weight:700;color:#3c4043;}
.tb-input-wrap{position:relative;}
.tb-input-wrap i.input-icon-left{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:#73808c;font-size:16px;}
.tb-input-wrap .form-control{padding-left:42px;padding-right:42px;background:#fff;}
.tb-input-wrap .tb-toggle-password{position:absolute;right:11px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:#73808c;padding:6px 8px;border-radius:10px;}
.tb-input-wrap .tb-toggle-password:hover{background:#eef3fd;color:var(--tb-primary);}
.tb-login-card .btn-login-main{width:100%;min-height:46px;font-size:15px;border-radius:14px;margin-top:6px;}
.tb-login-help{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:18px;color:var(--tb-muted);font-size:13px;}
.tb-login-help a{font-weight:700;color:var(--tb-primary);}
.tb-login-card #noti{margin-top:16px;padding:0;}
.tb-login-footer-note{margin-top:26px;padding-top:18px;border-top:1px solid #edf1f6;color:#5f6368;font-size:13px;text-align:center;}

/* DASHBOARD */
.taxibot-dashboard #navbar{background:transparent;border:none;min-height:84px;padding:16px 18px;position:sticky;top:0;z-index:20;}
.taxibot-dashboard .navbar-container{background:rgba(255,255,255,.94);border:1px solid rgba(230,235,241,.95);backdrop-filter:blur(10px);border-radius:20px;padding:12px 18px;box-shadow:var(--tb-shadow);display:flex;align-items:center;justify-content:space-between;gap:16px;}
.taxibot-dashboard .navbar-header{float:none!important;display:flex;align-items:center;gap:16px;}
.taxibot-dashboard .navbar-brand{float:none!important;height:auto;padding:0;margin:0;display:flex;align-items:center;gap:12px;color:var(--tb-text)!important;}
.taxibot-dashboard .navbar-brand:hover{text-decoration:none;}
.taxibot-dashboard .tb-brand-logo{width:42px;height:42px;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(26,115,232,.16);padding:6px;}
.taxibot-dashboard .tb-brand-logo img{max-width:100%;max-height:100%;object-fit:contain;}
.taxibot-dashboard .tb-brand-copy strong{display:block;font-size:18px;line-height:1.1;font-weight:800;}
.taxibot-dashboard .tb-brand-copy small{display:block;font-size:12px;color:var(--tb-muted);margin-top:3px;}
.taxibot-dashboard .tb-topbar-right{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex:1;min-width:0;}
.taxibot-dashboard .tb-top-search{max-width:560px;flex:1;position:relative;}
.taxibot-dashboard .tb-top-search input{width:100%;height:48px;border-radius:999px!important;padding:0 18px 0 46px;background:#f8fbff;}
.taxibot-dashboard .tb-top-search i{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:#73808c;}
.taxibot-dashboard .nav.ace-nav{display:flex;align-items:center;gap:10px;}
.taxibot-dashboard .nav.ace-nav>li{border:none;background:transparent;}
.taxibot-dashboard .nav.ace-nav>li>a{background:transparent!important;color:var(--tb-text)!important;padding:0!important;display:flex;align-items:center;border:none;}
.taxibot-dashboard .light-blue>.dropdown-toggle{border-radius:999px;background:#f8fbff!important;border:1px solid var(--tb-border);padding:6px 10px 6px 6px!important;box-shadow:none;}
.taxibot-dashboard .nav-user-photo{width:40px;height:40px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 4px rgba(60,64,67,.22);object-fit:cover;}
.taxibot-dashboard .user-info{color:var(--tb-text)!important;padding:0 10px 0 12px;max-width:200px;}
.taxibot-dashboard .user-menu.dropdown-menu{border:none;border-radius:18px;box-shadow:var(--tb-shadow-lg);padding:10px;min-width:220px;margin-top:12px;}
.taxibot-dashboard .user-menu.dropdown-menu li>a{border-radius:12px;padding:10px 12px;}
.taxibot-dashboard .user-menu.dropdown-menu li>a:hover{background:var(--tb-primary-soft);color:var(--tb-primary);}
.taxibot-dashboard #main-container{padding:0 18px 24px;}
.taxibot-dashboard #sidebar{background:#fff;border:1px solid var(--tb-border);border-radius:28px;box-shadow:var(--tb-shadow);width:285px;padding:16px 12px 8px;margin-right:20px;}
.taxibot-dashboard .main-content{margin-left:305px;background:transparent;min-height:calc(100vh - 160px);}
.taxibot-dashboard .main-content-inner{padding-top:4px;}
.taxibot-dashboard .tb-sidebar-head{padding:10px 10px 18px;border-bottom:1px solid #eef2f6;margin-bottom:10px;}
.taxibot-dashboard .tb-sidebar-title{font-size:13px;font-weight:700;color:var(--tb-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;}
.taxibot-dashboard .tb-nav-search{position:relative;}
.taxibot-dashboard .tb-nav-search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#73808c;}
.taxibot-dashboard .tb-nav-search input{padding-left:40px;background:#f8fbff;}
.taxibot-dashboard .nav-list>li{margin:4px 0;border:none;}
.taxibot-dashboard .nav-list>li>a{background:transparent!important;border:none!important;border-radius:16px;color:#334155;min-height:46px;padding:12px 14px 12px 16px;font-weight:600;display:flex;align-items:center;gap:10px;}
.taxibot-dashboard .nav-list>li>a .menu-icon{color:#5f6368;width:18px;text-align:center;}
.taxibot-dashboard .nav-list>li.active>a,
.taxibot-dashboard .nav-list>li>a:hover{background:var(--tb-primary-soft)!important;color:var(--tb-primary)!important;}
.taxibot-dashboard .nav-list>li.active>a .menu-icon,
.taxibot-dashboard .nav-list>li>a:hover .menu-icon{color:var(--tb-primary);}
.taxibot-dashboard .nav-list>li .submenu{background:transparent;border:none;}
.taxibot-dashboard .nav-list>li .submenu>li>a{background:transparent!important;border:none!important;border-radius:14px;color:#475569;padding:10px 14px 10px 48px;}
.taxibot-dashboard .nav-list>li .submenu>li.active>a,
.taxibot-dashboard .nav-list>li .submenu>li>a:hover{background:#f4f8ff!important;color:var(--tb-primary)!important;}
.taxibot-dashboard #sidebar-collapse{background:transparent;border:none;color:var(--tb-muted);padding-top:10px;}
.taxibot-dashboard .breadcrumbs{background:transparent;border:none;padding:0 0 12px;}
.taxibot-dashboard .breadcrumb{background:transparent;border:none;margin:0;padding:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.taxibot-dashboard .breadcrumb>li{float:none;display:flex;align-items:center;font-size:13px;color:var(--tb-muted);}
.taxibot-dashboard .breadcrumb>li+li:before{content:"/";color:#9aa0a6;padding:0 6px 0 0;}
.taxibot-dashboard .page-content{background:transparent;padding:0;}
.taxibot-dashboard .page-header{background:#fff;border:1px solid var(--tb-border);border-radius:24px;box-shadow:var(--tb-shadow);padding:24px 28px;margin:0 0 20px;border-bottom:none;}
.taxibot-dashboard .page-header h1{margin:0;font-size:28px;font-weight:800;color:#1f1f1f;}
.taxibot-dashboard .page-header small{display:block;margin-top:8px;font-size:14px;color:var(--tb-muted);line-height:1.5;}
.taxibot-dashboard #main>.row,
.taxibot-dashboard #main .tb-home-grid{margin-left:0!important;margin-right:0!important;}
.taxibot-dashboard .tb-home-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px;}
.taxibot-dashboard .tb-card{background:#fff;border:1px solid var(--tb-border);border-radius:24px;box-shadow:var(--tb-shadow);padding:22px;position:relative;overflow:hidden;}
.taxibot-dashboard .tb-card-title{font-size:18px;font-weight:800;margin:0 0 4px;color:#1f1f1f;}
.taxibot-dashboard .tb-card-subtitle{font-size:14px;color:var(--tb-muted);margin:0 0 16px;line-height:1.55;}
.taxibot-dashboard .tb-hero{grid-column:span 8;background:linear-gradient(135deg,#ffffff 0%,#f5f9ff 100%);padding:28px;}
.taxibot-dashboard .tb-hero-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:var(--tb-primary-soft);color:var(--tb-primary);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;}
.taxibot-dashboard .tb-hero h2{font-size:34px;line-height:1.16;font-weight:800;margin:16px 0 12px;max-width:680px;}
.taxibot-dashboard .tb-hero p{color:var(--tb-muted);font-size:15px;line-height:1.7;max-width:720px;margin-bottom:22px;}
.taxibot-dashboard .tb-hero-actions{display:flex;gap:12px;flex-wrap:wrap;}
.taxibot-dashboard .tb-mini-stats{grid-column:span 4;display:grid;gap:16px;}
.taxibot-dashboard .tb-stat{padding:20px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.taxibot-dashboard .tb-stat .tb-stat-copy small{display:block;color:var(--tb-muted);font-size:13px;margin-bottom:6px;}
.taxibot-dashboard .tb-stat .tb-stat-copy strong{display:block;font-size:24px;line-height:1.1;}
.taxibot-dashboard .tb-stat-icon{width:52px;height:52px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:20px;background:var(--tb-primary-soft);color:var(--tb-primary);}
.taxibot-dashboard .tb-shortcuts{grid-column:span 12;}
.taxibot-dashboard .tb-shortcuts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.taxibot-dashboard .tb-shortcut{display:flex;align-items:flex-start;gap:14px;padding:20px;border-radius:22px;border:1px solid var(--tb-border);background:#fff;cursor:pointer;transition:all .22s ease;}
.taxibot-dashboard .tb-shortcut:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(26,115,232,.12);border-color:#d5e3fd;}
.taxibot-dashboard .tb-shortcut-icon{width:48px;height:48px;border-radius:16px;background:var(--tb-primary-soft);color:var(--tb-primary);display:flex;align-items:center;justify-content:center;font-size:18px;flex:0 0 auto;}
.taxibot-dashboard .tb-shortcut h4{margin:2px 0 6px;font-size:16px;font-weight:800;}
.taxibot-dashboard .tb-shortcut p{margin:0;color:var(--tb-muted);font-size:13px;line-height:1.6;}
.taxibot-dashboard .tb-home-notes{grid-column:span 12;display:grid;grid-template-columns:1.3fr .7fr;gap:18px;}
.taxibot-dashboard .tb-list{list-style:none;padding:0;margin:0;display:grid;gap:12px;}
.taxibot-dashboard .tb-list li{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid #eef2f6;}
.taxibot-dashboard .tb-list li:last-child{border-bottom:none;padding-bottom:0;}
.taxibot-dashboard .tb-list .tb-list-icon{width:36px;height:36px;border-radius:12px;background:#eef4ff;color:var(--tb-primary);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.taxibot-dashboard .tb-chip{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;background:#f6f9fe;color:#3c4043;font-size:12px;font-weight:700;border:1px solid #e5edf8;margin:0 8px 8px 0;}
.taxibot-dashboard .footer{background:transparent;padding:18px 0 0;}
.taxibot-dashboard .footer-content{background:#fff;border:1px solid var(--tb-border);border-radius:18px;padding:16px 20px;box-shadow:var(--tb-shadow);}
.taxibot-dashboard .footer-content .blue.bolder{color:var(--tb-primary)!important;}
.taxibot-dashboard .btn-scroll-up{border-radius:16px;box-shadow:var(--tb-shadow);background:var(--tb-primary)!important;border-color:var(--tb-primary)!important;}

/* Adapt legacy blocks */
.taxibot-dashboard #main > div[class*="col-"]{margin-bottom:16px;}
.taxibot-dashboard #main .widget-box,
.taxibot-dashboard #main .widget-body,
.taxibot-dashboard #main .widget-main,
.taxibot-dashboard #main .widget-header,
.taxibot-dashboard #main .profile-user-info,
.taxibot-dashboard #main .pricing-box,
.taxibot-dashboard #main .well,
.taxibot-dashboard #main .infobox,
.taxibot-dashboard #main .tab-content,
.taxibot-dashboard #main .nav-tabs,
.taxibot-dashboard #main .panel,
.taxibot-dashboard #main .list-group{border-radius:20px!important;border-color:var(--tb-border)!important;box-shadow:none;}
.taxibot-dashboard #main .widget-box{border:1px solid var(--tb-border)!important;background:#fff;padding:0;}
.taxibot-dashboard #main .widget-header{background:#fff!important;border-bottom:1px solid #eef2f6!important;min-height:56px;padding:14px 18px;}
.taxibot-dashboard #main .widget-main{padding:18px;background:#fff;}
.taxibot-dashboard #main .nav-tabs{padding:6px;background:#f8fbff;border:1px solid #edf2f8!important;}
.taxibot-dashboard #main .nav-tabs>li>a{border:none!important;border-radius:12px!important;color:#425466;}
.taxibot-dashboard #main .nav-tabs>li.active>a,
.taxibot-dashboard #main .nav-tabs>li>a:hover{background:#fff!important;color:var(--tb-primary)!important;box-shadow:0 1px 3px rgba(60,64,67,.12);}
.taxibot-dashboard #main .mapaasesores,#map{border-radius:20px;overflow:hidden;}
.taxibot-dashboard #main .pagination>li>a,.taxibot-dashboard #main .pagination>li>span{border-radius:10px!important;margin:0 2px;border-color:#e6ebf1;color:#445;}
.taxibot-dashboard #main .label{border-radius:999px;padding:5px 9px;}
.taxibot-dashboard .tb-hidden-nav{display:none!important;}

@media (max-width: 1199px){
  .taxibot-dashboard #sidebar{width:255px;}
  .taxibot-dashboard .main-content{margin-left:275px;}
  .taxibot-dashboard .tb-hero{grid-column:span 12;}
  .taxibot-dashboard .tb-mini-stats{grid-column:span 12;grid-template-columns:repeat(3,1fr);}
  .taxibot-dashboard .tb-shortcuts-grid{grid-template-columns:repeat(2,1fr);}
  .taxibot-dashboard .tb-home-notes{grid-template-columns:1fr;}
}
@media (max-width: 991px){
  .tb-login-grid{grid-template-columns:1fr;}
  .tb-login-brand-panel{padding:30px;}
  .tb-login-card{min-height:auto;}
  .taxibot-dashboard #sidebar{margin-right:0;}
  .taxibot-dashboard .main-content{margin-left:0;}
  .taxibot-dashboard #sidebar{position:relative;width:100%;margin-bottom:18px;}
  .taxibot-dashboard #main-container{padding:0 14px 18px;}
  .taxibot-dashboard #navbar{padding:14px;}
  .taxibot-dashboard .navbar-container{flex-direction:column;align-items:stretch;}
  .taxibot-dashboard .tb-topbar-right{width:100%;}
}
@media (max-width: 767px){
  .tb-login-shell{padding:18px 12px;}
  .tb-login-brand-panel,.tb-login-card{padding:22px 18px;border-radius:24px;}
  .tb-login-copy h2{font-size:29px;}
  .taxibot-dashboard .page-header{padding:20px;}
  .taxibot-dashboard .page-header h1{font-size:24px;}
  .taxibot-dashboard .tb-home-grid{display:block;}
  .taxibot-dashboard .tb-card{margin-bottom:16px;}
  .taxibot-dashboard .tb-mini-stats{display:block;}
  .taxibot-dashboard .tb-stat{margin-bottom:16px;}
  .taxibot-dashboard .tb-shortcuts-grid{grid-template-columns:1fr;}
  .taxibot-dashboard .tb-top-search{max-width:none;}
  .taxibot-dashboard .user-info{display:none!important;}
}
