:root{--bg:#fff8f6;--surface:#fff;--text:#2b2025;--muted:#7d6d73;--border:#f0e1e5;--primary:#d94f7a;--primary-dark:#b93a63;--primary-soft:#fde6ed;--primary-grad:linear-gradient(135deg, #f0789e, #c43d67);--ok:#24875a;--ok-soft:#dff3e9;--warn:#a86a0a;--warn-soft:#fdf0d6;--danger:#cc3b3b;--danger-soft:#fde4e4;--info:#2c62b5;--info-soft:#e1ecfb;--radius:16px;--shadow:0 1px 2px #3c14230f, 0 6px 20px #3c14230f;--shadow-lift:0 8px 20px #3c14231f, 0 2px 6px #3c142314}@media (prefers-color-scheme:dark){:root{--bg:#1a1316;--surface:#251c20;--text:#f5eaee;--muted:#b3a2a9;--border:#3a2c32;--primary:#ee6a94;--primary-dark:#f28aab;--primary-soft:#4a2432;--primary-grad:linear-gradient(135deg, #f58bab, #e95c86);--ok:#5ccf9a;--ok-soft:#1c3a2c;--warn:#f0c26a;--warn-soft:#43350f;--danger:#f28080;--danger-soft:#472222;--info:#86b2f0;--info-soft:#1d2f4d;--shadow:0 1px 2px #0006, 0 6px 20px #0000004d;--shadow-lift:0 10px 24px #00000073, 0 2px 8px #0000004d}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.45}a{color:var(--primary);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.container{max-width:960px;margin:0 auto;padding:16px}.container.narrow{max-width:560px}.with-cartbar{padding-bottom:96px}.topbar{z-index:10;background:var(--bg);border-bottom:1px solid var(--border);padding:12px 16px;padding-top:max(12px, env(safe-area-inset-top));position:sticky;top:0}.brand{letter-spacing:-.01em;width:100%;max-width:960px;color:var(--text);align-items:center;gap:8px;margin:0 auto;font-size:20px;font-weight:800;transition:transform .15s;display:flex}.brand:hover{transform:translateY(-1px)}.brand-mark{background:var(--primary-grad);border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:15px;display:inline-flex;box-shadow:0 3px 8px #d94f7a59}.brand-text{background:var(--primary-grad);color:#0000;-webkit-background-clip:text;background-clip:text}h1{margin:4px 0;font-size:22px}h2{margin:0 0 12px;font-size:18px}.muted{color:var(--muted)}.small{font-size:13px}.btn{border:1px solid var(--border);background:var(--surface);border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 16px;font-weight:600;transition:transform .15s cubic-bezier(.34,1.56,.64,1),background .15s,border-color .15s,box-shadow .2s;display:inline-flex;position:relative;overflow:hidden}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 14px #3c14231a}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--primary-grad);color:#fff;border-color:#0000;box-shadow:0 2px 10px #d94f7a4d}.btn.primary:after{content:"";pointer-events:none;background:linear-gradient(120deg,#0000 0%,#ffffff59 50%,#0000 100%);transition:transform .6s;position:absolute;inset:0;transform:translate(-120%)}.btn.primary:hover:not(:disabled):after{transform:translate(120%)}.btn.primary:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 6px 18px #d94f7a66}.btn.primary.added{animation:.45s addPulse}.btn.danger{color:var(--danger);border-color:var(--danger-soft);background:var(--danger-soft)}.btn.block{width:100%}.btn.sm{border-radius:10px;min-height:36px;padding:6px 12px;font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.chips{scrollbar-width:none;gap:8px;padding:4px 0 12px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{border:1px solid var(--border);background:var(--surface);border-radius:999px;flex:none;padding:7px 14px;font-size:14px;font-weight:600;transition:background .2s,color .2s,border-color .2s,transform .15s}.chip:active{transform:scale(.95)}.chip.active{background:var(--primary-grad);color:#fff;border-color:#0000;box-shadow:0 3px 10px #d94f7a4d}.badge{background:var(--border);color:var(--muted);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-block}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.info{background:var(--info-soft);color:var(--info)}.field{margin-bottom:14px;display:block}.field>span{color:var(--muted);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.input{border:1px solid var(--border);background:var(--surface);border-radius:12px;width:100%;min-height:44px;padding:11px 14px;font-size:16px;transition:border-color .15s,box-shadow .15s}.input:focus{outline:2px solid var(--primary);outline-offset:0;border-color:#0000}textarea.input{resize:vertical;min-height:80px}.error-box{background:var(--danger-soft);color:var(--danger);border-radius:12px;margin:0 0 14px;padding:10px 14px;font-size:14px;animation:.25s fadeInUp}.empty{text-align:center;color:var(--muted);padding:48px 16px;animation:.35s fadeInUp}.empty-icon{margin-bottom:8px;font-size:40px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (width>=640px){.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}@media (width>=900px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.product{flex-direction:column;transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s;animation:.45s cubic-bezier(.2,.8,.2,1) both fadeInUp;display:flex;overflow:hidden}.product:hover,.product:focus-within{box-shadow:var(--shadow-lift);transform:translateY(-4px)}.product.soldout .thumb{filter:grayscale(.8);opacity:.6}.product.soldout:hover{box-shadow:var(--shadow);transform:none}.thumb{aspect-ratio:1;background:linear-gradient(135deg, var(--primary-soft), var(--bg));justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.product:hover .thumb img{transform:scale(1.07)}.thumb .letter{color:var(--primary);opacity:.6;font-size:44px;font-weight:800}.thumb .stock-badge{animation:.35s cubic-bezier(.34,1.56,.64,1) both popIn;position:absolute;top:8px;left:8px}.product .body{flex-direction:column;flex:1;gap:4px;padding:10px 12px 12px;display:flex}.product .name{font-weight:700;line-height:1.25}.product .desc{color:var(--muted);-webkit-line-clamp:2;cursor:pointer;-webkit-box-orient:vertical;font-size:13px;display:-webkit-box;overflow:hidden}.product .desc.open{-webkit-line-clamp:unset}.product .price-row{margin-top:auto;padding-top:8px}.price{font-size:17px;font-weight:800}.unit{color:var(--muted);font-size:13px}.stepper{justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.stepper .btn{min-width:44px;padding:0;font-size:20px;line-height:1}.stepper .qty{text-align:center;min-width:24px;font-weight:800;display:inline-block}.stepper .qty.bump{animation:.25s bump}.search{margin:4px 0 10px}.cartbar{z-index:20;padding:12px 16px;padding-bottom:max(12px, env(safe-area-inset-bottom));background:linear-gradient(to top, var(--bg) 60%, transparent);position:fixed;bottom:0;left:0;right:0}.cartbar a{background:var(--primary-grad);color:#fff;border-radius:14px;justify-content:space-between;align-items:center;max-width:960px;margin:0 auto;padding:14px 18px;font-weight:700;transition:transform .15s,box-shadow .2s;display:flex;box-shadow:0 8px 22px #d94f7a66}.cartbar a:active{transform:scale(.98)}.cartbar-enter-active,.cartbar-leave-active{transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .3s}.cartbar-enter-from,.cartbar-leave-to{opacity:0;transform:translateY(20px)}.line{align-items:center;gap:12px;padding:12px;display:flex}.line+.line{border-top:1px solid var(--border)}.line .mini{background:var(--primary-soft);width:56px;height:56px;color:var(--primary);border-radius:12px;flex:none;justify-content:center;align-items:center;font-weight:800;display:flex;overflow:hidden}.line .mini img{object-fit:cover;width:100%;height:100%}.line .info{flex:1;min-width:0}.line .info .name{font-weight:700}.line .stepper{margin:0}.total-row{border-top:1px solid var(--border);justify-content:space-between;align-items:baseline;padding:14px 12px;font-size:18px;font-weight:800;display:flex}.radio-group{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;display:grid}.radio{border:1px solid var(--border);background:var(--surface);text-align:center;cursor:pointer;border-radius:12px;padding:12px;font-weight:600;transition:border-color .15s,background .15s,color .15s,transform .15s}.radio:active{transform:scale(.97)}.radio.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}.radio input{display:none}.done{text-align:center;padding:56px 8px}.done .check{background:var(--ok-soft);width:72px;height:72px;color:var(--ok);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:36px;font-weight:800;animation:.55s cubic-bezier(.34,1.56,.64,1) both checkPop;display:flex}.done h1{animation:.4s .15s both fadeInUp}.done p{animation:.4s .25s both fadeInUp}.done .btn{animation:.4s .35s both fadeInUp}.admin-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.tabs{gap:8px;margin:8px 0 16px;display:flex}.admin-row{grid-template-columns:56px 1fr;gap:12px;padding:12px;transition:background .15s;display:grid}.admin-row:hover{background:var(--primary-soft)}.admin-row+.admin-row{border-top:1px solid var(--border)}.admin-row .mini{background:var(--primary-soft);width:56px;height:56px;color:var(--primary);border-radius:12px;justify-content:center;align-items:center;font-weight:800;display:flex;overflow:hidden}.admin-row .mini img{object-fit:cover;width:100%;height:100%}.admin-row .title{flex-wrap:wrap;align-items:center;gap:6px 10px;font-weight:700;display:flex}.admin-row .controls{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.mini-input{border:1px solid var(--border);background:var(--surface);border-radius:10px;width:96px;min-height:36px;padding:6px 10px}.inline-label{color:var(--muted);font-size:12px}.order{margin-bottom:12px;padding:14px;transition:box-shadow .2s,transform .2s}.order:hover{box-shadow:var(--shadow-lift)}.order .head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.order .items{background:var(--bg);border-radius:12px;margin:10px 0;padding:10px 12px;font-size:14px}.order .items div{justify-content:space-between;gap:8px;display:flex}.order .actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.modal-backdrop{z-index:50;background:#14080e80;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--bg);width:100%;max-width:560px;max-height:92vh;padding:18px 16px;padding-bottom:max(18px, env(safe-area-inset-bottom));border-radius:20px 20px 0 0;overflow-y:auto}@media (width>=640px){.modal-backdrop{align-items:center}.modal{border-radius:20px}}.modal-enter-active,.modal-leave-active{transition:opacity .25s}.modal-enter-active .modal,.modal-leave-active .modal{transition:transform .28s cubic-bezier(.2,.8,.2,1)}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .modal,.modal-leave-to .modal{transform:translateY(32px)}.row2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.upload-preview{object-fit:cover;border-radius:12px;width:96px;height:96px;margin-bottom:8px;display:block}.promo-box{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:12px;display:flex}.promo-box .input{flex:1;min-width:140px}.promo-success{align-items:center;gap:4px;animation:.3s fadeInUp;display:inline-flex}.total-row.small{border-top:none;padding:4px 12px;font-size:13px;font-weight:600}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px;display:grid}.stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;transition:transform .2s,box-shadow .2s}.stat-tile:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.stat-tile .num{margin-top:4px;font-size:26px;font-weight:800}.table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;overflow:hidden}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px;font-size:14px}.table th{color:var(--muted);background:var(--primary-soft);font-weight:700}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:background .15s}.table tbody tr:hover{background:var(--primary-soft)}.order-history{flex-direction:column;gap:12px;display:flex}.telegram-login{margin-bottom:16px;padding:16px}.telegram-login ol{color:var(--muted)}.telegram-login code{background:var(--primary-soft);color:var(--primary-dark);border-radius:6px;padding:1px 6px;font-size:13px}.pickup-box{background:var(--primary-soft);border-radius:12px;padding:12px}.shop-contact{border-top:1px solid var(--border);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:28px;padding-top:16px;display:flex}.shop-contact a{font-weight:600}.location-map{border:1px solid var(--border);border-radius:12px;height:320px;overflow:hidden}.skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (width>=640px){.skeleton-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}@media (width>=900px){.skeleton-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.skeleton-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);overflow:hidden}.skeleton-thumb{aspect-ratio:1;background:linear-gradient(90deg, var(--border) 25%, var(--primary-soft) 37%, var(--border) 63%);background-size:400% 100%;animation:1.4s infinite shimmer}.skeleton-line{background:linear-gradient(90deg, var(--border) 25%, var(--primary-soft) 37%, var(--border) 63%);background-size:400% 100%;border-radius:6px;height:12px;margin:10px 12px;animation:1.4s infinite shimmer}.skeleton-line.short{width:50%}.page-enter-active,.page-leave-active{transition:opacity .18s,transform .18s}.page-enter-from{opacity:0;transform:translateY(6px)}.page-leave-to{opacity:0;transform:translateY(-6px)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes addPulse{0%{box-shadow:0 0 #d94f7a8c}to{box-shadow:0 0 0 16px #d94f7a00}}@keyframes checkPop{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.15)}to{transform:scale(1)}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
