:root{--bg:#f3f5f9;--card:#fff;--line:#e5e8ef;--txt:#1b2332;--mut:#6b7689;--acc:#4f46e5;--accbg:#eef0ff;--ok:#16a34a;--okbg:#e8f7ee;--warn:#d97706;--warnbg:#fff4e0;--err:#dc2626;--errbg:#fdeaea;--sh:0 1px 2px rgba(20,30,60,.05),0 4px 14px rgba(20,30,60,.05)}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--txt);font:14px/1.4 -apple-system,"Segoe UI",Roboto,Arial,sans-serif}
[hidden]{display:none!important}svg{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
i[data-i],span[data-i],.logo{display:inline-flex}
button{font:inherit;cursor:pointer;border:0;border-radius:10px;padding:8px 14px;background:var(--acc);color:#fff;font-weight:600}
button:disabled{opacity:.5;cursor:default}
input[type=text],input[type=password],#chatIn{font:inherit;border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 12px;color:var(--txt);min-width:0}
#chatIn:focus,#tok:focus{outline:2px solid var(--accbg);border-color:var(--acc)}
/* login */
#login{display:flex;min-height:100vh;align-items:center;justify-content:center}
#loginForm{background:#fff;border:1px solid var(--line);box-shadow:var(--sh);padding:30px;border-radius:16px;width:min(340px,92vw);display:flex;flex-direction:column;gap:12px;align-items:stretch;text-align:center}
#loginForm h1{margin:0;font-size:18px}#loginErr{color:var(--err);margin:0;min-height:1em;font-size:13px}
.logo{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;align-items:center;justify-content:center;font-size:20px;margin:0 auto}
/* shell: everything fits one screen */
#app{display:flex;height:100vh;overflow:hidden}
aside{width:210px;background:#fff;border-right:1px solid var(--line);padding:16px 12px;flex-shrink:0;display:flex;flex-direction:column;gap:14px}
.brand{display:flex;gap:10px;align-items:center;font-weight:700}.brand .logo{margin:0;width:34px;height:34px;font-size:17px}.brand small{display:block;font-weight:500;font-size:11px;color:var(--mut)}
.ag{display:flex;gap:10px;align-items:center;width:100%;text-align:left;background:transparent;color:var(--txt);padding:9px;border-radius:12px;margin-bottom:4px;font-weight:500;border:1px solid transparent}
.ag.sel{background:var(--accbg);border-color:#dfe2ff}.ag b{display:block;font-size:14px}.ag small{color:var(--mut);font-size:12px}
.av{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700;position:relative;flex-shrink:0}
.av.big{width:46px;height:46px;font-size:19px}.av .st{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border-radius:50%;border:2px solid #fff;background:#9aa4b5}.av .st.live{background:var(--ok)}.av .st.standby{background:#3b82f6}.av .st.offline{background:var(--err)}
.badge{background:var(--warn);color:#fff;border-radius:10px;padding:0 7px;font-size:11px;font-weight:700;margin-left:6px}
main{flex:1;min-width:0;padding:14px 18px;display:flex;flex-direction:column;gap:12px;height:100vh}
header#agentHead{display:flex;align-items:center;gap:12px}header h1{margin:0;font-size:21px;line-height:1.1}header .title{color:var(--mut);margin:0;font-size:13px}
.chips{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.chip{display:inline-flex;align-items:center;gap:5px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:4px 10px;font-size:12px;color:var(--txt)}
.chip .d{width:7px;height:7px;border-radius:50%;background:var(--ok)}.chip.unknown .d{background:var(--warn)}.chip.needed .d{background:var(--err)}.chip.needed{color:var(--mut)}
/* KPI tiles */
#kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 12px;box-shadow:var(--sh);display:flex;gap:10px;align-items:center}
.kpi .ic{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;background:var(--accbg);color:var(--acc);flex-shrink:0}
.kpi.ok .ic{background:var(--okbg);color:var(--ok)}.kpi.warn .ic{background:var(--warnbg);color:var(--warn)}.kpi.err .ic{background:var(--errbg);color:var(--err)}
.kpi b{display:block;font-size:22px;line-height:1.05}.kpi span{font-size:12px;color:var(--mut)}
/* grid */
.grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,.95fr);gap:12px}
.col{display:flex;flex-direction:column;gap:12px;min-height:0;min-width:0}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;box-shadow:var(--sh);min-width:0;display:flex;flex-direction:column}
.card.grow{flex:1;min-height:0}
.card h2{margin:0 0 8px;font-size:13px;font-weight:700;color:var(--txt);display:flex;align-items:center;gap:7px}.card h2 i{color:var(--acc);font-size:16px}.card h2 small{font-weight:400;color:var(--mut);margin-left:auto}
/* weekly bars */
#week{display:flex;gap:7px;align-items:flex-end;height:74px}.wk{flex:1;text-align:center;font-size:11px;color:var(--mut);display:flex;flex-direction:column;justify-content:flex-end;height:100%}
.wk .bar{background:linear-gradient(180deg,#818cf8,#6366f1);border-radius:6px 6px 2px 2px;min-height:3px;margin-bottom:3px}.wk .bar.z{background:var(--line)}.wk em{font-style:normal;font-weight:600;color:var(--txt);font-size:11px}
/* pipeline bars */
#pipe{display:flex;flex-direction:column;gap:5px;overflow:hidden}.pl{display:grid;grid-template-columns:minmax(0,1.1fr) 1.2fr 26px;gap:8px;align-items:center;font-size:12px}
.pl span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--mut)}.pl .tr{background:#eef0f6;border-radius:6px;height:8px;overflow:hidden}.pl .tr i{display:block;height:100%;background:#6366f1;border-radius:6px}.pl b{text-align:right}
/* feed */
#feed{flex:1;min-height:0;overflow:auto}.ev{display:flex;gap:9px;padding:7px 0;border-bottom:1px solid #f0f2f6;align-items:flex-start}.ev:last-child{border:0}
.ev .ic{width:24px;height:24px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;background:#eef0f6;color:var(--mut);flex-shrink:0}
.ev.ok .ic{background:var(--okbg);color:var(--ok)}.ev.warn .ic{background:var(--warnbg);color:var(--warn)}.ev.error .ic{background:var(--errbg);color:var(--err)}.ev.step .ic{background:var(--accbg);color:var(--acc)}
.ev .m{font-size:12.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;flex:1}.ev time{font-size:11px;color:var(--mut);white-space:nowrap}
/* chat */
.chat h2 .rule{margin-left:auto;display:flex;align-items:center;gap:6px;font-weight:500;font-size:12px;color:var(--mut);cursor:pointer;position:relative}
.rule input{position:absolute;opacity:0}.sw{width:30px;height:17px;background:#cfd5e1;border-radius:10px;position:relative;transition:.15s}.sw:after{content:"";position:absolute;left:2px;top:2px;width:13px;height:13px;background:#fff;border-radius:50%;transition:.15s}
.rule input:checked+.sw{background:var(--acc)}.rule input:checked+.sw:after{left:15px}.rule input:checked~*{color:var(--acc)}
#msgs{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:8px;padding:2px 2px 8px}
.msg{padding:8px 12px;border-radius:14px;max-width:88%;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13.5px}.msg.user{background:var(--acc);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.msg.agent{background:#f0f2f8;align-self:flex-start;border-bottom-left-radius:4px}
.msg.rule:before{content:"RULE  ";font-size:10px;font-weight:700;opacity:.8}
#chatForm{display:flex;gap:8px;align-items:center}#chatIn{flex:1}.send,.mic{width:40px;height:40px;padding:0;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.mic{background:#eef0f6;color:var(--acc)}.mic.rec{background:var(--err);color:#fff;animation:pulse 1.1s infinite}@keyframes pulse{50%{box-shadow:0 0 0 7px rgba(220,38,38,.18)}}
.hint{color:var(--mut);font-size:11.5px;margin:6px 0 0}.empty{color:var(--mut);font-size:13px;text-align:center;padding:14px 0}
/* approvals */
#props{max-height:210px;overflow:auto}.pr{padding:8px 10px;border-radius:10px;background:var(--warnbg);margin-bottom:7px}.pr p{margin:0 0 6px;font-size:12.5px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.pr .btns{display:flex;gap:6px}.pr button{padding:5px 12px;font-size:12px}.pr button.bad{background:#fff;color:var(--err);border:1px solid #f3c4c4}
.clear{display:flex;align-items:center;gap:8px;color:var(--ok);font-size:13px;padding:6px 0}.clear i{font-size:18px}
/* tabs */
.tabs{padding-top:8px}#tabs{display:flex;gap:4px;margin-bottom:8px;background:#f0f2f8;border-radius:10px;padding:3px}
#tabs button{flex:1;background:transparent;color:var(--mut);padding:6px 4px;font-size:12px;display:flex;gap:5px;align-items:center;justify-content:center}#tabs button.on{background:#fff;color:var(--acc);box-shadow:var(--sh)}
#tabBody{flex:1;min-height:0;overflow:auto;font-size:12.5px}
.row{display:flex;gap:8px;align-items:flex-start;padding:6px 0;border-bottom:1px solid #f0f2f6}.row:last-child{border:0}.row .d{width:8px;height:8px;border-radius:50%;margin-top:5px;background:#cbd2df;flex-shrink:0}.row .d.active,.row .d.ok{background:var(--ok)}.row .d.partial{background:var(--warn)}
.row .x{margin-left:auto;background:transparent;color:var(--mut);padding:2px 5px}.row small{color:var(--mut);display:block}
.note{white-space:pre-wrap;color:#344054;line-height:1.5}
@media(max-width:1000px){body{overflow:auto}#app{flex-direction:column;height:auto;overflow:visible}main{height:auto}aside{width:auto;flex-direction:row;overflow:auto;border-right:0;border-bottom:1px solid var(--line)}.brand{display:none}.ag{width:auto}
#kpis{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.col{min-height:auto}#msgs{min-height:260px}#feed{max-height:300px}}

.av img{width:100%;height:100%;border-radius:50%;object-fit:cover;position:absolute;inset:0}

.ev.click{cursor:pointer}.ev.newedit{background:var(--okbg);border-radius:10px;padding:8px;margin:2px -4px;border:1px solid #bfe8cd}.ev.newedit .ic{background:var(--ok);color:#fff}.ev.newedit .m{font-weight:600;color:#14532d}
.pr.edit{background:var(--okbg)}.row.click{cursor:pointer}.row .st{font-size:10px;font-weight:700;text-transform:uppercase;border-radius:8px;padding:2px 7px;background:#eef0f6;color:var(--mut);white-space:nowrap}
.row .st.ready{background:var(--ok);color:#fff}.row .st.asking{background:var(--warn);color:#fff}.row .st.working,.row .st.queued,.row .st.delivering,.row .st.approved{background:var(--accbg);color:var(--acc)}.row .st.failed,.row .st.delivery_failed{background:var(--errbg);color:var(--err)}.row .st.delivered{background:var(--okbg);color:var(--ok)}
#modal{position:fixed;inset:0;background:rgba(20,28,45,.55);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.mcard{background:#fff;border-radius:16px;padding:18px;width:min(460px,96vw);max-height:94vh;overflow:auto;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.mcard h3{margin:0 28px 2px 0;font-size:17px}.mcard .sub{color:var(--mut);margin:2px 0 10px;font-size:12.5px}.mcard video{width:100%;max-height:62vh;background:#000;border-radius:12px;display:block;margin-bottom:10px}
.mx{position:absolute;right:12px;top:10px;background:#eef0f6;color:var(--txt);padding:2px 10px;font-size:18px;line-height:1.2}.macts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.macts button.ghost{background:#fff;color:var(--txt);border:1px solid var(--line)}
.q{background:var(--warnbg);border-radius:10px;padding:8px 10px;margin:8px 0;font-size:13px}.q.err{background:var(--errbg);color:var(--err)}.mcard textarea{width:100%;min-height:64px;margin-top:8px;border:1px solid var(--line);border-radius:10px;padding:8px;font:inherit}
.steps{margin-top:12px;font-size:11.5px;color:var(--mut);border-top:1px solid var(--line);padding-top:8px}.link{align-self:center;color:var(--acc);font-weight:600}
/* status dots are always green for every agent (owner request) */
.av .st,.av .st.live,.av .st.standby,.av .st.offline,.av .st.idle{background:var(--ok)!important}
.hint:empty{display:none}

.msg.typing{color:var(--mut);font-style:italic;animation:blink 1.4s infinite}@keyframes blink{50%{opacity:.45}}

#chatIn{resize:none;line-height:1.35;max-height:140px;overflow-y:auto;height:40px;display:block}
#chatForm{align-items:flex-end!important}

#attachStrip{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.thumb{position:relative;width:54px;height:54px;border-radius:10px;overflow:hidden;border:1px solid var(--line)}.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb button{position:absolute;top:2px;right:2px;width:18px;height:18px;padding:0;border-radius:50%;background:rgba(20,28,45,.75);color:#fff;font-size:12px;line-height:1}
.msg .pics{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.msg .pics img{max-width:150px;max-height:120px;border-radius:8px;cursor:zoom-in;display:block}
#lightbox{position:fixed;inset:0;background:rgba(10,15,28,.85);display:flex;align-items:center;justify-content:center;z-index:60;cursor:zoom-out}#lightbox img{max-width:94vw;max-height:92vh;border-radius:10px}
.chat.drop{outline:2px dashed var(--acc);outline-offset:-6px}

/* Slack-style chat */
#msgs{gap:2px!important;padding:2px 0 8px!important}
.m2{display:flex;gap:10px;padding:5px 8px;border-radius:8px;position:relative}.m2:hover{background:#f5f6fa}.m2.grouped{padding-top:0;padding-bottom:1px}
.m2 .av{width:36px;height:36px;border-radius:8px;font-size:14px;flex-shrink:0}.m2 .av img{border-radius:8px}.av.owner{background:linear-gradient(135deg,#0ea5e9,#6366f1)}
.m2 .gtime{width:36px;flex-shrink:0;text-align:right;font-size:10px;color:transparent;padding-top:3px;user-select:none}.m2.grouped:hover .gtime{color:var(--mut)}
.mbody{min-width:0;flex:1}.mhead{display:flex;gap:8px;align-items:baseline;line-height:1.2;margin-bottom:1px}.mhead b{font-size:14px;color:var(--txt)}.mhead time{font-size:11.5px;color:var(--mut)}
.rtag{font-size:9.5px;font-weight:700;color:var(--acc);background:var(--accbg);border-radius:6px;padding:1px 6px}
.mtext{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.45}.m2.typing .mtext{color:var(--mut);font-style:italic;animation:blink 1.4s infinite}
.m2 .pics{margin:2px 0 4px}
.m2 .pics img{max-width:260px;max-height:200px;border-radius:8px;cursor:zoom-in;display:block;border:1px solid var(--line)}
#msgs{overflow-x:hidden!important}.mbody{max-width:100%}

.pr.blk{background:#fdeaea}.pr.blk p{color:#7a1f1f}
/* Josh's Tasks */
#tasksBtn .av.tk{background:linear-gradient(135deg,#10b981,#0ea5e9);font-size:18px}
#tasksMain header{display:flex;align-items:center;gap:12px}#tasksMain header button.ghost{margin-left:auto;background:#fff;color:var(--txt);border:1px solid var(--line)}
#tasksBody{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:12px;max-width:860px;width:100%}
.tk-day{margin:12px 0 4px;font-size:12px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
.tk-row{display:flex;gap:12px;align-items:flex-start;padding:10px 4px;border-top:1px solid var(--line)}
.tk-row .tk-main{flex:1;min-width:0}.tk-text{font-weight:600;font-size:14px}.tk-main small{display:block;color:var(--mut);font-size:12px;margin-top:2px}.tk-orig{font-style:italic}
.tk-chk{width:24px;height:24px;padding:0;border-radius:7px;border:2px solid #c5cbd8;background:#fff;color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px;margin-top:1px}
.tk-chk.on{background:var(--ok);border-color:var(--ok)}.tk-chk:hover:not(.on){border-color:var(--ok)}
.tk-row.done .tk-text{text-decoration:line-through;color:var(--mut);font-weight:500}
.tk-side{display:flex;gap:8px;align-items:center;flex-shrink:0}.tk-side a{font-size:12px;color:var(--acc);text-decoration:none;white-space:nowrap}.tk-side a:hover{text-decoration:underline}
.tk-side button.ghost{background:#fff;color:var(--txt);border:1px solid var(--line);padding:4px 10px;font-size:12px}
.tk-fold{padding:6px 14px}.tk-h{background:transparent;color:var(--txt);text-align:left;padding:8px 0;font-weight:600;width:100%}
#tasksBody>.card{flex-shrink:0}
/* approval stage + tickets (7 Nov 2026) */
.tk-stack{display:flex;flex-direction:column;gap:10px}
.sec-need{border-color:#f6c98a;background:#fffaf2}.sec-appr{border-color:#c9cdf7}
.tk-why{color:var(--warn)!important}
.ap-card,.tkt{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff;display:flex;flex-direction:column;gap:8px}
.ap-top{display:flex;gap:12px;align-items:flex-start}.ap-top .tk-main{flex:1;min-width:0}
.ap-tag{align-self:flex-start;background:var(--okbg);color:var(--ok);font-size:11px;font-weight:700;border-radius:20px;padding:2px 9px}
.ap-why{margin:0;font-size:13.5px}.ap-p{margin:0;font-size:13px;color:var(--txt)}
.ap-lbl{font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}
.ap-plan{margin:0;padding-left:20px;font-size:13px;display:flex;flex-direction:column;gap:2px}
.ap-btns{display:flex;gap:8px;flex-wrap:wrap}
button.ok{background:var(--ok)}button.ghost{background:#fff;color:var(--txt);border:1px solid var(--line)}button.sm{padding:3px 10px;font-size:12px}
button.link{background:transparent;color:var(--acc);padding:2px 0;font-weight:600;font-size:13px;align-self:flex-start}
.tkt.needs_input,.tkt.interrupted,.tkt.failed{border-color:#f6c98a}.tkt.done{border-color:#b7e3c6}.tkt.working{border-color:#c9cdf7}
.tkt-pill{font-size:11px;font-weight:700;border-radius:20px;padding:3px 10px;white-space:nowrap;background:#eef0f4;color:var(--mut)}
.tkt-pill.work{background:var(--accbg);color:var(--acc)}.tkt-pill.need{background:var(--warnbg);color:var(--warn)}.tkt-pill.ready{background:var(--okbg);color:var(--ok)}
.tkt-log{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow:auto}
.tkt-sys{font-size:12px;color:var(--mut);text-align:center}
.tkt-msg{border-radius:10px;padding:7px 10px;font-size:13px;max-width:92%}.tkt-msg b{display:block;font-size:11px;color:var(--mut);margin-bottom:1px}
.tkt-msg.gh{background:#f3f5f9;align-self:flex-start}.tkt-msg.me{background:var(--accbg);align-self:flex-end}
.tkt-body{white-space:pre-wrap;overflow-wrap:anywhere}
.tkt-reply{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.tkt-reply textarea,.tkt-reply input{flex:1;min-width:220px;font:inherit;border:1px solid var(--line);border-radius:10px;padding:8px 10px;resize:vertical}
.tkt-reply.secret input{border-color:#f6c98a;background:#fffaf2}.tkt-lock{flex-basis:100%;color:var(--mut);font-size:12px}
.tkt-res{display:flex;flex-direction:column;gap:6px;background:#f6fbf8;border-radius:10px;padding:10px 12px}
.tkt-sum,.tkt-left{margin:0;font-size:13.5px}.tkt-rep{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px;max-height:420px;overflow:auto}
.tkt-files{font-size:13px;display:flex;gap:10px;flex-wrap:wrap}.tkt-files a{color:var(--acc);text-decoration:none}.tkt-files a:hover{text-decoration:underline}
.ap-left{color:var(--mut);font-size:12px}
.tkt-res button.sm{align-self:flex-start}
/* CSM Hub */
#csmBtn .av.cs{background:linear-gradient(135deg,#f43f5e,#f59e0b);font-size:18px}.badge.risk{background:var(--err)}
#csmMain header{display:flex;align-items:center;gap:12px}#csmMain header button.ghost{margin-left:auto;background:#fff;color:var(--txt);border:1px solid var(--line)}
#csmBody{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:12px;max-width:1180px;width:100%;padding-bottom:20px}
.cm-tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.cm-tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:#fff;color:var(--txt);border:1px solid var(--line);border-radius:14px;padding:10px 14px;box-shadow:var(--sh);text-align:left;font-weight:500}
.cm-tile b{font-size:24px;line-height:1.1}.cm-tile span{font-size:12px;color:var(--mut)}.cm-tile.static{cursor:default}.cm-tile.on{outline:2px solid var(--acc)}
.cm-tile.t-err b{color:var(--err)}.cm-tile.t-warn b{color:var(--warn)}.cm-tile.t-ok b{color:var(--ok)}
.cm-bar2{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.cm-bar2 input,.cm-bar2 select{font:inherit;border:1px solid var(--line);background:#fff;border-radius:10px;padding:7px 10px;color:var(--txt)}.cm-bar2 input{width:200px}
.cm-filters{display:flex;gap:6px;flex-wrap:wrap;margin-right:auto}.cm-f{background:#fff;color:var(--txt);border:1px solid var(--line);border-radius:20px;padding:5px 12px;font-size:13px;font-weight:500}.cm-f.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.cm-list{display:flex;flex-direction:column;gap:8px}
.cm-card{background:#fff;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:14px;box-shadow:var(--sh)}
.cm-card.err{border-left-color:var(--err)}.cm-card.warn{border-left-color:var(--warn)}.cm-card.ok{border-left-color:var(--ok)}
.cm-row{display:grid;grid-template-columns:52px minmax(170px,1.5fr) 1fr 1.35fr .9fr auto 14px;gap:14px;align-items:center;padding:11px 14px;cursor:pointer;border-radius:14px}
.cm-row:hover,.cm-row:focus-visible{background:#f8f9fc;outline:none}
.cm-ring{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:4px solid var(--line);font-size:16px}
.cm-ring.err{border-color:var(--err);color:var(--err)}.cm-ring.warn{border-color:var(--warn);color:var(--warn)}.cm-ring.ok{border-color:var(--ok);color:var(--ok)}.cm-ring.mut{color:var(--mut)}
.cm-name{min-width:0}.cm-name b{display:block;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cm-name small{display:block;color:var(--mut);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-top{display:block;font-size:12px;margin-top:3px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.cm-top.bad{color:var(--err)}.cm-top.ok{color:var(--ok)}
.cm-sig{min-width:0}.cm-lbl{display:block;font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}
.cm-sub{display:block;font-size:12px;color:var(--mut);margin-top:3px}.cm-sub.err{color:var(--err);font-weight:600}.cm-none{font-size:12.5px;color:var(--mut)}
.cm-dots{display:flex;gap:5px;align-items:center;min-height:16px}.cm-dot{width:14px;height:14px;border-radius:50%;background:#cbd2de;flex-shrink:0;display:inline-block}
.cm-dot.held{background:var(--ok)}.cm-dot.missed{background:var(--err)}.cm-dot.cancelled{background:#cbd2de}
.cm-said{display:flex;gap:5px 10px;flex-wrap:wrap;font-size:12.5px}.cm-n b{font-size:14px}.cm-n.err b{color:var(--err)}.cm-n.ok b{color:var(--ok)}.cm-n.zero{color:var(--mut)}.cm-n.zero b{color:var(--mut)}
.cm-cpl{display:flex;gap:8px;align-items:baseline}.cm-cpl b{font-size:18px}.cm-tr{font-size:12.5px;font-weight:700}.cm-tr.err{color:var(--err)}.cm-tr.ok{color:var(--ok)}
.cm-pill{border-radius:20px;padding:3px 10px;font-size:12px;font-weight:700;white-space:nowrap}.cm-pill.err{background:var(--errbg);color:var(--err)}.cm-pill.warn{background:var(--warnbg);color:var(--warn)}.cm-pill.ok{background:var(--okbg);color:var(--ok)}.cm-pill.mut{background:#eef0f6;color:var(--mut)}
.cm-chev{color:var(--mut)}
.cm-detail{display:grid;grid-template-columns:minmax(260px,.8fr) 1.2fr;gap:20px;padding:6px 18px 16px;border-top:1px solid var(--line)}
.cm-detail h4{margin:12px 0 6px;font-size:13px}.cm-gap{margin-top:18px}
.cm-r{display:flex;gap:8px;align-items:flex-start;font-size:13px;padding:3px 0}.cm-rd{width:8px;height:8px;border-radius:50%;margin-top:5px;background:#cbd2de;flex-shrink:0}.cm-r.bad .cm-rd{background:var(--err)}.cm-r.ok .cm-rd{background:var(--ok)}
.cm-part{margin-top:12px}.cm-ptop{display:flex;justify-content:space-between;font-size:13px;font-weight:600}.cm-ptop small{color:var(--mut);font-weight:400}
.cm-bar{height:7px;background:#eef0f6;border-radius:5px;margin-top:4px;overflow:hidden}.cm-bar i{display:block;height:100%;border-radius:5px;background:var(--ok)}.cm-bar i.warn{background:var(--warn)}.cm-bar i.err{background:var(--err)}
.cm-hist{margin-top:14px}.cm-spark{width:220px;height:44px}.cm-spark polyline{fill:none;stroke:var(--acc);stroke-width:2}
.cm-call{display:flex;gap:8px;align-items:center;font-size:13px;padding:3px 0}.cm-cd{width:52px;font-weight:600}.cm-cs{flex:1}
.cm-at{font-size:12px;color:var(--acc);text-decoration:none;white-space:nowrap}.cm-at:hover{text-decoration:underline}
.cm-talk{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-bottom:8px;background:#fafbfd}
.cm-th{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}.cm-th span:nth-child(2){color:var(--mut);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-mood{border-radius:12px;padding:1px 8px;font-size:11.5px;font-weight:700}.cm-mood.ok{background:var(--okbg);color:var(--ok)}.cm-mood.warn{background:var(--warnbg);color:var(--warn)}.cm-mood.err{background:var(--errbg);color:var(--err)}.cm-mood.mut{background:#eef0f6;color:var(--mut)}
.cm-sum{margin:6px 0;font-size:13px;color:var(--txt)}.cm-churn{margin-top:6px;background:var(--errbg);color:var(--err);border-radius:8px;padding:5px 9px;font-size:12.5px;font-weight:600}
.cm-li{margin-top:6px}.cm-li b{font-size:11px;text-transform:uppercase;letter-spacing:.04em}.cm-li.err b{color:var(--err)}.cm-li.ok b{color:var(--ok)}
.cm-item{display:flex;gap:8px;font-size:12.5px;padding:2px 0;align-items:baseline}.cm-item span{flex:1;min-width:0}
.cm-foot{grid-column:1/-1;display:flex;gap:14px;align-items:center;font-size:12px;color:var(--mut);border-top:1px solid var(--line);padding-top:8px}.cm-foot a{color:var(--acc);font-weight:600;text-decoration:none}
.cm-warnbar{background:var(--warnbg);color:#8a5200;border-radius:10px;padding:8px 12px;font-size:13px}.cm-warn{color:var(--err)}
.cm-empty{color:var(--mut);padding:14px;margin:0}.cm-note{color:var(--mut);font-size:12px;margin:4px 2px}.cm-new{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0 8px}
@media (max-width:1050px){.cm-tiles{grid-template-columns:repeat(3,1fr)}.cm-row{grid-template-columns:52px 1fr auto 14px;row-gap:8px}.cm-row .cm-sig{grid-column:2/-1}.cm-detail{grid-template-columns:1fr}}
@media (max-width:700px){.cm-tiles{grid-template-columns:repeat(2,1fr)}.cm-bar2 input{width:100%}}
.cm-detail>*{min-width:0}.cm-r span,.cm-item span,.cm-sum,.cm-churn,.cm-sub,.cm-cs,.cm-top,.cm-warnbar,.cm-warn{overflow-wrap:anywhere} /* QA fix: a long unbroken word (a web address in a quote) pushed the page sideways */

/* CSM Hub: client profile */
.cm-tabs{display:flex;gap:6px;padding:8px 18px 0;border-top:1px solid var(--line)}.cm-tab{background:#fff;color:var(--txt);border:1px solid var(--line);border-radius:20px;padding:4px 14px;font-size:13px;font-weight:600}.cm-tab.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.cm-tabbed .cm-detail{border-top:0}.cm-prof{padding:10px 18px 16px;display:flex;flex-direction:column;gap:10px}.cm-prof>input{font:inherit;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 12px;max-width:420px}
.cm-phead{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.cm-phead small{color:var(--mut);font-size:12px}
.cm-brief{background:var(--accbg);border-radius:12px;padding:8px 14px}.cm-brief h4{margin:2px 0 6px;font-size:13px}.cm-bi{font-size:13.5px;padding:2px 0 2px 14px;position:relative;overflow-wrap:anywhere}.cm-bi:before{content:"";position:absolute;left:2px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--acc)}
.cm-cat h4{margin:8px 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut)}
.cm-fact{display:flex;gap:10px;align-items:baseline;padding:4px 0;border-bottom:1px solid #f0f2f6}.cm-fact:last-child{border:0}.cm-ft{flex:1;min-width:0;font-size:13.5px;overflow-wrap:anywhere}
.cm-srcs{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;flex-shrink:0}.cm-src{font-size:11px;background:#eef0f6;color:var(--mut);border-radius:10px;padding:1px 7px;text-decoration:none;white-space:nowrap}a.cm-src{color:var(--acc);background:var(--accbg)}a.cm-src:hover{text-decoration:underline}
.cm-cd.wide{width:96px}.cm-pbar{background:var(--accbg);color:#2b2a86;border-radius:10px;padding:8px 12px;font-size:13px}
.cm-minis{display:flex;flex-direction:column;gap:6px;padding:4px 0 8px}.cm-row.mini{grid-template-columns:minmax(170px,1.5fr) auto 1fr 14px}.cm-card.mini{border-left-color:#cbd2de}
@media (max-width:700px){.cm-fact{flex-direction:column;gap:3px}.cm-srcs{justify-content:flex-start}.cm-row.mini{grid-template-columns:1fr auto 14px}.cm-row.mini .cm-sub{display:none}}

/* Ureb's Feed (11 Nov 2026) */
#urebBtn .av.uf{background:linear-gradient(135deg,#6366f1,#22c55e);font-size:18px}
#urebMain header{display:flex;align-items:center;gap:10px}#urebMain header button.ghost{background:#fff;color:var(--txt);border:1px solid var(--line)}#urebMain header button.ghost:first-of-type{margin-left:auto}
#urebBody{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:12px;max-width:860px;width:100%;padding-bottom:70px}#urebBody>*{flex-shrink:0}
body.uf-solo #app{justify-content:center}body.uf-solo main{max-width:900px}
.uf-hero{flex-direction:row!important;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 16px!important}
.uf-ring{position:relative;width:64px;height:64px;flex-shrink:0}.uf-ring svg{width:64px;height:64px;transform:rotate(-90deg);stroke-width:6}
.uf-ring .bg{stroke:#e9ecf3}.uf-ring .fg{stroke:var(--ok);transition:stroke-dashoffset .7s cubic-bezier(.3,.9,.3,1)}
.uf-ring-n{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:800}.uf-hero.uf-clear .uf-ring-n,.uf-hero.uf-clear .uf-h1{color:var(--ok)}
.uf-hero-t{display:flex;flex-direction:column;position:relative;min-width:150px}.uf-h1{font-size:18px}.uf-h2{color:var(--mut);font-size:12.5px}
.uf-plus{position:absolute;right:-6px;top:-4px;font-style:normal;font-weight:800;color:var(--ok);font-size:15px;pointer-events:none}
.uf-chips{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto;justify-content:flex-end}
.uf-chip{background:#fff;color:var(--txt);border:1px solid var(--line);border-radius:20px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex;gap:6px;align-items:center}
.uf-chip i{font-style:normal;background:#eef0f6;border-radius:9px;padding:0 6px;font-size:11px;color:var(--mut)}.uf-chip.on{background:var(--txt);border-color:var(--txt);color:#fff}.uf-chip.on i{background:rgba(255,255,255,.2);color:#fff}
.uf-bar{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--mut)}.uf-seg{background:transparent;color:var(--mut);padding:3px 10px;font-size:12px;border:1px solid transparent;border-radius:14px}.uf-seg.on{background:#fff;border-color:var(--line);color:var(--txt)}
.uf-list{display:flex;flex-direction:column}
.uf-day{margin:10px 2px 6px;font-size:12px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
.uf-row{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 14px;margin-bottom:8px;box-shadow:var(--sh);transition:border-color .2s,box-shadow .2s,background .35s}
.uf-row:hover{border-color:#cfd5e6}.uf-row.uf-checked{background:#f3fbf6;border-color:#bfe8cd}
.uf-main{flex:1;min-width:0}.uf-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:3px}.uf-client{font-size:13px}
.uf-kind{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-radius:7px;padding:2px 7px;background:#eef0f6;color:#556}
.uf-kind.k-budget{background:#e8f7ee;color:#15803d}.uf-kind.k-launch{background:#eef0ff;color:#4338ca}.uf-kind.k-pause{background:#fdeaea;color:#b91c1c}.uf-kind.k-targeting{background:#e0f2fe;color:#0369a1}
.uf-kind.k-creative{background:#fce7f3;color:#be185d}.uf-kind.k-billing{background:#fff4e0;color:#b45309}.uf-kind.k-tracking{background:#f3e8ff;color:#7e22ce}
.uf-textw{font-size:15px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}
.uf-text{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 58%;background-size:0% 1.5px;transition:background-size .5s cubic-bezier(.3,.8,.3,1) .1s,color .45s;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.uf-checked .uf-text{background-size:100% 1.5px;color:var(--mut)}
.uf-meta{display:block;color:var(--mut);font-size:12px;margin-top:3px}.uf-link{color:var(--acc);text-decoration:none;white-space:nowrap}.uf-link:hover{text-decoration:underline}
.uf-chk{width:32px;height:32px;padding:0;border-radius:50%;border:2px solid #c5cbd8;background:#fff;color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px;margin-top:1px;transition:border-color .15s,background .2s,transform .12s;-webkit-tap-highlight-color:transparent}
.uf-chk svg{stroke-width:3}.uf-tick{stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .3s cubic-bezier(.5,0,.3,1) .1s}
.uf-chk:hover:not(.on){border-color:var(--ok);background:#f0fbf4;color:#9bd8b1}.uf-chk:hover:not(.on) .uf-tick{stroke-dashoffset:0;transition-delay:0s}
.uf-chk:active:not(.on){transform:scale(.86)}.uf-chk:focus-visible{outline:3px solid var(--accbg);outline-offset:2px}
.uf-chk.on{background:var(--ok);border-color:var(--ok);color:#fff;animation:uf-pop .5s cubic-bezier(.3,1.7,.5,1)}.uf-chk.on .uf-tick{stroke-dashoffset:0}
@keyframes uf-pop{0%{transform:scale(.8)}45%{transform:scale(1.22)}100%{transform:scale(1)}}
.uf-row.done{box-shadow:none;background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;margin:0;padding:10px 2px}.uf-row.done .uf-chk{width:24px;height:24px;font-size:14px;animation:none}.uf-row.done .uf-textw{font-size:13.5px;font-weight:500;color:var(--mut);text-decoration:line-through}
.uf-row.left{box-shadow:none;background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;margin:0;padding:10px 2px;align-items:center}.uf-row.left .uf-textw{font-size:13.5px;font-weight:500}
.uf-x{background:#fff;color:var(--mut);border:1px solid var(--line);padding:4px 10px;font-size:12px;font-weight:500;flex-shrink:0;opacity:0;transition:opacity .15s}.uf-row:hover .uf-x,.uf-x:focus-visible,.uf-x.show{opacity:1}.uf-x:hover{color:var(--txt)}
.uf-fold{padding:6px 14px!important}.uf-foldh{background:transparent;color:var(--txt);text-align:left;padding:8px 0;font-weight:600;width:100%}
.uf-empty{align-items:center;text-align:center;gap:6px;padding:34px 16px!important}.uf-empty b{font-size:18px}.uf-empty span{color:var(--mut);font-size:13px}
.uf-bigtick{width:62px;height:62px;border-radius:50%;background:var(--ok);color:#fff;display:flex;align-items:center;justify-content:center;font-size:34px;animation:uf-pop .6s cubic-bezier(.3,1.7,.5,1)}.uf-bigtick svg{stroke-width:3}.uf-bigtick .uf-tick{animation:uf-draw .5s .25s forwards}
@keyframes uf-draw{to{stroke-dashoffset:0}}
.uf-fx{position:fixed;inset:0;pointer-events:none;z-index:80;overflow:hidden}.uf-bit{position:absolute;width:7px;height:7px;border-radius:50%}.uf-bit.sq{border-radius:2px}.uf-bit.long{width:5px;height:11px;border-radius:2px}
.uf-ringfx{position:absolute;width:32px;height:32px;border-radius:50%;border:3px solid var(--ok)}
.uf-toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#1b2332;color:#fff;border-radius:12px;padding:10px 12px 10px 16px;display:flex;gap:12px;align-items:center;font-size:13px;box-shadow:0 10px 30px rgba(15,23,42,.3);z-index:70;max-width:min(520px,92vw);animation:uf-up .28s cubic-bezier(.2,.9,.3,1)}
.uf-toast span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uf-toast button{background:rgba(255,255,255,.14);padding:5px 12px;font-size:12.5px;flex-shrink:0}.uf-toast.out{opacity:0;transition:opacity .3s}
@keyframes uf-up{from{transform:translate(-50%,16px);opacity:0}}
.uf-modal{position:fixed;inset:0;background:rgba(20,28,45,.55);display:flex;align-items:center;justify-content:center;z-index:75;padding:16px}
.uf-mcard{background:#fff;border-radius:16px;padding:20px;width:min(460px,96vw);position:relative;box-shadow:0 20px 60px rgba(0,0,0,.3);display:flex;flex-direction:column;gap:10px}.uf-mcard h3{margin:0;font-size:17px}.uf-mp{margin:0;color:var(--mut);font-size:13px}
.uf-mx{position:absolute;right:12px;top:10px;background:#eef0f6;color:var(--txt);padding:2px 10px;font-size:18px;line-height:1.2}
.uf-copy{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center}.uf-copy small{grid-column:1/-1;color:var(--mut);font-size:11.5px}.uf-copy code{background:#f3f5f9;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;overflow-wrap:anywhere}.uf-copy button{padding:7px 12px;font-size:12.5px}
.uf-warn{margin:0;background:var(--warnbg);color:#8a4b05;border-radius:10px;padding:8px 10px;font-size:12.5px}.uf-mbtns{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.uf-mbtns .ghost{background:#fff;color:var(--err);border:1px solid #f3c4c4}
@media(max-width:700px){.uf-chips{margin-left:0;justify-content:flex-start;width:100%}.uf-x{opacity:1}#urebMain header{flex-wrap:wrap}.uf-row{gap:11px;padding:12px}}
@media(prefers-reduced-motion:reduce){.uf-chk.on,.uf-bigtick{animation:none}.uf-text,.uf-tick,.uf-ring .fg{transition:none}.uf-bigtick .uf-tick{animation:none;stroke-dashoffset:0}}
#urebBtn b{white-space:nowrap}
#urebMain header button{white-space:nowrap;flex-shrink:0}
/* Ureb's Feed: Deny + training (11 Nov 2026) */
.uf-x.deny{opacity:1;align-self:center}.uf-x.deny:hover{color:var(--err);border-color:#f3c4c4;background:#fff7f7}
.uf-row.uf-denied{background:#fdf3f3;border-color:#f3c4c4;transform:translateX(-6px);opacity:.75;transition:all .25s}
.uf-row.left.den .uf-textw{color:var(--mut);text-decoration:line-through}.uf-row.left{gap:8px}
.uf-toast button+button{margin-left:-4px}
.uf-in{font:inherit;border:1px solid var(--line);border-radius:10px;padding:9px 12px;width:100%}.uf-in:focus{outline:2px solid var(--accbg);border-color:var(--acc)}
.uf-sug{border-color:#f6c98a!important;background:#fffaf2!important;gap:6px}.uf-sug h2{margin:0!important}
.uf-sugrow{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid #f3e3c8;cursor:pointer}.uf-sugrow input{width:17px;height:17px;margin-top:3px;flex-shrink:0;accent-color:var(--err)}.uf-sugrow .uf-textw{font-size:14px}
.uf-sug .uf-mbtns button:first-child{background:var(--err)}.uf-mbtns .ghost.keep{color:var(--txt);border-color:var(--line)}
.uf-looking{margin:0 2px;color:var(--mut);font-size:12.5px;font-style:italic}.uf-foldnote{padding:0 0 8px}
.uf-kind.k-campaign{background:#eef0ff;color:#4338ca}.uf-kind.k-account{background:#fff4e0;color:#b45309}
/* Ureb's Feed: context + what was said (12 Nov 2026) */
.uf-ctx{margin:5px 0 0;font-size:13px;line-height:1.45;color:#3b4557}
.uf-quote{margin:8px 0 2px;padding:7px 10px 8px;border-left:3px solid #c9cdf7;background:#f7f8fc;border-radius:0 8px 8px 0;display:flex;flex-direction:column;gap:3px}
.uf-qh{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--mut)}
.uf-ql{font-size:12.5px;line-height:1.4;color:#3b4557;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.uf-ql time{font:11px ui-monospace,Menlo,Consolas,monospace;color:var(--mut);margin-right:6px}.uf-ql b{font-weight:600;color:var(--txt);margin-right:4px}
.uf-checked .uf-ctx,.uf-checked .uf-quote{opacity:.55;transition:opacity .4s}

/* files attached in the chat (12 Nov 2026) */
.thumb.fthumb{width:150px;display:flex;align-items:center;gap:6px;padding:0 22px 0 8px;background:var(--card,#fff)}
.fext{flex:none;font:600 10px/1 ui-monospace,monospace;padding:4px 5px;border-radius:5px;background:#eef1f6;color:#3b4a66}
.fname{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.fchips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}
.fchip{display:inline-flex;align-items:center;gap:6px;max-width:320px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit;background:var(--card,#fff)}
a.fchip:hover{border-color:#9aa8c2}
