:root{--navy:#061033;--navy2:#10204D;--coral:#F4795B;--glacier:#8FA9D0;
--card:#F4F1EC;--body:#2B3440;--muted:#8A93A0;--white:#FFFFFF}
*{box-sizing:border-box}
body{margin:0;font:16px/1.5 system-ui,Segoe UI,Roboto,sans-serif;
color:var(--body);background:#FAF9F7}
header{display:flex;justify-content:space-between;align-items:center;
padding:14px 28px;background:var(--navy);color:var(--white)}
.brand{color:var(--white);text-decoration:none;font-weight:700;
letter-spacing:.12em}
.brand span{color:var(--glacier);font-weight:400;letter-spacing:0}
header nav a{color:var(--glacier);text-decoration:none}
main{max-width:1200px;margin:28px auto;padding:0 20px}
h1,h2{font-family:Georgia,Cambria,serif;color:var(--navy)}
h1{font-size:1.7rem}h2{font-size:1.1rem;margin-top:0}
.card{background:var(--white);border:1px solid #E8E5DE;border-radius:10px;
padding:18px;box-shadow:0 2px 6px rgba(6,16,51,.06)}
.login{max-width:380px;margin:70px auto}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
gap:16px;margin-top:18px}
.proj{display:block;text-decoration:none;color:inherit}
.proj:hover{border-color:var(--coral)}
.cols{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;
align-items:start}
@media(max-width:900px){.cols{grid-template-columns:1fr}}
aside>.card{margin-bottom:16px}
#chat{max-height:420px;overflow-y:auto;border:1px solid #EEE;
border-radius:8px;padding:10px;background:#FCFBF9;margin-bottom:10px}
.msg pre{white-space:pre-wrap;margin:0;font:inherit}
.msg{padding:8px 12px;border-radius:8px;margin:6px 0}
.msg-user{background:var(--navy);color:var(--white);margin-left:14%}
.msg-bot{background:var(--card);margin-right:8%}
.msg-sys{background:#EAF0F8;color:var(--muted);font-size:.85rem}
textarea,input[type=text],input[type=password],input[name=nom],
input[name=instruction]{width:100%;padding:10px;border:1px solid #D8D4CC;
border-radius:8px;font:inherit;margin:6px 0}
button,.btn{background:var(--coral);color:#fff;border:none;padding:9px 16px;
border-radius:8px;font:inherit;cursor:pointer;text-decoration:none;
display:inline-block;margin:4px 4px 0 0}
button:hover{filter:brightness(.95)}
.actions{margin-top:12px}
.newproj{display:flex;gap:10px;max-width:480px}
.hint{color:var(--muted);font-size:.9rem}
.ok{color:#2C7A4B}.err{color:#B3261E}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,
minmax(280px,1fr));gap:14px;margin:18px 0}
.gallery img{width:100%;border:1px solid #E3E0D9;border-radius:6px}
figure{margin:0}figcaption{font-size:.85rem;color:var(--muted)}
.htmx-indicator{display:none;position:fixed;bottom:20px;right:20px;
background:var(--navy);color:#fff;padding:10px 18px;border-radius:8px}
.htmx-request .htmx-indicator,.htmx-request.htmx-indicator{display:block}
