:root{--void: #05060e;--ground: #080a16;--surface: #0e1122;--raised: #151931;--line: rgba(150, 162, 220, .14);--line-2: rgba(150, 162, 220, .3);--ink: #f2f4fc;--ink-2: #a8aecb;--ink-3: #6b7191;--glow: #7c8ae8;--glow-2: #4b57a8;--ok: #4fd1a5;--warn: #f2b449;--bad: #ff6f6f;--mono: ui-monospace, "Cascadia Mono", "SF Mono", Consolas, monospace;--radius: 12px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--tabbar: 62px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;background:var(--void);color:var(--ink);font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,sans-serif;font-size:15px;line-height:1.5;overscroll-behavior:none;-webkit-font-smoothing:antialiased}.app{min-height:100dvh;display:flex;flex-direction:column;background:radial-gradient(120% 45% at 15% 0%,#161b3c,#080a16 55%,#05060e);background-attachment:fixed}.scroll{flex:1;overflow-y:auto;padding:calc(var(--safe-top) + 12px) 14px calc(var(--tabbar) + var(--safe-bottom) + 20px);max-width:560px;width:100%;margin:0 auto}.scroll.no-tabs{padding-bottom:calc(var(--safe-bottom) + 24px)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.topbar h1{font-size:20px;font-weight:600;letter-spacing:-.02em;margin:0}.topbar .sub{font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase}.back{background:none;border:none;color:var(--glow);font-size:14px;padding:0 0 8px;cursor:pointer}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(var(--tabs, 5),1fr);background:#080a16f0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:8px 0 calc(8px + var(--safe-bottom));max-width:560px;margin:0 auto}.tabbar a{display:grid;justify-items:center;gap:4px;font-size:10px;color:var(--ink-3);text-decoration:none;letter-spacing:.02em}.tabbar a.on{color:var(--glow)}.tabbar a.on .icn{filter:drop-shadow(0 0 6px rgba(124,138,232,.5))}.is-fullscreen .app:before{content:"";position:fixed;top:0;left:0;right:0;height:var(--safe-top);background:linear-gradient(180deg,#05060e 35%,#05060e00);pointer-events:none;z-index:15}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 13px;display:grid;gap:7px}.card+.card{margin-top:8px}a.card{color:inherit;text-decoration:none;display:block}.card a{text-decoration:none}.card.tap:active{border-color:var(--line-2)}.row{display:flex;align-items:center;justify-content:space-between;gap:8px}.t{font-size:14px;font-weight:600;line-height:1.35}.m{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase}.muted{color:var(--ink-2);font-size:13px}.lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin:18px 0 8px}.lbl:first-child{margin-top:0}.pill{font-family:var(--mono);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;padding:3px 8px;border-radius:99px;white-space:nowrap;flex:none}.p-glow{background:#7c8ae82e;color:#b6bef5}.p-ok{background:#4fd1a529;color:#8fe6c8}.p-warn{background:#f2b44929;color:#f6ce86}.p-bad{background:#ff6f6f29;color:#ffa9a9}.p-dim{background:#ffffff0f;color:var(--ink-2)}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.kpi{background:var(--raised);border-radius:10px;padding:10px 6px;text-align:center}.kpi b{display:block;font-size:19px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2}.kpi span{font-size:10px;color:var(--ink-3)}.kpi.hot b{color:var(--bad)}.kpi.good b{color:var(--ok)}.bar{height:5px;border-radius:99px;background:#ffffff14;overflow:hidden}.bar i{display:block;height:100%;background:var(--glow);border-radius:99px}.bar i.low{background:var(--bad)}.bar i.mid{background:var(--warn)}.steps{display:grid;gap:0}.stp{display:grid;grid-template-columns:16px 1fr auto;gap:9px;align-items:center;padding:6px 0;font-size:13px;position:relative}.stp em{font-style:normal;width:9px;height:9px;border-radius:50%;background:#ffffff24;margin-left:3px;z-index:1}.stp:not(:last-child):before{content:"";position:absolute;left:7px;top:20px;bottom:-6px;width:1px;background:var(--line)}.stp.done em{background:var(--ok)}.stp.now em{background:var(--glow);box-shadow:0 0 0 4px #7c8ae82e}.stp.done{color:var(--ink-3)}.stp span{font-family:var(--mono);font-size:10px;color:var(--ink-3)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line-2);background:#7c8ae81f;color:var(--ink);border-radius:10px;padding:12px 14px;font-size:14px;font-weight:600;font-family:inherit;width:100%;cursor:pointer}.btn:active{transform:scale(.99)}.btn.primary{background:var(--glow);border-color:var(--glow);color:#0a0c1a}.btn.ghost{background:transparent;border-color:var(--line);color:var(--ink-2);font-weight:400}.btn.danger{background:#ff6f6f1f;border-color:#ff6f6f66;color:#ffa9a9}.btn:disabled{opacity:.45}.btns{display:grid;gap:8px;margin-top:14px}.btns.two{grid-template-columns:1fr 1fr}input,select,textarea{width:100%;background:var(--ground);border:1px solid var(--line);border-radius:10px;color:var(--ink);font-family:inherit;font-size:14px;padding:11px 12px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--glow-2)}textarea{min-height:92px;resize:vertical;line-height:1.5}label{display:grid;gap:5px;font-size:12px;color:var(--ink-3)}.form{display:grid;gap:11px}select option{background:var(--surface)}.chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin-bottom:12px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:none;border:1px solid var(--line);background:transparent;color:var(--ink-2);border-radius:99px;padding:6px 12px;font-size:12px;font-family:inherit;cursor:pointer}.chip.on{background:#7c8ae82e;border-color:var(--glow-2);color:#cfd4fb}.invite{border-color:var(--line-2);background:linear-gradient(180deg,rgba(76,88,180,.14),transparent 70%),var(--surface)}.link-box{display:block;font-family:var(--mono);font-size:11.5px;color:var(--glow);background:var(--ground);border:1px solid var(--line);border-radius:9px;padding:10px 11px;word-break:break-all;line-height:1.5}.empty{text-align:center;color:var(--ink-3);font-size:13px;padding:34px 16px;border:1px dashed var(--line);border-radius:var(--radius)}.err{background:#ff6f6f1a;border:1px solid rgba(255,111,111,.3);color:#ffb4b4;border-radius:10px;padding:11px 12px;font-size:13px;margin-bottom:12px}.icn{flex:none;display:block}.tabbar .icn{width:21px;height:21px}.btn .icn,.chip .icn{width:16px;height:16px;display:inline-block;vertical-align:-3px;margin-right:6px}.back{display:inline-flex;align-items:center;gap:3px}.back .icn{width:17px;height:17px}.lbl .icn{width:13px;height:13px;display:inline-block;vertical-align:-2px;margin-right:6px}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;grid-template-rows:1fr auto;place-items:center;padding:40px 24px calc(46px + var(--safe-bottom));background:radial-gradient(120% 55% at 18% 4%,#171d40,#080a16 52%,#05060e);transition:opacity .42s ease,transform .42s ease}.splash.out{opacity:0;transform:scale(1.06);pointer-events:none}.splash-mark{position:relative;width:min(46vw,168px);aspect-ratio:1;display:grid;place-items:center;align-self:center;animation:mark-in .9s cubic-bezier(.16,1,.3,1) both}@keyframes mark-in{0%{opacity:0;transform:scale(.84)}to{opacity:1;transform:scale(1)}}.splash-ring{position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px;width:calc(100% + 14px);height:calc(100% + 14px);transform:rotate(-90deg);overflow:visible}.splash-ring circle{fill:none;stroke-width:1.4}.ring-track{stroke:#96a2dc21}.ring-draw{stroke:var(--glow);stroke-linecap:round;stroke-dasharray:148 442;animation:ring-spin 1.9s cubic-bezier(.65,0,.35,1) infinite}@keyframes ring-spin{0%{stroke-dashoffset:590}to{stroke-dashoffset:0}}.splash-disc{position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;display:grid;place-content:center;background:radial-gradient(74% 74% at 22% 13%,#2a3268,#0d1030 46%,#05060e);box-shadow:0 0 0 1px #8c9be629,0 26px 70px -26px #4655beb3;animation:disc-breathe 3.4s ease-in-out infinite}@keyframes disc-breathe{0%,to{box-shadow:0 0 0 1px #8c9be629,0 26px 70px -26px #4655be8c}50%{box-shadow:0 0 0 1px #a0aff542,0 26px 84px -22px #5a6adcd9}}.splash-sheen{position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;background:conic-gradient(from 0deg,transparent 0deg,rgba(124,138,232,.22) 42deg,transparent 110deg);animation:sheen 4.2s linear infinite}@keyframes sheen{to{transform:rotate(360deg)}}.splash-img{position:relative;width:100%;height:100%;object-fit:cover;border-radius:50%}.splash-word{position:relative;display:grid;justify-items:center;gap:4px}.splash-word b{display:flex;font-size:clamp(22px,8.5vw,32px);font-weight:600;letter-spacing:-.045em;line-height:1;color:#fff}.splash-word b span{display:inline-block;opacity:0;animation:letter-up .62s cubic-bezier(.16,1,.3,1) both}@keyframes letter-up{0%{opacity:0;transform:translateY(.42em);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}.splash-word em{font-style:normal;font-size:clamp(7.5px,2.4vw,9px);letter-spacing:.04em;color:#c6cbe6;opacity:0;animation:letter-up .6s .72s cubic-bezier(.16,1,.3,1) both}.splash-foot{align-self:end;text-align:center;display:grid;gap:6px;animation:letter-up .6s .9s ease both}.splash-foot p{margin:0;color:var(--ink-2);font-size:13.5px;max-width:300px}.err-foot p:first-child{color:#ffb4b4}.splash-dots{display:flex;gap:5px;justify-content:center}.splash-dots i{width:5px;height:5px;border-radius:50%;background:var(--glow);opacity:.3;animation:dot 1.1s ease-in-out infinite}.splash-dots i:nth-child(2){animation-delay:.16s}.splash-dots i:nth-child(3){animation-delay:.32s}@keyframes dot{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.splash-mark,.splash-word b span,.splash-word em,.splash-foot{animation-duration:.01ms}.ring-draw,.splash-sheen,.splash-disc,.splash-dots i{animation:none}.ring-draw{stroke-dashoffset:300}}.sk{height:62px;border-radius:var(--radius);background:linear-gradient(90deg,var(--surface),var(--raised),var(--surface));background-size:200% 100%;animation:sk 1.2s infinite}.sk+.sk{margin-top:8px}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.sk{animation:none}}
