:root{--brand: #e8590c;--brand-dark: #c2410c;--brand-soft: #fff4e6;--ink: #1f2933;--ink-2: #52606d;--line: #e4e7eb;--bg: #fafaf7;--card: #ffffff;--ok: #2f9e44;--warn: #f08c00;--err: #e03131;--info: #1971c2;--radius: 14px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 4px 16px rgba(16, 24, 40, .06);--shadow-lg: 0 12px 40px rgba(16, 24, 40, .14);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--bg)}img{max-width:100%;display:block}a{color:var(--brand-dark);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.2;margin:0 0 .5em}h1{font-size:clamp(1.6rem,3vw,2.2rem)}h2{font-size:1.25rem}button,input,select,textarea{font:inherit;color:inherit}code{background:#f1f3f5;padding:.1em .35em;border-radius:6px;font-size:.9em}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app{min-height:100vh;display:flex;flex-direction:column}.main{flex:1}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 16px}.page{padding-top:28px;padding-bottom:48px}.section{margin-top:40px}.section-head,.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.page-head h1{margin:0}.section-title{font-size:1.5rem}.muted{color:var(--ink-2)}.small{font-size:.875rem}.link{font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:10px;padding:.6rem 1.1rem;font-weight:600;cursor:pointer;transition:background .15s,transform .05s,box-shadow .15s;text-decoration:none!important;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-dark)}.btn-ghost{background:#fff;border-color:var(--line);color:var(--ink)}.btn-ghost:hover:not(:disabled){border-color:var(--ink-2)}.btn-danger{background:#fff5f5;color:var(--err);border-color:#ffc9c9}.btn-danger:hover{background:#ffe3e3}.btn-sm{padding:.35rem .7rem;font-size:.875rem;border-radius:8px}.btn-lg{padding:.8rem 1.4rem;font-size:1.05rem}.btn-block{width:100%}.link-btn{background:none;border:0;padding:0;cursor:pointer;color:inherit;font-weight:500}.icon-btn{background:none;border:0;cursor:pointer;color:var(--ink-2);font-size:1rem;padding:6px;border-radius:8px}.icon-btn:hover{background:#f1f3f5;color:var(--err)}.header{position:sticky;top:0;z-index:20;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.topbar{background:var(--ink);color:#fff;text-align:center;font-size:.8rem;padding:6px 16px}.header-inner{display:flex;align-items:center;gap:20px;height:68px}.logo{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:1.4rem;color:var(--ink);text-decoration:none!important;letter-spacing:-.02em}.logo-mark{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--brand);color:#fff;font-size:1.1rem}.logo-light{color:#fff}.header-search{flex:1;max-width:380px;display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}.header-search input{flex:1;border:0;padding:.5rem 1rem;outline:none;min-width:0}.header-search button{border:0;background:transparent;padding:0 .9rem;cursor:pointer}.header-search:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.nav{display:flex;align-items:center;gap:18px;margin-left:auto}.nav a{color:var(--ink-2);font-weight:500;text-decoration:none;padding:4px 0;border-bottom:2px solid transparent}.nav a:hover{color:var(--ink)}.nav a.active{color:var(--ink);border-bottom-color:var(--brand)}.cart-link{position:relative;color:var(--ink);display:inline-flex;padding:8px;border-radius:10px}.cart-link:hover{background:var(--brand-soft)}.cart-count{position:absolute;top:0;right:-4px;background:var(--brand);color:#fff;font-size:.7rem;font-weight:700;min-width:20px;height:20px;border-radius:999px;display:grid;place-items:center;padding:0 5px;border:2px solid #fff}.burger{display:none;background:none;border:0;cursor:pointer;padding:8px;flex-direction:column;gap:4px}.burger span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px}.hero{background:linear-gradient(135deg,var(--brand-soft),#fff 60%);border-bottom:1px solid var(--line)}.hero-inner{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center;padding-top:56px;padding-bottom:56px}.hero h1{font-size:clamp(2rem,4.5vw,3.2rem);letter-spacing:-.02em}.hero p{color:var(--ink-2);font-size:1.1rem;max-width:520px}.eyebrow{display:inline-block;background:#fff;border:1px solid #ffd8a8;color:var(--brand-dark);font-weight:600;font-size:.8rem;border-radius:999px;padding:4px 12px;margin-bottom:14px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.hero-visual img{border-radius:24px;box-shadow:var(--shadow-lg);aspect-ratio:5 / 4;object-fit:cover;width:100%}.features{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.features>div{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:4px}.features span{color:var(--ink-2);font-size:.9rem}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}.cat-tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:4px;color:var(--ink);text-decoration:none!important;transition:transform .15s,box-shadow .15s,border-color .15s}.cat-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#ffd8a8}.cat-icon{font-size:1.8rem}.cat-name{font-weight:700}.cat-count{color:var(--ink-2);font-size:.85rem}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}.product-card{overflow:hidden;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}.product-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.product-media{position:relative;display:block;aspect-ratio:1;background:#f1f3f5;overflow:hidden}.product-media img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.product-card:hover .product-media img{transform:scale(1.04)}.ribbon{position:absolute;top:10px;left:10px;background:var(--err);color:#fff;font-size:.75rem;font-weight:700;padding:3px 8px;border-radius:6px}.ribbon-warn{background:var(--warn)}.product-body{padding:14px;display:flex;flex-direction:column;gap:6px;flex:1}.product-cat{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--brand-dark)}.product-name{font-size:1rem;margin:0}.product-name a{color:var(--ink)}.product-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:8px}.price{font-weight:700;white-space:nowrap}.price-lg{font-size:1.8rem;color:var(--brand-dark);display:block;margin:8px 0 12px}.price-strong{font-size:1.1rem;color:var(--brand-dark)}.rating{color:#f59f00;font-size:.9rem;letter-spacing:1px}.rating-off{color:#dee2e6}.rating-num{color:var(--ink-2);font-size:.8rem;margin-left:6px;letter-spacing:0}.catalog{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:start}.filters{padding:18px;position:sticky;top:120px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field>span{font-weight:600;font-size:.875rem}.field input,.field select,.field textarea,.input,.sort select,.table select{border:1px solid var(--line);border-radius:10px;padding:.55rem .75rem;background:#fff;width:100%;outline:none}.field input:focus,.field textarea:focus,.input:focus,select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.25rem .75rem;font-size:.85rem;cursor:pointer}.chip:hover{border-color:var(--brand)}.chip-on{background:var(--brand);border-color:var(--brand);color:#fff}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.toolbar .input{max-width:320px}.sort{display:flex;align-items:center;gap:8px;font-weight:500}.sort select{width:auto}.pagination{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:28px}.breadcrumb{font-size:.875rem;color:var(--ink-2);margin-bottom:18px}.detail{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.detail-media{overflow:hidden}.detail-media img{width:100%;aspect-ratio:1;object-fit:cover}.detail-desc{color:var(--ink-2);font-size:1.05rem}.stock-ok{color:var(--ok);font-weight:600}.stock-low{color:var(--warn);font-weight:700}.stock-out{color:var(--err);font-weight:700}.buy-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:18px 0}.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.qty button{width:36px;height:36px;border:0;background:#f8f9fa;cursor:pointer;font-size:1.1rem}.qty button:hover:not(:disabled){background:var(--brand-soft)}.qty button:disabled{opacity:.4;cursor:not-allowed}.qty span{min-width:36px;text-align:center;font-weight:600}.cart-layout{display:grid;grid-template-columns:1fr 340px;gap:24px;align-items:start}.cart-list{list-style:none;margin:0;padding:0}.cart-item{display:grid;grid-template-columns:80px 1fr auto 120px 36px;gap:16px;align-items:center;padding:16px;border-bottom:1px solid var(--line)}.cart-item:last-child{border-bottom:0}.cart-item img{width:80px;height:80px;object-fit:cover;border-radius:10px}.cart-item-info{display:flex;flex-direction:column;min-width:0}.cart-item-name{font-weight:600;color:var(--ink)}.cart-line-total{text-align:right}.summary{padding:20px;position:sticky;top:120px;display:flex;flex-direction:column;gap:10px}.summary h2{margin-bottom:4px}.summary-row{display:flex;justify-content:space-between}.summary-total{border-top:1px solid var(--line);padding-top:10px;font-size:1.15rem;font-weight:700}.summary-items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;font-size:.925rem}.summary-items li{display:flex;justify-content:space-between;gap:10px}.summary address{font-style:normal;line-height:1.6}.form{padding:22px}.auth-page{display:flex;justify-content:center}.auth-card{width:100%;max-width:420px}.demo-hint{background:var(--brand-soft);padding:10px 12px;border-radius:10px;margin-bottom:0}.alert{padding:10px 14px;border-radius:10px;margin:10px 0;font-size:.925rem}.alert-error{background:#fff5f5;color:#c92a2a;border:1px solid #ffc9c9}.alert-success{background:#ebfbee;color:#2b8a3e;border:1px solid #b2f2bb}.alert-info{background:#e7f5ff;color:#1864ab;border:1px solid #a5d8ff}.empty{text-align:center;padding:60px 20px;display:flex;flex-direction:column;align-items:center;gap:8px}.empty p{color:var(--ink-2)}.spinner-wrap{display:grid;place-items:center;padding:60px 0}.spinner{width:36px;height:36px;border:4px solid var(--brand-soft);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.order-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.order-row{display:grid;grid-template-columns:1fr auto auto auto;gap:16px;align-items:center;padding:16px 18px}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap}.badge-pending{background:#fff9db;color:#e67700}.badge-paid{background:#e7f5ff;color:#1864ab}.badge-shipped{background:#f3f0ff;color:#5f3dc4}.badge-delivered{background:#ebfbee;color:#2b8a3e}.badge-cancelled{background:#fff5f5;color:#c92a2a}.timeline{list-style:none;padding:0;margin:10px 0 24px;display:grid;grid-template-columns:repeat(4,1fr);counter-reset:s}.timeline li{position:relative;text-align:center;color:var(--ink-2);font-size:.875rem;padding-top:28px}.timeline li:before{content:"";position:absolute;top:9px;left:-50%;width:100%;height:3px;background:var(--line);z-index:0}.timeline li:first-child:before{display:none}.timeline .dot{position:absolute;top:2px;left:50%;transform:translate(-50%);width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid var(--line);z-index:1}.timeline li.done{color:var(--ink);font-weight:600}.timeline li.done .dot{background:var(--brand);border-color:var(--brand)}.timeline li.done:before{background:var(--brand)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:.925rem}.table th,.table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);background:#fafbfc}.table tfoot td{border-bottom:0}.card>h2{padding:18px 18px 0}.cell-product{display:flex;align-items:center;gap:10px}.cell-product img{width:40px;height:40px;border-radius:8px;object-fit:cover}.cell-actions{display:flex;gap:6px;justify-content:flex-end}.table select{width:auto;padding:.35rem .5rem}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px}.tabs a{padding:10px 16px;color:var(--ink-2);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px;text-decoration:none}.tabs a.active{color:var(--brand-dark);border-bottom-color:var(--brand)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:grid;place-items:center;padding:16px;z-index:50}.modal{width:100%;max-width:560px;max-height:92vh;overflow:auto;padding-top:20px}.modal h2{padding:0 22px}.footer{background:var(--ink);color:#cbd2d9;margin-top:60px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;padding-top:44px;padding-bottom:32px}.footer h4{color:#fff;margin:0 0 12px}.footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;font-size:.925rem}.footer a{color:#cbd2d9}.footer a:hover{color:#fff}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);text-align:center;padding:16px;font-size:.85rem}@media (max-width: 960px){.catalog{grid-template-columns:1fr}.filters{position:static}.cart-layout{grid-template-columns:1fr}.summary{position:static}.footer-grid{grid-template-columns:1fr 1fr}}@media (max-width: 860px){.header-inner{gap:10px}.header-search{order:3}.burger{display:flex;margin-left:auto}.nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;gap:0;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}.nav.nav-open{display:flex}.nav a,.nav .link-btn{padding:14px 20px;border-bottom:1px solid var(--line);text-align:left}.nav a.active{border-bottom-color:var(--line);color:var(--brand-dark)}.hero-inner,.detail{grid-template-columns:1fr;gap:24px}.hero-inner{padding-top:32px;padding-bottom:32px}.features{grid-template-columns:1fr}}@media (max-width: 640px){.header-inner{flex-wrap:wrap;height:auto;padding-top:10px;padding-bottom:10px}.header-search{order:5;flex-basis:100%;max-width:none}.grid{grid-template-columns:repeat(2,1fr);gap:12px}.product-foot{flex-direction:column;align-items:stretch}.cart-item{grid-template-columns:64px 1fr auto;grid-template-areas:"img info rm" "img qty total";gap:8px 12px}.cart-item img{grid-area:img;width:64px;height:64px}.cart-item-info{grid-area:info}.cart-item .qty{grid-area:qty;justify-self:start}.cart-line-total{grid-area:total}.cart-item .icon-btn{grid-area:rm;justify-self:end}.order-row{grid-template-columns:1fr auto}.row-2,.footer-grid{grid-template-columns:1fr}.timeline li{font-size:.75rem}}
