/* golo. — account, follows & activity */
.stack{display:flex;flex-direction:column;gap:12px}
.title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.title-row .fbtn{margin-bottom:6px}

/* avatar */
.ava{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,var(--l1),var(--cup) 55%,var(--vet));color:#fff;font:800 13px var(--disp);letter-spacing:-.02em}
.ava.guest{background:var(--soft);color:var(--ink2)}
.ava.guest svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}
.round.ring{padding:3px}
.ava.xl{width:96px;height:96px;font-size:34px}

/* dock badge */
.dock a{position:relative}
.nbadge{position:absolute;top:5px;left:28px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--l1);color:#fff;font:800 10.5px/18px var(--txt);text-align:center;box-shadow:0 0 0 2px var(--ink)}
.nbadge[hidden]{display:none}

/* stories */
.stories{display:flex;gap:14px;overflow-x:auto;padding:0 20px 18px;scrollbar-width:none}
.stories::-webkit-scrollbar{display:none}
.story{flex:none;width:68px;display:flex;flex-direction:column;align-items:center;gap:6px}
.st-ring{width:66px;height:66px;border-radius:50%;padding:3px;background:var(--hair);display:grid;place-items:center;position:relative}
.st-ring::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--card);z-index:0}
.st-ring>*{position:relative;z-index:1}
.story.new .st-ring{background:conic-gradient(from 200deg,var(--l1),var(--cup),var(--vet),var(--l2),var(--l1))}
.st-ring .crest{width:40px;height:40px}
.st-lg{font:900 15px var(--disp);color:var(--c);letter-spacing:-.04em}
.story.add .st-ring{background:transparent;border:2px dashed var(--ink3)}
.story.add .st-ring::after{display:none}
.story.add svg{width:24px;height:24px;fill:none;stroke:var(--ink2);stroke-width:2.4;stroke-linecap:round}
.st-n{font:700 11.5px var(--txt);max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink2)}

