:root{--cat-study-bg:#e3ebfd;--cat-study-fg:#3a5bc1;--cat-life-bg:#e2f5ec;--cat-life-fg:#1f8a56;--cat-char-bg:#f5e2e8;--cat-char-fg:#a75770;--cat-event-bg:#fbf1dd;--cat-event-fg:#8c6a2c;--cat-other-bg:#e8ecf7;--cat-other-fg:#1f3163}.goals-screen{flex-direction:column;gap:18px;min-height:calc(100vh - 180px);display:flex}.goals-hero{background:linear-gradient(135deg, var(--accent-tint) 0%, var(--surface) 70%);border:1px solid var(--line);border-radius:var(--r-xl);grid-template-columns:minmax(280px,1fr) auto;align-items:center;gap:22px;padding:22px 26px;display:grid}.goals-hero-left{align-items:center;gap:22px;min-width:0;display:flex}.goals-hero-ring{flex-shrink:0;width:96px;height:96px;position:relative}.goals-hero-ring svg{transform:rotate(-90deg)}.goals-hero-ring-track{fill:none;stroke:var(--accent-soft);stroke-width:9px}.goals-hero-ring-fill{fill:none;stroke:var(--accent);stroke-width:9px;stroke-linecap:round;transition:stroke-dashoffset .6s cubic-bezier(.34,1.5,.4,1)}.goals-hero-ring-pct{letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:22px;font-weight:800;line-height:1;display:flex;position:absolute;inset:0}.goals-hero-ring-pct small{color:var(--muted);align-self:center;margin-left:2px;font-size:11px;font-weight:700;line-height:1}.goals-hero-body{min-width:0}.goals-hero-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:4px;font-size:11px;font-weight:800}.goals-hero-h{font-size:var(--fs-2xl);letter-spacing:-.03em;color:var(--ink);margin:0 0 10px;font-weight:800;line-height:1.15}.goals-hero-stats{flex-wrap:wrap;gap:18px;display:flex}.goals-hero-stat{flex-direction:column;gap:2px;display:flex}.goals-hero-stat strong{font-size:var(--fs-xl);letter-spacing:-.025em;color:var(--ink);font-variant-numeric:tabular-nums;font-weight:800}.goals-hero-stat span{letter-spacing:.04em;color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.goals-hero-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.goals-kindtabs{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);gap:2px;padding:3px;display:inline-flex}.goals-kindtabs button{appearance:none;font:inherit;font-size:var(--fs-sm);color:var(--ink-3);cursor:pointer;letter-spacing:-.005em;background:0 0;border:0;border-radius:999px;padding:6px 14px;font-weight:700;transition:all .14s}.goals-kindtabs button:hover{color:var(--ink)}.goals-kindtabs button.is-on{background:var(--ink);color:#fff;box-shadow:0 1px 3px #0e14302e}.goals-viewseg{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);gap:2px;padding:3px;display:inline-flex}.goals-viewseg button{appearance:none;font:inherit;font-size:var(--fs-sm);color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:5px;padding:6px 12px;font-weight:700;transition:all .14s;display:inline-flex}.goals-viewseg button:hover{color:var(--ink)}.goals-viewseg button.is-on{background:var(--accent);color:#fff;box-shadow:0 1px 2px #0e14302e}.goals-filterbar{flex-wrap:wrap;align-items:center;gap:10px;padding:0 4px;display:flex}.goals-filter-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:2px;font-size:11px;font-weight:800}.goals-filter-chip{appearance:none;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-pill);font:inherit;font-size:var(--fs-sm);color:var(--ink-3);cursor:pointer;align-items:center;gap:5px;padding:6px 12px;font-weight:700;transition:all .14s;display:inline-flex}.goals-filter-chip:hover{border-color:var(--line-strong);color:var(--ink)}.goals-filter-chip.is-on{background:var(--accent);color:#fff;border-color:#0000}.goals-filter-chip[data-cat=study].is-on{background:var(--cat-study-fg)}.goals-filter-chip[data-cat=life].is-on{background:var(--cat-life-fg)}.goals-filter-chip[data-cat=char].is-on{background:var(--cat-char-fg)}.goals-filter-chip[data-cat=event].is-on{background:var(--cat-event-fg)}.goals-filter-chip[data-cat=other].is-on{background:var(--cat-other-fg)}.goals-filter-divider{background:var(--line);width:1px;height:22px;margin:0 6px}.goals-filter-spacer{flex:1}.goals-cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.gc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);cursor:pointer;text-align:left;font:inherit;color:inherit;appearance:none;flex-direction:column;gap:12px;padding:18px 18px 14px;transition:transform .16s,box-shadow .16s,border-color .16s;display:flex;position:relative;overflow:hidden}.gc:hover{box-shadow:var(--sh-md);border-color:var(--line-strong);transform:translateY(-2px)}.gc.is-done{background:linear-gradient(180deg, #2ba66b0f 0%, var(--surface) 60%);border-color:#2ba66b59}.gc.is-done:before{content:"달성 완료";letter-spacing:.06em;color:var(--green);background:var(--green-soft);border-radius:999px;padding:3px 8px;font-size:10px;font-weight:800;position:absolute;top:12px;right:12px}.gc[data-emphasis=bold]{padding-left:22px}.gc[data-emphasis=bold]:after{content:"";background:var(--gc-color,var(--accent));width:6px;position:absolute;top:0;bottom:0;left:0}.gc-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.gc-pill{border-radius:var(--r-pill);letter-spacing:.01em;background:var(--gc-pill-bg,var(--surface-sunken));color:var(--gc-pill-fg,var(--ink-3));align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:800;display:inline-flex}.gc-pill-scope{background:var(--surface-sunken);color:var(--ink-3)}.gc-pill-dday{background:var(--surface-sunken);color:var(--ink-2);font-variant-numeric:tabular-nums;margin-left:auto}.gc-pill-dday.is-soon{background:var(--amber-soft);color:var(--amber)}.gc-pill-dday.is-overdue{background:var(--red-soft);color:var(--red)}.gc-pill-dday.is-today{background:var(--accent);color:#fff}.gc-title{font-size:var(--fs-lg);letter-spacing:-.025em;color:var(--ink);text-wrap:pretty;word-break:keep-all;font-weight:800;line-height:1.25}.gc-title-emoji{vertical-align:-2px;margin-right:4px;font-size:18px}.gc-sub{font-size:var(--fs-sm);color:var(--ink-3);margin-top:-6px}.gc-progress{flex-direction:column;gap:6px;margin-top:2px;display:flex}.gc-bar-row{font-size:var(--fs-sm);align-items:center;gap:10px;display:flex}.gc-bar-track{background:var(--surface-sunken);border-radius:999px;flex:1;height:10px;position:relative;overflow:hidden}.gc-bar-fill{background:var(--gc-color,var(--accent));border-radius:999px;height:100%;transition:width .5s cubic-bezier(.34,1.5,.4,1);box-shadow:inset 0 -1px #0000000f}.gc-bar-num{font-variant-numeric:tabular-nums;color:var(--ink);letter-spacing:-.01em;font-weight:800}.gc-bar-num small{color:var(--muted);margin-left:1px;font-weight:700}.gc-ring-row{align-items:center;gap:12px;display:flex}.gc-ring{flex-shrink:0;width:60px;height:60px;position:relative}.gc-ring svg{transform:rotate(-90deg)}.gc-ring-track{fill:none;stroke:var(--surface-sunken);stroke-width:7px}.gc-ring-fill{fill:none;stroke:var(--gc-color,var(--accent));stroke-width:7px;stroke-linecap:round;transition:stroke-dashoffset .5s cubic-bezier(.34,1.5,.4,1)}.gc-ring-pct{letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:14px;font-weight:800;line-height:1;display:flex;position:absolute;inset:0}.gc-ring-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.gc-ring-num{font-size:var(--fs-md);font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--ink);font-weight:800}.gc-ring-num small{color:var(--muted);font-weight:700}.gc-ring-label{color:var(--muted);font-size:11px;font-weight:700}.gc-steps{align-items:center;gap:4px;display:flex}.gc-step{background:var(--surface-sunken);border-radius:4px;flex:1;height:8px;transition:background .25s;position:relative}.gc-step.is-done{background:var(--gc-color,var(--accent))}.gc-step.is-current:after{content:"";border:2px solid var(--gc-color,var(--accent));border-radius:6px;position:absolute;inset:-3px}.gc-steps-num{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--ink);letter-spacing:-.01em;margin-left:6px;font-weight:800}.gc-foot{justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:4px;display:flex}.gc-assignees{font-size:var(--fs-xs);color:var(--ink-3);align-items:center;gap:-6px;font-weight:700;display:flex}.gc-assignee-stack{margin-right:6px;display:inline-flex}.gc-assignee-stack>*+*{margin-left:-8px}.gc-assignee-stack>*{border:2px solid var(--surface);border-radius:50%}.gc-action{appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-xs);cursor:pointer;align-items:center;gap:4px;padding:5px 10px;font-weight:700;transition:all .14s;display:inline-flex}.gc-action:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-soft)}.goals-empty{border:1.5px dashed var(--line-strong);border-radius:var(--r-xl);text-align:center;background:linear-gradient(180deg, var(--surface-sunken) 0%, var(--surface) 100%);flex-direction:column;align-items:center;gap:14px;padding:80px 24px;display:flex}.goals-empty-emoji{font-size:56px;line-height:1}.goals-empty h3{font-size:var(--fs-xl);letter-spacing:-.025em;margin:0;font-weight:800}.goals-empty p{max-width:380px;color:var(--muted);margin:0;line-height:1.5}.goals-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.gl-head,.gl-row{grid-template-columns:minmax(0,1fr) 110px 180px 100px 80px 44px;align-items:center;gap:14px;padding:12px 18px;display:grid}.gl-head{background:var(--surface-sunken);border-bottom:1px solid var(--line);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:800}.gl-row{border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s}.gl-row:last-child{border-bottom:0}.gl-row:hover{background:var(--accent-tint)}.gl-row.is-done .gl-name{color:var(--ink-3);text-decoration:line-through}.gl-name-wrap{align-items:center;gap:10px;min-width:0;display:flex}.gl-emoji{border-radius:var(--r-sm);flex-shrink:0;place-items:center;width:36px;height:36px;font-size:18px;display:grid}.gl-name{color:var(--ink);letter-spacing:-.015em;white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.gl-meta{color:var(--muted);font-size:11px;font-weight:600}.gl-progress-cell{align-items:center;gap:8px;display:flex}.gl-progress-cell .gc-bar-track{height:8px}.gl-progress-cell .gl-pct{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--ink-2);text-align:right;min-width:36px;font-weight:800}.gl-dday-cell{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;font-weight:700}.gl-action{appearance:none;background:var(--surface-sunken);cursor:pointer;width:32px;height:32px;color:var(--ink-3);border:0;border-radius:8px;place-items:center;transition:all .12s;display:grid}.gl-action:hover{background:var(--accent-soft);color:var(--accent)}.goals-board{grid-template-columns:repeat(4,minmax(260px,1fr));align-items:start;gap:14px;display:grid}.gb-col{background:var(--surface-sunken);border-radius:var(--r-lg);outline-offset:-2px;outline:2px dashed #0000;flex-direction:column;gap:10px;min-height:200px;padding:12px;transition:background .15s,outline-color .15s;display:flex}.gb-col.is-over{background:var(--accent-soft);outline-color:var(--accent)}.gb-col-h{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:4px 6px 8px;display:flex}.gb-col-h h4{font-size:var(--fs-sm);letter-spacing:-.01em;align-items:center;gap:6px;margin:0;font-weight:800;display:inline-flex}.gb-col-count{font-variant-numeric:tabular-nums;background:var(--surface);border:1px solid var(--line);color:var(--ink-2);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:800}.gb-col-list{flex-direction:column;gap:8px;display:flex}.gb-col-empty{color:var(--muted);text-align:center;border-radius:var(--r-sm);padding:18px 6px;font-size:11px;transition:all .15s}.gb-col-empty.is-target{background:var(--surface);color:var(--accent);border:1.5px dashed var(--accent);padding:22px 6px;font-weight:800}.gb-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);cursor:grab;font:inherit;text-align:left;appearance:none;color:inherit;-webkit-user-select:none;user-select:none;flex-direction:column;gap:6px;padding:10px 12px;transition:all .12s;display:flex}.gb-card:active{cursor:grabbing}.gb-card:hover{box-shadow:var(--sh-sm);border-color:var(--line-strong);transform:translateY(-1px)}.gb-card.is-dragging{opacity:.4;cursor:grabbing;transform:scale(.98)}.gb-card-grip{letter-spacing:-1px;color:var(--faint);cursor:grab;margin-right:4px;font-size:11px;display:inline-block}.gb-card:hover .gb-card-grip{color:var(--ink-3)}.gb-card-meta{letter-spacing:.04em;align-items:center;gap:4px;font-size:10px;font-weight:800;display:flex}.gb-card-title{font-size:var(--fs-sm);color:var(--ink);word-break:keep-all;font-weight:700;line-height:1.3}.gb-card-foot{color:var(--muted);justify-content:space-between;align-items:center;gap:6px;font-size:10px;display:flex}.gb-card-move{gap:6px;margin-top:2px;display:none}.gb-card-move-btn{appearance:none;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-sunken);min-width:0;min-height:40px;color:var(--ink-2);font:inherit;font-size:var(--fs-xs);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;touch-action:manipulation;flex:1 1 0;padding:0 8px;font-weight:700;overflow:hidden}.gb-card-move-btn:active{transform:scale(.96);box-shadow:inset 0 2px 6px #0e14301f}.goals-week{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px}.gw-row{grid-template-columns:130px repeat(7,minmax(0,1fr));align-items:stretch;gap:6px;display:grid}.gw-head{border-bottom:1px solid var(--line);grid-template-columns:130px repeat(7,minmax(0,1fr));gap:6px;margin-bottom:10px;padding-bottom:10px;display:grid}.gw-head-day{text-align:center;letter-spacing:.05em;color:var(--muted);font-size:11px;font-weight:800}.gw-head-day strong{font-size:var(--fs-md);color:var(--ink);font-variant-numeric:tabular-nums;margin-top:2px;display:block}.gw-head-day.is-today strong{color:var(--accent)}.gw-head-spacer{color:var(--muted);padding-top:4px;font-size:11px;font-weight:800}.gw-row+.gw-row{margin-top:8px}.gw-goal-cell{background:var(--surface-sunken);border-radius:var(--r-md);flex-direction:column;gap:2px;min-width:0;padding:8px 10px;display:flex}.gw-goal-cell-title{font-size:var(--fs-sm);letter-spacing:-.015em;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-weight:800;overflow:hidden}.gw-goal-cell-sub{color:var(--muted);font-size:10px;font-weight:700}.gw-day-cell{border-radius:var(--r-sm);background:var(--surface-sunken);cursor:pointer;min-height:42px;color:var(--muted);place-items:center;font-size:14px;transition:all .12s;display:grid}.gw-day-cell:hover{background:var(--accent-soft)}.gw-day-cell.is-done{background:var(--gc-color,var(--accent));color:#fff;font-weight:800}.gw-day-cell.is-today{box-shadow:inset 0 0 0 2px var(--accent)}.gw-day-cell.is-disabled{opacity:.4;cursor:default}.gd-backdrop{z-index:9000;background:#0e143073;animation:.18s fadeIn;position:fixed;inset:0}.gd{background:var(--surface);z-index:9001;flex-direction:column;width:min(560px,100%);animation:.28s cubic-bezier(.2,.8,.2,1) gdIn;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-16px 0 40px #0e14302e}@keyframes gdIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}.gd-head{border-bottom:1px solid var(--line);background:var(--gd-bg,var(--accent-tint));padding:22px 24px 14px;position:relative}.gd-head-meta{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.gd-head-title-row{align-items:flex-start;gap:12px;display:flex}.gd-head-emoji-btn{appearance:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;flex-shrink:0;width:52px;height:52px;font-size:26px;transition:transform .15s}.gd-head-emoji-btn:hover{transform:scale(1.06)}.gd-head-title-input{appearance:none;font:inherit;font-size:var(--fs-2xl);letter-spacing:-.03em;color:var(--ink);background:0 0;border:0;border-radius:6px;outline:none;flex:1;width:100%;padding:4px 0;font-weight:800;line-height:1.2}.gd-close{position:absolute;top:16px;right:16px}.gd-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:22px;padding:18px 24px 24px;display:flex;overflow:hidden auto}.gd-body>*{min-width:0}.gd-section h4{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:center;margin:0 0 10px;font-size:11px;font-weight:800;display:flex}.gd-progress-big{background:var(--surface-sunken);border-radius:var(--r-md);align-items:center;gap:16px;padding:16px;display:flex}.gd-progress-big .gc-ring{width:80px;height:80px}.gd-progress-big .gc-ring-pct{font-size:18px}.gd-progress-num{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.gd-progress-num strong{font-size:var(--fs-2xl);letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--ink);font-weight:800}.gd-progress-num small{color:var(--muted);font-size:var(--fs-sm);font-weight:600}.gd-progress-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.gd-count-pad{align-items:center;gap:8px;display:flex}.gd-count-pad input{text-align:center;font-variant-numeric:tabular-nums;width:80px;font-weight:800;font-size:var(--fs-lg)}.gd-checklist{flex-direction:column;gap:4px;display:flex}.gd-check-row{border-radius:var(--r-sm);align-items:center;gap:10px;padding:6px 8px;transition:background .12s;display:flex}.gd-check-row:hover{background:var(--surface-sunken)}.gd-check-box{appearance:none;border:2px solid var(--line-strong);background:var(--surface);cursor:pointer;color:#fff;border-radius:6px;flex-shrink:0;place-items:center;width:22px;height:22px;padding:0;transition:all .15s cubic-bezier(.34,1.56,.5,1);display:grid}.gd-check-box:hover{border-color:var(--accent);transform:scale(1.08)}.gd-check-row.is-done .gd-check-box{background:var(--gd-color,var(--accent));border-color:var(--gd-color,var(--accent))}.gd-check-row.is-done .gd-check-text{color:var(--ink-3);text-decoration:line-through}.gd-check-text{appearance:none;font:inherit;font-size:var(--fs-md);color:var(--ink);text-align:left;cursor:text;background:0 0;border:0;border-radius:4px;outline:none;flex:1;min-width:0;padding:4px}.gd-check-text:focus,.gd-check-text:hover{background:var(--surface-sunken)}.gd-check-del{opacity:0;width:26px;height:26px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;padding:0;display:grid}.gd-check-row:hover .gd-check-del{opacity:.7}.gd-check-del:hover{opacity:1;color:var(--red);background:var(--red-soft)}.gd-add-row{gap:6px;margin-top:4px;display:flex}.gd-add-row .input{font-size:var(--fs-sm);padding:8px 12px}.gd-milestones{flex-direction:column;gap:8px;display:flex}.gd-ms-row{background:var(--surface-sunken);border-radius:var(--r-md);border-left:3px solid var(--gd-color,var(--accent));align-items:center;gap:12px;padding:10px 12px;display:flex}.gd-ms-row.is-done{opacity:.7;background:var(--green-soft);border-left-color:var(--green)}.gd-ms-num{letter-spacing:.05em;color:var(--muted);font-variant-numeric:tabular-nums;width:24px;font-size:11px;font-weight:800}.gd-ms-row.is-done .gd-ms-num{color:var(--green)}.gd-ms-text{font-size:var(--fs-sm);color:var(--ink);flex:1;font-weight:700}.gd-ms-row.is-done .gd-ms-text{color:var(--ink-3);text-decoration:line-through}.gd-ms-toggle{appearance:none;border:1.5px solid var(--line-strong);background:var(--surface);font:inherit;color:var(--ink-3);cursor:pointer;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:800}.gd-ms-row.is-done .gd-ms-toggle{background:var(--green);border-color:var(--green);color:#fff}.gd-assignees{flex-wrap:wrap;gap:6px;display:flex}.gd-assignee-chip{background:var(--surface-sunken);font-size:var(--fs-sm);color:var(--ink-2);cursor:pointer;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:4px 12px 4px 4px;font-weight:700;transition:all .12s;display:inline-flex}.gd-assignee-chip.is-on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.gd-assignee-chip:hover{border-color:var(--accent)}.gd-assignee-chip.gd-assignee-class{background:var(--accent);color:#fff}.gd-notes{flex-direction:column;gap:8px;display:flex}.gd-note{border-radius:var(--r-md);font-size:var(--fs-sm);color:#5c4a1f;box-shadow:var(--sh-sm);background:#fff9d9;border:1px solid #8c6a2c2e;padding:12px 14px;line-height:1.5;position:relative}.gd-note-date{letter-spacing:.05em;color:#8c6a2cb3;text-transform:uppercase;margin-bottom:4px;font-size:10px;font-weight:800}.gd-note-del{opacity:0;appearance:none;cursor:pointer;color:#8c6a2c;background:0 0;border:0;border-radius:4px;place-items:center;width:22px;height:22px;display:grid;position:absolute;top:6px;right:6px}.gd-note:hover .gd-note-del{opacity:.7}.gd-note-del:hover{opacity:1;background:#8c6a2c26}.gd-foot{border-top:1px solid var(--line);background:var(--surface);justify-content:space-between;gap:8px;padding:14px 24px 16px;display:flex}.gd-foot-left,.gd-foot-right{align-items:center;gap:8px;display:flex}.gn-templates{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.gn-template{appearance:none;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-md);text-align:left;font:inherit;cursor:pointer;flex-direction:column;gap:6px;padding:14px 14px 12px;transition:all .14s;display:flex}.gn-template:hover{box-shadow:var(--sh-sm);border-color:var(--gn-tpl-color,var(--accent));transform:translateY(-2px)}.gn-template-emoji{font-size:26px}.gn-template-title{font-size:var(--fs-sm);letter-spacing:-.01em;color:var(--ink);font-weight:800}.gn-template-meta{letter-spacing:.04em;color:var(--muted);gap:4px;font-size:10px;font-weight:800;display:flex}.gn-template-blank{background:var(--surface-sunken);text-align:center;border-style:dashed;justify-content:center;align-items:center}.gn-form{flex-direction:column;gap:16px;display:flex}.gn-radio-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px;display:grid}.gn-radio{appearance:none;border:1.5px solid var(--line);background:var(--surface);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-sm);color:var(--ink-2);cursor:pointer;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;font-weight:700;transition:all .12s;display:flex}.gn-radio:hover{border-color:var(--accent);color:var(--accent)}.gn-radio.is-on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.gn-radio-emoji{font-size:20px;line-height:1}.gn-radio-label{letter-spacing:-.005em;font-size:11px;font-weight:800}.gn-count-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.gd-celebrate{pointer-events:none;z-index:9100;position:fixed;inset:0}.gd-celebrate-piece{border-radius:2px;width:12px;height:12px;animation:1.6s cubic-bezier(.2,.8,.4,1) forwards gd-fall;position:absolute;top:50%;left:50%}@keyframes gd-fall{0%{opacity:1;transform:translate(0)scale(0)}20%{opacity:1}to{transform:translate(var(--dx,0px), var(--dy,400px)) rotate(540deg);opacity:0}}.gd-celebrate-badge{border-radius:var(--r-xl);box-shadow:var(--sh-xl);text-align:center;z-index:9102;background:#fff;padding:24px 32px;animation:2.4s cubic-bezier(.2,.8,.2,1) forwards gd-badge;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.gd-celebrate-badge h3{font-size:var(--fs-3xl);letter-spacing:-.04em;margin:0 0 4px}.gd-celebrate-badge p{color:var(--muted);margin:0;font-weight:700}@keyframes gd-badge{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}15%{opacity:1;transform:translate(-50%,-50%)scale(1.08)}25%{transform:translate(-50%,-50%)scale(1)}85%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.92)}}.gc.is-routine{background:linear-gradient(180deg, #1f31630a 0%, var(--surface) 28%)}.gc-pill-routine{background:var(--ink);color:#fff;letter-spacing:-.005em;font-weight:800}.gc-action-reset{border-color:var(--green);color:var(--green);background:var(--green-soft)}.gc-action-reset:hover{background:var(--green);color:#fff;border-color:var(--green)}.gl-kind-dot{vertical-align:-1px;margin-right:4px;font-size:13px}.gl-row.is-routine .gl-name-wrap:before{content:"";background:var(--ink);border-radius:2px;align-self:stretch;width:3px;margin-right:-4px;display:block}.gn-kind-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.gn-kind{appearance:none;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-lg);font:inherit;text-align:left;cursor:pointer;flex-direction:column;gap:6px;padding:22px 18px 18px;transition:all .16s;display:flex}.gn-kind:hover{border-color:var(--accent);box-shadow:var(--sh-md);transform:translateY(-2px)}.gn-kind-emoji{font-size:36px;line-height:1}.gn-kind-title{font-size:var(--fs-xl);letter-spacing:-.025em;color:var(--ink);font-weight:800}.gn-kind-desc{font-size:var(--fs-sm);color:var(--ink-3);margin-bottom:6px}.gn-kind-examples{flex-wrap:wrap;gap:4px;display:flex}.gn-kind-examples span{background:var(--surface-sunken);color:var(--ink-2);border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700}.gd-assign-bar{background:var(--accent-tint);border-radius:var(--r-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding:8px 12px;display:flex}.gd-item-assign{appearance:none;border:1.5px solid var(--line);background:var(--surface);cursor:pointer;font:inherit;color:var(--ink-3);border-radius:999px;flex-shrink:0;align-items:center;gap:4px;max-width:130px;padding:2px 10px 2px 2px;font-size:11px;font-weight:700;transition:all .12s;display:inline-flex}.gd-item-assign:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.gd-item-assign.is-assigned{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.gd-item-assign-name{white-space:nowrap;text-overflow:ellipsis;max-width:70px;overflow:hidden}.gd-item-assign-plus{background:var(--surface-sunken);width:20px;height:20px;color:var(--ink-3);border-radius:50%;place-items:center;font-weight:800;display:inline-grid}.gd-item-assign-label{letter-spacing:-.005em;padding-right:2px;font-size:10px}@media (max-width:768px){.gn-kind-grid{grid-template-columns:1fr}.goals-hero-right{flex-wrap:wrap;gap:8px}.goals-kindtabs{justify-content:center;width:100%}.goals-kindtabs button{flex:1;padding:8px 10px}.goals-hero{grid-template-columns:1fr;gap:14px}.goals-hero-right{justify-content:space-between;width:100%}.goals-cards{grid-template-columns:1fr}.gl-head,.gl-row{grid-template-columns:minmax(0,1fr) 80px 36px;gap:10px}.gl-head>:nth-child(n+3):nth-child(-n+5),.gl-row>:nth-child(n+3):nth-child(-n+5){display:none}.goals-board{grid-template-columns:1fr}.gb-card-move{display:flex}.goals-week{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;overflow-x:auto}.gw-row,.gw-head{min-width:640px}.gd{width:100%}.gd-section,.gd-check-row>*,.gd-ms-row>*,.gd-add-row .input{min-width:0}.gd-check-del{opacity:.7;width:36px;height:36px}.gd-note-del{opacity:.7}.goals-hero-ring{width:72px;height:72px}.goals-hero-ring-pct{font-size:16px}.goals-hero-h{font-size:var(--fs-xl)}}.goal-emoji-pop{z-index:9050;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-lg);flex-direction:column;gap:8px;padding:10px;animation:.14s fadeIn;display:flex;position:fixed}.goal-emoji-pop-grid{grid-template-columns:repeat(8,34px);gap:4px;display:grid}.goal-emoji-pop-cell{appearance:none;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;width:34px;height:34px;font-size:19px;transition:background .12s,transform .12s;display:grid}.goal-emoji-pop-cell:hover{background:var(--accent-soft);transform:scale(1.12)}.goal-emoji-pop-cell.is-on{border-color:var(--accent);background:var(--accent-soft)}.goal-emoji-pop-input{align-items:center;gap:6px;display:flex}.goal-emoji-pop-input input{border:1px solid var(--line);border-radius:var(--r-sm);min-width:0;font-size:var(--fs-sm);background:var(--surface);color:var(--ink);flex:1;padding:6px 10px}@media (max-width:768px){.goal-emoji-pop-grid{grid-template-columns:repeat(6,38px)}.goal-emoji-pop-cell{width:38px;height:38px;font-size:21px}}@media (hover:none){.gd-check-del,.gd-note-del{opacity:.5}}
