@import "https://fonts.googleapis.com/css2?family=Archivo:wght@600;700;800&family=Manrope:wght@500;600;700&display=swap";:root{--bg:#0f1116;--card:#191d25;--card-hi:#212734;--line:#2a3140;--text:#f3f5f9;--muted:#98a2b6;--faint:#626d82;--streak:#f7a53b;--done:#2ec98a;--part:#7f9bf5;--flag:#f2626b;--display:"Archivo", system-ui, sans-serif;--sans:"Manrope", system-ui, sans-serif;--r:14px}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100%;margin:0}body{font-family:var(--sans);color:var(--text);-webkit-font-smoothing:antialiased;padding-bottom:env(safe-area-inset-bottom)}.board{max-width:760px;padding:calc(20px + env(safe-area-inset-top)) 14px 92px;padding-left:calc(14px + env(safe-area-inset-left));padding-right:calc(14px + env(safe-area-inset-right));margin:0 auto}html,body{overscroll-behavior-y:none}button{-webkit-tap-highlight-color:transparent}.hero{background:linear-gradient(150deg, var(--card-hi), var(--card));border:1px solid var(--line);border-radius:var(--r);align-items:center;gap:20px;margin-bottom:22px;padding:20px;display:flex}.ring{flex:none;width:74px;height:74px;position:relative}.ring svg{display:block;transform:rotate(-90deg)}.ring-track{stroke:var(--line)}.ring-fill{stroke:var(--done);stroke-linecap:round;transition:stroke-dashoffset .6s cubic-bezier(.2,.7,.3,1)}.ring-label{font-family:var(--display);font-variant-numeric:tabular-nums;place-items:center;font-size:19px;font-weight:700;display:grid;position:absolute;inset:0}.hero-main{flex:1;min-width:0}.hero-date{letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-size:12px;font-weight:600}.hero-line{font-family:var(--display);letter-spacing:-.02em;margin-top:3px;font-size:22px;font-weight:700}.hero-sub{color:var(--muted);margin-top:5px;font-size:13px}.hero-sub b{color:var(--streak);font-weight:700}.band{letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:22px 4px 10px;font-size:11px;font-weight:700}.band:first-of-type{margin-top:4px}.grid{grid-template-columns:repeat(auto-fill,minmax(252px,1fr));gap:10px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);transition:background .15s,border-color .15s,opacity .15s,transform 90ms;position:relative}.card:hover{background:var(--card-hi);border-color:#36405280}.card:active{transform:scale(.99)}.card-hit{border-radius:var(--r);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:15px 15px 14px;display:block}.card-hit:focus-visible{outline:2px solid var(--part);outline-offset:3px}.card-top{align-items:center;gap:11px;display:flex}.dot{border:2px solid var(--line);border-radius:50%;flex:none;place-items:center;width:30px;height:30px;transition:border-color .16s,background .16s;display:grid}.dot svg{opacity:0;width:15px;height:15px;transition:opacity .16s,transform .2s cubic-bezier(.2,.7,.3,1);transform:scale(.55)}.card-name{letter-spacing:-.012em;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:15px;font-weight:650;overflow:hidden}.card-value{font-family:var(--display);font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;padding-right:18px;font-size:12.5px;font-weight:700}.card-streak{color:var(--faint);align-items:baseline;gap:6px;margin:12px 0 0;font-size:12px;display:flex}.streak-n{font-family:var(--display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--streak);font-size:25px;font-weight:800;line-height:1}.streak-n.is-cold{color:#3d4757}.streak-u{font-weight:600}.streak-b{margin-left:auto}.strip{gap:3px;margin-top:12px;display:flex}.tick{background:#262d3a;border-radius:2px;flex:1;height:4px}.tick.is-completed{background:var(--done)}.tick.is-partial{background:var(--part)}.tick.is-missed{background:var(--flag);opacity:.55}.tick.is-skipped{background:#3d4757}.card-meter{background:var(--line);border-radius:2px;height:3px;margin-top:10px;display:block;overflow:hidden}.card-meter i{background:currentColor;border-radius:2px;height:100%;transition:width .32s cubic-bezier(.2,.7,.3,1);display:block}.card-more{width:26px;height:26px;color:var(--faint);cursor:pointer;background:0 0;border:0;border-radius:7px;place-items:center;display:grid;position:absolute;top:12px;right:8px}.card-more svg{width:13px;height:13px}.card-more:hover{color:var(--text);background:#ffffff0d}.card-more:focus-visible{outline:2px solid var(--part);outline-offset:1px}.card.is-open,.card.is-partial{color:var(--part)}.card.is-done{color:var(--done);opacity:.62}.card.is-flagged{color:var(--flag)}.card.is-done .dot,.card.is-flagged .dot{background:currentColor;border-color:currentColor}.card.is-partial .dot{border-color:currentColor}.card.is-done .dot svg,.card.is-flagged .dot svg{opacity:1;color:var(--bg);transform:scale(1)}.card.is-done .card-value,.card.is-partial .card-value,.card.is-flagged .card-value{color:currentColor}.pb{letter-spacing:.07em;text-transform:uppercase;color:var(--streak);background:#f7a53b21;border-radius:5px;padding:2px 6px;font-size:10.5px;font-weight:700}.scrim{z-index:20;background:#06080cc2;justify-content:center;align-items:flex-end;padding:14px;display:flex;position:fixed;inset:0}.sheet{background:var(--card);border:1px solid var(--line);border-radius:20px;width:100%;max-width:760px;padding:22px 18px 20px}.sheet h2{font-family:var(--display);margin:0;font-size:19px;font-weight:700}.sheet-sub{color:var(--muted);margin:4px 0 20px;font-size:13px}.field{letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:10px;font-size:11px;font-weight:700}.stepper{align-items:center;gap:16px;margin-bottom:22px;display:flex}.stepper button{font:inherit;background:var(--card-hi);width:46px;height:46px;color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:12px;font-size:20px;font-weight:600}.stepper button:focus-visible{outline:2px solid var(--part);outline-offset:2px}.stepper output{font-family:var(--display);font-variant-numeric:tabular-nums;text-align:center;min-width:2ch;font-size:24px;font-weight:700}.chips{flex-wrap:wrap;gap:7px;margin-bottom:22px;display:flex}.chip{font:inherit;background:var(--card-hi);color:var(--muted);border:1px solid var(--line);cursor:pointer;border-radius:10px;padding:9px 13px;font-size:13px;font-weight:600;transition:all .13s}.chip:hover{color:var(--text)}.chip[aria-pressed=true]{border-color:var(--flag);color:var(--flag);background:#f2626b1f}.chip:focus-visible{outline:2px solid var(--part);outline-offset:2px}.actions{gap:9px;display:flex}.btn{font:inherit;border:1px solid var(--line);background:var(--card-hi);color:var(--muted);cursor:pointer;border-radius:12px;flex:1;padding:15px;font-size:14.5px;font-weight:700}.btn:focus-visible{outline:2px solid var(--part);outline-offset:2px}.btn-go{background:var(--flag);color:#fff;border-color:#0000}.msg{color:var(--muted);text-align:center;padding:48px 0;font-size:14px}.msg-error{color:var(--flag)}.undo{left:50%;bottom:calc(22px + env(safe-area-inset-bottom));z-index:10;background:var(--card-hi);border:1px solid var(--line);border-radius:12px;align-items:center;gap:16px;padding:12px 14px 12px 18px;font-size:13.5px;font-weight:600;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 28px #00000073}.undo button{font:inherit;color:var(--done);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-weight:700}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}.input{width:100%;font:inherit;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 15px;font-size:16px}.input:focus{outline:2px solid var(--part);outline-offset:2px}.back{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;margin-bottom:10px;padding:8px 0;font-size:14px;font-weight:650}.back:hover{color:var(--text)}.back:focus-visible{outline:2px solid var(--part);outline-offset:3px}.detail-head{margin-bottom:18px}.eyebrow{letter-spacing:.13em;text-transform:uppercase;color:var(--streak);margin:0 0 5px;font-size:10.5px;font-weight:700}.detail-head h1{font-family:var(--display);letter-spacing:-.03em;margin:0;font-size:27px;font-weight:800;line-height:1.1}.stat-row{grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:14px;display:grid}.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:5px;min-width:0;padding:13px 11px;display:flex}.stat-n{font-family:var(--display);letter-spacing:-.035em;font-variant-numeric:tabular-nums;font-size:25px;font-weight:800;line-height:1}.stat-n.is-streak{color:var(--streak)}.stat-l{color:var(--muted);font-size:10.5px;font-weight:600;line-height:1.3}.note{color:var(--muted);border-left:2px solid var(--line);margin:0 0 20px;padding-left:11px;font-size:12.5px;line-height:1.6}.tabs{background:var(--card);border:1px solid var(--line);border-radius:12px;gap:4px;margin-bottom:11px;padding:4px;display:flex}.tabs button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;padding:10px 6px;font-size:13.5px;font-weight:650;transition:background .14s,color .14s}.tabs button.is-on{background:var(--card-hi);color:var(--text)}.tabs button:focus-visible{outline:2px solid var(--part);outline-offset:-2px}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);margin-bottom:10px;padding:17px 15px}.panel h2{font-family:var(--display);letter-spacing:-.012em;margin:0;font-size:15px;font-weight:700}.panel-hint{color:var(--muted);margin:6px 0 0;font-size:12.5px;line-height:1.5}.panel>:nth-child(2),.panel-hint+*{margin-top:15px}.empty{color:var(--faint);margin:0;font-size:13px;line-height:1.6}.hbars{flex-direction:column;gap:9px;display:flex}.hbars.is-compact{gap:6px}.hbar{grid-template-columns:38px 1fr 42px;align-items:center;gap:10px;display:grid}.hbar-l{color:var(--muted);font-size:12px;font-weight:600}.hbar-track{background:#ffffff0a;border-radius:5px;height:9px;overflow:hidden}.hbar-track i{border-radius:5px;min-width:3px;height:100%;transition:width .46s cubic-bezier(.2,.7,.3,1);display:block}.hbar-v{font-family:var(--display);font-variant-numeric:tabular-nums;color:var(--text);text-align:right;font-size:12px;font-weight:700}.slots{grid-template-columns:repeat(6,1fr);gap:5px;display:grid}.slot{flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.slot-bar{background:#ffffff08;border-radius:6px;align-items:flex-end;width:100%;height:68px;display:flex;overflow:hidden}.slot-bar i{border-radius:6px;width:100%;min-height:3px;transition:height .46s cubic-bezier(.2,.7,.3,1)}.slot-n{font-family:var(--display);font-variant-numeric:tabular-nums;color:var(--text);min-height:14px;font-size:12px;font-weight:700}.slot-l{color:var(--faint);text-align:center;font-size:9.5px;line-height:1.2}.rates{grid-template-columns:repeat(2,1fr);gap:16px 12px;display:grid}.rate{flex-direction:column;gap:3px;display:flex}.rate-n{font-family:var(--display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--done);font-size:22px;font-weight:800;line-height:1}.rate-l{color:var(--muted);font-size:11.5px;font-weight:600}.rate-s{color:var(--faint);font-size:10.5px}.cal{-webkit-overflow-scrolling:touch;gap:3px;padding-bottom:6px;display:flex;overflow-x:auto}.cal-week{flex-direction:column;gap:3px;display:flex}.cal-day{background:#232a37;border-radius:2px;flex:none;width:10px;height:10px}.cal-day.is-pad{background:0 0}.cal-day.is-completed{background:var(--done)}.cal-day.is-partial{background:var(--part)}.cal-day.is-missed{background:var(--flag);opacity:.55}.cal-day.is-skipped{background:#3d4757}.legend{flex-wrap:wrap;gap:12px;margin-top:14px;display:flex}.legend span{color:var(--faint);align-items:center;gap:6px;font-size:11px;display:flex}.legend i{background:#232a37;border-radius:2px;width:9px;height:9px}.legend i.is-completed{background:var(--done)}.legend i.is-partial{background:var(--part)}.legend i.is-missed{background:var(--flag);opacity:.55}.ctx+.ctx{margin-top:18px}.ctx-key{letter-spacing:.11em;text-transform:uppercase;color:var(--faint);margin:0 0 11px;font-size:10.5px;font-weight:700}.disclaim{color:var(--faint);border-left:2px solid var(--line);margin:0 0 12px;padding-left:11px;font-size:12px;line-height:1.55}.link{background:var(--card);border:1px solid var(--line);border-radius:var(--r);margin-bottom:8px;padding:15px}.link-head{align-items:center;gap:9px;margin-bottom:9px;display:flex}.link-name{flex:1;min-width:0;font-size:14.5px;font-weight:700}.chip-v{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:5px;padding:3px 7px;font-size:9.5px;font-weight:700}.chip-v.is-strong{color:var(--done);background:#2ec98a24}.chip-v.is-maybe{color:var(--streak);background:#f7a53b24}.chip-v.is-weak{color:var(--faint);background:#ffffff0a}.link-say{color:var(--muted);margin:0;font-size:13.5px;line-height:1.55}.link-say b{color:var(--text);font-weight:650}.link-meta{font-family:var(--display);color:var(--faint);font-variant-numeric:tabular-nums;margin:8px 0 0;font-size:11px}.t-part{background:var(--part)}.t-flag{background:var(--flag)}.t-done{background:var(--done)}b.t-done,b.t-flag,span.t-done,span.t-flag{background:0 0}b.t-done,.rate-n.t-done{color:var(--done)}b.t-flag,.rate-n.t-flag{color:var(--flag)}.rate-n.t-part{color:var(--part);background:0 0}@media (width>=560px){.rates{grid-template-columns:repeat(4,1fr)}.detail-head h1{font-size:32px}}.windows{background:var(--card);border:1px solid var(--line);border-radius:11px;gap:4px;margin-bottom:8px;padding:4px;display:flex}.windows button{font:inherit;font-family:var(--display);color:var(--faint);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;padding:8px 4px;font-size:12.5px;font-weight:700;transition:background .14s,color .14s}.windows button.is-on{background:var(--card-hi);color:var(--streak)}.windows button:focus-visible{outline:2px solid var(--part);outline-offset:-2px}.gear{border:1px solid var(--line);width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border-radius:9px;flex:none;align-self:flex-start;place-items:center;display:grid}.gear svg{width:17px;height:17px}.gear:hover{color:var(--text);background:#ffffff0d}.gear:focus-visible{outline:2px solid var(--part);outline-offset:2px}.add{width:100%;margin-bottom:6px}.mline{background:var(--card);border:1px solid var(--line);border-radius:12px;align-items:stretch;gap:8px;margin-bottom:7px;display:flex;overflow:hidden}.mline-hit{text-align:left;min-width:0;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;flex:1;padding:14px}.mline-hit:hover{background:var(--card-hi)}.mline-hit:focus-visible{outline:2px solid var(--part);outline-offset:-2px}.mline-name{font-size:14.5px;font-weight:650;display:block}.mline-meta{color:var(--faint);margin-top:3px;font-size:11.5px;display:block}.mline-toggle{font:inherit;border:0;border-left:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;flex:none;padding:0 14px;font-size:11.5px;font-weight:650}.mline-toggle:hover{color:var(--text);background:var(--card-hi)}.row2{grid-template-columns:1fr auto;gap:8px;display:grid}.row2 .input{min-width:0}.row2 .btn{flex:none;padding:0 18px}.hintline{color:var(--faint);margin:9px 0 0;font-size:11.5px;line-height:1.5}.tag-edit{border:1px solid var(--line);background:#ffffff06;border-radius:12px;margin-bottom:10px;padding:14px}.chip.is-del span{opacity:.5;margin-left:3px}.btn-danger{color:var(--flag);border-color:#f2626b59}.panel .field:first-of-type{margin-top:0}.panel .input+.field{margin-top:18px}.windows{-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow-x:auto}.windows::-webkit-scrollbar{display:none}.windows button{flex:none;min-width:48px}.big{flex-direction:column;gap:6px;display:flex}.big-n{font-family:var(--display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;background:0 0;font-size:44px;font-weight:800;line-height:1}.big-n.t-part{color:var(--part)}.big-n.t-flag{color:var(--flag)}.big-l{color:var(--muted);font-size:12.5px;line-height:1.5}.band{align-items:baseline;gap:9px;display:flex}.band-note{letter-spacing:0;text-transform:none;color:#4d5769;font-size:10px;font-weight:600}.hero-sub b.warn{color:var(--flag)}.undo.is-bad{border-color:#f2626b66}.undo.is-bad span{color:var(--flag);max-width:60vw}.undo.is-bad button{color:var(--muted)}
