:root{--fb-bg: #f2f3f7;--fb-card: #ffffff;--fb-text: #14161b;--fb-hint: #8b909c;--fb-accent: #4f6bff;--fb-accent-text: #ffffff;--fb-danger: #e5484d;--bg: var(--tg-theme-secondary-bg-color, var(--fb-bg));--card: var(--tg-theme-section-bg-color, var(--tg-theme-bg-color, var(--fb-card)));--text: var(--tg-theme-text-color, var(--fb-text));--hint: var(--tg-theme-hint-color, var(--fb-hint));--accent: var(--tg-theme-button-color, var(--fb-accent));--accent-text: var(--tg-theme-button-text-color, var(--fb-accent-text));--link: var(--tg-theme-link-color, var(--accent));--danger: var(--tg-theme-destructive-text-color, var(--fb-danger));--ok: #2fa66a;--warn: #e39b1b;--violet: #8b5cf6;--teal: #14a3a3;--pink: #e2557a;--line: color-mix(in srgb, var(--text) 9%, transparent);--line-strong: color-mix(in srgb, var(--text) 16%, transparent);--soft: color-mix(in srgb, var(--accent) 12%, transparent);--soft-2: color-mix(in srgb, var(--accent) 20%, transparent);--muted-bg: color-mix(in srgb, var(--text) 5%, transparent);--shadow: 0 1px 2px rgba(10, 14, 30, .04), 0 6px 22px rgba(10, 14, 30, .05);--r-lg: 22px;--r: 16px;--r-sm: 12px;--tab-h: 62px;--safe-b: env(safe-area-inset-bottom, 0px);color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--fb-bg: #0d0f13;--fb-card: #171a20;--fb-text: #eceef3;--fb-hint: #8c91a0;--fb-accent: #6d84ff}}:root[data-scheme=dark]{--shadow: 0 1px 2px rgba(0, 0, 0, .25), 0 8px 24px rgba(0, 0, 0, .25)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;min-height:100%}body{background:var(--bg);color:var(--text);font:15px/1.4 -apple-system,BlinkMacSystemFont,SF Pro Text,Inter,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;padding:0}input,textarea,select{width:100%;border:0;outline:0;border-radius:var(--r-sm);background:var(--muted-bg);padding:12px 14px;color:var(--text)}input:focus,textarea:focus,select:focus{box-shadow:0 0 0 2px var(--soft-2)}textarea{resize:vertical;min-height:72px}.num{font-variant-numeric:tabular-nums}.hint{color:var(--hint)}.small{font-size:13px}.tiny{font-size:11.5px;letter-spacing:.01em}.danger{color:var(--danger)}.ok{color:var(--ok)}.warn{color:var(--warn)}.row{display:flex;align-items:center;gap:8px}.row.wrap{flex-wrap:wrap}.between{justify-content:space-between}.grow{flex:1;min-width:0}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stack{display:flex;flex-direction:column;gap:10px}.mt{margin-top:12px}.mt-s{margin-top:6px}.center{text-align:center}.app{max-width:640px;margin:0 auto;padding:10px 14px calc(var(--tab-h) + var(--safe-b) + 24px)}.screen{animation:fade-in .22s ease}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.topbar{display:flex;align-items:center;justify-content:space-between;padding:6px 2px 12px;gap:10px}.topbar h1{font-size:24px;line-height:1.15;margin:0;letter-spacing:-.02em;font-weight:700}.topbar .sub{color:var(--hint);font-size:13px;margin-top:2px}.back{display:inline-flex;align-items:center;gap:4px;color:var(--link);font-size:15px;padding:4px 0 8px}.section-title{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--hint);margin:20px 4px 8px;font-weight:600}.card{background:var(--card);border-radius:var(--r-lg);padding:16px;box-shadow:var(--shadow)}.card+.card{margin-top:10px}.card.tight{padding:12px 14px}.card h3{margin:0 0 8px;font-size:16px;font-weight:650;letter-spacing:-.01em}.card .card-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.card .card-head h3{margin:0}.list{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}.list-row{display:flex;align-items:center;gap:12px;padding:12px 14px;width:100%;text-align:left;border-bottom:1px solid var(--line);min-height:52px}.list-row:last-child{border-bottom:0}.list-row:active{background:var(--muted-bg)}.list-row .main{flex:1;min-width:0}.list-row .title{font-weight:550}.list-row .meta{color:var(--hint);font-size:13px;margin-top:2px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;padding:6px 8px calc(6px + var(--safe-b));background:color-mix(in srgb,var(--card) 86%,transparent);backdrop-filter:saturate(1.4) blur(18px);-webkit-backdrop-filter:saturate(1.4) blur(18px);border-top:1px solid var(--line);display:flex;justify-content:space-around}.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0 2px;color:var(--hint);font-size:11px;font-weight:550;border-radius:12px;position:relative;transition:color .15s}.tab.active{color:var(--accent)}.tab .badge{position:absolute;top:2px;left:calc(50% + 6px);background:var(--danger);color:#fff;font-size:10px;min-width:16px;height:16px;border-radius:8px;padding:0 4px;display:grid;place-items:center;font-weight:700}.btn{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 18px;border-radius:14px;font-weight:600;background:var(--accent);color:var(--accent-text);transition:transform .08s ease,opacity .15s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45}.btn.block{width:100%}.btn.soft{background:var(--soft);color:var(--accent)}.btn.ghost{background:var(--muted-bg);color:var(--text)}.btn.danger{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}.btn.sm{height:36px;padding:0 12px;border-radius:11px;font-size:14px}.btn.xs{height:30px;padding:0 10px;border-radius:9px;font-size:13px}.icon-btn{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--muted-bg);color:var(--text)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips.scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -14px;padding:0 14px}.chips.scroll::-webkit-scrollbar{display:none}.chip{height:36px;padding:0 14px;border-radius:18px;background:var(--muted-bg);color:var(--text);font-size:14px;font-weight:550;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;transition:background .15s,color .15s,transform .08s}.chip:active{transform:scale(.96)}.chip.on{background:var(--accent);color:var(--accent-text)}.chip.soft-on{background:var(--soft-2);color:var(--accent)}.chip.lg{height:44px;border-radius:14px;padding:0 16px;font-size:15px}.seg{display:flex;background:var(--muted-bg);border-radius:12px;padding:3px;gap:2px}.seg button{flex:1;height:34px;border-radius:10px;font-size:13.5px;font-weight:600;color:var(--hint);transition:background .15s,color .15s}.seg button.on{background:var(--card);color:var(--text);box-shadow:0 1px 3px #00000014}.pill{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;background:var(--muted-bg);color:var(--hint);white-space:nowrap}.pill.danger{background:color-mix(in srgb,var(--danger) 13%,transparent);color:var(--danger)}.pill.warn{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}.pill.ok{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}.pill.accent{background:var(--soft);color:var(--accent)}.dot{width:8px;height:8px;border-radius:50%;background:var(--ok);display:inline-block}.dot.warn{background:var(--warn)}.dot.danger{background:var(--danger)}.now-head .title{font-size:26px;font-weight:750;letter-spacing:-.025em}.hero{border-radius:var(--r-lg);padding:18px;color:var(--accent-text);position:relative;overflow:hidden;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 60%,#8b5cf6));box-shadow:0 10px 30px color-mix(in srgb,var(--accent) 30%,transparent)}.hero:after{content:"";position:absolute;right:-40px;top:-40px;width:160px;height:160px;border-radius:50%;background:#ffffff17}.hero .label{font-size:12.5px;text-transform:uppercase;letter-spacing:.08em;opacity:.8;font-weight:650}.hero .big{font-size:46px;font-weight:750;letter-spacing:-.03em;line-height:1.05;margin:6px 0 4px}.hero .what{font-size:16px;font-weight:600;opacity:.95}.hero .actions{display:flex;gap:8px;margin-top:14px;position:relative;z-index:1}.hero .btn{background:#ffffff38;color:#fff}.hero .btn.white{background:#fff;color:var(--accent)}.dispatch .task-title{font-size:18px;font-weight:700;letter-spacing:-.015em;margin:4px 0}.dispatch .step{margin-top:12px;padding:12px 14px;border-radius:14px;background:var(--soft);color:var(--text);font-weight:550;display:flex;gap:10px;align-items:flex-start}.dispatch .why{margin-top:10px;color:var(--hint);font-size:14px}.dispatch .note{margin-top:8px;font-size:14px;color:var(--warn)}.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.qbtn{background:var(--card);border-radius:20px;box-shadow:var(--shadow);min-height:92px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:14px;text-align:left;position:relative;overflow:hidden;transition:transform .1s ease}.qbtn:active{transform:scale(.96)}.qbtn .ic{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--soft);color:var(--accent)}.qbtn .lb{font-weight:650;font-size:15px;letter-spacing:-.01em}.qbtn .sb{font-size:12px;color:var(--hint)}.qbtn.wide{grid-column:span 2}.qbtn.primary{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,var(--teal)));color:var(--accent-text)}.qbtn.primary .ic{background:#fff3;color:#fff}.qbtn.primary .sb{color:#fffc}.qbtn.pressed{animation:pop .35s ease}@keyframes pop{0%{transform:scale(1)}35%{transform:scale(.94)}to{transform:scale(1)}}.tone-teal .ic{background:color-mix(in srgb,var(--teal) 14%,transparent);color:var(--teal)}.tone-pink .ic{background:color-mix(in srgb,var(--pink) 14%,transparent);color:var(--pink)}.tone-violet .ic{background:color-mix(in srgb,var(--violet) 14%,transparent);color:var(--violet)}.tone-warn .ic{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}.tone-ok .ic{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.stat{background:var(--card);border-radius:16px;padding:10px 10px 9px;box-shadow:var(--shadow);min-width:0}.stat .v{font-size:17px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat .k{font-size:11.5px;color:var(--hint);margin-top:1px}.stat .v.none{color:var(--hint);font-weight:500}.banner{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:16px;background:var(--card);box-shadow:var(--shadow);margin-top:10px;width:100%;text-align:left}.banner .ic{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;flex:none}.banner.warn .ic{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}.banner.accent .ic{background:var(--soft);color:var(--accent)}.banner.danger .ic{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}.timeline{display:flex;flex-direction:column;gap:2px}.tl-item{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px dashed var(--line)}.tl-item:last-child{border-bottom:0}.tl-time{width:92px;flex:none;font-variant-numeric:tabular-nums;color:var(--hint);font-size:13px}.tl-bar{width:4px;align-self:stretch;border-radius:2px;background:var(--accent);flex:none}.tl-bar.free{background:var(--ok)}.tl-bar.gym{background:var(--pink)}.tl-bar.busy{background:var(--hint)}.task-row .id{font-variant-numeric:tabular-nums;color:var(--hint);font-size:13px;min-width:28px}.bar{height:6px;border-radius:3px;background:var(--muted-bg);overflow:hidden;margin-top:6px}.bar>i{display:block;height:100%;border-radius:3px;background:var(--accent)}.bar>i.over{background:var(--danger)}.fab{position:fixed;right:max(18px,calc(50% - 302px));bottom:calc(var(--tab-h) + var(--safe-b) + 18px);width:56px;height:56px;border-radius:18px;background:var(--accent);color:var(--accent-text);display:grid;place-items:center;box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 40%,transparent);z-index:20}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:13px;color:var(--hint);padding-left:2px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#05080f6b;z-index:50;animation:fade .18s ease both}@keyframes fade{0%{opacity:0}to{opacity:1}}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:51;max-width:640px;margin:0 auto;background:var(--card);border-radius:26px 26px 0 0;padding:8px 16px calc(18px + var(--safe-b));max-height:92vh;overflow-y:auto;animation:slide-up .26s cubic-bezier(.2,.8,.2,1) both;box-shadow:0 -10px 40px #0000002e}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:none}}.sheet .grabber{width:38px;height:5px;border-radius:3px;background:var(--line-strong);margin:4px auto 10px}.sheet h2{margin:2px 0 12px;font-size:20px;letter-spacing:-.02em}.toast-wrap{position:fixed;left:0;right:0;bottom:calc(var(--tab-h) + var(--safe-b) + 12px);z-index:60;display:flex;justify-content:center;pointer-events:none;padding:0 12px}.toast{pointer-events:auto;width:100%;max-width:560px;border-radius:18px;padding:12px 12px 10px 14px;background:color-mix(in srgb,#12141a 92%,transparent);color:#fff;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 12px 30px #0000004d;animation:toast-in .25s cubic-bezier(.2,.8,.2,1) both}.toast.error{background:color-mix(in srgb,#5a1a1d 94%,transparent)}@keyframes toast-in{0%{transform:translateY(20px);opacity:0}to{transform:none;opacity:1}}.toast .msg{font-weight:600;font-size:14.5px}.toast .acts{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}.toast .acts button{height:32px;padding:0 11px;border-radius:10px;background:#ffffff24;color:#fff;font-size:13.5px;font-weight:600}.toast .acts button.undo{background:#fff;color:#12141a}.toast .progress{height:2px;background:#ffffff40;border-radius:1px;margin-top:10px;overflow:hidden}.toast .progress i{display:block;height:100%;background:#fff;animation:shrink linear both}@keyframes shrink{0%{width:100%}to{width:0}}.amount{font-size:44px;font-weight:750;letter-spacing:-.03em;text-align:center;padding:6px 0 2px;font-variant-numeric:tabular-nums}.amount .cur{color:var(--hint);font-weight:600;margin-left:4px}.numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.numpad button{height:56px;border-radius:16px;background:var(--muted-bg);font-size:22px;font-weight:600;display:grid;place-items:center;transition:transform .06s}.numpad button:active{transform:scale(.95);background:var(--line-strong)}.hands{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hand{background:var(--muted-bg);border-radius:20px;padding:10px 6px 8px;text-align:center}.hand svg{width:100%;height:auto;max-height:220px;touch-action:manipulation}.hand .finger{fill:color-mix(in srgb,var(--text) 13%,transparent);transition:fill .15s;cursor:pointer}.hand .finger.on{fill:var(--pink)}.hand .palm{fill:color-mix(in srgb,var(--text) 8%,transparent)}.hand .name{font-weight:650;margin-top:2px;font-size:14px}.review-card{text-align:center;padding:22px 18px}.review-card .amt{font-size:40px;font-weight:760;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.review-card .who{font-size:18px;font-weight:650;margin-top:4px}.review-card .raw{margin-top:8px;padding:10px 12px;border-radius:12px;background:var(--muted-bg);font-size:13px;color:var(--hint);text-align:left;word-break:break-word}.review-card .chips{justify-content:center;margin-top:14px}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.kpi{background:var(--card);border-radius:16px;padding:12px;box-shadow:var(--shadow)}.kpi .v{font-size:20px;font-weight:720;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.kpi .k{font-size:12px;color:var(--hint);margin-top:2px}.kpi .v.none,.none{color:var(--hint);font-weight:500;font-size:15px}.chart-wrap{width:100%;height:180px;margin-top:6px}.chart-wrap.tall{height:230px}.hbar{display:grid;grid-template-columns:minmax(84px,1.1fr) minmax(60px,1.4fr) auto;gap:10px;align-items:center;padding:5px 0;font-size:13.5px}.hbar .track{height:10px;border-radius:5px;background:var(--muted-bg);overflow:hidden}.hbar .track i{display:block;height:100%;border-radius:5px;background:var(--accent)}.hbar .val{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12.5px}.ring{position:relative;width:84px;height:84px}.ring svg{transform:rotate(-90deg)}.ring .c{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-weight:750;font-size:20px}.corr{padding:10px 0;border-bottom:1px solid var(--line)}.corr:last-child{border-bottom:0}.missing{color:var(--hint);font-style:italic}.dots{display:flex;gap:4px;flex-wrap:wrap}.dots span{font-size:12px;padding:2px 7px;border-radius:8px;background:var(--muted-bg);font-variant-numeric:tabular-nums}.empty{text-align:center;color:var(--hint);padding:28px 12px}.empty .em{font-size:34px;margin-bottom:6px}.loader{display:grid;place-items:center;padding:40px;color:var(--hint)}.spinner{width:22px;height:22px;border-radius:50%;border:2.5px solid var(--line-strong);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--muted-bg),var(--line),var(--muted-bg));background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:14px}@keyframes shimmer{to{background-position:-200% 0}}.login{min-height:90vh;display:grid;place-items:center}.login .card{width:100%;max-width:360px}table.t{width:100%;border-collapse:collapse;font-size:13.5px}table.t th{text-align:left;color:var(--hint);font-weight:600;font-size:12px;padding:6px 4px;border-bottom:1px solid var(--line)}table.t td{padding:8px 4px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}table.t tr:last-child td{border-bottom:0}code.k{background:var(--muted-bg);padding:2px 6px;border-radius:6px;font-size:12.5px;word-break:break-all}
