/* =====================================================
   LA CONCIERGERIE IA - V2
   STYLE.CSS
   Auteur : Khalid Bahiri
===================================================== */

/* ===========================
   VARIABLES
=========================== */

:root{

    --primary:#123C7A;
    --primary-dark:#0D2D5A;
    --secondary:#F4F7FB;

    --accent:#00AEEF;

    --success:#1DB954;

    --warning:#FFB300;

    --danger:#E53935;

    --text:#1F2937;

    --text-light:#6B7280;

    --white:#FFFFFF;

    --border:#E5E7EB;

    --shadow:
        0 10px 25px rgba(0,0,0,.08);

    --radius:18px;

    --transition:.30s ease;

    --max-width:1400px;

}

/* ===========================
   RESET
=========================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{

    scroll-behavior:smooth;

}

body{

    font-family:"Inter",sans-serif;

    background:var(--secondary);

    color:var(--text);

    line-height:1.6;

    overflow-x:hidden;

}

/* ===========================
   APP
=========================== */

#app{

    width:100%;

    min-height:100vh;

}

/* ===========================
   CONTAINER
=========================== */

.container{

    width:100%;

    max-width:var(--max-width);

    margin:auto;

    padding:0 30px;

}

/* ===========================
   LIENS
=========================== */

a{

    color:inherit;

    text-decoration:none;

}

img{

    display:block;

    max-width:100%;

}

/* ===========================
   BOUTONS
=========================== */

button{

    cursor:pointer;

    border:none;

    transition:var(--transition);

    font-family:inherit;

}

.primary-btn{

    background:var(--primary);

    color:#fff;

    padding:16px 28px;

    border-radius:14px;

    font-size:16px;

    font-weight:600;

    box-shadow:var(--shadow);

}

.primary-btn:hover{

    background:var(--primary-dark);

    transform:translateY(-3px);

}

.secondary-btn{

    background:#fff;

    color:var(--primary);

    border:2px solid var(--primary);

    padding:16px 28px;

    border-radius:14px;

    font-size:16px;

    font-weight:600;

}

.secondary-btn:hover{

    background:var(--primary);

    color:#fff;

}

/* ===========================
   HEADER
=========================== */

.topbar{

    position:sticky;

    top:0;

    z-index:1000;

    background:#fff;

    box-shadow:0 2px 10px rgba(0,0,0,.05);

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:18px 40px;

}

.topbar-left{

    display:flex;

    align-items:center;

    gap:16px;

}

.logo-circle{

    width:64px;

    height:64px;

    border-radius:50%;

    background:var(--primary);

    color:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:28px;

}

.logo-text h1{

    font-size:28px;

    font-weight:700;

    color:var(--primary);

}

.logo-text p{

    color:var(--text-light);

}

.assistant-status{

    display:flex;

    align-items:center;

    gap:10px;

    background:#ECFDF5;

    color:#0F766E;

    padding:10px 18px;

    border-radius:40px;

    font-weight:600;

}

.status-dot{

    width:10px;

    height:10px;

    border-radius:50%;

    background:#16A34A;

}/* =====================================================
   HERO
===================================================== */

.hero{

    display:grid;

    grid-template-columns:1.2fr .8fr;

    gap:60px;

    align-items:center;

    max-width:1400px;

    margin:60px auto;

    padding:0 40px;

}

.hero-badge{

    display:inline-flex;

    align-items:center;

    padding:8px 18px;

    border-radius:50px;

    background:#E8F2FF;

    color:var(--primary);

    font-weight:700;

    margin-bottom:25px;

}

.hero h2{

    font-size:52px;

    line-height:1.15;

    color:var(--primary);

    margin-bottom:25px;

}

.hero-text{

    font-size:20px;

    color:var(--text-light);

    margin-bottom:35px;

}

.hero-actions{

    display:flex;

    gap:18px;

    flex-wrap:wrap;

}

.hero-illustration{

    display:flex;

    justify-content:center;

    align-items:center;

}

.assistant-avatar{

    width:170px;

    height:170px;

    border-radius:50%;

    background:linear-gradient(135deg,#123C7A,#00AEEF);

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:90px;

    color:#fff;

    box-shadow:var(--shadow);

    margin-bottom:25px;

}

.assistant-card{

    background:#fff;

    border-radius:20px;

    padding:30px;

    box-shadow:var(--shadow);

    width:340px;

}

.assistant-card-header{

    font-size:22px;

    font-weight:700;

    color:var(--primary);

    margin-bottom:15px;

}

.assistant-card-body{

    color:var(--text-light);

    line-height:2;

}

/* =====================================================
   QUESTIONS RAPIDES
===================================================== */

.quick-actions{

    max-width:1400px;

    margin:70px auto;

    padding:0 40px;

}

.quick-actions h3{

    text-align:center;

    font-size:34px;

    color:var(--primary);

    margin-bottom:35px;

}

.quick-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));

    gap:18px;

}

