/* =====================================================
   ALFRED — CSS GLOBAL
   Blue #07344B | Orange #BD6736 | Sand #9B8E6C | Beige #CEC7B7
   Font: Lato
   ===================================================== */

@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700;900&display=swap');

:root {
  --p:   #07344B;
  --pl:  #0a4a6b;
  --pd:  #041e2c;
  --a:   #BD6736;
  --al:  #d4793f;
  --sand:#9B8E6C;
  --beige:#CEC7B7;
  --bg:  #F5F3EF;
  --s:   #FFFFFF;
  --b:   #DDD8CE;
  --t:   #07344B;
  --m:   #9B8E6C;
  --nav-h: 64px;
  --r: 10px;
  --shadow: 0 2px 12px rgba(7,52,75,.10);
  --shadow-lg: 0 8px 28px rgba(7,52,75,.15);
  font-family: 'Lato', sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
body{background:var(--bg);color:var(--t);font-family:'Lato',sans-serif;font-size:.95rem;min-height:100vh;}

.fw-700{font-weight:700!important;} .fw-800{font-weight:900!important;}

/* ── Navbar ── */
#mainNav{background:linear-gradient(135deg,var(--pd),var(--p));height:var(--nav-h);box-shadow:0 2px 16px rgba(7,52,75,.25);}
.nav-logo{background:rgba(255,255,255,.15);border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:1.05rem;}
.navbar-brand{font-size:1.2rem;font-weight:900;letter-spacing:.5px;}
.navbar-nav .nav-link{border-radius:8px;padding:6px 11px;font-weight:700;font-size:.88rem;color:rgba(255,255,255,.82)!important;transition:background .15s;}
.navbar-nav .nav-link.active,.navbar-nav .nav-link:hover{background:rgba(255,255,255,.15);color:#fff!important;}
.badge-nav{position:absolute;top:1px;right:1px;background:var(--a);color:#fff;border-radius:99px;font-size:9px;font-weight:900;width:15px;height:15px;display:flex;align-items:center;justify-content:center;}

/* ── Layout ── */
.main-wrap{padding-top:var(--nav-h);min-height:calc(100vh - 50px);}

/* ── Avatar ── */
.avatar-sm{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--p),var(--a));color:#fff;font-weight:900;font-size:.7rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.avatar-lg{width:76px;height:76px;border-radius:50%;background:linear-gradient(135deg,var(--p),var(--a));color:#fff;font-weight:900;font-size:1.5rem;display:flex;align-items:center;justify-content:center;}

/* ── Card ── */
.card{border:1px solid var(--b);border-radius:var(--r);box-shadow:var(--shadow);background:var(--s);}
.card-header{background:transparent;border-bottom:1px solid var(--b);padding:.9rem 1.1rem;font-weight:700;}

/* ── Dashboard Banner ── */
.dash-banner{background:linear-gradient(135deg,var(--p),var(--pl));border-radius:var(--r);padding:1.5rem 1.75rem;color:#fff;box-shadow:var(--shadow-lg);}

/* ── Stats ── */
.stat-card{border-radius:var(--r);padding:1.1rem;display:flex;flex-direction:column;align-items:center;text-align:center;border:none;box-shadow:var(--shadow);transition:transform .18s;}
.stat-card:hover{transform:translateY(-2px);}
.stat-icon{font-size:1.6rem;margin-bottom:4px;}
.stat-val{font-size:1.9rem;font-weight:900;line-height:1;}
.stat-lbl{font-size:.7rem;font-weight:700;opacity:.75;margin-top:3px;text-transform:uppercase;letter-spacing:.5px;}
.stat-green{background:linear-gradient(135deg,#E8F0EC,#C8DCCE);color:var(--p);}
.stat-blue{background:linear-gradient(135deg,#E5EEF3,#C0D5E2);color:var(--p);}
.stat-teal{background:linear-gradient(135deg,#EAE8E3,#D5D0C4);color:var(--sand);}
.stat-orange{background:linear-gradient(135deg,#F5EDE6,#EAD0BC);color:var(--a);}

/* ── Ride list ── */
.ride-list{list-style:none;padding:0;margin:0;}
.ride-item{display:flex;align-items:center;gap:.75rem;padding:.8rem 1.1rem;border-bottom:1px solid var(--b);transition:background .12s;}
.ride-item:last-child{border-bottom:none;}
.ride-item:hover{background:#FAF9F6;}
.ride-time{font-size:1.2rem;font-weight:900;color:var(--a);min-width:50px;}
.ride-info{flex:1;min-width:0;}
.ride-note{font-size:.75rem;color:var(--m);margin-top:2px;}

/* ── Notifications ── */
.notif-list{list-style:none;padding:0;margin:0;}
.notif-item{display:flex;align-items:center;gap:.5rem;padding:.7rem 1.1rem;font-size:.85rem;border-bottom:1px solid var(--b);}
.notif-item:last-child{border-bottom:none;}
.notif-item.unread{background:#FDF9F6;font-weight:700;}
.notif-item .flex-1{flex:1;}

/* ── Empty states ── */
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--m);padding:1.5rem;}
.empty-state i{font-size:2.2rem;opacity:.3;}
.empty-state p{margin:0;font-size:.85rem;}

/* ── Forms ── */
.form-control,.form-select{border-radius:8px;border:1.5px solid var(--b);font-family:'Lato',sans-serif;font-size:.93rem;transition:border-color .15s,box-shadow .15s;}
.form-control:focus,.form-select:focus{border-color:var(--a);box-shadow:0 0 0 3px rgba(189,103,54,.18);}
.form-label{font-weight:700;font-size:.85rem;}

/* ── Buttons ── */
.btn-primary{background:var(--a);border-color:var(--a);border-radius:8px;font-weight:700;font-family:'Lato',sans-serif;transition:all .15s;}
.btn-primary:hover,.btn-primary:focus{background:var(--al);border-color:var(--al);transform:translateY(-1px);box-shadow:0 4px 12px rgba(189,103,54,.35);}
.btn-outline-secondary{border-radius:8px;font-weight:700;}
.btn-outline-danger{border-radius:8px;font-weight:700;}
.btn-outline-success{border-radius:8px;font-weight:700;}
.btn-outline-warning{border-radius:8px;font-weight:700;}
.btn-success{background:#2E7D52;border-color:#2E7D52;border-radius:8px;font-weight:700;}
.btn-warning{background:var(--sand);border-color:var(--sand);color:#fff;border-radius:8px;font-weight:700;}

/* ── Frequency options ── */
.freq-option{display:flex;align-items:center;cursor:pointer;}
.freq-radio{display:none;}
.freq-label{display:flex;align-items:center;gap:.5rem;padding:.6rem .9rem;border:1.5px solid var(--b);border-radius:8px;width:100%;font-weight:700;font-size:.88rem;transition:all .15s;cursor:pointer;}
.freq-radio:checked + .freq-label{border-color:var(--a);background:#FDF5EF;color:var(--a);}

/* ── Days toggle ── */
.days-toggle{display:flex;gap:5px;flex-wrap:wrap;}
.day-toggle input{display:none;}
.day-toggle span{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1.5px solid var(--b);border-radius:8px;font-weight:700;font-size:.78rem;cursor:pointer;transition:all .15s;}
.day-toggle input:checked + span{background:var(--p);border-color:var(--p);color:#fff;}

/* ── Map markers ── */
.map-pin{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:.7rem;border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.25);}
.map-me{background:var(--p);color:#fff;font-size:.6rem;}
.map-user{background:var(--a);color:#fff;}

/* ── Messages layout ── */
.messages-wrap{display:flex;height:calc(100vh - var(--nav-h));}
.msg-sidebar{width:280px;flex-shrink:0;border-right:1px solid var(--b);background:#fff;display:flex;flex-direction:column;}
.msg-sidebar-head{padding:.85rem 1rem;border-bottom:1px solid var(--b);display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:.9rem;}
.conv-list{flex:1;overflow-y:auto;}
.conv-item{display:flex;align-items:center;gap:.65rem;padding:.8rem 1rem;border-bottom:1px solid var(--b);cursor:pointer;transition:background .12s;}
.conv-item:hover{background:#FAF9F6;}
.conv-item.active{background:#F5EDE6;}
.conv-info{flex:1;min-width:0;}
.conv-name{font-weight:700;font-size:.88rem;}
.conv-time{font-size:.72rem;color:var(--m);}
.conv-badge{background:var(--a);color:#fff;border-radius:99px;font-size:.68rem;font-weight:900;min-width:19px;height:19px;display:flex;align-items:center;justify-content:center;padding:0 4px;flex-shrink:0;}
.msg-main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#FAFAF8;}
.msg-welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:var(--m);}
.msg-head{padding:.85rem 1.2rem;border-bottom:1px solid var(--b);background:#fff;display:flex;align-items:center;gap:.65rem;font-weight:700;font-size:.9rem;flex-shrink:0;}
.msg-container{flex:1;overflow-y:auto;padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.5rem;}
.msg-bubble{max-width:68%;padding:.6rem .9rem;border-radius:13px;font-size:.88rem;line-height:1.45;}
.mine{background:var(--p);color:#fff;align-self:flex-end;border-bottom-right-radius:3px;}
.theirs{background:#fff;border:1px solid var(--b);align-self:flex-start;border-bottom-left-radius:3px;}
.msg-text{word-break:break-word;}
.msg-time{font-size:.65rem;opacity:.6;margin-top:2px;text-align:right;}
.msg-input-row{padding:.8rem 1rem;border-top:1px solid var(--b);background:#fff;display:flex;gap:.65rem;align-items:flex-end;flex-shrink:0;}
.msg-textarea{flex:1;resize:none;border-radius:10px;border:1.5px solid var(--b);padding:.6rem .85rem;font-family:'Lato',sans-serif;font-size:.9rem;min-height:38px;max-height:120px;outline:none;transition:border-color .15s;}
.msg-textarea:focus{border-color:var(--a);}
.msg-send{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;background:var(--a);border:none;color:#fff;}

/* ── Login ── */
.login-page{min-height:100vh;background:linear-gradient(145deg,var(--pd) 0%,var(--p) 50%,#0d4a6a 100%);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:1rem;}
.login-bg{position:fixed;inset:0;pointer-events:none;}
.login-shape{position:absolute;border-radius:50%;background:rgba(255,255,255,.04);}
.login-shape.s1{width:500px;height:500px;top:-150px;left:-150px;}
.login-shape.s2{width:350px;height:350px;bottom:-100px;right:-100px;}
.login-wrap{position:relative;z-index:1;width:100%;max-width:440px;}
.login-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(4,30,44,.4);overflow:hidden;}
.login-head{background:linear-gradient(135deg,var(--p),var(--pl));color:#fff;text-align:center;padding:2.5rem 2rem 2rem;}
.login-logo{width:64px;height:64px;background:rgba(255,255,255,.15);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.8rem;margin:0 auto 12px;}
.login-head h1{font-size:1.8rem;font-weight:900;margin:0 0 4px;letter-spacing:1px;}
.login-head .slogan-main{font-size:1rem;font-weight:700;opacity:.95;margin:0 0 4px;}
.login-head .slogan-sub{font-size:.82rem;opacity:.75;margin:0;line-height:1.4;}
.login-body{padding:1.8rem 2rem 1.5rem;}
.login-foot{background:#F5F3EF;border-top:1px solid var(--b);padding:.9rem 1.5rem;text-align:center;font-size:.82rem;color:var(--m);}

/* ── Page header ── */
.page-head{margin-bottom:1rem;}

/* ── Admin table ── */
.admin-table th{background:#F5F3EF;font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--m);padding:.7rem 1rem;}
.admin-table td{padding:.7rem 1rem;vertical-align:middle;}

/* ── Dropdown ── */
.dropdown-menu{border:1px solid var(--b);border-radius:var(--r);box-shadow:var(--shadow-lg);font-family:'Lato',sans-serif;}
.dropdown-item{font-weight:700;font-size:.88rem;border-radius:6px;margin:2px 4px;}
.dropdown-item:hover{background:#F5EDE6;}

/* ── Footer ── */
.site-footer{background:#fff;border-top:1px solid var(--b);}

/* ── Bootstrap badge overrides ── */
.bg-success-subtle{background-color:#E8F0EC!important;}
.bg-warning-subtle{background-color:#F5EDE6!important;}
.bg-info-subtle{background-color:#E5EEF3!important;}
.text-success{color:var(--p)!important;}
.text-warning{color:var(--a)!important;}
.text-info{color:var(--p)!important;}

/* ── Scrollbar ── */
::-webkit-scrollbar{width:5px;height:5px;}
::-webkit-scrollbar-thumb{background:var(--beige);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:var(--sand);}

/* ── Responsive ── */
@media(max-width:768px){
  .messages-wrap{flex-direction:column;}
  .msg-sidebar{width:100%;max-height:50vh;}
  .stat-val{font-size:1.5rem;}
  .dash-banner{padding:1.1rem 1.2rem;}
}

/* ═══════════════════════════════════════════════
   MENU BURGER MOBILE — FIX VISIBILITÉ
   ═══════════════════════════════════════════════ */
@media(max-width:991px){

  /* Menu déroulant : fond bleu foncé bien distinct */
  .navbar-collapse.show,
  .navbar-collapse.collapsing{
    background:#041e2c;
    margin:8px -12px 0;
    border-radius:0 0 12px 12px;
    padding:8px 10px 12px;
    border-top:2px solid rgba(189,103,54,.4);
    box-shadow:0 8px 24px rgba(0,0,0,.4);
  }

  /* Tous les liens : blancs, lisibles */
  .navbar-nav .nav-link{
    color:#ffffff !important;
    font-size:1rem !important;
    font-weight:700 !important;
    padding:10px 14px !important;
    border-radius:8px !important;
    margin-bottom:2px;
  }

  /* Lien actif et hover */
  .navbar-nav .nav-link:hover,
  .navbar-nav .nav-link.active{
    background:rgba(189,103,54,.25) !important;
    color:#ffffff !important;
  }

  /* Dropdown menu (profil) */
  .dropdown-menu{
    background:#041e2c !important;
    border:1px solid rgba(255,255,255,.15) !important;
    box-shadow:0 4px 16px rgba(0,0,0,.3) !important;
  }
  .dropdown-item{
    color:#ffffff !important;
    font-weight:700;
    border-radius:6px;
    margin:2px 4px;
  }
  .dropdown-item:hover{
    background:rgba(189,103,54,.25) !important;
    color:#ffffff !important;
  }
  .dropdown-divider{
    border-color:rgba(255,255,255,.15) !important;
  }

  /* Avatar dans le menu mobile */
  .navbar-nav .avatar-sm{
    display:inline-flex !important;
  }
}
