:root{--sable:#f2ede4;--sable-clair:#f7f3ec;--sable-fonce:#e4dbc9;--ivoire:#fbf8f2;--charbon:#333132;--charbon-clair:#5a5757;--or:#b8965a;--or-clair:#d4b783;--noir:#0a0a0a;--gris:#9a938a;--ok:#3f7d4e;--err:#a33c2e}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--sable);color:var(--charbon);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.55}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.card{background:var(--ivoire);border:1px solid var(--sable-fonce);border-radius:10px;padding:28px}.brand{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--or);font-weight:600}h1{font-size:24px;margin:10px 0 6px;letter-spacing:-.01em}.muted{color:var(--charbon-clair)}.faint{color:var(--gris);font-size:12.5px}.stack{display:flex;flex-direction:column;gap:14px}.label{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--charbon-clair);margin-bottom:5px}.input,select.input,textarea.input{width:100%;border:1px solid var(--sable-fonce);border-radius:6px;background:#fff;color:var(--charbon);padding:10px 12px;font:inherit}.input:focus{outline:2px solid var(--or);outline-offset:1px;border-color:var(--or)}.btn{display:inline-flex;align-items:center;gap:8px;background:var(--charbon);color:var(--ivoire);border:none;border-radius:6px;padding:10px 18px;font-weight:600}.btn:hover{background:var(--noir)}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:transparent;border:1px solid var(--sable-fonce);color:var(--charbon)}.btn.ghost:hover{border-color:var(--or)}.btn.small{padding:6px 12px;font-size:13px;font-weight:500}.btn.danger{background:#b3402e}.btn.danger:hover{background:#98311f}.btn.ghost.danger{background:transparent;color:var(--err);border-color:#e3c6bf}.btn.ghost.danger:hover{border-color:var(--err);background:transparent}.alert{border-radius:6px;padding:10px 14px;font-size:14px}.alert.error{background:#f7e5e1;color:var(--err)}.alert.ok{background:#e7efe8;color:var(--ok)}.linklike{background:none;border:none;padding:0;color:var(--charbon);font-size:13px;text-decoration:underline;cursor:pointer}.linklike:hover{color:var(--or)}.shell{display:flex;min-height:100vh}.side{width:220px;flex:none;background:var(--charbon);color:var(--ivoire);display:flex;flex-direction:column;padding:20px 14px;gap:4px}.side .logo{font-size:16px;font-weight:600;padding:4px 10px 18px}.side .logo span{color:var(--or-clair)}.side a{padding:9px 12px;border-radius:6px;color:rgba(251,248,242,.8);font-size:14px}.side a:hover{background:rgba(251,248,242,.08);color:var(--ivoire)}.side a.active{background:rgba(184,150,90,.22);color:var(--or-clair)}.side .foot{margin-top:auto;padding:10px;font-size:12px;color:rgba(251,248,242,.5)}.main{flex:1 1;padding:26px 30px;min-width:0}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.pagehead h1{margin:0}.inbox{display:grid;grid-template-columns:340px 1fr;grid-gap:16px;gap:16px;height:calc(100vh - 120px);min-height:480px}.convlist{display:flex;flex-direction:column;background:var(--ivoire);border:1px solid var(--sable-fonce);border-radius:10px;overflow:hidden}.convlist .filters{display:flex;gap:6px;padding:10px;border-bottom:1px solid var(--sable-fonce);flex-wrap:wrap}.pill{border:1px solid var(--sable-fonce);background:transparent;border-radius:999px;padding:4px 12px;font-size:12.5px;color:var(--charbon-clair)}.pill.on{background:var(--charbon);border-color:var(--charbon);color:var(--ivoire)}.convscroll{overflow-y:auto;flex:1 1}.convitem{display:block;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--sable-clair);padding:12px 14px}.convitem.sel,.convitem:hover{background:var(--sable-clair)}.convitem.sel{box-shadow:inset 3px 0 0 var(--or)}.convitem .top{display:flex;justify-content:space-between;gap:8px;font-size:13px;margin-bottom:3px}.convitem .who{font-weight:600}.convitem .when{color:var(--gris);font-size:11.5px;white-space:nowrap}.convitem .preview{color:var(--charbon-clair);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{display:inline-block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;border-radius:3px;padding:1.5px 6px;margin-right:6px}.badge.famille{background:#e8e3f1;color:#4c3d78}.badge.immigration{background:#e2ecf1;color:#2e5a74}.badge.ticket{background:#e6efe4;color:#3d6b3a}.badge.penal{background:#f2e4e2;color:#8a3d34}.badge.option{background:#efeae0;color:#6b5a2e}.badge.live{background:#e7efe8;color:var(--ok)}.badge.ai{background:#f3ead9;color:#8a6a2e}.badge.offline{background:var(--sable-clair);color:var(--gris)}.badge.ended{background:#f7e5e1;color:var(--err)}.badge.pin{background:var(--or);color:var(--ivoire)}.badge.division{background:#e6ebf3;color:#2f4a7a;text-transform:none;letter-spacing:0}.presencebar{justify-content:space-between;align-items:center;margin-bottom:12px;padding:8px 12px;background:var(--ivoire);border:1px solid var(--sable-fonce);border-radius:8px}.presencebar,.presencebar .agents{display:flex;gap:12px;flex-wrap:wrap}.agentchip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--charbon-clair)}.statusdot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#cfc7b6}.statusdot.actif{background:var(--ok)}.statusdot.occupe{background:#d98a2b}.statusdot.absente{background:#b0a58f}.statusdot.offline{background:#cfc7b6}.mystatus{font-size:12.5px;color:var(--charbon-clair);display:inline-flex;align-items:center;white-space:nowrap}.mystatus select{font:inherit;padding:3px 6px;border:1px solid var(--sable-fonce);border-radius:6px;background:var(--sable-clair)}.badge.assigned{background:#f3ead9;color:#8a6a2e;text-transform:none;letter-spacing:0}.badge.assigned.mine{background:#e7efe8;color:var(--ok)}.composer.locked{display:flex;align-items:center;justify-content:space-between;gap:12px}.convpane{display:flex;flex-direction:column;background:var(--ivoire);border:1px solid var(--sable-fonce);border-radius:10px;overflow:hidden}.convpane .head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-bottom:1px solid var(--sable-fonce)}.convpane .head .title{font-weight:600}.convpane .head .actions,.thread{display:flex;gap:8px}.thread{flex:1 1;overflow-y:auto;padding:16px;flex-direction:column;background:var(--sable-clair)}.bubble{max-width:74%;border-radius:10px;padding:9px 13px;font-size:14px;white-space:pre-wrap;word-wrap:break-word}.bubble .meta{display:block;font-size:10px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:3px;opacity:.65}.bubble.visitor{align-self:flex-start;background:#fff;border:1px solid var(--sable-fonce)}.bubble.agent{align-self:flex-end;background:var(--charbon);color:var(--ivoire)}.bubble.ai{align-self:flex-end;background:#f3ead9;border:1px solid var(--or-clair)}.bubble.system{align-self:center;background:transparent}.bubble.system,.typinghint{color:var(--gris);font-size:12.5px;font-style:italic}.typinghint{padding:0 16px 6px}.composer{display:flex;gap:8px;padding:12px;border-top:1px solid var(--sable-fonce);background:var(--ivoire);align-items:flex-end}.composer textarea{flex:1 1;resize:none;min-height:44px;max-height:120px}.snippetbar{display:flex;gap:6px;padding:8px 12px 0;flex-wrap:wrap;background:var(--ivoire)}.empty{flex:1 1;display:flex;align-items:center;justify-content:center;color:var(--gris);font-style:italic}table.data{width:100%;border-collapse:collapse;background:var(--ivoire);border:1px solid var(--sable-fonce);border-radius:10px;overflow:hidden}table.data th{text-align:left;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--charbon-clair);padding:10px 14px;border-bottom:1px solid var(--sable-fonce);background:var(--sable-clair)}table.data td{padding:10px 14px;border-bottom:1px solid var(--sable-clair);font-size:14px}table.data tr:last-child td{border-bottom:none}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;align-items:start}@media (max-width:900px){.grid2,.inbox{grid-template-columns:1fr}.inbox{height:auto}}