:root{--bg:#faf6f2;--bg-soft:#f3e8dc;--ink:#2c241c;--ink-soft:#6e5f52;--brand:#e8914a;--brand-deep:#c96a28;--brand-soft:#ffe8d4;--accent:#f0c56a;--accent-soft:#fff4d8;--card:#fff;--line:#c96a2824;--danger:#e35d4c;--danger-soft:#fde8e5;--ok:#e8914a;--shadow:0 10px 28px #2c241c14;--shadow-sm:0 4px 14px #2c241c0f;--radius:20px;--radius-sm:14px;--font-display:"Fraunces", Georgia, serif;--font-body:"Outfit", system-ui, sans-serif;--nav-h:72px;color:var(--ink);background:var(--bg);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:radial-gradient(900px 420px at 0 -5%,#ffe8d4 0%,#0000 55%),radial-gradient(700px 380px at 100% 0,#fff4d8 0%,#0000 50%),linear-gradient(#fffaf6 0%,#f5ebe3 100%);min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{width:min(480px,100%);min-height:100dvh;padding:max(14px, env(safe-area-inset-top)) 16px calc(var(--nav-h) + 18px + env(safe-area-inset-bottom));flex-direction:column;gap:14px;margin:0 auto;display:flex}.app-shell.auth{padding-bottom:max(24px, env(safe-area-inset-bottom));justify-content:center}.brand-lockup{flex-direction:column;gap:6px;animation:.55s both rise;display:flex}.brand-lockup.rowish{flex-direction:row;align-items:center;gap:12px}.brand-lockup .mark{background:0 0;border-radius:16px;flex-shrink:0;place-items:center;width:48px;height:48px;display:grid;overflow:hidden;box-shadow:0 10px 22px #e8914a59}.brand-lockup .mark img{object-fit:cover;width:100%;height:100%;display:block}.brand-lockup .mark.mark-lg{border-radius:24px;width:88px;height:88px;box-shadow:0 14px 28px #e8914a61}.welcome-hero{text-align:left;gap:10px;padding:8px 4px 4px}.welcome-hero .mark{margin-bottom:4px}.welcome-kicker{font-family:var(--font-display);font-weight:600;color:var(--brand-deep)!important;margin:2px 0 0!important;font-size:1.15rem!important}.welcome-hint{text-align:center;margin:28px 0 0;font-size:.9rem;line-height:1.45}.welcome-hint.pwa-hint{margin-top:12px;font-size:.82rem}.welcome-card{animation:.6s 80ms both rise}.brand-lockup h1{font-family:var(--font-display);letter-spacing:-.03em;color:var(--brand-deep);margin:0;font-size:clamp(1.85rem,7vw,2.35rem);line-height:1.05}.brand-lockup p{color:var(--ink-soft);margin:0;font-size:.95rem}.brand-lockup .titles{flex-direction:column;gap:2px;min-width:0;display:flex}.brand-lockup .titles h1{font-size:1.35rem}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px;animation:.45s both rise}.panel h2{font-family:var(--font-display);color:var(--brand-deep);margin:0 0 4px;font-size:1.25rem}.panel-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.panel-head h2{margin:0}.stack{flex-direction:column;gap:12px;display:flex}.row{align-items:center;gap:8px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--ink-soft);font-size:.82rem;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--line);color:var(--ink);background:#fffaf7;border-radius:12px;outline:none;padding:12px 14px;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);background:#fff;box-shadow:0 0 0 3px #e8914a2e}.btn{border:none;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:12px 18px;font-weight:600;transition:transform .15s,background .15s,opacity .15s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:linear-gradient(145deg, var(--brand) 0%, var(--brand-deep) 100%);color:#fff;box-shadow:0 8px 18px #e8914a47}.btn-primary:hover:not(:disabled){filter:brightness(1.05)}.btn-secondary{background:var(--accent-soft);color:#7a5a00}.btn-danger{background:var(--danger-soft);color:var(--danger);border:1px solid #e35d4c33}.btn-ghost{color:var(--brand-deep);border:1px solid var(--line);background:0 0}.btn-small{padding:8px 12px;font-size:.85rem}.segmented{background:var(--bg-soft);border-radius:14px;grid-template-columns:1fr 1fr;gap:8px;padding:6px;display:grid}.segmented.cols-3{grid-template-columns:1fr 1fr 1fr}.segmented.cols-4{grid-template-columns:repeat(4,1fr)}.segmented.cols-4 button{padding:9px 4px;font-size:.82rem}.segmented button{color:var(--ink-soft);background:0 0;border:none;border-radius:10px;padding:11px;font-weight:600}.segmented button.active{color:var(--brand-deep);box-shadow:var(--shadow-sm);background:#fff}.topbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.stats{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.stat{background:var(--card);border:1px solid var(--line);text-align:center;box-shadow:var(--shadow-sm);border-radius:16px;padding:12px 10px;animation:.4s both rise}.stat strong{font-family:var(--font-display);color:var(--brand-deep);font-size:1.35rem;line-height:1;display:block}.stat span{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;margin-top:4px;font-size:.72rem;font-weight:600;display:block}.share-banner{background:linear-gradient(135deg,#fff7ef 0%,#fff4d8 100%);border-color:#e8914a33}.invite-link{border:1px dashed var(--line);word-break:break-all;color:var(--ink-soft);background:#fffc;border-radius:12px;margin:8px 0 12px;padding:10px 12px;font-size:.78rem}.code-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;display:grid}.code-box{border:1px dashed var(--line);text-align:center;background:#ffffffd9;border-radius:14px;padding:12px}.code-box span{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600;display:block}.code-box strong{font-family:var(--font-display);letter-spacing:.08em;color:var(--brand-deep);margin-top:4px;font-size:1.35rem;display:block}.code-box strong.invite-link-text{font-family:var(--font-body,inherit);letter-spacing:0;word-break:break-all;text-transform:none;font-size:.78rem;line-height:1.35}.share-card{background:var(--accent-soft);border:1px solid #f4b94259;border-radius:14px;padding:14px}.tabs-bottom{width:min(480px,100%);padding:10px 12px calc(10px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);z-index:40;background:#ffffffeb;grid-template-columns:repeat(4,1fr);gap:4px;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -8px 24px #2430280f}.tabs-bottom button{color:var(--ink-soft);background:0 0;border:none;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:8px 6px;font-size:.72rem;font-weight:600;display:flex}.tabs-bottom button svg{width:22px;height:22px}.tabs-bottom button.active{color:var(--brand-deep);background:var(--brand-soft)}.task-list,.member-list{flex-direction:column;gap:10px;display:flex}.family-list{flex-direction:column;gap:8px;display:flex}.family-card{box-shadow:var(--shadow-sm);background:linear-gradient(#fffefb 0%,#fff8f1 100%);border:1px solid #e8914a24;border-radius:18px;animation:.35s both rise;overflow:hidden}.family-card.is-you{background:linear-gradient(#fff9f2 0%,#ffeeda 100%);border-color:#e8914a47}.family-card-main{text-align:left;width:100%;color:inherit;cursor:pointer;background:0 0;border:none;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.family-card-main:hover .family-card-info strong,.family-card-main:hover .family-card-chevron{color:var(--brand-deep)}.family-card-main .avatar{width:52px;height:52px;font-size:.95rem}.family-card-info{gap:6px;min-width:0;display:grid}.family-card-info strong{text-overflow:ellipsis;white-space:nowrap;font-size:1.02rem;line-height:1.2;overflow:hidden}.family-card-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.family-code-pill{font-family:var(--font-display);letter-spacing:.06em;color:var(--brand-deep);background:#ffffffbf;border:1px dashed #e8914a59;border-radius:999px;align-items:center;padding:3px 9px;font-size:.78rem;font-weight:700;display:inline-flex}.member-code-line{color:var(--ink-soft);margin:4px 0 0;font-size:.88rem}.member-code-line strong{font-family:var(--font-display);letter-spacing:.06em;color:var(--brand-deep)}.family-card-chevron{color:var(--ink-soft);font-size:1.45rem;font-weight:500;line-height:1}.family-card-remove{align-self:start;margin:0 12px 12px}.task-item,.member-item{border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fff;border-radius:16px;padding:14px;animation:.35s both rise}.task-item.done{opacity:.72}.task-item{grid-template-columns:auto 1fr;align-items:start;gap:12px;display:grid}.task-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.task-card{border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fff;border-radius:16px;flex-direction:column;gap:6px;min-width:0;padding:12px;animation:.35s both rise;display:flex}.task-card-top{justify-content:space-between;align-items:center;gap:6px;display:flex}.task-card .task-check{width:34px;height:34px;font-size:.85rem}.task-card-pts{flex-shrink:0;padding:3px 8px;font-size:.68rem}.task-card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.92rem;line-height:1.25;display:-webkit-box;overflow:hidden}.task-card-notes{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.72rem;line-height:1.3;display:-webkit-box;overflow:hidden}.task-card-meta{gap:4px;margin:2px 0 0}.task-card-meta .badge{padding:2px 7px;font-size:.64rem}.task-card-progress{margin-top:2px}.task-card-progress .muted{margin:4px 0 0;font-size:.68rem}.task-card-action{justify-content:center;width:100%;margin-top:auto}.task-card-actions{align-items:center;gap:8px;margin-top:auto;padding-top:6px;display:flex}.task-card.is-done-by-me{opacity:.92}.task-completers{flex-direction:column;gap:6px;margin-top:4px;display:flex}.task-completer-avatars{flex-wrap:wrap;align-items:center;gap:0;display:flex}.task-completer-avatars .avatar-xs{border:2px solid #fff;width:28px;height:28px;margin-right:-6px;font-size:.62rem;box-shadow:0 1px 2px #2c241c1f}.task-completer-avatars .avatar-xs:last-child{margin-right:0}.task-completer-count{margin:0;font-size:.72rem}.task-card-wait{margin:6px 0 0;font-size:.72rem}.task-done-head{align-items:flex-start;gap:10px;display:flex}.plan-box{border:1px solid var(--line);background:#fff8f2;border-radius:14px;padding:12px 14px}.plan-box-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.partner-redeem h3{margin:0;font-size:1rem}.task-item .task-done-head .avatar-xs{flex-shrink:0;width:32px;height:32px;font-size:.68rem}.task-done-btn{flex:1;justify-content:center;align-items:center;gap:8px;min-height:38px;display:inline-flex}.task-done-btn.is-loading,.task-done-btn:disabled{opacity:.85;cursor:wait}.task-card.is-completing{border-color:#e8914a73;box-shadow:0 0 0 2px #e8914a1f}.profile-color-picker{flex-wrap:wrap;gap:8px;display:flex}.profile-color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:32px;height:32px;padding:0;box-shadow:inset 0 0 0 1px #0000001f}.profile-color-swatch.active{box-shadow:inset 0 0 0 1px #00000014, 0 0 0 2px #fff, 0 0 0 4px var(--accent,#e8914a);border-color:#2c241c}.profile-color-swatch:disabled{opacity:.55;cursor:not-allowed}.task-card.has-member-color,.task-item.has-member-color{--tint:color-mix(in srgb, var(--member-color) 18%, #fff);background:var(--tint);border-color:color-mix(in srgb, var(--member-color) 42%, var(--line));box-shadow:var(--shadow-sm), inset 3px 0 0 var(--member-color)}.task-item.has-member-color.done{opacity:.88}.btn-spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.evidence-input.is-disabled{opacity:.45;pointer-events:none}.task-check{border:2px solid var(--brand-soft);width:42px;height:42px;color:var(--brand);background:#fffaf6;border-radius:50%;flex-shrink:0;place-items:center;padding:0;display:grid}.task-check.ready:hover{background:var(--brand-soft)}.task-check.done{background:linear-gradient(145deg, var(--brand), var(--brand-deep));border-color:var(--brand);color:#fff}.task-body h3{margin:0 0 4px;font-size:1.02rem;line-height:1.25}.task-meta{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.badge{background:var(--brand-soft);color:var(--brand-deep);border-radius:999px;align-items:center;padding:4px 10px;font-size:.72rem;font-weight:600;display:inline-flex}.badge.accent{background:var(--accent-soft);color:#7a5a00}.badge.ok{color:var(--ok);background:#ffe8d4}.badge.warn{color:#a33b2a;background:#fde8e4}.check-row{background:var(--bg-soft);cursor:pointer;border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:.92rem;line-height:1.35;display:flex}.check-row input{flex-shrink:0;width:18px;height:18px;margin-top:3px}.progress{background:var(--bg-soft);border-radius:999px;height:8px;margin:8px 0 4px;overflow:hidden}.progress>span{border-radius:inherit;background:linear-gradient(90deg, var(--brand), #f0b06e);height:100%;transition:width .35s;display:block}.avatar{width:40px;height:40px;color:var(--brand-deep);background:var(--brand-soft);border-radius:50%;flex-shrink:0;place-items:center;font-size:.9rem;font-weight:700;display:grid;position:relative;overflow:hidden}.avatar.has-art{background:0 0;padding:0}.avatar-photo{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.avatar-toggle-preview .avatar-photo{border-radius:50%;width:40px;height:40px}.avatar-picker-panel{gap:10px;margin-top:10px;display:grid}.avatar-upload-actions{gap:8px;display:grid}.avatar-upload-btn{border:1px dashed var(--line);width:100%;color:var(--brand-deep);cursor:pointer;font-size:.9rem;font-weight:600;font:inherit;background:#fffaf7;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:12px 14px;display:flex}.avatar-upload-btn-secondary{color:var(--ink-soft);background:#fff;font-weight:500}.avatar-upload-btn input{display:none}.avatar-upload-btn:hover:not(:disabled){border-color:var(--brand);background:#fff}.avatar-upload-btn:disabled{opacity:.65;cursor:wait}.avatar-art{width:100%;height:100%;display:block}.avatar-picker{width:100%}.avatar-select-field{margin-top:8px;margin-bottom:8px}.avatar-tap{color:inherit;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:8px;padding:0;display:inline-flex}.avatar-tap .avatar{width:64px;height:64px;font-size:1.1rem;transition:transform .15s,box-shadow .15s}.avatar-select-field.size-lg .avatar-tap .avatar{width:88px;height:88px;font-size:1.4rem}.avatar-select-field.size-sm .avatar-tap .avatar{width:48px;height:48px}.avatar-tap:hover .avatar,.avatar-tap.active .avatar{transform:scale(1.04);box-shadow:0 12px 26px #e8914a66}.avatar-tap:disabled{opacity:.6;cursor:not-allowed}.avatar-tap-hint{color:var(--brand-deep);font-size:.78rem;font-weight:600}.avatar-toggle-row{width:100%}.avatar-toggle{border:1px solid var(--line);text-align:left;width:100%;color:inherit;cursor:pointer;background:#fff;border-radius:14px;grid-template-columns:40px 1fr auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.avatar-toggle-preview{background:var(--brand-soft);border-radius:50%;place-items:center;width:40px;height:40px;display:grid;overflow:hidden}.avatar-toggle-preview .avatar-art{width:100%;height:100%}.avatar-select-empty{color:var(--brand-deep);font-weight:700}.avatar-toggle-text{flex-direction:column;gap:2px;min-width:0;display:flex}.avatar-toggle-text strong{font-size:.9rem}.avatar-toggle-text small{color:var(--ink-soft);font-size:.78rem}.avatar-toggle-chevron{color:var(--ink-soft);font-size:1.2rem;line-height:1}.avatar-select-field .avatar-grid{margin-top:8px}.role-select-field{margin-top:8px;margin-bottom:4px}.role-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.role-option{border:2px solid var(--line);cursor:pointer;color:var(--ink-soft);text-align:center;background:#fff;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:8px 6px;font-size:.72rem;font-weight:600;line-height:1.15;display:flex}.role-option svg{width:44px;height:44px;display:block}.role-option.active{border-color:var(--brand-deep);background:var(--brand-soft);color:var(--brand-deep);box-shadow:0 0 0 2px #e8914a2e}.role-option:hover{transform:translateY(-1px)}.avatar-grid{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.avatar-grid.compact{grid-template-columns:repeat(6,1fr);gap:6px}.avatar-option{aspect-ratio:1;cursor:pointer;background:0 0;border:2px solid #0000;border-radius:50%;padding:0;overflow:hidden}.avatar-option svg{width:100%;height:100%;display:block}.avatar-option.active{border-color:var(--brand-deep);box-shadow:0 0 0 2px var(--brand-soft)}.avatar-option:hover{transform:scale(1.04)}@media (width<=400px){.avatar-grid,.avatar-grid.compact{grid-template-columns:repeat(4,1fr)}}.avatar.admin{background:var(--accent-soft);color:#7a5a00}.avatar.has-art.admin{background:0 0}.avatar.online{color:#1f7a3a;background:#d8f5de;box-shadow:0 0 0 2px #2fbd5a}.avatar.online:after{content:"";background:#2fbd5a;border:2px solid #fff;border-radius:50%;width:12px;height:12px;position:absolute;bottom:-1px;right:-1px;box-shadow:0 0 0 1px #2fbd5a59}.badge.online{color:#1f7a3a;background:#d8f5de}.member-clickable .member-open{text-align:left;width:100%;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}.member-clickable .member-open:hover .info strong{color:var(--brand-deep)}.member-main{align-items:center;gap:12px;display:flex}.member-main.avatar-edit-row{grid-template-columns:auto 1fr;align-items:center;gap:12px 14px;display:grid}.member-main.avatar-edit-row .avatar-select-field{margin:0;display:contents}.member-main.avatar-edit-row .avatar-tap{grid-area:1/1}.member-main.avatar-edit-row>.info{grid-area:1/2;min-width:0}.member-main.avatar-edit-row .avatar-picker-panel{grid-area:2/1/auto/-1;width:100%}.member-main.avatar-edit-row .avatar-tap .avatar{width:88px;height:88px;font-size:1.4rem}.member-item{flex-direction:column;gap:10px;display:flex}.member-main .info{flex:1;min-width:0}.group-chips{flex-wrap:wrap;gap:8px;display:flex}.group-chip{background:var(--brand-soft);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:6px 8px 6px 10px;font-size:.85rem;font-weight:600;display:inline-flex}.group-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.group-chip-x{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:1.1rem;line-height:1}.task-group-block{margin-top:14px}.task-group-block:first-of-type{margin-top:8px}.task-group-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.task-group-head h3{flex:1;margin:0;font-size:.95rem;font-weight:700}.muted{color:var(--ink-soft);margin:0;font-size:.9rem}.pie-wrap{grid-template-columns:140px 1fr;align-items:center;gap:14px;display:grid}.pie-visual{width:140px;height:140px}.pie-svg{filter:drop-shadow(0 4px 10px #2c241c14);width:100%;height:100%}.pie-legend{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pie-legend li{grid-template-columns:10px 1fr auto;align-items:center;gap:8px;font-size:.9rem;display:grid}.pie-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.pie-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.pie-legend strong{font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:.85rem}@media (width<=380px){.pie-wrap{grid-template-columns:1fr;justify-items:center}.pie-legend{width:100%}}.error{color:var(--danger);background:var(--danger-soft);border-radius:12px;padding:10px 12px;font-size:.9rem}.offline-banner{background:var(--accent-soft);color:#7a5a00;text-align:center;border:1px solid #f0c56ab3;border-radius:12px;padding:10px 12px;font-size:.86rem;font-weight:600}.task-card .task-check{position:relative}.task-card .task-check button{width:100%;height:100%;color:inherit;cursor:pointer;background:0 0;border:0}.evidence-input{cursor:pointer;width:40px;height:40px;box-shadow:none;background:0 0;border:none;border-radius:50%;flex-shrink:0;place-items:center;padding:0;display:grid;position:relative}.evidence-cam-btn{cursor:pointer;background:0 0;border:none;place-items:center;width:40px;height:40px;padding:0;display:grid}.evidence-cam-btn:disabled{cursor:wait}.evidence-input .icon-camera-cute{width:40px;height:40px;transition:transform .18s;display:block}.evidence-input:hover:not(.is-disabled) .icon-camera-cute,.evidence-cam-btn:hover:not(:disabled) .icon-camera-cute{transform:scale(1.08)rotate(-4deg)}.evidence-input input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.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}.task-menu{position:relative}.task-menu summary{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;border-radius:10px;padding:4px 8px;font-size:1.2rem;line-height:1;list-style:none}.task-menu summary::-webkit-details-marker{display:none}.task-menu-popover{z-index:10;border:1px solid var(--line);min-width:130px;box-shadow:var(--shadow);background:#fff;border-radius:12px;position:absolute;top:calc(100% + 5px);right:0;overflow:hidden}.task-menu-popover button{width:100%;color:var(--ink);text-align:left;background:#fff;border:0;padding:9px 11px;font-size:.8rem}.task-menu-popover button:hover{background:var(--brand-soft)}.evidence-thumb,.reward-image{border:1px solid var(--line);object-fit:cover;border-radius:12px;width:72px;height:72px;margin-top:8px;display:block}.evidence-thumb-lg{width:112px;height:112px}.evidence-row{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.evidence-link{color:var(--brand-deep);flex-direction:column;align-items:flex-start;gap:4px;text-decoration:none;display:inline-flex}.evidence-link .evidence-thumb{margin-top:0}.evidence-open{font-size:.78rem;font-weight:600}.task-who{margin:4px 0 0;font-size:.9rem}.reward-image{width:54px;height:54px;margin-top:0}.podium{justify-content:center;align-items:flex-end;gap:8px;min-height:112px;display:flex}.podium-place{background:var(--brand-soft);text-align:center;border-radius:14px 14px 6px 6px;flex-direction:column;flex:1;align-items:center;gap:3px;min-width:0;padding:10px 6px;display:flex}.podium-place.place-1{background:var(--accent-soft);min-height:104px}.podium-place.place-2{min-height:82px}.podium-place.place-3{background:#f9eee6;min-height:66px}.podium-place span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.8rem;font-weight:700;overflow:hidden}.podium-place small{color:var(--ink-soft);font-size:.7rem}.streak-badges{flex-wrap:wrap;gap:7px;margin-top:12px;margin-bottom:14px;display:flex}.streak-badge{background:var(--brand-soft);color:var(--brand-deep);border-radius:999px;padding:6px 9px;font-size:.76rem;font-weight:700}.empty{text-align:center;color:var(--ink-soft);padding:28px 14px}.empty .empty-illu{background:var(--brand-soft);width:64px;height:64px;color:var(--brand-deep);border-radius:20px;place-items:center;margin:0 auto 12px;font-size:1.6rem;display:grid}.toast{left:50%;bottom:calc(var(--nav-h) + 16px + env(safe-area-inset-bottom));background:var(--ink);color:#fff;box-shadow:var(--shadow);z-index:50;border-radius:999px;max-width:min(90vw,420px);padding:12px 16px;font-size:.92rem;animation:.3s both rise;position:fixed;transform:translate(-50%)}.app-shell.auth .toast{bottom:max(24px, env(safe-area-inset-bottom))}.day-picker{flex-wrap:wrap;gap:8px;display:flex}.day-chip{border:1px solid var(--line);width:40px;height:40px;color:var(--ink-soft);background:#fff;border-radius:12px;justify-content:center;align-items:center;padding:0;font-weight:700;line-height:1;display:inline-flex}.day-chip.active{background:var(--brand);border-color:var(--brand);color:#fff}.day-chip.daypart-chip{border-radius:14px;width:48px;height:48px}.day-chip.daypart-chip .icon-daypart{margin:0 auto;display:block}.day-chip.daypart-chip.active{border-color:var(--brand);color:inherit;box-shadow:0 0 0 2px color-mix(in srgb, var(--brand) 28%, transparent);background:#fff8ef}.daypart-badge{background:#fff6ea;border:1px solid #f0d7b4;padding:3px 7px}.repeat-badge{gap:6px}.repeat-badge-slots{align-items:center;gap:2px;display:inline-flex}.icon-daypart{flex-shrink:0;display:block}.composer-toggle{justify-content:space-between;width:100%}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