.suggestion{

    background:#fff;

    border:2px solid #E8EDF5;

    border-radius:16px;

    padding:18px;

    font-size:17px;

    font-weight:600;

    color:var(--text);

    transition:.30s;

    box-shadow:0 4px 15px rgba(0,0,0,.04);

}

.suggestion:hover{

    background:var(--primary);

    color:#fff;

    border-color:var(--primary);

    transform:translateY(-5px);

}

/* =====================================================
   CHAT
===================================================== */

.chat-container{

    max-width:1200px;

    margin:70px auto;

    background:#fff;

    border-radius:24px;

    overflow:hidden;

    box-shadow:var(--shadow);

}

.chat-header{

    background:var(--primary);

    color:#fff;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:22px 30px;

}

.chat-title{

    font-size:24px;

    font-weight:700;

}

.chat-window{

    height:520px;

    overflow-y:auto;

    padding:30px;

    background:#F8FAFC;

}

.chat-input-section{

    padding:25px;

    background:#fff;

}

.chat-input-container{

    display:flex;

    flex-direction:column;

    gap:18px;

}

.assistant-online{

    display:flex;

    align-items:center;

    gap:10px;

    color:#16A34A;

    font-weight:700;

}

.online-dot{

    width:12px;

    height:12px;

    border-radius:50%;

    background:#16A34A;

}

.input-box{

    display:flex;

    gap:15px;

}

#userInput{

    flex:1;

    min-height:70px;

    resize:none;

    border:2px solid #E5E7EB;

    border-radius:18px;

    padding:18px;

    font-size:16px;

    font-family:inherit;

}

#userInput:focus{

    outline:none;

    border-color:var(--primary);

}

.send-button{

    width:70px;

    border-radius:18px;

    background:var(--primary);

    color:#fff;

    font-size:28px;

}

.send-button:hover{

    background:var(--primary-dark);

}

.input-help{

    color:var(--text-light);

    font-size:14px;

}/* =====================================================
   SERVICES MUNICIPAUX
===================================================== */

.services-panel{

    max-width:1400px;

    margin:80px auto;

    padding:0 40px;

}

.section-title{

    text-align:center;

    margin-bottom:50px;

}

.section-title h2{

    font-size:42px;

    color:var(--primary);

    margin-bottom:15px;

}

.section-title p{

    max-width:800px;

    margin:auto;

    color:var(--text-light);

    font-size:18px;

}

.services-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));

    gap:30px;

}

.service-card{

    background:#fff;

    border-radius:22px;

    padding:35px;

    box-shadow:var(--shadow);

    transition:.35s;

    border:1px solid #EDF2F7;

}

.service-card:hover{

    transform:translateY(-8px);

    box-shadow:0 18px 40px rgba(0,0,0,.12);

}

.service-icon{

    width:70px;

    height:70px;

    border-radius:18px;

    background:linear-gradient(135deg,#123C7A,#00AEEF);

    color:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:34px;

    margin-bottom:20px;

}

.service-card h4{

    color:var(--primary);

    font-size:24px;

    margin-bottom:15px;

}

.service-card p{

    color:var(--text-light);

    line-height:1.8;

}

/* =====================================================
   STATISTIQUES
===================================================== */

.stats-section{

    max-width:1400px;

    margin:90px auto;

    padding:0 40px;

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;

}

.stat-card{

    background:#123C7A;

    color:#fff;

    border-radius:22px;

    text-align:center;

    padding:45px 20px;

    transition:.30s;

}

.stat-card:hover{

    transform:translateY(-6px);

    background:#0D2D5A;

}

.stat-card h2{

    font-size:48px;

    margin-bottom:12px;

}

.stat-card p{

    font-size:18px;

    opacity:.95;

}

/* =====================================================
   INFORMATIONS OFFICIELLES
===================================================== */

.official-links{

    max-width:1400px;

    margin:90px auto;

    padding:0 40px;

}

.official-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

    gap:30px;

}

.official-card{

    background:#fff;

    border-radius:22px;

    padding:35px;

    box-shadow:var(--shadow);

    text-align:center;

    transition:.35s;

}

.official-card:hover{

    transform:translateY(-8px);

}

.official-icon{

    width:75px;

    height:75px;

    margin:auto;

    border-radius:50%;

    background:#123C7A;

    color:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:34px;

    margin-bottom:20px;

}

.official-card h3{

    color:var(--primary);

    margin-bottom:15px;

    font-size:24px;

}

.official-card p{

    color:var(--text-light);

    margin-bottom:25px;

    line-height:1.7;

}

