.achievements{max-width:520px;padding:calc(24px + env(safe-area-inset-top,0px)) 16px calc(32px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:16px;margin:0 auto;display:flex}.achievements-title{font-family:var(--font-display);letter-spacing:-.4px;margin:0;padding:0 4px;font-size:30px;font-weight:700}.achievements-summary,.achievements-secrets{margin:0;padding:0 4px}.achievements-secrets{text-align:center;color:var(--muted);font-style:italic}.achievements-section{flex-direction:column;gap:8px;display:flex}.achievements-heading{font-family:var(--font-display);margin:0;padding:0 4px;font-size:20px}.achievement-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.achievement{align-items:flex-start;gap:12px;display:flex}.achievement-badge{border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex;position:relative}.achievement.is-found .achievement-badge{background:var(--accent);color:var(--accent-ink)}.achievement.is-locked .achievement-badge{border:2px dashed var(--muted);color:var(--muted)}.achievement.is-locked .achievement-badge>svg{opacity:.45}.achievement-lock{background:var(--card);border:1.5px solid var(--muted);width:22px;height:22px;color:var(--muted);border-radius:11px;justify-content:center;align-items:center;display:inline-flex;position:absolute;bottom:-6px;right:-6px}.achievement-text{flex-direction:column;gap:2px;min-width:0;display:flex}.achievement-text p{margin:0}.achievement-name{flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:17px;display:flex}.achievement.is-locked .achievement-name{color:var(--muted)}.achievement-new{text-transform:uppercase;letter-spacing:.04em;background:var(--ink);color:var(--card);border-radius:10px;padding:2px 8px;font-size:12px;font-weight:700}.achievement-when{font-size:13px}.motif-button{cursor:pointer;background:0 0;border:none;border-radius:22px;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;margin:-2px -2px -2px 0;padding:2px;display:inline-flex}.motif-button>span{display:inline-flex}@media (prefers-reduced-motion:no-preference){.motif-wiggle{animation:.42s ease-out motif-wiggle}}@keyframes motif-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-12deg)scale(1.06)}60%{transform:rotate(8deg)}}.room{max-width:520px;padding:calc(16px + env(safe-area-inset-top,0px)) 16px calc(32px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:16px;margin:0 auto;display:flex}.room-header{align-items:center;gap:8px;display:flex}.room-back{color:var(--ink);margin-left:-10px}.room-title{font-family:var(--font-display);letter-spacing:-.3px;margin:0;font-size:28px;font-weight:700}.room-title:focus{outline:none}.room-intro{margin:0;padding:0 4px}.room-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.room-item{display:flex}.room-card{text-align:left;min-height:44px;font:inherit;color:var(--ink);flex-direction:column;flex:1;align-items:flex-start;gap:10px;display:flex}button.room-card{cursor:pointer;border:none}.room-badge{border-radius:16px;justify-content:center;align-items:center;width:52px;height:52px;display:inline-flex;position:relative}.room-card.is-open .room-badge,.room-card.is-unlocked .room-badge{background:var(--accent);color:var(--accent-ink)}.room-card.is-locked .room-badge{border:2px dashed var(--muted);color:var(--muted)}.room-card.is-locked .room-badge>svg{opacity:.45}.room-tag{background:var(--card);border:1.5px solid var(--muted);width:22px;height:22px;color:var(--muted);border-radius:11px;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex;position:absolute;bottom:-6px;right:-6px}.room-text{flex-direction:column;gap:2px;min-width:0;display:flex}.room-name{margin-right:6px;font-size:16px;font-weight:700}.room-card.is-locked .room-name{color:var(--muted)}.room-entry{border:2px dashed var(--decorative);text-align:left;width:100%;min-height:44px;font:inherit;color:var(--ink);cursor:pointer;align-items:center;gap:12px;display:flex}.room-entry-icon{background:var(--ink);width:44px;height:44px;color:var(--card);border-radius:22px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.room-entry-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.room-entry .achievement-name{font-weight:700}.today{max-width:520px;padding:calc(24px + env(safe-area-inset-top,0px)) 16px calc(32px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:16px;margin:0 auto;display:flex}.today-header{margin:calc(-24px - env(safe-area-inset-top,0px)) -16px 0;padding:calc(24px + env(safe-area-inset-top,0px)) 20px 20px;background:linear-gradient(to bottom, var(--glow), var(--ground));flex-direction:column;gap:4px;display:flex}.today-date{font-weight:500}.today-greeting{justify-content:space-between;align-items:center;gap:12px;display:flex}.today-title{font-family:var(--font-display);letter-spacing:-.4px;margin:0;font-size:30px;font-weight:700}.habit-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.empty{flex-direction:column;gap:6px;padding:20px;display:flex}.empty-title{font-family:var(--font-display);margin:0;font-size:20px}.add-button{margin-top:4px}.section-row{justify-content:space-between;align-items:baseline;gap:8px;padding:0 4px;display:flex}.section-title{margin:0;font-size:15px;font-weight:700}.level-card{background:var(--card);color:var(--ink);border-radius:20px;flex-direction:column;gap:10px;padding:16px 18px;display:flex}.level-card.is-link{position:relative}.level-open{font:inherit;color:inherit;text-align:left;background:0 0;border:none;padding:0}.level-open:after{content:"";border-radius:20px;position:absolute;inset:0}.level-open:focus-visible{outline:none}.level-open:focus-visible:after{outline:3px solid var(--accent-text);outline-offset:2px}.level-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.level-title{font-family:var(--font-display);margin:0;font-size:20px}.level-xp,.level-summary{color:var(--muted);margin:0;font-size:14px}.level-progress{background:var(--raised);height:8px;box-shadow:inset 0 0 0 1px var(--line);border-radius:4px;overflow:hidden}.level-progress i{background:var(--accent);border-radius:4px;height:100%;display:block}.history-counted{flex-direction:column;gap:8px;display:flex}.history-counted-title{font-family:var(--font-display);margin:0;font-size:18px}.history-counted p{margin:0}.history-counted button{align-self:flex-start}@media (prefers-reduced-motion:no-preference){.history-counted.is-animated{animation:.6s cubic-bezier(.2,.8,.3,1.2) both history-counted-in}}@keyframes history-counted-in{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:none}}.level-week{justify-content:space-between;align-items:flex-end;padding-top:4px;display:flex}.level-day{width:34px;color:var(--muted);flex-direction:column;align-items:center;gap:6px;font-size:12px;display:flex}.level-day.is-today{color:var(--ink);font-weight:700}.level-bar{background:var(--raised);width:10px;height:36px;box-shadow:inset 0 0 0 1px var(--line);border-radius:5px;align-items:flex-end;display:flex;overflow:hidden}.level-bar i{background:var(--accent);border-radius:5px;width:100%;display:block}.is-today .level-bar i{opacity:.7}.is-before .level-bar{box-shadow:none;border:1.5px dashed var(--muted);background:0 0}.level-weekday{color:var(--muted);-webkit-text-fill-color:currentColor;text-decoration:none}.is-today .level-weekday{color:var(--ink)}.paused summary{min-height:44px;color:var(--muted);cursor:pointer;align-items:center;padding:0 4px;font-weight:700;display:flex}.paused-list{flex-direction:column;gap:8px;margin:4px 0 0;padding:0;list-style:none;display:flex}.paused-item{background:var(--card);border-radius:16px;align-items:center;gap:10px;padding:6px 8px 6px 14px;display:flex}.paused-name{overflow-wrap:anywhere;flex-grow:1;font-weight:500}.today-list{flex-direction:column;gap:10px;display:flex}.backup-reminder{flex-direction:column;gap:8px;padding:18px 20px;display:flex}.backup-reminder-head{color:var(--accent-text);align-items:center;gap:10px;display:flex}.backup-reminder-title{font-family:var(--font-display);color:var(--ink);margin:0;font-size:18px}.backup-reminder-actions{flex-direction:column;gap:4px;margin-top:4px;display:flex}.backup-reminder .button-primary:disabled{opacity:.7}.backup-reminder-done{margin:0;padding:14px 20px;font-weight:600}.achievement-card{background:var(--accent-tint);flex-direction:column;gap:12px;display:flex}.achievement-card-row{align-items:flex-start;gap:12px;display:flex}.achievement-card-icon{background:var(--accent);width:40px;height:40px;color:var(--accent-ink);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.achievement-card-text{flex-direction:column;gap:2px;min-width:0;display:flex}.achievement-card-label{text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:13px;font-weight:700}.achievement-card-name{font-family:var(--font-display);margin:0;font-size:18px;font-weight:700}.achievement-card p{margin:0}.achievement-card-list{flex-direction:column;gap:4px;margin:4px 0 0;padding:0;list-style:none;display:flex}.achievement-card-list .achievement-card-name{font-size:16px}.achievement-card-actions{gap:8px;display:flex}.achievement-card-actions>*{flex:1}@media (prefers-reduced-motion:no-preference){.achievement-card.is-animated{animation:.6s cubic-bezier(.2,.8,.3,1.2) both history-counted-in}.achievement-card.is-animated .achievement-card-icon{animation:.9s ease-out .2s both achievement-sparkle}}@keyframes achievement-sparkle{0%{transform:scale(.6)rotate(-20deg)}60%{transform:scale(1.15)rotate(8deg)}to{transform:none}}.achievement-card .button-plain{color:var(--ink);text-decoration:underline}.secret-card{border:2px dashed var(--decorative);flex-direction:column;gap:12px;display:flex}.secret-card-row{align-items:flex-start;gap:12px;display:flex}.secret-card-icon{background:var(--ink);width:40px;height:40px;color:var(--card);border-radius:20px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.secret-card-text{flex-direction:column;gap:2px;min-width:0;display:flex}.secret-card-label{font-family:var(--font-display);margin:0;font-size:20px;font-weight:700}.secret-card p{margin:0}.secret-card-list{flex-direction:column;gap:6px;margin:2px 0 0;padding:0;list-style:none;display:flex}.secret-card-name{font-weight:700}.secret-card-actions{gap:8px;display:flex}.secret-card-actions>*{flex:1}@media (prefers-reduced-motion:no-preference){.secret-card.is-animated{animation:.9s cubic-bezier(.3,.7,.2,1) both secret-reveal}.secret-card.is-animated .secret-card-icon{animation:.9s ease-in-out .3s both secret-turn}}@keyframes secret-reveal{0%{clip-path:circle(0 at 36px 34px)}to{clip-path:circle(150% at 36px 34px)}}@keyframes secret-turn{0%,to{transform:rotate(0)}50%{transform:rotate(90deg)}}.game2048{--gap:10px;max-width:520px;padding:calc(16px + env(safe-area-inset-top,0px)) 16px calc(32px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:14px;margin:0 auto;display:flex}.game2048-scores{align-items:stretch;gap:8px;display:flex}.game2048-score{background:var(--card);border-radius:14px;flex-direction:column;flex:1;align-items:center;min-width:0;max-width:120px;margin:0;padding:6px 12px;display:flex}.game2048-score-label{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-size:12px;font-weight:700}.game2048-score-value{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.game2048-new{border:2px solid var(--ink);min-height:44px;color:var(--ink);font:inherit;white-space:nowrap;background:0 0;border-radius:22px;align-self:center;margin-left:auto;padding:0 16px;font-weight:700}.game2048-stage{position:relative}.game2048-panel{z-index:3;flex-direction:column;gap:8px;display:flex;position:absolute;top:50%;left:12px;right:12px;transform:translateY(-50%);box-shadow:0 8px 28px #0000002e}.game2048-panel p{margin:0}.game2048-panel-title{font-family:var(--font-display);margin:0;font-size:20px}.game2048-panel-actions{flex-direction:column;gap:4px;margin-top:6px;display:flex}.game2048-board{aspect-ratio:1;width:100%;padding:var(--gap);background:var(--raised);border:1px solid var(--line);touch-action:none;-webkit-user-select:none;user-select:none;box-sizing:border-box;border-radius:18px;position:relative;container-type:inline-size}.game2048-board.is-paused{opacity:.45}.game2048-cell,.game2048-tile{--size:calc((100% - 5 * var(--gap)) / 4);top:var(--gap);left:var(--gap);width:var(--size);height:var(--size);transform:translate(calc(var(--col) * (100% + var(--gap))), calc(var(--row) * (100% + var(--gap))));position:absolute}.game2048-cell{background:var(--card);opacity:.6;border-radius:10px}.game2048-tile{z-index:2;transition:transform .11s ease-in-out}.game2048-tile.is-absorbed{z-index:1}.game2048-tile-face{width:100%;height:100%;font-family:var(--font-display);font-variant-numeric:tabular-nums;border-radius:10px;justify-content:center;align-items:center;font-size:11cqi;font-weight:700;line-height:1;display:flex}.game2048-tile-face.digits-3{font-size:9cqi}.game2048-tile-face.digits-4{font-size:7.2cqi}.game2048-tile-face.digits-5{font-size:5.8cqi}.game2048-tile[data-value="128"] .game2048-tile-face,.game2048-tile[data-value="256"] .game2048-tile-face,.game2048-tile[data-value="512"] .game2048-tile-face,.game2048-tile[data-value="1024"] .game2048-tile-face{box-shadow:inset 0 0 0 2px var(--tile-128-ink)}@media (prefers-reduced-motion:no-preference){.game2048-tile.is-new .game2048-tile-face{animation:.16s ease-out 90ms both game2048-appear}.game2048-tile.is-merged .game2048-tile-face{animation:.18s ease-out 80ms both game2048-pop}}@keyframes game2048-appear{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes game2048-pop{0%{transform:scale(1)}50%{transform:scale(1.14)}to{transform:scale(1)}}.game2048-pad{grid-template-rows:repeat(2,56px);grid-template-columns:repeat(3,56px);justify-content:center;gap:6px;display:grid}.game2048-pad-button{background:var(--card);color:var(--ink);border:none;border-radius:16px;justify-content:center;align-items:center;display:inline-flex}.game2048-pad-button:disabled{color:var(--muted);opacity:.6}.game2048-pad-button.is-up{grid-area:1/2}.game2048-pad-button.is-left{grid-area:2/1}.game2048-pad-button.is-down{grid-area:2/2}.game2048-pad-button.is-right{grid-area:2/3}.game2048-help{text-align:center;margin:0;font-size:14px}.sheet-backdrop{z-index:10;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--card);width:100%;max-width:520px;max-height:90dvh;color:var(--ink);border-radius:24px 24px 0 0;flex-direction:column;animation:.18s ease-out sheet-in;display:flex}.sheet:focus{outline:none}.sheet-body{overscroll-behavior:contain;padding:24px 20px calc(24px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:18px;display:flex;overflow-y:auto}.sheet-body:has(+.sheet-footer){padding-bottom:16px}.sheet-footer{border-top:1px solid var(--line);background:var(--card);padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));flex-shrink:0}.sheet-title{font-family:var(--font-display);margin:0;font-size:24px}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}}@media (prefers-reduced-motion:reduce){.sheet{animation:none}}.shape{flex-shrink:0;display:block;overflow:visible}.shape path{stroke-width:1.8px;stroke-linejoin:round}.shape-filled{fill:var(--accent);stroke:var(--accent)}.shape-empty{fill:none;stroke:var(--muted)}.shape-over{fill:var(--attention-tint);stroke:var(--attention);stroke-dasharray:3 2}.detail{max-width:520px;padding:calc(16px + env(safe-area-inset-top,0px)) 16px calc(32px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:14px;margin:0 auto;display:flex}.detail-header{align-items:center;gap:8px;display:flex}.detail-back{color:var(--ink);margin-left:-10px}.detail-title{font-family:var(--font-display);letter-spacing:-.3px;overflow-wrap:anywhere;margin:0;font-size:26px;font-weight:700}.detail-title:focus{outline:none}.detail-status{background:var(--raised);border-radius:14px;margin:0;padding:10px 14px;font-size:14px}.detail-card{flex-direction:column;gap:8px;display:flex}.detail-heading{margin:0;font-size:16px;font-weight:700}.detail-total{font-family:var(--font-display);margin:0;font-size:22px;font-weight:700}.detail-actions{flex-direction:column;gap:4px;display:flex}.calendar{padding:8px 10px 14px}.calendar-head{justify-content:space-between;align-items:center;display:flex}.calendar-head .icon-button{color:var(--ink)}.calendar-head .icon-button:disabled{opacity:.3;cursor:default}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.calendar-weekdays{text-align:center;color:var(--muted);font-size:12px;font-weight:700}.calendar-grid{touch-action:pan-y;margin:0;padding:0;list-style:none}.cal-day{background:0 0;border:none;border-radius:12px;justify-content:center;align-items:center;width:100%;min-height:46px;padding:0;display:flex;position:relative}.cal-num{font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:15px;display:inline-flex}.cal-day.is-quiet{color:var(--muted);opacity:.45}.mark-none .cal-num{color:var(--muted)}.mark-full .cal-num{background:var(--accent);color:var(--accent-ink);font-weight:700}.mark-minimum .cal-num{box-shadow:inset 0 0 0 2.5px var(--accent-text);font-weight:700}.cal-day.mark-some:after{content:"";background:var(--accent-text);border-radius:2px;width:14px;height:3px;position:absolute;bottom:3px}.cal-day.mark-over:before{content:"";background:var(--ink);border-radius:50%;width:6px;height:6px;position:absolute;top:2px}.mark-over .cal-num{font-weight:700}.mark-before-start .cal-num{color:var(--muted);border:1.5px dashed var(--muted)}.cal-day.is-today{box-shadow:inset 0 0 0 1.5px var(--ink)}.calendar-legend{color:var(--muted);flex-wrap:wrap;gap:6px 16px;margin:8px 0 0;padding:0 6px;font-size:13px;list-style:none;display:flex}.calendar-legend li{align-items:center;gap:6px;display:inline-flex}.cal-key{border-radius:50%;justify-content:center;width:18px;height:18px;display:inline-flex;position:relative}.cal-key.mark-full{background:var(--accent)}.cal-key.mark-minimum{box-shadow:inset 0 0 0 2.5px var(--accent-text)}.cal-key.mark-some:after{content:"";background:var(--accent-text);border-radius:2px;width:14px;height:3px;position:absolute;bottom:2px}.cal-key.mark-over:before{content:"";background:var(--ink);border-radius:50%;width:6px;height:6px;position:absolute;top:1px}.stat-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.stat{background:var(--raised);border-radius:14px;flex-direction:column;gap:2px;margin:0;padding:12px;display:flex}.stat strong{font-family:var(--font-display);font-size:24px}.cycle-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.cycle-list li{border-top:1px solid var(--line);justify-content:space-between;gap:12px;padding:8px 0;display:flex}.cycle-list li:first-child{border-top:none}.cycle-date{font-weight:700}.day-summary{margin:0;font-weight:700}.day-entries{margin:0;padding:0;list-style:none}.day-entries li{border-top:1px solid var(--line);align-items:center;gap:12px;padding:6px 0;display:flex}.day-entry-text{flex-direction:column;flex-grow:1;font-weight:500;display:flex}.day-input{flex-direction:column;gap:12px;padding:4px 0;display:flex}.day-amount{flex-direction:column;gap:6px;display:flex}.day-amount label{font-size:14px;font-weight:700}.day-amount-row{gap:8px;display:flex}.day-amount input{border:1.5px solid var(--muted);background:var(--raised);border-radius:12px;flex-grow:1;min-width:0;min-height:44px;padding:0 12px}.day-undo{background:var(--raised);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:6px 6px 6px 14px;font-size:14px;display:flex}.day-notice{flex-direction:column;gap:8px;display:flex}.day-notice p{margin:0}.tracker-open{max-width:100%;min-height:44px;font:inherit;text-align:left;overflow-wrap:anywhere;background:0 0;border:none;align-items:center;gap:8px;padding:0;display:inline-flex}.tracker-open-chevron{color:var(--muted);flex-shrink:0}.habit-week{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.dots{gap:5px;display:inline-flex}.dot{box-sizing:border-box;border-radius:6px;width:12px;height:12px;display:block}.dot-done{background:var(--accent)}.dot-open{border:2px solid var(--muted)}.dot-today{border:2px solid var(--muted);background:radial-gradient(circle, var(--muted) 0 2px, transparent 2.5px)}.dot-before{border:1.5px dashed var(--muted);opacity:.6}.run-badge{background:var(--accent-tint);color:var(--ink);border-radius:10px;padding:2px 8px;font-size:13px;font-weight:700}.done-button{border:2px solid var(--muted);background:var(--card);width:60px;height:60px;color:var(--muted);border-radius:30px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:0;padding:0;transition:background-color .15s,transform .15s;display:flex}.done-button:active{transform:scale(.94)}.done-button.is-done{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.done-text{font-size:11px;font-weight:700;line-height:1.1}.tracker-form{flex-direction:column;gap:20px;display:flex}.field{border:none;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;display:flex}.field>label,.field>legend{margin-bottom:8px;padding:0;font-size:15px;font-weight:700}.field>label{margin-bottom:0}.field input[type=text]{border:1.5px solid var(--muted);background:var(--raised);border-radius:14px;width:100%;min-height:52px;padding:0 14px;font-size:16px}.field input[type=text]::placeholder{color:var(--muted)}.field-error{color:var(--attention-ink);background:var(--attention-tint);border-radius:10px;align-items:center;gap:6px;margin:0;padding:6px 10px;font-size:14px;font-weight:500;display:inline-flex}.day-picker{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.day-option{position:relative}.day-option input{opacity:0;margin:0;position:absolute;inset:0}.day-option span{border:1.5px solid var(--muted);background:var(--raised);border-radius:12px;justify-content:center;align-items:center;min-height:44px;font-weight:700;display:flex}.day-option input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:inset 0 0 0 2px var(--card)}.day-option input:focus-visible+span{outline:3px solid var(--accent-text);outline-offset:2px}.sheet-actions{flex-direction:column;gap:4px;display:flex}.field input[type=time]{border:1.5px solid var(--muted);background:var(--raised);border-radius:14px;max-width:180px;min-height:52px;padding:0 14px;font-size:16px}.field:disabled{opacity:.7}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{position:relative}.chip input{opacity:0;margin:0;position:absolute;inset:0}.chip>span{border:1.5px solid var(--muted);background:var(--raised);--thumb-bg:var(--raised);border-radius:12px;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0 14px;font-size:15px;font-weight:500;display:flex}.chips.is-compact .chip>span{padding:0}.chip input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:inset 0 0 0 2px var(--card);--thumb-bg:var(--accent);font-weight:700}.chip input:checked+span .shape-filled{fill:var(--accent-ink);stroke:var(--accent-ink)}.chip input:focus-visible+span{outline:3px solid var(--accent-text);outline-offset:2px}.template-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.template-option{text-align:left;border:1.5px solid var(--line);background:var(--raised);width:100%;min-height:56px;color:var(--ink);border-radius:16px;align-items:center;gap:14px;padding:10px 16px;display:flex}.template-option>span{flex-direction:column;display:flex}.template-option small{color:var(--muted);font-size:14px}.template-option>svg{color:var(--accent-text);flex-shrink:0}.kind-option{align-items:flex-start;padding-block:14px}.kind-option>svg{margin-top:2px}.template-option .kind-examples{color:var(--muted);margin-top:2px}.template-option.is-blank{border-style:dashed}.sheet-lead{margin:0 0 12px}.checklist-item{align-items:center;gap:4px;display:flex}.checklist-item input{border:1.5px solid var(--muted);background:var(--raised);border-radius:14px;flex-grow:1;min-height:48px;padding:0 14px;font-size:16px}.align-start{align-self:flex-start;width:auto}.reminder-row{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.soon-badge{color:var(--muted);border:1.5px dashed var(--muted);border-radius:10px;padding:4px 10px;font-size:13px;font-weight:500}.kind-summary{align-items:center;gap:12px;margin-top:-6px;display:flex}.kind-summary>svg{color:var(--accent-text);flex-shrink:0}.kind-summary p{flex-direction:column;flex-grow:1;margin:0;display:flex}.kind-summary small{color:var(--muted);font-size:14px}.kind-summary .kind-change{text-underline-offset:3px;flex-shrink:0;width:auto;padding:0 8px;text-decoration:underline}.card-preview{background:var(--ground);border-radius:24px;flex-direction:column;gap:6px;padding:10px;display:flex}.card-preview-label{padding:0 6px}.more-options{border-top:1px solid var(--line)}.more-options summary{min-height:48px;color:var(--accent-text);cursor:pointer;align-items:center;gap:8px;font-weight:700;list-style:none;display:flex}.more-options summary::-webkit-details-marker{display:none}.more-options summary:after{content:"";border-bottom:2px solid;border-right:2px solid;width:8px;height:8px;transition:transform .15s;transform:rotate(45deg)translateY(-2px)}.more-options[open] summary:after{transform:rotate(225deg)translateY(-2px)}.more-options-body{flex-direction:column;gap:20px;padding:8px 0 4px;display:flex}.stepper{align-items:center;gap:8px;display:flex}.field .stepper input[type=text]{text-align:center;width:96px;font-weight:700}.stepper-button{border:1.5px solid var(--muted);background:var(--raised);width:48px;height:48px;color:var(--ink);border-radius:24px;flex-shrink:0;justify-content:center;align-items:center;font-size:24px;line-height:1;display:inline-flex}.stepper-button:disabled{opacity:.45;cursor:default}.display-choice{flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:13px;display:flex}.sheet-actions-row{gap:8px;display:flex}.sheet-actions-row .button-plain{width:auto;padding:0 16px}.sheet-actions-row .button-primary{flex-grow:1}.sheet-problem{margin-bottom:10px}.tracker-card{align-items:center;gap:12px;padding:10px 14px 14px 16px;display:flex}.tracker-main{flex-direction:column;flex-grow:1;gap:8px;min-width:0;display:flex}.tracker-head{align-items:center;gap:8px;margin-bottom:-6px;display:flex}.tracker-icon{color:var(--muted);display:inline-flex}.tracker-name{overflow-wrap:anywhere;flex-grow:1;margin:0;font-size:16px;font-weight:700}.tracker-head .icon-button{margin:-4px -8px -4px 0}.tracker-progress{color:var(--muted);margin:0;font-size:14px;font-weight:500}.tracker-progress.is-attention{color:var(--attention-ink);background:var(--attention-tint);border-radius:8px;align-self:flex-start;align-items:center;gap:6px;padding:2px 8px;display:inline-flex}.icon-array{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.display-gauge{display:flex}.bar{background:var(--line);border-radius:5px;height:10px;overflow:hidden}.bar-fill{border-radius:5px;height:100%;transition:width .2s;display:block}.bar-accent{background:var(--accent)}.bar-attention{background:var(--attention)}.bar-ink{background:var(--ink)}.ring{display:block}.ring-track,.ring-fill{fill:none;stroke-width:6px}.ring-track{stroke:var(--line)}.ring-fill{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .2s}.check-mark{border:2px solid var(--muted);color:#0000;border-radius:14px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.check-mark.is-done{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.week-slots,.recent-dots{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:6px;display:grid}.slot{border:1.5px solid var(--muted);border-radius:3px;height:10px;display:block}.slot.is-on{background:var(--accent);border-color:var(--accent)}.slot.is-over{background:var(--attention-tint);border:1.5px dashed var(--attention)}.rating-dot{border:1.5px solid var(--muted);border-radius:8px;justify-content:center;align-items:center;height:28px;display:flex;position:relative;overflow:hidden}.rating-fill{background:var(--accent-tint);position:absolute;bottom:0;left:0;right:0}.rating-dot b{font-size:13px;position:relative}.input-row{flex-wrap:wrap;gap:8px;display:flex}.pill{border:1.5px solid var(--accent-text);background:var(--card);min-width:44px;min-height:44px;color:var(--accent-text);border-radius:12px;padding:0 14px;font-size:14px;font-weight:700}.pill.is-on{background:var(--accent);color:var(--accent-ink)}.pill.is-quiet{border-color:var(--muted);color:var(--ink)}.versions{gap:8px;display:flex}.versions .pill{flex:1 1 0;justify-content:center;align-items:center;gap:6px;display:inline-flex}.round-button{background:var(--accent);width:48px;height:48px;color:var(--accent-ink);border:none;border-radius:24px;flex-shrink:0;justify-content:center;align-items:center;font-size:26px;font-weight:500;line-height:1;display:inline-flex}.round-button.is-quiet{background:var(--card);color:var(--ink);border:1.5px solid var(--muted)}.round-button:disabled{opacity:.45;cursor:default}.rating-row .pill{flex:1 1 0;padding:0}.slider-row{flex-wrap:nowrap;align-items:center}.slider-row input[type=range]{min-height:44px;accent-color:var(--accent);flex-grow:1}.slider-value{text-align:right;min-width:3ch;font-weight:700}.timer-input{flex-direction:column;gap:8px;display:flex}.timer-row{align-items:center}.timer-button{align-items:center;gap:6px;display:inline-flex}.timer-clock{margin:0}.timer-time{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.progress{max-width:520px;padding:calc(24px + env(safe-area-inset-top,0px)) 16px calc(32px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:16px;margin:0 auto;display:flex}.progress-title{font-family:var(--font-display);letter-spacing:-.4px;margin:0;padding:0 4px;font-size:30px;font-weight:700}.progress-card{flex-direction:column;gap:10px;padding:16px 18px;display:flex}.progress-heading{font-family:var(--font-display);margin:0;font-size:18px}.segmented{border:none;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:6px;min-width:0;margin:0;padding:0;display:grid}.segmented-option{display:flex;position:relative}.segmented-option input{opacity:0;margin:0;position:absolute;inset:0}.segmented-option span{border:1.5px solid var(--muted);background:var(--card);white-space:nowrap;border-radius:22px;flex-grow:1;justify-content:center;align-items:center;min-height:44px;padding:0 6px;font-size:15px;display:flex}.segmented-option input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:inset 0 0 0 2px var(--card);font-weight:700}.segmented-option input:focus-visible+span{outline:3px solid var(--accent-text);outline-offset:2px}.chart-toggle .segmented-option span{min-width:64px;min-height:44px;font-size:14px}.period-stepper{justify-content:space-between;align-items:center;gap:8px;display:flex}.period-name{text-align:center;min-width:0}.period-stepper .icon-button{color:var(--ink)}.period-stepper .icon-button:disabled{color:var(--line);cursor:default}.progress-level-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.progress-xp-bar{background:var(--raised);height:8px;box-shadow:inset 0 0 0 1px var(--line);border-radius:4px;overflow:hidden}.progress-xp-bar i{background:var(--accent);border-radius:4px;height:100%;display:block}.progress-xp-earned{margin:0;font-size:14px}.progress-level-up{color:var(--accent-text);font-weight:700}.xp-bars{align-items:flex-end;gap:2px;height:40px;display:flex}.xp-bar{border-bottom:1px solid var(--line);flex:1 1 0;align-items:flex-end;height:100%;display:flex}.xp-bar i{background:var(--accent);border-radius:2px 2px 0 0;width:100%;display:block}.xp-bar.is-future{border-bottom-style:dashed}.xp-labels{color:var(--muted);gap:2px;margin-top:-6px;font-size:12px;display:flex}.xp-labels span{text-align:center;flex:1 1 0}.xp-labels.is-ends{justify-content:space-between}.xp-labels.is-ends span{flex:none}.chart-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.chart-summary{margin:0;font-size:14px}.week-bars{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;padding-top:4px;display:grid}.week-day{color:var(--muted);flex-direction:column;align-items:center;gap:4px;font-size:13px;display:flex}.week-bar{background:var(--raised);width:100%;max-width:28px;height:120px;box-shadow:inset 0 0 0 1px var(--line);border-radius:8px;align-items:flex-end;display:flex;overflow:hidden}.week-bar i{background:var(--accent);border-radius:8px;width:100%;display:block}.week-value,.week-day.is-today .week-name{color:var(--ink);font-weight:700}.week-day.is-today .week-bar i{opacity:.7}.week-day.is-before .week-bar,.week-day.is-untracked .week-bar{box-shadow:none;border:1.5px dashed var(--muted);background:0 0}.week-day.is-future .week-bar{box-shadow:inset 0 0 0 1px var(--line);background:0 0}.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px 4px;display:grid}.month-weekday{text-align:center;color:var(--muted);font-size:12px}.month-day{color:var(--ink);flex-direction:column;align-items:center;gap:2px;font-size:12px;display:flex}.month-day.is-future{color:var(--muted)}.month-day.is-today .month-number{text-underline-offset:2px;font-weight:700;text-decoration:underline}.gauge{background:var(--raised);width:24px;height:22px;box-shadow:inset 0 0 0 1px var(--muted);border-radius:5px;align-items:flex-end;display:flex;overflow:hidden}.gauge i{background:var(--accent);width:100%;display:block}.is-before .gauge,.is-untracked .gauge{box-shadow:none;border:1.5px dashed var(--muted);background:0 0}.month-day.is-future .gauge{box-shadow:inset 0 0 0 1px var(--line);background:0 0}.fill-key{color:var(--muted);flex-wrap:wrap;gap:6px 12px;font-size:13px;display:flex}.fill-key-item{align-items:center;gap:6px;display:inline-flex}.fill-key .gauge{border-radius:4px;width:16px;height:16px}.year-pixels{width:100%;height:auto;display:block}.year-month{fill:var(--muted);font-size:15px}.year-cell{fill:var(--raised);stroke:var(--muted);stroke-width:.6px}.year-fill{fill:var(--accent)}.year-day.is-before .year-cell,.year-day.is-untracked .year-cell{fill:none;stroke-dasharray:1.5 1.2}.year-day.is-future .year-cell{fill:none;stroke:var(--line)}.year-day.is-today .year-cell{stroke:var(--ink);stroke-width:1.4px}.year-months{color:var(--muted);grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin:0;padding:0;font-size:12px;list-style:none;display:grid}.year-months li{flex-direction:column;align-items:center;display:flex}.year-months strong{color:var(--ink);font-size:13px}.weeks-chart{width:100%;height:auto;display:block;overflow:visible}.weeks-grid{stroke:var(--line);stroke-width:1px}.weeks-line{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0;animation:.7s ease-out weeks-draw}@keyframes weeks-draw{0%{stroke-dashoffset:1px}}.weeks-point{fill:var(--card);stroke:var(--accent);stroke-width:2px}.weeks-bar{fill:var(--accent)}.weeks-value{fill:var(--ink);font-size:10px;font-weight:700}.weeks-value.is-quiet{fill:var(--muted);font-weight:400}.weeks-label{fill:var(--muted);font-size:10px}.breakdown{flex-direction:column;margin:0 -8px;padding:0;list-style:none;display:flex}.breakdown-row{text-align:left;background:0 0;border:none;border-radius:12px;align-items:center;gap:10px;width:100%;min-height:56px;padding:8px;display:flex}.breakdown li+li .breakdown-row{border-top:1px solid var(--line);border-radius:0}.breakdown-icon{color:var(--muted);flex-shrink:0;display:inline-flex}.breakdown-body{flex-direction:column;flex-grow:1;gap:4px;min-width:0;display:flex}.breakdown-name{overflow-wrap:anywhere;font-weight:700}.breakdown-status{color:var(--muted);font-weight:400}.breakdown-text{color:var(--muted);font-size:14px}.breakdown-chevron{color:var(--muted);flex-shrink:0}.mini-bar{background:var(--raised);height:6px;box-shadow:inset 0 0 0 1px var(--line);border-radius:3px;overflow:hidden}.mini-bar i{background:var(--accent);border-radius:3px;height:100%;display:block}.time-ring{width:100%;max-width:400px;height:auto;margin:0 auto;display:block}.time-label,.time-total{fill:var(--ink);font-size:13px;font-weight:700}.time-list{flex-direction:column;gap:6px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.time-list li{align-items:center;gap:8px;display:flex}.time-swatch{border-radius:4px;flex-shrink:0;width:14px;height:14px}.time-name{overflow-wrap:anywhere;flex-grow:1;min-width:0}.time-figures{color:var(--muted);white-space:nowrap}.placeholder-screen{max-width:520px;padding:calc(24px + env(safe-area-inset-top,0px)) 16px calc(32px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:16px;margin:0 auto;display:flex}.placeholder-title{font-family:var(--font-display);letter-spacing:-.4px;margin:0;padding:0 4px;font-size:30px;font-weight:700}.placeholder-card{flex-direction:column;gap:6px;padding:20px;display:flex}.placeholder-heading{font-family:var(--font-display);margin:0;font-size:20px}.settings-card{flex-direction:column;gap:10px;padding:20px;display:flex}.settings-card .muted{margin:0}.choice-group{border:none;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;display:flex}.choice-group+.choice-group{margin-top:10px}.choice-legend{margin:0;padding:0;font-size:16px;font-weight:700}.choice-options{gap:8px;margin-top:4px;display:grid}.choice-option{display:flex;position:relative}.choice-option input{opacity:0;margin:0;position:absolute;inset:0}.choice-option span{border:1.5px solid var(--muted);background:var(--raised);text-align:center;border-radius:14px;flex-direction:column;flex-grow:1;justify-content:center;align-items:center;gap:4px;min-height:52px;padding:8px 4px;font-size:15px;font-weight:500;display:flex}.choice-option.has-icon span{min-height:72px}.choice-option input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:inset 0 0 0 2px var(--card);font-weight:700}.choice-option input:focus-visible+span{outline:3px solid var(--accent-text);outline-offset:2px}.name-form{flex-direction:column;gap:6px;display:flex}.text-input{border:1.5px solid var(--muted);background:var(--raised);min-height:52px;color:var(--ink);border-radius:14px;width:100%;margin-top:4px;padding:0 14px;font-size:16px}.about-version{margin:0;font-weight:600}.about-version-button{min-height:44px;color:inherit;font:inherit;cursor:default;-webkit-tap-highlight-color:transparent;background:0 0;border:none;margin:-8px 0;padding:0}.about-note{background:var(--accent-tint);color:var(--ink);border-radius:14px;margin:4px 0 0;padding:12px 14px}.about-note p{margin:0}.about-sign-off{font-style:italic;margin-top:6px!important}.about-release-title{margin:6px 0 2px;font-size:15px}.about-changes{flex-direction:column;gap:2px;margin:0;padding-left:20px;display:flex}.archived-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.archived-item{border-top:1px solid var(--line);align-items:center;gap:10px;padding:2px 0;display:flex}.archived-item:first-child{border-top:none}.archived-name{flex-grow:1;min-width:0;font-weight:500}.bring-back{border:1.5px solid var(--accent-text);background:var(--card);min-height:44px;color:var(--accent-text);border-radius:12px;flex-shrink:0;padding:0 14px;font-size:14px;font-weight:700}.button-outline{border:1.5px solid var(--accent-text);background:var(--card);width:100%;min-height:52px;color:var(--accent-text);border-radius:26px;padding:0 20px;font-size:16px;font-weight:700}.settings-card .button-primary:disabled{opacity:.7}.backup-status{margin:0;font-weight:600}.backup-persisted{align-items:flex-start;gap:8px;display:flex}.backup-persisted svg{flex-shrink:0}.backup-message{margin:0;font-weight:500}.backup-message:empty{display:none}.undo-restore{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding-top:10px;display:flex}.backup-summary{flex-direction:column;gap:4px;margin:0;padding-left:20px;display:flex}.backup-actions{flex-direction:column;gap:4px;display:flex}.undo-toast{left:50%;bottom:calc(var(--bottom-nav-height,64px) + 12px + env(safe-area-inset-bottom,0px));background:var(--ink);width:min(488px,100% - 32px);color:var(--ground);z-index:5;border-radius:16px;align-items:center;gap:12px;padding:4px 4px 4px 16px;animation:.16s ease-out toast-in;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 24px #0003}.undo-message{overflow-wrap:anywhere;flex-grow:1;font-size:15px;font-weight:500}.undo-button{min-width:64px;min-height:44px;color:var(--ground);text-underline-offset:3px;background:0 0;border:none;border-radius:12px;font-weight:700;text-decoration:underline}.undo-toast :focus-visible{outline-color:var(--ground)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}}.season-motif{color:var(--decorative);fill:currentColor;flex-shrink:0}.bottom-nav{z-index:5;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);position:fixed;bottom:0;left:0;right:0}.bottom-nav-list{grid-template-columns:repeat(4,1fr);max-width:520px;margin:0 auto;padding:0 4px;list-style:none;display:grid}.bottom-nav-item{width:100%;min-height:var(--bottom-nav-height);color:var(--muted);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 0;display:flex}.bottom-nav-icon{border-radius:15px;justify-content:center;align-items:center;width:56px;height:30px;display:inline-flex;position:relative}.bottom-nav-label{font-size:12px;font-weight:500}.bottom-nav-item[aria-current=page]{color:var(--ink)}.bottom-nav-item[aria-current=page] .bottom-nav-icon{background:var(--accent-tint)}.bottom-nav-item[aria-current=page] .bottom-nav-label{font-weight:700}.bottom-nav-dot{background:var(--accent);width:10px;height:10px;box-shadow:0 0 0 2px var(--card);border-radius:50%;position:absolute;top:2px;right:12px}:root{--bottom-nav-height:64px}.app-shell{padding-bottom:var(--bottom-nav-height)}:root{--font-body:"DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Bricolage Grotesque", "DM Sans", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--ground);color:var(--ink);font-family:var(--font-body);-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;line-height:1.4}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--accent-text);outline-offset:2px}.muted{color:var(--muted);margin:0;font-size:14px}.small{color:var(--muted);margin:0;font-size:13px}.card{background:var(--card);border-radius:20px;padding:14px 16px}.button-primary{background:var(--ink);min-height:52px;color:var(--card);border:none;border-radius:26px;width:100%;padding:0 20px;font-size:16px;font-weight:700}.button-plain{min-height:44px;color:var(--accent-text);background:0 0;border:none;width:100%;font-size:15px;font-weight:700}.icon-button{width:44px;height:44px;color:var(--muted);background:0 0;border:none;border-radius:22px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.attention-icon{flex-shrink:0}
