.heat{--cell: 12px;--gap: 6px;--canvas: #ffffff;--fg: #1f2328;--muted: #656d76;--c0: #ebedf0;--c1: #9be9a8;--c2: #40c463;--c3: #30a14e;--c4: #216e39;margin-top:22px;width:max-content;max-width:100%;color:var(--fg);font-size:12px;line-height:1.5}.goals{display:flex;flex-direction:column;gap:14px;margin:0 0 12px}.goal{margin:0}.goal-empty{margin:0 0 12px;color:var(--muted);font-size:14px;line-height:18px}.goal-top{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 8px;font-size:14px;line-height:18px}.goal-name{color:var(--fg)}.goal-num{color:var(--muted)}.goal-track{height:8px;border-radius:6px;background:#ebedf0;overflow:hidden}.goal-fill{height:100%;border-radius:6px;background:#2da44e}.heat-box{max-width:100%;background:var(--canvas);border:1px solid #d0d7de;border-radius:6px;padding:16px 16px 12px}.heat-scroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;padding:6px}.heat-scroll::-webkit-scrollbar{display:none}.heat-layout{display:flex;width:max-content}.heat-months{display:grid;column-gap:var(--gap);height:15px;margin-bottom:var(--gap);color:var(--fg);font-size:12px;line-height:15px}.heat-month{min-width:0;white-space:nowrap}.heat-cells{display:grid;grid-template-rows:repeat(7,var(--cell));grid-auto-flow:column;grid-auto-columns:var(--cell);gap:var(--gap)}.heat-cell{display:block;box-sizing:border-box;width:var(--cell);height:var(--cell);padding:0;border:0;border-radius:2px;background:var(--c0)}button.heat-cell{cursor:pointer}button.heat-cell:disabled{cursor:default}.day-empty{margin:12px 0 0;color:var(--muted);font-size:14px;line-height:18px}.heat-1{background:var(--c1)}.heat-2{background:var(--c2)}.heat-3{background:var(--c3)}.heat-4{background:var(--c4)}.heat-legend{display:flex;justify-content:flex-end;align-items:center;gap:4px;margin:8px 0 0;color:var(--muted);font-size:12px;line-height:18px}.heat-pop{position:fixed;z-index:20;margin:0;padding:6px 10px;color:#fff;font-size:12px;line-height:1.5;white-space:nowrap;background:#24292f;border-radius:6px;pointer-events:none;transform:translate(-50%,calc(-100% - 8px))}.heat-pop.start{transform:translateY(calc(-100% - 8px))}.heat-pop.end{transform:translate(-100%,calc(-100% - 8px))}body{margin:0;background:#f6f8fa;color:#1f2328;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif}button,input,select{box-sizing:border-box;font-family:inherit}select:focus-visible,.heat-on{outline:2px solid #0969da;outline-offset:2px}.stage{height:100dvh;display:flex;align-items:center;justify-content:center;gap:28px;box-sizing:border-box;padding:24px;overflow:hidden;background:#f6f8fa}.side{width:max-content;max-width:calc(100% - 418px);min-width:0;max-height:100%;box-sizing:border-box;padding:28px 24px;background:#fff;border:1px solid #d0d7de;border-radius:6px;overflow:auto}.nums{display:flex;gap:28px}.num{margin:0;display:flex;flex-direction:column}.num-n{margin:0;font-size:32px;font-weight:600;line-height:40px}.num-k{margin:4px 0 0;font-size:14px;line-height:18px;color:#656d76}.logs{box-sizing:border-box;width:100%;margin-top:18px;max-height:220px;padding:6px;overflow:auto}.logs-hint{margin:0 0 8px;color:#656d76;font-size:13px;line-height:18px}.log-list{display:grid;grid-template-columns:max-content 140px;justify-content:space-between;align-items:center;width:100%;column-gap:16px;row-gap:8px;margin:0;padding:0}.log{display:grid;grid-column:1 / -1;grid-template-columns:subgrid;align-items:center;margin:0;padding:0;list-style:none}.log-when{font-size:14px;line-height:32px}.log-tag{width:100%;height:32px;border:1px solid #d0d7de;border-radius:6px;background:#f6f8fa;color:#1f2328;padding:0 8px;font:400 14px inherit}.phone{position:relative;flex:0 0 auto;width:min(390px,100%);height:min(844px,100%);display:flex;flex-direction:column;align-items:center;box-sizing:border-box;background:#fff;border:1px solid #d0d7de;border-radius:6px;overflow:hidden}.phone-body{position:relative;z-index:1;flex:1;width:100%;min-height:0;display:flex;flex-direction:column;align-items:center}.phone-liquid{position:absolute;z-index:0;left:0;right:0;bottom:0;height:var(--fill);overflow:hidden;border-radius:50% 50% 0 0/8px 8px 0 0;background:radial-gradient(ellipse at 18% 92%,rgba(126,211,247,.34),transparent 54%),radial-gradient(ellipse at 78% 38%,rgba(206,241,255,.2),transparent 48%),linear-gradient(180deg,#b1e2f947,#48aadd8a 38%,#1d79b8c7);pointer-events:none;transition:height 1s cubic-bezier(.22,1,.36,1)}.phone-liquid:before{content:"";position:absolute;left:-18%;top:-11px;width:136%;height:27px;border-radius:48% 52% 46% 54%/58% 48% 52% 42%;background:radial-gradient(ellipse at 28% 45%,rgba(255,255,255,.48),transparent 18%),linear-gradient(180deg,#effbffd6,#7bc9ee66);filter:blur(.5px);transform:rotate(-1.2deg);animation:liquid-surface 7s ease-in-out infinite alternate}.phone-liquid:after{content:"";position:absolute;left:-10%;top:1px;width:120%;height:13px;border-radius:50%;background:linear-gradient(180deg,#ffffff6b,#a7dff814);filter:blur(1.5px);transform:rotate(1deg);opacity:.75;animation:liquid-surface-back 9s ease-in-out infinite alternate}.liquid-shine{position:absolute;left:-35%;top:8%;width:170%;height:42%;border-radius:50%;background:radial-gradient(ellipse at 35% 40%,rgba(255,255,255,.23),transparent 23%),radial-gradient(ellipse at 70% 62%,rgba(220,247,255,.14),transparent 28%);filter:blur(17px);transform:rotate(-5deg);opacity:.8;animation:liquid-shine 11s ease-in-out infinite alternate}.liquid-bubble{position:absolute;bottom:-8px;width:4px;height:4px;border:1px solid rgba(233,249,255,.58);border-radius:50%;box-shadow:0 0 7px #ddf7ff75;animation:liquid-bubble 7s ease-in infinite}.liquid-bubble-one{left:22%;animation-delay:-2.4s}.liquid-bubble-two{left:66%;width:3px;height:3px;animation-delay:-5.1s}.liquid-bubble-three{left:82%;width:5px;height:5px;animation-delay:-.8s}.phone-liquid-hold:before,.phone-liquid-hold:after,.phone-liquid-hold .liquid-shine,.phone-liquid-hold .liquid-bubble{animation-play-state:paused}@keyframes liquid-surface{to{transform:rotate(1.2deg) translate(2.5%,1px) scaleY(.9)}}@keyframes liquid-surface-back{to{transform:rotate(-1.5deg) translate(-3%,2px) scaleY(.88)}}@keyframes liquid-shine{to{transform:rotate(-5deg) translate(7%,5%);opacity:.45}}@keyframes liquid-bubble{0%{opacity:0;transform:translate(0) scale(.7)}18%{opacity:.72}to{opacity:0;transform:translate(9px,-180px) scale(1.16)}}@media(prefers-reduced-motion:reduce){.phone-liquid{transition:none}.phone-liquid:before,.phone-liquid:after,.liquid-shine,.liquid-bubble{animation:none}}.title{margin:clamp(32px,10vh,90px) 0 0;width:min(270px,100%);height:40px;font-size:clamp(28px,7vw,32px);font-weight:600;line-height:40px;text-align:center}.cat{width:min(270px,70%);height:auto;aspect-ratio:1;margin-top:20px;object-fit:contain;flex:1 1 auto;min-height:96px;max-height:270px}.time{margin:24px 0 0;width:min(270px,100%);height:76px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:clamp(48px,14vw,64px);font-weight:400;font-variant-numeric:tabular-nums;line-height:76px;text-align:center}.bar{width:min(210px,70%);height:8px;margin-top:4px;border-radius:6px;background:#ebedf0;overflow:hidden}.bar-fill{height:100%;border-radius:6px;background:#2da44e}.acts{display:flex;flex-direction:column;align-items:center;width:min(270px,86%);margin-top:36px;gap:10px}.go{width:100%;height:40px;margin:0;border:1px solid rgba(31,35,40,.15);border-radius:6px;background:#1f883d;color:#fff;font:500 16px/38px inherit;cursor:pointer;box-shadow:0 1px #1f23281a}.go:hover{background:#1a7f37}.go-run{background:#f6f8fa;color:#1f2328;border-color:#d0d7de}.go-run:hover{background:#f3f4f6}.go-pause{background:#1f883d;color:#fff;border-color:#1f232826}.go-pause:hover{background:#1a7f37}.go-off{opacity:.5}.pick{width:100%;height:32px;margin:0;border:1px solid #d0d7de;border-radius:6px;background:#f6f8fa;color:#1f2328;padding:0 8px;font:400 14px inherit}.link{margin:0;border:0;background:transparent;color:#0969da;font:500 14px inherit;cursor:pointer}.btn{height:32px;padding:0 12px;border:1px solid #d0d7de;border-radius:6px;background:#f6f8fa;color:#1f2328;font:500 14px inherit;cursor:pointer}.btn:hover{background:#f3f4f6}.nav{position:absolute;top:16px;right:16px;z-index:2}.cfg{width:min(480px,100%);max-height:100%;box-sizing:border-box;padding:24px;overflow:auto;background:#fff;border:1px solid #d0d7de;border-radius:6px}.cfg-top{display:flex;align-items:center;justify-content:space-between}.cfg-title{margin:0;font-size:24px;font-weight:600;line-height:32px}.cfg-h{margin:24px 0 12px;font-size:16px;font-weight:600;line-height:24px}.cfg-add{display:flex;gap:8px}.cfg-empty{margin:16px 0 0;color:#656d76;font-size:14px;line-height:20px}.cfg-list{margin:8px 0 0;padding:0}.cfg-row{display:flex;align-items:center;gap:12px;margin:0;padding:10px 0;border-top:1px solid #d0d7de;list-style:none}.cfg-name{font-size:14px;font-weight:500;line-height:20px}.cfg-meta{margin-left:auto;color:#656d76;font-size:12px;line-height:20px}.cfg-del{height:32px;padding:0 12px;border:1px solid #d0d7de;border-radius:6px;background:#f6f8fa;color:#d1242f;font:500 14px inherit;cursor:pointer}.cfg-del:disabled{color:#656d76;cursor:not-allowed}.tag-in{flex:1;min-width:0;height:32px;padding:0 12px;border:1px solid #d0d7de;border-radius:6px;background:#fff;color:#1f2328;font:400 14px inherit}.tag-in:focus{border-color:#0969da;outline:none;box-shadow:0 0 0 3px #0969da4d}.tag-ok{flex:none;height:32px;padding:0 12px;border:1px solid rgba(31,35,40,.15);border-radius:6px;background:#1f883d;color:#fff;font:500 14px inherit;cursor:pointer}.tag-ok:hover{background:#1a7f37}.tag-now{margin:0;height:28px;padding:0 12px;border:1px solid #54aeff66;border-radius:2em;background:#ddf4ff;color:#0969da;font-size:12px;font-weight:500;line-height:26px;text-align:center}.tail{flex:1 1 80px;width:100%;min-height:24px}.toast{position:fixed;z-index:3;left:50%;bottom:24px;width:min(360px,calc(100% - 48px));transform:translate(-50%);padding:12px 16px;border:1px solid #d0d7de;border-radius:6px;background:#fff;box-shadow:0 8px 24px #1f23281f}.toast p{margin:0;font-size:14px;line-height:20px}.toast button{margin-top:8px;padding:0;border:0;background:transparent;color:#0969da;font:500 14px inherit;cursor:pointer}@media(max-width:1080px){.stage{height:auto;min-height:100dvh;flex-direction:column;overflow:visible;padding:16px}.phone{width:min(390px,100%);height:min(720px,100dvh)}.side{width:100%;max-width:720px;max-height:none}}
