
:root{
  --bg:#f2f2f7;--card:#fff;--ink:#1c1c1e;--mute:#8e8e93;--line:rgba(60,60,67,.12);--acc:#DFC372;--acc2:#EBD9A0;--accT:#6F5B20;--goldnum:#1c1c1e;--onacc:#241d0a;--ok:#34c759;--bad:#ff453a;
  --glass:rgba(249,249,251,.78);--shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.05);--track:rgba(60,60,67,.1)
}
[data-theme=dark]{
  --bg:#000;--card:#1c1c1e;--ink:#f5f5f7;--mute:#98989f;--line:rgba(255,255,255,.1);--acc:#E8D18A;--acc2:#F4E6B9;--accT:#E8D18A;--goldnum:#E8D18A;--onacc:#1c180a;
  --glass:rgba(22,22,24,.78);--shadow:none;--track:rgba(255,255,255,.12)
}
*{box-sizing:border-box;margin:0;-webkit-tap-highlight-color:transparent}
html,body{background:var(--bg)}
body{font:17px/1.35 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,sans-serif;color:var(--ink);padding-bottom:calc(96px + env(safe-area-inset-bottom));-webkit-font-smoothing:antialiased}
.wrap{max-width:560px;margin:0 auto;padding:18px 16px}
h1{font-size:30px;font-weight:700;letter-spacing:-.6px}
h2{font-size:20px;font-weight:700;letter-spacing:-.3px;margin:22px 0 0}
.sub{color:var(--mute);font-size:15px;margin-top:2px}
.card{background:var(--card);border-radius:22px;padding:20px;margin-top:14px;box-shadow:var(--shadow);animation:up .5s both}
@keyframes up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.lab{font-size:13px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--mute)}
.big{font-size:44px;font-weight:700;letter-spacing:-1.2px;line-height:1.05;font-variant-numeric:tabular-nums}
.mid{font-size:22px;font-weight:700;letter-spacing:-.6px;font-variant-numeric:tabular-nums}
.gold{background:linear-gradient(135deg,var(--acc2),var(--acc));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero{padding:26px 20px 22px;text-align:center}
.ringbox{position:relative;width:236px;height:236px;margin:12px auto 6px}
.ringbox svg{width:100%;height:100%;transform:rotate(-90deg)}
.ringbox .c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.pct{font-size:56px;font-weight:700;letter-spacing:-2px}
.row{display:flex;gap:12px}.row>*{flex:1;min-width:0}
.cols{display:grid;grid-template-columns:1fr;gap:0 14px}
.stat{background:var(--card);border-radius:22px;padding:18px;margin-top:14px;box-shadow:var(--shadow);animation:up .5s both}
.pill{display:inline-block;font-size:12px;font-weight:600;padding:4px 10px;border-radius:99px;background:var(--track);color:var(--mute);white-space:nowrap}
.pill.on{background:linear-gradient(135deg,var(--acc2),var(--acc));color:#fff}
.bar{height:8px;border-radius:99px;background:var(--track);overflow:hidden;margin-top:10px}
.bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--acc),var(--acc2));transition:width .9s cubic-bezier(.2,.8,.2,1)}
.list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-top:1px solid var(--line)}
.list>div:first-child{border-top:0}
.pos{color:var(--ok)}.neg{color:var(--bad)}
.note{color:var(--mute);font-size:14px}
.bars{display:flex;align-items:flex-end;gap:5px;height:90px;margin-top:14px}
.bars div{flex:1;border-radius:5px;background:var(--track);min-height:4px}.bars div.ok{background:linear-gradient(var(--acc2),var(--acc))}
.tabs[hidden]{display:none}
.tabs{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:2px;padding:8px 8px calc(10px + env(safe-area-inset-bottom));background:var(--glass);-webkit-backdrop-filter:saturate(180%) blur(22px);backdrop-filter:saturate(180%) blur(22px);border-top:1px solid var(--line);z-index:5}
.tabs button{flex:1;max-width:120px;border:0;background:none;color:var(--mute);font:600 11px -apple-system,sans-serif;padding:6px 0;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer}
.tabs button svg{width:25px;height:25px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tabs button.on{color:var(--goldnum)}
.tabs button{position:relative}.tabs button.on::before{content:"";position:absolute;top:-8px;left:50%;width:26px;height:3px;margin-left:-13px;border-radius:3px;background:var(--acc)}
.brand{display:none}
.btn{display:block;width:100%;border:0;border-radius:14px;padding:15px;font:600 17px -apple-system,sans-serif;color:#fff;background:linear-gradient(135deg,var(--acc2),var(--acc));margin-top:14px;cursor:pointer}
.btn.ghost{background:var(--track);color:var(--ink)}
.btn.sm{padding:10px;font-size:15px}
.sheet{position:fixed;inset:0;background:rgba(0,0,0,.35);display:none;align-items:flex-end;justify-content:center;z-index:9}
.sheet.show{display:flex}
.sheet>div{max-height:92vh;max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;width:100%;max-width:560px;background:var(--card);border-radius:26px 26px 0 0;padding:22px 20px calc(24px + env(safe-area-inset-bottom));animation:up .3s both}
.sheet h3{font-size:22px;margin-bottom:12px}
input,select{width:100%;border:0;background:var(--track);color:var(--ink);font:17px -apple-system,sans-serif;padding:14px;border-radius:12px;margin-top:10px;outline:none}
.seg{display:flex;background:var(--track);border-radius:12px;padding:3px;margin-top:6px}
.seg button{flex:1;border:0;background:none;padding:10px;border-radius:10px;font:600 15px -apple-system,sans-serif;color:var(--mute);cursor:pointer}
.seg button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.x{border:0;background:none;color:var(--mute);font-size:20px;padding:4px 8px;cursor:pointer}
.empty{text-align:center;color:var(--mute);padding:28px 8px}
#err{padding:40px 24px;text-align:center;color:var(--mute)}
.task{display:flex;gap:12px;align-items:flex-start;padding:13px 0;border-top:1px solid var(--line)}
.task:first-child{border-top:0}
.task .t{flex:1;min-width:0;font-size:16px;line-height:1.3}
.chk{flex:none;width:30px;height:30px;border-radius:50%;border:2px solid var(--acc);background:none;color:#fff;font-size:15px;cursor:pointer;margin-top:1px;transition:.2s}
.chk:hover,.chk:active{background:var(--acc)}
.meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.spc{background:var(--card);border-radius:22px;padding:18px;box-shadow:var(--shadow);cursor:pointer;animation:up .5s both}
.spgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.back{border:0;background:none;color:var(--accT);font:600 16px -apple-system,sans-serif;padding:0 0 8px;cursor:pointer}
.tip{background:var(--track);border-radius:14px;padding:12px 14px;margin-top:10px;font-size:15px}
@media(min-width:900px){
  body{padding:0 0 40px 240px;font-size:16px}
  .wrap{max-width:1120px;padding:36px 40px}
  h1{font-size:38px}
  .tabs{top:0;right:auto;bottom:0;width:240px;flex-direction:column;justify-content:flex-start;gap:4px;padding:28px 14px;border-top:0;border-right:1px solid var(--line)}
  .brand{display:block;font-size:20px;font-weight:700;letter-spacing:-.3px;padding:0 12px 22px}
  .tabs button{max-width:none;flex:none;flex-direction:row;gap:12px;font-size:16px;padding:11px 12px;border-radius:12px;justify-content:flex-start}
  .tabs button.on{background:var(--track)}
  .cols{grid-template-columns:1fr 1fr}
  .cols.three{grid-template-columns:repeat(3,1fr)}
  .spgrid{grid-template-columns:repeat(3,1fr)}
  .sheet{align-items:center}.sheet>div{border-radius:26px;max-width:460px}
  .span2{grid-column:1/3}
}
.plan{display:flex;gap:16px;padding:22px 0;border-top:1px solid var(--line)}.plan:first-of-type{border-top:0}
.pic{flex:none;width:52px;height:52px;border-radius:16px;background:var(--track);display:flex;align-items:center;justify-content:center}
.pic svg{width:26px;height:26px;stroke:var(--ink);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.plan .pill{white-space:normal;line-height:1.3;border-radius:12px;padding:6px 10px}.plan .meta{margin-top:10px}
.pt{font-size:19px;font-weight:600;letter-spacing:-.3px}.ph{font-size:26px;font-weight:700;letter-spacing:-.6px;margin-top:10px;line-height:1.15}.pd{color:var(--mute);font-size:16px;margin-top:10px;line-height:1.4}
.hero2{margin-top:14px;border-radius:30px;padding:22px 18px 18px;text-align:center;color:#f5ecd6;background:radial-gradient(130% 80% at 50% 0,#4a4126 0,#26221a 48%,#14120d 100%);box-shadow:0 18px 50px rgba(232,209,138,.16),inset 0 1px 0 rgba(255,255,255,.12);animation:up .5s both}
.hl{font-size:13px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:#E8D18A}
.hero2 .ringbox{width:250px;height:250px;margin:14px auto 8px;filter:drop-shadow(0 0 18px rgba(232,209,138,.35))}
.hero2 .ringbox circle:first-of-type{stroke:rgba(255,255,255,.12)}
.hero2 .pct{font-size:58px;line-height:1}
.rs{font-size:22px;font-weight:700;letter-spacing:-.4px;margin-top:6px;color:#fff}.rn{font-size:14px;color:rgba(245,236,214,.62);margin-top:2px}
.hstats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px;padding:14px 4px;border-radius:20px;background:rgba(255,255,255,.07)}
.hv{font-size:19px;font-weight:700;letter-spacing:-.4px;color:#fff;font-variant-numeric:tabular-nums}.hk{font-size:11.5px;color:rgba(245,236,214,.62);margin-top:3px;line-height:1.2}
.hn{margin-top:14px;font-size:14px;color:#E8D18A}
.hbtn{display:block;width:100%;margin-top:14px;border:1px solid rgba(232,209,138,.45);background:rgba(232,209,138,.12);color:#F4E6B9;border-radius:14px;padding:12px;font:600 15px -apple-system,sans-serif;cursor:pointer}
.task.late,.task.today{margin:0 -10px;padding:13px 10px;border-radius:14px;border-top-color:transparent}
.task.late{background:rgba(255,69,58,.12);box-shadow:inset 3px 0 0 var(--bad)}.task.today{background:rgba(232,209,138,.10);box-shadow:inset 3px 0 0 var(--acc)}
.task.late .chk{border-color:var(--bad)}.task.late .chk:hover{background:var(--bad)}.task.today .chk{border-color:var(--acc)}
.pill.hotp{background:var(--bad);color:#fff}.pill.hotp.soft{background:var(--acc);color:var(--onacc)}
.cols.eq>div{display:flex;flex-direction:column}.cols.eq>div>.card,.cols.eq>div>.hero2{flex:1}
@media(max-width:420px){.hv{font-size:16px;white-space:nowrap}.hstats{padding:12px 2px}}
.t-neg{color:#ff9d9d}.t-zero{color:#fff}.t-pos{color:#8ee6aa}

/* ---- строгая полировка: плоское золото, тонкие линии, единые кнопки ---- */
button,input,select,textarea{font-family:inherit}
button.pill,button.btn,button.hbtn,button.back,button.x{border:0;cursor:pointer;-webkit-appearance:none;appearance:none}
.pill{font-size:12.5px;padding:5px 11px;letter-spacing:.01em;line-height:1.25}
.pill.on{background:var(--acc);color:var(--onacc)}
[data-theme=light] .pill.on,
.btn{background:var(--acc);color:var(--onacc);font-weight:600;letter-spacing:-.01em;border-radius:14px}

.btn.ghost{background:var(--track);color:var(--ink)}
.gold{background:none;-webkit-text-fill-color:currentColor;color:var(--goldnum)}
.bar i,.bars div.ok{background:var(--acc)}
.bar{height:6px}
.card,.stat,.spc{border:1px solid var(--line);box-shadow:none;border-radius:20px;animation-duration:.35s}
:root:not([data-theme=dark]) .card,:root:not([data-theme=dark]) .stat,:root:not([data-theme=dark]) .spc{box-shadow:0 1px 2px rgba(0,0,0,.04)}
h1{font-size:32px;letter-spacing:-.035em;line-height:1.08}
h2{font-size:21px;letter-spacing:-.025em}
.lab{letter-spacing:.09em;font-size:12px}
.sub{font-size:15px;line-height:1.4}
.seg{background:var(--track);border:1px solid var(--line)}
.seg button.on{background:var(--card);box-shadow:none;border:1px solid var(--line)}
.hero2{border:1px solid rgba(232,209,138,.18);box-shadow:none}
.hero2 .ringbox{filter:none!important}
.hbtn{border-radius:99px;background:transparent}
.task.late,.task.today{box-shadow:none}
.task.late{background:rgba(255,69,58,.08);border-left:2px solid var(--bad)}.task.today{background:rgba(232,209,138,.08);border-left:2px solid var(--acc)}
.pill.hotp{background:rgba(255,69,58,.16);color:#ff6b61}.pill.hotp.soft{background:rgba(223,195,114,.28);color:var(--accT)}
.tabs{border-top:1px solid var(--line)}
.tabs button.on{color:var(--goldnum)}
.tip{border:1px solid var(--line);background:transparent}
input,select,textarea{border:1px solid var(--line);background:var(--track)}
.sheet>div{border:1px solid var(--line);border-bottom:0}

#fab{position:fixed;right:16px;bottom:calc(88px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;border:0;background:var(--acc);color:var(--onacc);display:flex;align-items:center;justify-content:center;z-index:8;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.35);-webkit-appearance:none}

#fab{position:fixed}
#fab .fab-ai{position:absolute;top:-3px;right:-3px;background:#1b1405;color:var(--acc);border:1.5px solid var(--acc);border-radius:99px;font:700 10px -apple-system,sans-serif;padding:2px 5px;line-height:1}
html.gate #fab,html.gate #ap{display:none!important}
#ap{position:fixed;inset:0;z-index:120;display:none}#ap.show{display:block}
.ap-scrim{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.ap-box{position:absolute;left:0;right:0;bottom:0;max-width:560px;margin:0 auto;height:min(84vh,760px);background:var(--card);border:1px solid var(--line);border-bottom:0;border-radius:22px 22px 0 0;display:flex;flex-direction:column;animation:up .25s both}
@media(min-width:900px){#fab{bottom:28px;right:28px}.ap-box{left:auto;right:24px;bottom:24px;width:420px;max-width:none;height:min(78vh,720px);border-radius:22px;border-bottom:1px solid var(--line);margin:0}}

/* ---- движение в панели: мягкое, только transform и opacity ---- */
@keyframes rdraw{from{stroke-dashoffset:var(--c)}}
@keyframes barin{from{transform:scaleX(0)}}
@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
@keyframes fabin{from{opacity:0;transform:scale(.4) translateY(24px)}to{opacity:1;transform:none}}
@keyframes fabring{0%{transform:scale(1);opacity:.55}70%,100%{transform:scale(1.75);opacity:0}}
@keyframes fabbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes dots{0%,70%,100%{opacity:.3;transform:translateY(0)}35%{opacity:1;transform:translateY(-2px)}}
@keyframes tdot{0%,60%,100%{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
@keyframes fxin{from{opacity:0}to{opacity:1}}
.rdraw{animation:rdraw 1.5s cubic-bezier(.2,.8,.2,1) .15s both}
.bar i{transform-origin:left;animation:barin 1s cubic-bezier(.2,.8,.2,1) both}
.card:nth-child(2),.stat:nth-child(2),.spc:nth-child(2){animation-delay:.05s}.card:nth-child(3),.stat:nth-child(3),.spc:nth-child(3){animation-delay:.1s}.card:nth-child(4),.spc:nth-child(4){animation-delay:.15s}.card:nth-child(5),.spc:nth-child(5){animation-delay:.2s}.card:nth-child(n+6){animation-delay:.25s}
.btn,.pill,.chk,.tabs button,.hbtn{transition:transform .2s cubic-bezier(.2,.8,.2,1),background-color .25s,opacity .25s}
.btn:active,.pill:active,.hbtn:active{transform:scale(.96)}
.chk:active{transform:scale(.88)}
.tabs button svg{transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.tabs button.on svg{transform:translateY(-2px) scale(1.08)}
.tabs button:active svg{transform:scale(.88)}
.spc,.card{transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s}
.spc:active{transform:scale(.98)}
#fab{animation:fabin .7s cubic-bezier(.2,.8,.2,1) .5s both;transition:transform .2s}
#fab::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--acc);opacity:0;animation:fabring 3.4s ease-out 2s infinite;pointer-events:none}
#fab:active{transform:scale(.9)}
#fab{background:none!important;box-shadow:none!important;width:64px;height:64px}
#fab .fabimg{width:64px;height:64px;pointer-events:none;filter:drop-shadow(0 8px 12px rgba(0,0,0,.45));transition:transform .25s}
#fab:hover .fabimg{transform:scale(1.07) rotate(-4deg)}
#fab.busy .fabimg{animation:fabbusy 1s ease-in-out infinite}@keyframes fabbusy{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
#fab::before{inset:2px}
#fab .d{animation:dots 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
#fab .d:nth-of-type(2){animation-delay:.2s}#fab .d:nth-of-type(3){animation-delay:.4s}
#fab.busy::before{animation-duration:1.2s}
#fab.busy .d{animation-duration:.9s}
.bub.new{animation:pop .4s cubic-bezier(.2,.8,.2,1) both}
.typing{display:inline-flex;gap:4px;align-items:center;margin-right:8px}.typing i{width:6px;height:6px;border-radius:50%;background:var(--acc);display:block;animation:tdot 1.1s ease-in-out infinite}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
.ap-box{animation:pop .35s cubic-bezier(.2,.8,.2,1) both}.ap-scrim{animation:fxin .25s both}
@media(min-width:900px){.ap-box{animation-name:pop}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.ob{position:fixed;inset:0;z-index:120;background:var(--bg);display:flex;flex-direction:column;padding:calc(18px + env(safe-area-inset-top)) 22px calc(22px + env(safe-area-inset-bottom));overflow:hidden}
.ob::before{content:"";position:absolute;left:50%;top:34%;width:560px;height:560px;margin:-280px 0 0 -280px;border-radius:50%;background:radial-gradient(circle,rgba(232,209,138,.26),rgba(232,209,138,0) 62%);animation:obglow 5s ease-in-out infinite;pointer-events:none}
html[data-theme=light] .ob::before{background:radial-gradient(circle,rgba(223,195,114,.5),rgba(223,195,114,0) 62%)}
@keyframes obglow{0%,100%{transform:scale(.9);opacity:.75}50%{transform:scale(1.08);opacity:1}}
.ob>*{position:relative}
.ob .obtop{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.16em;color:var(--mute);font-weight:700}
.ob .obtop button{border:0;background:none;color:var(--accT);font:700 12px -apple-system,sans-serif;letter-spacing:.16em;cursor:pointer;text-transform:uppercase}
.ob .obdots{display:flex;gap:6px;justify-content:center;margin-top:16px}.ob .obdots i{width:34px;height:4px;border-radius:4px;background:var(--track);overflow:hidden;position:relative}
.ob .obdots i.on::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--acc2),var(--acc));transform-origin:left;animation:obfill .6s ease both}
@keyframes obfill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.ob .obmid{flex:1;display:flex;flex-direction:column;justify-content:center;text-align:center;animation:obslide .5s cubic-bezier(.2,.8,.2,1) both}
@keyframes obslide{from{opacity:0;transform:translateX(26px)}to{opacity:1;transform:none}}
.ob .obhero{display:flex;justify-content:center;align-items:center;gap:14px;min-height:120px;margin-bottom:6px}
.ob .obhero>*{animation:obpop .6s cubic-bezier(.2,1.2,.3,1) both}.ob .obhero>*:nth-child(2){animation-delay:.12s}.ob .obhero>*:nth-child(3){animation-delay:.24s}
@keyframes obpop{from{opacity:0;transform:scale(.6) translateY(14px)}to{opacity:1;transform:none}}
.ob .obfloat{animation:obpop .6s both,obbob 3.6s ease-in-out .7s infinite}@keyframes obbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.ob h2{margin:6px 0 18px;font-size:31px;line-height:1.08;text-transform:uppercase;letter-spacing:.03em;font-weight:900;background:linear-gradient(180deg,#fff7d6,#E8D18A 55%,#a8893a);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 14px rgba(232,209,138,.25))}
html[data-theme=light] .ob h2{background:linear-gradient(180deg,#8a6d1f,#5c4812);-webkit-background-clip:text;background-clip:text;filter:none}
.ob .obgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}
.ob .obgrid div{display:flex;align-items:center;gap:10px;text-align:left;background:linear-gradient(160deg,var(--card),rgba(232,209,138,.08));border:1px solid rgba(232,209,138,.45);border-radius:14px;padding:13px 10px;font-weight:700;font-size:13px;min-width:0;overflow-wrap:anywhere;hyphens:auto;box-shadow:0 6px 18px rgba(0,0,0,.18);animation:obpop .5s cubic-bezier(.2,1.2,.3,1) both}
.ob .obgrid div:nth-child(2){animation-delay:.08s}.ob .obgrid div:nth-child(3){animation-delay:.16s}.ob .obgrid div:nth-child(4){animation-delay:.24s}.ob .obgrid div:nth-child(5){animation-delay:.32s}.ob .obgrid div:nth-child(6){animation-delay:.4s}
.ob .obgrid i{flex:none;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:15px;color:var(--onacc,#241d0a);background:linear-gradient(135deg,var(--acc2),var(--acc))}
.ob .obbox{border:1px solid rgba(232,209,138,.5);border-radius:18px;padding:16px 16px 6px;background:linear-gradient(160deg,rgba(232,209,138,.1),rgba(232,209,138,.02));box-shadow:0 0 0 1px rgba(232,209,138,.08) inset;animation:obpop .6s .15s cubic-bezier(.2,1,.3,1) both}
.ob p{margin:0 0 12px;font-size:17px;line-height:1.4;color:var(--ink)}.ob p.s{font-size:14px;color:var(--mute)}.ob p b{color:var(--accT)}
.ob .obbar{height:10px;border-radius:10px;background:var(--track);overflow:hidden;width:200px}.ob .obbar i{display:block;height:100%;width:78%;border-radius:10px;background:linear-gradient(90deg,var(--acc2),var(--acc));transform-origin:left;animation:obfill 1.4s .3s cubic-bezier(.2,.8,.2,1) both}
.ob .obstar{width:120px;height:120px;filter:drop-shadow(0 0 22px rgba(232,209,138,.55));animation:obpop .7s both,obpulse 2.4s ease-in-out .8s infinite}@keyframes obpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
.ob .obai{width:120px;height:120px;filter:drop-shadow(0 0 22px rgba(232,209,138,.5))}
.ob .btn{position:relative;overflow:hidden}.ob .btn::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);animation:obshine 3s ease-in-out 1s infinite}@keyframes obshine{0%{left:-60%}60%,100%{left:130%}}

.calwrap{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media(min-width:900px){.calwrap{grid-template-columns:minmax(0,1.45fr) minmax(320px,1fr);align-items:start;gap:20px}}
.calc,.cday{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:var(--shadow)}
.chead{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:18px}
.cmon{font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1}.cyear{font-size:14px;color:var(--mute);margin-top:6px}
.cnav{display:flex;gap:6px;align-items:center;flex:none}.chead>div:first-child{min-width:0}
.cbtn{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--track);color:var(--ink);font:600 20px/1 -apple-system,sans-serif;cursor:pointer;transition:transform .15s,background .2s}.cbtn:active{transform:scale(.92)}.cbtn:hover{background:var(--line)}
.cbtn.tx{width:auto;padding:0 14px;border-radius:99px;font-size:14px;color:var(--accT)}
.cwd{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);padding-bottom:10px;border-bottom:1px solid var(--line)}.cwd .we{opacity:.6}
.cgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin-top:10px;animation:cfade .35s ease both}@keyframes cfade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.ccell{aspect-ratio:1/.92;border:0;background:none;border-radius:50%;color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;position:relative;font-family:inherit;transition:background .18s,transform .15s}
.ccell:hover{background:var(--track)}.ccell:active{transform:scale(.94)}
.ccell .cnum{font-size:16px;font-weight:500;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-variant-numeric:tabular-nums}
.ccell.out{opacity:.32}.ccell.we .cnum{color:var(--mute)}
.ccell.tod .cnum{background:linear-gradient(135deg,var(--acc2),var(--acc));color:var(--onacc,#241d0a);font-weight:800;box-shadow:0 4px 14px rgba(232,209,138,.35)}
.ccell.sel:not(.tod) .cnum{box-shadow:0 0 0 2px var(--acc) inset;font-weight:700}.ccell.sel.tod .cnum{box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--acc)}
.cdots{display:flex;gap:3px;height:6px;align-items:center}.cdot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--acc)}.cdot.late{background:var(--neg,#e5484d)}.cdot.ext{background:var(--mute)}.cdots b{font-size:9px;color:var(--mute);font-weight:700;margin-left:1px}
.clist{display:flex;flex-direction:column;gap:8px}.cleg{display:flex;gap:16px;justify-content:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--mute)}.cleg span{display:flex;align-items:center;gap:6px}
.cdh{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.cdt{font-size:22px;font-weight:800;letter-spacing:-.01em}.cds{font-size:14px;color:var(--mute);margin-top:3px}
.cadd{width:40px;height:40px;border-radius:50%;border:0;background:linear-gradient(135deg,var(--acc2),var(--acc));color:var(--onacc,#241d0a);font-size:26px;line-height:1;cursor:pointer;box-shadow:0 4px 14px rgba(232,209,138,.3);transition:transform .15s}.cadd:active{transform:scale(.9)}
.cempty{text-align:center;color:var(--mute);padding:26px 10px;font-size:15px}.cempty .cei{font-size:38px;color:var(--acc);margin-bottom:6px;opacity:.8}
@media(min-width:900px){.ccell{aspect-ratio:1/.8}.ccell .cnum{width:40px;height:40px;font-size:18px}.cmon{font-size:36px}}

.sph3{position:relative;overflow:hidden;min-height:156px;background:linear-gradient(155deg,var(--card) 35%,rgba(232,209,138,.16));transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s}
html[data-theme=light] .sph3 .sico{filter:drop-shadow(0 8px 10px rgba(120,90,20,.38)) saturate(1.25) contrast(1.05)}
html[data-theme=light] .sph3{background:linear-gradient(155deg,#fff 35%,rgba(223,195,114,.22))}
  .sph3 .sico{position:absolute;right:12px;bottom:12px;width:76px;height:76px;pointer-events:none;filter:drop-shadow(0 8px 14px rgba(0,0,0,.28));transform:rotate(-6deg);transition:transform .45s cubic-bezier(.2,1.2,.3,1)}
.sph3 .sico[src*='.webp']{transform:none}
.sph3:hover .sico,.sph3:active .sico{transform:rotate(3deg) scale(1.08) translateY(-4px)}
.sph3:hover{transform:translateY(-3px);border-color:rgba(232,209,138,.5)}
@media(min-width:900px){.sph3{min-height:170px}.sph3 .sico{width:92px;height:92px;right:16px;bottom:14px}}
@media(max-width:520px){.sph3{min-height:0;padding:13px 13px 12px}.sph3 .sico{width:44px;height:44px;right:8px;bottom:8px}.sph3 .sht{font-size:15px!important;hyphens:manual;max-width:calc(100% - 4px)}.sph3 .note{font-size:12.5px!important;max-width:100%!important;line-height:1.25;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}.sph3 .meta{margin-top:8px!important;max-width:calc(100% - 46px)!important;gap:4px!important}.sph3 .meta .pill{font-size:11px;padding:3px 8px}.sph3 .goalpill{display:none}.sph-sub{display:none}.sphgrid{gap:10px}}
@media(prefers-reduced-motion:reduce){.sph3:hover,.sph3:hover .sico{transform:none}}

.setlist{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.setrow{display:flex;align-items:center;gap:14px;width:100%;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:18px;padding:14px 16px;font:15px -apple-system,sans-serif;cursor:pointer;transition:transform .15s,border-color .2s}.setrow:active{transform:scale(.985)}.setrow:hover{border-color:rgba(232,209,138,.5)}
.setrow b{font-size:16px}.seti{flex:none;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:18px;background:linear-gradient(135deg,var(--acc2),var(--acc));color:var(--onacc,#241d0a)}.seti svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.setch{color:var(--mute);font-size:22px}
details.kb{margin-top:10px;cursor:pointer}details.kb summary{font-weight:600;font-size:16px;list-style:none;display:flex;justify-content:space-between}details.kb summary::after{content:"+";color:var(--accT);font-size:20px;line-height:1}details.kb[open] summary::after{content:"−"}details.kb summary::-webkit-details-marker{display:none}
.rbadge{position:relative;display:inline-block;flex:none;line-height:0}.rbadge img{display:block;object-fit:contain}.rbadge b{position:absolute;right:-3px;bottom:-3px;border-radius:50%;background:linear-gradient(135deg,var(--acc2),var(--acc));color:var(--onacc,#241d0a);display:flex;align-items:center;justify-content:center;font-weight:800;box-shadow:0 0 0 2px var(--bg);line-height:1}
.flab{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin-top:10px}
.fchips{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.fchip{border:1px solid var(--line);background:var(--track);color:var(--ink);border-radius:99px;padding:9px 15px;font:600 14px -apple-system,sans-serif;white-space:nowrap;cursor:pointer;display:flex;align-items:center;gap:7px;transition:transform .15s,background .2s,border-color .2s,box-shadow .2s}
.fchip:active{transform:scale(.95)}.fchip:hover{border-color:rgba(232,209,138,.5)}
.fchip.on{background:linear-gradient(135deg,var(--acc2),var(--acc));color:var(--onacc,#241d0a);border-color:transparent;box-shadow:0 4px 14px rgba(232,209,138,.3)}
.fd{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--mute)}.fd.pos{background:#3fb97a}.fd.neg{background:#e5484d}.fd.tr{background:#6b8cff}
.movall{display:block;width:100%;margin-bottom:12px;border:1px dashed rgba(232,209,138,.6);background:rgba(232,209,138,.08);color:var(--accT);border-radius:14px;padding:12px;font:600 14px -apple-system,sans-serif;cursor:pointer}.movall:active{transform:scale(.98)}
#app.still *,#app.still *::before,#app.still *::after{animation:none!important}

.podium{display:flex;gap:8px;align-items:flex-end;margin-top:14px}.podc{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0}
.podn{font-weight:700;font-size:14px;margin-top:6px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.podp{font-size:22px;font-weight:800;margin:2px 0 6px;color:var(--goldnum)}
.podb{width:100%;border-radius:12px 12px 0 0;display:flex;align-items:flex-start;justify-content:center;padding-top:8px;font-weight:900;font-size:22px;color:#1b1405;animation:podgrow .7s cubic-bezier(.2,.9,.3,1) both}
@keyframes podgrow{from{transform:scaleY(.2);transform-origin:bottom}to{transform:none;transform-origin:bottom}}
.podb.gld{background:linear-gradient(180deg,#F4E6B9,#D9B65A)}.podb.sil{background:linear-gradient(180deg,#e8e8ec,#b4b6bd)}.podb.brz{background:linear-gradient(180deg,#e3a672,#b9733d)}
.rtrow{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--line)}.rtrow.me{background:linear-gradient(90deg,rgba(232,209,138,.16),transparent);border-left:3px solid var(--acc);padding-left:10px;border-radius:6px}
.rtn{width:24px;color:var(--mute);font-weight:600}.rtname{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rtrank{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);font-weight:700}.rtpts{font-size:20px}
.rtme{background:var(--card);border:1px solid rgba(232,209,138,.45);border-radius:16px;padding:14px 16px;margin-top:10px;line-height:1.4}
.rtzero{display:flex;flex-wrap:wrap;gap:12px 10px}.rtz{display:flex;flex-direction:column;align-items:center;width:76px}
.xpchart{display:flex;align-items:flex-end;gap:5px;height:150px;margin-top:14px}.xpc{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.xpbar{width:100%;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,var(--acc2),var(--acc));opacity:.8;transform-origin:bottom;animation:xpgrow .7s cubic-bezier(.2,.9,.3,1) both}.xpbar.now{opacity:1;box-shadow:0 0 12px rgba(232,209,138,.5)}
@keyframes xpgrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}.xpv{font-size:10px;color:var(--mute);height:14px;line-height:14px;margin-bottom:2px}.xpd{font-size:10px;color:var(--mute);margin-top:4px}
details.kb .kbb{margin-top:10px;font-size:15px;line-height:1.5;color:var(--ink)}.kbb p{margin:0 0 10px}.kbb ul{margin:0 0 10px;padding-left:20px}.kbb li{margin-top:5px}
.lplan.sel{border-color:var(--acc)!important;box-shadow:0 0 0 2px rgba(232,209,138,.35)}.lplan .radio{width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.35);display:inline-block;position:relative;flex:none}.lplan .radio.on{border-color:#E8D18A}.lplan .radio.on::after{content:'';position:absolute;inset:4px;border-radius:50%;background:#E8D18A}
