: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}