:root{--bg:#F7F4EE;--card:#FFFEF9;--line:#E6DED0;--text:#2A2520;--muted:#7A7060;--primary:#5C7A3A;--primary-2:#D6E8B8;--danger:#d44c4c}*{box-sizing:border-box}html,body{margin:0;padding:0;background:#111;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Noto Sans TC",sans-serif;color:var(--text)}body{min-height:100vh}.screen{max-width:430px;margin:0 auto;min-height:100vh;background:var(--bg)}.hidden{display:none!important}.auth-screen{display:flex;align-items:center;justify-content:center;padding:20px}.auth-card,.card,.modal-card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 30px rgba(0,0,0,.08)}.auth-card{width:100%;padding:24px}.logo{font-size:54px;text-align:center}h1{margin:8px 0 4px;text-align:center;font-size:26px}.sub{margin:0 0 16px;text-align:center;color:var(--muted);font-size:13px;line-height:1.5}.lang-row,.row{display:flex;align-items:center}.row.between{justify-content:space-between}.row.center{align-items:center}.row.gap8{gap:8px}.grow{flex:1}.input,textarea,select{width:100%;padding:12px 14px;border-radius:12px;border:1px solid #d9cfbe;background:#fff;color:var(--text);font:inherit;margin-top:8px}.primary,.secondary,.mini,.chip-btn,.icon-btn,.nav-btn{font:inherit;cursor:pointer;border:none}.primary{background:var(--primary);color:#fff;padding:12px 16px;border-radius:999px}.primary.block{width:100%;margin-top:12px}.secondary{background:#eee5d8;color:var(--text);padding:12px 16px;border-radius:999px}.mini{padding:7px 12px;border-radius:999px;background:var(--primary);color:#fff}.mini.ghost{background:#eee5d8;color:var(--text)}.hint{color:var(--muted);font-size:12px;line-height:1.5;margin-top:8px}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:14px 14px 10px;background:rgba(255,254,249,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.title{font-size:22px;font-weight:700}.subtitle{font-size:12px;color:var(--muted);margin-top:4px}.icon-btn{width:36px;height:36px;border-radius:50%;background:#efe7da}#pages{padding:12px 12px 92px}.page{display:none}.page.active{display:block}.card{padding:14px;margin-bottom:12px}.section-title{font-size:14px;font-weight:700;margin-bottom:8px}.chips{display:flex;gap:8px;overflow:auto;padding-top:4px}.pet-chip{padding:8px 12px;border-radius:999px;background:#efe7da;border:1px solid #d9cfbe;white-space:nowrap;cursor:pointer}.pet-chip.active{background:var(--primary-2);border-color:#accd80}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}.stat-num{font-weight:800;font-size:20px;color:var(--primary)}.stat-label{font-size:11px;color:var(--muted)}.meal-item,.history-item,.pet-row,.member-row{border-top:1px solid var(--line);padding:10px 0}.meal-item:first-child,.history-item:first-child,.pet-row:first-child,.member-row:first-child{border-top:none}.meal-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.meal-name{font-weight:700}.meal-sub{font-size:12px;color:var(--muted);margin-top:4px}.meal-actions{display:flex;gap:6px;align-items:center}.small-btn{padding:6px 10px;border-radius:999px;border:none;background:#efe7da;cursor:pointer}.small-btn.danger{background:#fdeaea;color:var(--danger)}.label{display:block;margin-top:10px;font-size:12px;color:var(--muted)}.bottom-nav{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:min(430px,100vw);display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:10px 8px calc(env(safe-area-inset-bottom,0px) + 12px);background:rgba(255,254,249,.95);backdrop-filter:blur(10px);border-top:1px solid var(--line)}.nav-btn{padding:8px 4px;border-radius:12px;background:transparent;color:var(--muted);font-size:12px}.nav-btn.active{background:var(--primary-2);color:var(--primary);font-weight:700}.modal{position:fixed;inset:0;background:rgba(0,0,0,.38);display:flex;align-items:flex-end;justify-content:center;padding:0 12px 12px}.modal-card{width:min(430px,100%);padding:16px}.invite-box,.result-box{padding:12px 14px;border-radius:14px;background:var(--primary-2);border:1px dashed #accd80;font-weight:800;letter-spacing:2px;text-align:center}.top-gap{margin-top:16px}