:root{--navy:#0a2350;--navy2:#13306b;--blue:#1e6bff;--blue2:#4c8dff;--cyan:#1fc8f2;--green:#21c07a;--red:#ff4d5e;--amber:#ffb020;
--bg:#f2f5fb;--card:#fff;--tx:#0a2350;--tx2:#5d6f92;--tx3:#9aa8c4;--line:rgba(10,35,80,.07);--fill:rgba(10,35,80,.05);
--sh1:0 1px 2px rgba(10,35,80,.04),0 2px 8px rgba(10,35,80,.05);--sh2:0 2px 6px rgba(10,35,80,.05),0 10px 30px rgba(10,35,80,.09);--sh3:0 12px 40px rgba(10,35,80,.18),0 2px 10px rgba(10,35,80,.08);
--r:20px;--spring:cubic-bezier(.32,1.28,.48,1);--ease:cubic-bezier(.2,.8,.2,1);--grad:linear-gradient(135deg,var(--blue),var(--cyan))}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.35 -apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased;letter-spacing:-.01em;overscroll-behavior-y:none}
body{min-height:100vh;padding-bottom:calc(170px + env(safe-area-inset-bottom))}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
button{border:0;background:none;cursor:pointer;padding:0}
.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
/* top */
.top{position:sticky;top:0;z-index:20;padding:10px 20px 8px;background:rgba(242,245,251,.82);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);transition:box-shadow .25s}
.top.sc{box-shadow:0 1px 0 var(--line)}
.top .bar{display:flex;align-items:center;gap:10px;min-height:34px}.top .logo{height:30px;width:auto;display:block;filter:drop-shadow(0 2px 4px rgba(10,35,80,.18))}
.top .back{display:flex;align-items:center;gap:2px;color:var(--blue);font-weight:500;font-size:17px;margin-left:-6px}
.ttl{font-size:32px;font-weight:800;letter-spacing:-.03em;margin:4px 0 0;line-height:1.1}
.sub{color:var(--tx2);font-size:14px;font-weight:500}
main{padding:4px 16px 0;position:relative}
.view{animation:viewIn .42s var(--ease) both}
@keyframes viewIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
.push{animation:pushIn .38s var(--ease) both}@keyframes pushIn{from{opacity:0;transform:translateX(40px)}}
.pop{animation:popIn .38s var(--ease) both}@keyframes popIn{from{opacity:0;transform:translateX(-40px)}}
/* card */
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--sh1);padding:16px;margin:12px 0;position:relative}
.card.hero{background:linear-gradient(145deg,#0a2350 0%,#163a85 55%,#1e6bff 120%);color:#fff;box-shadow:var(--sh2);overflow:hidden}
.card.hero:after{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(31,200,242,.45),transparent 70%)}
.card.hero .sub{color:rgba(255,255,255,.72)}
.h2{font-size:20px;font-weight:700;letter-spacing:-.02em;margin:22px 4px 4px;display:flex;align-items:center;justify-content:space-between}
.h3{font-size:13px;font-weight:600;color:var(--tx2);text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px}
.row{display:flex;align-items:center;gap:12px}.grow{flex:1;min-width:0}.col{display:flex;flex-direction:column;gap:2px}
.big{font-size:34px;font-weight:800;letter-spacing:-.035em;line-height:1.05}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.kpis .card{margin:0}
.kpi .v{font-size:24px;font-weight:750;letter-spacing:-.03em}.kpi .l{font-size:13px;color:var(--tx2);font-weight:500;margin-top:2px}
.delta{display:inline-flex;align-items:center;gap:2px;font-size:13px;font-weight:650;padding:2px 8px;border-radius:20px}
.delta.up{color:#11935a;background:rgba(33,192,122,.12)}.delta.dn{color:#d62f40;background:rgba(255,77,94,.12)}.delta.eq{color:var(--tx2);background:var(--fill)}
/* press micro-interaction */
.press{transition:transform .35s var(--spring),box-shadow .25s,background .2s}.press:active{transform:scale(.965);transition-duration:.08s}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:50px;padding:0 20px;border-radius:15px;background:var(--grad);color:#fff;font-weight:650;font-size:17px;box-shadow:0 6px 18px rgba(30,107,255,.32);width:100%}
.btn.sec{background:var(--fill);color:var(--blue);box-shadow:none}.btn.danger{background:rgba(255,77,94,.1);color:var(--red);box-shadow:none}.btn.sm{height:36px;font-size:15px;border-radius:11px;padding:0 14px;width:auto}
.btn:disabled{opacity:.45}
.fab{position:fixed;right:20px;bottom:calc(92px + env(safe-area-inset-bottom));width:58px;height:58px;border-radius:20px;background:var(--grad);color:#fff;font-size:30px;font-weight:300;box-shadow:0 10px 26px rgba(30,107,255,.45),0 2px 6px rgba(10,35,80,.2);z-index:25;display:grid;place-items:center;animation:fabIn .5s var(--spring) both}
@keyframes fabIn{from{transform:scale(0) rotate(-90deg)}}
/* inputs */
.field{width:100%;height:50px;border-radius:14px;border:1.5px solid transparent;background:var(--fill);padding:0 14px;font-size:17px;outline:none;transition:border .2s,background .2s,box-shadow .2s}
.field:focus{border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px rgba(30,107,255,.12)}
textarea.field{height:auto;padding:12px 14px;resize:none}
.amount{font-size:44px;font-weight:800;letter-spacing:-.04em;text-align:center;border:0;background:none;width:100%;outline:none}
.lbl{font-size:13px;font-weight:600;color:var(--tx2);margin:14px 4px 6px}
/* chips + segmented */
.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 0}.chips::-webkit-scrollbar{display:none}
.chip{flex:none;height:36px;padding:0 14px;border-radius:12px;background:var(--fill);font-size:15px;font-weight:550;display:inline-flex;align-items:center;gap:6px;transition:all .25s var(--ease)}
.chip.on{background:var(--navy);color:#fff;box-shadow:0 4px 12px rgba(10,35,80,.25)}
.seg{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:rgba(10,35,80,.07);border-radius:12px;padding:3px;margin:10px 0}
.seg button{position:relative;z-index:1;height:32px;font-size:14px;font-weight:600;color:var(--tx2);transition:color .25s}.seg button.on{color:var(--tx)}
.seg .ind{position:absolute;top:3px;bottom:3px;left:3px;border-radius:9px;background:#fff;box-shadow:0 2px 6px rgba(10,35,80,.12),0 0 0 .5px rgba(10,35,80,.04);transition:transform .45s var(--spring)}
/* week strip */
.weekscr{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:2px -4px 4px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.weekscr::-webkit-scrollbar{display:none}
.wpage{flex:0 0 100%;scroll-snap-align:center;scroll-snap-stop:always;display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:4px}
.weeklbl{font-size:12.5px;font-weight:650;color:var(--tx3);text-transform:capitalize;margin:8px 4px 0}
.wd{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0;border-radius:14px;font-size:12px;color:var(--tx2);font-weight:600;position:relative;transition:background .3s,color .3s}
.wd b{font-size:17px;color:var(--tx);font-weight:650}.wd.on{background:var(--navy);color:rgba(255,255,255,.7);box-shadow:0 6px 16px rgba(10,35,80,.28)}.wd.on b{color:#fff}
.wd.td:not(.on) b{color:var(--blue)}.wd i{width:5px;height:5px;border-radius:50%;background:transparent}.wd i.has{background:var(--tx3)}.wd i.all{background:var(--green)}.wd.on i.has{background:rgba(255,255,255,.6)}
/* tasks */
.group{margin:18px 0 6px}.ghead{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:650;color:var(--tx2);text-transform:uppercase;letter-spacing:.04em;margin:0 6px 8px}
.ghead .cnt{margin-left:auto;font-weight:600;text-transform:none;letter-spacing:0}
.list{background:var(--card);border-radius:var(--r);box-shadow:var(--sh1);overflow:hidden}
.sw{position:relative;overflow:hidden;transition:height .3s var(--ease),opacity .3s}
.sw+.sw .task:before{content:"";position:absolute;top:0;left:58px;right:0;height:1px;background:var(--line)}
.sw .act{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 24px;color:#fff;font-weight:650;font-size:15px}
.sw .act.l{background:var(--green)}.sw .act.r{background:var(--red);justify-content:flex-end}
.sw .act span{transition:transform .25s var(--spring)}.sw .act.arm span{transform:scale(1.25)}
.task{position:relative;background:var(--card);display:flex;align-items:center;gap:14px;padding:13px 16px;min-height:60px;touch-action:pan-y;will-change:transform;user-select:none}
.task.anim{transition:transform .45s var(--spring)}
.chk{flex:none;width:28px;height:28px;border-radius:50%;border:2px solid var(--tx3);display:grid;place-items:center;transition:all .35s var(--spring);position:relative}
.chk svg{width:15px;height:15px;stroke:#fff;stroke-width:3.2;fill:none;stroke-dasharray:20;stroke-dashoffset:20;transition:stroke-dashoffset .35s .05s var(--ease)}
.done .chk{background:var(--green);border-color:var(--green);transform:scale(1.04)}.done .chk svg{stroke-dashoffset:0}
.chk.pop{animation:chkPop .5s var(--spring)}@keyframes chkPop{40%{transform:scale(1.3)}}
.chk.pop:after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--green);animation:ripple .5s ease-out forwards}@keyframes ripple{from{opacity:.8;transform:scale(.6)}to{opacity:0;transform:scale(1.5)}}
.task .t{font-size:16.5px;font-weight:550;transition:color .3s}.task .m{font-size:13px;color:var(--tx2);display:flex;gap:8px;margin-top:2px;align-items:center}
.task .t span{background:linear-gradient(currentColor,currentColor) 0 55%/0 1.5px no-repeat;transition:background-size .4s var(--ease)}
.done .t{color:var(--tx3)}.done .t span{background-size:100% 1.5px}
.time{font-weight:650;color:var(--blue);font-size:13px;background:rgba(30,107,255,.09);padding:1px 7px;border-radius:7px}
.empty{text-align:center;padding:44px 20px;color:var(--tx2)}.empty .e{font-size:54px;margin-bottom:8px;animation:float 3s ease-in-out infinite}@keyframes float{50%{transform:translateY(-6px)}}
.swipe-in-l{animation:sil .4s var(--ease) both}@keyframes sil{from{opacity:0;transform:translateX(-36px)}}
.swipe-in-r{animation:sir .4s var(--ease) both}@keyframes sir{from{opacity:0;transform:translateX(36px)}}
.stagger>*{animation:stg .5s var(--ease) both}.stagger>*:nth-child(2){animation-delay:.04s}.stagger>*:nth-child(3){animation-delay:.08s}.stagger>*:nth-child(4){animation-delay:.12s}.stagger>*:nth-child(5){animation-delay:.16s}.stagger>*:nth-child(n+6){animation-delay:.2s}
@keyframes stg{from{opacity:0;transform:translateY(10px)}}
/* rows */
.cell{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--card);position:relative}.cell+.cell:before{content:"";position:absolute;top:0;left:62px;right:0;height:1px;background:var(--line)}
.ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:18px;flex:none;background:var(--fill)}
.chev{color:var(--tx3);font-size:20px}
.toggle{width:51px;height:31px;border-radius:16px;background:rgba(10,35,80,.14);position:relative;transition:background .3s;flex:none}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.18);transition:transform .4s var(--spring)}
.toggle.on{background:var(--green)}.toggle.on:after{transform:translateX(20px)}
/* bars */
.pbar{height:8px;border-radius:8px;background:var(--fill);overflow:hidden}.pbar i{display:block;height:100%;border-radius:8px;background:var(--grad);transform-origin:left;animation:grow 1s var(--ease) both}
@keyframes grow{from{transform:scaleX(0)}}
.chart{display:flex;align-items:flex-end;gap:4px;height:140px;padding-top:10px}.chart .b{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end;min-width:0}
.chart .st{width:100%;max-width:26px;border-radius:7px 7px 3px 3px;display:flex;flex-direction:column-reverse;overflow:hidden;transform-origin:bottom;animation:rise .8s var(--spring) both;min-height:3px}
@keyframes rise{from{transform:scaleY(0)}}
.chart .st i{display:block}.chart .x{font-size:10.5px;color:var(--tx3);font-weight:600;white-space:nowrap}.chart .b.hl .x{color:var(--blue)}
.legend{display:flex;gap:14px;font-size:12.5px;color:var(--tx2);font-weight:550;margin-top:10px}.legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px}
.ring-wrap{position:relative;display:grid;place-items:center;flex:none}.ring-wrap .c{position:absolute;text-align:center}
.ring-arc{transition:stroke-dashoffset 1.2s var(--ease)}
/* sheet */
.backdrop{position:fixed;inset:0;background:rgba(5,16,40,.38);z-index:90;opacity:0;transition:opacity .3s;backdrop-filter:blur(2px)}.backdrop.on{opacity:1}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:91;background:var(--bg);border-radius:26px 26px 0 0;padding:8px 18px calc(22px + env(safe-area-inset-bottom));max-height:92vh;overflow-y:auto;box-shadow:var(--sh3);transform:translateY(105%);transition:transform .5s var(--spring)}
.sheet.on{transform:none}.sheet.drag{transition:none}
.grab{width:38px;height:5px;border-radius:3px;background:rgba(10,35,80,.18);margin:4px auto 12px}
.sheet h3{font-size:22px;font-weight:750;letter-spacing:-.02em;margin:0 0 6px;text-align:center}
/* tabbar */
.tabbar{position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));height:66px;z-index:30;border-radius:24px;background:rgba(255,255,255,.82);backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);box-shadow:var(--sh3);display:grid;grid-template-columns:repeat(5,1fr);padding:6px}
.tabbar .ind{position:absolute;top:6px;bottom:6px;left:6px;border-radius:18px;background:rgba(30,107,255,.1);transition:transform .5s var(--spring)}
.tab{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--tx3);font-size:11px;font-weight:650;transition:color .3s}
.tab svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .45s var(--spring)}
.tab.on{color:var(--blue)}.tab.on svg{transform:translateY(-1px) scale(1.08)}
/* skeleton */
.sk{background:linear-gradient(90deg,rgba(10,35,80,.06) 25%,rgba(10,35,80,.11) 37%,rgba(10,35,80,.06) 63%);background-size:400% 100%;animation:shim 1.3s ease infinite;border-radius:12px}
@keyframes shim{from{background-position:100% 50%}to{background-position:0 50%}}
/* ptr */
.ptr{position:fixed;left:50%;top:0;z-index:40;width:40px;height:40px;margin-left:-20px;border-radius:50%;background:#fff;box-shadow:var(--sh2);display:grid;place-items:center;transform:translateY(-60px);opacity:0}
.ptr svg{width:22px;height:22px;stroke:var(--blue);stroke-width:2.5;fill:none;stroke-linecap:round}.ptr.spin svg{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
/* toast */
.toast{position:fixed;left:16px;right:16px;bottom:calc(92px + env(safe-area-inset-bottom));z-index:95;background:rgba(10,35,80,.94);color:#fff;border-radius:16px;padding:14px 16px;display:flex;align-items:center;gap:12px;box-shadow:var(--sh3);transform:translateY(30px) scale(.96);opacity:0;transition:all .45s var(--spring);font-weight:550;font-size:15px;backdrop-filter:blur(10px)}
.toast{pointer-events:none}.toast.on{transform:none;opacity:1;pointer-events:auto}.toast button{color:var(--cyan);font-weight:700;margin-left:auto}
/* misc */
.avatar{width:64px;height:64px;border-radius:22px;background:var(--grad);display:grid;place-items:center;color:#fff;font-size:28px;font-weight:800;box-shadow:0 8px 22px rgba(30,107,255,.35);overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}
.badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;padding:3px 9px;border-radius:20px;background:rgba(255,176,32,.16);color:#b77400}
.insight{display:flex;gap:12px;align-items:center;padding:12px 0}.insight+.insight{border-top:1px solid var(--line)}.insight .ico{width:40px;height:40px;border-radius:13px;font-size:20px}
.file{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--fill);margin-top:8px;font-size:14.5px;font-weight:550}
.mrow{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--card);position:relative}.mrow+.mrow:before{content:"";position:absolute;top:0;left:64px;right:0;height:1px;background:var(--line)}
.amt-in{color:#11935a;font-weight:700}.amt-out{color:var(--tx);font-weight:700}
canvas#cf{position:fixed;inset:0;pointer-events:none;z-index:200}
.gate{min-height:100vh;display:grid;place-items:center;text-align:center;padding:30px}

.bigtext{font-size:18px;line-height:1.45;min-height:110px;margin-top:12px;padding:14px 16px;border-radius:16px;font-weight:500}
.pfiles{display:flex;flex-direction:column;gap:8px}.pfile{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:14px;padding:8px 10px;box-shadow:var(--sh1);animation:stg .35s var(--ease)}
.pfile img{width:44px;height:44px;border-radius:10px;object-fit:cover}.pfile .fi{width:44px;height:44px;border-radius:10px;background:var(--fill);display:grid;place-items:center;font-size:22px}.pfile .fn{font-weight:600;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pfile .x{color:var(--tx3);font-size:18px;padding:6px}
.drop{display:flex;flex-direction:column;align-items:center;gap:4px;border:2px dashed rgba(30,107,255,.3);background:rgba(30,107,255,.04);border-radius:18px;padding:22px;margin-top:14px;text-align:center}.drop.busy{opacity:.6;animation:pulse 1s infinite alternate}@keyframes pulse{to{opacity:.35}}
.pitem{display:flex;gap:12px;padding:12px 14px;background:var(--card);position:relative;transition:opacity .25s}.pitem+.pitem{border-top:1px solid var(--line)}.pitem.off{opacity:.45}
.pchk{flex:none;width:26px;height:26px;border-radius:8px;border:2px solid var(--tx3);margin-top:6px;transition:all .3s var(--spring)}.pchk.on{background:var(--blue);border-color:var(--blue);box-shadow:inset 0 0 0 4px #fff}
.pin{width:100%;border:0;background:none;font-size:16.5px;font-weight:600;outline:none;padding:4px 0;border-bottom:1.5px solid transparent}.pin:focus{border-bottom-color:var(--blue)}
.ptm,.psel{height:34px;border-radius:10px;border:0;background:var(--fill);padding:0 8px;font-size:14px}.pflag{margin-top:6px;font-size:12.5px;color:#b77400;background:rgba(255,176,32,.12);padding:4px 8px;border-radius:8px;display:inline-block}

.ocrbox{display:flex;flex-direction:column;align-items:center;text-align:center;padding:18px 10px;margin-top:12px;background:var(--card);border-radius:18px;box-shadow:var(--sh1);animation:stg .35s var(--ease)}
.ocrbox img{max-width:100%;max-height:140px;border-radius:12px;margin-top:12px;opacity:.9}
.ocrbox:empty{display:none}

@keyframes dseg{from{stroke-dasharray:0 1000}}
.warnc{background:rgba(255,77,94,.08);color:#b4232f;font-size:14.5px;box-shadow:none;border:1px solid rgba(255,77,94,.18)}
.bud{display:flex;align-items:center;gap:12px;width:100%;padding:13px 16px;background:var(--card);position:relative}.bud+.bud:before{content:"";position:absolute;top:0;left:62px;right:0;height:1px;background:var(--line)}
.rank{width:20px;font-weight:800;color:var(--tx3);font-size:14px;text-align:center}.rc{font-size:20px;padding:4px}
.kp-amt{display:flex;align-items:baseline;justify-content:center;gap:6px;margin:6px 0 2px}.kp-amt .num{font-size:52px;font-weight:800;letter-spacing:-.045em}.kp-amt .cur{font-size:34px;font-weight:800;color:var(--tx3)}
.bump{animation:bump .25s var(--spring)}@keyframes bump{50%{transform:scale(1.06)}}
.ecgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.ecb{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 2px;border-radius:14px;background:var(--card);box-shadow:var(--sh1);border:2px solid transparent;transition:all .25s var(--ease)}
.ecb span{font-size:22px}.ecb small{font-size:11.5px;font-weight:600;color:var(--tx2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ecb.on{border-color:var(--c,var(--blue));background:color-mix(in srgb,var(--c,#1e6bff) 9%,#fff)}.ecb.on small{color:var(--tx)}
.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.key{height:54px;border-radius:14px;background:var(--card);box-shadow:var(--sh1);font-size:24px;font-weight:600}.key:active{background:var(--fill)}
.emog{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}.emog button{font-size:22px;height:38px;border-radius:10px;transition:all .2s}.emog button.on{background:rgba(30,107,255,.14);transform:scale(1.1)}
.tab span{font-size:10.5px}

.imodes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}
.imode{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 4px;border-radius:18px;background:var(--card);box-shadow:var(--sh1);border:2px solid transparent;transition:all .3s var(--ease)}
.imode span{font-size:28px;transition:transform .35s var(--spring)}.imode b{font-size:15px}.imode small{font-size:11px;color:var(--tx3);text-align:center}
.imode.on{border-color:var(--blue);background:linear-gradient(180deg,rgba(30,107,255,.08),rgba(31,200,242,.05))}.imode.on span{transform:scale(1.15)}
.ipanel{animation:fadeUp .35s var(--ease)}@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}}
.othumbs{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:10px}.othumbs img{width:44px;height:56px;object-fit:cover;border-radius:8px;opacity:.55;transition:all .3s}.othumbs img.on{opacity:1;transform:scale(1.08);box-shadow:var(--sh2)}

.herotx .big{margin-bottom:6px}.herotx .hmsg{line-height:1.3;overflow-wrap:anywhere}
.datepick{cursor:pointer;-webkit-tap-highlight-color:transparent}
.calhead{gap:8px;margin-bottom:10px}.cnav{width:40px;height:40px;border-radius:12px;background:var(--fill);font-size:22px;font-weight:700}
.cweek,.cgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.cweek span{font-size:12px;font-weight:650;color:var(--tx3);padding:4px 0}
.cd{height:44px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:16px;font-weight:600;transition:background .2s}
.cd i{width:5px;height:5px;border-radius:50%}.cd i.has{background:var(--tx3)}.cd i.all{background:var(--green)}.cd.td{color:var(--blue)}.cd.on{background:var(--navy);color:#fff}.cd.on i.has{background:rgba(255,255,255,.6)}
.addcat{gap:12px;width:100%;margin-top:6px}.cprev{width:50px;height:50px;font-size:24px;border-radius:14px;flex:none}

.fab{touch-action:none;user-select:none;-webkit-user-select:none}.fab.drag{transform:scale(1.12);box-shadow:0 18px 40px rgba(30,107,255,.55);transition:transform .2s}
#main{padding-bottom:80px}
