:root{
    --bg:#09090B;
    --surface:#111318;
    --surface2:#1A1D24;
    --accent:#00D4FF;
    --accent2:#7A5CFF;
    --danger:#FF5C7A;
    --text:#FFFFFF;
    --text2:#A3A8B8;
    --radius:18px;
    --shadow:0 10px 40px rgba(0,0,0,.45);
}

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

html,body{
    width:100%;
    height:100%;
    background:var(--bg);
    color:var(--text);
    font-family:"Inter",sans-serif;
    overflow:hidden;
}

body{
    display:flex;
    flex-direction:column;
}

#background{
    position:fixed;
    inset:0;
    background:
    radial-gradient(circle at top left,#00d4ff22,transparent 40%),
    radial-gradient(circle at bottom right,#7a5cff22,transparent 40%);
    z-index:-1;
}

header{
    height:80px;
    flex-shrink:0;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:18px;
    backdrop-filter:blur(18px);
    background:rgba(20,20,25,.65);
    border-bottom:1px solid rgba(255,255,255,.08);
}

.logo h1{
    font-size:30px;
    font-weight:700;
    letter-spacing:3px;
}

.logo p{
    color:var(--text2);
    font-size:13px;
}

#settingsButton{
    width:48px;
    height:48px;
    border:none;
    border-radius:50%;
    background:var(--surface2);
    color:white;
    font-size:20px;
}

/* Onglets */

#tabBar{
    flex-shrink:0;
    display:flex;
    justify-content:space-around;
    padding:8px 6px;
    background:rgba(17,19,24,.9);
    border-bottom:1px solid rgba(255,255,255,.06);
}

#tabBar button{
    flex:1;
    max-width:80px;
    border:none;
    background:transparent;
    color:var(--text2);
    font-size:20px;
    padding:8px 0;
    border-radius:12px;
}

#tabBar button.active{
    background:var(--surface2);
    color:var(--accent);
}

main{
    flex:1;
    overflow:hidden;
    position:relative;
}

.view{
    display:none;
    height:100%;
}

.view.active{
    display:flex;
    flex-direction:column;
}

.view.scrollable{
    overflow-y:auto;
    padding:16px;
    gap:14px;
}

.view.scrollable.active{
    display:flex;
}

#chat{
    height:100%;
    overflow-y:auto;
    padding:20px;
}

#messages{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.ai,
.user{
    max-width:85%;
    padding:18px;
    border-radius:var(--radius);
    line-height:1.6;
    animation:fade .3s ease;
}

.ai{
    background:var(--surface);
    align-self:flex-start;
    border:1px solid rgba(255,255,255,.06);
}

.user{
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    align-self:flex-end;
    color:#04121a;
}

.bubble-actions{
    display:flex;
    gap:8px;
    margin-top:10px;
}

.bubble-actions button{
    border:none;
    background:rgba(255,255,255,.06);
    border-radius:8px;
    padding:4px 8px;
    font-size:13px;
    color:var(--text2);
}

/* Cartes (dashboard, musique, google, docs) */

.card{
    background:var(--surface);
    border:1px solid rgba(255,255,255,.06);
    border-radius:var(--radius);
    padding:18px;
    box-shadow:var(--shadow);
}

.card h3{
    font-size:15px;
    margin-bottom:10px;
    letter-spacing:.5px;
}

.card .big{
    font-size:32px;
    font-weight:600;
    margin:4px 0;
}

.card .muted{
    color:var(--text2);
    font-size:13px;
}

.card input[type="text"],
.card input[type="password"],
.card input[type="datetime-local"]{
    width:100%;
    padding:12px;
    margin-bottom:10px;
    border:1px solid rgba(255,255,255,.1);
    border-radius:10px;
    background:var(--surface2);
    color:var(--text);
    font-size:14px;
}

.card button{
    width:100%;
    padding:12px;
    border:none;
    border-radius:10px;
    background:var(--surface2);
    color:var(--text);
    font-size:14px;
    margin-top:4px;
}

.card button.danger{
    background:rgba(255,92,122,.15);
    color:var(--danger);
}

.row{
    display:flex;
    gap:8px;
    align-items:center;
}

