:root{
  --accent:#8e73ff;
  --accent-rgb:142,115,255;
  --accent-2:#cfc6ff;
  --accent-soft:rgba(142,115,255,.12);
  --surface-strong:#111522;
  --surface-glass:rgba(21,27,44,.82);
}
html[data-theme="light"]{
  --bg:#eef1f7;
  --bg2:#f6f8fc;
  --surface:#ffffff;
  --surface2:#f8f9fd;
  --surface-3:#eef2f8;
  --text:#111728;
  --muted:#657089;
  --line:rgba(20,25,40,.10);
  --soft:rgba(20,25,40,.04);
  --shadow:0 20px 42px rgba(47,61,92,.10);
}
body:before{
  background:
    radial-gradient(circle at 84% -10%, rgba(142,115,255,.18), transparent 30%),
    radial-gradient(circle at 8% 22%, rgba(255,255,255,.05), transparent 24%),
    linear-gradient(180deg, transparent, transparent);
}
.brand{gap:14px}
.brand-mark{width:54px;height:54px;object-fit:contain}
.brand-mark-uploaded{width:54px;height:54px;object-fit:contain}
.brand-copy b{font-size:1.03rem;letter-spacing:.18em;text-transform:uppercase;font-weight:800}
.brand-copy small{display:block;letter-spacing:.34em;text-transform:uppercase;color:var(--accent);font-size:.68rem;margin-top:4px}
.footer-brand .brand-copy b{font-size:1rem}
.primary-btn{border:0;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 88%,#fff 12%),color-mix(in srgb,var(--accent) 80%,#6d54ed 20%));box-shadow:0 14px 30px rgba(var(--accent-rgb),.25)}
.primary-btn:hover{transform:translateY(-1px);box-shadow:0 18px 34px rgba(var(--accent-rgb),.30)}
.ghost-btn{background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 86%,var(--accent) 5%),color-mix(in srgb,var(--surface) 94%,var(--accent) 2%));border-color:color-mix(in srgb,var(--line) 82%,var(--accent) 18%)}
.ghost-btn:hover,.icon-chip-v110:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}