.official-button{

    display:inline-block;

    background:var(--primary);

    color:#fff;

    padding:14px 24px;

    border-radius:14px;

    transition:.30s;

}

.official-button:hover{

    background:var(--primary-dark);

}

/* =====================================================
   CONTACT
===================================================== */

.contact-section{

    max-width:1100px;

    margin:90px auto;

    padding:0 40px;

}

.contact-card{

    background:linear-gradient(135deg,#123C7A,#00AEEF);

    border-radius:28px;

    color:#fff;

    text-align:center;

    padding:70px 50px;

}

.contact-icon{

    font-size:70px;

    margin-bottom:20px;

}

.contact-card h2{

    font-size:42px;

    margin-bottom:20px;

}

.contact-card p{

    max-width:720px;

    margin:0 auto 35px;

    line-height:1.8;

    font-size:18px;

}

.contact-buttons{

    display:flex;

    justify-content:center;

    gap:20px;

    flex-wrap:wrap;

}/* =====================================================
   FOOTER
===================================================== */

.footer{

    background:#0F172A;

    color:#fff;

    margin-top:100px;

    padding:70px 40px 40px;

}

.footer-content{

    max-width:1400px;

    margin:auto;

    display:grid;

    grid-template-columns:2fr 1fr 1fr;

    gap:50px;

}

.footer-left{

    display:flex;

    gap:20px;

    align-items:flex-start;

}

.footer-logo{

    width:70px;

    height:70px;

    border-radius:50%;

    background:#123C7A;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:34px;

}

.footer-text h3{

    font-size:28px;

    margin-bottom:10px;

}

.footer-text p{

    color:#CBD5E1;

}

.footer-center ul{

    list-style:none;

}

.footer-center li{

    margin-bottom:15px;

    color:#CBD5E1;

}

.footer-right p{

    margin-bottom:10px;

    color:#CBD5E1;

}

/* =====================================================
   CHAT MESSAGES
===================================================== */

.message{

    display:flex;

    margin-bottom:22px;

}

.message.user{

    justify-content:flex-end;

}

.message.assistant{

    justify-content:flex-start;

}

.bubble{

    max-width:78%;

    padding:18px 22px;

    border-radius:18px;

    line-height:1.8;

    font-size:16px;

}

.user .bubble{

    background:#123C7A;

    color:#fff;

    border-bottom-right-radius:6px;

}

.assistant .bubble{

    background:#fff;

    color:#374151;

    border:1px solid #E5E7EB;

    border-bottom-left-radius:6px;

    box-shadow:0 4px 12px rgba(0,0,0,.05);

}

/* =====================================================
   LOADER IA
===================================================== */

.typing{

    display:flex;

    gap:8px;

    align-items:center;

    padding:15px 22px;

    background:#fff;

    border-radius:18px;

    width:90px;

    box-shadow:0 5px 12px rgba(0,0,0,.08);

}

.typing span{

    width:10px;

    height:10px;

    border-radius:50%;

    background:#123C7A;

    animation:typing 1.2s infinite;

}

.typing span:nth-child(2){

    animation-delay:.2s;

}

.typing span:nth-child(3){

    animation-delay:.4s;

}

/* =====================================================
   BADGES
===================================================== */

.badge{

    display:inline-flex;

    align-items:center;

    gap:8px;

    padding:8px 15px;

    border-radius:30px;

    background:#E8F2FF;

    color:#123C7A;

    font-weight:700;

    font-size:14px;

}

.badge.success{

    background:#DCFCE7;

    color:#166534;

}

.badge.warning{

    background:#FEF3C7;

    color:#92400E;

}

.badge.danger{

    background:#FEE2E2;

    color:#991B1B;

}

/* =====================================================
   CARDS
===================================================== */

.card{

    background:#fff;

    border-radius:20px;

    padding:30px;

    box-shadow:0 10px 25px rgba(0,0,0,.07);

}

.card-title{

    color:#123C7A;

    font-size:26px;

    margin-bottom:18px;

}

.card-text{

    color:#6B7280;

    line-height:1.8;

}

/* =====================================================
   SCROLLBAR
===================================================== */

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#EDF2F7;

}

::-webkit-scrollbar-thumb{

    background:#123C7A;

    border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

    background:#0D2D5A;

}

/* =====================================================
   SELECTION
===================================================== */

::selection{

    background:#123C7A;

    color:#fff;

}

/* =====================================================
   FOCUS ACCESSIBILITÉ
===================================================== */

button:focus,
a:focus,
textarea:focus{

    outline:3px solid rgba(0,174,239,.35);

    outline-offset:3px;

}

/* =====================================================
   FIN STYLE.CSS
===================================================== */Ò