/* ================================================
   Public Shop Page — 公开店铺样式
   仅包含首页视图 + 错误页的样式
   商品浏览视图的样式由 /user/pages/products/products.css 统一提供
   ================================================ */

* { margin: 0; padding: 0; box-sizing: border-box; }

html, body {
    height: 100%;
    overflow: hidden;
    font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text',
                 'Helvetica Neue', Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    background: #f5f5f7;
    color: #1d1d1f;
}

/* ============ Shop Home 视图 ============ */
#shopHomeView {
    width: 100%;
    height: 100%;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: #f5f5f7;
}

#shopHomeContainer {
    min-height: 100%;
    display: flex;
    flex-direction: column;
}

/* ============ Shop Product 视图容器（内容由 SwipePage.js 动态生成） ============ */
#shopProductView {
    position: fixed; inset: 0;
    background: #000;
    z-index: 10;
}

/* ============ Shop Product Detail 视图（分享直链落点） ============ */
/* 与 swipe 列表完全一致的沉浸式布局：product-item 全屏撑满，header/bottom fixed 遮罩 */
#shopProductDetailView {
    position: fixed; inset: 0;
    background: #000;
    z-index: 10;
}

/* ============ Loading 覆写：隐藏动画 ============ */
.loading-screen.hide {
    opacity: 0;
    pointer-events: none;
}

/* ============ Error Overlay ============ */
.error-overlay {
    position: fixed; inset: 0;
    background: #000;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3000;
}

.error-card {
    text-align: center;
    padding: 32px;
    color: #fff;
}

.error-icon { font-size: 64px; margin-bottom: 16px; }

.error-card h2 {
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 8px;
}

.error-card p {
    color: rgba(255,255,255,0.5);
    font-size: 14px;
    margin-bottom: 24px;
    line-height: 1.5;
}

.btn-retry {
    background: #fff;
    color: #1d1d1f;
    border: none;
    padding: 12px 40px;
    border-radius: 20px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
}

.btn-retry:active { opacity: 0.8; }
