*,:after,:before{margin:0;padding:0;box-sizing:border-box}
:root{--primary:#1a73e8;--primary-dark:#0d47a1;--accent:#ff5722;--success:#4caf50;--error:#f44336;--text:#333;--bg:#f5f5f5;--white:#fff;--gray:#999;--border:#ddd}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh}
.container{max-width:1200px;margin:0 auto;padding:0 20px}
.header{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:var(--white);padding:12px 0;position:sticky;top:0;z-index:100;box-shadow:0 2px 10px rgba(0,0,0,.15)}.header .container{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
.logo{font-size:20px;font-weight:700;cursor:pointer;transition:opacity .2s}.logo:hover,.logo:focus{opacity:.8;outline:none}
.logo:focus-visible{outline:2px solid #fff;outline-offset:2px}
.nav{display:flex;align-items:center;gap:8px}.nav a{color:var(--white);text-decoration:none;margin:0 12px;font-size:14px;transition:opacity .2s}.nav a:hover,.nav a:focus{opacity:.8;outline:none}
.cart-link{position:relative}.cart-link span{background:var(--accent);color:var(--white);border-radius:50%;padding:2px 7px;font-size:11px;margin-left:4px}
.btn{background:var(--primary);color:var(--white);border:none;padding:10px 24px;border-radius:6px;cursor:pointer;font-size:14px;transition:background .2s,transform .1s}.btn:hover{background:#1557b0}.btn:active{transform:scale(.98)}.btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.btn:disabled{background:#ccc;cursor:not-allowed}
.btn-sm{padding:6px 14px;font-size:13px}.btn-outline{background:0 0;border:1px solid var(--white);color:var(--white)}.btn-outline:hover{background:rgba(255,255,255,.1)}
.hero{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:var(--white);text-align:center;padding:70px 20px}.hero h1{font-size:clamp(24px,5vw,38px);margin-bottom:12px}.hero p{font-size:clamp(14px,2vw,17px);opacity:.9;margin-bottom:25px}.hero-btns{display:flex;gap:15px;justify-content:center;flex-wrap:wrap}
.section{padding:35px 20px}.section h2{font-size:clamp(20px,4vw,26px);margin-bottom:22px;color:var(--primary);text-align:center}
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.product-card{background:var(--white);border-radius:10px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.08);transition:transform .3s,box-shadow .3s;cursor:pointer}.product-card:hover,.product-card:focus-within{transform:translateY(-4px);box-shadow:0 8px 25px rgba(0,0,0,.15)}.product-card:focus-within{outline:2px solid var(--primary);outline-offset:2px}
.product-img{height:120px;background:linear-gradient(135deg,#e3f2fd,#bbdefb);display:flex;align-items:center;justify-content:center;font-size:48px}
.product-info{padding:12px}.product-info h3{font-size:14px;margin-bottom:6px;line-height:1.4;height:40px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.product-info .price{font-size:18px;color:var(--accent);font-weight:700;margin-bottom:8px}.product-info .rating{font-size:12px;color:#ff9800}
.product-filters{display:flex;gap:10px;margin-bottom:22px;flex-wrap:wrap}.product-filters select,.product-filters input{padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:13px}.product-filters input[type=text]{flex:1;min-width:180px}.product-filters select:focus,.product-filters input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(26,115,232,.1)}
.cart-item{background:var(--white);padding:12px;border-radius:8px;margin-bottom:10px;box-shadow:0 1px 3px rgba(0,0,0,.05)}.cart-total{background:#f9f9f9;padding:14px;border-radius:8px;margin-top:15px}
.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:200;overflow-y:auto;animation:fadeIn .2s}.modal.open{display:block}@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal-content{background:var(--white);margin:60px auto;padding:28px;border-radius:10px;max-width:400px;width:92%;position:relative;animation:slideUp .3s}@keyframes slideUp{from{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}
.close{position:absolute;right:14px;top:14px;font-size:22px;cursor:pointer;color:var(--gray);transition:color .2s}.close:hover,.close:focus{color:var(--text);outline:none}
.modal-content form{display:flex;flex-direction:column}.modal-content input,.modal-content select{width:100%;padding:9px;border:1px solid var(--border);border-radius:6px;margin-bottom:10px;font-size:14px}.modal-content input:focus,.modal-content select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(26,115,232,.1)}.modal-content .btn{width:100%;margin-top:5px}
.toast{position:fixed;top:20px;right:20px;padding:12px 24px;border-radius:8px;color:var(--white);font-size:14px;z-index:300;opacity:0;transition:opacity .3s,transform .3s;transform:translateX(100%)}.toast.show{opacity:1;transform:translateX(0)}.toast.success{background:var(--success)}.toast.error{background:var(--error)}.toast.info{background:#2196f3}
.footer{background:#333;color:var(--white);padding:25px 0;text-align:center;margin-top:35px}.footer a{text-decoration:none}
.page{display:none}.page.active{display:block}
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.feature{background:var(--white);padding:22px;border-radius:10px;text-align:center;box-shadow:0 2px 10px rgba(0,0,0,.08);transition:transform .2s}.feature:hover{transform:translateY(-2px)}.feature h3{margin-bottom:8px;font-size:16px}
.loading-skeleton{background:linear-gradient(90deg,#eee 25%,#f5f5f5 50%,#eee 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;min-height:180px;border-radius:10px}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.empty-state{text-align:center;padding:40px;color:var(--gray);font-size:15px}
/* 响应式优化 */
@media(max-width:768px){.header{padding:10px 0}.header .container{gap:8px}.nav a{margin:0 8px;font-size:13px}.product-grid{grid-template-columns:repeat(2,1fr);gap:12px}.product-card{font-size:12px}.product-info h3{font-size:13px;-webkit-line-clamp:2}.product-img{height:100px;font-size:36px}.hero{padding:50px 15px}.modal-content{margin:40px auto 20px;padding:20px}}
@media(max-width:480px){.container{padding:0 12px}.product-grid{grid-template-columns:1fr}.section{padding:25px 12px}.hero h1{font-size:22px}}
@media(prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;animation:none!important}}