.inbox-shell-v110{padding:22px}
.inbox-filter-v110{padding:0 0 18px;border-bottom:1px solid var(--line);margin-bottom:18px}
.filter-top-v110{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr);gap:16px}
.message-list-v110{display:grid;gap:14px}
.message-row-v110{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px 20px;border-radius:22px;border:1px solid color-mix(in srgb,var(--line) 90%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 94%,var(--accent) 2%),color-mix(in srgb,var(--surface) 98%,var(--accent) 1%));box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
.message-row-v110 h3{margin:0 0 8px;font-size:1.08rem;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.message-row-top-v110{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.message-row-meta-v110{display:flex;gap:10px 16px;flex-wrap:wrap;color:var(--muted);font-size:.92rem}
.message-row-actions-v110{display:flex;gap:10px;align-items:center;justify-content:flex-end}

.chat-board-v110{display:grid;grid-template-columns:290px minmax(0,1fr) 330px;gap:0;padding:0;overflow:hidden;border-radius:28px;min-height:calc(100vh - 180px);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 96%,var(--accent) 2%),color-mix(in srgb,var(--surface) 99%,var(--accent) 1%));}
.chat-context-v110,.chat-side-v110{padding:22px;display:flex;flex-direction:column;gap:16px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface2) 94%,var(--accent) 6%),color-mix(in srgb,var(--surface) 98%,transparent));}
.chat-context-v110{border-right:1px solid var(--line)}
.chat-side-v110{border-left:1px solid var(--line)}
.chat-thread-v110{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto auto;background:linear-gradient(180deg,rgba(255,255,255,.01),transparent)}
.chat-thread-head-v110{padding:22px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;align-items:center}
.thread-title-v110 h3,.chat-context-head h2{margin:6px 0 8px;font-size:1.5rem;line-height:1.08}
.thread-title-v110 p,.chat-context-head p{margin:0}
.thread-actions-v110{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.icon-chip-v110{border:1px solid var(--line);background:var(--soft);color:var(--text);padding:11px 14px;border-radius:14px;cursor:pointer}
.chat-search-v110{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.chat-search-v110 input{background:var(--surface);border-color:var(--line)}
.chat-context-card-v110,.chat-side-card-v110{padding:18px;border-radius:22px;border:1px solid color-mix(in srgb,var(--line) 90%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 96%,var(--accent) 2%),color-mix(in srgb,var(--surface2) 100%,transparent));}
.chat-context-card-v110 h3,.chat-side-card-v110 h3{margin:0 0 12px;font-size:1rem}
.chat-person-v110{display:flex;gap:14px;align-items:center;margin-bottom:16px}
.chat-person-avatar-v110{width:52px;height:52px;border-radius:18px;overflow:hidden;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));font-weight:800}
.chat-person-avatar-v110 img{width:100%;height:100%;object-fit:cover}
.chat-person-v110 b,.chat-person-v110 small{display:block}
.chat-person-v110 small{color:var(--muted);margin-top:4px}
.mini-kpi-grid-v110{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mini-kpi-grid-v110 div{padding:12px 12px 10px;border-radius:16px;background:var(--soft);border:1px solid color-mix(in srgb,var(--line) 82%,transparent)}
.mini-kpi-grid-v110 span,.project-facts-v110 dt{display:block;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.context-actions-v110{display:grid;grid-template-columns:1fr;gap:10px}
.stack-form-v110{display:grid;gap:10px}
.stack-form-v110 textarea{min-height:112px;resize:vertical}
.pin-list-v110{display:grid;gap:10px}
.pin-list-v110 article{padding:12px 14px;border-radius:16px;background:var(--soft);border:1px solid color-mix(in srgb,var(--line) 82%,transparent)}
.pin-list-v110 b,.pin-list-v110 span{display:block}
.pin-list-v110 span{font-size:.8rem;color:var(--muted);margin-top:3px}
.pin-list-v110 p{margin:7px 0 0;color:var(--text)}
.chat-messages-v110{padding:20px 24px;overflow:auto;display:flex;flex-direction:column;gap:14px;min-height:540px;max-height:calc(100vh - 360px);background:radial-gradient(circle at top center, rgba(142,115,255,.05), transparent 28%)}
.chat-bubble-v110{max-width:min(80%,720px);padding:14px 16px;border-radius:22px;border:1px solid color-mix(in srgb,var(--line) 88%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 98%,transparent),color-mix(in srgb,var(--surface2) 100%,transparent));box-shadow:0 12px 30px rgba(8,10,18,.12)}
.chat-bubble-v110.mine{margin-left:auto;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 20%,var(--surface)),color-mix(in srgb,var(--accent) 15%,var(--surface2)));border-color:color-mix(in srgb,var(--accent) 28%,var(--line))}
.chat-meta-v110{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.chat-meta-avatar{width:38px;height:38px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));font-weight:700;flex:0 0 auto}
.chat-meta-avatar img{width:100%;height:100%;object-fit:cover}
.chat-meta-main{display:grid;gap:4px}
.chat-meta-name-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.chat-meta-name{font-weight:700}
.staff-role-chip{display:inline-flex;padding:4px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent);font-size:.78rem}
.chat-meta-sub,.read-state{font-size:.8rem;color:var(--muted)}
.message-body{line-height:1.58}
.chat-attachment-v110{display:inline-flex;align-items:center;gap:8px;margin-top:12px;padding:11px 14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--line) 88%,transparent);background:var(--soft)}
.chat-attachment-v110:before{content:"📎"}
.message-actions-v110{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding-top:12px;margin-top:12px;border-top:1px solid color-mix(in srgb,var(--line) 82%,transparent)}
.reply-quote{margin-bottom:12px;padding:10px 12px;border-radius:14px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-left:3px solid var(--accent);color:var(--muted)}
.typing-line{min-height:24px;padding:0 24px 8px;color:var(--muted)}
.reply-composer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 24px 14px;padding:12px 14px;border-radius:16px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.reply-composer button{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--soft);cursor:pointer;color:var(--text)}
.chat-compose-v110{padding:18px 24px 24px;border-top:1px solid var(--line);display:grid;gap:14px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface2) 98%,transparent),color-mix(in srgb,var(--surface) 100%,transparent))}
.chat-compose-v110 textarea{min-height:116px;resize:vertical;background:color-mix(in srgb,var(--surface) 98%,transparent)}
.compose-actions-v110{display:grid;gap:12px}
.compose-shortcuts-v110{display:flex;gap:10px;flex-wrap:wrap}
.compose-shortcuts-v110 span{padding:8px 12px;border-radius:999px;background:var(--soft);border:1px solid color-mix(in srgb,var(--line) 82%,transparent);font-size:.84rem;color:var(--muted)}
.compose-bottom-v110{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.file-btn-v110{position:relative;overflow:hidden}
.file-btn-v110 input{position:absolute;inset:0;opacity:0;cursor:pointer}
.chat-side-tabs-v110{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.chat-side-tabs-v110 span{padding:7px 10px;border-radius:999px;font-size:.84rem;color:var(--muted);background:var(--soft)}
.chat-side-tabs-v110 .active{color:var(--text);background:color-mix(in srgb,var(--accent) 13%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 24%,transparent)}
.project-badge-v110{display:inline-flex;padding:6px 12px;border-radius:999px;background:color-mix(in srgb,var(--accent) 16%,transparent);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);margin-bottom:14px}
.project-facts-v110{display:grid;gap:10px;margin:0}
.project-facts-v110 div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent)}
.project-facts-v110 dd{margin:0;text-align:right}
.progress-track-v110{height:10px;border-radius:999px;background:var(--soft);overflow:hidden;margin-top:14px}
.progress-track-v110 span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 58%,#ffffff 42%))}
.side-card-head-v110{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.participants-v110,.note-list-v110{display:grid;gap:10px}
.participant-v110{width:100%;text-align:left;padding:12px 14px;border-radius:16px;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);background:var(--soft);color:var(--text);display:grid;gap:4px;position:relative}
button.participant-v110{cursor:pointer}
.participant-v110 .dot{position:absolute;top:16px;right:16px;width:8px;height:8px;border-radius:50%;background:#41d087;box-shadow:0 0 0 4px rgba(65,208,135,.14)}
.participant-v110 small{color:var(--muted)}
.internal-note-v110{padding:12px 14px;border-radius:16px;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);background:var(--soft)}
.note-head-v110{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}
.note-head-v110 span{font-size:.8rem;color:var(--muted)}
.internal-note-v110 p{margin:0;color:var(--text);line-height:1.55}
.notes-card-v110 textarea{min-height:96px}