.row input{
    flex:1;
}

.row button{
    width:auto;
    padding:12px 16px;
}

.clock-row,
.list-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:10px 0;
    border-bottom:1px solid rgba(255,255,255,.05);
    gap:8px;
}

.list-row{
    flex-direction:column;
    align-items:flex-start;
}

.mini{
    width:auto !important;
    padding:2px 8px !important;
    background:transparent !important;
    color:var(--text2) !important;
}

/* Champ texte du chat */

footer{
    flex-shrink:0;
    display:flex;
    align-items:center;
    gap:10px;
    padding:14px 16px;
    background:rgba(17,19,24,.85);
    border-top:1px solid rgba(255,255,255,.06);
}

footer button{
    width:48px;
    height:48px;
    border:none;
    border-radius:50%;
    background:var(--surface2);
    color:white;
    font-size:18px;
    flex-shrink:0;
}

#sendButton{
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    color:#04121a;
}

#prompt{
    flex:1;
    padding:14px 18px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.1);
    background:var(--surface2);
    color:var(--text);
    font-size:15px;
}

#loading{
    position:fixed;
    inset:0;
    display:none;
    flex-direction:column;
    gap:14px;
    align-items:center;
    justify-content:center;
    background:rgba(9,9,11,.85);
    z-index:9999;
}

.loader{
    width:40px;
    height:40px;
    border-radius:50%;
    border:3px solid rgba(255,255,255,.15);
    border-top-color:var(--accent);
    animation:spin .8s linear infinite;
}

#settingsMenu{

position:fixed;

top:0;

right:-320px;

width:300px;

max-width:85vw;

height:100%;

background:#15181f;

padding:24px;

transition:.3s;

z-index:999;

box-shadow:-10px 0 30px rgba(0,0,0,.45);

display:flex;

flex-direction:column;

}

#settingsMenu.open{

right:0;

}

#settingsMenu h2{

margin-bottom:24px;

}

.settings-scroll{

overflow-y:auto;

display:flex;

flex-direction:column;

gap:6px;

}

#settingsMenu label{

font-size:12px;

color:var(--text2);

margin-top:10px;

}

#settingsMenu input[type="text"],
#settingsMenu input[type="password"]{

width:100%;

padding:12px;

border-radius:10px;

border:1px solid rgba(255,255,255,.1);

background:var(--surface2);

color:var(--text);

margin-top:4px;

}

.switch-row{

display:flex;

justify-content:space-between;

align-items:center;

margin-top:14px;

}

#settingsMenu button{

width:100%;

margin-top:16px;

padding:14px;

border:none;

border-radius:12px;

background:#242833;

color:white;

font-size:15px;

}

#snackbar{

position:fixed;

bottom:90px;

left:50%;

transform:translateX(-50%) translateY(120px);

background:#242833;

padding:14px 20px;

border-radius:999px;

transition:.3s;

opacity:0;

z-index:1000;

max-width:80vw;

text-align:center;

}

#snackbar.show{

opacity:1;

transform:translateX(-50%) translateY(0);

}

#splash{

position:fixed;

inset:0;

background:#09090B;

display:flex;

justify-content:center;

align-items:center;

z-index:99999;

transition:.6s;

}

#splash.hide{

opacity:0;

visibility:hidden;

}

.logo-container{

text-align:center;

}

.logo-container h1{

margin-top:24px;

font-size:42px;

letter-spacing:6px;

font-weight:700;

}

.logo-container p{

margin-top:10px;

color:#A3A8B8;

font-size:15px;

}

.core{

width:90px;

height:90px;

border-radius:50%;

margin:auto;

background:linear-gradient(135deg,#00D4FF,#7A5CFF);

box-shadow:

0 0 25px #00D4FF,

0 0 60px #7A5CFF55;

animation:coreAnimation 2s infinite;

}

.dots{

margin-top:24px;

display:flex;

justify-content:center;

gap:10px;

}

.dots span{

width:10px;

height:10px;

border-radius:50%;

background:#00D4FF;

animation:loadingDots 1.2s infinite;

}

.dots span:nth-child(2){

animation-delay:.2s;

}

.dots span:nth-child(3){

animation-delay:.4s;

}
