:root{--bg: #f6fbf5;--card: #ffffff;--c-low: #f0f5f0;--c-high: #e5e9e4;--c-highest: #dfe4df;--border: #c4cfc8;--text: #181d1a;--muted: #3f4944;--hint: #8a948e;--primary: #005440;--primary-c: #0f6e56;--fixed: #a0f3d4;--on-fixed: #00513e;--amber: #fcb24a;--amber-text: #9a6a10;--mint: #e3f3eb;--wa: #25d366;--danger: #ba1a1a;--r-card: 20px;--r-btn: 12px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Rubik,system-ui,sans-serif;line-height:1.5;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}.app{max-width:440px;margin:0 auto;min-height:100dvh;background:var(--bg);position:relative;padding-bottom:40px}.app.has-footer{padding-bottom:172px}.appbar{position:sticky;top:0;z-index:40;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:var(--bg);border-bottom:1px solid var(--border)}.wordmark{font-size:24px;font-weight:600;color:var(--primary-c);letter-spacing:-.5px}.wordmark.big{font-size:40px;letter-spacing:-1.5px}.icon-btn{width:40px;height:40px;border-radius:999px;display:flex;align-items:center;justify-content:center;color:var(--primary-c);background:transparent;border:none;cursor:pointer;text-decoration:none}.icon-btn:hover{background:var(--c-high)}.icon-btn svg{width:22px;height:22px}.avatar-spacer{width:40px}.main{padding:20px;display:flex;flex-direction:column;gap:12px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);padding:16px}.card.center{text-align:center}.muted{color:var(--muted)}.headcard{display:flex;gap:16px;align-items:center}.headcard .info{flex:1;min-width:0}.mode-pill{display:inline-flex;padding:4px 12px;background:var(--c-highest);color:var(--muted);border-radius:999px;font-size:12px;margin-bottom:8px}.headcard h2{font-size:24px;font-weight:600;line-height:1.25;margin:0 0 4px;color:var(--text)}.headcard .date{font-size:15px;color:var(--muted);margin:0}.ring{position:relative;width:96px;height:96px;flex:none}.ring-svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-track{stroke:var(--mint)}.ring-fill{stroke:var(--primary-c);transition:stroke-dasharray .45s ease}.ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.ring-pct{font-size:18px;font-weight:700;color:var(--primary)}.ring-sub{font-size:10px;line-height:1.15;color:var(--muted);padding:0 10px}.pbanner{background:var(--mint);border:1px solid rgba(15,110,86,.12);border-radius:var(--r-btn);padding:14px 16px;display:flex;align-items:center;gap:10px;color:var(--primary)}.pbanner svg{width:20px;height:20px;flex:none}.pbanner .b-text{font-size:14px;font-weight:500}.pbanner strong{font-weight:700}.install{background:var(--card);border:1px solid var(--border);border-radius:var(--r-btn);padding:10px 12px;display:flex;align-items:center;gap:10px}.install-icon{flex:none;width:30px;height:30px;border-radius:8px;background:var(--fixed);color:var(--on-fixed);display:flex;align-items:center;justify-content:center}.install-icon svg{width:18px;height:18px}.install-text{flex:1;min-width:0;font-size:13px;color:var(--muted);line-height:1.4}.install-btn{flex:none;height:36px;padding:0 16px;border:none;border-radius:var(--r-btn);background:var(--primary);color:#fff;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer}.install-x{flex:none;width:30px;height:36px;border:none;background:transparent;color:var(--hint);font-size:20px;line-height:1;cursor:pointer}.install-x:hover{color:var(--text)}.topbar{display:flex;align-items:center;padding:10px 14px 0}.drawer-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;visibility:hidden;pointer-events:none;transition:visibility 0s linear .25s}.drawer-root.open{visibility:visible;pointer-events:auto;transition:visibility 0s}.drawer-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000059;opacity:0;transition:opacity .25s ease}.drawer-root.open .drawer-scrim{opacity:1}.drawer{position:absolute;top:0;right:0;height:100%;width:300px;max-width:84vw;background:var(--card);box-shadow:-8px 0 24px #00000024;display:flex;flex-direction:column;padding:12px 14px calc(env(safe-area-inset-bottom) + 16px);transform:translate(100%);transition:transform .25s ease;overflow-y:auto}.drawer-root.open .drawer{transform:translate(0)}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:4px 4px 10px}.drawer-nav{display:flex;flex-direction:column;gap:8px;padding:6px 0 12px;border-bottom:1px solid var(--border)}.drawer-link{display:block;text-decoration:none;color:var(--text);font-size:16px;font-weight:500;padding:12px;border-radius:var(--r-btn);background:var(--c-low)}.drawer-link.primary{background:var(--primary);color:#fff}.drawer-sec{padding:14px 0 0}.drawer-sec-t{font-size:13px;color:var(--hint);margin:0 4px 8px;font-weight:500}.drawer-item{display:flex;flex-direction:column;text-decoration:none;color:var(--text);padding:9px 12px;border-radius:var(--r-btn)}.drawer-item:hover{background:var(--c-low)}.di-title{font-size:15px;font-weight:500}.di-date{font-size:12px;color:var(--muted)}.drawer-empty{color:var(--muted);font-size:14px;padding:16px 4px}.drawer-foot{margin-top:auto;padding-top:16px;display:flex;gap:14px;flex-wrap:wrap;font-size:13px}.drawer-foot a{color:var(--primary-c)}.items{display:flex;flex-direction:column;gap:12px}.item{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);padding:16px;display:flex;justify-content:space-between;align-items:center;gap:12px}.item.open{border-style:dashed}.item.quota{flex-direction:column;align-items:stretch;gap:16px}.item-info{display:flex;flex-direction:column;min-width:0}.item-name{font-size:15px;font-weight:500;color:var(--text)}.item-name.strong{font-weight:700}.item-sub{font-size:13px;color:var(--muted);margin-top:4px}.claimants{display:flex;align-items:center;gap:8px;margin-top:6px}.avatars{display:flex;flex-direction:row-reverse}.avatars .avatar{margin-inline-start:-8px;border:2px solid var(--card)}.avatars .avatar:last-child{margin-inline-start:0}.claim-names{font-size:13px;color:var(--muted)}.avatar{width:24px;height:24px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex:none}.avatar.amber{background:var(--amber);color:#6f4600}.avatar.green{background:var(--fixed);color:var(--on-fixed)}.avatar.lg{width:34px;height:34px;font-size:15px}.pill{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:999px;font-size:13px;font-weight:500;white-space:nowrap;flex:none}.pill.full{background:var(--fixed);color:var(--on-fixed)}.pill svg{width:14px;height:14px}.tag{display:inline-flex;align-items:center;gap:6px;font-size:13px;margin-top:5px}.tag.amber{color:var(--amber-text)}.tag.amber .dot{width:7px;height:7px;border-radius:999px;background:var(--amber)}.tag.gray{background:var(--c-highest);color:var(--muted);padding:5px 12px;border-radius:999px}.quota-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.qbar{width:96px;height:6px;background:var(--c-high);border-radius:999px;overflow:hidden;flex:none;margin-top:6px}.qbar-fill{height:100%;background:var(--primary-c);border-radius:999px;transition:width .3s}.quota-actions{display:flex;align-items:center;gap:12px}.stepper{display:flex;align-items:center;background:var(--c-low);border:1px solid var(--border);border-radius:var(--r-btn);overflow:hidden;direction:ltr;flex:none}.stepper-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;color:var(--muted)}.stepper-btn:active{transform:scale(.9)}.stepper-btn svg{width:18px;height:18px}.stepper-val{width:30px;text-align:center;font-size:15px;font-weight:500}.btn{font-family:inherit;cursor:pointer;border:none;border-radius:var(--r-btn);font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:disabled{opacity:.45;cursor:default}.btn svg{width:20px;height:20px;flex:none}.btn.claim{background:var(--primary);color:#fff;font-size:14px;padding:8px 18px;height:40px}.btn.claim:active{transform:scale(.96)}.btn.grow{flex:1}.btn.create{width:100%;height:56px;background:var(--primary);color:#fff;font-size:19px;border-radius:16px}.btn.create:active{transform:scale(.98)}.undo{background:none;border:none;color:var(--muted);text-decoration:underline;font-size:12px;cursor:pointer;margin-top:6px;align-self:flex-start;padding:0;font-family:inherit}.addrow{display:flex;align-items:center;gap:8px;background:#e5e9e480;border:1px dashed var(--border);border-radius:var(--r-card);padding:8px}.addrow input{flex:1;min-width:0;background:transparent;border:none;outline:none;font-size:16px;padding:0 12px;color:var(--text);font-family:inherit;text-align:right}.addrow .add-btn{width:40px;height:40px;border-radius:var(--r-btn);background:var(--primary-c);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}.addrow .add-btn svg{width:20px;height:20px}.gate p{margin:0 0 10px;font-size:14px;color:var(--muted)}.gate-row{display:flex;gap:8px}.gate input{flex:1;min-width:0;height:46px;border:1px solid var(--border);border-radius:var(--r-btn);padding:0 14px;font-size:16px;font-family:inherit;background:var(--card);color:var(--text);text-align:right}.gate input:focus{outline:none;border-color:var(--primary-c);box-shadow:0 0 0 3px #0f6e561f}.gate .btn{background:var(--primary);color:#fff;padding:0 20px;height:46px;font-size:15px}.owner{display:flex;justify-content:space-between;align-items:center;padding:4px;color:var(--muted);font-size:13px}.owner .btn{background:var(--card);border:1px solid var(--border);color:var(--muted);height:38px;padding:0 16px;font-size:13px}.footer{position:fixed;bottom:0;left:0;right:0;max-width:440px;margin:0 auto;z-index:50;background:#f6fbf5d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);padding:16px 16px 28px;display:flex;flex-direction:column;gap:12px}.btn.share{width:100%;height:56px;background:var(--wa);color:#fff;font-size:18px;border-radius:16px}.btn.share:active{transform:scale(.98)}.btn.copy{width:100%;height:48px;background:transparent;border:2px solid var(--primary-c);color:var(--primary-c);font-size:14px;border-radius:16px}.hero{text-align:center;padding:28px 20px 8px}.hero .tagline{font-size:16px;color:var(--muted);margin:8px 0 0}.formcard,.mylists{margin:8px 20px 0}.mylist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.mlrow{display:flex;align-items:stretch;gap:8px}.mllink{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;text-decoration:none;color:var(--text);background:var(--c-low);border:1px solid var(--border);border-radius:var(--r-btn);padding:10px 12px}.ml-main{display:flex;flex-direction:column;min-width:0}.ml-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ml-date{font-size:12px;color:var(--muted)}.ml-role{flex:none;font-size:12px;padding:2px 9px;border-radius:999px;background:var(--c-high);color:var(--muted)}.ml-role.owner{background:var(--fixed);color:var(--on-fixed)}.ml-x{flex:none;width:40px;border:1px solid var(--border);background:var(--card);color:var(--hint);border-radius:var(--r-btn);font-size:20px;line-height:1;cursor:pointer}.ml-x:hover{color:var(--danger);border-color:var(--danger)}.field{margin-bottom:16px}.field>label{display:block;font-size:14px;font-weight:500;color:var(--text);margin-bottom:8px;text-align:right}.input{width:100%;height:52px;border:1px solid var(--border);border-radius:var(--r-btn);padding:0 14px;font-size:16px;font-family:inherit;background:var(--card);color:var(--text);text-align:right}.input::placeholder{color:var(--hint)}.input:focus{outline:none;border-color:var(--primary-c);box-shadow:0 0 0 3px #0f6e561f}.toggle-row{display:flex;align-items:center;gap:12px;background:var(--mint);border-radius:var(--r-btn);padding:14px 16px;margin-bottom:20px;cursor:pointer;position:relative}.toggle-row input{position:absolute;opacity:0;pointer-events:none}.toggle-row .t-text{flex:1;display:flex;flex-direction:column}.toggle-row .t-title{font-size:14px;font-weight:500;color:var(--text)}.toggle-row .t-help{font-size:12px;color:var(--muted)}.switch{width:48px;height:28px;border-radius:999px;background:#c4cfc8;position:relative;flex:none;transition:background .15s}.switch:after{content:"";position:absolute;top:3px;right:3px;width:22px;height:22px;border-radius:999px;background:#fff;transition:transform .15s}.toggle-row input:checked+.switch{background:var(--primary-c)}.toggle-row input:checked+.switch:after{transform:translate(-20px)}.section-label{font-size:14px;font-weight:500;color:var(--text);margin:4px 0 12px;text-align:right}.crow{display:flex;align-items:center;gap:8px;margin-bottom:10px}.crow .cname{flex:1;min-width:0;height:48px}.crow .trash{width:44px;height:48px;border:none;background:transparent;color:var(--danger);cursor:pointer;flex:none;display:flex;align-items:center;justify-content:center}.crow .trash svg{width:20px;height:20px}.crow .trash:disabled{opacity:.3;cursor:default}.additem-link{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--primary-c);font-size:14px;font-weight:500;cursor:pointer;padding:4px 0;margin-top:2px;font-family:inherit}.additem-link svg{width:18px;height:18px}.create-wrap{padding:20px 20px 0}.error{margin-top:14px;padding:10px 12px;border-radius:10px;background:#ffdad6;color:#93000a;font-size:14px}.footnote{text-align:center;color:var(--muted);font-size:13px;margin:16px 24px 4px;line-height:1.5}.footnote strong{font-weight:500}.version{text-align:center;color:var(--hint);font-size:12px;margin:6px 0 0}.version a{color:var(--primary-c)}@media (prefers-color-scheme: dark){:root{--bg: #0f140f;--card: #1a201b;--c-low: #1f261f;--c-high: #2a312b;--c-highest: #333b34;--border: #3a423c;--text: #dfe4df;--muted: #bec9c3;--hint: #7c867f;--primary: #84d6b9;--primary-c: #4fc59f;--fixed: #00513e;--on-fixed: #a0f3d4;--mint: #0e3328;--amber-text: #fcc878}.btn.claim,.btn.create,.gate .btn,.addrow .add-btn{color:#00382a}.addrow{background:#ffffff0a}.footer{background:#0f140fd9}.switch{background:#4a534c}.switch:after{background:#e8eee9}}
