:root{--color-primary:#e8814a;--color-primary-dark:#cc6a36;--color-primary-tint:#fbe6d8;--color-secondary:#7fa968;--color-secondary-tint:#e7f0de;--color-accent:#f2c063;--color-bg:#fbf6ee;--color-surface:#fff;--color-border:#ece1d2;--color-text:#4a3f36;--color-text-muted:#9b8e7e;--color-text-disabled:#c9bcac;--color-success:#7fa968;--color-warning:#e5a93c;--color-danger:#d9685a;--radius-sm:12px;--radius-md:16px;--radius-lg:20px;--radius-pill:999px;--shadow-card:0 2px 8px rgba(74,63,54,.08);--shadow-float:0 6px 20px rgba(74,63,54,.14);--font-sans:"Hiragino Sans","Noto Sans JP","Helvetica Neue",system-ui,sans-serif}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body,html{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);overscroll-behavior-y:contain}.app{max-width:480px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;padding-bottom:calc(76px + env(safe-area-inset-bottom))}.appbar{padding:16px 16px 8px}.appbar .ttl{font-size:22px;font-weight:700}.appbar .sub{font-size:13px;color:var(--color-text-muted);margin-top:2px}.appbar-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.avatar-btn{border:none;background:none;padding:0;line-height:0;border-radius:50%}.avatar-btn,.group-chip{cursor:pointer;flex:0 0 auto}.group-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 12px;border:1.5px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-pill);max-width:64vw;line-height:1}.group-chip .gc-name{font-size:13px;max-width:118px;text-overflow:ellipsis;white-space:nowrap}.avatar,.group-chip .gc-name{font-weight:700;overflow:hidden}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;object-fit:cover;border:1.5px solid var(--color-border);background:var(--color-primary-tint);color:var(--color-primary-dark)}.wrap{flex:1 1;padding:0 16px}.section-ttl{font-size:13px;font-weight:700;color:var(--color-text-muted);margin:18px 2px 8px}.card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:16px;margin-bottom:12px}.row{display:flex;align-items:center;justify-content:space-between}.mini{font-size:13px;color:var(--color-text-muted)}.num{font-size:26px;font-weight:700;color:var(--color-primary)}.btn{border:none;font-family:inherit;font-weight:600;border-radius:var(--radius-sm);cursor:pointer}.btn-primary{background:var(--color-primary);color:#fff;padding:12px 16px;font-size:15px;width:100%}.btn-primary:active{background:var(--color-primary-dark)}.btn-ghost{background:transparent;color:var(--color-primary);padding:8px;font-size:14px}.input{width:100%;height:48px;border:1.5px solid var(--color-border);border-radius:12px;padding:0 14px;font-size:15px;font-family:inherit;outline:none;background:#fff}.input:focus{border-color:var(--color-primary)}.textarea{width:100%;min-height:104px;border:1.5px solid var(--color-border);border-radius:12px;padding:12px 14px;font-size:15px;font-family:inherit;line-height:1.6;outline:none;background:#fff;color:var(--color-text);resize:vertical}.textarea:focus{border-color:var(--color-primary)}.seg{display:flex;background:var(--color-primary-tint);border-radius:var(--radius-pill);padding:4px;margin-bottom:14px;overflow:auto}.seg button{flex:1 1;white-space:nowrap;border:none;background:transparent;font-family:inherit;font-size:13px;font-weight:600;color:var(--color-primary-dark);padding:8px 14px;border-radius:var(--radius-pill);cursor:pointer}.seg button.on{background:var(--color-primary);color:#fff}.li,.seg button.on{box-shadow:var(--shadow-card)}.li{display:flex;align-items:center;gap:12px;background:var(--color-surface);border-radius:var(--radius-sm);padding:13px 14px;margin-bottom:9px}.li .body{flex:1 1;min-width:0}.li .t{font-size:15px;font-weight:600}.li .meta{font-size:12px;color:var(--color-text-muted);margin-top:2px}.li.done .t{color:var(--color-text-disabled);text-decoration:line-through}.check{width:24px;height:24px;border-radius:50%;border:2px solid var(--color-border);flex:0 0 auto;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;transition:.15s;background:#fff}.check.done{background:var(--color-secondary);border-color:var(--color-secondary)}.qty{font-size:12px;color:var(--color-text-muted);font-weight:400}.fab{right:max(16px,calc(50% - 240px + 16px));bottom:calc(88px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:28px;border:none;box-shadow:var(--shadow-float);cursor:pointer;z-index:5}.fab,.tabbar{position:fixed}.tabbar{left:0;right:0;bottom:0;height:calc(72px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:hsla(0,0%,100%,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--color-border);display:flex;max-width:480px;margin:0 auto;z-index:6}.tab{flex:1 1;border:none;background:none;font-family:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--color-text-muted);font-size:11px;font-weight:600}.tab .i{font-size:20px}.tab.on{color:var(--color-primary)}.center{min-height:100vh;min-height:100dvh;flex-direction:column;gap:14px;padding:24px;text-align:center}.boot-dots,.center{display:flex;align-items:center;justify-content:center}.boot-dots{gap:8px;margin-top:4px}.boot-dots span{width:8px;height:8px;border-radius:50%;background:var(--color-primary);animation:bootDot 1s ease-in-out infinite}.boot-dots span:nth-child(2){animation-delay:.16s}.boot-dots span:nth-child(3){animation-delay:.32s}@keyframes bootDot{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}.skeleton{position:relative;overflow:hidden;background:var(--color-border)}.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.6),transparent);animation:skeletonShimmer 1.25s ease-in-out infinite}@keyframes skeletonShimmer{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.skeleton:after{animation:none}}.pill{display:inline-block;font-size:11px;font-weight:700;padding:3px 10px;border-radius:var(--radius-pill);background:var(--color-secondary-tint);color:#5c7d49}.err{color:var(--color-danger);font-size:13px}.invite{background:var(--color-primary-tint);border-radius:var(--radius-sm);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;margin-top:8px}.invite .code{font-size:18px;font-weight:700;letter-spacing:.12em;color:var(--color-primary-dark)}.sheet-overlay{position:fixed;inset:0;background:rgba(74,63,54,.45);z-index:20;animation:fadeIn .15s ease}.sheet{position:fixed;top:0;right:max(0px,calc(50% - 240px));height:100%;width:min(440px,94vw);z-index:21;background:var(--color-bg);overflow-y:auto;box-shadow:var(--shadow-float);padding:20px 18px calc(28px + env(safe-area-inset-bottom));animation:sheetIn .22s ease}.sheet-head{gap:12px;margin:4px 0 8px}.sheet-close,.sheet-head{display:flex;align-items:center}.sheet-close{width:36px;height:36px;border:none;background:none;color:var(--color-text-muted);cursor:pointer;justify-content:center;border-radius:50%;flex:0 0 auto}.account-settings-overlay{position:fixed;inset:0;background:rgba(74,63,54,.45);z-index:25;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:max(16px,env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom));animation:fadeIn .15s ease}.account-settings-panel{position:relative;width:100%;max-width:880px;margin:auto 0;animation:popIn .18s ease}.account-settings-close{position:absolute;top:8px;right:8px;z-index:1;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-card)}.modal-overlay{position:fixed;inset:0;background:rgba(74,63,54,.45);z-index:30;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .15s ease}.modal-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);padding:20px;width:100%;max-width:340px;animation:popIn .18s ease}.pull-spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes sheetIn{0%{transform:translateX(24px);opacity:.4}to{transform:translateX(0);opacity:1}}@keyframes popIn{0%{transform:scale(.96);opacity:.6}to{transform:scale(1);opacity:1}}.plan-lock-badge{position:relative;display:inline-flex;align-items:center;margin-left:4px;cursor:help;vertical-align:middle;border-radius:6px;outline:none}.plan-lock-badge:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.plan-lock-badge[data-tip]:after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);width:max-content;max-width:min(240px,70vw);padding:8px 10px;font-size:12px;font-weight:500;line-height:1.45;color:#fff;background:var(--color-text);border-radius:8px;box-shadow:var(--shadow-float);opacity:0;pointer-events:none;transition:opacity .15s;z-index:30;text-align:left;white-space:normal}.plan-lock-badge:focus-visible:after,.plan-lock-badge:hover:after{opacity:1}@media (prefers-reduced-motion:reduce){.plan-lock-badge[data-tip]:after{transition:none}}