@charset "UTF-8";:root{--ds-color-primary: #23775d;--ds-color-primary-strong: #185943;--ds-color-secondary: #eef4ef;--ds-color-accent: #4d7cfe;--ds-color-success: #208a5d;--ds-color-warning: #b7791f;--ds-color-danger: #c2413b;--ds-color-info: #256d85;--ds-color-background: #f7f8f6;--ds-color-surface: #ffffff;--ds-color-surface-elevated: #ffffff;--ds-color-border: #dfe5df;--ds-color-divider: #edf0ec;--ds-color-text-primary: #18201c;--ds-color-text-secondary: #66736b;--ds-color-text-disabled: #9aa49e;--ds-space-1: 4px;--ds-space-2: 8px;--ds-space-3: 12px;--ds-space-4: 16px;--ds-space-5: 20px;--ds-space-6: 24px;--ds-space-8: 32px;--ds-space-10: 40px;--ds-space-12: 48px;--ds-space-16: 64px;--ds-radius-sm: 8px;--ds-radius-md: 12px;--ds-radius-lg: 16px;--ds-radius-xl: 24px;--ds-shadow-sm: 0 1px 2px rgba(24, 32, 28, .06);--ds-shadow-md: 0 10px 28px rgba(24, 32, 28, .1);--ds-shadow-lg: 0 24px 70px rgba(24, 32, 28, .16);--ds-transition-fast: .16s ease-out;--ds-transition-normal: .22s ease-out;--ds-transition-slow: .32s ease-out;--ds-font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ds-font-display-size: 2.75rem;--ds-font-h1-size: 2.25rem;--ds-font-h2-size: 1.5rem;--ds-font-h3-size: 1.125rem;--ds-font-subtitle-size: 1rem;--ds-font-body-size: .95rem;--ds-font-caption-size: .8125rem;--ds-font-button-size: .925rem;--ds-font-label-size: .8125rem;--ds-line-tight: 1.12;--ds-line-normal: 1.45;--ds-weight-regular: 500;--ds-weight-semibold: 700;--ds-weight-bold: 850;--ds-breakpoint-sm: 560px;--ds-breakpoint-md: 820px;--ds-breakpoint-lg: 1180px;--ds-touch-target: 44px;--ds-focus-ring: 0 0 0 3px rgba(35, 119, 93, .24)}:root[data-theme=dark],:root[data-theme=midnight]{--ds-color-primary: #65c99b;--ds-color-primary-strong: #8bdbb4;--ds-color-secondary: #202b25;--ds-color-accent: #8eb3ff;--ds-color-success: #74d5a3;--ds-color-warning: #f2bf65;--ds-color-danger: #ff8a82;--ds-color-info: #8ed4e8;--ds-color-background: #111713;--ds-color-surface: #18201c;--ds-color-surface-elevated: #202b25;--ds-color-border: #33463b;--ds-color-divider: #2b3a31;--ds-color-text-primary: #f3f7f4;--ds-color-text-secondary: #b7c2bb;--ds-color-text-disabled: #78837c;--ds-focus-ring: 0 0 0 3px rgba(101, 201, 155, .32)}.ds-display,.ds-h1,.ds-h2,.ds-h3,.ds-subtitle,.ds-body,.ds-caption,.ds-label{margin:0;color:var(--ds-color-text-primary)}.ds-display{font-size:var(--ds-font-display-size);line-height:var(--ds-line-tight);font-weight:var(--ds-weight-bold)}.ds-h1{font-size:var(--ds-font-h1-size);line-height:var(--ds-line-tight);font-weight:var(--ds-weight-bold)}.ds-h2{font-size:var(--ds-font-h2-size);line-height:1.22;font-weight:var(--ds-weight-bold)}.ds-h3{font-size:var(--ds-font-h3-size);line-height:1.28;font-weight:var(--ds-weight-semibold)}.ds-subtitle{color:var(--ds-color-text-secondary);font-size:var(--ds-font-subtitle-size);line-height:var(--ds-line-normal);font-weight:var(--ds-weight-semibold)}.ds-body{font-size:var(--ds-font-body-size);line-height:var(--ds-line-normal);font-weight:var(--ds-weight-regular)}.ds-caption{color:var(--ds-color-text-secondary);font-size:var(--ds-font-caption-size);line-height:1.35}.ds-label{font-size:var(--ds-font-label-size);line-height:1.25;font-weight:var(--ds-weight-semibold)}.ds-button{min-height:var(--ds-touch-target);display:inline-flex;align-items:center;justify-content:center;gap:var(--ds-space-2);border:1px solid transparent;border-radius:var(--ds-radius-md);padding:0 var(--ds-space-4);font-size:var(--ds-font-button-size);font-weight:var(--ds-weight-bold);line-height:1;transition:transform var(--ds-transition-fast),background var(--ds-transition-fast),border-color var(--ds-transition-fast),box-shadow var(--ds-transition-fast)}.ds-button:hover{transform:translateY(-1px)}.ds-button:active{transform:translateY(0) scale(.985)}.ds-button:focus-visible{outline:0;box-shadow:var(--ds-focus-ring)}.ds-button:disabled,.ds-button[aria-disabled=true]{opacity:.55;cursor:not-allowed;transform:none}.ds-button--primary{color:#fff;background:var(--ds-color-primary)}.ds-button--secondary{color:var(--ds-color-text-primary);background:var(--ds-color-secondary)}.ds-button--ghost,.ds-button--text{color:var(--ds-color-primary);background:transparent}.ds-button--ghost{border-color:var(--ds-color-border)}.ds-button--danger{color:#fff;background:var(--ds-color-danger)}.ds-fab{width:56px;height:56px;border-radius:50%;padding:0;box-shadow:var(--ds-shadow-md)}.ds-field{display:grid;gap:var(--ds-space-2)}.ds-input,.ds-textarea,.ds-select{width:100%;border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-md);padding:12px 14px;color:var(--ds-color-text-primary);background:var(--ds-color-surface);transition:border-color var(--ds-transition-fast),box-shadow var(--ds-transition-fast),background var(--ds-transition-fast)}.ds-input::placeholder,.ds-textarea::placeholder,.ds-select::placeholder{color:var(--ds-color-text-disabled)}.ds-input:focus,.ds-textarea:focus,.ds-select:focus{border-color:var(--ds-color-primary);outline:0;box-shadow:var(--ds-focus-ring)}.ds-input:disabled,.ds-textarea:disabled,.ds-select:disabled{color:var(--ds-color-text-disabled);background:var(--ds-color-secondary)}.ds-input[aria-invalid=true],.ds-textarea[aria-invalid=true],.ds-select[aria-invalid=true]{border-color:var(--ds-color-danger)}.ds-textarea{min-height:112px;resize:vertical}.ds-card{border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-lg);padding:var(--ds-space-5);background:var(--ds-color-surface);box-shadow:var(--ds-shadow-sm)}.ds-card--elevated{background:var(--ds-color-surface-elevated);box-shadow:var(--ds-shadow-md)}.ds-badge,.ds-chip{min-height:28px;display:inline-flex;align-items:center;gap:var(--ds-space-1);border-radius:999px;padding:0 var(--ds-space-3);font-size:var(--ds-font-caption-size);font-weight:var(--ds-weight-bold)}.ds-badge{color:var(--ds-color-primary-strong);background:color-mix(in srgb,var(--ds-color-primary) 13%,transparent)}.ds-badge--success{color:var(--ds-color-success);background:color-mix(in srgb,var(--ds-color-success) 13%,transparent)}.ds-badge--warning{color:var(--ds-color-warning);background:color-mix(in srgb,var(--ds-color-warning) 15%,transparent)}.ds-badge--danger{color:var(--ds-color-danger);background:color-mix(in srgb,var(--ds-color-danger) 12%,transparent)}.ds-chip{border:1px solid var(--ds-color-border);color:var(--ds-color-text-primary);background:var(--ds-color-surface)}.ds-snackbar{display:flex;align-items:center;gap:var(--ds-space-3);border-radius:var(--ds-radius-md);padding:var(--ds-space-3) var(--ds-space-4);color:#fff;background:#1f2a24;box-shadow:var(--ds-shadow-md);animation:ds-slide-in var(--ds-transition-normal)}.ds-snackbar--success{background:var(--ds-color-success)}.ds-snackbar--warning{background:var(--ds-color-warning)}.ds-snackbar--error{background:var(--ds-color-danger)}.ds-snackbar--info{background:var(--ds-color-info)}.ds-dialog{width:min(520px,100vw - 32px);border:0;border-radius:var(--ds-radius-xl);padding:0;color:var(--ds-color-text-primary);background:var(--ds-color-surface);box-shadow:var(--ds-shadow-lg)}.ds-dialog__header,.ds-dialog__content,.ds-dialog__footer{padding:var(--ds-space-5)}.ds-dialog__header{border-bottom:1px solid var(--ds-color-divider)}.ds-dialog__footer{display:flex;justify-content:flex-end;gap:var(--ds-space-2);border-top:1px solid var(--ds-color-divider)}.ds-skeleton{position:relative;overflow:hidden;border-radius:var(--ds-radius-md);background:var(--ds-color-secondary)}.ds-skeleton:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transform:translate(-100%);animation:ds-shimmer 1.35s infinite}.ds-skeleton--text{height:16px}.ds-skeleton--button{width:112px;height:44px}.ds-skeleton--avatar{width:48px;height:48px;border-radius:50%}.ds-skeleton--card{height:160px}.ds-skeleton--list{height:64px}.ds-stack{display:grid;gap:var(--ds-space-4)}.ds-cluster{display:flex;flex-wrap:wrap;gap:var(--ds-space-2);align-items:center}.ds-divider{height:1px;background:var(--ds-color-divider)}@keyframes ds-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ds-slide-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes ds-scale-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes ds-shimmer{to{transform:translate(100%)}}:focus-visible{outline:0;box-shadow:var(--ds-focus-ring)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}:root{color-scheme:light;font-family:var(--ds-font-family);color:var(--ds-color-text-primary);background:var(--ds-color-background)}*{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:var(--ds-color-background)}button,input,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--ds-transition-fast),background var(--ds-transition-fast),border-color var(--ds-transition-fast),box-shadow var(--ds-transition-fast)}button:focus-visible{outline:0;box-shadow:var(--ds-focus-ring)}a{color:var(--ds-color-primary);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 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}}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{overscroll-behavior-y:none}.app-shell{min-height:100dvh}.page{padding-bottom:calc(clamp(20px,4vw,44px) + env(safe-area-inset-bottom))}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,.button,.icon-button,.list-card,.shopping-item,.favorite-chip button,.category-header,.topbar__link,.bottom-nav__item{touch-action:manipulation}.button,.icon-button,.bottom-nav__item,.shopping-item,.check-button,.favorite-chip button,.category-header,.cosmetic-option{-webkit-user-select:none;user-select:none}.button:active:not(:disabled),.icon-button:active:not(:disabled),.bottom-nav__item:active,.shopping-item:active,.favorite-chip button:active:not(:disabled),.list-card:active{transform:translateY(1px) scale(.985)}.topbar__link.is-active,.bottom-nav__item.is-active{color:var(--ds-color-primary);background:#fffffff0;box-shadow:var(--ds-shadow-sm)}.bottom-nav{position:fixed;left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom));z-index:50;display:none;grid-template-columns:1fr 1fr;gap:6px;min-height:64px;padding:6px;border:1px solid rgba(223,229,223,.9);border-radius:24px;background:#ffffffe6;box-shadow:0 20px 60px #18201c29;-webkit-backdrop-filter:blur(18px) saturate(145%);backdrop-filter:blur(18px) saturate(145%)}.bottom-nav__item{display:grid;place-items:center;gap:2px;min-height:52px;border:0;border-radius:18px;color:var(--ds-color-text-secondary);background:transparent;font-size:.76rem;font-weight:900}.bottom-nav__item svg{transition:transform var(--ds-transition-fast)}.bottom-nav__item.is-active svg{transform:translateY(-1px)}.dialog-backdrop{animation:app-fade-in .18s ease-out}.app-dialog{transform-origin:50% 90%;animation:app-dialog-in .22s cubic-bezier(.2,.8,.2,1)}.undo-toast,.profile-toast,.pwa-prompt,.update-toast{animation:app-toast-in .24s cubic-bezier(.2,.8,.2,1)}.alert,.notice,.empty-state{animation:app-fade-slide-in .18s ease-out}.ds-skeleton:after{animation-duration:1.8s}.list-card,.dashboard-stat,.summary-tile,.team-stat,.stat-tile,.favorite-chip,.member-row,.activity-row,.achievement-row,.challenge-row,.xp-event-row{content-visibility:auto;contain-intrinsic-size:auto 120px}.item-row,.shopping-item,.favorite-chip,.category-group{animation:app-fade-slide-in .18s ease-out}.check-button,.shopping-check{transition:transform var(--ds-transition-fast),border-color var(--ds-transition-fast),background var(--ds-transition-fast),box-shadow var(--ds-transition-fast)}.check-button:active,.shopping-item:active .shopping-check{transform:scale(.9)}.item-row.is-checked .check-button,.shopping-item.is-checked .shopping-check{animation:app-check-pop .22s cubic-bezier(.18,.9,.28,1.3);box-shadow:0 8px 18px #23775d2e}.favorite-chip{transition:transform var(--ds-transition-fast),border-color var(--ds-transition-fast),box-shadow var(--ds-transition-fast)}.favorite-chip:hover,.favorite-chip:focus-within{border-color:#23775d47;box-shadow:var(--ds-shadow-sm)}.search-field{position:relative}.search-field:focus-within svg{color:var(--ds-color-primary);transform:scale(1.04)}.shopping-mode{scroll-padding-top:170px}.shopping-header{will-change:transform}.shopping-footer{box-shadow:0 -12px 32px #18201c14}.shopping-done{animation:app-done-in .28s cubic-bezier(.2,.8,.2,1)}input[type=search]{-webkit-appearance:none}input[type=checkbox]{accent-color:var(--ds-color-primary)}.favorite-toggle,.shopping-toggle{padding-inline:var(--ds-space-3)}.favorite-toggle input,.shopping-toggle input{width:20px;height:20px;flex:0 0 auto}@keyframes app-fade-in{0%{opacity:0}}@keyframes app-fade-slide-in{0%{opacity:0;transform:translate3d(0,6px,0)}}@keyframes app-dialog-in{0%{opacity:0;transform:translate3d(0,10px,0) scale(.97)}}@keyframes app-toast-in{0%{opacity:0;transform:translate3d(0,12px,0) scale(.98)}}@keyframes app-check-pop{0%{transform:scale(.86)}70%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes app-done-in{0%{opacity:0;transform:translate3d(0,10px,0) scale(.985)}}@media(max-width:820px){.topbar__nav{display:none}.bottom-nav{display:grid}.page{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.shopping-mode{padding-bottom:calc(120px + env(safe-area-inset-bottom))}.shopping-footer{bottom:calc(82px + env(safe-area-inset-bottom))}}@media(hover:none){.list-card:hover,.shopping-item:hover,.button:hover,.icon-button:hover,.cosmetic-option:hover,.badge-option:hover{transform:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.dialog-backdrop,.app-dialog,.undo-toast,.profile-toast,.pwa-prompt,.update-toast,.alert,.notice,.empty-state,.item-row,.shopping-item,.favorite-chip,.category-group,.shopping-done,.item-row.is-checked .check-button,.shopping-item.is-checked .shopping-check{animation:none}}.onboarding-page{min-height:min(760px,100dvh - 120px);display:grid;place-items:center;padding:clamp(8px,3vw,28px)}.onboarding-card{width:min(620px,100%);display:grid;justify-items:center;gap:var(--ds-space-5);overflow:hidden;padding:clamp(22px,5vw,42px);text-align:center}.onboarding-progress{width:100%;height:8px;overflow:hidden;border-radius:999px;background:#dfe5dfdb}.onboarding-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--ds-color-primary),var(--ds-color-accent));transition:width .24s ease-out}.onboarding-visual{display:grid;width:clamp(76px,20vw,112px);height:clamp(76px,20vw,112px);place-items:center;border:1px solid rgba(35,119,93,.18);border-radius:32px;color:var(--ds-color-primary);background:linear-gradient(135deg,#23775d1f,#4d7cfe14),#fff;box-shadow:0 18px 42px #18201c1a}.onboarding-copy{display:grid;justify-items:center;gap:var(--ds-space-3)}.onboarding-copy h1{max-width:560px;margin:0;font-size:clamp(2rem,6vw,3.25rem);line-height:var(--ds-line-tight)}.onboarding-copy p{max-width:470px;margin:0;color:var(--ds-color-text-secondary);font-size:1.02rem;font-weight:650}.onboarding-dots{display:flex;gap:8px}.onboarding-dots button{width:10px;height:10px;min-height:10px;border:0;border-radius:999px;padding:0;background:var(--ds-color-border);transition:width var(--ds-transition-fast),background var(--ds-transition-fast)}.onboarding-dots button.is-active{width:28px;background:var(--ds-color-primary)}.onboarding-actions{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--ds-space-3)}.onboarding-actions>div{display:flex;gap:var(--ds-space-2)}.guided-card{display:grid;gap:var(--ds-space-3);margin-bottom:var(--ds-space-4);border:1px solid rgba(35,119,93,.2);border-radius:var(--ds-radius-lg);padding:var(--ds-space-4);background:linear-gradient(135deg,#23775d17,#ffffffdb 52%),#fff;box-shadow:var(--ds-shadow-sm)}.guided-card strong{color:var(--ds-color-text-primary);font-size:1.02rem}.guided-card span{color:var(--ds-color-text-secondary);font-weight:650}.guided-card--compact{gap:6px;margin-bottom:var(--ds-space-3);padding:var(--ds-space-3)}.shopping-guide{margin-bottom:0}.starter-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.chip-button{min-height:38px;border:1px solid rgba(223,229,223,.92);border-radius:999px;padding:0 13px;color:var(--ds-color-primary);background:#ffffffd6;font-weight:900}.chip-button:hover,.chip-button:focus-visible{border-color:#23775d52;background:#23775d14}.profile-onboarding-link{justify-self:start;margin-bottom:var(--ds-space-2)}@media(max-width:560px){.onboarding-page{min-height:calc(100dvh - 86px);padding:0}.onboarding-card{min-height:calc(100dvh - 110px);align-content:center;border-radius:var(--ds-radius-lg)}.onboarding-actions{display:grid}.onboarding-actions>div{display:grid;grid-template-columns:52px 1fr}.onboarding-actions .button{width:100%}.starter-chips{justify-content:flex-start}}@media(prefers-reduced-motion:reduce){.onboarding-progress span,.onboarding-dots button{transition:none}}.profile-hero{grid-template-columns:auto minmax(0,1fr);align-items:center;min-height:210px}.profile-hero .profile-avatar{width:clamp(82px,12vw,118px);height:clamp(82px,12vw,118px);font-size:clamp(1.55rem,4vw,2.35rem);border:4px solid rgba(255,255,255,.9);box-shadow:0 20px 46px #18201c29}.profile-hero h1{margin-bottom:10px;font-size:clamp(2rem,5vw,3.35rem)}.profile-hero__stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.profile-hero__stats span{min-height:34px;display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(223,229,223,.92);border-radius:999px;padding:0 12px;color:var(--ds-color-text-primary);background:#ffffffc7;font-size:var(--ds-font-caption-size);font-weight:900}.profile-hero__stats svg{color:var(--ds-color-primary)}.progress-panel{align-items:center;border-color:#23775d2e;background:linear-gradient(135deg,#23775d14,#ffffffdb 42%),#ffffffeb}.profile-progress,.achievement-progress{position:relative;overflow:hidden}.profile-progress span,.achievement-progress span,.mini-progress span,.progress-bar span{transition:width .42s cubic-bezier(.2,.8,.2,1)}.profile-grid{align-items:start}@media(min-width:1080px){.profile-grid{grid-template-columns:minmax(420px,1.18fr) minmax(300px,.82fr)}.customization-panel,.profile-panel:has(.achievement-list--cards),.profile-panel:has(.stat-grid){grid-column:span 1}.team-grid{grid-template-columns:minmax(360px,.9fr) minmax(520px,1.1fr)}.team-panel:has(.achievement-list--cards),.team-panel:has(.activity-timeline){grid-column:span 1}}.achievement-list--cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:stretch}.achievement-card{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr);gap:var(--ds-space-3);min-height:148px;overflow:hidden;border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-lg);padding:var(--ds-space-4);background:#ffffffd1;box-shadow:var(--ds-shadow-sm);transition:transform var(--ds-transition-fast),border-color var(--ds-transition-fast),box-shadow var(--ds-transition-fast),opacity var(--ds-transition-fast)}.achievement-card:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--achievement-color, var(--ds-color-primary))}.achievement-card:hover,.achievement-card:focus-within{border-color:color-mix(in srgb,var(--achievement-color, var(--ds-color-primary)) 36%,var(--ds-color-border));transform:translateY(-2px);box-shadow:0 18px 42px #18201c1c}.achievement-card.is-locked{opacity:.76;background:#ffffff94}.achievement-card.is-unlocked{border-color:color-mix(in srgb,var(--achievement-color, var(--ds-color-primary)) 34%,var(--ds-color-border))}.achievement-card--common{--achievement-color: #23775d}.achievement-card--rare{--achievement-color: #4d7cfe}.achievement-card--epic{--achievement-color: #8b5cf6}.achievement-card--legendary{--achievement-color: #c47a22}.achievement-card__icon{position:relative;display:grid;width:52px;height:52px;place-items:center;border-radius:18px;color:var(--achievement-color, var(--ds-color-primary));background:color-mix(in srgb,var(--achievement-color, var(--ds-color-primary)) 12%,#ffffff)}.achievement-card__icon svg:last-child:not(:first-child){position:absolute;right:-4px;bottom:-4px;width:22px;height:22px;border:2px solid #ffffff;border-radius:50%;padding:3px;color:var(--ds-color-text-secondary);background:#fff}.achievement-card__body{display:grid;gap:8px;min-width:0}.achievement-card__body p{margin:0;color:var(--ds-color-text-secondary);font-size:var(--ds-font-caption-size);line-height:1.38}.achievement-card__body small{color:var(--ds-color-text-secondary);font-weight:900}.achievement-card__title{display:grid;gap:6px}.achievement-card__title strong{color:var(--ds-color-text-primary);line-height:1.2}.achievement-card__title span{width:fit-content;border-radius:999px;padding:4px 9px;color:var(--achievement-color, var(--ds-color-primary));background:color-mix(in srgb,var(--achievement-color, var(--ds-color-primary)) 10%,transparent);font-size:.72rem;font-weight:950}.achievement-progress{height:8px;border-radius:999px;background:#dfe5dfdb}.achievement-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--achievement-color, var(--ds-color-primary)),color-mix(in srgb,var(--achievement-color, var(--ds-color-primary)) 70%,#ffffff))}.achievement-card.is-unlocked .achievement-card__icon{animation:achievement-glow .9s ease-out}.team-header{min-height:156px}.team-members{align-items:stretch}.team-member{min-height:88px;transition:transform var(--ds-transition-fast),border-color var(--ds-transition-fast),box-shadow var(--ds-transition-fast)}.team-member:hover{border-color:#23775d40;transform:translateY(-1px);box-shadow:var(--ds-shadow-sm)}.team-avatar{width:52px;height:52px;font-size:1.05rem}.activity-timeline{position:relative;gap:0}.activity-timeline:before{content:"";position:absolute;top:8px;bottom:8px;left:15px;width:2px;border-radius:999px;background:var(--ds-color-divider)}.timeline-row{position:relative;grid-template-columns:minmax(0,1fr);margin-left:28px;border:0;border-bottom:1px solid var(--ds-color-divider);border-radius:0;background:transparent}.timeline-row:before{content:"";position:absolute;top:17px;left:-20px;width:10px;height:10px;border:2px solid #ffffff;border-radius:50%;background:var(--ds-color-primary);box-shadow:0 0 0 3px #23775d1f}.timeline-row span{color:var(--ds-color-text-primary);font-weight:800}.activity-row span{line-height:1.35}.empty-state--compact,.empty-state--premium{position:relative}.empty-state--compact:before,.empty-state--premium:before{content:"✦";display:grid;width:34px;height:34px;place-items:center;margin-bottom:4px;border-radius:50%;color:var(--ds-color-primary);background:#23775d17;font-weight:950}.shopping-done{border-color:#23775d38;background:linear-gradient(135deg,#23775d1a,#ffffffe0 46%),#fff}.shopping-done h2:after{content:" Gut gemacht.";color:var(--ds-color-text-secondary);font-size:.92rem;font-weight:800}@keyframes achievement-glow{0%{transform:scale(.94);box-shadow:0 0 color-mix(in srgb,var(--achievement-color, var(--ds-color-primary)) 32%,transparent)}55%{transform:scale(1.05);box-shadow:0 0 0 10px transparent}to{transform:scale(1)}}@media(max-width:720px){.profile-hero{grid-template-columns:1fr;justify-items:start}.achievement-list--cards{grid-template-columns:1fr}.achievement-card{min-height:132px}}@media(prefers-reduced-motion:reduce){.achievement-card,.team-member,.achievement-card.is-unlocked .achievement-card__icon{animation:none;transition:none}}body{color:var(--ds-color-text-primary);background:linear-gradient(180deg,#ffffffc7,#f7f8f600 280px),var(--ds-color-background);font-size:var(--ds-font-body-size);line-height:var(--ds-line-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{color:#fff;background:var(--ds-color-primary)}.app-shell{background:linear-gradient(180deg,#eef4ef94,#f7f8f600 360px),var(--ds-color-background)}.page{padding-top:clamp(24px,4vw,48px)}.topbar{z-index:20;border-bottom:1px solid rgba(223,229,223,.78);background:#ffffffd1;box-shadow:0 10px 36px #18201c0f;-webkit-backdrop-filter:blur(18px) saturate(145%);backdrop-filter:blur(18px) saturate(145%)}.brand{min-height:46px;padding-inline:10px 14px;border-radius:var(--ds-radius-lg);color:var(--ds-color-text-primary)}.brand:hover{background:#23775d14}.button,.icon-button{min-height:var(--ds-touch-target);border:1px solid transparent;border-radius:var(--ds-radius-md);box-shadow:none;transition:transform var(--ds-transition-fast),background var(--ds-transition-fast),border-color var(--ds-transition-fast),box-shadow var(--ds-transition-fast),color var(--ds-transition-fast)}.button:hover:not(:disabled),.icon-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--ds-shadow-sm)}.button:active:not(:disabled),.icon-button:active:not(:disabled){transform:translateY(0) scale(.985)}.button{padding-inline:18px;color:var(--ds-color-text-primary);background:var(--ds-color-secondary);border-color:#dfe5dff2}.button--primary{color:#fff;background:linear-gradient(180deg,#2f8a6d,var(--ds-color-primary-strong));border-color:#18594333;box-shadow:0 10px 24px #23775d2e}.button--primary:hover:not(:disabled){box-shadow:0 14px 30px #23775d3d}.button:disabled{box-shadow:none}.icon-button{color:var(--ds-color-text-primary);background:#eef4efe0;border-color:#dfe5dff2}.icon-button--danger{color:var(--ds-color-danger);background:#c2413b1a;border-color:#c2413b2e}input,select,textarea,.copy-field{min-height:var(--ds-touch-target);border-color:var(--ds-color-border);border-radius:var(--ds-radius-md);background:#ffffffe6;color:var(--ds-color-text-primary);transition:border-color var(--ds-transition-fast),background var(--ds-transition-fast),box-shadow var(--ds-transition-fast)}input::placeholder,select::placeholder,textarea::placeholder,.copy-field::placeholder{color:var(--ds-color-text-disabled)}input:focus,input:focus-visible,select:focus,select:focus-visible,textarea:focus,textarea:focus-visible,.copy-field:focus,.copy-field:focus-visible{border-color:var(--ds-color-primary);outline:0;box-shadow:var(--ds-focus-ring)}.auth-panel,.dashboard-hero,.dashboard-stat,.dashboard-create,.list-card,.items-panel,.side-panel,.profile-hero,.progress-panel,.profile-panel,.team-members,.team-stat,.team-panel,.shopping-header,.shopping-done{border:1px solid rgba(223,229,223,.92);border-radius:var(--ds-radius-lg);background:#ffffffe0;box-shadow:var(--ds-shadow-sm);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.auth-panel,.items-panel,.side-panel,.profile-panel,.team-panel{box-shadow:0 18px 48px #18201c14}.eyebrow{display:inline-flex;width:fit-content;margin-bottom:10px;color:var(--ds-color-primary);font-size:var(--ds-font-label-size);font-weight:900;letter-spacing:0;text-transform:uppercase}.section-heading h1,.detail-header h1,.team-header h1{color:var(--ds-color-text-primary);line-height:var(--ds-line-tight)}.section-heading p,.detail-header p,.team-header p{color:var(--ds-color-text-secondary);font-weight:650}.dashboard{display:grid;gap:var(--ds-space-6)}.dashboard-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--ds-space-6);overflow:hidden;padding:clamp(24px,5vw,44px)}.dashboard-hero h1{margin:0;font-size:clamp(2rem,5vw,3.7rem);line-height:var(--ds-line-tight)}.dashboard-hero p{max-width:620px;margin:12px 0 0;color:var(--ds-color-text-secondary);font-size:clamp(1rem,2vw,1.14rem);font-weight:650}.dashboard-hero:after{content:"";position:absolute;right:-28px;bottom:-42px;width:220px;height:140px;border:1px solid rgba(35,119,93,.12);border-radius:28px;background:linear-gradient(135deg,#23775d14,#4d7cfe14);transform:rotate(-8deg);pointer-events:none}.dashboard-hero__mark{position:relative;z-index:1;display:grid;flex:0 0 auto;width:72px;height:72px;place-items:center;border:1px solid rgba(35,119,93,.18);border-radius:22px;color:var(--ds-color-primary);background:#eef4efcc;box-shadow:inset 0 1px #ffffffb3}.dashboard-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ds-space-3)}.dashboard-stat{display:grid;gap:6px;min-height:112px;padding:var(--ds-space-4)}.dashboard-stat svg{color:var(--ds-color-primary)}.dashboard-stat strong{color:var(--ds-color-text-primary);font-size:1.7rem;line-height:1}.dashboard-stat span{color:var(--ds-color-text-secondary);font-size:var(--ds-font-caption-size);font-weight:850}.dashboard-create{grid-template-columns:minmax(0,1fr) auto;padding:var(--ds-space-3)}.list-grid{gap:var(--ds-space-4)}.list-card{position:relative;min-height:150px;overflow:hidden;padding:var(--ds-space-5);color:var(--ds-color-text-primary);transition:transform var(--ds-transition-normal),border-color var(--ds-transition-fast),box-shadow var(--ds-transition-normal)}.list-card h2{margin:0 0 6px;font-size:1.2rem}.list-card p,.list-card .list-card__meta{color:var(--ds-color-text-secondary)}.list-card:hover,.list-card:focus-visible{border-color:#23775d59;transform:translateY(-3px);box-shadow:0 22px 52px #18201c1f}.list-card:after{content:"";position:absolute;right:-42px;bottom:-48px;width:128px;height:128px;border-radius:32px;background:linear-gradient(135deg,#23775d21,#4d7cfe1f);transform:rotate(12deg)}.list-card.is-archived{opacity:.82}.detail-header{align-items:center;padding:var(--ds-space-2) 0}.actions{flex-wrap:wrap;justify-content:flex-end}.detail-grid{gap:var(--ds-space-5)}.items-panel,.side-panel{padding:clamp(16px,3vw,24px)}.search-field{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;min-height:48px;border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-md);padding:0 var(--ds-space-3);background:#ffffffd1}.search-field svg{color:var(--ds-color-text-secondary)}.search-field input{min-height:46px;border:0;padding-inline:4px;background:transparent}.search-field input:focus{box-shadow:none}.item-form,.shopping-quick-add,.email-form,.create-list{gap:var(--ds-space-3)}.favorite-toggle,.shopping-toggle{min-height:var(--ds-touch-target);border:1px solid rgba(223,229,223,.9);border-radius:var(--ds-radius-md);background:#eef4efb8}.items-list,.favorite-list,.member-list,.activity-list{gap:var(--ds-space-3)}.category-group{overflow:hidden;border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-lg);background:#ffffffa8}.category-header{min-height:52px;padding:0 var(--ds-space-4);color:var(--ds-color-text-primary);background:#eef4efa3}.category-header strong{min-width:30px;border-radius:999px;padding:4px 9px;color:var(--ds-color-primary);background:#23775d1a;text-align:center}.item-row{min-height:60px;border-top:1px solid var(--ds-color-divider);background:transparent;transition:background var(--ds-transition-fast),opacity var(--ds-transition-fast)}.item-row:hover{background:#eef4ef6b}.item-row.is-checked{opacity:.62}.item-row.is-checked .item-row__content strong{text-decoration-thickness:2px}.check-button,.shopping-check{border:2px solid rgba(35,119,93,.45);border-radius:50%;color:#fff;background:#fff}.check-button svg,.shopping-check svg{color:#fff}.item-row.is-checked .check-button,.shopping-item.is-checked .shopping-check{border-color:var(--ds-color-primary);background:var(--ds-color-primary)}.side-panel{gap:var(--ds-space-4)}.side-panel section{padding-bottom:var(--ds-space-4);border-bottom:1px solid var(--ds-color-divider)}.side-panel section:last-child{padding-bottom:0;border-bottom:0}.side-panel h2{align-items:center;color:var(--ds-color-text-primary)}.favorite-chip,.member-row,.activity-row,.challenge-row,.achievement-row,.xp-event-row{border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-md);background:#ffffffc2}.favorite-chip{overflow:hidden}.favorite-chip button:first-child{min-height:48px}.member-row,.activity-row{padding:var(--ds-space-3)}.alert,.notice,.empty-state{border-radius:var(--ds-radius-md)}.alert{border:1px solid rgba(194,65,59,.2);color:var(--ds-color-danger);background:#c2413b14}.notice{border:1px solid rgba(35,119,93,.18);color:var(--ds-color-primary-strong);background:#23775d14}.empty-state{border:1px dashed rgba(154,164,158,.42);color:var(--ds-color-text-secondary);background:#ffffff94}.shopping-mode{max-width:880px;padding-bottom:92px}.shopping-header{z-index:10;top:78px;grid-template-columns:auto minmax(0,1fr) minmax(180px,260px);align-items:center;padding:var(--ds-space-4)}.shopping-header h1{margin:0;font-size:clamp(1.45rem,4vw,2.25rem)}.shopping-header p{margin:4px 0 0;color:var(--ds-color-text-secondary);font-weight:800}.shopping-back{border-radius:999px}.progress-wrap{gap:8px}.progress-wrap strong{color:var(--ds-color-primary)}.progress-bar{height:11px;background:#dfe5dfe6}.progress-bar span{background:linear-gradient(90deg,var(--ds-color-primary),var(--ds-color-accent))}.shopping-category{border-radius:var(--ds-radius-lg)}.shopping-category.is-done{opacity:.64}.shopping-category__title h2{font-size:1.08rem}.shopping-category__title span{border-radius:999px;padding:5px 10px;color:var(--ds-color-primary);background:#23775d1a;font-weight:900}.shopping-items{gap:var(--ds-space-3)}.shopping-item{min-height:84px;border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-lg);background:#ffffffe0;box-shadow:var(--ds-shadow-sm);transition:transform var(--ds-transition-fast),border-color var(--ds-transition-fast),background var(--ds-transition-fast)}.shopping-item:hover,.shopping-item:focus-visible{border-color:#23775d52;transform:translateY(-1px)}.shopping-item.is-checked{background:#eef4efbd}.shopping-check{width:54px;height:54px}.shopping-done{display:grid;justify-items:center;gap:var(--ds-space-4);padding:clamp(24px,5vw,40px);text-align:center}.shopping-done h2{margin:0;font-size:clamp(1.6rem,5vw,2.4rem)}.shopping-footer{z-index:12;padding:12px max(14px,env(safe-area-inset-left)) calc(12px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-right));background:#ffffffd6;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.profile-page,.team-page{display:grid;gap:var(--ds-space-5)}.profile-hero{gap:var(--ds-space-5);padding:clamp(20px,4vw,32px)}.profile-avatar,.team-avatar{box-shadow:0 14px 32px #18201c1f}.profile-badges,.team-badges{gap:6px}.progress-panel,.team-stats{gap:var(--ds-space-3)}.profile-panel,.team-panel{padding:clamp(16px,3vw,24px)}.profile-panel h2,.team-panel h2{color:var(--ds-color-text-primary)}.team-members{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--ds-space-3);padding:var(--ds-space-3)}.team-member,.team-stat{border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-md);background:#ffffffb8}.team-member{padding:var(--ds-space-3)}.team-stat{min-height:128px;padding:var(--ds-space-4)}.team-stat svg{color:var(--ds-color-primary)}.challenge-row.is-complete,.achievement-row.is-unlocked{border-color:#23775d3d;background:#23775d14}.mini-progress{background:#dfe5dfe6}.mini-progress span{background:linear-gradient(90deg,var(--ds-color-primary),var(--ds-color-accent))}.cosmetic-option,.badge-option{border-radius:var(--ds-radius-md);transition:transform var(--ds-transition-fast),border-color var(--ds-transition-fast),box-shadow var(--ds-transition-fast)}.cosmetic-option:hover,.badge-option:hover{transform:translateY(-1px)}.undo-toast,.profile-toast,.pwa-prompt,.update-toast{border:1px solid rgba(223,229,223,.96);border-radius:var(--ds-radius-lg);background:#fffffff0;color:var(--ds-color-text-primary);box-shadow:var(--ds-shadow-lg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.undo-toast button,.update-toast button,.pwa-prompt button{min-height:38px;border-radius:var(--ds-radius-md)}@media(prefers-reduced-motion:reduce){.button,.icon-button,.list-card,.shopping-item,.cosmetic-option,.badge-option{transition:none}.button:hover,.button:focus-visible,.button:active,.icon-button:hover,.icon-button:focus-visible,.icon-button:active,.list-card:hover,.list-card:focus-visible,.list-card:active,.shopping-item:hover,.shopping-item:focus-visible,.shopping-item:active,.cosmetic-option:hover,.cosmetic-option:focus-visible,.cosmetic-option:active,.badge-option:hover,.badge-option:focus-visible,.badge-option:active{transform:none}}@media(max-width:820px){.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-create{grid-template-columns:1fr}.shopping-header{top:68px;grid-template-columns:1fr}.shopping-back{width:fit-content}}@media(max-width:560px){.topbar{gap:8px}.dashboard-hero{display:grid;padding:22px}.dashboard-hero__mark{width:56px;height:56px;border-radius:18px}.dashboard-stats{grid-template-columns:1fr 1fr}.dashboard-stat{min-height:104px;padding:14px}.detail-header{display:grid;gap:var(--ds-space-4)}.actions{justify-content:stretch}.actions .button{flex:1 1 150px}.items-panel,.side-panel{padding:14px;border-radius:var(--ds-radius-lg)}.item-row{grid-template-columns:44px minmax(0,1fr) 44px 44px;min-height:68px}.shopping-header{top:62px;margin-inline:-2px;padding:14px}.shopping-item{min-height:86px;padding:14px}.shopping-check{width:52px;height:52px}.team-members{grid-template-columns:1fr}}.button--danger{color:#fff;background:var(--ds-color-danger);border-color:#c2413b38}.topbar{flex-wrap:wrap}.topbar__nav{display:flex;align-items:center;gap:6px;margin-inline:auto;padding:4px;border:1px solid rgba(223,229,223,.86);border-radius:999px;background:#eef4efb8}.topbar__link{min-height:36px;border:0;border-radius:999px;padding:0 14px;color:var(--ds-color-text-secondary);background:transparent;font-weight:850}.topbar__link:hover,.topbar__link:focus-visible{color:var(--ds-color-text-primary);background:#ffffffe6}.page-hero{position:relative;overflow:hidden}.page-hero:after{content:"";position:absolute;right:-40px;bottom:-48px;width:180px;height:118px;border:1px solid rgba(35,119,93,.12);border-radius:28px;background:linear-gradient(135deg,#23775d14,#4d7cfe14);transform:rotate(-8deg);pointer-events:none}.page-hero>*{position:relative;z-index:1}.page-hero--compact{padding:clamp(18px,3vw,28px)}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ds-space-3);margin-bottom:var(--ds-space-4)}.panel-heading h2{display:flex;align-items:center;gap:8px;margin:0;color:var(--ds-color-text-primary);font-size:1.08rem;line-height:1.2}.panel-heading p{margin:4px 0 0;color:var(--ds-color-text-secondary);font-size:var(--ds-font-caption-size);font-weight:750}.panel-heading--inline{margin-bottom:var(--ds-space-3)}.detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ds-space-3)}.summary-tile{display:grid;gap:4px;min-height:86px;padding:var(--ds-space-4);border:1px solid rgba(223,229,223,.92);border-radius:var(--ds-radius-lg);background:#ffffffd1;box-shadow:var(--ds-shadow-sm)}.summary-tile strong{color:var(--ds-color-text-primary);font-size:1.45rem;line-height:1}.summary-tile span{color:var(--ds-color-text-secondary);font-size:var(--ds-font-caption-size);font-weight:850}.ds-input-shell{transition:border-color var(--ds-transition-fast),box-shadow var(--ds-transition-fast),background var(--ds-transition-fast)}.ds-input-shell:focus-within{border-color:var(--ds-color-primary);box-shadow:var(--ds-focus-ring);background:#fffffff5}.empty-state--premium{display:grid;justify-items:center;gap:6px;min-height:154px;align-content:center;padding:var(--ds-space-6);text-align:center}.empty-state--premium strong{color:var(--ds-color-text-primary);font-size:1.08rem}.empty-state--premium span{max-width:440px;color:var(--ds-color-text-secondary)}.empty-state--compact{min-height:auto;padding:var(--ds-space-3)}.shopping-tools{display:grid;gap:var(--ds-space-3);padding:var(--ds-space-3)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:#18201c57;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.app-dialog{width:min(460px,100%);display:grid;gap:var(--ds-space-4);padding:var(--ds-space-5);animation:ds-scale-in var(--ds-transition-normal)}.app-dialog__header{display:grid;gap:6px}.app-dialog__header h2{margin:0;color:var(--ds-color-text-primary);font-size:1.35rem}.app-dialog__header p{margin:0;color:var(--ds-color-text-secondary);font-weight:650}.app-dialog__actions{display:flex;justify-content:flex-end;gap:var(--ds-space-2)}.loading-stack{display:grid;gap:var(--ds-space-2);width:min(420px,100%)}.loading-actions{display:flex;flex-wrap:wrap;gap:var(--ds-space-2)}.loading-title{width:min(320px,80%);height:30px}.loading-line{width:min(260px,72%)}.list-card--loading{min-height:150px;align-content:start}@media(max-width:820px){.detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.topbar__nav{order:3;width:100%;justify-content:stretch}.topbar__link{flex:1}.detail-summary{grid-template-columns:1fr 1fr}.app-dialog{padding:var(--ds-space-4)}.app-dialog__actions{display:grid;grid-template-columns:1fr}.app-dialog__actions .button{width:100%}}
