/* Trupe layout and components. Values come from tokens.css. Motion lives at the bottom and switches off with reduced motion. */
*{box-sizing:border-box;margin:0}
[hidden]{display:none!important}
html,body{height:100%}
body{background:radial-gradient(1100px 560px at 88% -12%,#F8E3D3 0,transparent 60%),radial-gradient(900px 520px at -12% 34%,#E9EBF6 0,transparent 55%),var(--paper);
  color:var(--ink);font:400 var(--t-md)/var(--lh) var(--sans);-webkit-font-smoothing:antialiased;overflow:hidden}
button,input,select{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2.5px solid var(--terra);outline-offset:2px;border-radius:8px}
h1,h2,h3{text-wrap:balance;font-family:var(--serif);font-weight:500;font-variation-settings:"SOFT" 100,"WONK" 0;letter-spacing:-.02em;line-height:1.05}
p{text-wrap:pretty}
.mono{font:500 11px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Every scroller holds its absolute children (.vh, hidden inputs): without it they hang below the viewport and the page scrolls as a whole */
.side-scroll,.home,.page,.msgs,.rail{position:relative}
.ic{width:18px;height:18px;flex:none;display:block}
.ic.sm{width:15px;height:15px}
svg.m{display:block;overflow:visible}
body.ro [data-write],body:not(.admin) [data-admin]{display:none!important}
.hint{font-size:var(--t-sm);color:var(--ink-3);padding:4px 8px}
.sp{flex:1}

/* frame */
.app{display:grid;grid-template-columns:284px minmax(0,1fr);height:100dvh}
body[data-view="chat"] .app{grid-template-columns:284px minmax(0,1fr) 352px}
.rail{display:none}
body[data-view="chat"] .rail{display:flex}
body[data-view="login"] .side{display:none}
body[data-view="login"] .app{grid-template-columns:1fr}

/* left: the trupe */
.side{border-right:1px solid var(--line);padding:18px 14px 12px;display:flex;flex-direction:column;gap:14px;overflow:hidden;min-height:0}
/* Only the lists scroll; the brand on top and the footer with the person's chip stay pinned. */
.side-scroll{flex:1 1 auto;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:22px;margin:0 -6px;padding:0 6px;overscroll-behavior:contain}
.brand{display:flex;align-items:center;gap:10px;padding:0 6px}
.brand .m{width:30px;height:30px}
.brand b,.brand-m b{font:italic 500 24px/1 var(--serif);font-variation-settings:"SOFT" 100,"WONK" 1;letter-spacing:-.01em}
.brand .mono{margin-left:auto;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sec-t{display:flex;align-items:center;justify-content:space-between;padding:0 6px 8px}
.sec-t h2{font:600 13px/1 var(--sans);color:var(--ink-2);letter-spacing:0}
.add{display:inline-flex;align-items:center;gap:4px;font:600 12.5px/1 var(--sans);color:var(--terra-ink);padding:6px 8px;border-radius:9px;transition:background var(--dur)}
.add:hover{background:var(--terra-wash)}
.add.soft{color:var(--ink-3);font-weight:500}
.add .ic{width:14px;height:14px}
.agents{display:flex;flex-direction:column;gap:2px}
.agent{display:flex;align-items:center;gap:11px;padding:8px;border-radius:15px;transition:background var(--dur),box-shadow var(--dur),transform var(--dur) var(--ease)}
.agent:hover{background:rgba(251,247,240,.7)}
.agent[aria-current="true"]{background:var(--card);box-shadow:0 0 0 1px var(--line),var(--lift)}
.av{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;flex:none;border:0;padding:0}
.av .m{width:40px;height:40px}
.who{min-width:0;flex:1}
.who b{display:block;font:500 16.5px/1.15 var(--serif);font-variation-settings:"SOFT" 100}
.who small{display:block;font-size:12.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dot{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block}
.dot.busy{background:var(--moss);box-shadow:0 0 0 3px #DCEBDD}
.dot.free{background:#CFC4B4}
.dot.rest{background:var(--honey);box-shadow:0 0 0 3px var(--honey-wash)}
.agent small.wait-s{color:var(--terra-ink);font-weight:600}
.agent small.st-s{font-weight:600}.agent small.st-s.rest{color:var(--honey-ink)}.agent small.st-s.busy{color:var(--ink-2)}
.dot.wait{background:var(--terra);box-shadow:0 0 0 3px var(--terra-wash)}
.roda{display:flex;align-items:center;gap:10px;padding:8px;border-radius:13px}
.faces{display:flex;flex:none}
.face{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;margin-right:-8px;box-shadow:0 0 0 2px var(--paper)}
.face .m{width:24px;height:24px}
.rt{margin-left:8px;min-width:0}
.rt b{display:block;font:600 13.5px/1.25 var(--sans)}
.rt small{display:block;font-size:12px;color:var(--ink-3)}
.foot{flex:none;display:flex;flex-direction:column;gap:0;border-top:1px dashed var(--line-2);padding-top:8px}
.foot a{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:11px;color:var(--ink-2);font-size:13.5px;transition:background var(--dur)}
.foot a:hover,.foot a[aria-current="true"]{background:var(--card)}
.me{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 6px 0;font-size:12.5px}

/* buttons, chips, inputs */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;border-radius:12px;padding:0 14px;font:600 13.5px/1 var(--sans);border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;white-space:nowrap;transition:background var(--dur),transform var(--dur) var(--ease),box-shadow var(--dur)}
.btn:hover{background:#fff}
.btn:active{transform:translateY(1px) scale(.98)}
.btn.main{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}
.btn.main:hover{background:#3a332e}
.btn.soft{background:transparent;border-color:transparent;color:var(--ink-2)}
.btn.sm{height:30px;padding:0 10px;font-size:12.5px;border-radius:10px}
.btn.icon{width:38px;padding:0}
.btn:disabled{opacity:.5;cursor:default}
.chip{display:inline-flex;align-items:center;gap:6px;border-radius:99px;padding:5px 10px;font:600 12px/1 var(--sans);background:var(--card);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap}
.chip.honey{background:var(--honey-wash);border-color:#EED9A4;color:var(--honey-ink)}
.chip.sage{background:var(--sage-wash);border-color:#CFDCC6;color:#3F6347}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:99px;padding:7px 12px;font:600 12.5px/1 var(--sans);background:var(--paper);color:var(--ink-2);border:1px solid var(--line);white-space:nowrap;transition:transform var(--dur) var(--spring),box-shadow var(--dur)}
.pill.lav{background:var(--peri-wash);border-color:#D3D6F0;color:var(--peri-ink)}
.input{width:100%;height:42px;border-radius:12px;border:1px solid var(--line-2);background:var(--card);padding:0 12px;transition:border-color var(--dur),box-shadow var(--dur)}
.input:focus{outline:none;border-color:var(--terra);box-shadow:0 0 0 3px var(--terra-wash)}
select.input{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);background-position:calc(100% - 17px) 18px,calc(100% - 12px) 18px;background-size:5px 5px;background-repeat:no-repeat;padding-right:30px}

/* home: badge mural */
.pane{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.home,.page{overflow:auto;padding:40px 48px 48px;height:100%}
.home-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.brand-m{display:none;align-items:center;gap:8px}
.brand-m .m{width:28px;height:28px}
/* Who is signed in: on the desktop the sidebar foot already says it (with Sair); the home header says it only where the sidebar hides. */
.me-chip{display:none;gap:6px;align-items:center}
.home-h h1{font-size:clamp(38px,5vw,60px);margin-top:22px;font-variation-settings:"SOFT" 100,"WONK" 1}
.home-h p{font-size:18px;color:var(--ink-2);margin-top:12px;max-width:52ch}
.mural{display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:14px;margin-top:32px;max-width:1080px}
.mini{position:relative;display:flex;flex-direction:column;border-radius:24px;padding:14px 14px 16px;background:var(--card);min-height:206px;
  box-shadow:0 14px 30px -22px rgba(90,60,20,.55);transition:transform .25s var(--spring),box-shadow .25s}
.mini:not(.add-card){background:var(--tint,var(--card))}
.mini .mono{font-size:10px;color:rgba(43,38,34,.66);padding-right:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini .m{width:96px;height:96px;margin:10px auto 6px}
.mini b{font:500 21px/1.1 var(--serif);font-variation-settings:"SOFT" 100}
.mini small{font-size:12.5px;color:rgba(43,38,34,.78)}
.mini .dot{position:absolute;top:15px;right:14px}
.mini small.wait-t{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;margin-top:3px;padding:3px 9px 3px 7px;border-radius:999px;background:var(--card);color:var(--terra-ink);font-weight:600}
.mini small.wait-t .ic{width:14px;height:14px}
.mini:hover{transform:translateY(-4px) rotate(-1deg);box-shadow:0 22px 34px -22px rgba(90,60,20,.6)}
.mini.add-card{background:transparent;border:1.5px dashed var(--line-2);align-items:center;justify-content:center;gap:10px;color:var(--ink-2);text-align:center;font-size:13.5px;box-shadow:none}
.mini.add-card i{width:48px;height:48px;border-radius:50%;background:var(--card);display:grid;place-items:center;color:var(--terra-ink)}
.note{display:flex;gap:10px;align-items:flex-start;margin-top:24px;max-width:720px;background:var(--honey-wash);border:1px solid #EED9A4;border-radius:16px;padding:12px 14px;font-size:var(--t-sm);color:var(--ink-2)}
.note .ic{margin-top:1px;color:var(--honey-ink)}

/* home: enquanto você estava fora */
.away:empty{display:none}
.away{margin-top:30px;max-width:1080px}
.aw-t{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:0 2px 12px}
.aw-t h2{font:500 22px/1.15 var(--serif);font-variation-settings:"SOFT" 100}
.aw-t .mono{font-size:11px;color:var(--ink-3)}
.aw-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.aw-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r3);padding:14px 16px 16px;box-shadow:var(--lift)}
.aw-h{display:flex;align-items:center;gap:12px}
.aw-h .face{width:48px;height:48px;border-radius:16px;background:var(--tint);display:grid;place-items:center;flex:none}
.aw-h .face .m{width:44px;height:44px}
.aw-h b{display:block;font:500 19px/1.1 var(--serif);font-variation-settings:"SOFT" 100}
.aw-h small{font-size:12px;color:var(--ink-3)}
.aw-card ul{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.aw-card li{display:flex;gap:9px;align-items:flex-start;font-size:var(--t-sm);line-height:1.45;color:var(--ink)}
.aw-card li .ic{flex:none;margin-top:2px;color:var(--terra-ink)}
.aw-card li em{display:block;font:500 10.5px/1.3 var(--mono);font-style:normal;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);margin-bottom:2px}
.aw-card li.more{padding-left:25px}
.aw-card li.wait{background:var(--terra-wash);border-radius:14px;padding:9px 11px;margin:0 -4px}
.aw-card li.wait em{color:var(--terra-ink)}
.aw-card li.wait .lnk{display:block;margin-top:4px}
.wait-note{position:relative;margin:-4px 0 0 44px;padding-left:21px;max-width:560px;font-size:12.5px;line-height:1.45;color:var(--terra-ink);font-weight:600}
.wait-note .ic{position:absolute;left:0;top:1px}
.wait-note span{font-weight:400;color:var(--ink-2)}
.back-n{position:relative;align-self:center;padding-left:21px;font-size:12.5px;line-height:1.45;color:var(--ink-2);font-weight:600}
.back-n .ic{position:absolute;left:0;top:1px;color:var(--moss)}
.reread{display:flex;gap:8px;align-items:flex-start;font-size:var(--t-sm);color:var(--ink-2);margin:2px 2px 14px;line-height:1.45}
.reread .ic{flex:none;margin-top:2px;color:var(--peri-ink)}

/* chat */
.chat{display:flex;flex-direction:column;height:100%;background:var(--card);min-height:0}
.chat-h{display:flex;align-items:center;gap:14px;padding:16px 24px;border-bottom:1px solid var(--line)}
.chat-h .av{width:52px;height:52px;border-radius:16px;cursor:pointer}
.chat-h .av .m{width:48px;height:48px}
.chat-h .who h1{font-size:25px}
.chat-h .who p{font-size:13px;color:var(--ink-3);margin-top:3px;display:flex;align-items:center;gap:10px;min-width:0;white-space:nowrap}
.chat-h .who p span{overflow:hidden;text-overflow:ellipsis}
.chat-h .who{flex:0 1 auto}
.chat-h .who .role{min-width:0}
.chat-h .who .st{display:inline-flex;align-items:center;gap:5px;flex:none}
.chat-h .who .st .dot{width:7px;height:7px;box-shadow:none}
.chat-h .back,.badge-btn{display:none}
.msgs{flex:1;overflow:auto;padding:24px 26px 10px;display:flex;flex-direction:column;gap:14px;min-height:0}
.msgs>*{flex-shrink:0}
/* A short conversation sits on the composer, like a messenger, on the phone and on the desktop: the space goes above
   the first line. Only a conversation starts with .day, so the empty state and the loading mascot keep their place.
   Auto margin, not justify-content:flex-end, so a long conversation still scrolls up to its first message. */
.msgs>.day:first-child{margin-top:auto}
.day{align-self:center;font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:4px 0 6px}
.b{max-width:min(620px,78%);padding:12px 16px;border-radius:20px;font-size:15px;line-height:1.55;white-space:pre-wrap;word-break:break-word}
.b.me{align-self:flex-end;background:var(--ink);color:var(--on-ink);border-bottom-right-radius:6px}
.b.it{background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:6px}
.row-it{display:flex;gap:10px;align-items:flex-end;max-width:100%}
.row-it .b{max-width:min(620px,calc(78% + 40px))}
/* Answering a reply like a colleague: quiet, under the bubble, shown on the latest reply and on hover */
.answer{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:-6px 0 0 44px;min-height:26px}
.answer .ans{font:500 12.5px/1 var(--sans);color:var(--ink-3);background:none;border:1px solid transparent;border-radius:999px;padding:6px 10px;cursor:pointer;transition:color .15s,border-color .15s,background .15s}
.answer .ans:hover,.answer .ans:focus-visible{color:var(--ink);border-color:var(--line)}
.answer .ans[aria-pressed=true]{color:var(--terra-ink);background:var(--terra-wash);border-color:transparent}
.answer:not(.last):not(.on) .ans{opacity:0}
.row-it:hover+.answer .ans,.answer:hover .ans,.answer:focus-within .ans{opacity:1}
.answer .ans-t{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-3)}
.answer .ans-t .ic{color:var(--honey-ink)}
.answer a.ans-t.kept{color:var(--terra-ink);text-decoration:none}
.answer .ans.keep{display:inline-flex;align-items:center;gap:5px;color:var(--terra-ink);border:1px dashed color-mix(in srgb,var(--terra-ink) 40%,transparent)}
.answer .ans.keep:hover,.answer .ans.keep:focus-visible{background:var(--terra-wash);border-style:solid}
.kept-f{display:grid;gap:6px;width:100%;padding:12px;border-radius:14px;background:var(--card);border:1px solid var(--line)}
.kept-f label{font-size:13px;font-weight:600;color:var(--ink)}
.kept-f textarea{resize:vertical;font:14px/1.45 var(--sans);min-height:72px}
.kept-f .keep-hint{margin:0;font-size:12.5px;line-height:1.4;color:var(--ink-3);text-wrap:pretty}
.kept-f .acts{display:flex;flex-wrap:wrap;gap:6px}
.answer .keep-f{scroll-margin:24px 0;flex-basis:100%;display:grid;gap:6px;max-width:520px;margin-top:4px;padding:12px;border-radius:14px;background:var(--card);border:1px solid var(--line)}
.answer .keep-f label{font-size:13px;font-weight:600;color:var(--ink)}
.answer .keep-f textarea{resize:vertical;font:14px/1.45 var(--sans);min-height:72px}
.answer .keep-f .keep-hint{margin:0;font-size:12.5px;line-height:1.4;color:var(--ink-3);text-wrap:pretty}
.answer .keep-f .acts{display:flex;flex-wrap:wrap;gap:6px}
.answer .miss-f{flex-basis:100%;display:flex;gap:8px;max-width:520px}
.answer .miss-f .input{flex:1;min-width:0;font-size:14px;padding:8px 12px}
.answer .formerr{flex-basis:100%}
@media (hover:none){.answer:not(.last):not(.on) .ans{display:none}.answer:not(.last):not(.on):not(:has(.ans-t)){display:none}}
.mini-face{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;flex:none}
.mini-face .m{width:30px;height:30px}
.notice{display:flex;gap:14px;align-items:flex-start;background:var(--honey-wash);border-radius:18px;padding:14px 16px;border:1px solid #EED9A4;max-width:620px}
.notice>.m{width:48px;height:48px;flex:none}
.notice b{font:600 16px/1.3 var(--serif);font-variation-settings:"SOFT" 100;display:block}
.notice p{font-size:14px;color:var(--ink-2);margin-top:2px}
.notice .acts{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.notice p.allowed{margin-top:10px;color:var(--moss);font-weight:600}
.composer{margin:8px 22px 8px;display:flex;align-items:center;gap:10px;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:7px 7px 7px 6px;transition:border-color var(--dur),box-shadow var(--dur)}
.composer:focus-within{border-color:var(--terra);box-shadow:0 0 0 3px var(--terra-wash)}
.composer .input{border:0;background:transparent;box-shadow:none;height:40px}
.composer.held{background:var(--card);border-style:dashed;opacity:.72}
.composer.held .input::placeholder{color:var(--ink-2)}
.send{width:42px;height:42px;border-radius:13px;background:var(--terra);color:#fff;display:grid;place-items:center;border:0;cursor:pointer;flex:none;transition:transform .2s var(--spring),background var(--dur)}
.send:hover{background:#C9643F;transform:rotate(-8deg) scale(1.05)}
.send.stop{background:var(--ink);color:var(--on-ink)}
.send.stop:hover{background:var(--ink-2);transform:scale(1.05)}
.send.stop:disabled{background:var(--line-2)}
.for-n{font-size:12.5px;font-weight:600;color:var(--ink-2);margin-right:8px}
.stop-n{position:relative;align-self:center;max-width:46ch;padding-left:18px;font-size:12px;line-height:1.45;color:var(--ink-3);font-weight:400;text-wrap:pretty}
.stop-n .ic{position:absolute;left:0;top:1px;width:14px;height:14px;color:var(--pencil)}
.stopping{display:inline-block;padding:2px 4px;font-size:13.5px;color:var(--ink-2)}
.send:disabled{background:var(--line-2);transform:none;cursor:default}
.hint-under{margin:0 28px 14px;font-size:12px;color:var(--ink-3)}
.empty{margin:auto;max-width:400px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px}
.empty .m.big{width:120px;height:120px;margin-bottom:6px}
.empty h3{font-size:26px}
.empty p{color:var(--ink-2);font-size:14.5px}
.empty .born .lnk{display:inline-block;padding:12px 4px;margin:-12px 0}
.empty .pre-n{margin-top:12px;text-align:left;width:100%}
.empty:has(.pre-n) .m.big{width:92px;height:92px;margin-bottom:2px}
.empty .pre-n .notice p{font-size:var(--t-sm)}
.empty.center{margin-top:14vh}
/* An empty place: who would be there, a line, one way in. */
.empty.place .btn{margin-top:8px}
.home .empty.place{margin:8px auto 0;padding:28px 24px 32px;background:var(--card);border:1px dashed var(--line-2);border-radius:var(--r3);max-width:520px}
.cards>.empty.place{grid-column:1/-1}
.loadfail{max-width:620px}
.btn.sso{margin-top:10px;height:44px;padding:0 22px;font-size:14.5px;text-decoration:none}
.empty.login .aside{margin-top:6px;font-size:var(--t-sm)}

/* right: the badge */
.rail{background:var(--paper);border-left:1px solid var(--line);padding:22px 20px;flex-direction:column;gap:16px;overflow:auto;min-height:0}
.rail-x{display:none}
.idcard{border-radius:24px;background:var(--tint,var(--card));padding:16px;position:relative;overflow:hidden;box-shadow:0 16px 32px -20px rgba(110,70,20,.6);flex:none}
.idcard .tag{display:flex;justify-content:space-between;gap:8px}
.idcard .tag .mono{color:rgba(43,38,34,.7)}
.idcard .pic{background:rgba(255,248,238,.5);border-radius:18px;height:132px;margin-top:12px;display:grid;place-items:center;position:relative;overflow:hidden}
.idcard .pic::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0 14px,rgba(255,255,255,.25) 14px 15px)}
.idcard .pic .m{width:112px;height:112px;position:relative;transform:translateY(8px)}
.idcard h2{font-size:31px;margin-top:12px}
.idcard p{font-size:13.5px;color:rgba(43,38,34,.82);margin-top:4px}
.kv{background:var(--card);border-radius:16px;border:1px solid var(--line);padding:2px 14px;flex:none}
.kv>div{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;font-size:13.5px;border-bottom:1px dashed var(--line);text-align:right}
.kv>div:last-child{border:0}
.kv>div.col{display:block;text-align:left}
.kv span{color:var(--ink-3);text-align:left;flex:none}
.kv>div.lim{display:grid;grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:8px;justify-items:start;text-align:left}
.lim .lh{display:flex;justify-content:space-between;align-items:center;gap:10px;justify-self:stretch;text-align:right}
.lim .meter,.lim .capform{justify-self:stretch}
.lim .help{margin:0}
.talkers{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:8px}
.talkers li{display:grid;gap:1px}.talkers b{font-weight:600;font-size:13.5px}.talkers small{font-size:12px;color:var(--ink-3)}
.keptasks{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:12px}
.keptasks li{display:grid;gap:4px;justify-items:start}
.keptasks q{font-family:var(--serif);font-variation-settings:"SOFT" 100;font-size:15px;line-height:1.35;color:var(--ink);quotes:'“' '”';text-wrap:pretty}
.keptasks small{font-size:12px;color:var(--ink-3)}
.keptasks small.used{display:inline-flex;align-items:center;gap:5px;color:var(--ink-2)}.keptasks small.used .ic{color:var(--honey-ink);width:14px;height:14px}
.kept-acts{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-left:-10px}
.kept-acts .quiet{color:var(--ink-3)}.kept-acts .quiet:hover,.kept-acts .quiet:focus-visible{color:var(--terra-ink)}
.kept-acts .kept-q{font-size:12.5px;color:var(--ink-2);padding:0 6px 0 10px}
.kept-acts .formerr{flex-basis:100%;padding-left:10px}
.keptasks+.more{display:inline-block;margin-top:10px;background:none;border:0;padding:4px 0;font:600 13px/1.2 var(--sans);cursor:pointer}
.talk-none{margin-top:6px;font-size:13px;color:var(--ink-3)}
.by{align-self:flex-end;font-size:11.5px;color:var(--ink-3);margin:0 8px -9px}
.labels{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.labels i{font:600 12px/1 var(--sans);font-style:normal;padding:7px 10px;border-radius:99px;color:var(--ink);background:var(--l);transition:transform .2s var(--spring)}
details.tech{background:var(--card);border-radius:16px;border:1px solid var(--line);padding:12px 14px;font-size:13px;flex:none}
details.tech summary{list-style:none;display:flex;align-items:center;gap:8px;font-weight:600;color:var(--ink-2);cursor:pointer}
details.tech summary::-webkit-details-marker{display:none}
details.tech summary .ic{width:16px;height:16px;transition:transform .2s var(--ease)}
details.tech[open] summary .ic{transform:rotate(90deg)}
details.tech ul{list-style:none;padding:12px 0 0;display:grid;gap:8px;color:var(--ink-2);font:12px/1.45 var(--mono)}
details.tech li{display:flex;justify-content:space-between;gap:10px;text-align:right}
details.tech li span{color:var(--ink-3);text-align:left}
details.tech li.col{display:grid;gap:6px;text-align:left;justify-items:start}
.meter{display:block;width:100%;height:7px;border-radius:9px;background:#EFE5D2;overflow:hidden}
.meter i{display:block;height:100%;background:var(--honey);border-radius:9px}
.capform{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.capform .input{width:110px;height:32px}
.capform .help{flex-basis:100%;margin:0}
.netform{display:grid;gap:8px;width:100%}
.netform fieldset{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 14px}
.netform .opt{display:flex;align-items:center;gap:6px;font:13px/1.3 var(--sans);color:var(--ink);cursor:pointer}
.netform .opt input{accent-color:var(--terra);margin:0}
.netform textarea{resize:vertical;font:13px/1.5 var(--mono);min-height:84px}
.netform .help{margin:4px 0 0}
.netform .acts{display:flex;gap:8px;align-items:center}
#net>.help{margin:0}
#sitesbox{margin-top:10px}

/* pages: rodas, cofre, diario, pessoas, forms */
.pane-h{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.pane-h h1{font-size:clamp(28px,3.4vw,40px);margin-top:6px}
.page .back{display:none}
.lede{color:var(--ink-2);margin-top:12px;max-width:60ch}
.cards{display:grid;gap:10px;margin-top:18px;max-width:820px}
.roda.big{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px 16px}
.roda.big .face{width:38px;height:38px}
.roda.big .face .m{width:32px;height:32px}
.roda.big .rt b{font:500 18px/1.2 var(--serif)}
.roda.big .rt small{font-size:13px}
.sub{font-size:26px;margin-top:36px}
.keyrow,.person{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px}
.kic,.initial{width:38px;height:38px;border-radius:12px;background:var(--honey-wash);color:var(--honey-ink);display:grid;place-items:center;flex:none;font:600 16px/1 var(--serif)}
.initial{background:var(--peri-wash);color:var(--peri-ink)}
.mono-n{font:600 13px/1.2 var(--mono)}
.keyrow small,.person small{display:block;color:var(--ink-3);font-size:12.5px}
.keyrow small{margin-left:auto}
.person>div{flex:1;min-width:0}
/* The role select is a control in the row, sized like the buttons, not like a form field (it read bigger than the card). */
.person select{width:140px;height:38px;font-size:13.5px;background-position:calc(100% - 17px) 16px,calc(100% - 12px) 16px}
.person small.via{margin-top:2px}
.entry{border:0;padding:0;margin-top:22px;max-width:820px}
.entry legend{padding:0}
.choices.two{grid-template-columns:repeat(2,1fr)}
.filters{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap;max-width:820px}
.filters .input{width:auto;min-width:200px}
.audit{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin-top:16px;max-width:820px}
.ev{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px 12px}
.ev .what{flex:1;min-width:0;font-size:14px}
.ev .what small{display:block;color:var(--ink-3);font-size:12px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev b{font-weight:600}
.more{margin-top:8px;justify-self:start}
.invite{display:grid;grid-template-columns:1fr 150px auto;gap:10px;align-items:end;margin-top:20px;max-width:820px}
.ssodoms{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-top:14px}
.lbl,.field label{display:block;font:600 13px/1.3 var(--sans);color:var(--ink-2);margin-bottom:6px}
.linkbox{font:12px/1.4 var(--mono);word-break:break-all;background:var(--card);border:1px dashed var(--line-2);padding:12px;border-radius:12px;margin-top:10px;max-width:820px}
.formerr{color:var(--danger);font-size:var(--t-sm);margin-top:10px;min-height:1em}
.form{display:grid;gap:18px;margin-top:22px;max-width:720px}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.help{font-size:12.5px;color:var(--ink-3);margin-top:6px}
.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.choice{position:relative;display:flex;flex-direction:column;gap:4px;border:1px solid var(--line-2);border-radius:16px;padding:12px 14px;background:var(--card);cursor:pointer;transition:border-color var(--dur),background var(--dur),transform .2s var(--spring)}
.choice input{position:absolute;opacity:0;pointer-events:none}
.choice .ct{display:flex;align-items:center;gap:8px;font:500 16px/1.2 var(--serif)}
.choice small{font-size:12.5px;color:var(--ink-3)}
.choice.on{border-color:var(--terra);background:var(--terra-wash)}
.choice.dis{opacity:.45;cursor:not-allowed}
.choice:has(input:focus-visible){outline:2.5px solid var(--terra);outline-offset:2px}
.form details.tech{padding:14px 16px}
.tech-body{display:grid;gap:14px;margin-top:14px}
.form .note{margin-top:0}
.actions{display:flex;gap:10px}

/* loading */
.loading{display:flex;flex-direction:column;align-items:center;padding:12vh 24px 24px;gap:10px;overflow:hidden}
.boot-m .m{width:72px;height:72px}
.loading p{font:italic 500 20px/1 var(--serif);color:var(--ink-2)}
.sk{display:block;border-radius:16px;background:linear-gradient(100deg,var(--paper-2) 30%,#F7F1E6 50%,var(--paper-2) 70%);background-size:300% 100%}
.sk-mural{width:100%;max-width:820px}
.mini-sk{height:206px;border-radius:24px}
.row-sk{height:56px;margin:2px 0;border-radius:15px}
.sk-chat{display:grid;gap:14px;padding:6px 0}
.sk-chat .sk{height:46px;border-radius:20px}
.sk-person{height:64px;border-radius:18px}
.sk-chat .w60{width:60%}.sk-chat .w40{width:40%;justify-self:end}.sk-chat .w70{width:70%}
.typing{display:inline-flex;gap:5px;align-items:center;height:22px;padding:0 4px}
.btn.busy{cursor:progress}.btn.busy:disabled{opacity:.8}
.bdots{display:inline-flex;gap:3px;margin-left:2px}.bdots i{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.7}
.mind-load{display:grid;justify-items:center;gap:8px;padding:18px 0 4px;color:var(--ink-3);font-size:13px}
.mind-load>.m{width:56px;height:56px}.mind-load .sk-chat{width:100%}
.starters{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px;max-width:560px}
.starter{font:500 13px/1.35 var(--sans);color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:14px;padding:9px 13px;text-align:left;cursor:pointer;min-height:40px}
.starter:hover:not(:disabled){background:#fff;border-color:var(--line-2)}
.starter:disabled{cursor:default;color:var(--ink-2)}
.empty:has(.pre-n) .starter:disabled{opacity:.6;border-style:dashed}
.starter.kept{border-color:var(--terra);box-shadow:inset 3px 0 0 var(--terra)}
.askcard{display:flex;gap:14px;align-items:flex-start;align-self:flex-start;max-width:620px;background:var(--card);border:1px dashed var(--terra);border-radius:18px;padding:14px 16px;margin-top:6px}
.askcard>.m{width:48px;height:48px;flex:none}
.askcard b{font:600 16px/1.3 var(--serif);font-variation-settings:"SOFT" 100;display:block}
.askcard p{font-size:14px;color:var(--ink-2);margin-top:4px}
.askcard blockquote{margin:10px 0 0;padding:10px 12px;background:var(--terra-wash);border-radius:12px;font-size:15px;line-height:1.45;color:var(--ink)}
.askcard .acts{margin-top:12px}
.typing i{width:7px;height:7px;border-radius:50%;background:var(--ink-3)}

/* tabbar: phone only */
.tabbar{display:none}

/* medium: the badge becomes a drawer */
/* Crachá tabs: Jeito and O que lembra. */
textarea.input{height:auto;padding:10px 12px}
.idcard .edit-p{margin-top:12px;background:rgba(255,248,238,.7)}
.idcard h2{padding-right:4px}
.pform{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;display:grid;gap:12px;flex:none}
.pform .field{display:grid;gap:6px}.pform label,.pform .lbl{font-size:12.5px;font-weight:600;color:var(--ink-2)}
.tabs{display:flex;gap:4px;background:var(--paper-2);border-radius:99px;padding:4px;flex:none;position:sticky;top:-22px;z-index:2}
.tabs a{flex:1 1 auto;text-align:center;border-radius:99px;padding:8px 6px;font:600 13px/1.1 var(--sans);color:var(--ink-2);text-decoration:none;position:relative;white-space:nowrap}
.tabs a[aria-selected="true"]{background:var(--card);color:var(--ink);box-shadow:var(--lift)}
.tabs a:focus-visible{outline:2px solid var(--terra);outline-offset:1px}
.badge-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--terra);margin-left:5px;vertical-align:2px}
.tabpanel{display:flex;flex-direction:column;gap:14px;min-width:0}
.tabpanel .note{margin-top:0}.note.sm{padding:9px 12px;font-size:12.5px}
.lnk{color:var(--terra-ink);font-weight:600;text-decoration:none}.lnk:hover{text-decoration:underline}
.soul,.proposal{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;display:grid;gap:10px}
.rule{background:var(--peri-wash);border:1px solid #D3D6F0;border-radius:16px;padding:14px;display:grid;gap:10px}
.rule .btn{justify-self:start}
.rule .rfor{color:var(--peri-ink);font-size:12.5px}
.rule #rview{display:grid;gap:10px}
.rule .hint{padding:0;color:var(--ink-2)}
.rule .soul-text.old{background:var(--card)}
.rule details.versions{background:var(--card)}
.chip.peri{background:var(--card);border-color:#D3D6F0;color:var(--peri-ink)}
.sh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sh small{color:var(--ink-3);font-size:12.5px}
.soul-text{white-space:pre-wrap;font-size:13.5px;line-height:1.55;color:var(--ink);overflow-wrap:anywhere}
.soul-text.old{background:var(--paper);border-radius:12px;padding:10px 12px;color:var(--ink-2);margin-top:8px}
.soul .btn,.fact .fx{justify-self:start}
.sform{display:grid;gap:8px}.sform textarea,.addfact textarea{resize:vertical;font:13.5px/1.5 var(--sans);min-height:90px}
.acts{display:flex;gap:8px;flex-wrap:wrap}
.proposal{background:var(--terra-wash);border-color:#EFC3AE}
.proposal .ph{display:flex;gap:10px;align-items:center}.proposal .ph .m{width:48px;height:48px;flex:none}
.proposal .ph b{display:block;font:600 16px/1.25 var(--serif)}.proposal .ph small{color:var(--ink-2);font-size:12.5px}
.proposal blockquote,.fact blockquote{border-left:3px solid var(--line-2);padding:2px 0 2px 10px;font-size:13px;color:var(--ink-2);font-style:italic;overflow-wrap:anywhere}
.proposal blockquote{border-color:var(--terra)}
.diff{background:var(--card);border-radius:12px;padding:8px 10px;display:grid;gap:3px;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.diff p{padding:2px 8px;border-radius:8px}
.diff .dadd{background:var(--sage-wash);color:#2F5238}.diff .dadd::before{content:"+ ";font-family:var(--mono);color:#3F6347}
.diff .ddel{background:var(--paper-2);color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--pencil)}.diff .ddel::before{content:"- ";font-family:var(--mono)}
.diff .deq{color:var(--ink-2)}
.diff .dskip{font:11.5px/1.4 var(--mono);color:var(--ink-3);padding:0 8px}
details.versions,details.gone,details.addfact{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:0 14px;font-size:13.5px}
/* The whole closed box is the summary, a full finger tall: the box's padding lives on the line, so a tap anywhere opens it. */
details.versions[open],details.gone[open],details.addfact[open]{padding-bottom:12px}
details.versions summary,details.gone summary,details.addfact summary{list-style:none;display:flex;align-items:center;gap:8px;font-weight:600;color:var(--ink-2);cursor:pointer;min-height:44px;margin:0 -14px;padding:0 14px;border-radius:15px}
details.versions summary::-webkit-details-marker,details.gone summary::-webkit-details-marker,details.addfact summary::-webkit-details-marker{display:none}
.count{margin-left:auto;font:600 11.5px/1 var(--mono);background:var(--paper-2);border-radius:99px;padding:4px 8px;color:var(--ink-2)}
details.versions ol{list-style:none;padding:10px 0 0;display:grid;gap:10px}
details.versions li{border-top:1px dashed var(--line);padding-top:10px}
.vh2{display:grid;gap:2px}.vh2 small{color:var(--ink-3);font-size:12.5px}
.vacts{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.msearch{position:relative;flex:none}.msearch .ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ink-3);pointer-events:none}
.msearch .input{padding-left:36px;width:100%}
.mh{font:600 17px/1.2 var(--serif);margin:4px 0 0}
.topic{font:600 11.5px/1 var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);margin:6px 0 0}
.facts{list-style:none;display:grid;gap:8px;padding:0;margin:8px 0 0}
.fact{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:11px 12px;display:grid;gap:6px;min-width:0}
.fact.warn{border-color:#EED9A4;background:#FDF7E8}
.fact .ft{font-size:13.5px;line-height:1.5;overflow-wrap:anywhere}
.src{font-size:12px;line-height:1.4;color:var(--ink-3);margin:0;padding:0;background:none;border:0}.src.by-outside{color:var(--honey-ink)}
.gone .fact{opacity:.8}.gone .ft{text-decoration:line-through;text-decoration-color:var(--pencil)}
.addfact form{display:grid;gap:8px;margin-top:10px}.addfact .pair{display:flex;gap:8px}.addfact .pair .input{flex:1;min-width:0}
.empty.sm{padding:12px}.empty.sm .m{width:84px;height:84px}.empty.sm h3{font-size:20px}.empty.sm p{font-size:13.5px}
.mpick{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
/* .mpick .mp: above .field label (display:block), which kept the name off center under the mascot */
.mpick .mp{position:relative;display:grid;justify-items:center;gap:2px;border-radius:14px;padding:6px 2px 4px;background:var(--paper);border:2px solid transparent;cursor:pointer;margin:0;font-size:11.5px;font-weight:400;color:var(--ink-2)}
.mp input{position:absolute;opacity:0;pointer-events:none}.mp .m{width:40px;height:40px}
.mp.on{background:var(--tint);border-color:var(--ink);color:var(--ink);font-weight:600}
.mp:focus-within{outline:2px solid var(--terra);outline-offset:1px}
@media (max-width:520px){.mpick{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1180px){
  body[data-view="chat"] .app{grid-template-columns:260px minmax(0,1fr)}
  body[data-view="chat"] .rail{position:fixed;top:0;right:0;bottom:0;width:372px;max-width:100%;z-index:20;box-shadow:-30px 0 60px -30px rgba(50,30,20,.4);transform:translateX(105%);transition:transform .32s var(--ease);visibility:hidden}
  body.rail-open[data-view="chat"] .rail{transform:none;visibility:visible}
  .rail-x{display:inline-flex;align-self:flex-start;flex:none}
  .badge-btn{display:inline-flex}
  .chat-h .pill:not(.lav){display:none}
  .side{padding:18px 10px 12px}
}

/* language picker: three short buttons, the one on screen pressed. Sidebar foot on the desktop, home header on the phone, login everywhere. */
.langs{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:var(--card);border:1px solid var(--line)}
.lang{font:600 11.5px/1 var(--mono, ui-monospace, monospace);letter-spacing:.04em;color:var(--ink-3);padding:6px 9px;border-radius:999px;min-width:34px;min-height:28px;transition:background var(--dur),color var(--dur)}
.lang:hover{color:var(--ink)}
.lang[aria-pressed="true"]{background:var(--ink);color:var(--on-ink)}
.lang:focus-visible{outline:2px solid var(--terra);outline-offset:2px}
.side-langs{padding:10px 6px 0}
.langs-slot{display:none}
.login-langs{margin-top:22px;display:flex;justify-content:center}
/* switching language: the words fade out, change, and fade back in. With reduced motion they just change. */
@media (prefers-reduced-motion:no-preference){
  .pane,.side .side-scroll,.side .foot a,.rail,.tabbar a{transition:opacity 180ms var(--ease)}
  body.lang-out .pane,body.lang-out .side .side-scroll,body.lang-out .side .foot a,body.lang-out .rail,body.lang-out .tabbar a{opacity:.12}
}

/* phone */
@media (max-width:760px){
  .langs-slot{display:inline-flex}
  .askcard{display:block;padding:12px 14px}.askcard>.m{float:left;width:40px;height:40px;margin:0 10px 2px 0}.askcard blockquote{clear:left}
  .app,body[data-view="chat"] .app{grid-template-columns:minmax(0,1fr)}
  .side{display:none}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:10;justify-content:space-around;padding:8px 10px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(251,247,240,.96)}
  .tabbar a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:var(--ink-3);padding:4px 10px;border-radius:12px;min-width:64px}
  .tabbar a[aria-current="true"]{color:var(--ink)}
  .tabbar a[aria-current="true"] .ic{color:var(--terra-ink)}
  .tabbar .ic{width:22px;height:22px}
  body[data-view="chat"] .tabbar,body[data-view="novo"] .tabbar,body[data-view="chave"] .tabbar,body[data-view="login"] .tabbar,body.booting .tabbar{display:none}
  .home,.page{padding:22px 16px calc(96px + env(safe-area-inset-bottom))}
  .brand-m{display:inline-flex}
  .home-top .mono{order:3;flex-basis:100%;margin-top:14px}
  .home-h h1{font-size:36px;margin-top:6px}
  .home-h p{font-size:15px;margin-top:8px}
  .me-chip{display:flex}
  .me-chip .btn{display:none}
  .mural{grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
  .mini{min-height:184px;padding:11px 11px 12px;border-radius:20px}
  .mini .m{width:72px;height:72px;margin:6px auto 4px}
  .mini b{font-size:19px}
  .mini .dot{top:12px;right:11px}
  .away{margin-top:22px}
  .aw-cards{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:16px;margin:0 -16px;padding:2px 16px 10px;scrollbar-width:none;align-items:flex-start}
  .aw-cards::-webkit-scrollbar{display:none}
  .aw-card{flex:0 0 84%;scroll-snap-align:start}
  .aw-cards .aw-card:only-child{flex-basis:100%}
  .aw-t h2{font-size:20px}
  .page .back{display:inline-flex}
  .chat-h{padding:10px 12px;gap:10px}
  .chat-h .back{display:inline-flex;width:34px;border:0;background:transparent}
  .chat-h .av{width:42px;height:42px;border-radius:13px}
  .chat-h .av .m{width:38px;height:38px}
  .chat-h .who h1{font-size:21px}
  .chat-h .who p{font-size:12px;display:grid;gap:1px;margin-top:2px}
  .chat-h .who .st{gap:5px}
  .chat-h .pill{display:none}
  .chat-h .sp{display:none}
  .chat-h .who{flex:1 1 auto}
  .badge-btn{height:32px;padding:0 10px}
  .msgs{padding:14px 12px 6px;gap:11px}
  .b{font-size:14.5px;max-width:86%}
  .row-it .b{max-width:calc(100% - 44px)}
  .composer{margin:6px 10px 6px}
  .hint-under{margin:0 14px calc(10px + env(safe-area-inset-bottom));font-size:11.5px}
  body[data-view="chat"] .rail{width:100%;border-left:0}
  .pair,.choices,.choices.two,.invite{grid-template-columns:1fr}
  .keyrow{flex-wrap:wrap}
  .keyrow small{margin-left:50px;flex-basis:100%}
  .ev .chip{display:none}
  .filters .input{min-width:0;flex:1}
  .person select{width:110px}
  .tabs{gap:2px;padding:3px}.tabs a{padding:12px 4px;font-size:12.5px}
  .btn.sm{height:38px;padding:0 12px}
  .badge-btn{height:38px}
  .kv .lnk{display:inline-block;padding:8px 0;margin:-8px 0}
  .starters{flex-direction:column;align-items:stretch}
}

.m-wink{opacity:0}

/* motion: breathe, blink, think, enter. Nothing spins. All of it stops with reduced motion. */
@media (prefers-reduced-motion:no-preference){
  .m .m-body{transform-origin:60px 104px}
  .m.breathe .m-body{animation:breathe 4.2s ease-in-out infinite}
  .agent:nth-child(2n) .m-body,.mini:nth-child(2n) .m-body{animation-delay:-1.3s}
  .agent:nth-child(3n) .m-body,.mini:nth-child(3n) .m-body{animation-delay:-2.4s}
  .m .m-eyes{transform-box:fill-box;transform-origin:center;animation:blink 5.2s infinite}
  .agent:nth-child(2n) .m-eyes,.mini:nth-child(2n) .m-eyes{animation-delay:-1.7s;animation-duration:6.1s}
  .agent:nth-child(3n) .m-eyes,.mini:nth-child(3n) .m-eyes{animation-delay:-3.1s;animation-duration:4.7s}
  .m-weye{transform-box:fill-box;transform-origin:center;animation:weye 4.2s linear infinite}.m-wink{animation:wink 4.2s linear infinite}
  .m-think .m-look{animation:look 2.4s ease-in-out infinite}
  .m-think .m-dot{animation:dot 1.1s ease-in-out infinite}
  .m-think .m-dot:nth-child(2){animation-delay:.15s}.m-think .m-dot:nth-child(3){animation-delay:.3s}
  .m-zz{animation:zz 2.8s ease-in-out infinite}
  .m-spark{transform-box:fill-box;transform-origin:center;animation:twinkle 1.8s ease-in-out infinite}.m-spark2{animation-delay:-.9s}
  .m-knock{transform-box:fill-box;transform-origin:50% 100%;animation:knock 2.2s ease-in-out infinite}
  .m-steam{animation:steam 3s ease-in-out infinite}
  .mark.breathe .m-body{animation:hop 1.4s var(--ease) infinite}
  .mini:hover .m-body,.agent:hover .m-body,.chat-h .av:hover .m-body{animation:hop .6s var(--ease)}
  .typing i{animation:dot 1.1s ease-in-out infinite}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
  .enter{animation:enter .42s var(--ease) both;animation-delay:var(--d,0ms)}
  .tabs a{transition:background var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
  .mp{transition:transform var(--dur) var(--spring),background var(--dur) var(--ease)}
  .mp:hover{transform:translateY(-2px) rotate(-2deg)}
  .proposal .ph .m{animation:knock 2.4s var(--ease) 1}
  .b.me.enter{animation-name:enter-me}
  /* Loading and error swap quickly: the thinking bubble comes in and leaves in 200 ms, the error that replaces it too. */
  .thinking.enter,.row-n.enter{animation-duration:.2s}
  .row-n.enter .notice{animation:none}
  .thinking.leave{animation:leave var(--dur) var(--ease) both}
  @keyframes leave{to{opacity:0;transform:translateY(-4px)}}
  .notice{animation:enter .5s var(--spring) both}
  .mini,.agent,.aw-card{animation:rise .5s var(--ease) both;animation-delay:calc(var(--i,0) * 55ms)}
  .sk{animation:shimmer 1.4s linear infinite}
  .pill:hover,.labels i:hover,.chip:hover{transform:translateY(-1px) rotate(-1.5deg)}
  .choice:hover{transform:translateY(-2px)}
  .bdots i{animation:dot 1.1s ease-in-out infinite}.bdots i:nth-child(2){animation-delay:.15s}.bdots i:nth-child(3){animation-delay:.3s}
  .mind-load>.m .m-body{transform-origin:60px 104px;animation:breathe 2.4s ease-in-out infinite}
  .fact.leaving{animation:leave .32s var(--ease) both}
  .mp.on .m-body{transform-origin:60px 104px;animation:hop .6s var(--ease)}
  .starter{transition:transform var(--dur) var(--ease),background var(--dur) var(--ease)}
  .starter:hover:not(:disabled){transform:translateY(-2px) rotate(-.6deg)}
  @keyframes leave{to{opacity:0;transform:translateX(14px) scale(.98)}}
  @keyframes breathe{50%{transform:scale(1.03,.97)}}
  @keyframes blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.08)}}
  @keyframes weye{0%,58%,82%,100%{transform:scaleY(1);opacity:1}62%,78%{transform:scaleY(.08);opacity:0}}
  @keyframes wink{0%,60%,80%,100%{opacity:0}62%,78%{opacity:1}}
  @keyframes look{0%,100%{transform:translate(0,0)}50%{transform:translate(1.5px,-1px)}}
  @keyframes dot{0%,60%,100%{transform:translateY(0);opacity:.55}30%{transform:translateY(-3px);opacity:1}}
  @keyframes zz{0%{transform:translate(0,4px);opacity:0}30%{opacity:1}100%{transform:translate(6px,-8px);opacity:0}}
  @keyframes twinkle{50%{transform:scale(.6) rotate(20deg);opacity:.6}}
  @keyframes knock{0%,60%,100%{transform:rotate(0)}70%{transform:rotate(-10deg)}80%{transform:rotate(8deg)}90%{transform:rotate(-4deg)}}
  @keyframes steam{50%{transform:translateY(-2px);opacity:.15}}
  @keyframes hop{0%,100%{transform:translateY(0) scale(1)}35%{transform:translateY(-7px) scale(.98,1.03)}70%{transform:translateY(0) scale(1.04,.96)}}
  @keyframes enter{from{opacity:0;transform:translateY(10px) scale(.98)}}
  @keyframes enter-me{from{opacity:0;transform:translate(10px,6px) scale(.97)}}
  @keyframes rise{from{opacity:0;transform:translateY(12px)}}
  @keyframes shimmer{from{background-position:100% 0}to{background-position:-200% 0}}
}
.keep-f .formerr:empty,.kept-f .formerr:empty,.kept-acts .formerr:empty,.pform .formerr:empty,.sform .formerr:empty{display:none}

/* Mesa picker: who already sits there, and a heads up when the mesa is another team's. */
.mesa-who{margin-top:10px;display:grid;gap:8px;font-size:var(--t-sm);color:var(--ink-2)}
.mesa-who .mw-row{display:flex;align-items:center;gap:14px;min-height:30px}
.mesa-who .mw-warn{display:flex;gap:8px;align-items:flex-start;background:var(--honey-wash);border:1px solid #EED9A4;border-radius:14px 14px 14px 4px;padding:10px 12px;color:var(--ink-2);text-wrap:pretty}
.mesa-who .mw-warn .ic{flex:none;margin-top:1px;color:var(--honey-ink)}
.pform .mesa-who{margin-top:4px}

/* Conexões: one card per connection, the person's own account on top, what each agent may do below. */
.conns{display:grid;gap:14px;max-width:820px}
.conn{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px 18px;display:grid;gap:12px}
.conn-h{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.conn-h .kic{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--sky-wash);color:var(--ink)}
.conn-h b{font-size:var(--t-md, 16px)}.conn-h small{display:block;color:var(--ink-3);font-size:12.5px}
.conn-h .sp{flex:1}
.conn-me{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:var(--t-sm)}
.conn-me .st{display:inline-flex;align-items:center;gap:7px}
.conn-me .sp{flex:1}
.conn-ags{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:12px}
.conn-ags h3{font-size:var(--t-sm);margin:0}.conn-ags p{margin:0;color:var(--ink-3);font-size:12.5px}
.conn-ag{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.conn-ag .who{display:flex;align-items:center;gap:8px;min-width:150px;flex:1}
.conn-ag .av{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;overflow:hidden}
.conn-ag .av .m{width:26px;height:26px}
.gchips{display:flex;gap:6px;flex-wrap:wrap}
.gchip{border-radius:99px;padding:6px 11px;font:600 12px/1 var(--sans);background:var(--card);border:1px solid var(--line);color:var(--ink-2);min-height:30px}
.gchip[aria-pressed="true"]{background:var(--sage-wash);border-color:#CFDCC6;color:#3F6347}
.gchip:disabled{cursor:default}
.gchip.busy{cursor:progress;opacity:.75}
.gchip:focus-visible{outline:2px solid var(--terra);outline-offset:2px}
.conn-err{display:flex;gap:10px;align-items:flex-start;background:var(--honey-wash);border:1px solid #EED9A4;border-radius:14px;padding:10px 12px;font-size:var(--t-sm);color:var(--ink)}
.conn-err:empty{display:none}
.conn-setup{background:var(--honey-wash);border:1px solid #EED9A4;border-radius:14px;padding:12px 14px;font-size:var(--t-sm);color:var(--ink);display:grid;gap:8px}
.conn-setup p{margin:0;color:var(--ink-2)}
.conn-setup ol{margin:0;padding-left:20px;display:grid;gap:4px;overflow-wrap:anywhere}
.conn-setup-a{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
.conn-wait{display:flex;align-items:center;gap:7px;margin:0;font-size:var(--t-sm);color:var(--ink-2)}
.conn-ok{display:flex;gap:10px;align-items:center;background:var(--sage-wash);border:1px solid #CFDCC6;border-radius:14px;padding:10px 12px;font-size:var(--t-sm);color:var(--ink);max-width:820px;margin-bottom:14px}
.conn-tech{max-width:820px;margin-top:22px;font-size:var(--t-sm);color:var(--ink-2)}
.conn-tech summary{cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-weight:600}
.conn-tech p{margin:10px 0 0}
.conn-tech .linkbox{margin-top:8px}
.sk-conn{height:132px;border-radius:18px;max-width:820px}
@media (max-width:760px){
  .conn{padding:14px}
  .conn-ag .who{min-width:0;flex-basis:100%}
  .conn-me .btn{width:100%;justify-content:center}
}
/* A card comes in quickly (200 ms) and the loading shimmer moves; with reduced motion both are still. */
@media (prefers-reduced-motion:no-preference){
  .conn.enter{animation:enter .2s var(--ease) both;animation-delay:var(--d,0ms)}
  .sk-conn{animation:shimmer 1.4s linear infinite}
  .gchip{transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}
}


/* Gateway da org: one card per name in the vault, the saved value only masked, an input under it to paste a new one. */
.gwrows{display:grid;gap:12px}
.gwrow{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;min-width:0}
.gwrow .kic{background:var(--l);color:var(--ink)}
.gwmain{display:grid;gap:6px;flex:1;min-width:0}
.gwmain label{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.gwmain label code{color:var(--ink-3);font-size:12px;font-weight:500}
.gwstate{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin:0;min-width:0}
.gwval{background:var(--l);border-radius:8px;padding:2px 8px;overflow-wrap:anywhere}
.gwval.none{background:none;padding:0;color:var(--ink-3);font-size:var(--t-sm)}
.gwstate small{color:var(--ink-3);font-size:12.5px}
.gwmain .input{width:100%;min-width:0;font:13px/1.4 var(--mono)}
.gwmain .input::placeholder{font-family:var(--mono)}
.gwform .help{margin:-6px 0 0}
.sk-gw{height:118px}
.gwrow.just{border-color:var(--sage)}
/* Conta do integrante, in the crachá */
.kv>div.cred{display:grid;gap:8px}
.credv{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.credv b{font-weight:600}
.credform #credcap{display:grid;gap:4px;font-size:13px;color:var(--ink-2)}
.credform #credcap .input{max-width:160px}
.credform .opt.off{color:var(--ink-3);cursor:not-allowed}
@media (max-width:640px){
  .gwrow{padding:12px}
  .gwrow .kic{display:none}
  .credform .opt{min-height:36px}
}
@media (prefers-reduced-motion:no-preference){
  .gwrow{animation:enter .2s var(--ease) both;animation-delay:var(--d,0ms)}
  .sk-gw{animation:shimmer 1.4s linear infinite}
  .gwrow.just{animation:gw-saved 1.2s var(--ease) both}
  .credform:not([hidden]){animation:enter .2s var(--ease) both}
}
@keyframes gw-saved{from{box-shadow:0 0 0 4px var(--sage-wash)}to{box-shadow:0 0 0 0 transparent}}
/* F13: the model the agent runs on, at the top of its chat; and Ferramentas, one block per kind of thing it works with. */
.model-pick{position:relative;flex:none}
button.model-pill{cursor:pointer}
.model-pill .ic{width:14px;height:14px}
.model-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:30;width:min(300px,86vw);background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px;box-shadow:0 12px 32px rgba(30,30,50,.14);display:flex;flex-direction:column;gap:8px}
.model-menu[hidden]{display:none}
.mgroup{display:flex;flex-direction:column;gap:2px}
.mgroup b{font:600 11.5px/1.4 var(--sans);color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;padding:4px 8px}
.mopt{display:flex;justify-content:space-between;align-items:center;min-height:36px;padding:6px 10px;border-radius:10px;border:0;background:none;font:500 14px/1.2 var(--sans);color:var(--ink);text-align:left;cursor:pointer}
.mopt:hover,.mopt:focus-visible{background:var(--paper)}
.mopt.on{font-weight:600}
.mother{display:flex;flex-direction:column;gap:6px;border-top:1px dashed var(--line);padding-top:8px}
.mother label{font-size:12.5px;color:var(--ink-3)}
.mother .row{display:flex;gap:6px}.mother select{flex:none;width:auto}.mother input{flex:1;min-width:0}
.model-menu .help{font-size:12px;margin:0}
.kit{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.kit h3{display:flex;align-items:center;gap:8px;font-size:14px}
.kit .kv{border:0;padding:0;background:none}
.kit-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.kit-list li{display:flex;justify-content:space-between;gap:10px}.kit-list span{color:var(--ink-3)}
/* The model is the one pill the header keeps on narrow screens: it is how the agent is changed, not decoration. */
.chat-h .pill.model-pill{display:inline-flex}
@media (max-width:720px){.chat-h .pill.model-pill{padding:6px 9px;font-size:12px;max-width:34vw;overflow:hidden}.model-menu{position:fixed;top:88px;left:12px;right:12px;width:auto;max-height:calc(100dvh - 80px);overflow:auto}}
/* F11: a skill the agent learned, as a line in the conversation and as a list in Kit. */
.skill-n span{display:inline}.skill-n b{font-weight:600;color:var(--ink-2)}
.kit-skills{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.kit-skills summary{cursor:pointer;display:flex;flex-direction:column;gap:2px;font-size:13.5px;padding:4px 0}
.kit-skills summary span{color:var(--ink-3);font-size:12.5px}
.skill-body{white-space:pre-wrap;font:12.5px/1.5 var(--mono,ui-monospace,monospace);background:var(--paper);border-radius:10px;padding:10px;margin:6px 0;max-height:280px;overflow:auto}
