:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#18201c;background:#f4f7f1}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:#f4f7f1}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible{outline:3px solid rgba(47,138,109,.32);outline-offset:2px}a{color:#246b54;text-decoration:none}.center-screen,.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-page{background:linear-gradient(#f4f7f1b8,#f4f7f1eb),url(https://images.unsplash.com/photo-1543168256-418811576931?auto=format&fit=crop&w=1600&q=80) center/cover}.auth-panel{width:min(440px,100%);background:#fff;border:1px solid #dfe7db;border-radius:8px;padding:28px;box-shadow:0 20px 60px #192d231f}.auth-panel h1{margin:0 0 8px;font-size:2rem}.auth-panel p{color:#657269;margin:0 0 24px}.form,.create-list,.item-form,.email-form{display:grid;gap:12px}.form label{display:grid;gap:6px;color:#3e4a43;font-weight:700}input,select{width:100%;border:1px solid #cdd8cf;border-radius:8px;padding:12px 14px;background:#fff;color:#18201c}input:focus,select:focus{border-color:#2f8a6d;outline:3px solid rgba(47,138,109,.16)}.button,.icon-button,.brand{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:8px;min-height:44px;font-weight:800}.button{padding:0 16px;color:#20312a;background:#dce9d4}.button--primary{background:#2f8a6d;color:#fff}.button:disabled{opacity:.7;cursor:not-allowed}.icon-button{width:44px;height:44px;color:#20312a;background:#e8eee4}.icon-button--danger{color:#8f2f2f;background:#f7e3df}.app-shell{min-height:100vh}.boot-splash{min-height:100vh;display:grid;place-items:center;gap:16px;align-content:center;color:#20312a;background:#f4f7f1}.boot-splash img{width:78px;height:78px}.boot-splash strong{font-size:1.35rem}.boot-splash span{width:34px;height:34px;border:4px solid #d7e6d0;border-top-color:#2f8a6d;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.topbar{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px clamp(16px,4vw,48px);border-bottom:1px solid #dfe7db;background:#ffffffeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.topbar__user{display:flex;align-items:center;gap:10px;min-width:0}.topbar__user span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand{background:transparent;color:#18201c;font-size:1rem}.page{width:min(1180px,100%);margin:0 auto;padding:clamp(20px,4vw,44px)}.offline-banner{position:sticky;top:74px;z-index:3;margin:-8px 0 16px;border-radius:8px;padding:10px 14px;color:#6f4317;background:#fff0cf;font-weight:900;box-shadow:0 8px 24px #4631121a}.section-heading,.detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.section-heading h1,.detail-header h1{margin:0 0 6px;font-size:clamp(1.8rem,3vw,2.7rem)}.section-heading p,.detail-header p{margin:0;color:#657269}.actions{display:flex;gap:8px}.create-list{grid-template-columns:1fr auto;margin-bottom:22px}.list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.list-card,.items-panel,.side-panel{background:#fff;border:1px solid #dfe7db;border-radius:8px}.list-card{display:grid;gap:24px;padding:18px;color:inherit}.list-card h2{margin:0 0 6px;font-size:1.2rem}.list-card p{margin:0;color:#657269}.list-card__meta{display:flex;justify-content:space-between;gap:10px;color:#506158;font-size:.92rem}.list-card.is-archived{opacity:.76;background:#f7f9f4}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px}.items-panel,.side-panel{padding:18px}.archive-section{margin-top:34px}.search-field{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:14px;border:1px solid #cdd8cf;border-radius:8px;padding:0 12px;background:#fff;color:#657269}.search-field input{border:0;padding-inline:0}.search-field input:focus{outline:0}.item-form{grid-template-columns:minmax(0,1fr) 140px 180px auto;margin-bottom:16px}.items-list,.favorite-list,.member-list,.side-panel{display:grid;gap:10px}.favorite-toggle{grid-column:1/-1;display:inline-flex;align-items:center;gap:8px;width:fit-content;color:#506158;font-weight:700}.favorite-toggle input{width:18px;height:18px}.category-group{display:grid;gap:8px}.category-header{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:44px;border:0;border-radius:8px;padding:0 10px;color:#25352d;background:#e8f0e2;font-weight:800;text-align:left}.category-header span{overflow-wrap:anywhere}.category-header strong{min-width:28px;min-height:24px;display:grid;place-items:center;border-radius:999px;color:#2f5e4d;background:#fff;font-size:.85rem}.item-row,.member-row{display:grid;align-items:center;gap:10px;padding:10px;border:1px solid #e5ece1;border-radius:8px;background:#fbfcfa}.favorite-list{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.export-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.favorite-chip{display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:stretch;border:1px solid #dfe7db;border-radius:8px;overflow:hidden;background:#fbfcfa}.favorite-chip button{min-width:0;border:0;background:transparent;color:#24342d}.favorite-chip>button:first-child{display:grid;gap:2px;justify-items:start;padding:9px 10px;text-align:left;font-weight:800}.favorite-chip>button:first-child span,.favorite-chip>button:first-child small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.favorite-chip>button:first-child small{color:#657269;font-weight:700}.favorite-chip__delete{display:grid;place-items:center;color:#8f2f2f;border-left:1px solid #e5ece1}.item-row{grid-template-columns:38px minmax(0,1fr) 44px 44px}.item-row.is-checked .item-row__content{color:#7b877f;text-decoration:line-through}.item-row__content{min-width:0}.item-row__content strong,.item-row__content span{display:block;overflow-wrap:anywhere}.item-row__content span{color:#657269;font-size:.92rem;margin-top:2px}.check-button{width:34px;height:34px;display:grid;place-items:center;border:2px solid #2f8a6d;border-radius:50%;background:#fff;color:#2f8a6d}.side-panel section{display:grid;gap:12px}.side-panel section h2{display:flex;align-items:center;gap:8px;margin:0;font-size:1.05rem}.member-row{grid-template-columns:minmax(0,1fr) auto}.member-row strong,.member-row span{display:block;overflow-wrap:anywhere}.member-row span{color:#657269;font-size:.9rem}.copy-field{font-size:.9rem}.activity-list{display:grid;gap:8px}.activity-row{display:grid;gap:2px;padding:9px 10px;border:1px solid #e5ece1;border-radius:8px;background:#fbfcfa}.activity-row span{font-weight:800;overflow-wrap:anywhere}.activity-row small{color:#657269}.undo-toast{position:fixed;left:50%;bottom:18px;z-index:10;width:min(520px,100% - 28px);transform:translate(-50%);display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:8px;padding:12px 14px;color:#fff;background:#20312a;box-shadow:0 12px 34px #192d2338}.undo-toast span{font-weight:800}.undo-toast button{border:0;border-radius:8px;padding:8px 10px;color:#20312a;background:#dff0e6;font-weight:900}.pwa-prompt,.update-toast{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:20;display:flex;align-items:center;gap:10px;width:min(440px,100% - 32px);border:1px solid #bddfcf;border-radius:8px;padding:12px;color:#20312a;background:#fff;box-shadow:0 18px 46px #192d2333}.pwa-prompt span,.update-toast span{min-width:0;flex:1;font-weight:900}.pwa-prompt button,.update-toast button{min-height:38px;border:0;border-radius:8px;padding:0 10px;color:#20312a;background:#dce9d4;font-weight:900}.pwa-prompt button:first-of-type,.update-toast button:first-of-type{color:#fff;background:#2f8a6d}.update-toast{bottom:max(78px,env(safe-area-inset-bottom) + 78px)}.alert,.notice,.empty-state{border-radius:8px;padding:12px 14px}.alert{margin-bottom:14px;color:#7a2929;background:#f9e4df}.notice{margin-bottom:14px;color:#245a46;background:#dff0e6}.empty-state{color:#657269;background:#edf3e9}.auth-switch{margin-top:18px;text-align:center}.shopping-mode{display:grid;gap:16px;padding-bottom:78px}.shopping-header{position:sticky;top:71px;z-index:1;display:grid;gap:12px;padding:14px;border:1px solid #dfe7db;border-radius:8px;background:#fffffff5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.shopping-header h1{margin:0 0 4px;font-size:clamp(1.5rem,4vw,2.2rem)}.shopping-header p{margin:0;color:#657269;font-weight:800}.shopping-back{width:fit-content}.progress-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.progress-bar{height:12px;overflow:hidden;border-radius:999px;background:#e1e9dc}.progress-bar span{display:block;height:100%;border-radius:inherit;background:#2f8a6d;transition:width .18s ease}.shopping-quick-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.shopping-toggle{display:inline-flex;align-items:center;gap:8px;width:fit-content;color:#506158;font-weight:800}.shopping-toggle input{width:20px;height:20px}.shopping-done{display:grid;gap:12px;justify-items:start;padding:18px;border:1px solid #bddfcf;border-radius:8px;background:#e4f5eb}.shopping-done h2{margin:0;font-size:1.45rem}.shopping-groups{display:grid;gap:14px}.shopping-category{display:grid;gap:10px}.shopping-category.is-done{opacity:.72}.shopping-category__title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 2px}.shopping-category__title h2{margin:0;font-size:1.08rem}.shopping-category__title span{flex:0 0 auto;color:#506158;font-weight:800}.shopping-items{display:grid;gap:10px}.shopping-item{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;min-height:70px;border:1px solid #dfe7db;border-radius:8px;padding:11px 13px;color:#18201c;background:#fff;text-align:left}.shopping-item.is-checked{color:#7b877f;background:#eef3eb}.shopping-item.is-checked .shopping-item__text{text-decoration:line-through}.shopping-item__text{min-width:0}.shopping-item__text strong,.shopping-item__text small{display:block;overflow-wrap:anywhere}.shopping-item__text strong{font-size:1.12rem}.shopping-item__text small{margin-top:3px;color:#657269;font-weight:800}.shopping-check{width:42px;height:42px;display:grid;place-items:center;border:3px solid #2f8a6d;border-radius:50%;color:#2f8a6d;background:#fff}.shopping-footer{position:sticky;bottom:0;display:none;padding:10px 0 0;background:linear-gradient(#f4f7f100,#f4f7f1 32%)}.profile-toast-stack{position:fixed;right:max(16px,env(safe-area-inset-right));top:calc(82px + env(safe-area-inset-top));z-index:30;display:grid;gap:8px;width:min(360px,100% - 32px);pointer-events:none}.profile-toast{border:1px solid #bddfcf;border-radius:8px;padding:12px 14px;color:#20312a;background:#fff;box-shadow:0 14px 36px #192d232e;font-weight:900}.profile-page{display:grid;gap:18px}.profile-hero,.progress-panel,.profile-panel{border:1px solid #dfe7db;border-radius:8px;background:#fff}.profile-hero{display:flex;align-items:center;gap:18px;padding:22px}.profile-hero h1{margin:0 0 8px;font-size:clamp(1.9rem,3vw,2.6rem)}.profile-hero p{display:flex;align-items:center;gap:7px;margin:4px 0 0;color:#657269;font-weight:700}.profile-avatar{width:74px;height:74px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;color:#2f8a6d;background:#dff0e6}.progress-panel{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:16px;align-items:center;padding:18px}.progress-panel h2{margin:3px 0 4px;font-size:1.45rem}.progress-panel p{margin:0;color:#657269;font-weight:800}.eyebrow{color:#2f8a6d;font-size:.8rem;font-weight:900;text-transform:uppercase}.profile-progress{grid-column:1/-1;height:14px;overflow:hidden;border-radius:999px;background:#e1e9dc}.profile-progress span{display:block;height:100%;border-radius:inherit;background:#2f8a6d}.daily-xp{display:grid;gap:2px;justify-items:end}.daily-xp strong{font-size:1.2rem}.daily-xp span{color:#657269;font-weight:800}.profile-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:18px}.profile-panel{display:grid;gap:14px;padding:18px}.profile-panel h2{display:flex;align-items:center;gap:8px;margin:0;font-size:1.1rem}.profile-panel:last-child{grid-column:1/-1}.muted{margin:0;color:#657269;font-weight:700}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.stat-tile,.achievement-row,.xp-event-row{border:1px solid #e5ece1;border-radius:8px;background:#fbfcfa}.stat-tile{display:grid;gap:3px;padding:12px}.stat-tile strong{font-size:1.35rem}.stat-tile span{color:#657269;font-weight:800}.badge-strip,.team-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.badge-strip span,.team-badges span{border-radius:999px;padding:4px 8px;color:#245a46;background:#dff0e6;font-size:.82rem;font-weight:900}.customization-panel{grid-column:1/-1}.cosmetic-section{display:grid;gap:9px}.cosmetic-section h3{margin:0;font-size:1rem}.cosmetic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px}.cosmetic-option{min-height:76px;display:grid;gap:3px;justify-items:start;border:1px solid #dfe7db;border-radius:8px;padding:10px;color:#20312a;background:#fbfcfa;text-align:left}.cosmetic-option strong,.cosmetic-option span,.cosmetic-option small{overflow-wrap:anywhere}.cosmetic-option span,.cosmetic-option small{color:#657269;font-weight:800}.cosmetic-option.is-selected{border-color:#2f8a6d;box-shadow:inset 0 0 0 2px #2f8a6d2e}.cosmetic-option.is-locked{opacity:.58;background:#eef1ec}.frame-bronze{box-shadow:0 0 0 3px #b06a3c}.frame-silber{box-shadow:0 0 0 3px #9aa7ad}.frame-gold{box-shadow:0 0 0 3px #d4a72c}.frame-platin{box-shadow:0 0 0 3px #8cc8c2}.frame-legendary{box-shadow:0 0 0 3px #7b61ff}.frame-team{box-shadow:0 0 0 3px #2f8a6d}.frame-streak{box-shadow:0 0 0 3px #d46b2c}.frame-offline{box-shadow:0 0 0 3px #256d85}.frame-minimal{box-shadow:inset 0 0 0 2px #dfe7db}:root[data-theme=dark],:root[data-theme=midnight]{color-scheme:dark;color:#f3f7f4;background:#111713}:root[data-theme=dark] body,:root[data-theme=midnight] body{color:#f3f7f4;background:#111713}:root[data-theme=dark] .topbar,:root[data-theme=dark] .auth-panel,:root[data-theme=dark] .list-card,:root[data-theme=dark] .items-panel,:root[data-theme=dark] .side-panel,:root[data-theme=dark] .profile-hero,:root[data-theme=dark] .progress-panel,:root[data-theme=dark] .profile-panel,:root[data-theme=dark] .team-members,:root[data-theme=dark] .team-stats,:root[data-theme=dark] .team-panel,:root[data-theme=midnight] .topbar,:root[data-theme=midnight] .auth-panel,:root[data-theme=midnight] .list-card,:root[data-theme=midnight] .items-panel,:root[data-theme=midnight] .side-panel,:root[data-theme=midnight] .profile-hero,:root[data-theme=midnight] .progress-panel,:root[data-theme=midnight] .profile-panel,:root[data-theme=midnight] .team-members,:root[data-theme=midnight] .team-stats,:root[data-theme=midnight] .team-panel{color:#f3f7f4;border-color:#2b3a31;background:#18201c}:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] .search-field,:root[data-theme=dark] .stat-tile,:root[data-theme=dark] .achievement-row,:root[data-theme=dark] .xp-event-row,:root[data-theme=dark] .team-member,:root[data-theme=dark] .team-stat,:root[data-theme=dark] .challenge-row,:root[data-theme=dark] .cosmetic-option,:root[data-theme=midnight] input,:root[data-theme=midnight] select,:root[data-theme=midnight] .search-field,:root[data-theme=midnight] .stat-tile,:root[data-theme=midnight] .achievement-row,:root[data-theme=midnight] .xp-event-row,:root[data-theme=midnight] .team-member,:root[data-theme=midnight] .team-stat,:root[data-theme=midnight] .challenge-row,:root[data-theme=midnight] .cosmetic-option{color:#f3f7f4;border-color:#33463b;background:#202b25}:root[data-theme=ocean-blue] body{background:#eef7f9}:root[data-theme=ocean-blue] .button--primary,:root[data-theme=ocean-blue] .progress-bar span,:root[data-theme=ocean-blue] .profile-progress span,:root[data-theme=ocean-blue] .mini-progress span{background:#256d85}:root[data-theme=warm-sand] body{background:#f8f4ec}:root[data-theme=warm-sand] .button--primary,:root[data-theme=warm-sand] .progress-bar span,:root[data-theme=warm-sand] .profile-progress span,:root[data-theme=warm-sand] .mini-progress span{background:#8b6f47}:root[data-theme=fresh-green] body{background:#f2f8f3}.team-page{display:grid;gap:18px}.team-header{display:flex;align-items:center;gap:16px}.team-header h1{margin:0 0 4px;font-size:clamp(1.8rem,3vw,2.5rem)}.team-header p{margin:0;color:#657269;font-weight:700}.team-members,.team-stats,.team-panel{border:1px solid #dfe7db;border-radius:8px;background:#fff}.team-members{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;padding:14px}.team-member{display:grid;grid-template-columns:46px minmax(0,1fr) 10px;align-items:center;gap:10px;padding:10px;border-radius:8px;background:#fbfcfa}.team-member strong,.team-member span{display:block;overflow-wrap:anywhere}.team-member span{color:#657269;font-size:.9rem;font-weight:800}.team-member i{width:9px;height:9px;border-radius:50%;background:#65b891}.team-avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:#2f8a6d;background:#dff0e6;font-weight:900}.team-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:14px}.team-stat{display:grid;gap:4px;padding:12px;border:1px solid #e5ece1;border-radius:8px;background:#fbfcfa}.team-stat svg{color:#2f8a6d}.team-stat strong{font-size:1.35rem}.team-stat span{color:#657269;font-weight:800}.team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.team-panel{display:grid;gap:14px;padding:18px}.team-panel h2{display:flex;align-items:center;gap:8px;margin:0;font-size:1.1rem}.streak-box{display:grid;gap:4px;padding:16px;border-radius:8px;color:#245a46;background:#dff0e6}.streak-box strong{font-size:1.8rem}.streak-box span{font-weight:800}.challenge-list{display:grid;gap:10px}.challenge-row{display:grid;gap:8px;padding:12px;border:1px solid #e5ece1;border-radius:8px;background:#fbfcfa}.challenge-row.is-complete{border-color:#bddfcf;background:#f4fbf7}.challenge-row strong,.challenge-row span{display:block}.challenge-row span{color:#657269;font-weight:800}.mini-progress{height:8px;overflow:hidden;border-radius:999px;background:#e1e9dc}.mini-progress span{display:block;height:100%;border-radius:inherit;background:#2f8a6d}.profile-insights{display:grid;gap:8px;color:#506158}.achievement-list,.xp-event-list{display:grid;gap:8px}.achievement-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;opacity:.66}.achievement-row.is-unlocked{opacity:1;border-color:#bddfcf;background:#f4fbf7}.achievement-row strong,.achievement-row span{display:block;overflow-wrap:anywhere}.achievement-row span{margin-top:2px;color:#657269;font-size:.9rem}.achievement-row small{color:#2f8a6d;font-weight:900}.xp-event-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px}.xp-event-row span{font-weight:800}.xp-event-row strong{color:#2f8a6d}@media(max-width:820px){.detail-grid,.item-form{grid-template-columns:1fr}.favorite-toggle{width:100%}.shopping-header{top:63px}.profile-grid,.progress-panel,.team-grid{grid-template-columns:1fr}.daily-xp{justify-items:start}}@media(max-width:560px){.topbar{padding:12px 14px}.brand span,.topbar__user span{max-width:120px}.page{padding:18px 14px calc(18px + env(safe-area-inset-bottom))}.offline-banner{top:62px}.section-heading,.detail-header,.create-list{display:grid;grid-template-columns:1fr}.actions{flex-wrap:wrap}.create-list .button{width:100%}.shopping-mode{gap:14px;padding-bottom:88px}.shopping-header{top:58px;margin-inline:-4px}.shopping-quick-add{grid-template-columns:1fr}.shopping-toggle{width:100%}.shopping-item{min-height:76px;grid-template-columns:52px minmax(0,1fr);padding:12px}.shopping-check{width:46px;height:46px}.shopping-footer{display:block}.shopping-footer .button{width:100%}.pwa-prompt,.update-toast{left:14px;right:14px;width:auto;flex-wrap:wrap}.pwa-prompt button,.update-toast button{flex:1 1 120px}.item-row{grid-template-columns:38px minmax(0,1fr) 44px 44px;padding:8px}.favorite-list,.export-actions{grid-template-columns:1fr}.auth-panel{padding:22px}.profile-toast-stack{left:14px;right:14px;top:70px;width:auto}.profile-hero{align-items:flex-start;padding:18px}.team-header{display:grid}.profile-avatar{width:56px;height:56px}}
