:root{--pink-primary: #e91e8c;--pink-dark: #c4177a;--pink-light: #f472b6;--red-accent: #e53935;--ink: #1a1a2e;--ink-2: #34344e;--muted: #6b7280;--faint: #9ca3af;--paper: #ffffff;--soft: #f9fafb;--soft-2: #f3f4f6;--pink-soft: #fdf2f8;--line: #e5e7eb;--line-strong: #d1d5db;--on-dark: #ffffff;--on-dark-muted: #c7c8d6;--ok: #16a34a;--hero-grad: linear-gradient(118deg, #a91366 0%, #c4177a 34%, #e91e8c 70%, #f472b6 100%);--radius: 10px;--page-w: 1120px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif;color:var(--ink);background:var(--paper);font-size:15.5px;line-height:1.6}h1,h2,h3,h4{font-weight:700;letter-spacing:-.4px;margin:0}button{font:inherit;cursor:pointer}input,textarea,select{font:inherit;color:var(--ink)}:focus-visible{outline:3px solid var(--pink-primary);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.01ms!important;transition-delay:0s!important}}.wrap{max-width:var(--page-w);margin:0 auto;padding:0 24px}.logo-dot{transition:fill .2s ease}.dot-a{animation:flickerA 12s infinite}.dot-b{animation:flickerB 12s infinite}.dot-c{animation:flickerC 12s infinite}.dot-d{animation:flickerD 12s infinite}.dot-e{animation:flickerE 12s infinite}.dot-f{animation:flickerF 12s infinite}.dot-g{animation:flickerG 12s infinite}.dot-h{animation:flickerH 12s infinite}@keyframes flickerA{0%,2%{fill:#1a1a2e}4%,10%{fill:#e53935}12%,to{fill:#1a1a2e}}@keyframes flickerE{0%,2%{fill:#1a1a2e}4%,10%{fill:#9ca3af}12%,to{fill:#1a1a2e}}@keyframes flickerC{0%,16%{fill:#1a1a2e}18%,26%{fill:#9ca3af}28%,to{fill:#1a1a2e}}@keyframes flickerF{0%,16%{fill:#1a1a2e}18%,26%{fill:#e53935}28%,to{fill:#1a1a2e}}@keyframes flickerB{0%,32%{fill:#1a1a2e}34%,42%{fill:#e53935}44%,to{fill:#1a1a2e}}@keyframes flickerG{0%,32%{fill:#1a1a2e}34%,42%{fill:#9ca3af}44%,to{fill:#1a1a2e}}@keyframes flickerD{0%,48%{fill:#1a1a2e}50%,58%{fill:#9ca3af}60%,to{fill:#1a1a2e}}@keyframes flickerH{0%,48%{fill:#1a1a2e}50%,58%{fill:#e53935}60%,to{fill:#1a1a2e}}.hdr{border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:20}.hdr-in{display:flex;align-items:center;gap:14px;height:60px}.logo{display:flex;align-items:center;gap:10px}.logo-name{font-family:Sarabun,Inter,sans-serif;font-weight:700;font-size:21px;letter-spacing:-.2px}.hdr-sub{color:var(--muted);font-size:13.5px;margin-top:2px}.hdr-spacer{flex:1}.hdr-user{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13.5px}.hdr-user button{border:1px solid var(--line-strong);background:var(--paper);border-radius:999px;padding:4px 12px;font-weight:600;font-size:13px}.demo-pill{background:var(--pink-soft);color:var(--pink-dark);border:1px solid #f9a8d4;font-size:12px;font-weight:700;border-radius:999px;padding:2px 10px;white-space:nowrap}.goal{background:var(--hero-grad);color:var(--on-dark);padding:20px 0 22px}.goal-count{text-align:right;font-weight:800;font-size:15px;letter-spacing:.3px;margin-bottom:7px}.goal-count span{color:#ffffffb3;font-weight:700}.pbar{position:relative;height:14px;border-radius:999px;background:#ffffff38;overflow:hidden}.pbar-fill{height:100%;border-radius:999px;background:var(--paper);transition:width .7s cubic-bezier(.2,.7,.3,1)}.pbar-tick{position:absolute;top:0;bottom:0;width:0;border-left:2px dotted rgba(255,255,255,.9)}.pbar-tick.on{border-left-color:#c4177abf}.goal-foot{display:flex;justify-content:space-between;align-items:baseline;gap:18px;margin-top:10px;flex-wrap:wrap}.goal-statement{margin:0;font-weight:700;font-size:15px}.goal-days{font-size:13.5px;color:#ffe1f1;white-space:nowrap}.track{padding:34px 0 40px}.track:nth-of-type(2n){background:var(--soft)}.track-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.track-head h2{font-size:20px}.track-count{color:var(--faint);font-weight:600;font-size:14px}.track-blurb{color:var(--muted);font-size:14px;margin:2px 0 18px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.card{text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:8px;transition:box-shadow .15s ease,border-color .15s ease}.card:hover{border-color:var(--line-strong);box-shadow:0 4px 14px #1a1a2e14}.card-top{display:flex;align-items:center;gap:8px}.card-top b{font-size:15.5px;flex:1}.kind{font-size:11px;font-weight:700;letter-spacing:.3px;color:var(--muted);border:1px solid var(--line-strong);border-radius:999px;padding:1px 8px;white-space:nowrap}.stagechip{align-self:flex-start;font-size:12px;font-weight:700;border-radius:999px;padding:2px 10px;background:var(--soft-2);color:var(--ink-2)}.stagechip.live{background:#dcfce7;color:#15803d}.stagedots{display:flex;gap:4px}.stagedots i{width:16px;height:5px;border-radius:3px;background:var(--line);display:block}.stagedots i.on{background:var(--pink-primary)}.card-meta{display:flex;gap:12px;color:var(--muted);font-size:12.5px;flex-wrap:wrap}.addcard{border:1.5px dashed var(--line-strong);border-radius:var(--radius);background:transparent;color:var(--muted);min-height:96px;font-weight:600}.addcard:hover{border-color:var(--pink-primary);color:var(--pink-dark)}.addform{display:flex;flex-direction:column;gap:8px;justify-content:center}.addform input{border:1px solid var(--line-strong);border-radius:6px;padding:8px 10px}.addform-row{display:flex;gap:8px}.btn{border:0;border-radius:999px;padding:8px 18px;font-weight:700;font-size:14px;background:var(--pink-primary);color:var(--on-dark)}.btn:hover{background:var(--pink-dark)}.btn.ghost{background:transparent;color:var(--ink-2);border:1px solid var(--line-strong)}.btn.ghost:hover{border-color:var(--ink-2)}.btn.sm{padding:5px 13px;font-size:13px}.btn.danger{background:transparent;color:var(--red-accent);border:1px solid #fecaca}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#1a1a2e73;display:flex;align-items:flex-start;justify-content:center;padding:5vh 16px 16px;overflow-y:auto}.modal{background:var(--paper);border-radius:14px;width:100%;max-width:720px;padding:26px 28px 28px;box-shadow:0 24px 60px #1a1a2e59}.modal-head{display:flex;align-items:flex-start;gap:12px}.modal-head input.title{font-size:21px;font-weight:700;letter-spacing:-.4px;border:1px solid transparent;border-radius:6px;padding:2px 6px;flex:1;min-width:0;background:transparent}.modal-head input.title:hover,.modal-head input.title:focus{border-color:var(--line-strong)}.modal-close{border:0;background:var(--soft-2);border-radius:999px;width:32px;height:32px;font-size:16px;line-height:1;color:var(--ink-2)}.modal-track{color:var(--muted);font-size:13px;margin-top:2px}.stage-picker{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0 4px}.stage-pill{border:1px solid var(--line-strong);background:var(--paper);border-radius:999px;padding:4px 13px;font-size:13px;font-weight:600;color:var(--muted)}.stage-pill.past{background:var(--soft-2);color:var(--ink-2);border-color:var(--soft-2)}.stage-pill.current{background:var(--ink);color:var(--on-dark);border-color:var(--ink)}.stage-pill.current.live{background:var(--ok);border-color:var(--ok)}.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.field input,.field textarea,.field select{border:1px solid var(--line-strong);border-radius:6px;padding:8px 10px}.field.full{grid-column:1 / -1}.field textarea{resize:vertical;min-height:60px}.sect-h{font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:20px 0 8px;display:flex;align-items:center;gap:8px}.sect-h .n{color:var(--faint);font-weight:600}.ladder{display:flex;flex-direction:column}.rung{display:flex;align-items:center;gap:10px;padding:3px 0;position:relative}.rung:before{content:"";position:absolute;left:10px;top:0;bottom:0;width:2px;background:var(--line);z-index:0}.rung-wrap:first-child .rung:before{top:50%}.rung-wrap:last-child .rung:before{bottom:50%}.rung.done:before,.rung.current:before{background:var(--pink-primary)}.rung-wrap:last-child .rung.current:before{background:var(--line)}.rung-mark{position:relative;z-index:1;width:22px;height:22px;flex:none;border-radius:999px;border:2px solid var(--line-strong);background:var(--paper);color:var(--on-dark);font-size:11px;line-height:1;padding:0;display:flex;align-items:center;justify-content:center}.rung.done .rung-mark{background:var(--pink-primary);border-color:var(--pink-primary)}.rung.current .rung-mark{border-color:var(--ink);background:var(--ink);box-shadow:0 0 0 4px #1a1a2e1a}.rung.current.live .rung-mark{border-color:var(--ok);background:var(--ok);box-shadow:0 0 0 4px #16a34a24}.rung-label{flex:1;text-align:left;border:0;background:none;font-size:14.5px;color:var(--muted);padding:4px 0}.rung.done .rung-label{color:var(--ink-2)}.rung.current .rung-label{color:var(--ink);font-weight:700}.rung-hint{display:inline-flex;gap:8px}.rung-hint em{font-style:normal;font-size:11.5px;color:var(--faint)}.rung-expand{border:0;background:none;color:var(--faint);font-size:13px;padding:0 2px;transform:rotate(-90deg);transition:transform .15s ease;opacity:0}.rung-wrap:hover .rung-expand,.rung-expand:focus-visible,.rung-expand.open{opacity:1}.rung-expand.open{transform:rotate(0);color:var(--ink-2)}.rung-panel{margin:2px 0 8px 32px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--soft)}.steplist{display:flex;flex-direction:column;gap:4px}.steprow{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:7px 10px;background:var(--paper)}.steprow.dragging{opacity:.4}.steprow.dragover{border-color:var(--pink-primary);box-shadow:0 -2px 0 var(--pink-primary)}.step-check{width:22px;height:22px;border-radius:999px;border:2px solid var(--line-strong);background:var(--paper);flex:none;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--on-dark);padding:0}.step-check.doing{border-color:var(--pink-primary);background:var(--pink-soft)}.step-check.done{border-color:var(--ok);background:var(--ok)}.step-title{flex:1;font-size:14.5px}.step-title.done{color:var(--faint);text-decoration:line-through}.step-meta{margin-left:8px;display:inline-flex;gap:8px}.step-meta em{font-style:normal;font-size:11.5px;color:var(--faint);white-space:nowrap}.step-meta em.waits{color:#b45309}.step-expand{border:0;background:none;color:var(--faint);font-size:13px;padding:0 2px;transform:rotate(-90deg);transition:transform .15s ease}.step-expand.open{transform:rotate(0);color:var(--ink-2)}.step-panel{border:1px solid var(--line);border-top:0;border-radius:0 0 8px 8px;background:var(--soft);padding:12px;margin:-4px 0 4px}.steprow.open{border-radius:8px 8px 0 0}.deps{display:flex;flex-direction:column;gap:4px;max-height:130px;overflow-y:auto}.field .dep-check{display:flex;align-items:center;gap:7px;font-size:13.5px;color:var(--ink-2);text-transform:none;font-weight:400;letter-spacing:0}.dep-check .dep-done{color:var(--faint);text-decoration:line-through}.dep-empty{color:var(--faint);font-size:13px}.step-grip{color:var(--faint);cursor:grab;font-size:15px;padding:0 2px;border:0;background:none}.step-x{border:0;background:none;color:var(--faint);font-size:15px;padding:0 2px}.step-x:hover{color:var(--red-accent)}.step-add{display:flex;gap:8px;margin-top:8px}.step-add input{flex:1;border:1px solid var(--line-strong);border-radius:6px;padding:7px 10px}.linkrow{display:flex;align-items:center;gap:8px;font-size:14px;padding:4px 0}.linkrow a{color:var(--pink-dark);font-weight:600;text-decoration:none}.linkrow a:hover{text-decoration:underline}.linkrow span{color:var(--faint);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.link-add{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}.link-add input{border:1px solid var(--line-strong);border-radius:6px;padding:7px 10px;flex:1;min-width:140px}.comment{padding:10px 0;border-top:1px solid var(--line)}.comment:first-of-type{border-top:0}.comment-head{font-size:12.5px;color:var(--muted);margin-bottom:2px}.comment-head b{color:var(--ink)}.comment-body{font-size:14.5px;white-space:pre-wrap}.comment-add{display:flex;gap:8px;margin-top:10px;align-items:flex-start}.comment-add textarea{flex:1;border:1px solid var(--line-strong);border-radius:6px;padding:8px 10px;min-height:44px;resize:vertical}.modal-foot{display:flex;justify-content:space-between;margin-top:24px}.name-modal{max-width:420px;text-align:center}.name-modal h2{font-size:20px;margin-bottom:6px}.name-modal p{color:var(--muted);font-size:14px;margin:0 0 16px}.name-modal input{width:100%;border:1px solid var(--line-strong);border-radius:8px;padding:10px 12px;font-size:15px;margin-bottom:14px}.foot{padding:26px 0 40px;color:var(--faint);font-size:13px}@media (max-width: 640px){.goal h1{font-size:22px}.fields{grid-template-columns:1fr}.modal{padding:20px 18px 22px}}
