/* ========== 基础设置 ========== */
:root {
    --bg: #eef0f4;
    --card: #ffffff;
    --text: #2c2c2c;
    --text-light: #8a8a8a;
    --accent: #c4522a;
    --border: #e8e5e0;
    --hover: #faf8f5;
    --radius: 10px;
    --glass-tint: 255 255 255;
    --tint-a: 0.12;
    --edge-hi: rgba(255,255,255,.85);
    --edge-lo: rgba(255,255,255,.35);
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", -apple-system, sans-serif;
    background: var(--bg);
    color: var(--text);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    line-height: 1.6;
    -webkit-tap-highlight-color: transparent;
    overflow-x: hidden;
}

/* ========== 液态玻璃背景光斑 ========== */
.blobs {
    position: fixed;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}

.blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(90px);
    opacity: 0.55;
    animation: blobFloat 22s ease-in-out infinite alternate;
}

.b1 { width: 46vw; height: 46vw; left: -10vw; top: -12vw; background: #ff5e8a; }
.b2 { width: 40vw; height: 40vw; right: -8vw; top: 6vw; background: #4facfe; animation-delay: -6s; }
.b3 { width: 36vw; height: 36vw; left: 24vw; top: 44vh; background: #a17bff; animation-delay: -12s; }
.b4 { width: 34vw; height: 34vw; right: 4vw; bottom: -14vw; background: #ffc35e; animation-delay: -17s; }

@keyframes blobFloat {
    0%   { transform: translate(0,0) scale(1); }
    50%  { transform: translate(6vw,-4vh) scale(1.12); }
    100% { transform: translate(-4vw,5vh) scale(.94); }
}

.topbar, .container, .footer {
    position: relative;
    z-index: 1;
}

/* ========== 顶部导航 ========== */
.topbar {
    background: rgba(255, 255, 255, 0.4);
    backdrop-filter: blur(2px) saturate(170%);
    -webkit-backdrop-filter: blur(2px) saturate(170%);
    border-bottom: 1px solid rgba(255,255,255,.4);
    padding: 14px 0;
    position: sticky;
    top: 0;
    z-index: 10;
}

.topbar-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.logo { font-size: 18px; font-weight: 700; letter-spacing: 0.5px; }
.tagline { font-size: 13px; color: var(--text-light); }

/* ========== 商城导航按钮 ========== */
.shop-nav-btn {
    margin-left: auto;
    padding: 6px 14px;
    background: rgba(44, 62, 80, 0.7);
    color: #fff;
    border: 1px solid rgba(44, 62, 80, 0.4);
    border-radius: 14px;
    font-size: 13px;
    cursor: pointer;
    backdrop-filter: blur(2px) saturate(170%);
    -webkit-backdrop-filter: blur(2px) saturate(170%);
    box-shadow: 0 4px 16px rgba(0,10,40,.15);
    transition: transform 0.25s cubic-bezier(.34,1.56,.64,1);
    flex-shrink: 0;
}

.shop-nav-btn:hover {
    transform: scale(1.05);
    background: rgba(44, 62, 80, 0.85);
}

/* ========== 商品卡片 ========== */
.product-card {
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 16px;
    padding: 14px;
    background: rgba(255, 255, 255, 0.35);
    backdrop-filter: blur(2px) saturate(170%);
    -webkit-backdrop-filter: blur(2px) saturate(170%);
    transition: box-shadow 0.15s ease, transform 0.2s ease;
}

.product-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.1); transform: translateY(-2px); }
.product-name { font-size: 14px; font-weight: 600; color: var(--text); margin-bottom: 4px; }
.product-desc { font-size: 12px; color: var(--text-light); margin-bottom: 8px; }
.product-price { font-size: 18px; font-weight: 700; color: #c4522a; margin-bottom: 8px; }
.product-original-price { font-size: 13px; color: #b5b0a8; text-decoration: line-through; margin-left: 8px; font-weight: 400; }
.product-current-price { font-size: 18px; font-weight: 700; color: #c4522a; }

.product-buy-btn {
    width: 100%;
    padding: 8px 0;
    background: rgba(196, 82, 42, 0.7);
    color: #fff;
    border: 1px solid rgba(196, 82, 42, 0.5);
    border-radius: 12px;
    font-size: 13px;
    cursor: pointer;
    transition: transform 0.25s cubic-bezier(.34,1.56,.64,1);
}

.product-buy-btn:hover { transform: scale(1.03); background: rgba(168, 68, 31, 0.85); }

/* ========== 主容器 ========== */
.container { flex: 1; max-width: 1200px; width: 100%; margin: 0 auto; padding: 28px 20px; }

/* ========== 三栏布局 ========== */
.layout { display: flex; gap: 20px; align-items: flex-start; }
.sidebar { width: 240px; flex-shrink: 0; display: flex; flex-direction: column; gap: 16px; }

.widget {
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(2px) saturate(170%);
    -webkit-backdrop-filter: blur(2px) saturate(170%);
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,.4);
    padding: 16px 18px;
    box-shadow: 0 8px 30px rgba(0,10,40,.08);
}

.widget-title { font-size: 14px; font-weight: 600; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid rgba(255,255,255,.3); }

/* ========== 公告栏 ========== */
.notice-widget { flex: 1; min-height: 260px; max-height: 320px; display: flex; flex-direction: column; }
.notice-list { flex: 1; display: flex; flex-direction: column; overflow-y: auto; max-height: 260px; padding-right: 4px; }
.notice-list::-webkit-scrollbar { width: 4px; }
.notice-list::-webkit-scrollbar-thumb { background: rgba(0,0,0,.15); border-radius: 2px; }
.notice-list::-webkit-scrollbar-thumb:hover { background: #c4522a; }
.notice-list::-webkit-scrollbar-track { background: transparent; }
.notice-item { padding: 10px 0; border-bottom: 1px dashed rgba(0,0,0,.08); display: flex; flex-direction: column; gap: 2px; flex-shrink: 0; }
.notice-item:last-child { border-bottom: none; }
.notice-date { font-size: 11px; color: var(--accent); font-weight: 500; }
.notice-text { font-size: 13px; color: var(--text); line-height: 1.5; }
.notice-empty { flex: 1; display: flex; align-items: center; justify-content: center; color: var(--text-light); font-size: 13px; text-align: center; padding: 20px 0; }

/* ========== 右侧联系方式 ========== */
.contact-widget { min-height: 140px; }
.time-widget { min-height: 100px; }
.contact-list { display: flex; flex-direction: column; }
.contact-item { display: flex; align-items: center; gap: 8px; padding: 8px 0; text-decoration: none; color: var(--text); border-bottom: 1px dashed rgba(0,0,0,.08); font-size: 13px; transition: color 0.15s ease; cursor: default; }
.contact-item:last-child { border-bottom: none; }
#emailContactBtn, #qqContactBtn { cursor: pointer; }
#emailContactBtn:hover, #qqContactBtn:hover { color: var(--accent); }
#emailContactBtn:active, #qqContactBtn:active { opacity: 0.7; }
a.contact-item:hover { color: var(--accent); }
a.contact-item:active { opacity: 0.7; }
.contact-icon { font-size: 15px; flex-shrink: 0; }
.contact-label { color: var(--text-light); flex-shrink: 0; min-width: 36px; }
.contact-value { flex: 1; text-align: right; word-break: break-all; }
.online-time { font-size: 13px; color: var(--text-light); line-height: 1.8; }

/* ========== 文件面板 ========== */
.file-panel {
    flex: 1; min-width: 0;
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(2px) saturate(170%);
    -webkit-backdrop-filter: blur(2px) saturate(170%);
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,.4);
    overflow: hidden;
    display: flex; flex-direction: column;
    min-height: auto; align-self: flex-start;
    box-shadow: 0 8px 30px rgba(0,10,40,.08);
}

.panel-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 22px; border-bottom: 1px solid rgba(255,255,255,.3); flex-shrink: 0; }
.panel-header h2 { font-size: 15px; font-weight: 600; }
.file-count { font-size: 12px; color: var(--text-light); background: rgba(255,255,255,.3); padding: 3px 10px; border-radius: 20px; flex-shrink: 0; }

/* ========== 搜索框 ========== */
.search-box {
    display: flex; align-items: center; gap: 8px;
    margin: 14px 22px; padding: 8px 12px;
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 12px;
    background: rgba(255,255,255,.2);
    backdrop-filter: blur(2px) saturate(170%);
    -webkit-backdrop-filter: blur(2px) saturate(170%);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    flex-shrink: 0;
}
.search-box:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(196, 82, 42, 0.1); }
.search-icon { font-size: 14px; flex-shrink: 0; opacity: 0.6; }
.search-box input { flex: 1; border: none; background: transparent; font-size: 14px; color: var(--text); outline: none; font-family: inherit; min-width: 0; }
.search-box input::placeholder { color: #b5b0a8; }
.clear-btn { border: none; background: transparent; color: var(--text-light); font-size: 13px; cursor: pointer; padding: 2px 6px; border-radius: 4px; display: none; transition: color 0.15s ease, background 0.15s ease; flex-shrink: 0; }
.clear-btn:hover { color: var(--text); background: rgba(0,0,0,.1); }
.clear-btn.visible { display: block; }

/* ========== 分类筛选标签 ========== */
.file-categories { display: flex; gap: 8px; padding: 10px 22px; flex-wrap: wrap; flex-shrink: 0; }
.category-btn {
    padding: 5px 12px;
    border: 1px solid rgba(255,255,255,.4);
    background: rgba(255,255,255,.25);
    color: var(--text-light);
    border-radius: 20px;
    font-size: 12px;
    cursor: pointer;
    backdrop-filter: blur(2px) saturate(170%);
    -webkit-backdrop-filter: blur(2px) saturate(170%);
    transition: all 0.25s cubic-bezier(.34,1.56,.64,1);
    white-space: nowrap;
}
.category-btn:hover { border-color: var(--accent); color: var(--accent); transform: scale(1.04); }
.category-btn.active { background: rgba(196, 82, 42, 0.7); color: #fff; border-color: rgba(196, 82, 42, 0.7); }

/* ========== 文件列表 ========== */
.file-list { overflow-y: auto; max-height: 500px; }
.file-row { display: flex; align-items: center; gap: 12px; padding: 12px 22px; border-bottom: 1px solid rgba(255,255,255,.25); transition: background 0.15s ease; }
.file-row:last-child { border-bottom: none; }
.file-row:hover { background: rgba(255,255,255,.15); }
.file-row:active { background: rgba(255,255,255,.15); }
.file-icon { width: 34px; height: 34px; border-radius: 8px; background: rgba(255,255,255,.3); display: flex; align-items: center; justify-content: center; font-size: 16px; flex-shrink: 0; }
.file-info { flex: 1; min-width: 0; }
.file-name { font-size: 13px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: default; }
.file-name mark { background: #f7d9c8; color: var(--accent); padding: 0 1px; border-radius: 2px; }
.file-meta { font-size: 11px; color: var(--text-light); margin-top: 1px; }

.download-btn {
    flex-shrink: 0;
    padding: 5px 14px;
    background: rgba(255,255,255,.25);
    border: 1px solid rgba(196, 82, 42, 0.5);
    color: var(--accent);
    border-radius: 12px;
    font-size: 12px;
    text-decoration: none;
    transition: all 0.25s cubic-bezier(.34,1.56,.64,1);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.download-btn:hover { background: rgba(196, 82, 42, 0.7); color: #fff; transform: scale(1.04); }
.download-btn:active { transform: scale(0.95); }

/* ========== 空状态 ========== */
.empty-state { text-align: center; padding: 40px 20px; color: var(--text-light); font-size: 13px; }

/* ========== 骨架屏 ========== */
.skeleton { pointer-events: none; }
.skeleton-bar { height: 13px; border-radius: 4px; background: rgba(0,0,0,.08); animation: pulse 1.2s ease-in-out infinite; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }

/* ========== 底部 ========== */
.footer {
    text-align: center; padding: 16px; font-size: 12px;
    color: var(--text-light);
    border-top: 1px solid rgba(255,255,255,.3);
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(2px) saturate(170%);
    -webkit-backdrop-filter: blur(2px) saturate(170%);
}

/* ========== 验证码弹窗 ========== */
.captcha-modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.6); z-index: 1000; align-items: center; justify-content: center; }
.captcha-modal.active { display: flex; }
.captcha-box { background: rgba(255, 255, 255, 0.75); backdrop-filter: blur(2px) saturate(170%); -webkit-backdrop-filter: blur(2px) saturate(170%); border-radius: 20px; padding: 24px; width: 320px; max-width: 90vw; text-align: center; box-shadow: 0 18px 50px rgba(0,10,40,.2); }
.captcha-box h3 { font-size: 16px; margin-bottom: 6px; color: #2c2c2c; }
.captcha-tip { font-size: 12px; color: #8a8a8a; margin-bottom: 14px; }
.captcha-display { font-size: 28px; font-weight: 700; letter-spacing: 8px; color: #c4522a; background: rgba(255,255,255,.5); padding: 10px; border-radius: 12px; margin-bottom: 14px; cursor: pointer; user-select: none; font-family: "Courier New", monospace; }
.captcha-display:hover { background: rgba(255,255,255,.7); }
.captcha-box input { width: 100%; padding: 10px 12px; font-size: 16px; border: 1px solid rgba(0,0,0,.15); border-radius: 12px; outline: none; text-align: center; letter-spacing: 4px; font-weight: 600; margin-bottom: 8px; background: rgba(255,255,255,.5); }
.captcha-box input:focus { border-color: #c4522a; }
.captcha-error { font-size: 12px; color: #e74c3c; min-height: 18px; margin-bottom: 6px; }
.captcha-buttons { display: flex; gap: 10px; }
.captcha-btn { flex: 1; padding: 9px 0; border: none; border-radius: 12px; font-size: 14px; cursor: pointer; transition: transform 0.25s cubic-bezier(.34,1.56,.64,1); }
.captcha-btn:hover { transform: scale(1.04); }
.captcha-btn.cancel { background: rgba(240, 237, 232, 0.7); color: #666; }
.captcha-btn.confirm { background: rgba(196, 82, 42, 0.75); color: #fff; }

/* ========== 浮动按钮 ========== */
.floating-service-btn {
    position: fixed; right: 24px; bottom: 88px;
    width: 52px; height: 52px; border-radius: 50%;
    background: rgba(44, 62, 80, 0.7); color: #fff;
    border: 1px solid rgba(44, 62, 80, 0.4);
    font-size: 24px; cursor: pointer; z-index: 100;
    transition: transform 0.25s cubic-bezier(.34,1.56,.64,1);
    display: flex; align-items: center; justify-content: center; line-height: 1;
    box-shadow: 0 8px 30px rgba(0,10,40,.2);
}
.floating-service-btn:hover { transform: translateY(-2px) scale(1.05); }

/* ★★★ 超级权限按钮 ★★★ */
.floating-super-btn {
    position: fixed; right: 24px; bottom: 152px;
    width: 52px; height: 52px; border-radius: 50%;
    background: rgba(255, 193, 7, 0.7); color: #fff;
    border: 1px solid rgba(255, 193, 7, 0.5);
    font-size: 24px; cursor: pointer; z-index: 100;
    transition: transform 0.25s cubic-bezier(.34,1.56,.64,1);
    display: flex; align-items: center; justify-content: center; line-height: 1;
    box-shadow: 0 8px 30px rgba(0,10,40,.2);
}
.floating-super-btn:hover { transform: translateY(-2px) scale(1.05); }

.floating-upload-btn {
    position: fixed; right: 24px; bottom: 24px;
    width: 52px; height: 52px; border-radius: 50%;
    background: rgba(196, 82, 42, 0.75); color: #fff;
    border: 1px solid rgba(196, 82, 42, 0.5);
    font-size: 28px; cursor: pointer; z-index: 100;
    transition: transform 0.25s cubic-bezier(.34,1.56,.64,1);
    display: flex; align-items: center; justify-content: center; line-height: 1;
    box-shadow: 0 8px 30px rgba(0,10,40,.2);
}
.floating-upload-btn:hover { transform: translateY(-2px) scale(1.05); }

/* ========== 聊天消息样式 ========== */
.chat-msg { margin-bottom: 10px; display: flex; flex-direction: column; }
.chat-msg-bot { align-items: flex-start; }
.chat-msg-bubble { background: rgba(255,255,255,.6); border: 1px solid rgba(255,255,255,.4); border-radius: 12px; padding: 10px 14px; font-size: 13px; line-height: 1.6; max-width: 85%; word-break: break-all; box-shadow: 0 2px 8px rgba(0,0,0,.05); }
.chat-options { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; width: 85%; }
.chat-option-btn { background: rgba(255,255,255,.5); border: 1px solid rgba(196, 82, 42, 0.5); color: #c4522a; border-radius: 12px; padding: 8px 12px; font-size: 13px; cursor: pointer; text-align: left; transition: all 0.25s cubic-bezier(.34,1.56,.64,1); }
.chat-option-btn:hover { background: rgba(196, 82, 42, 0.7); color: #fff; transform: scale(1.02); }
.chat-card { background: rgba(255,255,255,.6); border: 1px solid rgba(255,255,255,.4); border-radius: 12px; padding: 12px; font-size: 13px; line-height: 1.6; max-width: 85%; box-shadow: 0 2px 8px rgba(0,0,0,.05); }
.chat-card-title { font-weight: 600; margin-bottom: 6px; color: #2c2c2c; }
.chat-card-btn { background: rgba(196, 82, 42, 0.75); color: #fff; border: none; border-radius: 12px; padding: 6px 14px; font-size: 12px; cursor: pointer; margin-top: 8px; width: 100%; transition: transform 0.25s cubic-bezier(.34,1.56,.64,1); }
.chat-card-btn:hover { transform: scale(1.03); }

/* ========== 上传相关弹窗 ========== */
.upload-modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.6); z-index: 1000; align-items: center; justify-content: center; }
.upload-modal.active { display: flex; }
.upload-box { background: rgba(255, 255, 255, 0.75); backdrop-filter: blur(2px) saturate(170%); -webkit-backdrop-filter: blur(2px) saturate(170%); border-radius: 20px; padding: 24px; width: 340px; max-width: 90vw; text-align: center; box-shadow: 0 18px 50px rgba(0,10,40,.2); }
.upload-box h3 { font-size: 16px; margin-bottom: 10px; color: #2c2c2c; }
.upload-tip { font-size: 13px; color: #8a8a8a; margin-bottom: 6px; }
.upload-box input[type="password"], .upload-box input[type="text"] { width: 100%; padding: 10px 12px; font-size: 14px; border: 1px solid rgba(0,0,0,.15); border-radius: 12px; outline: none; margin-bottom: 10px; margin-top: 6px; background: rgba(255,255,255,.5); }
.upload-box input:focus { border-color: #c4522a; }
.upload-file-area { border: 2px dashed rgba(0,0,0,.2); border-radius: 16px; padding: 20px; cursor: pointer; transition: border-color 0.15s ease, background 0.15s ease; margin-bottom: 10px; font-size: 13px; color: #8a8a8a; background: rgba(255,255,255,.4); }
.upload-file-area:hover { border-color: #c4522a; background: rgba(255,255,255,.6); }
.upload-file-area.selected { border-color: #c4522a; color: #2c2c2c; }
.upload-progress { margin-bottom: 10px; }
.progress-bar { width: 100%; height: 8px; background: rgba(0,0,0,.1); border-radius: 4px; overflow: hidden; margin-bottom: 4px; }
.progress-fill { height: 100%; background: #c4522a; border-radius: 4px; width: 0%; transition: width 0.2s ease; }
.progress-text { font-size: 12px; color: #8a8a8a; }
.upload-error { font-size: 12px; color: #e74c3c; min-height: 18px; margin-bottom: 6px; }
.upload-success { font-size: 12px; color: #27ae60; min-height: 18px; margin-bottom: 6px; }
.upload-buttons { display: flex; gap: 10px; }
.upload-btn { flex: 1; padding: 9px 0; border: none; border-radius: 12px; font-size: 14px; cursor: pointer; transition: transform 0.25s cubic-bezier(.34,1.56,.64,1); }
.upload-btn:hover { transform: scale(1.03); }
.upload-btn.cancel { background: rgba(240, 237, 232, 0.7); color: #666; }
.upload-btn.confirm { background: rgba(196, 82, 42, 0.75); color: #fff; }

/* ========== 模块营地按钮 ========== */
#publicUploadBtn { background: rgba(196, 82, 42, 0.75) !important; color: #fff !important; border: 1px solid rgba(196, 82, 42, 0.5) !important; }
#publicFilesBtn { background: rgba(240, 237, 232, 0.7) !important; color: #666 !important; border: 1px solid rgba(0, 0, 0, 0.15) !important; }

/* ★★★ 标签按钮和标签显示 ★★★ */
.tag-btn {
    flex-shrink: 0;
    padding: 4px 10px;
    background: transparent;
    border: 1px solid rgba(255, 193, 7, 0.6);
    color: #d4a017;
    border-radius: 20px;
    font-size: 11px;
    cursor: pointer;
    transition: all 0.2s ease;
}
.tag-btn:hover { background: rgba(255, 193, 7, 0.15); transform: scale(1.05); }
.file-tag { display: inline-block; padding: 1px 8px; background: rgba(255, 193, 7, 0.2); color: #d4a017; border-radius: 10px; font-size: 10px; margin-left: 6px; }

/* ========== 邮箱弹窗 ========== */
.email-display { font-size: 16px; font-weight: 600; color: #c4522a; background: rgba(255,255,255,.5); padding: 12px; border-radius: 12px; margin-bottom: 14px; word-break: break-all; user-select: all; cursor: text; }

/* ========== 新手专区 ========== */
.beginner-widget { min-height: auto; }
.beginner-list { display: flex; flex-direction: column; }
.beginner-item { display: flex; align-items: center; gap: 8px; padding: 8px 0; text-decoration: none; color: var(--text); border-bottom: 1px dashed rgba(0,0,0,.08); font-size: 13px; transition: color 0.15s ease; cursor: pointer; }
.beginner-item:last-child { border-bottom: none; }
.beginner-item:hover { color: var(--accent); }
.beginner-icon { font-size: 15px; flex-shrink: 0; }
.beginner-text { flex: 1; }

/* ========================================
   手机端自适应（屏幕宽度 ≤ 768px）
   ======================================== */
@media (max-width: 768px) {
    html, body { width: 100%; overflow-x: hidden; }
    .blob { filter: blur(60px); opacity: 0.4; }
    .topbar { padding: 10px 0; }
    .topbar-inner { padding: 0 14px; gap: 8px; flex-wrap: wrap; }
    .logo { font-size: 16px; }
    .tagline { font-size: 11px; }
    .shop-nav-btn { padding: 5px 10px; font-size: 12px; }
    .container { width: 100%; padding: 14px 10px; }
    .layout { width: 100%; flex-direction: column; gap: 14px; }
    .sidebar { width: 100%; flex-direction: column; gap: 14px; }
    .widget { width: 100%; }
    .file-panel { width: 100%; order: -1; min-height: auto; border-radius: 16px; }
    .sidebar-left { order: 1; }
    .sidebar-right { order: 2; }
    .notice-widget { min-height: auto; max-height: 200px; flex: none; }
    .notice-list { max-height: 150px; }
    .contact-widget, .time-widget { min-height: auto; }
    .beginner-widget { min-height: auto; }
    .panel-header { padding: 12px 14px; }
    .panel-header h2 { font-size: 14px; }
    .file-count { font-size: 11px; padding: 2px 8px; }
    .search-box { margin: 10px 12px; padding: 7px 10px; }
    .search-box input { font-size: 14px; }
    .file-categories { padding: 8px 12px; gap: 6px; }
    .category-btn { padding: 4px 10px; font-size: 11px; }
    .file-row { padding: 10px 12px; gap: 8px; }
    .file-icon { width: 30px; height: 30px; font-size: 14px; border-radius: 6px; }
    .file-name { font-size: 12px; }
    .file-meta { font-size: 10px; }
    .download-btn { padding: 6px 12px; font-size: 11px; min-width: 44px; text-align: center; }
    .file-list { max-height: 400px; }
    .empty-state { padding: 30px 14px; font-size: 12px; }
    .contact-item { padding: 10px 0; font-size: 13px; }
    .contact-icon { font-size: 16px; }
    .footer { padding: 12px 10px; font-size: 11px; }
    .floating-service-btn { right: 16px; bottom: 76px; width: 46px; height: 46px; font-size: 20px; }
    .floating-super-btn { right: 16px; bottom: 132px; width: 46px; height: 46px; font-size: 20px; }
    .floating-upload-btn { right: 16px; bottom: 16px; width: 46px; height: 46px; font-size: 24px; }
}

/* ========================================
   超小屏幕（屏幕宽度 ≤ 380px）
   ======================================== */
@media (max-width: 380px) {
    .topbar-inner { flex-direction: column; gap: 2px; }
    .logo { font-size: 15px; }
    .tagline { font-size: 10px; }
    .shop-nav-btn { align-self: flex-start; }
    .file-row { padding: 8px 10px; gap: 6px; }
    .file-icon { width: 26px; height: 26px; font-size: 12px; }
    .file-name { font-size: 11px; }
    .file-meta { font-size: 9px; }
    .download-btn { padding: 5px 8px; font-size: 10px; min-width: 36px; }
    .widget { padding: 12px 14px; }
}