html[data-theme="light"] .chat-board-v110{background:linear-gradient(180deg,#ffffff,#f9fbff)}
html[data-theme="light"] .chat-context-v110,html[data-theme="light"] .chat-side-v110{background:linear-gradient(180deg,#fafbff,#f3f6fc)}
html[data-theme="light"] .chat-bubble-v110{box-shadow:0 10px 28px rgba(39,54,86,.08)}
html[data-theme="light"] .chat-bubble-v110.mine{background:linear-gradient(180deg,rgba(142,115,255,.16),rgba(142,115,255,.11))}

@media(max-width:1180px){
  .chat-board-v110{grid-template-columns:270px minmax(0,1fr)}
  .chat-side-v110{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
}
@media(max-width:920px){
  .filter-top-v110{grid-template-columns:1fr}
  .message-row-v110{grid-template-columns:1fr}
  .message-row-actions-v110{justify-content:flex-start;flex-wrap:wrap}
  .chat-board-v110{grid-template-columns:1fr;min-height:auto}
  .chat-context-v110,.chat-side-v110{border:0;border-bottom:1px solid var(--line)}
  .chat-side-v110{grid-template-columns:1fr}
  .chat-thread-v110{order:1}
  .chat-context-v110{order:2}
  .chat-side-v110{order:3}
  .chat-thread-head-v110{padding:18px}
  .chat-messages-v110{padding:16px;max-height:none;min-height:400px}
  .chat-bubble-v110{max-width:92%}
  .typing-line{padding:0 16px 8px}
  .reply-composer{margin:0 16px 12px}
  .chat-compose-v110{padding:16px}
}
@media(max-width:640px){
  .brand-mark,.brand-mark-uploaded{width:46px;height:46px}
  .brand-copy b{font-size:.95rem;letter-spacing:.14em}
  .brand-copy small{font-size:.62rem;letter-spacing:.25em}
  .inbox-shell-v110{padding:16px}
  .chat-context-v110,.chat-side-v110{padding:16px}
  .chat-thread-head-v110{display:grid;gap:12px}
  .thread-actions-v110{justify-content:flex-start}
  .mini-kpi-grid-v110{grid-template-columns:1fr 1fr}
  .chat-messages-v110{min-height:320px}
  .chat-bubble-v110{max-width:100%;padding:13px 14px}
  .compose-bottom-v110{flex-direction:column;align-items:stretch}
  .compose-bottom-v110 .primary-btn,.compose-bottom-v110 .ghost-btn{width:100%}
  .chat-side-tabs-v110{font-size:.8rem}
  .message-row-v110{padding:16px}
}
