@font-face{font-family:Fredoka;font-weight:600;font-display:swap;src:url(fredoka-600.woff2) format("woff2")}
@font-face{font-family:Fredoka;font-weight:700;font-display:swap;src:url(fredoka-700.woff2) format("woff2")}
@font-face{font-family:Nunito;font-weight:600;font-display:swap;src:url(nunito-600.woff2) format("woff2")}
@font-face{font-family:Nunito;font-weight:800;font-display:swap;src:url(nunito-800.woff2) format("woff2")}
:root{--navy:#0B2A63;--navy-d:#081E4A;--earth:#0A7BDC;--leaf:#35B04A;--leaf-d:#208A35;--lime:#A4DC5E;--sun:#FFC233;--red:#E23D33;--bg:#F5F9FF;--bg2:#EAF1FB;--line:#E2E9F5;--line2:#CFDAEC;--text:#0E2350;--text2:#566A8E;--out:cubic-bezier(.22,1,.36,1);--spring:cubic-bezier(.34,1.56,.64,1);--sh1:0 1px 2px rgba(14,35,80,.05),0 2px 8px rgba(14,35,80,.05);--sh2:0 1px 2px rgba(14,35,80,.05),0 10px 28px -8px rgba(14,35,80,.14);--safe-b:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--text);font:600 16px/1.5 Nunito,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
h1,h2{font-family:Fredoka,Nunito,sans-serif;font-weight:600;margin:0;line-height:1.15}p{margin:0}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;touch-action:manipulation}a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid #3DA9F5;outline-offset:2px;border-radius:8px}
.ic{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.muted{color:var(--text2)}small{font-size:13px}.fine{font-size:13px;color:var(--text2);text-align:center;padding:6px 0 0}
.err{color:var(--red);font-weight:800;font-size:15px}.err:empty{display:none}
input,textarea{font:700 16px Nunito,sans-serif;color:var(--text);background:#fff;border:2px solid var(--line);border-radius:14px;padding:12px 14px;width:100%;transition:border-color .18s,box-shadow .18s}
input:focus,textarea:focus{outline:none;border-color:var(--earth);box-shadow:0 0 0 4px rgba(10,123,220,.16)}
.fld{display:block;margin-top:14px}.fld span{display:block;font-weight:800;font-size:15px;margin-bottom:5px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:14px;background:var(--leaf);color:#fff;font:800 15px Nunito;box-shadow:0 4px 0 var(--leaf-d);margin-bottom:4px;transition:transform .26s var(--spring),box-shadow .26s var(--spring)}
.btn:active{transform:translateY(4px);box-shadow:0 0 0 var(--leaf-d);transition-duration:.05s}.btn:disabled{opacity:.6;cursor:default}
@media (hover:hover){.btn:hover:not(:disabled):not(:active){transform:translateY(-2px)}}
.btn.full{width:100%;margin-top:18px}.btn.small{min-height:38px;padding:0 14px;font-size:14px;border-radius:11px;box-shadow:0 3px 0 var(--leaf-d);margin-bottom:3px}.btn.small:active{transform:translateY(3px)}
.btn.ghost{background:#fff;color:var(--navy);box-shadow:inset 0 0 0 2px var(--line),0 3px 0 var(--line2)}.btn.ghost:active{box-shadow:inset 0 0 0 2px var(--line)}
.auth{min-height:100%;display:grid;place-items:center;padding:24px;background:radial-gradient(90% 70% at 50% 20%,#1C8CE6,#0B5CB8 45%,#0B2A63 85%)}
.auth-card{width:min(420px,100%);background:#fff;border-radius:26px;padding:28px;box-shadow:0 30px 70px -20px rgba(4,16,48,.6);text-align:center}.auth-card form{text-align:left}.auth-logo{width:110px;display:block;margin:-74px auto 8px;filter:drop-shadow(0 12px 16px rgba(4,16,48,.4));animation:drop .8s var(--spring) .1s backwards}.auth-card h1{font-size:28px;margin-bottom:4px}.hint{background:var(--bg2);border-radius:13px;padding:10px 13px;font-size:14px;margin-top:14px}
.shell{display:flex;height:100%;height:100dvh;animation:fade .3s}
.side{width:248px;flex:none;background:var(--navy-d);color:#DCE9FB;display:flex;flex-direction:column;padding:18px 12px}
.brand{display:flex;align-items:center;gap:10px;padding:2px 8px 18px}.brand img{border-radius:50%}.brand b{display:block;font:700 19px/1 Fredoka;color:#fff}.brand small{color:#9DB6DD}
.side nav{display:flex;flex-direction:column;gap:4px}
.nav-i{display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:0 12px;border-radius:13px;font-weight:800;text-align:left;color:#BFD2EE;transition:background-color .18s,color .18s,transform .24s var(--spring)}.nav-i:active{transform:scale(.97)}.nav-i:hover{background:rgba(255,255,255,.07);color:#fff}.nav-i.on{background:var(--earth);color:#fff}.nav-i em{margin-left:auto;font-style:normal;background:var(--sun);color:#4A3206;border-radius:99px;min-width:22px;text-align:center;font-size:12px;padding:1px 6px}
.site-link{display:flex;align-items:center;gap:12px;margin-top:10px;padding:10px 12px;border-radius:13px;color:#B6E86E;font-weight:800;transition:background-color .18s}.site-link:hover{background:rgba(255,255,255,.07)}
.side-foot{margin-top:auto;display:flex;align-items:center;gap:8px;padding:12px 8px 2px;border-top:1px solid rgba(255,255,255,.12)}.who{flex:1;min-width:0}.who b{display:block;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.who small{color:#9DB6DD}
.icon-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;color:#BFD2EE}.icon-btn:hover{background:rgba(255,255,255,.1);color:#fff}
.main{flex:1;min-width:0;overflow:auto;-webkit-overflow-scrolling:touch}
.page{max-width:820px;margin:0 auto;padding:24px 24px 40px;animation:rise .36s var(--out) backwards}
.top{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}.top h1{font-size:30px}
.status{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:800;color:var(--text2);max-width:100%}.status i{width:9px;height:9px;border-radius:50%;background:#B8C4D8;flex:none}.status.on i{background:var(--leaf);box-shadow:0 0 0 0 rgba(53,176,74,.6);animation:ping 2s infinite}
.chat{height:100%;display:flex;flex-direction:column;padding-bottom:calc(12px + var(--safe-b))}
.log{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:14px;padding:4px 2px 14px;scroll-behavior:smooth}
.msg{display:flex;gap:10px;align-items:flex-end;max-width:88%}.msg.me{align-self:flex-end;flex-direction:row-reverse}.msg.pop{animation:pop .4s var(--spring) backwards}
.av{width:36px;height:36px;border-radius:50%;flex:none}.bob{animation:bob 1.2s ease-in-out infinite}
.b{background:#fff;border-radius:18px 18px 18px 5px;padding:11px 14px;box-shadow:var(--sh1);min-width:0}.me .b{background:var(--earth);color:#fff;border-radius:18px 18px 5px 18px}.b p{white-space:pre-wrap;overflow-wrap:anywhere}
.b-h{display:flex;gap:8px;align-items:baseline;margin-bottom:2px}.b-h b{font-weight:800;font-size:14px}.b-h small{opacity:.65;font-size:12px}
.typing{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.typing span{width:8px;height:8px;border-radius:50%;background:var(--earth);animation:dot 1.1s infinite}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}.typing small{margin-left:6px;color:var(--text2)}
.evt{align-self:center;font-size:13px;color:var(--text2);background:var(--bg2);padding:3px 12px;border-radius:99px}
.acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.composer{display:flex;gap:10px;align-items:flex-end;background:#fff;border-radius:18px;padding:8px;box-shadow:var(--sh2)}.composer textarea{border:0;box-shadow:none;resize:none;max-height:180px;padding:9px 8px;background:transparent}.composer textarea:focus{box-shadow:none}
.send{width:46px;height:46px;flex:none;display:grid;place-items:center;border-radius:13px;background:var(--leaf);color:#fff;box-shadow:0 3px 0 var(--leaf-d);transition:transform .22s var(--spring),box-shadow .22s var(--spring)}.send:active{transform:translateY(3px);box-shadow:none}
.empty{margin:auto;text-align:center;max-width:460px;padding:10px}.empty img{width:150px;display:block;margin:0 auto 12px;animation:float 5s ease-in-out infinite}.empty h2{font-size:26px;margin-bottom:6px}.empty.small{padding:40px 10px}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}.chip{background:#fff;border-radius:99px;padding:8px 14px;font-size:14px;font-weight:800;box-shadow:var(--sh1);transition:transform .24s var(--spring),box-shadow .2s}.chip:hover{transform:translateY(-2px);box-shadow:var(--sh2)}
.cards{display:flex;flex-direction:column;gap:12px}.card{background:#fff;border-radius:20px;padding:16px 18px;box-shadow:var(--sh1)}.rise{animation:rise .42s var(--out) var(--d,0ms) backwards}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px}.ask{white-space:pre-wrap;overflow-wrap:anywhere}
.pill{display:inline-block;padding:3px 11px;border-radius:99px;font-size:12px;font-weight:800;background:var(--bg2);color:var(--text2)}.s-ready{background:#FFF3D3;color:#7A5300}.s-published{background:#DDF5D9;color:#1C7E31}.s-working,.s-queued,.s-publishing,.s-undoing{background:#DDF0FF;color:#075CAB}.s-failed{background:#FDE9E7;color:#B02A22}
.person{display:flex;align-items:center;gap:12px}.ava{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font:700 19px Fredoka;flex:none}.p-b{flex:1;min-width:0;display:flex;flex-direction:column}
.add{margin-top:16px}.add h2{font-size:21px;margin-bottom:4px}.add .btn{margin-top:14px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.narrow{max-width:440px}.narrow .btn{margin-top:14px}
.invite{margin-top:14px;background:var(--bg2);border-radius:14px;padding:12px}.invite code{display:block;overflow-wrap:anywhere;font-size:13px;margin:6px 0 10px;background:#fff;border-radius:10px;padding:8px 10px}.pop{animation:pop .4s var(--spring) backwards}
#toast{position:fixed;left:50%;bottom:calc(24px + var(--safe-b));transform:translate(-50%,16px) scale(.96);background:var(--text);color:#fff;padding:11px 18px;border-radius:14px;font-weight:800;opacity:0;pointer-events:none;transition:transform .34s var(--spring),opacity .2s;z-index:50;max-width:90vw;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}
@keyframes fade{from{opacity:0}}@keyframes rise{from{opacity:0;transform:translate3d(0,14px,0)}}@keyframes pop{from{opacity:0;transform:scale(.9)}}@keyframes drop{from{opacity:0;transform:translateY(-22px) scale(.8)}}@keyframes bob{50%{transform:translateY(-4px)}}@keyframes float{50%{transform:translateY(-8px)}}@keyframes dot{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-5px);opacity:1}}@keyframes ping{70%{box-shadow:0 0 0 8px rgba(53,176,74,0)}100%{box-shadow:0 0 0 0 rgba(53,176,74,0)}}
@media (max-width:760px){.shell{flex-direction:column}.side{width:100%;flex-direction:row;align-items:center;padding:8px 10px;gap:6px;order:2}.brand,.site-link,.side-foot .who{display:none}.side nav{flex-direction:row;flex:1;justify-content:space-around}.nav-i{flex-direction:column;gap:2px;min-height:50px;padding:4px 6px;font-size:11px;position:relative}.nav-i em{position:absolute;top:0;right:0;margin:0}.side-foot{margin:0;padding:0;border:0}.main{order:1}.page{padding:16px 14px 26px}.top h1{font-size:25px}.row2{grid-template-columns:1fr}.msg{max-width:96%}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
#root{height:100%}
.auth{min-height:100dvh}

/* Overview */
.welcome{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;overflow:hidden;color:#fff;border-radius:24px;padding:24px 16px 24px 26px;background:radial-gradient(90% 130% at 82% 18%,#1C8CE6,#0B5CB8 52%,#0B2A63 100%);box-shadow:var(--sh2)}
.welcome img{flex:none;width:176px;height:auto;margin:-8px 0 -28px;filter:drop-shadow(0 12px 16px rgba(4,16,48,.45));animation:float 5s ease-in-out infinite}
.w-t{min-width:0}.w-t h2{font-size:clamp(25px,3.4vw,31px);margin-bottom:7px}.w-t p{color:#DCE9FB;max-width:440px}.w-b{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.btn.sun{background:var(--sun);color:#3F2B04;box-shadow:0 4px 0 #D9940B}.btn.sun:active{box-shadow:0 0 0 #D9940B}.btn.glass{background:rgba(255,255,255,.14);color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.34),0 4px 0 rgba(4,16,48,.3)}.btn.glass:active{box-shadow:inset 0 0 0 2px rgba(255,255,255,.34)}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}
.tile{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;min-width:0;background:#fff;border-radius:20px;padding:14px 16px;box-shadow:var(--sh1);transition:transform .26s var(--spring),box-shadow .2s}.tile:active{transform:scale(.97)}
@media (hover:hover){.tile:hover{transform:translateY(-3px);box-shadow:var(--sh2)}}
.tile:nth-child(2){--d:50ms}.tile:nth-child(3){--d:100ms}.tile:nth-child(4){--d:150ms}
.tile b{font:700 34px/1.1 Fredoka;font-variant-numeric:tabular-nums}.tile-l{color:var(--text2);font-size:14px;font-weight:800;line-height:1.25}
.tile-i{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;margin-bottom:5px;color:var(--c);background:color-mix(in srgb,var(--c) 14%,#fff)}.t-sun{--c:#B97A00}.t-leaf{--c:#1C7E31}.t-earth{--c:#0868BC}.t-navy{--c:var(--navy)}
.block{margin-top:24px}.block>h2,.b-top h2{font-size:21px}.block>h2{margin-bottom:10px}.b-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.text-btn{min-height:40px;padding:0 6px;color:#0868BC;font-weight:800;font-size:15px}@media (hover:hover){.text-btn:hover{text-decoration:underline}}
.rows{padding:4px 18px}.row-t{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.row-t:last-child{border-bottom:0}.row-b{min-width:0}.row-q{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font-weight:700}.row-t .pill{flex:none}
.faces{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.face{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:52px}.face small{font-weight:800;color:var(--text2)}
.hint{margin:12px 0 0;padding:12px 16px;border-radius:14px;background:var(--bg2);color:var(--text2);font-size:15px}
.empty.small img{width:120px}.empty.card{margin:0;max-width:none}
/* Phone */
@media (max-width:760px){
  .page{padding:calc(14px + var(--safe-t)) 14px 20px}.top{margin-bottom:12px}.top h1{font-size:26px}
  .welcome{padding:18px 8px 18px 18px;border-radius:20px}.welcome img{width:104px;margin:0 -2px -24px 0;align-self:flex-end}.w-t p{font-size:15px}.w-b .btn{min-height:44px;padding:0 15px}
  .tiles{grid-template-columns:1fr 1fr;gap:10px}.tile{padding:12px 14px}.tile b{font-size:30px}
  .side{padding-bottom:calc(8px + var(--safe-b))}.nav-i{min-width:0}.row2{grid-template-columns:1fr}
  .composer textarea{font-size:16px}.chat{padding-top:calc(14px + var(--safe-t))}
}
.n-s{display:none}@media (max-width:760px){.n-l{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.n-s{display:block}}
.btn{background:#1C8A35;box-shadow:0 4px 0 #136A28}.btn:active{box-shadow:0 0 0 #136A28}.btn.small{box-shadow:0 3px 0 #136A28}.send{background:#1C8A35;box-shadow:0 3px 0 #136A28}.btn.ghost{background:#fff}
