:root{--berry: #B8285F;--berry-dark: #8E1C49;--berry-tint: #FBE7EF;--berry-soft: #F4C6D7;--berry-on-dark: #F06A98;--plum: #2A1736;--plum-2: #3A2349;--plum-3: #4A3358;--plum-text: #E6D9E2;--muted: #6E6275;--line: #ECE2E8;--line-2: #F0E8ED;--bg: #F7F2F5;--card: #FFFFFF;--teal: #0B6B5D;--teal-ink: #0B4F45;--teal-tint: #E2F3EF;--apricot: #F2A23A;--apricot-ink: #8A5A12;--apricot-text: #6E5226;--apricot-tint: #FDF0DC;--violet-tint: #EDE4F5;--violet-ink: #5B2E86;--red: #B42318;--red-ink: #8A1C13;--red-tint: #FDECEA;--r-sm: 12px;--r: 16px;--r-lg: 20px;--r-xl: 24px;--font: "Onest", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--display: "Unbounded", "Onest", system-ui, sans-serif;--safe-top: var(--tg-safe-area-inset-top, 0px);--safe-bottom: max(var(--tg-safe-area-inset-bottom, 0px), env(safe-area-inset-bottom, 0px))}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;background:var(--bg);color:var(--plum);font-family:var(--font);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}body{overscroll-behavior-y:none}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--berry)}h1,h2,h3,p{margin:0}img{max-width:100%;display:block}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}#root{min-height:100vh;min-height:var(--tg-viewport-stable-height, 100vh)}.app{max-width:560px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;position:relative}.app.wide{max-width:980px}.page{flex:1;display:flex;flex-direction:column;padding:calc(16px + var(--safe-top)) 16px 24px;gap:16px}.page.with-tabs{padding-bottom:calc(96px + var(--safe-bottom))}.page.with-footer{padding-bottom:calc(112px + var(--safe-bottom))}.topbar{display:flex;align-items:center;gap:12px;min-height:44px}.topbar .title{flex:1;min-width:0}.h1{font-family:var(--display);font-weight:700;font-size:26px;letter-spacing:-.02em;line-height:1.15}.h2{font-family:var(--display);font-weight:600;font-size:21px;letter-spacing:-.02em;line-height:1.2}.h3{font-size:17px;font-weight:600}.sub{font-size:14px;color:var(--muted)}.small{font-size:13px;color:var(--muted)}.tiny{font-size:12px;color:var(--muted)}.strong{font-weight:600}.nowrap{white-space:nowrap}.num{font-family:var(--display);font-weight:600}.stack{display:flex;flex-direction:column;gap:12px}.stack-sm{display:flex;flex-direction:column;gap:6px}.stack-lg{display:flex;flex-direction:column;gap:20px}.row{display:flex;align-items:center;gap:12px}.row-top{display:flex;align-items:flex-start;gap:12px}.between{display:flex;align-items:center;justify-content:space-between;gap:12px}.wrap{display:flex;flex-wrap:wrap;gap:8px}.grow{flex:1;min-width:0}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.center{text-align:center}.mt-auto{margin-top:auto}.section-title{display:flex;justify-content:space-between;align-items:center}.section-title h2{font-size:17px;font-weight:600}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px}.card.pad-sm{padding:12px}.card.flat{border:none}.card.dark{background:var(--plum);color:#fff;border:none}.card.dark .sub,.card.dark .small{color:var(--plum-text)}.card.berry{background:var(--berry);color:#fff;border:none}.card.berry .sub,.card.berry .small{color:var(--berry-tint)}.card.tint{background:var(--berry-tint);border:none}.card.teal{background:var(--teal-tint);border:none;color:var(--teal-ink)}.card.apricot{background:var(--apricot-tint);border:none;color:var(--apricot-text)}.card.danger{background:var(--red-tint);border:1.5px solid var(--red);color:var(--red)}.card.dashed{border:1.5px dashed #D9C6D2;background:transparent}a.card{text-decoration:none;color:inherit;display:block}a.card.stack,a.card.stack-sm,a.card.stack-lg,a.card.row,a.card.row-top,a.card.between{display:flex}.list{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:4px 16px}.list>*+*{border-top:1px solid var(--line-2)}.list-row{min-height:56px;display:flex;align-items:center;gap:12px;padding:10px 0;color:inherit;text-decoration:none;background:none;border:none;width:100%;text-align:left;cursor:pointer}.list-row .chev{color:var(--muted);flex:none}.tile{padding:12px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column;gap:2px}.tile .num{font-size:19px}.tile.grey{background:var(--bg);border:none}.btn{min-height:52px;padding:0 18px;border-radius:var(--r);border:0;font-weight:600;font-size:16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;text-decoration:none;transition:transform .08s ease,opacity .15s}.btn:active{transform:scale(.985)}.btn[disabled]{opacity:.45;cursor:default}.btn.block{width:100%}.btn.primary{background:var(--berry);color:#fff}.btn.dark{background:var(--plum);color:#fff}.btn.outline{background:var(--card);color:var(--plum);border:1.5px solid var(--plum)}.btn.ghost{background:transparent;color:var(--berry);min-height:44px;padding:0 8px}.btn.light{background:#fff;color:var(--plum)}.btn.danger{background:var(--red-tint);color:var(--red);border:1.5px solid var(--red)}.btn.teal{background:var(--teal);color:#fff}.btn.sm{min-height:40px;font-size:14px;padding:0 14px;border-radius:var(--r-sm)}.icon-btn{width:44px;height:44px;border-radius:14px;background:var(--card);border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;color:var(--plum);cursor:pointer;flex:none;text-decoration:none;position:relative}.icon-btn.dark{background:var(--plum-2);border:none;color:#fff}.dot{position:absolute;top:9px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--berry)}.chip{min-height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--plum);font-size:14px;font-weight:500;display:inline-flex;align-items:center;gap:6px;cursor:pointer}.chip.on{background:var(--plum);color:#fff;border-color:var(--plum)}.chip.static{cursor:default;min-height:28px;font-size:12px;background:var(--bg);border:none}.badge{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.badge.teal{background:var(--teal-tint);color:var(--teal)}.badge.berry{background:var(--berry-tint);color:var(--berry-dark)}.badge.apricot{background:var(--apricot-tint);color:var(--apricot-ink)}.badge.grey{background:var(--bg);color:var(--muted)}.badge.red{background:var(--red-tint);color:var(--red)}.badge.violet{background:var(--violet-tint);color:var(--violet-ink)}.badge.dark{background:var(--plum);color:#fff}.badge .pulse{width:7px;height:7px;border-radius:50%;background:currentColor}.verified{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:var(--teal)}.star{color:var(--apricot)}.avatar{flex:none;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:600;border-radius:16px;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.field{display:flex;flex-direction:column;gap:8px}.field>label,.field>.label{font-size:14px;font-weight:500;color:var(--muted)}.input,.select,.textarea{width:100%;min-height:52px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:0 16px;font-size:16px;color:var(--plum);outline:none}.textarea{padding:12px 14px;min-height:96px;resize:vertical;line-height:1.45}.input:focus,.select:focus,.textarea:focus{border-color:var(--berry);box-shadow:0 0 0 3px #b8285f1f}.hint{font-size:13px;color:var(--muted)}.error-text{font-size:13px;color:var(--red)}.check{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.45;cursor:pointer}.check input{width:22px;height:22px;margin:0;flex:none;accent-color:var(--berry)}.radio-card{min-height:60px;padding:12px 16px;border-radius:var(--r);text-align:left;display:flex;align-items:center;gap:12px;background:var(--card);border:1.5px solid var(--line);cursor:pointer;width:100%}.radio-card.on{background:var(--berry-tint);border-color:var(--berry)}.radio-dot{width:22px;height:22px;flex:none;border-radius:50%;border:2px solid #C9B8C4;display:flex;align-items:center;justify-content:center}.radio-card.on .radio-dot{border-color:var(--berry)}.radio-card.on .radio-dot:after{content:"";width:10px;height:10px;border-radius:50%;background:var(--berry)}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);padding:4px;border-radius:var(--r);background:var(--line);gap:4px}.segmented button{min-height:44px;border:0;border-radius:12px;font-size:14px;font-weight:600;background:transparent;color:var(--muted);cursor:pointer}.segmented button.on{background:#fff;color:var(--plum)}.switch{width:50px;height:30px;flex:none;border-radius:999px;padding:3px;background:#c9b8c4;display:flex;transition:background .15s}.switch:after{content:"";width:24px;height:24px;border-radius:50%;background:#fff;transition:transform .15s}.switch.on{background:var(--teal)}.switch.on:after{transform:translate(20px)}.progress{height:8px;border-radius:999px;background:var(--line);overflow:hidden}.progress>div{height:100%;border-radius:999px;background:var(--berry)}.card.dark .progress{background:var(--plum-3)}.card.dark .progress>div{background:var(--berry-on-dark)}.progress.teal>div{background:var(--teal)}.steps{display:flex;flex-direction:column}.step{display:flex;gap:12px}.step .rail{display:flex;flex-direction:column;align-items:center}.step .mark{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex:none;background:var(--card);border:1px solid var(--line)}.step.done .mark{background:var(--teal-tint);color:var(--teal);border:none}.step.current .mark{background:var(--berry);color:#fff;border:none}.step.failed .mark{background:var(--red-tint);color:var(--red);border:none}.step .line{flex:1;width:2px;background:var(--line-2);min-height:14px}.step:last-child .line{display:none}.step .content{padding-bottom:14px;flex:1;min-width:0}.tl-item{display:flex;gap:12px}.tl-item .rail{display:flex;flex-direction:column;align-items:center}.tl-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none}.tl-item .line{flex:1;width:2px;background:var(--line-2);min-height:12px}.tl-item:last-child .line{display:none}.tl-item .content{padding-bottom:14px;flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:#fff;border-top:1px solid var(--line);padding:8px 8px calc(10px + var(--safe-bottom))}.tabbar-inner{max-width:560px;margin:0 auto;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}.tab{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:var(--muted);font-size:11px;font-weight:500;padding:4px 0;min-height:48px;position:relative;background:none;border:0;cursor:pointer}.tab.on{color:var(--berry);font-weight:600}.tab .count{position:absolute;top:0;right:calc(50% - 22px);min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--berry);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center}.footer-bar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:#fff;border-top:1px solid var(--line);padding:12px 16px calc(14px + var(--safe-bottom))}.footer-bar-inner{max-width:528px;margin:0 auto;display:flex;gap:10px}.sheet-backdrop{position:fixed;inset:0;z-index:50;background:#2a173673;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s ease}.sheet{width:100%;max-width:560px;max-height:88vh;overflow:auto;background:var(--bg);border-radius:24px 24px 0 0;padding:20px 16px calc(20px + var(--safe-bottom));display:flex;flex-direction:column;gap:14px;animation:up .2s ease}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(100px + var(--safe-bottom));z-index:60;max-width:calc(100% - 32px);background:var(--plum);color:#fff;padding:12px 16px;border-radius:14px;font-size:14px;box-shadow:0 10px 30px #2a173640;animation:fade .2s ease}.toast.error{background:var(--red)}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes up{0%{transform:translateY(40px)}to{transform:none}}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--berry);animation:spin .8s linear infinite;margin:40px auto}@keyframes spin{to{transform:rotate(360deg)}}.loader{display:flex;justify-content:center;padding:36px 0}.bow-slot{display:inline-flex;align-items:center;justify-content:center;border-radius:16px;background:var(--berry-tint);flex:none}.bow-slot.dark{background:var(--plum-2)}.bow{overflow:visible;flex:none}.bow path,.bow rect{transform-box:fill-box}.bow .bow-loop-l{transform-origin:100% 62%}.bow .bow-loop-r{transform-origin:0% 62%}.bow .bow-tail-l{transform-origin:85% 0%}.bow .bow-tail-r{transform-origin:15% 0%}.bow .bow-knot{transform-origin:50% 50%}.bow-tie .bow-loop-l{animation:bow-open-l .7s cubic-bezier(.34,1.56,.64,1) both}.bow-tie .bow-loop-r{animation:bow-open-r .7s cubic-bezier(.34,1.56,.64,1) .08s both}.bow-tie .bow-tail-l{animation:bow-drop-l .95s cubic-bezier(.34,1.3,.64,1) .28s both}.bow-tie .bow-tail-r{animation:bow-drop-r .95s cubic-bezier(.34,1.3,.64,1) .34s both}.bow-tie .bow-knot{animation:bow-knot .45s cubic-bezier(.34,1.8,.64,1) .45s both}.bow-flutter .bow-loop-l{animation:bow-flap-l 1.15s ease-in-out infinite}.bow-flutter .bow-loop-r{animation:bow-flap-r 1.15s ease-in-out infinite}.bow-flutter .bow-tail-l{animation:bow-sway-l 1.15s ease-in-out infinite}.bow-flutter .bow-tail-r{animation:bow-sway-r 1.15s ease-in-out infinite}.bow-flutter .bow-knot{animation:bow-beat 1.15s ease-in-out infinite}.bow-wave{animation:bow-wave 1.3s ease-in-out .25s both;transform-origin:50% 45%}.logo:hover .bow,.logo:active .bow{animation:bow-wave 1s ease-in-out both;transform-origin:50% 45%}@keyframes bow-open-l{0%{transform:scale(.1) rotate(28deg);opacity:0}35%{opacity:1}to{transform:none;opacity:1}}@keyframes bow-open-r{0%{transform:scale(.1) rotate(-28deg);opacity:0}35%{opacity:1}to{transform:none;opacity:1}}@keyframes bow-drop-l{0%{transform:scaleY(0);opacity:0}25%{opacity:1}55%{transform:scaleY(1.04) rotate(8deg)}78%{transform:rotate(-3deg)}to{transform:none;opacity:1}}@keyframes bow-drop-r{0%{transform:scaleY(0);opacity:0}25%{opacity:1}55%{transform:scaleY(1.04) rotate(-8deg)}78%{transform:rotate(3deg)}to{transform:none;opacity:1}}@keyframes bow-knot{0%{transform:scale(0)}to{transform:none}}@keyframes bow-flap-l{0%,to{transform:none}50%{transform:scale(.84) rotate(7deg)}}@keyframes bow-flap-r{0%,to{transform:none}50%{transform:scale(.84) rotate(-7deg)}}@keyframes bow-sway-l{0%,to{transform:rotate(5deg)}50%{transform:rotate(-4deg)}}@keyframes bow-sway-r{0%,to{transform:rotate(-5deg)}50%{transform:rotate(4deg)}}@keyframes bow-beat{0%,to{transform:none}50%{transform:scale(.9)}}@keyframes bow-wave{0%,to{transform:none}18%{transform:rotate(-9deg) scale(1.04)}42%{transform:rotate(7deg)}66%{transform:rotate(-3deg)}}.logo-lg .logo-word{animation:logo-up .5s cubic-bezier(.2,.8,.2,1) .55s both}.logo-lg .logo-word+.logo-word{animation-delay:.68s}@keyframes logo-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.bow,.bow path,.bow rect,.logo-lg .logo-word{animation:none!important}}.empty{padding:24px 16px;border-radius:var(--r-lg);border:1.5px dashed #D9C6D2;text-align:center;color:var(--muted);font-size:15px}.md{font-size:16px;line-height:1.6;display:flex;flex-direction:column;gap:12px}.md h2{font-family:var(--display);font-size:19px;font-weight:600;margin-top:8px;letter-spacing:-.01em}.md h3{font-size:17px;font-weight:600;margin-top:4px}.md ul,.md ol{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px}.md ul ul,.md ol ul{margin-top:6px}.md blockquote{margin:0;padding:12px 14px;border-radius:14px;background:var(--apricot-tint);color:var(--apricot-text)}.md strong{font-weight:600}.bubble{max-width:82%;padding:10px 12px;border-radius:16px;font-size:15px;background:#fff;border:1px solid var(--line);align-self:flex-start}.bubble.mine{align-self:flex-end;background:var(--berry-tint);border:none}.table-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--line);background:#fff}table.t{width:100%;border-collapse:collapse;font-size:14px}table.t th,table.t td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line-2);white-space:nowrap}table.t th{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.kv{display:grid;grid-template-columns:minmax(110px,40%) 1fr;gap:8px 12px;font-size:14px}.kv>:nth-child(odd){color:var(--muted)}.tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{flex:none}@media(min-width:720px){.app.wide .admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}.sos-num{display:flex;align-items:center;gap:10px;min-height:64px;padding:10px 14px;border-radius:var(--r);border:1.5px solid #F3B8B2;background:#fff;color:var(--plum);text-align:left;cursor:pointer;font:inherit}.sos-num svg{color:var(--red)}.sos-num .num{font-size:22px;line-height:1.1}.sos-num-label{font-size:13px;color:var(--muted);line-height:1.2}.sos-num.main{background:var(--red);border-color:var(--red);color:#fff}.sos-num.main svg,.sos-num.main .sos-num-label{color:#fff}.md-table{overflow-x:auto;margin:10px 0;-webkit-overflow-scrolling:touch}.md-table table{border-collapse:collapse;width:100%;font-size:14px;min-width:420px}.md-table th,.md-table td{text-align:left;vertical-align:top;padding:8px;border-bottom:1px solid var(--line-2)}.md-table th{font-size:12px;color:var(--muted);font-weight:600}