/* call to action */
.cta{display:grid;grid-template-columns:44px minmax(0,1fr) 18px;gap:12px;align-items:center;margin:20px 20px 0;padding:14px 16px;border-radius:22px;background:var(--ink);color:var(--bg)}
.cta b{display:block;font:700 15px/1.2 var(--disp);letter-spacing:-.02em}
.cta span span{display:block;font-size:13px;opacity:.7;margin-top:3px;font-weight:600}
.cta>svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;opacity:.6}
.cta-ic{width:44px;height:44px;border-radius:14px;background:rgba(255,255,255,.12);display:grid;place-items:center}
.cta-ic svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.cta-ic.hot{background:var(--l1);color:#fff}

/* buttons */
.btn-main{display:flex;align-items:center;justify-content:center;width:100%;height:54px;border-radius:18px;background:var(--ink);color:var(--bg);font:800 16px var(--txt)}
.btn-ghost{width:100%;height:50px;border-radius:18px;box-shadow:inset 0 0 0 1.5px var(--hair);color:var(--ko);font:800 15px var(--txt)}
.fbtn{flex:none;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:12px;background:var(--l2);color:#fff;font:800 13.5px var(--txt);white-space:nowrap}
.fbtn.c{background:var(--c)}
.fbtn.on{background:var(--soft);color:var(--ink)}
.fbtn svg,.pill svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.pill.follow{background:var(--c);color:var(--on-c);box-shadow:none}
.pill.follow.on{background:var(--card);color:var(--ink);box-shadow:0 0 0 1px var(--hair)}

/* login */
.form{display:flex;flex-direction:column;gap:14px;padding:0 20px;margin-top:26px}
.form label{display:flex;flex-direction:column;gap:6px;font:800 13px var(--txt);color:var(--ink2)}
.form input{height:54px;border:0;border-radius:16px;padding:0 16px;background:var(--card);box-shadow:inset 0 0 0 1.5px var(--hair);font:600 16px var(--txt);color:var(--ink);outline:none}
.form input:focus{box-shadow:inset 0 0 0 2px var(--ink)}
.form .btn-main{margin-top:6px;border:0}
.err{margin:0;color:var(--ko);font-size:14px}
.fine{margin:6px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink3);font-weight:500}

/* gate */
.gate{margin:24px 20px 0;padding:30px 22px;border-radius:28px;background:var(--card);text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}
.gate-ic{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(from 200deg,var(--l1),var(--cup),var(--vet),var(--l2),var(--l1));color:#fff;margin-bottom:10px}
.gate-ic svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:2}
.gate h2{margin:0;font:700 20px var(--disp);letter-spacing:-.03em}
.gate p{margin:0 0 14px;color:var(--ink2);font-size:14px}

/* activity feed */
.act-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.act-head .round svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}
.sw.ink{background:var(--ink);color:var(--bg)}
.act-sec{margin-top:22px}
.feed{margin:0 20px;border-radius:24px;background:var(--card);overflow:hidden}
.act{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border-top:1px solid var(--hair);position:relative}
.act:first-child{border-top:0}
.act.unread{background:color-mix(in srgb,var(--l2) 7%,transparent)}
.av{position:relative;width:48px;height:48px;border-radius:50%;background:var(--soft);display:grid;place-items:center}
.av .crest.m{width:34px;height:34px}
.av .afsa{width:48px;height:48px;font-size:10px;background:var(--ink);color:var(--bg)}
.badge{position:absolute;right:-3px;bottom:-3px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;box-shadow:0 0 0 2.5px var(--card);font-style:normal}
.badge svg{width:13px;height:13px;fill:none;stroke:#fff;stroke-width:2.2}
.b-goal{background:var(--ok);color:#111}
.b-goal svg{width:16px;height:16px;stroke:none}
.b-goal svg circle{fill:#fff;stroke:#111}
.b-final{background:var(--ink)} .b-final svg{stroke:var(--bg)}
.b-adiado{background:var(--ko)} .b-remind{background:var(--l2)} .b-aviso{background:var(--cup)}
.tx{font-size:14px;line-height:1.38;font-weight:500;color:var(--ink);min-width:0}
.tx b{font-weight:800}
.tx time{color:var(--ink3);font-weight:600;white-space:nowrap}
.tx .sc{display:inline-block;margin-top:2px;font:700 12.5px var(--disp);letter-spacing:-.02em}
.tx .why{display:block;margin-top:3px;font-size:12px;color:var(--ink3);font-weight:600}
.act.urg .tx{font-weight:700}
.th{width:52px;height:52px;border-radius:12px;background:var(--c);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none}
.th b{font:900 16px/1 var(--disp);letter-spacing:-.04em}
.th small{font:800 9px var(--txt);letter-spacing:.06em;text-transform:uppercase;opacity:.85;margin-top:3px}
.th.ink{background:var(--ink);color:var(--bg)}
.th.soft{background:var(--soft);color:var(--ink)}

/* follow pickers */
.lg-list{margin:0 20px;border-radius:24px;background:var(--card);overflow:hidden}
.lg-row{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 16px;border-top:1px solid var(--hair)}
.lg-row:first-child{border-top:0}
.lg-dot{width:14px;height:14px;border-radius:50%;background:var(--c)}
.lg-row b{display:block;font:700 15px var(--disp);letter-spacing:-.02em}
.lg-row small{font-size:12.5px;color:var(--ink3)}
.lg-row .fbtn{background:var(--c)}
.lg-row .fbtn.on{background:var(--soft);color:var(--ink)}
.pick{position:relative}
.pick .pk{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;display:none;place-items:center;background:var(--l1)}
.pick .pk svg{width:13px;height:13px;fill:none;stroke:#fff;stroke-width:3}
.pick.on .pk{display:grid}

/* profile */
.profile{display:flex;flex-direction:column;align-items:center;text-align:center;padding:4px 20px 0}
.profile h1{margin:14px 0 0;font:900 28px/1 var(--disp);letter-spacing:-.04em}
.profile p{margin:6px 0 0;color:var(--ink3);font-size:14px}
.pstats{display:grid;grid-template-columns:repeat(3,1fr);width:100%;margin:18px 0}
.pstats b{display:block;font:900 24px var(--disp);letter-spacing:-.04em}
.pstats small{color:var(--ink3);font-size:13px}
.tgs{margin:0 20px;border-radius:24px;background:var(--card);overflow:hidden}
.tg{display:grid;grid-template-columns:minmax(0,1fr) 50px;gap:12px;align-items:center;padding:14px 16px;border-top:1px solid var(--hair);cursor:pointer;position:relative}
.tg:first-child{border-top:0}
.tg b{display:block;font:700 15px var(--txt)}
.tg small{font-size:12.5px;color:var(--ink3);font-weight:500}
.tg input{position:absolute;opacity:0;pointer-events:none}
.tg i{width:50px;height:30px;border-radius:15px;background:var(--soft);position:relative;transition:background .2s}
.tg i::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.2);transition:transform .2s}
.tg input:checked+i{background:var(--ok)}
.tg input:checked+i::after{transform:translateX(20px)}
.tg input:focus-visible+i{outline:2px solid var(--l2);outline-offset:2px}

/* match alerts */
.alert-box{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;margin:12px 20px 0;padding:12px 14px;border-radius:22px;background:var(--card)}
.alert-box b{display:block;font:700 14.5px var(--txt)}
.alert-box small{font-size:12.5px;color:var(--ink3);font-weight:500}
.ab-ic{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--soft);color:var(--ink2)}
.ab-ic.on{background:var(--c);color:#fff}
.ab-ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}
.btn-sim{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:52px;border-radius:18px;background:var(--ink);color:var(--bg);font:800 15px var(--txt)}
.btn-sim svg{width:18px;height:18px}
.btn-sim:disabled{opacity:.45}
.live-dot{display:flex!important;align-items:center;gap:6px;justify-content:center}
.live-dot::before{content:"";width:7px;height:7px;border-radius:50%;background:#fff;animation:blink 1s infinite}
@keyframes blink{50%{opacity:.2}}
.fx-bell{display:block;margin-top:4px;color:var(--c)}
.fx-bell svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4}

/* toast */
.toast{position:fixed;z-index:80;left:50%;top:calc(10px + env(safe-area-inset-top));width:min(500px,calc(100% - 20px));transform:translate(-50%,-160%);transition:transform .35s cubic-bezier(.2,.9,.25,1.2)}
.toast.show{transform:translate(-50%,0)}
.toast-in{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;align-items:center;padding:12px 14px;border-radius:22px;background:var(--card);box-shadow:0 18px 40px -14px rgba(0,0,0,.45),0 0 0 1px var(--hair)}
.toast-in .crest{width:40px;height:40px}
.toast-in .tt{display:block;font:900 14px var(--disp);color:var(--ok);letter-spacing:-.02em}
.toast-in span span{font-size:13.5px;line-height:1.35;font-weight:500}
.mp-s{white-space:nowrap}

/* liga picker */
.liga-pick{display:inline-flex;align-items:center;gap:4px}
.liga-pick svg{width:14px;height:14px;fill:none;stroke:var(--ink3);stroke-width:2.6}
.liga-card{display:block;margin:0 20px;padding:18px;border-radius:26px;background:var(--card)}
.liga-card.on{box-shadow:inset 0 0 0 2px var(--ink)}
.lc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.lc-top b{display:block;font:900 26px/1 var(--disp);letter-spacing:-.04em;margin-top:6px}
.lc-top small{display:block;color:var(--ink3);font-size:13px;margin-top:4px}
.lc-divs{display:flex;flex-direction:column;gap:2px;margin-top:14px}
.lc-div{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--hair);font:700 14.5px var(--txt)}
.lc-div i{width:10px;height:10px;border-radius:50%;background:var(--c)}
.lc-div small{color:var(--ink3);font-weight:600;font-size:12.5px}
/* test-mode gate */
html.gated .app,html.gated .dock{visibility:hidden}
.gate{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:20px;background:var(--bg)}
.gate-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:12px}
.gate-logo{font:900 56px var(--disp);letter-spacing:-.06em;text-align:center}
.gate-logo i{font-style:normal;color:var(--l1)}
.gate-sub{text-align:center;color:var(--ink2);font-weight:700;margin:0 0 8px}
.gate-card label{display:flex;flex-direction:column;gap:6px;font:800 13px var(--txt);color:var(--ink2)}
.gate-card input{height:50px;border-radius:14px;border:0;padding:0 14px;background:var(--card);color:var(--ink);font:600 16px var(--txt)}
.gate-card button{height:54px;border:0;border-radius:18px;background:var(--l1);color:#fff;font:800 16px var(--txt);cursor:pointer;margin-top:6px}
.gate-card button:disabled{opacity:.6}
.gate-err{min-height:20px;margin:0;text-align:center;color:var(--l1);font-weight:700}
/* Google sign-in button (app and test gate) */
.gate-g{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:54px;border:0;border-radius:18px;background:#fff;color:#1f1f1f;font:700 16px var(--txt);cursor:pointer;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.gate-g svg,.gate-g img{width:20px;height:20px}
.ava img{width:100%;height:100%;border-radius:inherit;object-fit:cover;display:block}
.gate-card .gate-g{background:#fff;color:#1f1f1f}
