:root{--tg-bg-color:#fff;--tg-text-color:#111;--tg-hint-color:#6b7280;--tg-link-color:#2481cc;--tg-button-color:#2481cc;--tg-button-text-color:#fff;--tg-secondary-bg-color:#f3f4f6;--radius:14px;--space:16px;color:var(--tg-text-color);background:var(--tg-bg-color);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}*{box-sizing:border-box}html,body,#app{background:var(--tg-bg-color);min-height:100%;color:var(--tg-text-color);margin:0;overflow-x:hidden}a{color:var(--tg-link-color);text-decoration:none}button,input,select,textarea{font:inherit}.page{padding:max(var(--space), env(safe-area-inset-top)) var(--space) var(--space);max-width:720px;margin:0 auto}.page-header.row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.page-header h1,.state-block h1,.state-block h2,.detail h1,.admin-card h2{margin:0 0 8px;font-size:1.35rem}.muted{color:var(--tg-hint-color);margin:0}.btn{background:var(--tg-button-color);color:var(--tg-button-text-color);cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;min-height:44px;padding:10px 16px;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{background:var(--tg-secondary-bg-color);color:var(--tg-text-color)}.btn-danger{color:#fff;background:#b42318}.btn:focus-visible,.product-card:focus-visible,.detail__thumbnail:focus-visible,.back-link:focus-visible{outline:3px solid var(--tg-link-color);outline-offset:3px}.bottom-nav{padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--tg-secondary-bg-color);border-top:1px solid color-mix(in srgb, var(--tg-hint-color) 25%, transparent);justify-content:space-around;gap:8px;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{text-align:center;color:var(--tg-text-color);border-radius:12px;flex:1;padding:10px 8px}.nav-item.router-link-active{background:var(--tg-button-color);color:var(--tg-button-text-color)}.product-grid,.admin-list{gap:12px;display:grid}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.product-card,.admin-card,.state-block,.detail,.form,.filters{background:var(--tg-secondary-bg-color);border-radius:var(--radius);padding:14px}.product-card__media,.detail__gallery,.placeholder{background:color-mix(in srgb, var(--tg-hint-color) 18%, var(--tg-bg-color));border-radius:12px;overflow:hidden}.product-card__media{aspect-ratio:4/3;margin-bottom:10px}.product-card__media img,.detail__gallery img{object-fit:cover;width:100%;height:100%;display:block}.placeholder{min-height:140px;color:var(--tg-hint-color);place-items:center;display:grid}.placeholder.large{min-height:220px}.product-card{min-width:0;color:inherit}.product-card h2,.product-card__body,.detail p{overflow-wrap:anywhere}.product-card__meta{justify-content:space-between;gap:8px;margin-top:8px;display:flex}.skeleton{background:linear-gradient(90deg, color-mix(in srgb, var(--tg-hint-color) 12%, var(--tg-bg-color)), color-mix(in srgb, var(--tg-hint-color) 22%, var(--tg-bg-color)), color-mix(in srgb, var(--tg-hint-color) 12%, var(--tg-bg-color)));background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer}.product-card--skeleton{pointer-events:none}.skeleton--line{border-radius:6px;height:18px;margin:10px 0}.skeleton--short{width:58%}.detail__gallery{aspect-ratio:4/3;margin-bottom:12px}.detail__thumbnails{gap:8px;margin-bottom:16px;padding-bottom:4px;display:flex;overflow-x:auto}.detail__thumbnail{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:10px;flex:0 0 68px;width:68px;height:68px;padding:0;overflow:hidden}.detail__thumbnail--active{border-color:var(--tg-button-color)}.detail__thumbnail img{object-fit:cover;width:100%;height:100%}.detail__cta{width:100%;margin-top:8px}.detail__composition{margin:18px 0}.detail__composition h2{margin:0 0 10px;font-size:1.05rem}.detail__composition ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.detail__composition li{justify-content:space-between;gap:16px;display:flex}.price{margin:8px 0;font-size:1.2rem;font-weight:700}.back-link{min-height:44px;margin-bottom:12px;padding:10px 0;display:inline-block}@keyframes shimmer{to{background-position:-200% 0}}@media (width>=560px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.admin-card__head,.admin-card__actions,.pager,.filters{flex-wrap:wrap;gap:8px;display:flex}.admin-card__head{align-items:stretch;margin-bottom:12px}.admin-card__media{aspect-ratio:1;background:color-mix(in srgb, var(--tg-hint-color) 18%, var(--tg-bg-color));border-radius:12px;flex:0 0 88px;width:88px;overflow:hidden}.admin-card__media img{object-fit:cover;width:100%;height:100%;display:block}.admin-card__media .placeholder{min-height:88px;font-size:.8rem}.admin-card__info{flex:160px;min-width:0}.admin-card__info h2{overflow-wrap:anywhere;margin:0 0 4px}.admin-card__meta{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 4px;display:flex}.admin-card__hint{background:color-mix(in srgb, #f59e0b 18%, var(--tg-bg-color));color:var(--tg-text-color);border-radius:10px;margin:10px 0 0;padding:10px 12px;font-size:.9rem}.admin-card--skeleton{pointer-events:none}.status-badge{background:color-mix(in srgb, var(--tg-hint-color) 18%, var(--tg-bg-color));min-height:28px;color:var(--tg-text-color);border-radius:999px;align-items:center;padding:4px 10px;font-size:.82rem;display:inline-flex}.status-badge[data-status=available]{background:color-mix(in srgb, #067647 18%, var(--tg-bg-color))}.status-badge[data-status=sold_out],.status-badge[data-status=archived]{background:color-mix(in srgb, #b42318 14%, var(--tg-bg-color))}.status-badge[data-status=draft],.status-badge[data-status=hidden]{background:color-mix(in srgb, #f59e0b 18%, var(--tg-bg-color))}.qty-control{align-items:center;gap:6px;min-height:44px;display:inline-flex}.qty-control__btn{width:44px;min-width:44px;padding:0;font-size:1.25rem;line-height:1}.qty-control__value{text-align:center;min-width:32px;font-weight:700}.admin-card__actions .btn{min-height:44px}.filters{margin-bottom:12px}.filters label,.form label{flex:140px;gap:6px;font-size:.92rem;display:grid}.filters input,.filters select,.form input,.form select,.form textarea{border:1px solid color-mix(in srgb, var(--tg-hint-color) 35%, transparent);background:var(--tg-bg-color);width:100%;color:var(--tg-text-color);border-radius:10px;padding:10px 12px}.form{gap:12px;display:grid}.form .checkbox{align-items:center;gap:8px;display:flex}.form .checkbox input{background:0 0;border:0;flex-shrink:0;width:auto;min-height:0;margin:0;padding:0}.form-error{color:#b42318;margin:0}.pager{justify-content:space-between;align-items:center;margin-top:16px}.toast{z-index:20;color:#fff;background:#111827;border-radius:12px;max-width:min(92vw,420px);padding:12px 16px;position:fixed;bottom:84px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0003}.toast.success{background:#067647}.toast.error{background:#b42318}.dev-banner{background:color-mix(in srgb, #f59e0b 25%, var(--tg-secondary-bg-color));color:var(--tg-text-color);margin:0;padding:8px 16px;font-size:.9rem}:root{--flores-bg:#0f1116;--flores-surface:#1a1d24;--flores-surface-raised:#20242d;--flores-text:#fff;--flores-muted:#9ca1ad;--flores-accent:#d97a93;--flores-accent-strong:#e38aa1;--flores-accent-soft:#d97a9321;--flores-border:#eaedf017;--flores-danger:#cf6e78;--radius:16px;--space:16px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--flores-text);background:var(--flores-bg);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Inter,Roboto,sans-serif}html,body,#app{background:radial-gradient(circle at 50% -20%, #d97a9314, transparent 34rem), var(--flores-bg);min-height:100%;color:var(--flores-text)}body{min-width:280px}a{color:var(--flores-accent-strong)}.AppShell{min-height:100dvh;padding-bottom:calc(80px + env(safe-area-inset-bottom))}.page{width:100%;max-width:480px;padding:max(18px, env(safe-area-inset-top)) 16px 24px}.page-header{margin-bottom:18px}.page-header h1,.state-block h1,.state-block h2,.detail h1,.admin-card h2{color:var(--flores-text);letter-spacing:-.025em}.page-header h1{margin-bottom:5px;font-size:clamp(1.25rem,5.5vw,1.5rem);font-weight:650;line-height:1.18}.page-header .muted{max-width:30rem;font-size:.79rem;line-height:1.45}.muted{color:var(--flores-muted)}.btn{background:linear-gradient(135deg, var(--flores-accent-strong), var(--flores-accent));color:#171016;border:1px solid #0000;border-radius:10px;min-height:44px;padding:10px 16px;font-weight:600;box-shadow:0 8px 22px #d97a9324}.btn-secondary{border-color:var(--flores-border);background:var(--flores-surface-raised);color:var(--flores-text);box-shadow:none}.btn-danger{color:#f3a4ad;box-shadow:none;background:#cf6e781a;border-color:#cf6e7838}.btn:focus-visible,.product-card:focus-visible,.detail__thumbnail:focus-visible,.back-link:focus-visible,.nav-item:focus-visible{outline:2px solid var(--flores-accent-strong);outline-offset:3px}.bottom-nav{width:min(100% - 16px,464px);min-height:76px;padding:7px 8px calc(7px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(22px)saturate(115%);z-index:30;background:linear-gradient(#ffffff06,#0000),#141219f0;border:1px solid #eed3dd17;border-bottom:0;border-radius:24px 24px 0 0;align-items:stretch;gap:7px;bottom:0;left:50%;right:auto;transform:translate(-50%);box-shadow:0 -12px 35px #00000042}.nav-item{color:#cdc5cd94;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:58px;padding:5px 6px;font-size:clamp(.64rem,2.9vw,.72rem);line-height:1.1;text-decoration:none;transition:background .18s,color .18s,transform .18s;display:flex;position:relative}.nav-item__icon{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.nav-item.router-link-active{color:#e89ab5;background:#7c4c6014;box-shadow:inset 0 1px #ffffff0a,0 8px 22px #07050924}.nav-item:active{transform:scale(.98)}.storefront-page{padding-bottom:76px}.storefront-contact-fab{right:max(16px,50vw - 224px);bottom:calc(82px + env(safe-area-inset-bottom) + 14px);z-index:25;background:var(--flores-accent);color:#171016;cursor:pointer;border:1px solid #ffffff1a;border-radius:50%;place-items:center;width:48px;height:48px;padding:0;display:grid;position:fixed;box-shadow:0 8px 22px #0000003d}.storefront-contact-fab svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.storefront-contact-fab:active{transform:translateY(1px)}.storefront-contact-fab:focus-visible{outline:2px solid var(--flores-text);outline-offset:3px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px}.product-card{border:1px solid var(--flores-border);border-radius:var(--radius);background:var(--flores-surface);min-width:0;color:var(--flores-text);flex-direction:column;padding:0;transition:transform .16s,border-color .16s;display:flex;overflow:hidden;box-shadow:0 12px 28px #00000029}@media (hover:hover){.product-card:hover{border-color:#d97a934d;transform:translateY(-2px)}}.product-card__media{aspect-ratio:3/4;background:var(--flores-surface-raised);border-radius:0;width:100%;margin:0}.product-card__body{flex-direction:column;flex:1;gap:10px;min-height:92px;padding:11px 9px 12px;display:flex}.product-card h2{min-height:2.5em;color:var(--flores-text);letter-spacing:-.012em;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:clamp(.78rem,3.3vw,.9rem);font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.product-card__meta{min-width:0;margin-top:auto;padding-top:2px;display:block}.product-card .price{color:var(--flores-text);white-space:nowrap;margin:0;font-size:clamp(.91rem,4vw,1.06rem);font-weight:650;line-height:1.2}.availability{color:var(--flores-muted);font-size:.72rem}.availability-badge{background:var(--flores-accent-soft);color:#eaa2b4;white-space:nowrap;border:1px solid #d97a9333;border-radius:999px;justify-content:center;align-items:center;min-height:23px;padding:3px 7px;font-size:clamp(.61rem,2.75vw,.7rem);line-height:1;display:inline-flex}.placeholder{background:linear-gradient(145deg, #d97a9312, transparent), var(--flores-surface-raised);min-height:0;color:var(--flores-muted);font-size:.76rem}.product-card__media .placeholder{height:100%}.skeleton{background:linear-gradient(90deg, var(--flores-surface) 20%, var(--flores-surface-raised) 45%, var(--flores-surface) 70%);background-size:220% 100%}.product-card--skeleton{min-height:0}.product-card--skeleton .skeleton--line{margin:2px 11px 8px}.product-card--skeleton .product-card__media{margin-bottom:10px}.state-block,.form,.filters{border:1px solid var(--flores-border);background:var(--flores-surface)}.back-link{min-height:40px;color:var(--flores-muted);align-items:center;gap:7px;margin-bottom:10px;padding:6px 0;font-size:.82rem;display:inline-flex}.detail-page{padding-top:max(12px, env(safe-area-inset-top))}.detail{border:1px solid var(--flores-border);background:var(--flores-surface);border-radius:20px;padding:0;overflow:hidden;box-shadow:0 18px 45px #00000038}.detail__visual{background:var(--flores-surface-raised)}.detail__gallery{aspect-ratio:3/4;background:var(--flores-surface-raised);border-radius:0;width:100%;margin:0;position:relative}.detail__main-image{object-position:center;background:var(--flores-surface-raised);object-fit:contain!important}.detail__counter{min-width:34px;min-height:25px;color:var(--flores-text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#08090cb8;border:1px solid #ffffff1f;border-radius:999px;justify-content:center;align-items:center;font-size:.7rem;display:inline-flex;position:absolute;bottom:12px;right:12px}.detail__thumbnails{background:var(--flores-bg);gap:8px;margin:0;padding:10px 12px 2px}.detail__thumbnail{opacity:.68;border-color:#0000;border-radius:10px;flex-basis:58px;width:58px;height:72px}.detail__thumbnail--active{border-color:var(--flores-accent);opacity:1}.detail__content{padding:18px 18px 16px}.detail h1{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 10px;font-size:clamp(1.375rem,5.4vw,1.5rem);font-weight:650;line-height:1.2;display:-webkit-box;overflow:hidden}.detail__meta{border-bottom:1px solid var(--flores-border);justify-content:flex-start;align-items:center;padding-bottom:18px;display:flex}.detail__meta .price{margin:0;font-size:clamp(1.125rem,4.6vw,1.22rem);font-weight:600;line-height:1.25}.detail__meta .availability{margin:0}.detail__composition,.detail__section{border-bottom:1px solid var(--flores-border);margin:0;padding:18px 0 20px}.detail__composition h2,.detail__section h2{color:var(--flores-text);margin:0 0 14px;font-size:.9rem;font-weight:600;line-height:1.35}.detail__composition ul{gap:5px}.detail__composition li,.detail__section p{color:color-mix(in srgb, var(--flores-text) 78%, var(--flores-muted));margin:0;font-size:.84rem;font-weight:400;line-height:1.45;display:block}.detail__cta{border-radius:10px;min-height:44px;margin-top:18px}.admin-list{gap:10px}.admin-card{border:1px solid var(--flores-border);background:var(--flores-surface);border-radius:14px;padding:11px}.admin-card__main{grid-template-columns:72px minmax(0,1fr) auto;align-items:start;gap:11px;display:grid}.admin-card__media{aspect-ratio:3/4;background:var(--flores-surface-raised);border-radius:10px;width:72px}.admin-card__media .placeholder{min-height:100%}.admin-card__info{min-width:0}.admin-card__info h2{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:1px 0 6px;font-size:.86rem;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.admin-card__info .price{margin:0 0 8px;font-size:.92rem}.admin-card__meta{gap:6px;margin:0 0 7px}.admin-card__meta .muted,.admin-card__secondary{font-size:.67rem}.admin-card__secondary{color:var(--flores-muted);flex-wrap:wrap;align-items:center;gap:6px;margin:0;display:flex}.admin-card__icon-actions{gap:5px;display:flex}.icon-button{border-radius:10px;width:38px;min-width:38px;min-height:38px;padding:8px}.icon-button svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.admin-card__inventory{border-top:1px solid var(--flores-border);justify-content:space-between;align-items:center;gap:10px;min-height:44px;margin-top:10px;padding-top:9px;font-size:.72rem;display:flex}.qty-control{gap:4px;min-height:36px}.qty-control__btn{width:36px;min-width:36px;min-height:36px;padding:0}.qty-control__value{min-width:28px}.admin-card__hint{background:var(--flores-accent-soft);color:#e6b0bd;border:1px solid #d97a9326;margin:9px 0 0;font-size:.72rem}.source-badge{border:1px solid var(--flores-border);color:var(--flores-muted);background:var(--flores-surface-raised)!important}.status-badge{background:var(--flores-surface-raised);min-height:25px;color:var(--flores-text)}.filters{border-radius:14px;gap:10px;margin-bottom:14px;padding:12px}.filters label,.form label{color:var(--flores-muted);font-size:.74rem}.filters input,.filters select,.form input,.form select,.form textarea{border-color:var(--flores-border);background:var(--flores-bg);min-height:44px;color:var(--flores-text)}.filters input:focus,.filters select:focus,.form input:focus,.form select:focus,.form textarea:focus{border-color:#d97a938c;outline:2px solid #d97a931f}.admin-add-button{border:1px solid var(--flores-accent);min-height:42px;color:var(--flores-accent-strong);box-shadow:none;background:0 0;flex:none;gap:4px;font-size:.77rem}.form{border-radius:16px}.toast{bottom:calc(82px + env(safe-area-inset-bottom));border:1px solid var(--flores-border);background:var(--flores-surface-raised);color:var(--flores-text)}.dev-banner{color:#e9bac5;background:#211922;border-bottom:1px solid #d97a9333}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=359px){:root{--space:12px}.page{padding-left:12px;padding-right:12px}.product-grid{gap:8px}.product-card__body{min-height:86px;padding:9px 8px 10px}.product-card__meta{gap:4px}.admin-card__main{grid-template-columns:64px minmax(0,1fr)}.admin-card__media{width:64px}.admin-card__icon-actions{grid-column:1/-1;justify-content:flex-end}}@media (width>=560px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.product-card{transition:none}}
