.composition-detail-actions[data-v-6b0ac946]{display:flex;justify-content:center;gap:var(--spacing-8);margin-bottom:var(--spacing-8)}.upload-container[data-v-6b0ac946]{max-width:300px;margin-bottom:var(--spacing-8)}.composition-edit-field[data-v-6b0ac946]{display:flex;flex-direction:column;gap:var(--spacing-4)}.composition-edit-field label[data-v-6b0ac946]{font-size:var(--text-caption);font-weight:var(--font-weight-medium);color:var(--color-mist)}.composition-edit-input[data-v-6b0ac946]{border:1px solid rgba(45,70,40,.1);border-radius:var(--radius-inputs);background:var(--surface-iron);color:var(--color-bone);padding:8px 10px;font-size:var(--text-caption);font-family:var(--font-dm-sans);outline:none;min-width:0;box-sizing:border-box}.composition-edit-input[data-v-6b0ac946]:focus{border-color:#2d462840}.composition-edit-settings[data-v-6b0ac946]{display:flex;gap:var(--spacing-16)}.composition-edit-settings .composition-edit-field[data-v-6b0ac946]{flex:1}.composition-edit-ingredient-select[data-v-6b0ac946]{width:100%}.composition-edit-ingredient-qty[data-v-6b0ac946]{width:80px}.composition-edit-ingredient-comment[data-v-6b0ac946]{width:100%}.composition-ingredients-table th[data-v-6b0ac946]:first-child,.composition-ingredients-table td[data-v-6b0ac946]:first-child{min-width:180px;width:40%}.composition-edit-packing-row[data-v-6b0ac946]{display:flex;align-items:center;gap:var(--spacing-8);margin-bottom:var(--spacing-8)}.composition-edit-packing-row label[data-v-6b0ac946]{font-size:var(--text-caption);color:var(--color-fog);width:110px;flex-shrink:0}.composition-edit-packing-price[data-v-6b0ac946]{width:120px}.composition-edit-packing-comment[data-v-6b0ac946]{flex:1;resize:vertical;font-family:var(--font-dm-sans)}.composition-edit-cost-row[data-v-6b0ac946]{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-4) 0;font-size:var(--text-caption)}.composition-edit-cost-row label[data-v-6b0ac946]{color:var(--color-fog)}.composition-edit-cost-input[data-v-6b0ac946]{width:120px}@media(max-width:640px){.composition-edit-ingredient-qty[data-v-6b0ac946]{width:100%}.composition-ingredients-table th[data-v-6b0ac946]:first-child,.composition-ingredients-table td[data-v-6b0ac946]:first-child{min-width:0;width:auto}.composition-ingredients-table td[data-v-6b0ac946]:last-child{white-space:nowrap}}:root{--color-void: #f6f8f4;--color-char: #ffffff;--color-iron: #edf2ea;--color-slate: #d4dcd2;--color-smoke: #9aab95;--color-graphite: #e8efe5;--color-ink: #dbe3d6;--color-fog: #7d8f7a;--color-mist: #5a6b57;--color-ash: #8a9b86;--color-bone: #1e2e1e;--color-paper: #3d6b45;--color-onyx: #ffffff;--color-indigo-haze: #5a8a4a;--gradient-indigo-haze: linear-gradient(90deg, rgba(45, 70, 40, 0) 0%, rgba(45, 70, 40, 0) 40%, rgba(90, 138, 74, .5) 50%, rgba(45, 70, 40, 0) 60%, rgba(45, 70, 40, 0));--color-dawn-wash: #a0b8a0;--gradient-dawn-wash: linear-gradient(180deg, rgb(60, 95, 65), rgb(140, 170, 135), rgb(185, 175, 135));--font-dm-sans: "DM Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-geist: "Geist", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-system-ui: "system-ui", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--text-caption: 14px;--leading-caption: 1.5;--tracking-caption: .35px;--text-body: 16px;--leading-body: 1.5;--text-body-lg: 18px;--leading-body-lg: 1.43;--text-subheading: 24px;--leading-subheading: 1.33;--text-heading-sm: 32px;--leading-heading-sm: 1.25;--text-heading: 40px;--leading-heading: 1.2;--text-heading-lg: 48px;--leading-heading-lg: 1.14;--text-display: 72px;--leading-display: 1;--tracking-display: -2.52px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--spacing-unit: 4px;--spacing-4: 4px;--spacing-8: 8px;--spacing-12: 12px;--spacing-16: 16px;--spacing-20: 20px;--spacing-24: 24px;--spacing-28: 28px;--spacing-32: 32px;--spacing-40: 40px;--spacing-44: 44px;--spacing-48: 48px;--spacing-56: 56px;--spacing-64: 64px;--page-max-width: 1200px;--section-gap: 80px;--card-padding: 24px;--element-gap: 8px;--radius-md: 4px;--radius-lg: 10px;--radius-2xl: 19px;--radius-3xl: 24px;--radius-3xl-2: 40px;--radius-full: 64px;--radius-full-2: 9999px;--radius-pill: 9999px;--radius-tags: 9999px;--radius-cards: 24px;--radius-inputs: 10px;--radius-buttons: 9999px;--radius-iconcontainers: 4px;--radius-largecontainers: 40px;--surface-void: #f6f8f4;--surface-char: #ffffff;--surface-iron: #edf2ea;--surface-slate: #d4dcd2}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--color-void);color:var(--color-bone);font-family:var(--font-dm-sans);font-size:var(--text-body);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}:focus-visible{outline:2px solid var(--color-paper);outline-offset:2px}.app-layout{display:flex;flex-direction:column;gap:var(--spacing-16)}.page-nav{position:sticky;top:0;z-index:100;background:#ffffffd9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid rgba(45,70,40,.08);padding:var(--spacing-8) var(--spacing-24);display:flex;gap:var(--spacing-8);max-width:var(--page-max-width);width:100%;margin:0 auto;border-radius:var(--radius-pill)}.nav-toggle{display:none}.nav-links{display:flex;flex:1;gap:var(--spacing-8)}.nav-current-page{display:none}.nav-link{padding:6px 18px;border-radius:var(--radius-pill);background:transparent;border:none;font-family:var(--font-dm-sans);font-size:var(--text-caption);font-weight:var(--font-weight-medium);color:var(--color-mist);cursor:pointer;text-decoration:none;line-height:1;transition:background .15s,color .15s}.nav-link.active{background:var(--surface-iron);color:var(--color-bone)}.nav-link:not(.active):hover{background:#2d46280d;color:var(--color-bone)}.nav-sep{width:1px;align-self:stretch;margin:2px var(--spacing-8);margin-left:auto;background:#2d46281f}.nav-user{font-family:var(--font-dm-sans);font-size:var(--text-caption);font-weight:var(--font-weight-medium);color:var(--color-mist);line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px;align-self:center}.nav-logout{margin-left:var(--spacing-8);padding:6px 18px;border-radius:var(--radius-pill);background:transparent;border:1px solid rgba(45,70,40,.1);font-family:var(--font-dm-sans);font-size:var(--text-caption);font-weight:var(--font-weight-medium);color:var(--color-fog);cursor:pointer;line-height:1;transition:background .15s,color .15s,border-color .15s}.nav-logout:hover{background:#ef44440f;border-color:#ef444426;color:#b91c1c}.shopping-container{display:flex;flex-direction:column;gap:var(--spacing-16);max-width:var(--page-max-width);margin:0 auto;padding:var(--spacing-24) var(--spacing-16)}.shopping-header h1{margin:0;font-size:var(--text-heading-sm);color:var(--color-bone);font-family:var(--font-dm-sans)}.shopping-header p{margin:var(--spacing-8) 0 0}.shopping-form{display:flex;flex-direction:column;gap:var(--spacing-16)}.shopping-row{display:grid;grid-template-columns:1fr 120px auto;gap:var(--spacing-8)}.shopping-item-select,.shopping-count-input{border:1px solid rgba(45,70,40,.1);border-radius:var(--radius-inputs);background:var(--surface-iron);color:var(--color-bone);font-family:var(--font-dm-sans);font-size:var(--text-body);padding:var(--spacing-8);min-width:0;outline:none;transition:border-color .15s}.shopping-item-select:focus,.shopping-count-input:focus{border-color:#2d462840}.primary-btn,.success-btn{padding:var(--spacing-8) var(--spacing-20);border-radius:var(--radius-pill);background:var(--color-paper);color:var(--color-onyx);border:none;font-family:var(--font-dm-sans);font-size:var(--text-caption);font-weight:var(--font-weight-medium);cursor:pointer;transition:opacity .15s;width:fit-content}.primary-btn:hover,.success-btn:hover{opacity:.9}.primary-btn:disabled,.success-btn:disabled{opacity:.4;cursor:not-allowed}.shopping-actions{display:flex;gap:var(--spacing-8);flex-wrap:wrap}.secondary-btn{padding:var(--spacing-8) var(--spacing-20);border-radius:var(--radius-pill);background:transparent;color:var(--color-bone);border:1px solid rgba(45,70,40,.1);font-family:var(--font-dm-sans);font-size:var(--text-caption);font-weight:var(--font-weight-medium);cursor:pointer;transition:background .15s}.secondary-btn:hover{background:#2d46280d}.secondary-btn:disabled{opacity:.3;cursor:not-allowed}.secondary-btn.danger{border-color:#ef44444d;color:#ef4444}.secondary-btn.danger:hover{background:#ef444414}.add-row-btn{width:fit-content}.snapshot-link-block{display:flex;gap:var(--spacing-8);align-items:center;flex-wrap:wrap}.snapshot-link-input{min-width:320px;border:1px solid rgba(45,70,40,.1);border-radius:var(--radius-inputs);background:var(--surface-iron);color:var(--color-bone);font-family:var(--font-dm-sans);font-size:var(--text-body);padding:var(--spacing-8);outline:none;transition:border-color .15s}.snapshot-link-input:focus{border-color:#2d462840}.shopping-result{display:flex;flex-direction:column;gap:var(--spacing-16);background:var(--surface-char);border-radius:var(--radius-cards);border:1px solid rgba(45,70,40,.08);padding:var(--spacing-24)}.shopping-total{font-size:var(--text-body-lg);font-weight:var(--font-weight-semibold);color:var(--color-bone);font-family:var(--font-dm-sans)}.shopping-total-row{display:flex;flex-wrap:wrap;gap:var(--spacing-8);align-items:center;justify-content:space-between}.shopping-ingredient-list{display:flex;flex-direction:column;gap:var(--spacing-16)}.shopping-ingredient-card{background:var(--surface-iron);border-radius:var(--radius-2xl);border:1px solid rgba(45,70,40,.05);padding:var(--spacing-16)}.shopping-ingredient-main{display:flex;flex-direction:column;gap:var(--spacing-8)}.shopping-ingredient-title{font-size:var(--text-body);font-weight:var(--font-weight-semibold);color:var(--color-bone);font-family:var(--font-dm-sans)}.shopping-ingredient-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-16);color:var(--color-mist);font-family:var(--font-dm-sans)}.shopping-usage-list{margin-top:10px;display:flex;flex-direction:column;gap:6px;border-top:1px dashed rgba(45,70,40,.1);padding-top:10px}.shopping-usage-row{display:flex;flex-wrap:wrap;gap:var(--spacing-12);color:var(--color-mist);font-family:var(--font-dm-sans)}.item-container{display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-20);max-width:var(--page-max-width);margin:0 auto;padding:var(--spacing-32);background:var(--surface-char);border-radius:var(--radius-cards);border:1px solid rgba(45,70,40,.08)}.item-title{align-self:flex-start;width:100%}.item-title-input{font-size:var(--text-heading-sm);border:none;border-bottom:1px solid rgba(45,70,40,.08);border-radius:0;background:transparent;color:var(--color-bone);font-family:var(--font-dm-sans);outline:none;width:100%;padding:0 0 var(--spacing-8)}.item-title-input::placeholder{color:var(--color-smoke)}.item-settings{display:flex;width:100%;justify-content:space-between;gap:var(--spacing-16)}.setting-block{display:flex;align-items:center;gap:6px}.setting-block p{margin:0;font-size:15px;color:var(--color-mist);font-family:var(--font-dm-sans)}.item-selector{border:1px solid rgba(45,70,40,.1);border-radius:var(--radius-inputs);background:transparent;color:var(--color-bone);font-family:var(--font-dm-sans);height:28px;outline:none}.ingredient-container{width:100%;display:flex;flex-direction:column;gap:6px}.ingredient-row{display:grid;grid-template-columns:2fr .6fr 1.2fr .5fr .7fr auto;gap:var(--spacing-4);align-items:center}.name-input,.measure-input,.quantity-input,.comment-input,.cost-input,.packing-cost-input,.extra-cost-input,.final-cost-input,.self-cost-input,.tax-input,.profit-input,.margin-input{border:1px solid rgba(45,70,40,.1);border-radius:var(--radius-inputs);background:var(--surface-iron);color:var(--color-bone);font-family:var(--font-dm-sans);font-size:var(--text-body);padding:6px var(--spacing-8);min-width:0;outline:none;transition:border-color .15s}.name-input:focus,.measure-input:focus,.quantity-input:focus,.comment-input:focus,.cost-input:focus,.packing-cost-input:focus,.extra-cost-input:focus,.final-cost-input:focus,.self-cost-input:focus,.tax-input:focus,.profit-input:focus,.margin-input:focus{border-color:#2d462840}.name-input::placeholder,.measure-input::placeholder,.quantity-input::placeholder,.comment-input::placeholder,.cost-input::placeholder,.packing-cost-input::placeholder,.extra-cost-input::placeholder,.final-cost-input::placeholder,.self-cost-input::placeholder,.tax-input::placeholder,.profit-input::placeholder,.margin-input::placeholder{color:var(--color-smoke)}.add-btn{padding:6px 14px;border-radius:var(--radius-pill);background:transparent;color:var(--color-bone);border:1px solid rgba(45,70,40,.1);font-family:var(--font-dm-sans);font-size:var(--text-caption);cursor:pointer;transition:background .15s}.add-btn:hover{background:#2d46280d}.extra-container{display:flex;flex-direction:column;width:100%;align-items:flex-start;border-radius:var(--radius-inputs);border:1px solid rgba(45,70,40,.08);padding:var(--spacing-8)}.packing{display:flex;justify-content:space-between;align-items:center;width:100%;gap:var(--spacing-8);background:none;border-radius:var(--radius-inputs);border:1px solid rgba(45,70,40,.08);padding:6px}.packing-comment-input{flex:1;min-height:90px;resize:vertical;border:1px solid rgba(45,70,40,.1);border-radius:var(--radius-inputs);background:none;color:var(--color-bone);font-family:var(--font-dm-sans);padding:var(--spacing-8);outline:none;transition:border-color .15s}.packing-comment-input:focus{border-color:#2d462840}.packing-cost-input{width:25%;border:1px solid rgba(45,70,40,.1);background:var(--surface-iron)}.extra-cost{display:flex;justify-content:space-between;align-items:center;width:100%;gap:var(--spacing-8);border-radius:var(--radius-inputs);border:1px solid rgba(45,70,40,.08);padding:6px}.extra-cost p{margin:0;font-size:15px;color:var(--color-mist);font-family:var(--font-dm-sans)}.extra-cost-input{width:25%;flex-shrink:0;border:1px solid rgba(45,70,40,.1);background:var(--surface-iron);color:var(--color-bone);font-family:var(--font-dm-sans)}.footer{display:flex;width:100%;justify-content:space-between;gap:var(--spacing-16)}.upload-container{width:32%}.drop-zone{border:2px dashed rgba(45,70,40,.1);border-radius:var(--radius-cards);background:#ffffffd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative;overflow:hidden;min-height:200px;width:100%;display:flex;justify-content:center;align-items:center;transition:border-color .15s,background .15s}.drop-zone.active{border-color:#2d462840;background:#ffffffb3}.drop-zone-preview{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;object-position:center;opacity:.4;z-index:1}.drop-zone-content{position:relative;z-index:2;text-align:center}.drop-zone-content p{font-size:11px;margin:0;color:var(--color-mist);font-family:var(--font-dm-sans)}.browse-btn{display:inline-block;padding:var(--spacing-8) var(--spacing-16);background:transparent;color:var(--color-bone);border:1px solid rgba(45,70,40,.1);border-radius:var(--radius-pill);font-family:var(--font-dm-sans);font-size:var(--text-caption);font-weight:var(--font-weight-medium);cursor:pointer;margin-top:10px;transition:background .15s}.browse-btn:hover{background:#2d46280d}#image-upload,#edit-image-upload{display:none}.cost-container{display:flex;flex-direction:column;width:100%;align-items:flex-end;gap:5px}.cost-row{display:flex;align-items:center;gap:var(--spacing-8)}.cost-row p{margin:0;font-size:15px;color:var(--color-mist);font-family:var(--font-dm-sans)}#submit-btn{position:relative;display:flex;align-self:center;justify-content:center;gap:var(--spacing-8);padding:12px 24px;cursor:pointer;border:none;background:var(--color-paper);color:var(--color-onyx);border-radius:var(--radius-pill);font-family:var(--font-dm-sans);font-size:var(--text-caption);font-weight:var(--font-weight-medium);width:100%;transition:opacity .15s}#submit-btn:hover{opacity:.9}#submit-btn:disabled{opacity:.4;cursor:not-allowed}.loader{display:none;width:16px;height:16px;border:2px solid rgba(45,70,40,.15);border-top:2px solid var(--color-bone);border-radius:50%;animation:spin 1s linear infinite}#submit-btn.loading .loader,.drop-zone-content.loading .loader{display:inline-block}#submit-btn.loading .button-text,.drop-zone-content.loading .browse-btn,.drop-zone-content.loading p{display:none}.notifications{position:fixed;top:var(--spacing-16);right:var(--spacing-16);display:flex;flex-direction:column;gap:var(--spacing-8);z-index:200}.notification{max-width:360px;padding:10px var(--spacing-20);border-radius:var(--radius-pill);background:var(--surface-char);color:var(--color-bone);font-family:var(--font-dm-sans);font-size:var(--text-caption);font-weight:var(--font-weight-medium);border:1px solid rgba(45,70,40,.08);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.notification.error{border-color:#ef44444d;color:#ef4444;background:var(--surface-char)}.notification.success{border-color:#2d46281a;color:var(--color-bone);background:var(--surface-char)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.compositions-layout{display:grid;grid-template-columns:280px 1fr;gap:var(--spacing-20);max-width:var(--page-max-width);margin:0 auto;padding:var(--spacing-24) var(--spacing-16)}.compositions-sidebar{max-height:calc(100vh - 200px);overflow-y:auto;background:var(--surface-char);border-radius:var(--radius-cards);border:1px solid rgba(45,70,40,.08);overflow-x:hidden}.composition-group{border-bottom:1px solid rgba(45,70,40,.05)}.composition-group:last-child{border-bottom:none}.composition-group-header{width:100%;text-align:left;background:transparent;border:none;border-bottom:1px solid rgba(45,70,40,.05);padding:var(--spacing-12) var(--spacing-16);font-size:var(--text-body);font-weight:var(--font-weight-medium);color:var(--color-bone);font-family:var(--font-dm-sans);cursor:pointer;border-radius:0}.composition-group-header:hover{background:#2d462805}.composition-group-header.expanded{color:var(--color-bone);background:#2d462808}.composition-group-items{padding:var(--spacing-4) 0}.composition-item{display:block;width:100%;text-align:left;background:transparent;border:none;padding:var(--spacing-8) var(--spacing-16) var(--spacing-8) var(--spacing-28);font-size:var(--text-caption);color:var(--color-mist);font-family:var(--font-dm-sans);cursor:pointer;border-radius:0}.composition-item:hover{background:#2d462805}.composition-item.active{color:var(--color-bone);background:#2d46280d}.composition-detail{background:var(--surface-char);border-radius:var(--radius-cards);border:1px solid rgba(45,70,40,.08);padding:var(--spacing-24)}.composition-detail-placeholder{display:flex;align-items:center;justify-content:center;min-height:300px;color:var(--color-fog);font-size:var(--text-body-lg);font-family:var(--font-dm-sans)}.composition-detail-card{display:flex;flex-direction:column;gap:var(--spacing-16)}.composition-detail-image{max-width:100%;max-height:300px;border-radius:var(--radius-lg);object-fit:contain}.composition-detail-title{margin:0;font-size:var(--text-subheading);color:var(--color-bone);font-family:var(--font-dm-sans)}.composition-detail-subtitle{margin:0;color:var(--color-mist);font-size:var(--text-caption);font-family:var(--font-dm-sans)}.composition-ingredients-table{width:100%;border-collapse:collapse}.composition-ingredients-table th,.composition-ingredients-table td{padding:var(--spacing-8) var(--spacing-12);text-align:left;border-bottom:1px solid rgba(45,70,40,.03);font-size:var(--text-caption);font-family:var(--font-dm-sans);color:var(--color-bone)}.composition-ingredients-table th{font-weight:var(--font-weight-medium);color:var(--color-fog);text-transform:uppercase;letter-spacing:.05em;background:transparent;border-bottom:1px solid rgba(45,70,40,.05)}.composition-ingredients-table tr:hover td{background:#2d462805}.composition-detail-packing,.composition-detail-cost{padding:var(--spacing-12);background:var(--surface-iron);border-radius:var(--radius-lg);border:1px solid rgba(45,70,40,.08)}.composition-detail-packing h3,.composition-detail-cost h3{margin:0 0 var(--spacing-8) 0;font-size:var(--text-body);color:var(--color-bone);font-family:var(--font-dm-sans)}.composition-cost-row{display:flex;justify-content:space-between;padding:var(--spacing-4) 0;font-size:var(--text-caption);font-family:var(--font-dm-sans)}.composition-cost-row span:first-child{color:var(--color-fog)}.composition-cost-row span:last-child{color:var(--color-bone);font-weight:var(--font-weight-medium)}@media(max-width:900px){.item-container,.shopping-container{margin-top:0}.page-nav{padding-top:var(--spacing-24)}.item-settings,.footer{flex-direction:column;align-items:stretch}.ingredient-row,.shopping-row{grid-template-columns:1fr}.snapshot-link-input{min-width:0;width:100%}.upload-container{width:100%}.packing{flex-direction:column;align-items:stretch}.packing-comment-input,.packing-cost-input{width:100%}.cost-container{align-items:stretch}.compositions-layout{grid-template-columns:1fr;margin-top:0}.compositions-sidebar{max-height:300px}}.products-container{max-width:var(--page-max-width);margin:0 auto;padding:var(--spacing-24) var(--spacing-16)}.products-toolbar{display:flex;gap:var(--spacing-16);margin-bottom:var(--spacing-24);align-items:center}.products-search-input{flex:1;padding:10px 14px;border:1px solid rgba(45,70,40,.1);border-radius:var(--radius-inputs);background:var(--surface-iron);color:var(--color-bone);font-size:15px;font-family:var(--font-dm-sans);outline:none;transition:border-color .15s}.products-search-input:focus{border-color:#2d462840}.products-search-input::placeholder{color:var(--color-smoke)}.products-table{width:100%;border-collapse:collapse;font-size:var(--text-caption);font-family:var(--font-dm-sans)}.products-table th{text-align:left;padding:var(--spacing-8) var(--spacing-12);font-size:var(--text-caption);font-weight:var(--font-weight-medium);color:var(--color-fog);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid rgba(45,70,40,.05)}.products-table td{padding:var(--spacing-12);border-bottom:1px solid rgba(45,70,40,.03);font-size:var(--text-body);color:var(--color-bone);overflow-wrap:anywhere}.products-table tr:hover td{background:#2d462805}.products-actions-inner{display:flex;gap:var(--spacing-8);white-space:nowrap}.products-pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-12);margin-top:var(--spacing-16)}.products-page-info{color:var(--color-fog);font-size:var(--text-caption);font-family:var(--font-dm-sans);white-space:nowrap}.products-placeholder{text-align:center;padding:var(--spacing-48);color:var(--color-fog);font-size:var(--text-body);font-family:var(--font-dm-sans)}.products-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:150}.products-modal{background:var(--surface-char);border-radius:var(--radius-cards);border:1px solid rgba(45,70,40,.08);padding:var(--spacing-32);max-width:480px;width:90%}.products-modal h3{margin:0 0 var(--spacing-16) 0;color:var(--color-bone);font-size:var(--text-body-lg);font-family:var(--font-dm-sans)}.products-form-field{margin-bottom:var(--spacing-16)}.products-form-field label{display:block;margin-bottom:var(--spacing-4);color:var(--color-mist);font-size:var(--text-caption);font-weight:var(--font-weight-medium);font-family:var(--font-dm-sans)}.products-form-field input,.products-form-field select{width:100%;padding:10px 14px;border:1px solid rgba(45,70,40,.1);border-radius:var(--radius-inputs);background:var(--surface-iron);color:var(--color-bone);font-size:15px;font-family:var(--font-dm-sans);outline:none;box-sizing:border-box;transition:border-color .15s}.products-form-field input:focus,.products-form-field select:focus{border-color:#2d462840}.products-modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-8);margin-top:var(--spacing-24)}.products-references-list{margin:var(--spacing-12) 0;padding-left:var(--spacing-24);color:var(--color-bone);font-family:var(--font-dm-sans)}.products-references-list li{margin-bottom:6px}.products-references-hint{color:var(--color-fog);font-size:var(--text-caption);margin-top:var(--spacing-12);font-family:var(--font-dm-sans)}.loader-wrapper{display:flex;justify-content:center;padding:var(--spacing-48)}.loader-wrapper .loader{display:inline-block}.auth-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-void)}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-void);padding:var(--spacing-24)}.auth-card{background:var(--color-char);border-radius:var(--radius-cards);padding:var(--spacing-40);width:100%;max-width:420px;border:1px solid rgba(45,70,40,.08)}.auth-title{margin:0 0 var(--spacing-32);font-family:var(--font-dm-sans);font-size:var(--text-heading-sm);font-weight:var(--font-weight-regular);line-height:var(--leading-heading-sm);color:var(--color-bone)}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-20)}.auth-field{display:flex;flex-direction:column;gap:var(--spacing-8)}.auth-field label{font-family:var(--font-dm-sans);font-size:var(--text-caption);font-weight:var(--font-weight-medium);color:var(--color-mist)}.auth-field input{border:1px solid rgba(45,70,40,.1);border-radius:var(--radius-inputs);background:var(--surface-iron);color:var(--color-bone);font-family:var(--font-dm-sans);font-size:var(--text-body);padding:var(--spacing-12) var(--spacing-16);outline:none;transition:border-color .15s}.auth-field input:focus{border-color:#2d462840}.auth-field input::placeholder{color:var(--color-smoke)}.auth-field input:disabled{opacity:.6}.auth-error{padding:var(--spacing-12) var(--spacing-16);border-radius:var(--radius-inputs);background:#ef444414;color:#b91c1c;font-family:var(--font-dm-sans);font-size:var(--text-caption);line-height:var(--leading-caption)}.auth-submit{padding:var(--spacing-12) var(--spacing-24);border-radius:var(--radius-pill);background:var(--color-paper);color:var(--color-onyx);border:none;font-family:var(--font-dm-sans);font-size:var(--text-body);font-weight:var(--font-weight-medium);cursor:pointer;transition:opacity .15s}.auth-submit:hover{opacity:.9}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-footer{margin:var(--spacing-24) 0 0;font-family:var(--font-dm-sans);font-size:var(--text-caption);color:var(--color-fog);text-align:center}.auth-link{padding:0;border:none;background:none;color:var(--color-paper);font-family:var(--font-dm-sans);font-size:var(--text-caption);font-weight:var(--font-weight-medium);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.auth-link:hover{opacity:.8}@media(max-width:640px){.products-table,.products-table thead,.products-table tbody,.products-table th,.products-table td,.products-table tr{display:block}.products-table thead{display:none}.products-table tr{margin-bottom:var(--spacing-16);border:1px solid rgba(45,70,40,.1);border-radius:var(--radius-lg);padding:var(--spacing-12);background:var(--surface-char)}.products-table td{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-8) 0;border-bottom:1px solid rgba(45,70,40,.05);text-align:right;min-width:0;overflow-wrap:anywhere}.products-table td:last-child{border-bottom:none}.products-table td:before{font-weight:var(--font-weight-medium);color:var(--color-fog);font-size:var(--text-caption);text-align:left;flex-shrink:0;margin-right:var(--spacing-12)}.products-table td:nth-child(1):before{content:"Название"}.products-table td:nth-child(2):before{content:"Ед. изм."}.products-table td:nth-child(3):before{content:"Цена"}.products-table td:nth-child(4):before{content:"Магазин"}.products-table td:nth-child(5):before{content:"Комментарий"}.products-table td:nth-child(6):before{content:"Действия"}.products-table tr:hover td{background:transparent}td.products-actions-cell{justify-content:center}.products-actions-inner{flex-wrap:wrap;justify-content:center}td.products-actions-cell:before{display:none}.products-toolbar{flex-direction:column}.products-toolbar .primary-btn{width:100%;order:1}.products-search-input{order:2}.products-modal-actions{flex-direction:column;gap:var(--spacing-8)}.products-modal-actions .secondary-btn,.products-modal-actions .primary-btn,.products-modal-actions .success-btn{width:100%}.products-modal{padding:var(--spacing-20)}.products-pagination{gap:var(--spacing-8)}.compositions-sidebar{max-height:200px}.composition-detail,.composition-detail-card{min-width:0}.composition-ingredients-table{display:block;overflow-x:auto}.composition-detail-image{max-height:180px}.page-nav{flex-wrap:wrap;justify-content:flex-end;padding:var(--spacing-8) var(--spacing-12);gap:0;border-radius:var(--radius-lg);overflow:hidden}.nav-toggle{display:flex;flex-direction:column;justify-content:center;gap:4px;width:44px;height:44px;padding:10px;background:transparent;border:1px solid rgba(45,70,40,.1);border-radius:var(--radius-md);cursor:pointer}.nav-toggle span{display:block;width:100%;height:2px;background:var(--color-bone);border-radius:2px}.nav-current-page{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:var(--text-body-lg);font-weight:var(--font-weight-bold);color:var(--color-paper);white-space:nowrap;max-width:calc(100% - 60px);overflow:hidden;text-overflow:ellipsis;pointer-events:none}.nav-links{display:none;flex:0 0 100%;width:100%;flex-direction:column;gap:var(--spacing-4);padding-top:var(--spacing-8)}.nav-links.nav-open{display:flex}.nav-link{width:100%;text-align:center;font-size:13px;padding:var(--spacing-8) var(--spacing-12)}.nav-sep{display:none}.nav-tg{width:100%;text-align:center;font-size:13px}.nav-user{margin-left:0;width:100%;text-align:center;font-size:12px;color:var(--color-smoke);max-width:none}.nav-logout{margin-left:0;width:100%;text-align:center;margin-top:var(--spacing-8);padding-top:var(--spacing-12);border-top:1px solid rgba(45,70,40,.08);border-radius:0;border-left:none;border-right:none;border-bottom:none;color:var(--color-fog);font-size:13px}.item-container,.shopping-container{margin-top:var(--spacing-8);padding:var(--spacing-16) var(--spacing-12) var(--spacing-24)}.drop-zone{min-height:140px}.item-container{width:100%;min-width:0}.cost-row{justify-content:space-between;width:100%}.notifications{left:var(--spacing-12);right:var(--spacing-12)}.notification{max-width:100%}}.tg-management{display:flex;flex-direction:column;gap:var(--spacing-24);max-width:var(--page-max-width);margin:0 auto;padding:var(--spacing-24) var(--spacing-16)}.tg-title{margin:0;font-family:var(--font-dm-sans);font-size:var(--text-heading-sm);color:var(--color-bone)}.tg-section{display:flex;flex-direction:column;gap:var(--spacing-16);background:var(--surface-char);border-radius:var(--radius-cards);border:1px solid rgba(45,70,40,.08);padding:var(--spacing-24)}.tg-section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-12);flex-wrap:wrap}.tg-section-title{margin:0;font-family:var(--font-dm-sans);font-size:var(--text-subheading);color:var(--color-bone);font-weight:var(--font-weight-semibold)}.tg-empty{font-family:var(--font-dm-sans);font-size:var(--text-body);color:var(--color-smoke);padding:var(--spacing-16) 0}.tg-list{display:flex;flex-direction:column;gap:var(--spacing-8)}.tg-list-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-12);padding:var(--spacing-12) var(--spacing-16);background:var(--surface-iron);border-radius:var(--radius-inputs)}.tg-list-info{display:flex;flex-direction:column;gap:2px;min-width:0}.tg-list-name{font-family:var(--font-dm-sans);font-size:var(--text-body);font-weight:var(--font-weight-medium);color:var(--color-bone)}.tg-list-username{color:var(--color-mist);font-weight:var(--font-weight-regular)}.tg-list-code{font-family:var(--font-system-ui);font-size:12px;color:var(--color-paper);background:#3d6b4514;padding:2px 6px;border-radius:4px;word-break:break-all}.tg-list-meta{font-family:var(--font-dm-sans);font-size:var(--text-caption);color:var(--color-smoke)}.tg-expired{color:#ef4444}.tg-token-result{display:flex;flex-direction:column;gap:var(--spacing-8);padding:var(--spacing-16);background:#3d6b450f;border-radius:var(--radius-inputs);border:1px solid rgba(61,107,69,.12)}.tg-token-label{margin:0;font-family:var(--font-dm-sans);font-size:var(--text-caption);color:var(--color-mist);font-weight:var(--font-weight-medium)}.tg-token-row{display:flex;align-items:center;gap:var(--spacing-8)}.tg-token-value{font-family:var(--font-system-ui);font-size:14px;color:var(--color-bone);background:var(--surface-char);padding:var(--spacing-8) var(--spacing-12);border-radius:var(--radius-inputs);border:1px solid rgba(45,70,40,.1);word-break:break-all;flex:1}.tg-token-hint{margin:0;font-family:var(--font-dm-sans);font-size:var(--text-caption);color:var(--color-smoke)}.tg-token-hint a{color:var(--color-paper);text-decoration:none}.tg-token-hint a:hover{text-decoration:underline}.tg-token-hint code{font-family:var(--font-system-ui);font-size:12px;background:#3d6b4514;padding:1px 4px;border-radius:3px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:12px;padding:24px;min-width:340px;max-width:440px;width:90%;box-shadow:0 8px 32px #0000001f}.modal-title{font-family:var(--font-dm-sans);font-size:18px;font-weight:600;color:var(--color-forest);margin:0 0 8px}.modal-desc{font-family:var(--font-dm-sans);font-size:14px;color:var(--color-smoke);margin:0 0 16px}.modal-loading{text-align:center;padding:20px;color:var(--color-smoke)}.modal-accounts-list{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;max-height:240px;overflow-y:auto}.modal-account-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer;transition:background .15s}.modal-account-row:hover{background:#2d462808}.modal-account-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-forest);cursor:pointer;flex-shrink:0}.modal-account-name{font-family:var(--font-dm-sans);font-size:14px;color:var(--color-forest)}.modal-account-username{color:var(--color-smoke);font-size:13px}.modal-actions{display:flex;justify-content:flex-end;gap:10px}
