:root{color-scheme:light;--brand-50: #edf4ec;--brand-100: #dcebdb;--brand-300: #8fc0a2;--brand-500: #3f8659;--brand-600: #2f6b4a;--brand-700: #24563b;--brand-text: #2f6b4a;--paper: #fbf6ec;--surface: #fffdf8;--surface-2: #f5eddf;--surface-3: #efe4d2;--ink: #241c15;--ink-2: #6b5a48;--ink-3: #7e6b58;--ink-inv: #fffdf8;--accent: #a8661f;--accent-soft: #f7e7cd;--accent-line: #e3c9a2;--danger: #b4472f;--danger-soft: #fbe7e1;--info: #2b5686;--info-soft: #e6eff9;--line: #eadfcb;--line-strong: #d9c9b0;--shadow-1: 0 1px 2px rgba(86, 60, 30, .05), 0 6px 20px -14px rgba(86, 60, 30, .35);--shadow-2: 0 2px 6px rgba(86, 60, 30, .08), 0 18px 40px -22px rgba(86, 60, 30, .45);--radius-xs: 8px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-xl: 24px;--radius-pill: 999px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, ui-serif, serif;--text-xs: 12px;--text-sm: 13px;--text-base: 15px;--text-md: 16px;--text-lg: 19px;--text-xl: 24px;--text-2xl: 30px;--text-3xl: 38px;--dur-fast: .12s;--dur: .18s;--dur-slow: .26s;--ease: cubic-bezier(.2, .8, .2, 1);--sai-top: env(safe-area-inset-top, 0px);--sai-bottom: env(safe-area-inset-bottom, 0px);--sai-left: env(safe-area-inset-left, 0px);--sai-right: env(safe-area-inset-right, 0px);--bg-color: var(--paper);--card-bg: var(--surface);--card-elev-bg: var(--surface);--text-color: var(--ink);--text-on-card: var(--ink);--primary-color: var(--brand-600);--primary-dark: var(--brand-700);--primary-text-color: var(--brand-text);--danger-color: var(--danger);--danger-dark: #8f3521;--border-color: var(--line);--shadow: var(--shadow-1);--shadow-lg: var(--shadow-2);--badge-bg: var(--surface-2);--muted-text-color: var(--ink-2);--divider-color: var(--line);--input-bg: var(--surface);--input-color: var(--ink);--mode-active-bg: var(--surface);--mode-active-color: var(--ink);--menu-bg: var(--surface);--menu-text-color: var(--ink);--menu-hover-bg: var(--surface-2);--menu-line-color: var(--brand-600);--overlay: rgba(36, 28, 21, .5);--tone-bg: var(--surface-2);--tone-ink: var(--ink-2);--tone-line: var(--line-strong);--tone-strong: var(--brand-600)}.dark-theme{color-scheme:dark;--brand-50: #1b2a20;--brand-100: #23382a;--brand-300: #4f9a6d;--brand-500: #6fb98b;--brand-600: #2f6b4a;--brand-700: #24563b;--brand-text: #8fd0a5;--paper: #16120e;--surface: #1e1914;--surface-2: #272019;--surface-3: #322a22;--ink: #f3eadf;--ink-2: #c6b6a4;--ink-3: #ac9a86;--ink-inv: #16120e;--accent: #e8b171;--accent-soft: #2e2418;--accent-line: #4a3a26;--danger: #e88b74;--danger-soft: #2e1a15;--info: #9cc3e8;--info-soft: #17222e;--line: #3a2f26;--line-strong: #4c3e32;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px -16px rgba(0, 0, 0, .9);--shadow-2: 0 2px 8px rgba(0, 0, 0, .5), 0 24px 48px -24px rgba(0, 0, 0, .95);--danger-dark: #c4654c;--overlay: rgba(0, 0, 0, .58)}[data-tone=dairy]{--tone-bg: #e6eff9;--tone-ink: #2b5686;--tone-line: #b9d2e8;--tone-strong: #3a6f9e}[data-tone=produce]{--tone-bg: #e6f1e0;--tone-ink: #3a6b34;--tone-line: #bbd8ae;--tone-strong: #4b8143}[data-tone=bakery]{--tone-bg: #f8ebd4;--tone-ink: #8a5a12;--tone-line: #e7cfa4;--tone-strong: #a06b1b}[data-tone=pantry]{--tone-bg: #f7e6dd;--tone-ink: #94452e;--tone-line: #e5c4b4;--tone-strong: #a9543a}[data-tone=frozen]{--tone-bg: #e2f1f3;--tone-ink: #24606a;--tone-line: #b6d9de;--tone-strong: #2c7681}[data-tone=household]{--tone-bg: #eee8f8;--tone-ink: #5b4382;--tone-line: #d3c6ea;--tone-strong: #6b5195}[data-tone=other]{--tone-bg: #f2eadf;--tone-ink: #6b5a48;--tone-line: #dfcfba;--tone-strong: #8a7560}.dark-theme [data-tone=dairy]{--tone-bg: #1b2a38;--tone-ink: #a8c9e6;--tone-line: #2c4256;--tone-strong: #7fb2db}.dark-theme [data-tone=produce]{--tone-bg: #1d2c1c;--tone-ink: #a9d29b;--tone-line: #30452c;--tone-strong: #8cc47d}.dark-theme [data-tone=bakery]{--tone-bg: #2e2415;--tone-ink: #e5c186;--tone-line: #46361f;--tone-strong: #d9a95f}.dark-theme [data-tone=pantry]{--tone-bg: #2e1c17;--tone-ink: #e5a891;--tone-line: #462c24;--tone-strong: #d98d72}.dark-theme [data-tone=frozen]{--tone-bg: #17262a;--tone-ink: #9ccfd6;--tone-line: #264046;--tone-strong: #7fb8c0}.dark-theme [data-tone=household]{--tone-bg: #241d33;--tone-ink: #c0aee4;--tone-line: #3a2e52;--tone-strong: #a893d6}.dark-theme [data-tone=other]{--tone-bg: #272019;--tone-ink: #c6b6a4;--tone-line: #3a2f26;--tone-strong: #b3a08a}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:linear-gradient(135deg,#667eea,#764ba2)}.auth-container{--card-bg: #ffffff;--text-color: #222222;--text-on-card: #111111;--primary-text-color: #4CAF50;--border-color: #dddddd;--badge-bg: #f5f5f5}.auth-card{background:var(--card-bg);color:var(--text-color)}.auth-card .input{background:#fff;color:var(--text-on-card);border:1px solid var(--border-color)}.auth-tab{color:#666!important}.auth-tab.active{background:#fff;color:var(--primary-text-color)!important}.auth-card{background:#fff;border-radius:16px;padding:32px 24px;width:100%;max-width:400px;box-shadow:0 10px 40px #0003}.auth-title{font-size:32px;text-align:center;margin-bottom:8px;color:#333;display:flex;align-items:center;justify-content:center;gap:12px}.title-icon{width:48px;height:48px;vertical-align:middle}.auth-subtitle{text-align:center;color:#666;margin-bottom:32px;font-size:16px}.auth-tabs{display:flex;gap:8px;margin-bottom:24px;background:#f5f5f5;border-radius:8px;padding:4px}.auth-tab{flex:1;padding:10px;background:transparent;border:none;border-radius:6px;font-size:16px;font-weight:500;color:#666;transition:all .2s}.auth-tab.active{background:#fff;color:var(--primary-text-color);box-shadow:0 2px 4px #0000001a}.auth-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:14px;font-weight:500;color:#555}.error-message{background:#fee;color:var(--danger-color);padding:12px;border-radius:8px;font-size:14px;border:1px solid #fcc}.btn-block{width:100%;margin-top:8px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--card-bg);border-radius:12px;width:90%;max-width:500px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);color:var(--text-on-card)}@media (max-width: 480px){.modal-content{width:95%;max-height:90vh}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--border-color)}.modal-header h2{margin:0;font-size:18px;color:var(--text-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.close-btn{background:none;border:none;font-size:28px;color:var(--text-color);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:8px}.close-btn:hover{color:var(--primary-text-color)}.modal-body{padding:16px;overflow-y:auto;flex:1;color:var(--text-on-card)}.error-message{background-color:#fee;color:#c33;padding:12px;border-radius:4px;margin-bottom:16px;font-size:14px}.share-form{display:flex;gap:8px;margin-bottom:24px}.email-input{flex:1;padding:10px;border:1px solid var(--border-color);border-radius:4px;font-size:14px;background:var(--input-bg);color:var(--input-color)}.permission-select{padding:10px;border:1px solid var(--border-color);border-radius:4px;font-size:14px;background:var(--input-bg);color:var(--input-color);cursor:pointer}.add-share-btn{padding:10px 16px;background-color:var(--primary-color);color:#fff;border:none;border-radius:4px;font-size:14px;cursor:pointer;white-space:nowrap}.add-share-btn:hover{filter:brightness(.95)}.shares-list h3{margin:0 0 12px;font-size:16px;color:var(--text-color)}.shares-list ul{list-style:none;padding:0;margin:0}.no-shares{color:#999;font-size:14px;margin:8px 0}.share-item{display:flex;justify-content:space-between;align-items:center;padding:12px;border:1px solid var(--border-color);border-radius:4px;margin-bottom:8px;gap:8px}.share-email{flex:1;font-size:14px;color:var(--text-on-card);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-controls{display:flex;gap:8px;align-items:center;flex-shrink:0}.permission-select-small{padding:6px 8px;border:1px solid var(--border-color);border-radius:4px;font-size:13px;background:var(--input-bg);color:var(--input-color);cursor:pointer}.remove-share-btn{padding:6px 12px;background-color:var(--danger-color);color:#fff;border:none;border-radius:4px;font-size:13px;cursor:pointer;white-space:nowrap}.remove-share-btn:hover{filter:brightness(.95)}@media (max-width: 600px){.share-form{flex-direction:column}.share-item{flex-direction:column;align-items:stretch}.share-email{margin-bottom:8px}.share-controls{justify-content:space-between}}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding:16px 0;gap:12px;flex-wrap:wrap}.header-actions{display:flex;gap:8px;flex-shrink:0}.top-menu{position:relative}.menu-item-toggle{background:#0000000a;border:none;padding:6px 10px;border-radius:6px;cursor:pointer;color:var(--text-color)}.header h1{font-size:28px;margin-bottom:4px;display:flex;align-items:center;gap:12px;min-width:0;flex:1}@media (max-width: 480px){.header{gap:16px}.header h1{font-size:24px;flex-basis:100%}.header-actions{width:100%;justify-content:stretch}.header-actions .btn{flex:1}}.title-icon{width:40px;height:40px;vertical-align:middle}.header-subtitle{color:#666;font-size:14px}.btn-sm{padding:8px 16px;font-size:14px;min-height:36px}.add-form{display:flex;flex-direction:column;gap:12px}.form-actions{display:flex;gap:8px}.form-actions .btn{flex:1}.btn-block{width:100%}.section-title{font-size:18px;font-weight:600;color:#333;margin:24px 0 12px}.section-title:first-of-type{margin-top:0}.lists-grid{display:grid;gap:12px;margin-bottom:16px}.list-card{cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.list-card:active{transform:scale(.98);box-shadow:var(--shadow-lg)}.list-card{border:1px solid var(--divider-color);border-radius:12px;background:var(--card-elev-bg)}.list-card.card{background:var(--card-elev-bg)!important}.list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;gap:8px}.list-header h3{font-size:18px;font-weight:600;color:var(--text-on-card);flex:1;min-width:0;word-break:break-word}.list-actions{display:flex;gap:8px}.share-btn,.delete-btn{background:transparent;border:none;font-size:20px;padding:8px;min-width:36px;min-height:36px;cursor:pointer;opacity:.6;transition:opacity .2s;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center}.share-btn:active,.delete-btn:active{opacity:1}.list-info{display:flex;gap:12px;color:#666;font-size:14px;align-items:center;flex-wrap:wrap}.item-count{font-weight:500}.item-count{color:var(--text-on-card)}.checked-count{color:var(--primary-text-color)}.shared-badge{background-color:#e8f4fd;color:#06c;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:4px}.shared-with-me-badge{background-color:#fff3cd;color:#856404;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:4px}.empty-state{text-align:center;padding:60px 20px;color:#999}.empty-icon{font-size:64px;margin-bottom:16px}.empty-icon-img{width:96px;height:96px;margin-bottom:16px;opacity:.6}@media (max-width: 480px){.empty-state{padding:40px 20px}.empty-icon{font-size:48px}.empty-icon-img{width:72px;height:72px}.top-menu{position:fixed;top:36px;right:12px;z-index:1300}.menu-button{padding:10px;background:transparent}.menu-dropdown{top:76px;right:0;left:auto;z-index:1400}}@media (max-width: 900px){.top-menu{position:fixed;top:36px;right:12px;z-index:1300}.menu-button{padding:10px;background:transparent}.menu-dropdown{position:fixed;top:76px;right:12px;left:auto;z-index:1400;min-width:160px}}@media (max-width: 900px){.header .top-menu{position:fixed!important;top:36px!important;right:12px!important;z-index:1300!important}.header .top-menu .menu-button{background:transparent!important;padding:8px!important}.header .top-menu .menu-line{background:var(--menu-line-color)!important;box-shadow:0 1px #0000000f!important}.header .top-menu .menu-dropdown{position:fixed!important;top:76px!important;right:12px!important;left:auto!important;z-index:1400!important}}.empty-state p{margin-bottom:8px}.empty-hint{font-size:14px;color:#aaa}.list-fab{position:fixed;right:20px;bottom:20px;z-index:1200;width:56px;height:56px;background:var(--primary-color);color:#fff;border:none;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 20px #0000002e;cursor:pointer;-webkit-tap-highlight-color:transparent}.list-fab svg{width:20px;height:20px;display:block;color:#fff}.list-fab:active{transform:scale(.98)}.catalog-browser{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-color);z-index:1400;display:flex;flex-direction:column;overflow:hidden}.catalog-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border-color);background:var(--card-bg)}.catalog-header h3{margin:0;font-size:1.25rem;color:var(--text-color)}.catalog-close-btn{background:none;border:none;font-size:1.5rem;color:var(--text-color);cursor:pointer;padding:.25rem .5rem;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.catalog-search{padding:1rem;border-bottom:1px solid var(--border-color);background:var(--card-bg)}.search-input{width:100%;padding:.75rem;font-size:1rem;border:1px solid var(--border-color);border-radius:8px;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--input-bg);color:var(--input-color)}@media (max-width: 480px){.search-input{font-size:16px;padding:.875rem}}.catalog-content{flex:1;overflow-y:auto;padding:1rem}.catalog-tree{max-width:800px;margin:0 auto}.category-tree-item{margin-bottom:.5rem}.category-header{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--card-bg);border-radius:8px;margin-bottom:.25rem}.category-toggle{background:none;border:none;cursor:pointer;font-size:.8rem;color:#666;padding:.25rem;min-width:24px;min-height:24px;display:flex;align-items:center;justify-content:center}.category-icon{font-size:1.1rem}.category-name{font-weight:500;color:var(--text-color);flex:1}.category-products{margin-top:.25rem;margin-bottom:.5rem}.product-row{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;margin-bottom:.25rem;min-height:44px;flex-wrap:wrap}@media (max-width: 480px){.product-row{gap:.75rem}.product-name{flex:1 1 100%;margin-bottom:.25rem}.product-quantity-control{flex:1}.product-add-btn,.product-remove-btn{flex:1;min-width:90px}}.product-icon{font-size:1rem;flex-shrink:0}.product-name{flex:1 1 100%;color:var(--text-on-card);font-size:.95rem;min-width:120px}.product-quantity-control{display:flex;align-items:center;gap:.25rem;background:var(--badge-bg);border-radius:6px;padding:.25rem;margin-right:.5rem;flex-shrink:0}.qty-btn{background:var(--card-bg);border:1px solid var(--border-color);border-radius:4px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;font-weight:700;color:var(--text-color);transition:all .2s;flex-shrink:0}.qty-btn:active{background:#e0e0e0;transform:scale(.95)}.qty-btn:disabled{opacity:.5;cursor:not-allowed}.qty-display{min-width:30px;text-align:center;font-weight:500;color:var(--text-on-card);font-size:.95rem;flex-shrink:0}.product-quantity{color:var(--text-color);font-size:.9rem;margin-right:.5rem}.product-add-btn{background:var(--primary-color);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer;min-width:70px;min-height:36px;font-weight:500;transition:all .3s ease;flex-shrink:0}.product-add-btn:active{background:#45a049;transform:scale(.98)}.product-add-btn.adding{background:var(--primary-dark);animation:pulse .6s ease}.product-remove-btn{background:#9e9e9e;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer;min-width:70px;min-height:36px;font-weight:500;transition:all .3s ease;flex-shrink:0}.product-remove-btn:active{background:#757575;transform:scale(.98)}.product-remove-btn.removing{background:#757575;animation:pulse .6s ease}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1);background:#66bb6a}to{transform:scale(1)}}.catalog-empty{text-align:center;padding:60px 20px;color:var(--text-color)}.catalog-empty p:first-child{font-size:64px;margin-bottom:16px}.catalog-empty p{margin-bottom:8px}.catalog-hint{font-size:14px;color:#aaa}.catalog-loading{padding:40px 20px;text-align:center;color:var(--text-color)}.image-viewer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease-out}.image-viewer-modal{position:relative;max-width:90vw;max-height:90vh;background:#fff;border-radius:12px;padding:16px;box-shadow:0 8px 32px #0003;animation:zoomIn .2s ease-out}.full-size-image{max-width:100%;max-height:calc(90vh - 100px);object-fit:contain;border-radius:8px}.image-close-btn{position:absolute;top:-12px;right:-12px;width:36px;height:36px;border-radius:50%;background:#fff;border:none;box-shadow:0 2px 8px #0003;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;color:#666;transition:all .2s;z-index:1}@media (max-width: 480px){.image-close-btn{top:8px;right:8px;width:40px;height:40px;font-size:20px}}.image-close-btn:hover{transform:scale(1.1)}.image-close-btn:active{transform:scale(.95)}.image-caption{text-align:center;margin-top:12px;font-size:16px;color:#333;font-weight:500}.image-error{padding:32px;text-align:center;color:#666}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes zoomIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.dup-overlay{position:fixed;left:0;top:0;right:0;bottom:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:120}.dup-modal{width:92%;max-width:420px;background:var(--card-bg);color:var(--text-on-card);border-radius:12px;padding:20px;box-shadow:0 12px 40px #00000040;text-align:center}.dup-title{margin:0 0 8px;font-size:18px}.dup-body{margin:0 0 18px;color:var(--muted-text)}.dup-actions{display:flex;gap:10px;justify-content:center}.dup-actions .btn{min-width:100px}.sort-modal-overlay{position:fixed;left:0;right:0;top:0;bottom:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:120}.sort-modal{background:var(--card-bg);color:var(--text-on-card);border-radius:12px;padding:16px;width:92%;max-width:420px;box-shadow:0 12px 40px #0000001f}.sort-modal-title{margin:0 0 12px;font-size:18px}.sort-options{display:flex;flex-direction:column;gap:8px}.sort-option{display:flex;gap:12px;align-items:center;padding:10px;border-radius:8px;cursor:pointer}.sort-option:hover{background:var(--menu-hover-bg)}.dark-theme .sort-option:hover{color:var(--mode-active-color)}.sort-option input{pointer-events:none}.sort-option .option-content{display:flex;flex-direction:column}.sort-option .option-title{font-weight:600}.sort-option .option-desc{font-size:13px;color:var(--muted-text-color)}.sort-option.active{background:var(--mode-active-bg);color:var(--mode-active-color)}.sort-modal-actions{display:flex;justify-content:flex-end;margin-top:12px}.list-header-bar{display:flex;align-items:center;gap:12px;margin-bottom:24px;padding:16px 0;flex-wrap:wrap}@media (max-width: 768px){.list-header-bar{gap:8px}}.back-btn{background:transparent;border:none;font-size:16px;color:var(--primary-text-color);font-weight:500;padding:8px 12px;cursor:pointer;border-radius:8px;transition:background .2s;-webkit-tap-highlight-color:transparent;min-height:40px;display:flex;align-items:center;white-space:nowrap;flex-shrink:0}.back-btn:active{background:#4caf501a}.share-icon-btn,.sort-icon-btn{background:transparent;border:none;font-size:20px;padding:8px;min-width:36px;min-height:36px;cursor:pointer;opacity:.6;transition:opacity .12s linear;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-on-card)}.share-icon-btn:hover,.share-icon-btn:active{opacity:1}.list-title{font-size:24px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.list-title{font-size:20px}.list-search-bar{margin-top:0;margin-bottom:12px;display:flex;gap:8px}.list-search-input{width:100%;box-sizing:border-box;height:40px}}.items-section>.section-title{margin:6px 0}.items-section .items-list{margin-top:4px}@media (min-width: 769px){.list-search-bar{margin-top:0;margin-bottom:12px;display:flex;gap:8px}.list-search-input{height:44px}}.quantity-btn{width:40px;height:44px;border:none;background:var(--badge-bg);color:var(--primary-text-color);font-size:20px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;-webkit-tap-highlight-color:transparent;flex-shrink:0}.quantity-btn:hover{filter:brightness(.95)}.quantity-btn:active{transform:scale(.95)}.sort-icon-btn:hover{background:#e5e5e5}.sort-icon-btn:active{background:#d5d5d5;transform:scale(.98)}.mode-toggle{display:flex;gap:4px;background:var(--badge-bg);border-radius:8px;padding:4px;flex-shrink:0}.mode-btn{padding:8px 16px;background:transparent;border:none;border-radius:6px;font-size:14px;font-weight:500;color:var(--text-color);cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent;min-width:60px}@media (max-width: 480px){.mode-btn{padding:8px 12px;font-size:13px;min-width:50px}}.mode-btn.active{background:var(--mode-active-bg);color:var(--mode-active-color);box-shadow:0 2px 4px #0000001a}.mode-btn:active{transform:scale(.98)}.mode-btn:disabled{opacity:.4;cursor:not-allowed}.mode-btn:disabled:active{transform:none}.top-menu{position:relative;margin-left:8px}.menu-button{background:transparent;border:none;padding:8px;cursor:pointer;display:inline-flex;flex-direction:column;gap:4px;align-items:center}.menu-line{width:18px;height:3px;background:var(--menu-line-color);border-radius:2px;display:block}.menu-dropdown{position:absolute;right:0;top:44px;background:var(--menu-bg);box-shadow:0 6px 18px #00000014;border-radius:8px;padding:8px;min-width:160px;z-index:40;display:flex;flex-direction:column;gap:6px}.menu-item{background:transparent;border:none;text-align:left;padding:8px 10px;cursor:pointer;border-radius:6px;display:flex;align-items:center;font-size:14px;min-height:40px;color:var(--menu-text-color);font-weight:500;font-family:inherit;line-height:1.2}.menu-item:hover{background:var(--menu-hover-bg)}.menu-section-title{font-weight:500;color:var(--menu-text-color);font-family:inherit;font-size:14px;min-height:40px;display:flex;align-items:center}.menu-item-toggle{background:#0000000a;border:none;padding:6px 10px;border-radius:6px;cursor:pointer}.menu-item-toggle:active{transform:scale(.98)}.add-item-form{margin-bottom:24px}.add-item-form .item-name-input{margin-bottom:12px}.add-item-controls{display:flex;gap:12px;align-items:stretch}.add-item-controls .quantity-control{flex:1}.add-btn{min-width:100px;flex-shrink:0}.add-options{margin-bottom:16px}.add-item-inputs{display:flex;gap:12px;margin-bottom:12px;align-items:stretch}.item-name-input{flex:1;min-width:0}.quantity-control{display:inline-flex;align-items:center;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--card-bg);flex-shrink:0;min-width:120px}.quantity-input{width:50px;min-width:50px;border:none;text-align:center;font-size:16px;font-weight:600;padding:8px 4px;background:var(--card-bg);color:var(--text-on-card);-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.quantity-input:focus{outline:none;background:transparent}.add-item-form .quantity-input,.add-item-controls .quantity-input,.edit-inputs-compact .quantity-input{background:var(--card-bg);color:var(--text-on-card)}.add-item-form .quantity-input,.add-item-controls .quantity-input,.edit-inputs-compact .quantity-input,.edit-item-inputs .quantity-input,.item-card .quantity-input{background:var(--card-bg)!important;color:var(--text-on-card)!important;border-radius:6px!important}.add-item-form .quantity-control,.add-item-controls .quantity-control,.edit-inputs-compact .quantity-control{background:var(--card-bg)!important;border:1px solid var(--border-color)!important;padding:0!important;overflow:hidden!important;display:flex;align-items:center;border-radius:8px!important}.add-item-form .quantity-input,.add-item-controls .quantity-input,.edit-inputs-compact .quantity-input{background:transparent!important;color:var(--text-on-card)!important;padding:8px 10px!important;width:100%!important;box-sizing:border-box!important;height:44px!important;border-radius:0!important;margin:0!important}.edit-search-wrapper{position:relative;margin-bottom:8px}.edit-search-input{width:100%;box-sizing:border-box}.edit-suggestions{position:absolute;left:0;right:0;top:44px;background:var(--card-bg);border:1px solid var(--border-color);box-shadow:0 6px 18px #00000014;z-index:60;border-radius:8px;max-height:220px;overflow:auto}.edit-suggestion{padding:8px 12px;display:flex;justify-content:space-between;gap:12px;cursor:pointer}.edit-suggestion:hover{background:var(--menu-hover-bg)}.suggest-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggest-qty{color:var(--muted-text);margin-left:8px;flex-shrink:0}.add-item-form .quantity-btn,.add-item-controls .quantity-btn,.edit-inputs-compact .quantity-btn{background:var(--badge-bg)!important;color:var(--primary-text-color)!important;height:44px!important;width:40px!important;border-radius:0!important}@media (max-width: 480px){.add-item-inputs{flex-direction:column;gap:12px}.item-name-input{width:100%}.quantity-control{width:100%;min-width:100%}.quantity-btn{width:48px;height:48px;font-size:22px}.quantity-input{flex:1;min-width:0;font-size:18px}.add-item-controls{gap:8px}.add-item-controls .quantity-control{flex:1;min-width:0}.add-btn{min-width:80px;flex-shrink:0}}.items-section{margin-bottom:32px}.category-group{margin-bottom:20px}.category-group-title{font-size:15px;font-weight:600;color:var(--primary-text-color);margin:0 0 8px;padding:8px 12px;background:#4caf5014;border-radius:8px;border-left:3px solid var(--primary-color)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}@media (max-width: 480px){.section-header{gap:8px}.section-title{flex:1;min-width:0}}.section-title{font-size:14px;font-weight:600;text-transform:uppercase;color:#999;letter-spacing:.5px;margin:0}.category-subtitle{font-size:14px;font-weight:600;text-transform:uppercase;color:#999;letter-spacing:.5px;margin:12px 0 6px}.btn-danger-outline{padding:6px 12px;background:transparent;border:1.5px solid #ef4444;border-radius:8px;color:#ef4444;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent;white-space:nowrap}.btn-danger-outline:hover{background:#fef2f2}.btn-danger-outline:active{background:#fee2e2;transform:scale(.98)}.btn-secondary-outline{padding:6px 12px;background:transparent;border:1.5px solid var(--primary-color);border-radius:8px;color:var(--primary-text-color);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent;white-space:nowrap}.btn-secondary-outline:hover{background:#f0fdf4}.btn-secondary-outline:active{background:#dcfce7;transform:scale(.98)}.items-list{display:flex;flex-direction:column;gap:8px}.items-list>div{margin-bottom:8px}.items-list>div:last-child{margin-bottom:0}@media (max-width: 480px){.items-list>div{margin-bottom:4px}}.item-card{background:var(--card-elev-bg);border-radius:12px;padding:16px;border:1px solid var(--divider-color);box-shadow:var(--shadow);display:flex;align-items:center;gap:12px;transition:all .2s;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.item-thumbnail{width:56px;height:56px;min-width:56px;min-height:56px;flex-shrink:0;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--badge-bg);border:1px solid var(--border-color);position:relative}.thumbnail-image-wrapper{width:100%;height:100%;position:relative}.thumbnail-placeholder-wrapper{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center}.thumbnail-edit-btn-corner{position:absolute;bottom:3px;right:3px;width:6px;height:6px;background:transparent;border:none;border-radius:50%;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0;line-height:1;-webkit-tap-highlight-color:transparent;box-shadow:none;z-index:5}.thumbnail-edit-btn-corner:hover{background:var(--badge-bg);transform:scale(1.1)}.thumbnail-edit-btn-corner:active{transform:scale(.95)}.image-popup-overlay,.sort-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1001;padding:20px}.sort-menu{background:#fff;border-radius:16px;padding:24px;max-width:400px;width:100%;box-shadow:0 8px 32px #0003}.sort-menu h3{margin:0 0 20px;font-size:20px;font-weight:600;color:#333;text-align:center}.sort-menu-options{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.sort-menu-option{display:flex;align-items:center;gap:16px;padding:16px;background:#fff;border:2px solid #e0e0e0;border-radius:12px;font-size:16px;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent;text-align:left;width:100%}.sort-menu-option:hover{background:#f8f8f8;border-color:var(--primary-color)}.sort-menu-option:active{transform:scale(.98)}.sort-menu-option.active{border-color:var(--primary-color);background:#4caf500d}.sort-icon{background:transparent;border:none;font-size:20px;padding:8px;min-width:36px;min-height:36px;cursor:pointer;opacity:.6;transition:opacity .12s linear;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-on-card);font-size:16px}.sort-option-desc{opacity:1;color:#999}.sort-check{font-size:20px;color:var(--primary-text-color);flex-shrink:0}.sort-menu-close{width:100%;padding:14px;background:#f5f5f5;border:none;border-radius:10px;font-size:16px;font-weight:500;color:#666;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.sort-menu-close:hover{background:#e8e8e8}.sort-menu-close:active{transform:scale(.98)}.image-popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1001;padding:20px}.image-popup{background:#fff;border-radius:16px;padding:24px;max-width:320px;width:100%;box-shadow:0 8px 32px #0003}.image-popup h3{margin:0 0 20px;font-size:20px;font-weight:600;color:#333;text-align:center}.image-popup-options{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.image-popup-btn{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#fff;border:2px solid #e0e0e0;border-radius:12px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent;color:#333}.image-popup-btn .icon{font-size:24px;flex-shrink:0}.image-popup-btn:hover{background:#f8f8f8;border-color:var(--primary-color)}.image-popup-btn:active{transform:scale(.98)}.image-popup-btn.delete{border-color:#fee}.image-popup-btn.delete:hover{background:#fee;border-color:var(--danger-color);color:var(--danger-color)}.image-popup-close{width:100%;padding:14px;background:#f5f5f5;border:none;border-radius:10px;font-size:16px;font-weight:500;color:#666;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.image-popup-close:hover{background:#e8e8e8}.image-popup-close:active{transform:scale(.98)}.item-thumbnail img{width:100%;height:100%;object-fit:cover}.thumbnail-placeholder{font-size:20px;opacity:.6}.item-actions{display:flex;gap:8px;align-items:center}.action-buttons{display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center}.pencil-btn,.trash-btn{background:transparent;border:none;font-size:18px;width:36px;height:36px;cursor:pointer;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;transition:background .12s ease;-webkit-tap-highlight-color:transparent}.pencil-btn:hover,.trash-btn:hover{background:#0000000a}.trash-btn{color:var(--danger-color, #b00020)}.image-file-input{display:none}.attachment-button{background:transparent;border:none;color:var(--primary-text-color);font-size:20px;width:36px;height:36px;cursor:pointer;border-radius:50%;transition:background .2s;display:flex;align-items:center;justify-content:center}.attachment-button:hover{background:#4caf501a}.upload-progress{width:100%;height:4px;background:var(--badge-bg);border-radius:2px;margin:4px 0;overflow:hidden}.progress-bar{height:100%;background:var(--primary-color);transition:width .3s ease-out}.item-card:active{transform:scale(.98)}.item-card.checked{opacity:.6}.item-content{flex:1;display:flex;align-items:center;gap:12px}.checkbox-container{flex-shrink:0;cursor:pointer;padding:4px;margin:-4px;border-radius:50%;transition:background .2s}.checkbox-container:active{background:#4caf501a}.checkbox{width:28px;height:28px;border:2px solid var(--border-color);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;transition:all .2s;background:#fff}.checkbox.checked{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.item-details{display:flex;align-items:baseline;gap:12px;flex:1}.item-details-column{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.item-details-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.item-name{font-size:16px;font-weight:500;color:var(--text-on-card)}.item-card.checked .item-name{text-decoration:line-through;color:#999}.item-quantity{font-size:14px;color:var(--text-on-card);background:var(--badge-bg);padding:2px 8px;border-radius:4px}.item-url-link{font-size:13px;color:var(--primary-text-color);text-decoration:none;display:inline-flex;align-items:center;gap:4px;word-break:break-all;line-height:1.4;opacity:.9;transition:opacity .2s;-webkit-tap-highlight-color:rgba(76,175,80,.2);padding:4px 0;max-width:100%}.item-url-link:hover{opacity:1;text-decoration:underline}.item-url-link:active{opacity:1;background:#4caf501a;border-radius:4px;padding:4px 6px;margin:0 -6px}.item-card.checked .item-url-link{opacity:.6;text-decoration:line-through}@media (max-width: 480px){.item-url-link{font-size:12px;gap:3px;padding:6px 0}.item-details-column{gap:8px}.item-details-row{gap:10px}}.item-delete-btn{background:transparent;border:none;color:#999;font-size:20px;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;-webkit-tap-highlight-color:transparent}.item-delete-btn:active{background:#fee;color:var(--danger-color)}.item-url-input{font-size:14px;padding:10px 12px}@media (max-width: 480px){.item-url-input{font-size:16px;padding:12px}}.item-card.edit-mode{cursor:default}.item-card.edit-mode.clickable{cursor:pointer;transition:all .2s}.item-card.edit-mode.clickable:hover{background:var(--card-bg);transform:none;box-shadow:var(--shadow)}.item-card.edit-mode.clickable:active{transform:translateY(0)}.item-card.edit-mode .item-content{cursor:default}.item-card.editing{flex-direction:column;gap:12px;padding:16px}.item-card.editing.compact{padding:12px;gap:8px}.edit-form-main-row{display:flex;align-items:center;gap:12px;width:100%}.edit-thumbnail-compact{flex-shrink:0}.edit-thumbnail-compact .thumbnail-image-wrapper,.edit-thumbnail-compact .thumbnail-placeholder-wrapper{width:60px;height:60px}.edit-thumbnail-compact img{width:100%;height:100%;object-fit:cover;border-radius:8px}.edit-thumbnail-compact .thumbnail-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:32px;background:var(--badge-bg);border-radius:8px}.edit-inputs-compact{flex:1;display:flex;flex-direction:column;gap:8px}.edit-inputs-compact .quantity-control{width:100%;display:flex;min-width:unset}.edit-inputs-compact .quantity-btn{flex:0 0 40px}.edit-inputs-compact .quantity-input{flex:1}.edit-actions-compact{display:flex;flex-direction:column;gap:8px;flex-shrink:0}.edit-actions-compact .btn-save,.edit-actions-compact .btn-cancel{width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center}.edit-actions-compact .btn-delete-compact{width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:8px;color:var(--danger-color, #b00020);font-size:18px;cursor:pointer}.edit-actions-compact .btn-delete-compact:hover{background:#b000200f}.upload-progress-compact{width:100%;height:3px;background:#f5f5f5;border-radius:2px;overflow:hidden;margin-top:4px}.upload-progress-compact .progress-bar{height:100%;background:var(--primary-color);transition:width .3s ease}.edit-item-inputs{display:flex;gap:12px;width:100%;align-items:stretch}.edit-item-actions{display:flex;gap:8px;width:100%}.btn-save,.btn-cancel{flex:1;padding:10px;border:none;border-radius:8px;font-size:18px;font-weight:600;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.btn-save{background:var(--primary-color);color:#fff}.btn-save:hover{background:#45a049}.btn-save:active{background:#3d8b40;transform:scale(.98)}.btn-cancel{background:#f5f5f5;color:#666}.btn-cancel:hover{background:#e5e5e5}.btn-cancel:active{background:#d5d5d5;transform:scale(.98)}@media (max-width: 480px){.edit-item-inputs{flex-direction:column;gap:12px}.edit-item-inputs .item-name-input{width:100%}.edit-item-inputs .quantity-control{width:100%;min-width:100%}.edit-form-main-row{gap:8px}.edit-thumbnail-compact .thumbnail-image-wrapper,.edit-thumbnail-compact .thumbnail-placeholder-wrapper{width:50px;height:50px}.edit-thumbnail-compact .thumbnail-placeholder{font-size:24px}.edit-actions-compact .btn-save,.edit-actions-compact .btn-cancel{width:38px;height:38px;font-size:16px}}.item-card.view-mode{cursor:default;gap:16px}.item-card.view-mode .item-content{width:100%}.item-card.view-mode .item-content{justify-content:space-between}.item-card.view-mode .item-quantity{font-weight:600;color:var(--primary-text-color);background:#4caf501a}.item-card.view-mode .item-thumbnail{width:48px;height:48px;cursor:pointer;transition:transform .2s}.item-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.pencil-btn{background:transparent;border:none;font-size:18px;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-on-card);-webkit-tap-highlight-color:transparent}.pencil-btn:disabled{opacity:.45;cursor:not-allowed}.pencil-btn:active{transform:scale(.98)}.item-card.view-mode .item-thumbnail:hover{transform:scale(1.1)}.item-card.view-mode .item-thumbnail:active{transform:scale(.95)}@media (display-mode: standalone){.quantity-btn{width:48px;height:48px;font-size:22px}.quantity-input{min-width:60px;font-size:18px}.add-item-inputs{gap:16px}}.add-item-form .btn-block{margin-top:12px;min-height:48px;font-size:16px;font-weight:600}.fab-wrapper{position:fixed;right:20px;bottom:20px;z-index:1200}.fab{width:56px;height:56px;border-radius:50%;background:var(--primary-color);color:#fff;border:none;font-size:0;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px #0003;cursor:pointer;-webkit-tap-highlight-color:transparent}.fab:active{transform:scale(.98)}.fab svg{width:20px;height:20px;display:block;color:#fff}.add-panel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:1300}.add-panel{position:relative;width:420px;max-width:calc(100vw - 40px);background:var(--card-bg);border-radius:12px;box-shadow:var(--shadow-lg);padding:16px;color:var(--text-on-card)}.add-panel-row{margin-bottom:8px}.add-panel-form{display:flex;flex-direction:column;gap:8px}.name-with-catalog{display:flex;gap:8px;align-items:center}.name-with-catalog .item-name-input{flex:1;min-width:0}.catalog-inline-btn{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 10px;border-radius:8px;background:var(--badge-bg);border:1px solid var(--border-color);color:var(--text-on-card);cursor:pointer}.catalog-inline-btn .catalog-icon{line-height:1;transform:translateY(-1px)}.add-panel-form .inline-controls{display:inline-flex;align-items:center;gap:8px;margin-right:8px}.add-panel-form .inline-controls .file-input{display:none}.add-panel-form .inline-controls .icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;border-radius:8px;background:var(--badge-bg);border:1px solid var(--border-color);color:var(--text-on-card);cursor:pointer;font-size:20px;line-height:1;padding:0;box-sizing:border-box;text-align:center}.add-panel-form .inline-controls label.icon-btn,.add-panel-form .inline-controls button.icon-btn{display:inline-flex;align-items:center;justify-content:center}.add-panel-form .inline-controls .icon-btn:active{transform:scale(.98)}.add-panel-form .inline-badge{font-size:12px;color:var(--text-on-card);opacity:.95;background:transparent;padding:4px 6px;border-radius:6px;border:1px solid transparent;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:middle}.inline-link-edit{display:inline-flex;align-items:center;gap:6px}.inline-link-edit .small-link-input{width:220px;max-width:36vw;padding:8px 10px;height:36px;border-radius:8px;border:1px solid var(--border-color);background:var(--card-bg);color:var(--text-on-card);box-sizing:border-box}.btn-small{padding:6px 8px;font-size:13px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px}.link-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1400}.link-modal{width:460px;max-width:calc(100vw - 48px);background:var(--card-bg);padding:18px;border-radius:12px;box-shadow:var(--shadow-lg);color:var(--text-on-card)}.link-modal-title{margin:0 0 8px;font-size:16px}.link-modal-input{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:8px;box-sizing:border-box;margin-bottom:12px}.link-modal-actions{display:flex;gap:8px;justify-content:flex-end}.delete-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000005c;display:flex;align-items:center;justify-content:center;z-index:1500}.delete-modal{width:420px;max-width:calc(100vw - 40px);background:var(--card-bg);color:var(--text-on-card);padding:18px;border-radius:12px;box-shadow:var(--shadow-lg)}.delete-modal-title{margin:0 0 8px;font-size:16px}.delete-modal-body{margin:0 0 14px;color:var(--text-on-card)}.delete-modal-actions{display:flex;gap:8px;justify-content:flex-end}.delete-modal .btn-danger,.delete-modal .btn-secondary{padding:10px 16px;min-width:100px;height:44px;border-radius:12px;font-size:15px;font-weight:600}.delete-modal .btn-secondary{border-radius:12px}.add-panel-form .inline-controls .icon-emoji{display:inline-block;transform:translateY(-2px);line-height:1}.add-panel-form .add-panel-controls{display:flex;gap:8px;align-items:center;width:100%}.add-panel .item-name-input{width:100%}.add-panel-form .add-panel-controls{flex-wrap:wrap}.add-panel-form .left-controls{display:flex;gap:8px;align-items:center;flex:1 1 auto;min-width:0}.add-panel-form .inline-controls{display:inline-flex;gap:8px;align-items:center;flex-shrink:0}.add-panel-form .quantity-control{display:inline-flex;align-items:center;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--card-bg);flex:1 1 auto;min-width:0}.add-panel-form .quantity-input{flex:1 1 auto;width:100%;min-width:44px;border:none;text-align:center;font-size:16px;font-weight:600;padding:6px 8px;background:transparent;color:var(--text-on-card);height:44px;box-sizing:border-box}.add-panel-form .quantity-btn{width:32px;height:44px;padding:0;display:flex;align-items:center;justify-content:center}.add-panel-form .quantity-control .quantity-btn{background:var(--card-bg);color:var(--text-on-card);border:none}.add-panel-form .quantity-control .quantity-btn:active{background:#0000000f}.add-panel-form .quantity-control .quantity-input{color:var(--text-on-card);background:transparent}.add-panel-form .add-btn{border-radius:8px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--primary-color);color:#fff;border:1px solid var(--primary-color);flex:1 1 auto;min-width:0}.add-panel-row.add-btn-row .add-btn.large{width:100%;height:52px;font-size:16px;font-weight:600;padding:8px 16px}@media (max-width: 480px){.add-panel-form .add-panel-controls{flex-direction:column;gap:8px}.add-panel-form .left-controls{width:100%;display:flex;gap:8px;align-items:center}.add-panel-form .quantity-control{border-radius:8px}.add-panel-form .add-btn{border-radius:8px;width:100%}}@media (max-width: 480px){.add-panel{width:92vw}.fab{right:12px;bottom:12px}}.catalog-page-header{display:flex;align-items:center;gap:12px;margin-bottom:24px;padding:16px 0}.catalog-page-header h1{font-size:24px;flex:1}.catalog-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}@media (max-width: 768px){.catalog-layout{grid-template-columns:1fr}}.categories-panel,.products-panel{background:var(--card-bg);border-radius:12px;box-shadow:var(--shadow);padding:16px}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:8px}.panel-header h2{font-size:18px;margin:0;flex:1}.add-icon-btn{background:var(--primary-color);color:#fff;border:none;width:36px;height:36px;border-radius:50%;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;-webkit-tap-highlight-color:transparent;padding:0;line-height:1}.add-icon-btn:active{background:var(--primary-dark);transform:scale(.95)}.delete-icon-btn{background:transparent;border:none;color:#999;font-size:18px;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;-webkit-tap-highlight-color:transparent}.delete-icon-btn:active{background:#fee;color:var(--danger-color)}.inline-form{background:var(--input-bg);padding:12px;border-radius:8px;margin-bottom:12px;display:flex;flex-direction:column;gap:8px}.inline-form .input{margin-bottom:0}.inline-form-actions{display:flex;gap:8px}.inline-form-actions .btn{flex:1}.quantity-control{display:flex;align-items:center;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--input-bg);flex-shrink:0;width:100%}.quantity-btn{width:40px;height:44px;border:none;background:#f5f5f5;color:var(--primary-text-color);font-size:20px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;-webkit-tap-highlight-color:transparent;flex-shrink:0}.quantity-btn:hover{background:#e5e7eb}.quantity-btn:active{background:#d1d5db;transform:scale(.95)}.quantity-input{flex:1;border:none;text-align:center;font-size:16px;font-weight:600;padding:8px 4px;background:#fff;color:var(--input-color);-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.quantity-input::-webkit-outer-spin-button,.quantity-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.quantity-input:focus{outline:none;background:#fafafa}.categories-list,.products-list{display:flex;flex-direction:column;gap:4px;max-height:60vh;overflow-y:auto}.category-item{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:8px;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.category-item:hover{background:var(--badge-bg)}.category-item.active{background:var(--mode-active-bg);color:var(--mode-active-color);font-weight:600}.category-item:active{transform:scale(.98)}.category-name{flex:1;font-size:16px;color:var(--text-on-card)}.subcategories{margin-left:20px;border-left:2px solid #e0e0e0;padding-left:8px}.subcategory{font-size:14px;color:var(--text-on-card)}.product-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:8px;background:var(--input-bg);transition:all .2s}.product-icon{font-size:20px}.product-name{flex:1;font-size:16px;font-weight:500;color:var(--text-on-card)}.product-quantity{font-size:14px;color:var(--mode-active-color);background:var(--mode-active-bg);padding:4px 10px;border-radius:4px;font-weight:600}.empty-message{text-align:center;padding:40px 20px;color:#999}.empty-message p{margin-bottom:8px}.empty-message .hint{font-size:14px;color:#aaa}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--text-md);line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--paper);color:var(--ink);overflow-x:clip;min-height:100vh}@supports not (overflow: clip){body{overflow-x:hidden}}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:-1;background:radial-gradient(1100px 520px at 12% -8%,rgba(217,154,78,.12),transparent 62%),radial-gradient(900px 520px at 92% 8%,rgba(47,107,74,.08),transparent 60%)}.dark-theme body:before{background:radial-gradient(1100px 520px at 12% -8%,rgba(232,177,113,.08),transparent 62%),radial-gradient(900px 520px at 92% 8%,rgba(143,208,165,.06),transparent 60%)}h1,h2,h3,h4{line-height:1.18;letter-spacing:-.021em;font-weight:720;color:var(--ink)}::selection{background:var(--brand-100);color:var(--brand-700)}button{font-family:inherit;cursor:pointer;border:none;outline:none;color:inherit;background:none;-webkit-tap-highlight-color:transparent}input,textarea,select{font-family:inherit;outline:none;-webkit-appearance:none}a{color:var(--brand-text)}:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px;border-radius:4px}.btn{padding:12px 22px;font-size:var(--text-md);font-weight:640;letter-spacing:-.005em;border-radius:var(--radius-md);transition:background var(--dur) var(--ease),transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease),color var(--dur) var(--ease);min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:active{transform:scale(.975)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand-600);color:#fffdf8;box-shadow:0 10px 22px -14px #2f6b4ad9}.btn-primary:hover{background:var(--brand-500)}.btn-primary:active{background:var(--brand-700)}.btn-danger:hover,.btn-danger:active{background:var(--danger-dark)}.btn-secondary:hover{background:var(--surface-2)}.btn-secondary:active{background:var(--surface-3)}.input{width:100%;padding:12px 15px;font-size:var(--text-md);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);min-height:46px;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.input::placeholder{color:var(--ink-3)}.input:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-500) 22%,transparent)}select.input,select{background-image:none}.container{max-width:640px;margin:0 auto;padding:18px 16px calc(28px + var(--sai-bottom));min-height:100vh;position:relative}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);padding:18px;margin-bottom:16px}.spinner{border:3px solid var(--surface-3);border-top-color:var(--brand-600);border-radius:50%;width:38px;height:38px;animation:spin .9s linear infinite;margin:48px auto}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pop-in{0%{transform:scale(.85);opacity:0}60%{transform:scale(1.04)}to{transform:scale(1);opacity:1}}.text-center{text-align:center}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media (display-mode: standalone){body{padding-top:var(--sai-top);padding-left:var(--sai-left);padding-right:var(--sai-right);padding-bottom:var(--sai-bottom)}.browser-only{display:none!important}}@supports (-webkit-touch-callout: none){body{padding-top:max(var(--sai-top),12px)}}@supports (padding: max(0px)){.modal-overlay,.image-viewer-overlay,.catalog-browser{padding-top:max(var(--sai-top),0px);padding-bottom:max(var(--sai-bottom),0px)}}*{touch-action:manipulation}button,.button,input[type=button],input[type=submit]{min-height:44px;min-width:44px}@media (pointer: fine){*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:999px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-track{background:transparent}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.icon{display:block;flex:0 0 auto}.icon-btn{width:40px;height:40px;border-radius:12px;display:inline-grid;place-items:center;color:var(--ink-2);background:var(--surface-2);border:1px solid transparent;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur-fast) var(--ease)}.icon-btn:hover{background:var(--surface-3);color:var(--ink)}.icon-btn:active{transform:scale(.94)}.icon-btn--ghost{background:transparent}.trip{position:relative;overflow:hidden;background:linear-gradient(150deg,var(--brand-600),#3f8659);color:#f2f8f1;border-radius:22px;padding:18px 18px 16px;margin:4px 0 18px;box-shadow:0 22px 38px -28px #1f5138d9}.trip:after{content:"";position:absolute;right:-46px;top:-62px;width:180px;height:180px;border-radius:50%;background:#ffffff14}.trip-head{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.trip-kicker{margin:0 0 2px;font-size:10.5px;font-weight:800;letter-spacing:.17em;text-transform:uppercase;opacity:.92}.trip-count{margin:0;font-family:var(--font-display);font-size:38px;line-height:1;letter-spacing:-.035em;font-variant-numeric:tabular-nums}.trip-count span{font-family:var(--font-sans);font-size:14.5px;font-weight:600;letter-spacing:0;opacity:.92}.trip-left{font-size:12.5px;font-weight:700;background:#0000002e;border-radius:var(--radius-pill);padding:5px 11px;white-space:nowrap}.trip-bar{position:relative;height:8px;margin-top:13px;border-radius:var(--radius-pill);background:#ffffff3d;overflow:hidden}.trip-bar i{display:block;height:100%;border-radius:var(--radius-pill);background:linear-gradient(90deg,#f4cf9c,#ffeed2);transition:width var(--dur-slow) var(--ease)}.trip-tones{position:relative;display:flex;flex-wrap:wrap;gap:6px;margin-top:13px}.trip:not(.trip--done) .tone-chip{background:#0000002e;border-color:transparent;color:#fffdf8}.trip:not(.trip--done) .tone-chip b{opacity:.9}.trip--done{background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-2);padding:20px}.trip--done:after{display:none}.trip-done-head{display:flex;align-items:center;gap:16px}.trip-ring{width:78px;height:78px;flex:0 0 auto;border-radius:50%;background:conic-gradient(var(--brand-600) calc(var(--p) * 1%),var(--surface-3) 0);display:grid;place-items:center;animation:pop-in var(--dur-slow) var(--ease)}.trip-ring span{width:60px;height:60px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--brand-text);font-variant-numeric:tabular-nums}.trip-title{margin:0 0 3px;font-size:22px;letter-spacing:-.026em}.trip-sub{margin:0;color:var(--ink-2);font-size:13.5px}.trip-recap{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0}.trip-actions{display:flex;gap:10px;flex-wrap:wrap}.trip-actions .btn{flex:1 1 148px;min-width:0;padding-left:12px;padding-right:12px;white-space:nowrap}@media (max-width: 520px){.trip-actions{flex-direction:column}.trip-actions .btn{width:100%;flex:0 0 auto}}.trip-confetti{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.trip-confetti i{position:absolute;top:-14px;width:7px;height:11px;border-radius:2px;opacity:.9;animation:confetti-fall 1.9s var(--ease) forwards}.trip-confetti i:nth-child(1){left:6%;background:#c2553a;animation-delay:40ms}.trip-confetti i:nth-child(2){left:16%;background:#d99a4e;animation-delay:.18s}.trip-confetti i:nth-child(3){left:25%;background:#2f6b4a;animation-delay:90ms}.trip-confetti i:nth-child(4){left:35%;background:#e0b36a;animation-delay:.26s}.trip-confetti i:nth-child(5){left:44%;background:#b4472f;animation-delay:.13s}.trip-confetti i:nth-child(6){left:53%;background:#4f8f68;animation-delay:.32s}.trip-confetti i:nth-child(7){left:62%;background:#d99a4e;animation-delay:60ms}.trip-confetti i:nth-child(8){left:71%;background:#c2553a;animation-delay:.21s}.trip-confetti i:nth-child(9){left:80%;background:#e0b36a;animation-delay:.15s}.trip-confetti i:nth-child(10){left:88%;background:#2f6b4a;animation-delay:.29s}.trip-confetti i:nth-child(11){left:93%;background:#b4472f;animation-delay:20ms}.trip-confetti i:nth-child(12){left:40%;background:#4f8f68;animation-delay:.36s}@keyframes confetti-fall{0%{transform:translateY(-12px) rotate(0);opacity:1}to{transform:translateY(230px) rotate(340deg);opacity:0}}.tone-chip{display:inline-flex;align-items:center;gap:5px;background:var(--tone-bg);color:var(--tone-ink);border:1px solid var(--tone-line);border-radius:var(--radius-pill);padding:3px 9px;font-size:12px;font-weight:700;letter-spacing:.01em;white-space:nowrap}.tone-chip b{font-variant-numeric:tabular-nums}.header{padding:10px 2px 4px;margin-bottom:10px;align-items:center;flex-wrap:nowrap;gap:10px}.header h1,.header-actions{flex-wrap:nowrap}@media (max-width: 480px){.header h1{flex:1 1 auto;flex-basis:auto;font-size:26px}.header-actions{width:auto}}.header h1{font-size:30px;font-weight:800;letter-spacing:-.04em;gap:10px}.title-icon{width:36px;height:36px;border-radius:11px}.menu-button{width:42px;height:42px;border-radius:13px;background:var(--surface-2);color:var(--ink);padding:0;display:grid;place-items:center;gap:0}.menu-button:active{background:var(--surface-3)}.menu-line{display:none}.menu-dropdown{border-radius:16px;border:1px solid var(--line);box-shadow:var(--shadow-2);padding:6px;min-width:190px;margin-top:6px}.menu-item{border-radius:11px;min-height:44px;gap:10px;font-weight:600;font-size:14.5px}.menu-item .icon{color:var(--ink-2)}.section-title{font-size:11.5px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3)}.lists-grid{gap:10px}.lists-grid .list-card.card{background:var(--surface)!important;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-1);padding:16px;transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}.lists-grid .list-card.card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-2)}.lists-grid .list-card.card:active{transform:scale(.985)}.list-header h3{font-size:17px;font-weight:700;letter-spacing:-.02em}.list-open-btn{font:inherit;color:inherit;text-align:left;padding:0;background:none;border:0;min-width:0;min-height:0;border-radius:6px}.list-open-btn:hover{color:var(--brand-text)}.list-card{position:relative}.list-info{margin-top:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.item-count,.checked-count,.shared-badge,.shared-with-me-badge{font-size:12px;font-weight:700;color:var(--ink-2);background:var(--surface-2);border-radius:var(--radius-pill);padding:3px 9px}.checked-count{color:var(--brand-text);background:var(--brand-50)}.shared-badge,.shared-with-me-badge{color:var(--tone-ink, var(--info));background:var(--info-soft)}.list-progress{--p: 0;width:34px;height:34px;flex:0 0 auto;border-radius:50%;background:conic-gradient(var(--brand-500) calc(var(--p) * 1%),var(--surface-3) 0);display:grid;place-items:center}.list-progress:after{content:"";width:26px;height:26px;border-radius:50%;background:var(--surface)}.list-sub{display:flex;align-items:center;gap:5px;margin-top:6px;color:var(--ink-3);font-size:12.5px;font-weight:600}.list-card-main{display:flex;align-items:center;gap:12px}.list-card-body{flex:1;min-width:0}.share-btn,.delete-btn{width:34px;height:34px;border-radius:10px;background:var(--surface-2);color:var(--ink-2);display:grid;place-items:center;opacity:1}.share-btn:hover,.delete-btn:hover{background:var(--surface-3);color:var(--ink)}.delete-btn:hover{color:var(--danger)}.list-fab{background:var(--brand-600);border-radius:18px;width:58px;height:58px;box-shadow:0 18px 32px -16px #2f6b4ae6}.list-fab:hover{background:var(--brand-500)}.empty-state{text-align:center;padding:42px 18px;color:var(--ink-2);background:var(--surface);border:1px dashed var(--line-strong);border-radius:22px;margin:12px 0}.empty-state .empty-art{width:132px;height:132px;margin:0 auto 10px;display:block}.empty-state p{margin:0 0 4px;font-size:16px;font-weight:700;color:var(--ink);letter-spacing:-.02em}.empty-state .empty-hint{font-size:14px;font-weight:500;color:var(--ink-2);max-width:34ch;margin:0 auto 14px;line-height:1.5}.empty-state .btn{margin:0 auto}.empty-icon-img,.empty-icon{display:none}.list-header-bar{padding:8px 0 6px;margin-bottom:8px;gap:10px}.back-btn{background:var(--surface-2);border-radius:12px;padding:8px 12px 8px 9px;font-size:14px;font-weight:650;color:var(--ink);gap:6px;min-height:40px}.back-btn:active{background:var(--surface-3)}.list-title{font-size:27px;font-weight:780;letter-spacing:-.035em}.share-icon-btn,.sort-icon-btn{width:40px;height:40px;border-radius:12px;background:var(--surface-2);color:var(--ink);opacity:1}.share-icon-btn:hover,.sort-icon-btn:hover{background:var(--surface-3);opacity:1}.list-search-bar{position:relative}.list-search-bar .search-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--ink-3);pointer-events:none}.list-search-input{padding-left:40px;background:var(--surface);border-color:var(--line-strong)}.items-section{margin-bottom:26px}.section-header{margin-bottom:10px}.btn-secondary-outline{border-radius:var(--radius-pill);border-color:var(--line-strong);color:var(--ink-2);background:var(--surface);font-weight:650;padding:6px 13px}.btn-secondary-outline:hover{background:var(--surface-2);color:var(--ink)}.btn-secondary-outline:active{background:var(--surface-3)}.category-subtitle{font-size:11px;letter-spacing:.13em;font-weight:800;color:var(--ink-3)}.items-list{gap:8px}.items-list>div{margin-bottom:0}.item-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:none;padding:12px 14px 12px 18px}.item-card.view-mode{min-height:62px;cursor:pointer;position:relative;overflow:hidden}.item-card.view-mode[data-tone]:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--tone-strong);opacity:.85}.item-card.view-mode:hover{border-color:var(--line-strong)}.item-card.view-mode:active{background:var(--surface-2);transform:none}.item-card.checked{opacity:1;background:color-mix(in srgb,var(--surface) 65%,var(--surface-2))}.item-card.checked .item-name{color:var(--ink-3)}.item-card.view-mode .item-thumbnail{border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}.item-card.view-mode .item-content,.item-card.view-mode .item-details-column,.item-card.view-mode .item-details-row,.item-card.view-mode .item-details{min-width:0}.item-card.view-mode .item-actions{flex:0 0 auto}.item-card.view-mode .item-name{min-width:0;overflow-wrap:anywhere}.item-card.view-mode .item-quantity{flex:0 0 auto}.item-name{font-size:16px;font-weight:620;letter-spacing:-.012em}.item-quantity{font-size:12.5px;font-weight:750;color:var(--brand-text);background:var(--brand-50);border-radius:var(--radius-pill);padding:2px 8px;font-variant-numeric:tabular-nums}.item-url-link{color:var(--ink-3);font-size:11.5px;width:100%;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;line-height:1.4}.item-url-link .icon{display:inline-block;vertical-align:-2px;margin-right:3px}.checkbox-container{padding:8px;margin:-8px -6px -8px 0;border-radius:var(--radius-pill)}.checkbox{width:26px;height:26px;border:2px solid var(--line-strong);background:var(--surface);color:#fffdf8;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.dark-theme .checkbox{border-color:#7d6b58}.checkbox.checked{background:var(--brand-600);border-color:var(--brand-600);animation:check-pop .28s var(--ease)}@keyframes check-pop{0%{transform:scale(.72)}55%{transform:scale(1.14)}to{transform:scale(1)}}.item-card.view-mode .item-quantity{background:var(--brand-50);color:var(--brand-text)}.pencil-btn,.trash-btn{border-radius:10px;color:var(--ink-2)}.pencil-btn:hover,.trash-btn:hover{background:var(--surface-2);color:var(--ink)}.item-card.editing.compact{padding:12px;gap:10px}.edit-form-main-row{flex-wrap:wrap;align-items:flex-start;gap:10px}.edit-thumbnail-compact .thumbnail-image-wrapper,.edit-thumbnail-compact .thumbnail-placeholder-wrapper,.edit-thumbnail-compact .thumbnail-placeholder{width:56px;height:56px;border-radius:12px}.edit-thumbnail-compact .thumbnail-placeholder{background:var(--surface-2);color:var(--ink-3);border:1px dashed var(--line-strong)}.edit-inputs-compact{min-width:0}.edit-actions-compact{flex-direction:row;justify-content:flex-end;align-items:center;width:100%;gap:8px}.edit-actions-compact .btn-save{background:var(--brand-600);color:#fffdf8;border:0;border-radius:12px}.edit-actions-compact .btn-save:hover{background:var(--brand-500)}.edit-actions-compact .btn-cancel{background:var(--surface-2);color:var(--ink);border:0;border-radius:12px}.edit-actions-compact .btn-delete-compact{margin-right:auto;background:var(--danger-soft);color:var(--danger);border:0;border-radius:12px}.edit-actions-compact .btn-delete-compact:hover{background:color-mix(in srgb,var(--danger) 18%,transparent)}.upload-progress-compact{background:var(--surface-2)}.fab-wrapper{right:auto;left:16px}.fab{width:58px;height:58px;border-radius:18px;background:var(--brand-600);box-shadow:0 18px 32px -16px #2f6b4ae6}.fab:hover{background:var(--brand-500)}.add-panel{border-radius:22px 22px 0 0;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-2)}.add-panel-overlay{background:var(--overlay)}.delete-modal{background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-2)}.delete-modal-title{letter-spacing:-.02em}.modal-overlay,.sort-modal-overlay,.dup-overlay,.image-popup-overlay,.image-viewer-overlay{background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content,.sort-modal,.dup-modal,.image-popup,.delete-modal{border-radius:22px;border:1px solid var(--line);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-2)}.modal-header{border-bottom-color:var(--line);padding:16px 18px}.modal-header h2,.sort-modal-title{letter-spacing:-.025em;font-size:18px}.modal-body{padding:18px}.close-btn{width:36px;height:36px;border-radius:10px;background:var(--surface-2);color:var(--ink-2);font-size:20px}.close-btn:hover{background:var(--surface-3);color:var(--ink)}.sort-option{border:1px solid var(--line)!important;border-radius:14px!important;padding:12px!important;background:var(--surface)!important}.sort-option.active{border-color:var(--brand-500)!important;background:var(--brand-50)!important}.sort-option .option-title{font-weight:700}.sort-option .option-desc{color:var(--ink-2)}.image-viewer-modal{border-radius:20px;overflow:hidden}.image-caption{background:var(--surface);color:var(--ink)}.auth-container{background:radial-gradient(900px 460px at 12% -12%,rgba(217,154,78,.26),transparent 62%),radial-gradient(760px 420px at 92% 6%,rgba(47,107,74,.18),transparent 60%),var(--paper);padding:20px}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow-2);padding:30px 22px 26px}.auth-title{font-size:34px;letter-spacing:-.04em;gap:10px;color:var(--ink)}.auth-title .title-icon{width:42px;height:42px;border-radius:13px}.auth-subtitle{color:var(--ink-2);font-size:15px;margin-bottom:24px}.auth-tabs{background:var(--surface-2);border-radius:14px;padding:5px}.auth-tab{border-radius:10px;color:var(--ink-2);font-weight:650}.auth-tab.active{background:var(--surface);color:var(--brand-text);box-shadow:var(--shadow-1)}.auth-card .input{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.form-group label{color:var(--ink-2);font-weight:650;font-size:13px}.form-group+.form-group{margin-top:2px}.error-message{background:var(--danger-soft);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 26%,transparent);border-radius:var(--radius-md);padding:12px 14px;font-size:14px;font-weight:550}.auth-link{background:none;border:none;color:var(--brand-text);font-weight:650;font-size:14px;text-decoration:none;padding:8px;border-radius:8px}.auth-link:hover{text-decoration:underline}.catalog-page-header h1{font-size:27px;font-weight:780;letter-spacing:-.035em}.categories-panel,.products-panel{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-1);padding:16px}.panel-header h2{font-size:16px;letter-spacing:-.02em}.add-icon-btn{width:38px;height:38px;border-radius:12px;background:var(--brand-600);color:#fffdf8;display:grid;place-items:center}.add-icon-btn:hover{background:var(--brand-500)}.category-item{border-radius:12px!important;border:1px solid transparent;padding:9px 10px!important;margin-bottom:4px;background:var(--tone-bg, var(--surface-2));color:var(--ink);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.category-item:hover{border-color:var(--tone-line, var(--line-strong));background:var(--tone-bg, var(--surface-2));filter:brightness(.985)}.category-item.active{border-color:var(--tone-strong, var(--brand-500))!important;background:var(--tone-bg, var(--surface-2))!important;box-shadow:inset 3px 0 0 var(--tone-strong, var(--brand-500))}.category-item .category-name{display:inline-flex;align-items:center;font-weight:650;font-size:14px;color:var(--tone-ink, var(--ink));gap:7px}.category-item.subcategory{background:var(--tone-bg, var(--surface-2))}.category-item.subcategory .category-name{color:var(--tone-ink, var(--ink-2))}.delete-icon-btn{color:var(--ink-3);border-radius:10px}.delete-icon-btn:hover{color:var(--danger);background:var(--danger-soft)}.product-item{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px 12px!important}.product-name{font-weight:600}.product-quantity{color:var(--brand-text);background:var(--brand-50);border-radius:var(--radius-pill);padding:1px 8px;font-size:12px;font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap;flex:0 0 auto;align-self:center;min-width:30px;text-align:center}.inline-form{background:var(--surface-2);border-radius:14px;border:1px solid var(--line)}.catalog-browser{background:var(--paper)}.catalog-header,.catalog-search{background:var(--surface);border-bottom-color:var(--line)}.catalog-header h3{font-size:18px;letter-spacing:-.025em}.catalog-close-btn{border-radius:10px;background:var(--surface-2);width:36px;height:36px;font-size:18px}.catalog-tree .category-header{border-radius:12px;background:var(--surface);border:1px solid var(--line);padding:10px 12px!important}.catalog-tree .category-header .category-name{font-weight:650}.product-row{background:var(--surface);border:1px solid var(--line);border-radius:12px}.product-add-btn{background:var(--brand-600);color:#fffdf8;border-radius:10px;font-weight:700}.settings-modal .modal-body{padding:18px}.menu-item-toggle{border-radius:var(--radius-pill);background:var(--surface-2);color:var(--ink);font-weight:650;padding:8px 14px;display:inline-flex;align-items:center;gap:7px}.share-form{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap}.share-form .email-input{flex:1 1 150px;min-width:0;height:46px;padding:0 12px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);color:var(--ink);font-size:14.5px}.share-form .email-input::placeholder{color:var(--ink-3)}.share-form .permission-select{height:46px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);color:var(--ink);padding:0 10px;font-size:14px}.share-form .add-share-btn{height:46px;border-radius:12px;background:var(--brand-600);color:#fffdf8;padding:0 16px;font-weight:700;font-size:14px}.shares-list h3{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:18px 0 8px}.share-item{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:8px 10px}.permission-select-small{height:36px;border-radius:10px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:13px}.remove-share-btn{color:var(--danger);font-weight:650;font-size:13px}@media (max-width: 480px){.share-form .email-input{flex:1 1 100%}.share-form .permission-select,.share-form .add-share-btn{flex:1 1 0}}.password-field{position:relative}.password-field .input{padding-right:52px}.password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:10px;display:grid;place-items:center;color:var(--ink-3);background:transparent}.password-toggle:hover{color:var(--ink);background:var(--surface-2)}.auth-footer{text-align:center;margin-top:6px}.success-message{background:var(--brand-50);color:var(--brand-text);border:1px solid color-mix(in srgb,var(--brand-500) 28%,transparent);border-radius:var(--radius-md);padding:12px 14px;font-size:14px;font-weight:600}.resend-btn{margin-top:10px;min-height:38px;padding:8px 14px;font-size:13.5px}.btn-block{width:100%;margin-top:6px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.settings-label{font-weight:700;letter-spacing:-.01em}.settings-hint{font-size:12.5px;color:var(--ink-3);margin-top:2px}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:1200;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;padding-top:max(8px,var(--sai-top));background:var(--accent-soft);color:var(--accent);border-bottom:1px solid var(--accent-line);font-size:13px;font-weight:650}.install-banner{position:fixed;left:14px;right:14px;bottom:calc(84px + var(--sai-bottom));z-index:1100;display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-2);max-width:560px;margin:0 auto}.install-icon{width:38px;height:38px;flex:0 0 auto;border-radius:12px;display:grid;place-items:center;background:var(--brand-50);color:var(--brand-text)}.install-copy{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}.install-copy strong{font-size:14px;letter-spacing:-.01em}.install-copy span{font-size:12.5px;color:var(--ink-2)}.install-actions{display:flex;gap:6px;flex:0 0 auto}.install-later{font-size:13px;font-weight:650;color:var(--ink-2);padding:0 10px;border-radius:10px;min-height:38px}.install-go{font-size:13px;font-weight:700;color:#fffdf8;background:var(--brand-600);border-radius:10px;padding:0 14px;min-height:38px}.install-go:hover{background:var(--brand-500)}.btn-secondary-outline{display:inline-flex;align-items:center;gap:6px}.btn-danger,.btn-secondary{min-height:44px;padding:10px 18px;border-radius:var(--radius-md);font-weight:650}.btn-danger{background:var(--danger);color:#fffdf8}.btn-secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line-strong)}.delete-modal-actions{display:flex;gap:10px;justify-content:flex-end}.catalog-empty-icon,.product-icon,.category-icon{display:inline-grid;place-items:center;color:var(--tone-ink, var(--ink-2))}.product-icon,.category-icon{width:22px}.catalog-empty-icon{width:54px;height:54px;margin:0 auto 10px;border-radius:16px;background:var(--surface-2);color:var(--ink-2)}.catalog-empty p{color:var(--ink-2)}.catalog-hint{color:var(--ink-3)!important;font-size:13px}.thumbnail-edit-btn-corner{display:grid;place-items:center;color:#fffdf8}.thumbnail-placeholder{display:grid;place-items:center;color:var(--ink-3)}.link-modal{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-2)}.link-modal-overlay{background:var(--overlay)}.add-panel .icon-btn{width:44px;height:44px;border-radius:12px;background:var(--surface-2);display:grid;place-items:center;color:var(--ink-2)}.add-panel .icon-btn:hover{background:var(--surface-3);color:var(--ink)}.bg-decor{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.bg-shape{position:absolute;display:block}.bg-shape--blob-a{width:520px;height:520px;top:-180px;left:-140px;border-radius:46% 54% 58% 42%/52% 44% 56% 48%;background:linear-gradient(140deg,#d99a4e42,#d99a4e0d);filter:blur(6px)}.bg-shape--blob-b{width:620px;height:620px;right:-240px;bottom:-260px;border-radius:58% 42% 44% 56%/46% 58% 42% 54%;background:linear-gradient(150deg,#2f6b4a33,#2f6b4a08);filter:blur(8px)}.bg-shape--blob-c{width:420px;height:420px;left:44%;bottom:-260px;border-radius:52% 48% 40% 60%/56% 46% 54% 44%;background:linear-gradient(160deg,#2f6b4a1f,#2f6b4a04);filter:blur(10px)}.bg-shape--ring{width:300px;height:300px;right:9%;top:12%;border-radius:50%;border:26px solid rgba(47,107,74,.11)}.bg-shape--ring-b{width:260px;height:260px;left:3.5%;bottom:9%;border-radius:50%;border:16px solid rgba(166,102,31,.16)}.bg-shape--ring-c{width:190px;height:190px;right:2%;bottom:44%;border-radius:50%;border:2px solid rgba(43,86,134,.22)}.bg-shape--disc{width:116px;height:116px;right:5%;top:6%;border-radius:50%;background:#d99a4e3d}.bg-shape--tile{width:180px;height:180px;left:8%;bottom:14%;border-radius:42px;transform:rotate(-16deg);background:#2b568616}.bg-shape--tile-b{width:150px;height:150px;right:4%;top:47%;border-radius:34px;transform:rotate(14deg);background:#2f6b4a1c}.bg-shape--pill{width:230px;height:82px;left:4%;top:30%;border-radius:999px;transform:rotate(-9deg);background:#d99a4e29}.bg-shape--dot-grid{width:210px;height:160px;right:12%;bottom:22%;background-image:radial-gradient(rgba(166,102,31,.34) 2.2px,transparent 2.4px);background-size:22px 22px;opacity:.55}.bg-shape--dot-grid-b{width:150px;height:130px;left:8%;top:20%;background-image:radial-gradient(rgba(47,107,74,.34) 2.2px,transparent 2.4px);background-size:20px 20px;opacity:.5}.bg-shape--arc{width:430px;height:430px;left:50%;top:-300px;transform:translate(-50%);border-radius:50%;border:2px dashed rgba(166,102,31,.2)}.dark-theme .bg-shape--blob-a{background:linear-gradient(140deg,#e8b1711a,#e8b17104)}.dark-theme .bg-shape--blob-b{background:linear-gradient(150deg,#8fd0a51f,#8fd0a505)}.dark-theme .bg-shape--blob-c{background:linear-gradient(160deg,#9cc3e81a,#9cc3e804)}.dark-theme .bg-shape--ring{border-color:#8fd0a51a}.dark-theme .bg-shape--ring-b{border-color:#e8b17121}.dark-theme .bg-shape--ring-c{border-color:#9cc3e829}.dark-theme .bg-shape--disc{background:#e8b17124}.dark-theme .bg-shape--tile-b{background:#8fd0a512}.dark-theme .bg-shape--pill{background:#e8b17117}.dark-theme .bg-shape--dot-grid-b{background-image:radial-gradient(rgba(143,208,165,.24) 2.2px,transparent 2.4px)}.dark-theme .bg-shape--tile{background:#9cc3e80e}.dark-theme .bg-shape--dot-grid{background-image:radial-gradient(rgba(232,177,113,.28) 2.2px,transparent 2.4px)}.dark-theme .bg-shape--arc{border-color:#e8b17124}@media (max-width: 767px){.bg-shape--ring,.bg-shape--ring-b,.bg-shape--ring-c,.bg-shape--disc,.bg-shape--tile,.bg-shape--tile-b,.bg-shape--pill,.bg-shape--dot-grid,.bg-shape--dot-grid-b,.bg-shape--arc,.bg-shape--blob-c{display:none}.bg-shape--blob-a{width:340px;height:340px;top:-150px;left:-170px}.bg-shape--blob-b{width:380px;height:380px;right:-190px;bottom:-200px}}.container{position:relative;z-index:1}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:1150;padding:0 12px calc(8px + var(--sai-bottom));pointer-events:none}.bottom-nav-inner{pointer-events:auto;max-width:560px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:7px;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-2)}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:50px;border-radius:14px;color:var(--ink-3);font-size:11px;font-weight:700;letter-spacing:.02em;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.bottom-nav-item:active{transform:none;background:var(--surface-2)}.bottom-nav-item.is-active{color:var(--brand-text);background:var(--brand-50)}.container{padding-bottom:calc(104px + var(--sai-bottom))}@media (min-width: 1024px){.container{max-width:760px}.bottom-nav{padding-bottom:calc(14px + var(--sai-bottom))}.bottom-nav-inner{max-width:520px}}.fab-wrapper,.fab,.list-fab{bottom:calc(84px + var(--sai-bottom))}.install-banner{bottom:calc(150px + var(--sai-bottom))}.header-avatar{width:42px;height:42px;border-radius:50%;background:var(--surface-2);border:1px solid var(--line-strong);color:var(--ink);font-size:15px;font-weight:800;display:grid;place-items:center;flex:0 0 auto}.header-avatar:hover{background:var(--surface-3)}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1250;background:var(--overlay);display:flex;align-items:flex-end;justify-content:center;padding-bottom:var(--sai-bottom)}.sheet{width:100%;max-width:560px;background:var(--surface);border:1px solid var(--line);border-bottom:0;border-radius:24px 24px 0 0;box-shadow:var(--shadow-2);padding:8px 14px calc(24px + var(--sai-bottom));animation:sheet-up var(--dur-slow) var(--ease)}@keyframes sheet-up{0%{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}.sheet-grabber{width:40px;height:4px;border-radius:999px;background:var(--line-strong);margin:4px auto 14px}.account-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.account-avatar{width:46px;height:46px;border-radius:50%;background:var(--brand-600);color:#fffdf8;display:grid;place-items:center;font-size:18px;font-weight:800;flex:0 0 auto}.account-id{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}.account-id strong{font-size:15px;letter-spacing:-.01em}.account-id span{font-size:13px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-row{width:100%;display:flex;align-items:center;gap:12px;padding:12px 10px;min-height:56px;border-radius:14px;background:var(--surface-2);border:1px solid transparent;text-align:left;margin-bottom:8px}.sheet-row:hover{border-color:var(--line-strong)}.sheet-row-icon{width:34px;height:34px;border-radius:10px;background:var(--surface);color:var(--ink-2);display:grid;place-items:center;flex:0 0 auto}.sheet-row-text{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}.sheet-row-text b{font-size:14.5px;font-weight:680}.sheet-row-text small{font-size:12px;color:var(--ink-3)}.sheet-row-value{font-size:12.5px;font-weight:750;color:var(--brand-text);background:var(--brand-50);border-radius:var(--radius-pill);padding:3px 10px}.sheet-row--danger{background:var(--danger-soft);color:var(--danger)}.sheet-row--danger .sheet-row-icon{background:transparent;color:var(--danger)}.sheet-row--danger .sheet-row-text b{color:var(--danger)}.account-avatar--neutral{background:var(--surface-2);color:var(--ink-2)}.sheet-block{padding:4px 2px 0}.sheet-block-title{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:4px 0 8px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--surface-2);border-radius:14px;padding:5px}.segmented-item{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;border-radius:10px;font-size:14px;font-weight:650;color:var(--ink-2)}.segmented-item.is-active{background:var(--surface);color:var(--brand-text);box-shadow:var(--shadow-1)}.sheet-note{font-size:12.5px;color:var(--ink-3);margin:10px 2px 2px}@media (min-width: 768px){.sheet-overlay{align-items:center;padding-bottom:0}.sheet{max-width:440px;border-radius:24px;border-bottom:1px solid var(--line);padding:16px 18px 18px}.sheet-grabber{display:none}}.row-thumb{width:40px;height:40px;flex:0 0 auto;border-radius:12px;background:var(--tone-bg);color:var(--tone-ink);border:1px solid var(--tone-line);display:grid;place-items:center}.item-card.view-mode .item-thumbnail{width:40px;height:40px;min-width:40px;min-height:40px;border-radius:12px}@media (max-width: 480px){.container{padding-left:14px;padding-right:14px}.list-title{font-size:23px}.trip-count{font-size:34px}.trip{border-radius:20px;padding:16px}.item-card.view-mode{min-height:58px}}
