:root{--color-primary:#67fde1;--color-primary-container:#42e0c5;--color-on-primary:#00382f;--color-secondary:#ffb59d;--color-secondary-container:#703623;--color-on-secondary:#54210f;--color-surface:#1d100e;--color-surface-container-lowest:#170b09;--color-surface-container-low:#261816;--color-surface-container:#2a1c1a;--color-surface-container-high:#352624;--color-surface-container-highest:#41312e;--color-surface-variant:#41312e;--color-on-surface:#f6ddd9;--color-on-surface-variant:#bacac5;--color-outline:#85948f;--color-divider:#41312eb3;--margin:3rem;--margin-mobile:1.25rem;--gutter:1.5rem;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.75rem;--space-xl:2.75rem;--nav-height:5rem;--font-serif:"Playfair Display", serif;--font-sans:"Montserrat", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--type-headline-2xl:400 56px / 64px var(--font-serif);--tracking-headline-2xl:-.02em;--type-headline-xl:400 40px / 48px var(--font-serif);--tracking-headline-xl:-.01em;--type-headline-lg:500 30px / 38px var(--font-serif);--type-headline-md:500 22px / 30px var(--font-serif);--type-body-lg:300 16px / 26px var(--font-sans);--type-body-md:400 14px / 22px var(--font-sans);--type-body-sm:400 12px / 18px var(--font-sans);--type-caption:400 12px / 16px var(--font-sans);--type-label-md:500 12px / 16px var(--font-sans);--tracking-label-md:.14em;--type-label-sm:600 10px / 14px var(--font-sans);--tracking-label-sm:.18em;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--shadow-2xl:0 25px 50px -12px #00000040;--ease:cubic-bezier(.4, 0, .2, 1);--duration:.15s}*,:before,:after{box-sizing:border-box;border:0 solid;margin:0;padding:0}html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5}html,body{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}ol,ul{list-style:none}img,svg,video,canvas{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input{font:inherit;letter-spacing:inherit;color:inherit;appearance:none;background-color:#0000;border-radius:0}button{cursor:pointer}table{border-collapse:collapse;text-indent:0;border-color:inherit}::placeholder{opacity:1}[hidden]:where(:not([hidden=until-found])){display:none!important}body{overscroll-behavior:none;background:var(--color-surface);color:var(--color-on-surface);font:var(--type-body-md);letter-spacing:.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--color-primary);color:var(--color-on-primary)}::-webkit-scrollbar{display:none}.admin{--color-error:#ffb4ab;--color-error-container:#93000a;--color-on-error-container:#ffdad6;--color-outline-variant:#3c4a46;--focus-ring:0 0 0 3px color-mix(in srgb, var(--color-primary) 15%, transparent);--bar-shadow:0 4px 24px #170b0999}body.admin-body{background:var(--color-surface-container-lowest)}.material-symbols-outlined{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;font-feature-settings:"liga";-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;direction:ltr;font-family:Material Symbols Outlined;font-size:24px;font-style:normal;font-weight:400;line-height:1;display:inline-block}.hidden{display:none!important}.admin{background:var(--color-surface);width:100%;max-width:28rem;min-height:100svh;box-shadow:var(--shadow-2xl);margin:0 auto;position:relative;overflow-x:clip}.admin__view{min-height:100svh}.admin__view--catalog{padding-bottom:7rem}.admin__view--form{padding-bottom:8rem}.admin__kicker{font:var(--type-label-sm);letter-spacing:var(--tracking-label-sm);text-transform:uppercase;color:var(--color-secondary);display:block}.admin__title{font:var(--type-headline-md);color:var(--color-on-surface)}.admin__title--xl{margin-bottom:var(--space-xs);font:var(--type-headline-lg);letter-spacing:var(--tracking-headline-xl)}.admin__lead{margin-bottom:var(--space-lg);font:var(--type-body-md);color:var(--color-on-surface-variant)}.admin__error{font:var(--type-body-sm);color:var(--color-error)}.admin__label{margin-bottom:var(--space-sm);font:var(--type-label-sm);letter-spacing:var(--tracking-label-sm);text-transform:uppercase;color:var(--color-outline);display:block}.admin__hint{margin-top:var(--space-xs);font:var(--type-body-sm);color:var(--color-outline)}.admin__field-error{margin-top:var(--space-xs);font:var(--type-body-sm);color:var(--color-error);display:block}.login{padding:0 var(--margin-mobile);flex-direction:column;display:flex}.login__body{padding:var(--space-xl) 0;flex-direction:column;flex:1;justify-content:center;display:flex}.login__brand{margin-bottom:var(--space-xl);align-items:center;gap:.75rem;display:flex}.login__header{border-radius:9999px;justify-content:center;align-items:center;width:4.5rem;height:5.5rem;display:flex}.login__name{font:var(--type-headline-md);letter-spacing:.05em;text-transform:uppercase;display:block}.login__form{gap:var(--space-md);flex-direction:column;display:flex}.login__password{position:relative}.login__notice{margin-bottom:var(--space-md);border-left:3px solid var(--color-error);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-error) 10%, transparent);font:var(--type-body-sm);color:var(--color-on-surface);padding:.75rem .875rem}.login__password .field{padding-right:3rem}.login__toggle{width:2.25rem;height:2.25rem;color:var(--color-outline);justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.login__demo{margin-top:var(--space-lg);border-radius:var(--radius-lg);background:var(--color-surface-container-low);font:var(--type-body-sm);color:var(--color-on-surface-variant);padding:.75rem}.login__demo code{font-family:var(--font-mono);color:var(--color-on-surface)}.login__foot{padding:var(--space-md) 0;text-align:center;font:var(--type-body-sm);color:var(--color-outline)}.topbar{z-index:30;padding:1rem var(--margin-mobile) .75rem;background:color-mix(in srgb, var(--color-surface) 90%, transparent);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);box-shadow:var(--bar-shadow);position:sticky;top:0}.topbar--form{align-items:center;gap:.75rem;padding-top:.75rem;display:flex}.topbar__row{justify-content:space-between;align-items:center;display:flex}.topbar__actions{gap:var(--space-sm);display:flex}.topbar__greeting{font:var(--type-body-sm);color:var(--color-on-surface-variant);margin:.15rem 0 .25rem}.search{margin-top:.75rem;position:relative}.search__icon{color:var(--color-outline);pointer-events:none;font-size:20px;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.search .field{padding-left:2.5rem}.filters{gap:var(--space-sm);flex-wrap:wrap;margin-top:.75rem;display:flex}.field{border:1px solid var(--color-outline-variant);border-radius:var(--radius-lg);background:var(--color-surface-container-low);width:100%;color:var(--color-on-surface);font:400 15px / 1.3 var(--font-sans);appearance:none;transition:border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);outline:none;padding:.75rem .875rem}.field::placeholder{color:var(--color-outline)}.field:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.field--invalid,.field--invalid:focus{border-color:var(--color-error)}select.field{background-image:linear-gradient(45deg, transparent 50%, var(--color-outline) 50%), linear-gradient(135deg, var(--color-outline) 50%, transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-repeat:no-repeat;background-size:5px 5px;padding-right:2.25rem}textarea.field{resize:vertical;min-height:110px}.btn-primary,.btn-danger,.btn-ghost{border-radius:var(--radius-lg);min-height:48px;font:var(--type-label-md);letter-spacing:var(--tracking-label-md);text-transform:uppercase;white-space:nowrap;transition:background-color var(--duration) var(--ease), transform .1s;justify-content:center;align-items:center;gap:.5rem;padding:0 1.25rem;display:inline-flex}.btn-primary:active,.btn-danger:active,.btn-ghost:active{transform:scale(.98)}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary:hover{background:var(--color-primary-container)}.btn-danger{background:var(--color-error-container);color:var(--color-on-error-container)}.btn-ghost{background:var(--color-surface-container-high);color:var(--color-on-surface)}.btn-ghost:hover{background:var(--color-surface-container-highest)}.btn-block{width:100%}.btn-sm{min-height:40px;font-size:11px}.btn-primary:disabled,.btn-danger:disabled,.btn-ghost:disabled,.badge:disabled,.is-busy{opacity:.6;pointer-events:none}.btn-primary.btn-progress{background:var(--color-surface-container-high);color:var(--color-on-surface);opacity:1;position:relative;overflow:hidden}.btn-progress__fill{background:var(--color-primary);color:var(--color-on-primary);justify-content:center;align-items:center;transition:clip-path .2s linear;display:flex;position:absolute;inset:0}.done-btn{display:flex;position:relative}.done-btn>button{flex:1}.done-btn__face{pointer-events:none;will-change:filter;justify-content:center;align-items:center;min-height:0;display:flex;position:absolute;inset:0;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.done-btn__face.badge{min-width:100%;left:auto}.done-btn__face.badge-on{background:color-mix(in srgb, var(--color-primary) 14%, var(--color-surface-container-low))}.done-btn__fx{border-radius:inherit;width:100%;height:100%;image-rendering:pixelated;position:absolute;inset:0}.icon-btn{background:var(--color-surface-container);width:44px;height:44px;color:var(--color-on-surface);transition:background-color var(--duration) var(--ease);border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--color-surface-container-high)}.icon-btn--sm{width:2rem;height:2rem}.icon-btn--danger{color:var(--color-error)}.chip{background:var(--color-surface-container);color:var(--color-on-surface-variant);font:600 11px / 1 var(--font-sans);letter-spacing:.1em;text-transform:uppercase;transition:background-color var(--duration) var(--ease), color var(--duration) var(--ease);border-radius:9999px;flex-shrink:0;padding:.45rem .9rem}.chip span{opacity:.7;margin-left:.25rem}.chip .material-symbols-outlined{vertical-align:-2px;opacity:1;margin-left:0;font-size:14px}.chip.is-active{background:var(--color-primary);color:var(--color-on-primary)}.chip-trash.is-active{background:var(--color-secondary);color:var(--color-on-secondary)}.badge{background:var(--color-surface-container-high);color:var(--color-outline);font:600 10px / 1 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;border-radius:9999px;padding:.3rem .6rem}.badge-on{background:color-mix(in srgb, var(--color-primary) 14%, transparent);color:var(--color-primary)}.badge-warn{background:color-mix(in srgb, var(--color-error) 14%, transparent);color:var(--color-error)}.switch{background:var(--color-surface-container-highest);cursor:pointer;appearance:none;width:48px;height:28px;transition:background var(--duration) var(--ease);border-radius:9999px;flex-shrink:0;position:relative}.switch:after{content:"";background:var(--color-on-surface);border-radius:9999px;width:22px;height:22px;transition:transform .2s;position:absolute;top:3px;left:3px}.switch:checked{background:var(--color-primary)}.switch:checked:after{background:var(--color-on-primary);transform:translate(20px)}.price-group{border:1px solid var(--color-outline-variant);border-radius:var(--radius-lg);background:var(--color-surface-container-low);transition:border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);align-items:stretch;display:flex;overflow:hidden}.price-group:focus-within{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.price-group--invalid,.price-group--invalid:focus-within{border-color:var(--color-error)}.price-sign{color:var(--color-secondary);font:500 17px / 1 var(--font-sans);align-items:center;padding:0 .25rem 0 .875rem;display:flex}.price-input{min-width:0;color:var(--color-on-surface);font:400 15px / 1.3 var(--font-sans);-moz-appearance:textfield;background:0 0;border:0;outline:none;flex:1;padding:.75rem .5rem}.price-input::placeholder{color:var(--color-outline)}.price-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.price-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.price-currency{border:0;border-left:1px solid var(--color-outline-variant);background-color:var(--color-surface-container-high);background-image:linear-gradient(45deg, transparent 50%, var(--color-on-surface-variant) 50%), linear-gradient(135deg, var(--color-on-surface-variant) 50%, transparent 50%);color:var(--color-on-surface);font:600 12px / 1 var(--font-sans);letter-spacing:.12em;cursor:pointer;appearance:none;background-position:calc(100% - 17px) 55%,calc(100% - 12px) 55%;background-repeat:no-repeat;background-size:5px 5px;outline:none;padding:0 2rem 0 .9rem}.currency-tag{letter-spacing:.1em;opacity:.75;font-size:10px}.trash-info{margin:var(--space-md) var(--margin-mobile) 0;border-radius:var(--radius-lg);background:var(--color-surface-container-low);font:var(--type-body-sm);color:var(--color-on-surface-variant);align-items:flex-start;gap:.75rem;padding:.75rem;display:flex}.trash-info .material-symbols-outlined{color:var(--color-secondary);font-size:20px}.trash-info strong{color:var(--color-on-surface);font-weight:400}.article-list{padding:var(--space-md) var(--margin-mobile) 0;flex-direction:column;gap:.75rem;display:flex}.empty{padding:var(--space-xl) var(--margin-mobile);text-align:center}.empty .material-symbols-outlined{color:var(--color-outline);font-size:40px}.empty__title{margin-top:var(--space-sm);font:var(--type-headline-md)}.empty__text{font:var(--type-body-sm);color:var(--color-on-surface-variant)}.skeleton{border-radius:var(--radius-xl);background:linear-gradient(90deg, var(--color-surface-container-low) 30%, var(--color-surface-container-high) 50%, var(--color-surface-container-low) 70%);background-size:300% 100%;height:88px;animation:1.2s linear infinite shimmer}.card{border-radius:var(--radius-xl);background:var(--color-surface-container-low);align-items:center;gap:.75rem;padding:.75rem;animation:.25s ease-out both card-in;display:flex}.card__main{text-align:left;flex:1;align-items:center;gap:.75rem;min-width:0;display:flex}.card__thumb{border-radius:var(--radius-lg);background:var(--color-surface-container-high);width:4rem;height:4rem;color:var(--color-outline);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.card__thumb img{object-fit:cover;width:100%;height:100%}.card__info{min-width:0}.card__meta,.card__name{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.card__meta{font:var(--type-label-sm);letter-spacing:var(--tracking-label-sm);text-transform:uppercase;color:var(--color-outline)}.card__name{font:500 18px / 24px var(--font-serif);color:var(--color-on-surface)}.card__price{font:var(--type-body-sm);color:var(--color-secondary)}.card__stock{font:var(--type-body-sm);color:var(--color-outline)}.card__side{align-items:flex-end;gap:var(--space-sm);flex-direction:column;flex-shrink:0;display:flex}.card-trash{flex-direction:column;align-items:stretch;gap:.65rem}.card-trash__head{align-items:center;gap:.75rem;display:flex}.card-trash .card__thumb{filter:grayscale();opacity:.7;width:3rem;height:3rem}.card-trash .card__name{font-size:17px}.card-trash__info{flex:1;min-width:0}.card-trash__date{font:var(--type-body-sm);color:var(--color-outline)}.card-trash__bar{background:var(--color-surface-container-high);border-radius:9999px;height:4px;overflow:hidden}.card-trash__bar>div{background:var(--color-secondary);height:100%}.card-trash__bar>.is-warn{background:var(--color-error)}.card-trash__actions{gap:var(--space-sm);display:flex}.card-trash__actions .done-btn{flex:1}.card-trash__actions .btn-danger{padding:0 1rem}.fab{z-index:30;box-shadow:var(--shadow-2xl);border-radius:9999px;padding:0 1.5rem;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)}.fab:active{transform:translate(-50%)scale(.98)}.form{gap:var(--space-md);padding:var(--space-md) var(--margin-mobile) 0;flex-direction:column;display:flex}.form__image{aspect-ratio:4/3;border-radius:var(--radius-xl);background:var(--color-surface-container-low);color:var(--color-outline);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.form__image .material-symbols-outlined{font-size:40px}.form__image img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.form__image-input{gap:var(--space-sm);margin-top:var(--space-sm);display:flex}.form__image-input .field{flex:1}.form__upload{cursor:pointer}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.form__publish{border-radius:var(--radius-lg);background:var(--color-surface-container-low);justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem;display:flex}.form__publish-title{font:var(--type-label-md);letter-spacing:var(--tracking-label-md);text-transform:uppercase;display:block}.form__publish-text{font:var(--type-body-sm);color:var(--color-on-surface-variant)}.actionbar{z-index:30;width:100%;max-width:28rem;padding:.75rem var(--margin-mobile);background:color-mix(in srgb, var(--color-surface) 95%, transparent);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);gap:.75rem;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -4px 24px #170b0999}.actionbar .done-btn{flex:1}.confirm{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.confirm__sheet{gap:var(--space-md);width:100%;max-width:28rem;padding:var(--margin-mobile) var(--margin-mobile) 2rem;background:var(--color-surface-container);border-radius:1rem 1rem 0 0;flex-direction:column;display:flex;position:relative}.confirm__grip{background:var(--color-surface-variant);border-radius:9999px;width:2.5rem;height:4px;margin:0 auto}.confirm__close{background:var(--color-surface-container-high);position:absolute;top:.75rem;right:.75rem}.confirm__close:hover{background:var(--color-surface-container-highest)}.confirm__close:disabled{opacity:.4;pointer-events:none}.confirm__text{font:var(--type-body-md);color:var(--color-on-surface-variant)}.confirm__actions{gap:.75rem;display:flex}.confirm__actions>*{flex:1}.toasts{z-index:60;pointer-events:none;width:calc(100% - 2.5rem);max-width:24rem;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.toast{margin-bottom:var(--space-sm);border-left:3px solid var(--color-primary);border-radius:var(--radius-lg);background:var(--color-surface-container-highest);color:var(--color-on-surface);font:500 13px / 1.3 var(--font-sans);padding:.8rem 1rem;transition:opacity .3s,transform .3s;animation:.25s ease-out both toast-in;box-shadow:0 10px 30px #0008}.toast-error{border-left-color:var(--color-error)}.toast-out{opacity:0;transform:translateY(-8px)}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.card,.toast,.skeleton{animation:none}}.register{padding:0 var(--margin-mobile);flex-direction:column;display:flex}.register__body{padding:var(--space-xl) 0;flex-direction:column;flex:1;justify-content:center;display:flex}.register__brand{margin-bottom:var(--space-xl);align-items:center;gap:.75rem;display:flex}.register__header{border-radius:9999px;justify-content:center;align-items:center;width:4.5rem;height:5.5rem;display:flex}.register__name{font:var(--type-headline-md);letter-spacing:.05em;text-transform:uppercase;display:block}.register__form{gap:var(--space-md);flex-direction:column;display:flex}.register__password{position:relative}.register__password .field{padding-right:3rem}.register__toggle{width:2.25rem;height:2.25rem;color:var(--color-outline);justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.register__actions{margin-top:var(--space-sm)}.register__actions .btn-ghost{justify-content:center;width:100%}.register__foot{padding:var(--space-md) 0;text-align:center;font:var(--type-body-sm);color:var(--color-outline)}.login__actions{margin-top:var(--space-sm)}.login__actions .btn-ghost{justify-content:center;width:100%}.form__row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.admin__view--users{padding-bottom:2rem}.users-list{padding:var(--space-md) var(--margin-mobile) 0;flex-direction:column;gap:.75rem;display:flex}.user-card{align-items:center}.user-card__avatar{background:var(--color-surface-container-high);color:var(--color-primary)}.user-card__avatar .material-symbols-outlined{font-size:28px}.user-card__actions{gap:var(--space-xs);display:flex}.user-card .card__side{flex-direction:row;align-items:center}.page-loader__overlay{z-index:1000;padding:var(--margin-mobile);background:color-mix(in srgb, var(--color-surface-container-lowest) 75%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);opacity:1;transition:opacity .3s var(--ease);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.page-loader__overlay--closing{opacity:0;pointer-events:none}.page-loader__modal{align-items:center;gap:var(--space-md);padding:var(--space-xl) var(--space-lg);border-radius:var(--radius-xl);background:color-mix(in srgb, var(--color-surface-container-low) 85%, transparent);border:1px solid var(--color-divider);box-shadow:var(--shadow-2xl);text-align:center;transition:transform .3s var(--ease);flex-direction:column;display:flex;transform:scale(1)}.page-loader__overlay--closing .page-loader__modal{transform:scale(.95)}.page-loader__spinner{border:3.5px solid color-mix(in srgb, var(--color-primary) 20%, transparent);border-top-color:var(--color-primary);border-radius:50%;width:48px;height:48px;animation:.85s linear infinite page-loader-spin}@keyframes page-loader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.page-loader__title{font:var(--type-headline-md);letter-spacing:var(--tracking-headline-xl);color:var(--color-on-surface);margin:0}@media (prefers-reduced-motion:reduce){.page-loader__spinner{animation-duration:2s}.page-loader__overlay,.page-loader__modal{transition:none}}
