:root{color:#2c2a25;font-synthesis:none;text-rendering:optimizelegibility;--bg:#f7f3ea;--text:#2c2a25;--muted:#756f65;--primary:#f5c96a;--primary-deep:#e9ad25;--primary-soft:#fff6de;--pause:#82909d;--pause-dark:#5f7f99;--warning:#ff8a3d;--success:#4caf7b;--danger:#b64b43;--surface:#fffcf6;--border:#e8e0d3;--shadow:0 12px 36px #42392714;background:#f7f3ea;font-family:Inter,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100dvh;overflow-x:hidden}button,a,input,textarea,select{font:inherit}button,a{color:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted,.quiet-copy{color:var(--muted)}h1,h2,h3,p{overflow-wrap:anywhere}h1{letter-spacing:.03em;margin:0;font-size:clamp(1.7rem,6vw,2.25rem);font-weight:720}h2{margin:0;font-size:1.25rem}h3{margin:0;font-size:1rem}.eyebrow{color:#81796d;letter-spacing:.12em;text-transform:uppercase;margin:0 0 7px;font-size:.72rem;font-weight:700}.lead{color:var(--muted);line-height:1.7}.button{cursor:pointer;border:0;border-radius:14px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:11px 20px;font-weight:700;text-decoration:none;transition:transform .18s,background .18s,box-shadow .18s;display:inline-flex}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{opacity:.55;cursor:not-allowed}.button--primary{background:linear-gradient(135deg, #f8cf72, var(--primary));box-shadow:0 8px 20px #f5c96a52}.button--primary:hover:not(:disabled){background:#f2c255}.button--secondary{background:#fffdf9;border:1px solid #dacdb9}.button--pause{color:#fff;background:linear-gradient(135deg,#718fa8,#5d7e99);box-shadow:0 8px 20px #506f8740}.button--danger{background:var(--danger);color:#fff}.button--text{color:#675f54;background:0 0}.button--text-danger{min-height:44px;color:var(--danger);background:0 0;border:0;font-weight:700}.button--full{width:100%;margin-top:18px}.button--wide{width:min(100%,280px);margin-top:18px}.button--compact{min-height:44px;padding:8px 14px}.button:focus-visible,.nav-item:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #6687a2}.welcome-shell,.form-page,.fatal-page{min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:radial-gradient(circle at 50% 30%,#fffaf0 0,#0000 45%);grid-template-columns:minmax(0,1fr);place-items:center;display:grid}.welcome-card,.form-card{border:1px solid var(--border);width:min(100%,510px);min-width:0;box-shadow:var(--shadow);text-align:center;background:#fffcf6f0;border-radius:22px;padding:32px 24px}.welcome-logo{width:min(52vw,188px);height:auto;margin:0 auto 14px;display:block}.tagline{margin:8px 0 0;font-size:1.14rem;font-weight:700}.welcome-copy{color:#625e56;max-width:28rem;margin:18px auto 0;font-size:.9rem;line-height:1.75}.welcome-actions{gap:10px;display:grid}.identity-note,.identity-explainer{color:#7a746b;margin:14px 0 0;font-size:.76rem;line-height:1.65}.back-link{width:max-content;min-height:44px;color:var(--muted);align-items:center;gap:4px;margin-bottom:28px;font-weight:650;text-decoration:none;display:flex}.form-card{text-align:left}.form-card>h1,.form-card>.eyebrow,.form-card>.lead{text-align:center}.form-card form{margin-top:28px}.field{gap:8px;margin:0 0 18px;font-size:.86rem;font-weight:650;display:grid}.field input,.field select,.field textarea{width:100%;min-height:48px;color:var(--text);resize:vertical;background:#fffefa;border:1px solid #dcd2c4;border-radius:12px;padding:12px 14px}.field input[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);font-size:.76rem;font-weight:600}.field-hint{color:var(--muted);justify-self:end;font-size:.72rem}.field-hint--warning{color:var(--warning)}.form-grid{grid-template-columns:1fr;gap:0;display:grid}.consent{color:#615c53;align-items:flex-start;gap:10px;font-size:.78rem;line-height:1.6;display:flex}.consent input{width:18px;height:18px;accent-color:var(--primary-deep);margin-top:2px}.invite-meta{color:var(--muted);background:#faf5eb;border-radius:12px;flex-wrap:wrap;justify-content:center;gap:8px 20px;margin:22px 0;padding:14px;font-size:.8rem;display:flex}.invite-meta span{align-items:center;gap:6px;display:flex}.invite-meta svg{width:17px}.captcha-field{width:100%;min-width:0;margin:12px 0}.app-layout{min-height:100dvh}.app-content{min-height:100vh;padding-bottom:calc(140px + env(safe-area-inset-bottom))}.side-nav{display:none}.bottom-nav{z-index:30;height:calc(70px + env(safe-area-inset-bottom));padding:4px max(10px, env(safe-area-inset-right)) env(safe-area-inset-bottom) max(10px, env(safe-area-inset-left));border-top:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffcf6f0;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.nav-item{color:#77756f;border-radius:11px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:.7rem;text-decoration:none;display:flex;position:relative}.nav-notification-dot{border:1px solid var(--surface);background:#df3d3d;border-radius:50%;width:7px;height:7px;position:absolute;top:7px;left:calc(50% + 8px);box-shadow:0 0 0 1px #df3d3d2e}.nav-item svg{width:21px}.nav-item--active{color:#d99e18;font-weight:750}.page{width:min(100%,960px);margin:auto;padding:24px 16px 40px}.page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.page-header h1{font-size:1.65rem}.icon-button{background:0 0;border:0;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.section{margin-top:30px}.section-heading{justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;display:flex}.section-heading>span{color:var(--muted);font-size:.76rem}.summary-card{border:1px solid var(--border);background:var(--surface);border-radius:14px;grid-template-columns:repeat(3,1fr);gap:1px;padding:15px 4px 18px;display:grid;position:relative;overflow:hidden;box-shadow:0 4px 14px #4239270d}.summary-card-wrap{gap:6px;display:grid}.summary-card__edit{color:var(--primary-deep);text-underline-offset:3px;background:0 0;border:0;justify-self:end;font-size:.76rem;text-decoration:underline}.goal-scope-picker{border:0;gap:8px;margin:14px 0;padding:0;display:grid}.goal-scope-picker label{align-items:center;gap:8px;display:flex}.summary-card>div{text-align:center;border-right:1px solid var(--border);gap:4px;padding:0 8px;display:grid}.summary-card>div:last-of-type{border:0}.summary-card small{color:var(--muted);font-size:.68rem}.summary-card strong{font-size:.84rem}.summary-card__progress{width:var(--progress);background:var(--primary-deep);height:3px;position:absolute;bottom:0;left:0}.summary-card--complete .summary-card__progress{background:var(--success)}.focus-panel{text-align:center;background:#fffcf6d1;border-radius:24px;margin-top:18px;padding:24px 18px}.focus-panel h2{margin-top:6px;font-size:clamp(1.35rem,6vw,1.75rem)}.focus-panel p{color:var(--muted);margin:8px 0}.focus-panel--active{background:radial-gradient(at 50% 35%,#fff3c9 0,#fffcf6 60%);box-shadow:0 12px 34px #f5c96a1f}.focus-panel--paused{background:0 0;padding:0}.focus-reminder{background:#fff9df;border:1px solid #eadcae;border-radius:14px;justify-content:space-between;align-items:center;gap:14px;margin-top:12px;padding:12px 14px;display:flex}.focus-reminder div{min-width:0}.focus-reminder strong,.focus-reminder p{margin:0;display:block}.focus-reminder strong{color:#66511d;font-size:.82rem}.focus-reminder p{color:var(--muted);margin-top:3px;font-size:.72rem;line-height:1.45}.focus-reminder .button{color:#775d1c;flex:none;min-height:34px;padding:5px 9px;font-size:.72rem}.pause-stage{color:#fff;background:linear-gradient(145deg,#96a9b8,#8299ab);border-radius:20px;padding:24px 16px}.pause-stage p,.pause-stage .eyebrow{color:#ffffffd4}.pause-stage hr{border:0;border-top:1px solid #ffffff6b;width:70%}.timer{font-variant-numeric:tabular-nums;letter-spacing:.02em;margin:12px 0 14px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:clamp(2.3rem,12vw,4rem);font-weight:500;display:block}.countdown{font-variant-numeric:tabular-nums}.countdown--warning{font-weight:750;color:#fff0d8!important}.limit-note{font-size:.78rem;color:var(--warning)!important}.task-edit-button{min-height:36px;margin:0 auto 4px;padding:6px 12px;font-size:.78rem}.task-history{width:min(100%,430px);margin:8px auto 4px}.task-history__toggle{color:#775d1c;min-height:34px;font:inherit;background:#fff8dc;border:1px solid #e3c779;border-radius:999px;padding:5px 10px;font-size:.72rem;font-weight:700}.task-history__list{text-align:left;gap:7px;margin:9px 0 0;padding:0;list-style:none;display:grid}.task-history__list li{background:#fff9df;border:1px solid #eadcae;border-radius:8px;padding:10px 12px;position:relative;box-shadow:2px 3px #745d2714}.task-history__list span,.task-history__list small{display:block}.task-history__list span{color:#575047;font-size:.82rem;text-decoration:line-through;text-decoration-thickness:1px}.task-history__list small{color:var(--muted);margin-top:4px;font-size:.66rem}.pause-stage .task-history__toggle{color:#fff;background:#ffffff29;border-color:#ffffff80}.pause-stage .task-history__list li{background:#fffffff0;border-color:#ffffff47}.result-card{border:1px solid var(--border);background:var(--surface);text-align:center;border-radius:22px;margin-top:18px;padding:34px 20px}.result-card__icon{width:52px;height:52px;color:var(--success);background:#e9f6ee;border-radius:50%;place-items:center;margin:auto auto 14px;display:grid}.result-card p{color:var(--muted);line-height:1.6}.result-card>strong{margin:12px;font-size:1.65rem;display:block}.result-card>.button{margin-inline:4px}.member-list{gap:10px;display:grid}.member-card{border:1px solid var(--border);background:var(--surface);border-radius:15px;align-items:center;gap:14px;padding:13px 15px;display:flex;box-shadow:0 4px 12px #4239270d}.member-card>div:nth-child(2){flex:1;min-width:0}.member-card h3,.member-card p{margin:0}.member-card p{color:#514d47;margin-top:4px;font-size:.85rem}.member-card small{color:var(--muted);margin-top:5px;display:block}.member-card .task-history{margin:7px 0 0}.member-card .task-history__toggle{min-height:30px;padding-block:3px;font-size:.66rem}.member-card__uncertain{color:var(--warning);margin-top:5px;font-size:.68rem;display:block}.status-dot{background:var(--success);border-radius:50%;width:12px;height:12px;box-shadow:0 0 0 4px #4caf7b1f}.goal-summary{background:var(--primary-soft);color:inherit;border-radius:15px;justify-content:space-between;align-items:center;margin-top:22px;padding:18px;text-decoration:none;display:flex}.goal-summary--empty{border:1px dashed #d8bc74}.goal-summary h2{font-size:1rem}.goal-summary strong{font-size:1.35rem}.lamp{object-fit:contain;width:190px;height:170px;margin:0 auto 12px;display:block}.focus-panel__lamp-zone{isolation:isolate;width:min(100%,430px);min-height:182px;margin:0 auto;position:relative}.focus-panel__lamp-zone>.lamp{margin-bottom:0}.focus-panel__task-zone{z-index:1;position:relative}.deadline-curtain{--curtain-travel:158px;z-index:3;color:#554936;height:174px;position:absolute;inset:2px 7.5% auto}.deadline-curtain__roller{z-index:3;filter:drop-shadow(0 1px 1px #42392717);align-items:center;height:15px;display:flex;position:relative}.deadline-curtain__roller-bar{background:linear-gradient(#e7ddca,#cfc1a8);border:1px solid #d2c7b4;border-radius:999px;flex:1;height:9px;box-shadow:inset 0 1px #ffffff94}.deadline-curtain__roller-cap{z-index:1;background:#ddd3c1;border:1px solid #d0c5b2;border-radius:3px;width:6px;height:11px;position:relative}.deadline-curtain__roller-cap:first-child{margin-right:-2px}.deadline-curtain__roller-cap:last-child{margin-left:-2px}.deadline-curtain__cord{z-index:5;color:#9a8d79;cursor:pointer;touch-action:manipulation;background:0 0;border:0;width:28px;height:55px;padding:0;position:absolute;top:7px;right:-12px}.deadline-curtain__cord-line{background:#a99d89;width:1px;height:43px;position:absolute;top:0;left:13px}.deadline-curtain__cord-ring{background:#fffcf6c7;border:1px solid;border-radius:50%;width:13px;height:13px;transition:transform .18s;position:absolute;top:41px;left:6.5px;box-shadow:0 1px 2px #4239271a}.deadline-curtain__cord:hover .deadline-curtain__cord-ring,.deadline-curtain__cord:focus-visible .deadline-curtain__cord-ring{transform:translateY(1px)}.deadline-curtain__cord:focus-visible{outline:none}.deadline-curtain__cord:focus-visible .deadline-curtain__cord-ring{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--primary-deep)}.deadline-curtain__sheet{z-index:2;height:var(--curtain-travel);clip-path:inset(0 0 100% round 0 0 7px 7px);pointer-events:none;transition:clip-path .36s cubic-bezier(.22,.72,.28,1);position:absolute;top:11px;left:5px;right:5px;overflow:hidden}.deadline-curtain.is-open .deadline-curtain__sheet{clip-path:inset(0 round 0 0 7px 7px);pointer-events:auto}.deadline-curtain__fabric{background:linear-gradient(90deg,#756c5d06,#0000 8% 92%,#756c5d06),repeating-linear-gradient(90deg,#0000 0 18%,#6b635606 23%,#0000 29%),linear-gradient(#fffdf8,#faf6ed);border-inline:1px solid #b7ae9f47;place-items:center;padding:24px 25px 18px;display:grid;position:absolute;inset:0 3px 7px;box-shadow:inset 0 1px #ffffffb3,0 4px 10px #4239270f}.deadline-curtain__fabric:after{content:"";pointer-events:none;background:linear-gradient(90deg,#756c5d06,#0000 8% 92%,#756c5d06);position:absolute;inset:0}.deadline-curtain__bottom-rail{height:9px;transform:translateY(calc(-1 * var(--curtain-travel) + 14px));background:#d8cbb5;border:1px solid #cbbda4;border-radius:999px;transition:transform .36s cubic-bezier(.22,.72,.28,1);position:absolute;bottom:0;left:0;right:0;box-shadow:0 1px 2px #4239271a}.deadline-curtain.is-open .deadline-curtain__bottom-rail{transform:translateY(0)}.deadline-curtain__content,.deadline-curtain__state{z-index:1;justify-items:center;gap:6px;width:100%;display:grid;position:relative}.deadline-curtain__eyebrow{color:var(--muted);letter-spacing:.18em;font-size:.62rem;font-weight:750}.deadline-curtain__deadline{width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;justify-items:center;gap:3px;padding:0;display:grid}.deadline-curtain__title{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:100%;font-family:inherit;font-size:.93rem;line-height:1.25;display:-webkit-box;overflow:hidden}.deadline-curtain__count{color:var(--text);letter-spacing:-.035em;font-family:inherit;font-size:clamp(1.8rem,8vw,2.55rem);font-weight:650;line-height:1}.deadline-curtain__date{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.67rem}.deadline-curtain__state strong{font-family:inherit;font-size:.96rem;font-weight:500}.deadline-curtain__primary,.deadline-curtain__text-button{border:1px solid var(--border);color:#665c4e;min-height:31px;font:inherit;cursor:pointer;background:#fffcf6b8;border-radius:999px;padding:5px 13px;font-size:.7rem;font-weight:700}.deadline-curtain__text-button{text-underline-offset:3px;background:0 0;border-color:#0000;text-decoration:underline}.deadline-curtain__loading{color:var(--muted);font-size:.73rem}.focus-panel--paused .deadline-curtain__cord-ring{background:#8b9daae0}.deadline-editor{width:min(86vw,390px)}.deadline-editor__header{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px;display:flex}.deadline-editor__eyebrow{color:var(--muted);letter-spacing:.14em;margin-bottom:5px;font-size:.66rem;font-weight:750;display:block}.deadline-editor__header h2{margin:0;font-family:inherit;font-size:1.25rem;font-weight:600}.deadline-editor__close{color:#6e6253;cursor:pointer;background:#f5efe4;border:0;border-radius:50%;width:34px;height:34px;font-size:1.1rem}.deadline-editor__field{color:#675d50;gap:7px;margin-top:15px;font-size:.76rem;font-weight:700;display:grid;position:relative}.deadline-editor__field input{width:100%;min-height:46px;color:var(--text);font:inherit;background:#fffdfa;border:1px solid #ddd2c2;border-radius:12px;padding:10px 13px;font-size:.9rem;font-weight:500}.deadline-editor__field input:focus{border-color:#c99b42;outline:3px solid #e9ad2526}.deadline-editor__counter{color:#9a9184;font-size:.64rem;font-weight:500;position:absolute;top:41px;right:11px}.deadline-editor__field:first-of-type input{padding-right:54px}.deadline-editor__date-input--empty{color:#0000}.deadline-editor__date-input--empty::-webkit-datetime-edit{color:#0000}.deadline-editor__date-placeholder{color:var(--text);pointer-events:none;font-size:.9rem;font-weight:500;line-height:1;position:absolute;bottom:15px;left:14px}.deadline-editor__error{color:#a3473f;margin:0;font-size:.7rem;font-weight:500}.deadline-editor__hint{color:var(--muted);margin:16px 0 0;font-size:.68rem;line-height:1.55}.deadline-editor__actions{justify-content:flex-end;gap:9px;margin-top:20px;display:flex}.deadline-editor__actions button{border:1px solid var(--border);min-height:40px;font:inherit;cursor:pointer;border-radius:999px;padding:8px 16px;font-size:.78rem;font-weight:700}.deadline-editor__actions .secondary{color:var(--muted);background:0 0}.deadline-editor__actions .primary{color:#574217;background:linear-gradient(#f8d985,#efbe56);border-color:#dfae4e;box-shadow:0 5px 12px #b47d182e}.deadline-editor__actions button:disabled{cursor:not-allowed;opacity:.52}.lamp--compact{flex:0 0 78px;width:78px;height:68px;margin:0}.connection-banner,.inline-notice{color:#4f687b;background:#edf1f4;border-radius:11px;align-items:center;gap:8px;margin:12px 0;padding:11px 13px;font-size:.78rem;display:flex}.connection-banner svg,.inline-notice svg{flex:none;width:18px}.connection-banner--offline,.inline-notice--warning{color:#9a552c;background:#fff0e4}.inline-notice--error{color:#95413c;background:#fae9e7}.inline-notice--success{color:#337756;background:#e9f6ee}.inline-notice button{background:0 0;border:0;min-width:44px;min-height:44px;margin-left:auto;font-size:1.2rem}.empty-state{text-align:center;color:var(--muted);border:1px dashed #ded4c6;border-radius:15px;padding:26px 18px}.empty-state__icon,.state-card__icon{color:#9b8a6b;background:#f5efe4;border-radius:50%;place-items:center;width:44px;height:44px;margin:0 auto 11px;display:grid}.empty-state h3{color:var(--text)}.empty-state p{margin:8px 0;font-size:.84rem;line-height:1.6}.state-card{border:1px solid var(--border);background:var(--surface);text-align:center;border-radius:18px;width:min(100%,520px);margin:40px auto;padding:30px 20px}.state-card p{color:var(--muted);line-height:1.6}.skeleton-stack{gap:14px;padding:12px;display:grid}.skeleton{background:linear-gradient(100deg,#ece5d9 20%,#f7f2e9 45%,#ece5d9 70%) 0 0/300% 100%;border-radius:12px;animation:1.4s infinite shimmer}.skeleton--title{width:45%;height:34px}.skeleton--hero{height:230px}.skeleton--row{height:74px}@keyframes shimmer{to{background-position:-100% 0}}.modal-backdrop{z-index:50;padding:20px 16px max(16px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#2c2a2557;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--surface);border-radius:24px 24px 16px 16px;width:min(100%,560px);max-height:min(88vh,720px);padding:13px 22px 26px;overflow:auto;box-shadow:0 -10px 40px #19140f2e}.drawer__handle{background:#d7d0c5;border-radius:3px;width:42px;height:4px;margin:0 auto 20px;display:block}.drawer>p{color:var(--muted);line-height:1.6}.category-picker{border:0;margin:0 0 18px;padding:0}.category-picker legend{margin-bottom:9px;font-size:.86rem;font-weight:650}.category-picker>label{display:inline-flex}.category-picker input{opacity:0;position:absolute}.category-picker span{border:1px solid var(--border);border-radius:20px;align-items:center;min-height:44px;margin:0 6px 8px 0;padding:8px 12px;font-size:.8rem;display:inline-flex}.category-picker input:checked+span{background:var(--primary-soft);border-color:#dbad3e;font-weight:700}.dialog{background:var(--surface);width:min(100%,430px);box-shadow:var(--shadow);border-radius:20px;margin:auto;padding:26px}.dialog p{color:var(--muted);line-height:1.6}.dialog__actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:22px;display:grid}.transfer-code{overflow-wrap:anywhere;border:1px solid var(--border);background:var(--background);letter-spacing:.04em;text-align:center;border-radius:12px;margin:18px 0 8px;padding:14px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1rem;font-weight:700;display:block}.recovery-code-list{grid-template-columns:1fr 1fr;gap:8px 24px;padding-left:24px;display:grid}.recovery-code-list code{-webkit-user-select:all;user-select:all;font-size:.82rem}@media (width<=520px){.recovery-code-list{grid-template-columns:1fr}}.segmented{background:#ece6db;border-radius:13px;grid-template-columns:repeat(2,1fr);gap:4px;padding:4px;display:grid}.segmented--small{grid-template-columns:repeat(3,1fr);width:min(100%,360px);margin:12px auto 22px}.segmented button{min-height:44px;color:var(--muted);background:0 0;border:0;border-radius:10px}.segmented button.active{background:var(--surface);color:var(--text);font-weight:700;box-shadow:0 2px 8px #372d1e14}.metric-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.metric-grid article{border:1px solid var(--border);background:var(--surface);border-radius:15px;padding:18px}.metric-grid article:first-child{grid-column:1/-1}.metric-grid small{color:var(--muted);display:block}.metric-grid strong{margin-top:6px;font-size:1.45rem;display:block}.chart-card,.settings-card{border:1px solid var(--border);background:var(--surface);border-radius:16px;margin-top:18px;padding:18px}.bar-chart{justify-content:space-around;align-items:end;gap:7px;height:180px;padding-top:18px;display:flex}.bar-chart__item{text-align:center;flex:1;grid-template-rows:1fr auto;gap:7px;height:100%;display:grid}.bar-chart__track{background:#f6f0e7;border-radius:7px;justify-content:center;align-items:end;height:100%;display:flex}.bar-chart__track svg{width:min(72%,30px);height:100%;min-height:3px;color:var(--primary);overflow:visible}.bar-chart__track svg.complete{color:var(--success)}.bar-chart__track rect{fill:currentColor;rx:3px}.timezone-note{color:var(--muted);font-size:.72rem;line-height:1.5}.chart-heading{align-items:flex-start;gap:16px}.member-legend{max-width:72%;color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:5px 11px;font-size:.7rem;display:flex}.member-legend span{align-items:center;gap:5px;display:inline-flex}.member-legend i{border-radius:3px;width:9px;height:9px}.member-legend button{color:var(--primary);font:inherit;background:0 0;border:0;padding:0}.focus-clock{width:min(100%,350px);margin:-4px auto -10px}.focus-clock__axis-label{fill:var(--muted);font-size:12px}.focus-clock__bar{stroke:var(--primary);stroke-width:8px;stroke-linecap:round;cursor:pointer;transition:opacity .16s,stroke-width .16s}.focus-clock__bar:hover,.focus-clock__bar:focus{opacity:.72;stroke-width:11px;outline:none}.focus-clock__center{fill:#fbf7ef;stroke:var(--border)}.focus-clock__center-label{fill:var(--muted);font-size:12px}.focus-clock__center-value{fill:var(--text);font-size:18px;font-weight:700}.week-chart{justify-content:space-around;align-items:stretch;gap:9px;height:210px;padding-top:16px;display:flex}.week-chart__day{text-align:center;flex:1;grid-template-rows:1fr auto;gap:8px;min-width:0;display:grid}.week-chart__track{background:#f6f0e7;border-radius:8px;flex-direction:column-reverse;justify-content:flex-start;min-height:0;display:flex;overflow:visible}.week-chart__segment{cursor:pointer;min-height:2px;display:block;position:relative}.week-chart__segment:first-child{border-radius:0 0 8px 8px}.week-chart__segment:last-child{border-radius:8px 8px 0 0}.week-chart__segment:only-child{border-radius:8px}.week-chart__segment:hover,.week-chart__segment:focus{filter:brightness(.95);z-index:2;outline:2px solid #5743232e}.chart-tooltip{z-index:5;border:1px solid var(--border);background:var(--surface);width:max-content;max-width:190px;color:var(--text);pointer-events:none;opacity:0;border-radius:9px;padding:7px 9px;font-size:.72rem;line-height:1.35;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px);box-shadow:0 8px 24px #372d1e1f}:hover>.chart-tooltip,:focus>.chart-tooltip{opacity:1;transform:translate(-50%)}.chart-tooltip--start{left:0;transform:translateY(4px)}:hover>.chart-tooltip--start,:focus>.chart-tooltip--start{transform:translate(0)}.chart-tooltip--end{left:auto;right:0;transform:translateY(4px)}:hover>.chart-tooltip--end,:focus>.chart-tooltip--end{transform:translate(0)}.month-heading-label{color:var(--muted);white-space:nowrap;background:#f1ece3;border-radius:999px;padding:4px 11px;font-size:.76rem}.month-heatmap-wrap{grid-template-columns:18px minmax(0,1fr);gap:8px;width:100%;margin-top:16px;display:grid;overflow:visible}.month-heatmap__weekdays,.month-heatmap{grid-template-rows:repeat(7,20px);gap:6px;display:grid}.month-heatmap{grid-template-columns:repeat(var(--month-week-count), minmax(28px, 1fr))}.month-heatmap__weekdays{color:var(--muted);text-align:center;font-size:.65rem}.month-heatmap__weekdays span{place-items:center;display:grid}.month-heatmap__cell{cursor:pointer;border:1px solid #ffffff75;border-radius:7px;min-width:0;transition:transform .12s;position:relative}.month-heatmap__cell:hover,.month-heatmap__cell:focus{z-index:2;outline:2px solid #57432329;transform:translateY(-2px)}.month-heatmap__cell--future{opacity:.52}@media (width<=520px){.chart-heading{display:block}.member-legend{justify-content:flex-start;max-width:none;margin-top:9px}.week-chart{gap:5px}.month-heatmap-wrap{grid-template-columns:14px minmax(0,1fr);gap:5px}.month-heatmap__weekdays,.month-heatmap{grid-template-rows:repeat(7,18px);gap:4px}.month-heatmap__cell{border-radius:5px}}.history-list{border:1px solid var(--border);border-radius:15px;overflow:hidden}.stats-export-trigger{min-height:0;color:var(--muted);padding:4px 0;font-weight:400}.stats-export-trigger:hover,.stats-export-trigger:focus-visible{color:var(--accent-strong)}.stats-export-period-tabs{background:#f0ece4;border:1px solid #e6ded1;border-radius:16px;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin:14px 0 28px;padding:5px}.stats-export-period-tabs button{min-height:52px;font-size:1rem}.stats-export-picker-group{margin-top:2px}.stats-export-picker-label{color:var(--text);margin-bottom:9px;font-size:.86rem;font-weight:700;display:block}.stats-export-picker{width:100%;min-height:64px;color:var(--text);text-align:left;cursor:pointer;background:#f5f1ea;border:1px solid #ded5c7;border-radius:16px;justify-content:space-between;align-items:center;gap:16px;padding:0 16px 0 18px;transition:border-color .14s,background .14s,box-shadow .14s;display:flex;overflow:hidden}.stats-export-picker:hover{background:#f2ede5;border-color:#cfc2af}.stats-export-picker:focus-visible{border-color:#c6a65b;outline:0;box-shadow:0 0 0 3px #c6a65b24}.stats-export-picker__date{letter-spacing:.01em;font-size:1rem;font-weight:720}.stats-export-picker__icon{color:#8d8171;background:#e8e1d6;border-radius:11px;flex:none;place-items:center;width:36px;height:36px;display:grid}.stats-export-picker__input{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed;top:0;left:0}.stats-export-note{margin:22px 0 0;font-size:.82rem}.stats-export-actions{grid-template-columns:minmax(90px,.38fr) minmax(180px,1fr);gap:10px;margin-top:20px;display:grid}.stats-export-actions .button{width:100%}@media (width<=390px){.stats-export-actions{grid-template-columns:1fr}.stats-export-actions .button--primary{grid-row:1}}.history-row{border:0;border-bottom:1px solid var(--border);background:var(--surface);text-align:left;grid-template-columns:70px 1fr auto;align-items:center;gap:10px;width:100%;min-height:74px;padding:12px;display:grid}.history-row:last-child{border:0}.history-row__date{color:var(--muted);font-size:.7rem}.history-row__main{min-width:0}.history-row__main strong,.history-row__main small{display:block}.history-row__main strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.history-row__main small{color:var(--muted);margin-top:5px}.detail-list{margin:20px 0}.detail-list>div{border-bottom:1px solid var(--border);justify-content:space-between;gap:20px;padding:12px 0;display:flex}.detail-list dt{color:var(--muted)}.detail-list dd{text-align:right;margin:0}.goal-card,.proposal-card{border:1px solid var(--border);background:var(--surface);border-radius:16px;margin-bottom:12px;padding:18px}.goal-card__top{color:var(--muted);justify-content:space-between;align-items:center;font-size:.76rem;display:flex}.pill{background:var(--primary-soft);color:#795b18;border-radius:20px;padding:5px 9px}.goal-card h3,.proposal-card h3{margin-top:13px}.goal-card p,.proposal-card p{color:var(--muted)}.goal-card>small,.proposal-card>small{color:var(--muted);margin-top:12px;display:block}.progress-track{appearance:none;background:#ede8df;border:0;border-radius:6px;width:100%;height:8px;display:block;overflow:hidden}.progress-track::-webkit-progress-bar{background:#ede8df}.progress-track::-webkit-progress-value{background:var(--primary-deep);border-radius:6px}.progress-track::-moz-progress-bar{background:var(--primary-deep);border-radius:6px}.goal-members{margin-top:14px}.goal-members>div{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:8px 0;font-size:.8rem;display:flex}.goal-members svg{width:16px;color:var(--success);vertical-align:middle}.proposal-card__actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;display:grid}.vote-status{color:var(--success);align-items:center;gap:5px;margin-top:12px;font-size:.8rem;display:flex}.vote-status--rejected{color:var(--danger)}.achievement-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.achievement-card{--achievement-color:#b77942;--achievement-soft:#f2dfcf;border:2px solid var(--achievement-color);background:var(--surface);box-shadow:0 0 0 1px color-mix(in srgb, var(--achievement-color) 18%, transparent), 0 0 12px color-mix(in srgb, var(--achievement-color) 18%, transparent);border-radius:14px;padding:16px;animation:3.6s ease-in-out infinite achievement-breathe;position:relative}.achievement-card.achievement-card--bronze{--achievement-color:#86502c;--achievement-soft:#f2dfcf}.achievement-card.achievement-card--silver{--achievement-color:#56616d;--achievement-soft:#e5e9ee}.achievement-card.achievement-card--gold{--achievement-color:#966d0a;--achievement-soft:#fff4cc}.achievement-card.achievement-card--diamond{--achievement-color:#5d9fca;--achievement-soft:linear-gradient(135deg, #fff 0%, #e7f8ff 36%, #cbeeff 68%, #fff 100%)}.achievement-card>span{background:var(--achievement-soft);width:58px;height:58px;color:var(--achievement-color);border-radius:50%;place-items:center;display:grid}.achievement-card__icon>svg{width:36px;height:36px}.achievement-card__icon--bronze,.achievement-card__icon--silver,.achievement-card__icon--gold{background:var(--achievement-soft)!important;color:var(--achievement-color)!important}.achievement-card__icon--diamond{box-shadow:inset 0 0 0 1px #5d9fca33,0 0 12px #93dbff52;color:var(--achievement-color)!important;background:linear-gradient(135deg,#fff 0%,#e7f8ff 36%,#cbeeff 68%,#fff 100%)!important}.achievement-card__series{color:var(--achievement-color);letter-spacing:.04em;margin-top:3px;font-size:.62rem;display:block}.achievement-card__earned-stages{color:var(--muted);margin-top:4px;font-size:.7rem;line-height:1.35;display:block}.achievement-grid h3{margin-top:10px}.achievement-grid p{color:var(--muted);margin:6px 0 0;font-size:.7rem}.achievement-tabs{background:var(--primary-soft);border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:12px;padding:4px;display:grid}.achievement-tabs button{min-height:40px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:9px}.achievement-tabs button.is-active{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #141e281a}.achievement-condition,.achievement-tooltip-trigger{min-height:32px;color:var(--achievement-color);font:inherit;cursor:help;background:0 0;border:0;margin-top:9px;padding:0;font-size:.74rem;display:block;position:relative}.achievement-tooltip-trigger{align-items:center;gap:5px;display:flex}.achievement-condition>span[role=tooltip],.achievement-tooltip-trigger>span[role=tooltip]{z-index:5;border:1px solid var(--achievement-color);background:var(--surface);width:max-content;max-width:min(280px,72vw);color:var(--text);text-align:left;white-space:pre-line;border-radius:8px;padding:8px 10px;line-height:1.5;display:none;position:absolute;bottom:calc(100% + 6px);left:0;box-shadow:0 6px 18px #141e2824}.achievement-condition:hover>span[role=tooltip],.achievement-condition:focus-visible>span[role=tooltip],.achievement-condition:focus>span[role=tooltip],.achievement-tooltip-trigger:hover>span[role=tooltip],.achievement-tooltip-trigger:focus-visible>span[role=tooltip],.achievement-tooltip-trigger:focus>span[role=tooltip]{display:block}@keyframes achievement-breathe{0%,to{box-shadow:0 0 0 1px color-mix(in srgb, var(--achievement-color) 14%, transparent), 0 0 8px color-mix(in srgb, var(--achievement-color) 14%, transparent)}50%{box-shadow:0 0 0 2px color-mix(in srgb, var(--achievement-color) 24%, transparent), 0 0 18px color-mix(in srgb, var(--achievement-color) 28%, transparent)}}.focus-timezone-label,.member-card__timezone{color:#347ea8;overflow-wrap:anywhere;font-size:.64rem;font-weight:600;line-height:1.2}.focus-panel__status-line,.member-card__name-line{justify-content:center;align-items:baseline;gap:6px;display:flex}.focus-panel__status-line .eyebrow,.member-card__name-line h3{margin-bottom:0}.member-card__name-line{flex-wrap:wrap;justify-content:flex-start}@media (prefers-reduced-motion:reduce){.deadline-curtain__sheet,.deadline-curtain__bottom-rail,.deadline-curtain__cord-ring{transition:none}.achievement-card{animation:none}}.settings-card>p{color:var(--muted);font-size:.84rem;line-height:1.65}.settings-members>div{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 0;display:flex}.settings-members>div:last-child{border:0}.settings-members>div>div{flex:1}.settings-members strong,.settings-members small{display:block}.settings-members small{color:var(--muted);margin-top:4px}.avatar{background:var(--primary-soft);border-radius:50%;place-items:center;width:42px;height:42px;font-weight:750;display:grid}.avatar--disabled{color:#8b8b8b;background:#eee}.legal-links{color:#5f7282;flex-wrap:wrap;gap:16px;font-size:.8rem;display:flex}.legal-links a{align-items:center;min-height:44px;display:inline-flex}@media (width>=640px){.form-grid{grid-template-columns:2fr 1fr;gap:12px}.page{padding:32px 28px 50px}.welcome-card,.form-card{padding:42px 44px}.metric-grid{grid-template-columns:repeat(3,1fr)}.metric-grid article:first-child{grid-column:auto}.member-list,.proposal-list{grid-template-columns:repeat(2,1fr);display:grid}.achievement-grid{grid-template-columns:repeat(3,1fr)}}@media (width>=900px){.app-layout{grid-template-columns:210px 1fr;display:grid}.app-content{padding-bottom:0}.side-nav{border-right:1px solid var(--border);background:#fffcf6b3;flex-direction:column;height:100vh;padding:30px 18px;display:flex;position:sticky;top:0}.side-nav__brand{align-items:center;gap:9px;margin:0 10px 35px;font-size:1.25rem;font-weight:800;display:flex}.side-nav__logo{object-fit:contain;width:42px;height:42px}.side-nav nav{gap:8px;display:grid}.side-nav .nav-item{flex-direction:row;justify-content:flex-start;min-height:50px;padding:0 14px;font-size:.9rem}.side-nav__note{color:var(--muted);margin-top:auto;font-size:.72rem}.side-nav__note p{margin:0}.side-nav__note a{color:var(--muted);text-underline-offset:4px;margin-top:9px;font-size:.72rem;display:inline-block}.bottom-nav{display:none}.page{padding-top:46px}.home-page{max-width:780px}.modal-backdrop{align-items:center}.drawer{border-radius:22px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-status{z-index:80;top:env(safe-area-inset-top);width:min(100% - 24px,620px);position:fixed;left:50%;transform:translate(-50%)}.app-status__bar,.app-status__prompt{background:#fffaf0;border:1px solid #ddcfbb;border-radius:12px;align-items:center;gap:10px;margin-top:8px;padding:10px 13px;font-size:.78rem;display:flex;box-shadow:0 5px 18px #28231c1f}.app-status__bar{color:#8b542e;background:#fff0e4;justify-content:center}.app-status__prompt span{flex:1}.app-status__prompt button{background:var(--primary);border:0;border-radius:9px;min-width:44px;min-height:44px;padding:5px 10px;font-weight:700}.app-status__prompt button[aria-label]{background:0 0;font-size:1.1rem}.welcome-action-placeholder{min-height:52px;color:var(--muted);background:#f1ece3;border-radius:16px;place-items:center;margin-top:28px;font-size:.82rem;display:grid}.achievement-toast{background:var(--primary-soft);border:1px solid #efd486;border-radius:14px;align-items:center;gap:12px;margin-top:14px;padding:14px 16px;display:flex}.achievement-toast>span{color:#d69a11;background:#fff;border-radius:50%;place-items:center;width:38px;height:38px;display:grid}.achievement-toast>div{flex:1}.achievement-toast small,.achievement-toast strong{display:block}.achievement-toast small{color:var(--muted);font-size:.7rem}.achievement--new{box-shadow:inset 0 0 0 2px #f0cc6b}.category-picker input:focus-visible+span{outline-offset:3px;outline:3px solid #6687a2}.modal-backdrop .drawer:focus,.modal-backdrop .dialog:focus{outline:none}.focus-health-policy,.focus-health-check{text-align:center}.focus-health-policy img,.focus-health-check img{margin:-10px auto 4px;display:block}.focus-health-policy p,.focus-health-check p{max-width:34rem;margin-inline:auto}.focus-health-result__body{font-size:.86rem}.focus-health-check__countdown{color:#7b4a1f;font-variant-numeric:tabular-nums;background:#fff7e7;border:2px solid #d69a42;border-radius:50%;place-content:center;width:116px;min-height:116px;margin:22px auto;font-size:2.7rem;font-weight:800;line-height:1;display:grid;box-shadow:0 0 0 8px #efad451f}.focus-health-check__countdown small{color:var(--muted);margin-top:7px;font-size:.68rem;font-weight:600}.focus-health-policy-info ul{color:var(--muted);margin:12px 0;padding-left:1.25rem}.focus-health-policy-info li+li{margin-top:6px}@media (prefers-reduced-motion:no-preference){.achievement-toast{animation:.6s ease-out both achievement-in}}@keyframes achievement-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
