:root{--pink:#FDE4EF;--deep:#EC6A9C;--lav:#EDE7FB;--muted:#7A8499;--ink:#2E2A3A;--line:#F3E3EC;--ok:#3FA672;--okbg:#D9F5E6;--late:#E8665A;--latebg:#FFE1DD}
*{font-family:'Plus Jakarta Sans',sans-serif;-webkit-tap-highlight-color:transparent}
body{margin:0;color:var(--ink);background:radial-gradient(circle at 10% 0%,#FBD3E4 0,transparent 40%),radial-gradient(circle at 90% 100%,#E3DAFA 0,transparent 45%),#FBF3F8;min-height:100vh}
.shell{max-width:440px;margin:0 auto;min-height:100vh;background:#FFFAFC;position:relative;box-shadow:0 0 60px rgba(236,106,156,.12)}
@media(min-width:640px){.shell{margin:20px auto;min-height:calc(100vh - 40px);border-radius:32px;overflow:hidden}}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 4px 18px rgba(236,106,156,.06)}
.btn{background:var(--deep);color:#fff;border-radius:14px;font-weight:700;padding:12px 16px;transition:transform .1s,opacity .2s;box-shadow:0 6px 16px rgba(236,106,156,.3)}
.btn:active,.press:active{transform:scale(.97)}
.btn:disabled{opacity:.5}
.btn2{background:#fff;border:1.5px solid #F6C6DA;color:var(--deep);border-radius:14px;font-weight:700;padding:11px 16px}
.inp{width:100%;border:1px solid #EEDCE6;border-radius:12px;padding:10px 12px;font-size:14px;background:#fff;outline:none}
.inp:focus{border-color:var(--deep);box-shadow:0 0 0 3px #FDE4EF}
.lbl{font-size:12px;color:var(--muted);font-weight:600;margin:10px 0 4px;display:block}
.pill{border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600;white-space:nowrap;border:1px solid var(--line);background:#fff}
.pill.on{background:var(--deep);color:#fff;border-color:var(--deep)}
.tag{font-size:11px;font-weight:700;border-radius:999px;padding:3px 9px;white-space:nowrap}
.fade{animation:fade .35s ease both}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.bob{animation:bob 3s ease-in-out infinite}
.scroll-x{overflow-x:auto;scrollbar-width:none}.scroll-x::-webkit-scrollbar{display:none}
.dots span{animation:bob 1s infinite}.dots span:nth-child(2){animation-delay:.15s}.dots span:nth-child(3){animation-delay:.3s}