/* 热门软件资源站 · 奶油樱花主题（A 方案）· 移动优先窄列
   配色：樱花粉主色 + 香芋紫辅色 + 暖白底；支持跟随系统的夜间模式 */

:root{
  color-scheme:light;
  /* 主色系 */
  --primary:#F2789F;
  --primary-d:#E05F8B;
  --primary-l:#FFD5E1;
  --accent:#A78BD6;
  --accent-l:#E2D4F7;
  --deep:#5A3B4C;
  /* 表面 */
  --bg:#FFF8F6;
  --card:#FFFFFF;
  --card-2:#FFFAFB;
  --soft:#FFF1F5;
  --soft-2:#FDF3F6;
  /* 文字 */
  --text:#4A3F46;
  --text-2:#6E5A63;
  --muted:#9C8A92;
  /* 线与状态 */
  --line:#F3E1E7;
  --line-2:#EFC9D7;
  --green:#3FBF8F;
  --amber:#E8A90C;
  --red:#E5484D;
  /* 阴影 */
  --sh-soft:0 3px 12px rgba(224,95,139,.09);
  --sh-mid:0 6px 18px rgba(224,95,139,.16);
  --sh-strong:0 10px 26px rgba(224,95,139,.26);
  --ring:rgba(242,120,159,.16);
  /* 图标底彩 */
  --tint-1:#FFE9F0;
  --tint-2:#F0E9FC;
  --tint-3:#FFEFE4;
  --tint-4:#E4F5F0;
  --tint-5:#E6F0FC;
  --tint-6:#FDF3DA;
}

/* ===== 夜间模式（跟随系统） ===== */
@media (prefers-color-scheme:dark){
  :root{
    color-scheme:dark;
    --primary:#FF8FB4;
    --primary-d:#F2789F;
    --primary-l:#5E3446;
    --accent:#B79BE8;
    --accent-l:#3F3157;
    --deep:#2A1F28;
    --bg:#171216;
    --card:#231B23;
    --card-2:#261E28;
    --soft:#2C222C;
    --soft-2:#281F28;
    --text:#F3E9EE;
    --text-2:#D6C4CD;
    --muted:#A08D98;
    --line:#3A2D37;
    --line-2:#4B3743;
    --green:#4FCF9E;
    --amber:#F0B92E;
    --red:#FF6B6B;
    --sh-soft:0 3px 12px rgba(0,0,0,.45);
    --sh-mid:0 6px 18px rgba(0,0,0,.5);
    --sh-strong:0 10px 26px rgba(0,0,0,.58);
    --ring:rgba(255,143,180,.2);
    --tint-1:#3E2633;
    --tint-2:#332A4A;
    --tint-3:#3E2C26;
    --tint-4:#233B35;
    --tint-5:#233247;
    --tint-6:#3B3320;
  }
}

*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;transition:background .25s ease,color .25s ease;}
a{color:var(--primary);text-decoration:none;}
img{max-width:100%;}
.container{max-width:480px;margin:0 auto;padding:10px 14px 6px;}

/* 顶部悬浮公告胶囊 */
.announce-float{max-width:480px;margin:0 auto;padding:10px 14px 0;position:sticky;top:8px;z-index:45;}
.announce-bar{background:linear-gradient(135deg,var(--deep),#7A4A60);color:#FFE6EF;text-align:center;font-size:12.5px;line-height:1.5;padding:9px 18px;border-radius:999px;box-shadow:0 6px 18px rgba(90,59,76,.28);min-height:38px;display:flex;align-items:center;justify-content:center;}
.announce-item{display:none;}
.announce-item.active{display:block;}
.page-topbar{max-width:480px;margin:0 auto;padding:10px 14px 0;}
.page-back{display:inline-flex;align-items:center;background:var(--card);border:1.5px solid var(--line-2);border-radius:999px;padding:8px 17px;font-size:13px;font-weight:700;color:var(--primary-d);box-shadow:var(--sh-soft);}
.site-foot{max-width:480px;margin:20px auto 96px;padding:0 14px;text-align:center;color:var(--muted);font-size:12px;}

/* Hero：左文案 + 右深色热门卡 */
.hero{display:flex;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px 16px;box-shadow:var(--sh-mid);margin-top:12px;position:relative;overflow:hidden;}
.hero::after{content:"";position:absolute;right:-38px;top:-46px;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,rgba(255,201,216,.55),rgba(255,201,216,0) 70%);pointer-events:none;}
.hero-main{flex:1.15;min-width:0;display:flex;flex-direction:column;align-items:flex-start;position:relative;z-index:1;}
.hero-label{background:var(--soft);color:var(--primary-d);border:1px solid var(--primary-l);font-weight:700;padding:3px 10px;border-radius:999px;font-size:11.5px;}
.hero-main h1{font-size:33px;line-height:1.12;margin:10px 0 6px;font-weight:800;letter-spacing:-.6px;background:linear-gradient(135deg,var(--text),var(--primary-d) 88%);-webkit-background-clip:text;background-clip:text;color:transparent;}
.hero-main p{color:var(--text-2);font-size:12.5px;line-height:1.6;}
.hero-btn{display:inline-block;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-weight:700;padding:9px 22px;border-radius:999px;margin-top:14px;box-shadow:0 6px 16px rgba(242,120,159,.38);font-size:13.5px;}
.hero-stats{margin-top:11px;font-size:11px;color:var(--muted);line-height:1.6;}
.hero-hot{flex:1;background:linear-gradient(160deg,var(--deep),#6E4257);border-radius:18px;padding:12px;color:#fff;min-width:0;position:relative;z-index:1;}
.hero-hot-title{font-size:12.5px;font-weight:700;margin-bottom:8px;color:#FFDCE7;}
.hero-hot-item{display:flex;align-items:center;gap:7px;color:#fff;font-size:12.5px;padding:7px 8px;border-radius:11px;background:rgba(255,255,255,.09);margin-bottom:7px;}
.hero-hot-item:last-child{margin-bottom:0;}
.hero-hot-item .hot-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hero-hot-item em{font-style:normal;background:var(--red);color:#fff;font-size:10px;padding:2px 6px;border-radius:999px;white-space:nowrap;}

/* 首屏信任条 */
.trust-bar{display:flex;gap:8px;margin-top:12px;}
.trust-item{flex:1;min-width:0;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px 6px;text-align:center;box-shadow:var(--sh-soft);}
.trust-num{font-size:18px;font-weight:800;line-height:1.15;color:var(--primary-d);letter-spacing:-.4px;}
.trust-label{font-size:10.5px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* 流程步骤条 */
.flow-bar{display:flex;align-items:center;gap:5px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px 11px;margin-top:12px;box-shadow:var(--sh-soft);}
.flow-step{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--muted);white-space:nowrap;}
.flow-dot{width:18px;height:18px;flex:none;border-radius:50%;background:var(--soft);color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;}
.flow-step.done{color:var(--text-2);}
.flow-step.done .flow-dot{background:var(--accent-l);color:var(--accent);}
.flow-step.active{color:var(--primary-d);}
.flow-step.active .flow-dot{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;box-shadow:0 3px 9px rgba(242,120,159,.42);}
.flow-line{flex:1;height:2px;background:var(--line);border-radius:2px;min-width:6px;}

/* 搜索 */
.search-box{margin-top:20px;}
.search-title{font-weight:800;font-size:16.5px;margin-bottom:10px;letter-spacing:-.3px;}
.search-form{display:flex;gap:8px;align-items:center;}
.search-input-wrap{flex:1;display:flex;align-items:center;background:var(--card);border:1.5px solid var(--line-2);border-radius:999px;padding:0 6px 0 18px;min-width:0;box-shadow:var(--sh-soft);}
.search-input-wrap input{flex:1;border:0;outline:0;padding:13px 0;font-size:14px;background:transparent;min-width:0;color:var(--text);}
.search-input-wrap input::placeholder{color:var(--muted);}
.search-clear{border:0;background:var(--soft);color:var(--primary-d);width:28px;height:28px;border-radius:50%;font-size:16px;line-height:1;cursor:pointer;flex:none;display:flex;align-items:center;justify-content:center;}
.search-form>button{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;border:0;padding:13px 18px;border-radius:999px;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap;box-shadow:0 6px 14px rgba(242,120,159,.32);}

/* 分类胶囊 */
.cat-row{display:flex;gap:8px;overflow-x:auto;padding:16px 2px 6px;scrollbar-width:none;}
.cat-row::-webkit-scrollbar{display:none;}
.cat-btn{white-space:nowrap;border:1.5px solid var(--line-2);background:var(--card);color:var(--text-2);padding:8px 16px;border-radius:999px;cursor:pointer;font-size:13px;font-weight:600;transition:all .18s ease;}
.cat-btn.active{background:linear-gradient(135deg,var(--primary),var(--accent));border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(242,120,159,.34);font-weight:700;}

/* 资源列表 */
.list-title{font-size:18.5px;font-weight:800;margin:14px 0 12px;display:flex;align-items:baseline;gap:8px;letter-spacing:-.3px;}
.list-title small{color:var(--muted);font-size:12px;font-weight:400;}
.card-list{display:flex;flex-direction:column;gap:11px;}

.card{position:relative;display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:13px;box-shadow:var(--sh-soft);transition:transform .16s ease,box-shadow .16s ease;}
.card:active{transform:scale(.985);box-shadow:var(--sh-mid);}
.card-icon{width:56px;height:56px;flex:none;background:var(--soft);border-radius:17px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.card-icon.t1{background:var(--tint-1);}
.card-icon.t2{background:var(--tint-2);}
.card-icon.t3{background:var(--tint-3);}
.card-icon.t4{background:var(--tint-4);}
.card-icon.t5{background:var(--tint-5);}
.card-icon.t6{background:var(--tint-6);}
.card-icon-emoji,.detail-icon-emoji{font-size:32px;line-height:1;}
.card-icon-img,.detail-icon-img{width:56px;height:56px;border-radius:17px;object-fit:cover;}
.mini-icon{width:22px;height:22px;flex:none;background:var(--soft);border-radius:7px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.mini-icon-emoji{font-size:13px;line-height:1;}
.mini-icon-img{width:22px;height:22px;border-radius:7px;object-fit:cover;}
.card-info{flex:1;min-width:0;}
.card-name-row{display:flex;align-items:center;gap:6px;min-width:0;}
.card-name{font-weight:800;font-size:15.5px;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.card-badge{flex:none;font-size:9.5px;font-weight:800;padding:2px 6px;border-radius:6px;letter-spacing:.2px;line-height:1.5;}
.card-badge.new{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;}
.card-badge.hot{background:var(--soft);color:var(--primary-d);border:1px solid var(--primary-l);}
.tag{display:inline-block;background:var(--soft);color:var(--primary-d);font-size:10.5px;font-weight:600;padding:2.5px 8px;border-radius:999px;margin:4px 4px 0 0;border:1px solid var(--line);}
.card-foot{display:flex;align-items:center;gap:7px;margin-top:5px;font-size:11px;color:var(--muted);font-weight:600;min-width:0;}
.card-foot .cf-rate{color:var(--amber);}
.card-foot .cf-dot{width:2.5px;height:2.5px;border-radius:50%;background:var(--line-2);flex:none;}
.card-foot .cf-size{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.card-meta{color:var(--amber);font-size:12px;margin-top:4px;font-weight:600;}
.btn-get{flex:none;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-weight:800;padding:9px 16px;border-radius:999px;white-space:nowrap;box-shadow:0 5px 14px rgba(242,120,159,.34);font-size:13px;letter-spacing:.1px;}
.btn-get:active{transform:scale(.96);}

/* 通用按钮 */
.btn-main{display:inline-block;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;border:0;font-weight:800;padding:12px 22px;border-radius:999px;font-size:15px;cursor:pointer;margin:6px 6px 6px 0;box-shadow:0 6px 16px rgba(242,120,159,.32);text-align:center;}
.btn-main[disabled]{background:var(--soft);color:var(--muted);border:1.5px solid var(--line-2);box-shadow:none;cursor:not-allowed;}
.btn-ghost{display:inline-block;background:var(--card);color:var(--primary-d);border:1.5px solid var(--line-2);padding:11px 18px;border-radius:999px;font-size:14px;font-weight:700;cursor:pointer;margin:6px 6px 6px 0;}
.btn-ghost.btn-center{display:block;width:max-content;max-width:100%;margin:10px auto 0;}
.btn-gradient{display:block;width:100%;background:linear-gradient(135deg,var(--primary),#C98FD0,var(--accent));color:#fff;font-weight:800;font-size:16.5px;padding:15px 20px;border-radius:999px;text-align:center;box-shadow:0 10px 24px rgba(242,120,159,.38);margin:10px 0 4px;border:0;cursor:pointer;letter-spacing:.3px;}
.btn-gradient:active{transform:scale(.985);}
.empty{color:var(--muted);text-align:center;padding:18px;font-size:13px;}

/* 详情页：柔和光晕背景 + 独立悬浮卡片 */
body.detail-page{background:radial-gradient(circle at 12% 4%,rgba(255,201,216,.62) 0,rgba(255,201,216,0) 42%),radial-gradient(circle at 92% 28%,rgba(226,212,247,.55) 0,rgba(226,212,247,0) 40%),linear-gradient(180deg,#FFF1F5 0%,#FFF7F4 48%,var(--bg) 100%);background-attachment:fixed;}
@media (prefers-color-scheme:dark){
  body.detail-page{background:radial-gradient(circle at 12% 4%,rgba(120,50,80,.55) 0,rgba(120,50,80,0) 42%),radial-gradient(circle at 92% 28%,rgba(90,70,140,.45) 0,rgba(90,70,140,0) 40%),linear-gradient(180deg,#1C151B 0%,#171216 60%,#171216 100%);}
}
.detail{background:var(--card);border-radius:20px;padding:18px 16px 20px;box-shadow:var(--sh-soft);margin-top:10px;}
body.detail-page .detail{background:transparent;border-radius:0;padding:0;box-shadow:none;margin-top:4px;}
.detail-summary{background:var(--card);border:1.5px solid var(--line);border-radius:22px;padding:18px 16px;box-shadow:var(--sh-mid);}
.detail h1{font-size:21px;font-weight:800;letter-spacing:-.3px;}
.detail-head{display:flex;gap:12px;align-items:center;}
.detail-icon{width:66px;height:66px;flex:none;background:var(--soft);border-radius:18px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.detail-icon-emoji{font-size:36px;}
.detail-icon-img{width:66px;height:66px;border-radius:18px;}
.detail-desc{margin:12px 0 2px;color:var(--text-2);font-size:14px;line-height:1.7;}
.detail-sub{color:var(--muted);font-size:12.5px;margin:6px 0 12px;line-height:1.6;}
.notice-box{background:linear-gradient(var(--card),var(--card)) padding-box,linear-gradient(135deg,var(--primary),var(--accent),var(--primary)) border-box;border:2px solid transparent;border-radius:20px;padding:16px;margin:20px 0 0;text-align:center;box-shadow:var(--sh-mid);}
.notice-title{color:var(--primary-d);font-size:16.5px;font-weight:800;line-height:1.55;}
.notice-box p{color:var(--text-2);font-size:12.5px;line-height:1.7;margin-top:5px;}
.step{position:relative;background:var(--card);border:1.5px solid var(--line);border-radius:24px;padding:20px 16px 18px;margin-top:24px;box-shadow:var(--sh-mid);}
.js-reveal [data-reveal]{opacity:0;transform:translateY(36px) scale(.98);transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1);}
.js-reveal [data-reveal].is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .js-reveal [data-reveal]{opacity:1;transform:none;transition:none;}
}
.step-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.step-no{display:inline-block;flex:none;font-size:13px;font-weight:800;letter-spacing:.04em;color:var(--primary-d);background:var(--soft);border:1px solid var(--primary-l);border-radius:999px;padding:4px 12px;}
.step-head h2{flex:1;min-width:0;margin:0;}
.step h2{font-size:16px;font-weight:800;line-height:1.45;letter-spacing:-.2px;}
.step-textbox{background:var(--soft-2);border:1.5px solid var(--line);border-radius:14px;padding:10px 12px;margin-top:10px;}
.step p{font-size:14px;line-height:1.75;color:var(--text-2);}
.step.step-center > p{text-align:center;}
.step-hint{font-size:12.5px;color:var(--muted);margin-top:10px;line-height:1.7;text-align:center;}
.platform-row{display:flex;justify-content:center;gap:26px;margin:8px 0 2px;}
.platform-btn{display:flex;flex-direction:column;align-items:center;gap:7px;background:none;border:0;cursor:pointer;font-family:inherit;transition:transform .2s ease;}
.platform-btn .platform-name{font-size:13px;font-weight:700;color:var(--text);}
.platform-icon{display:block;width:64px;height:64px;border-radius:16px;filter:drop-shadow(0 6px 12px rgba(0,0,0,.14));}
.platform-btn:active{transform:scale(.95);}
.copy-pill{display:block;margin:14px auto 0;background:var(--card);border:1.5px solid var(--primary-l);color:var(--primary-d);font-weight:800;font-size:14px;padding:9px 26px;border-radius:999px;cursor:pointer;}
.share-text{width:100%;border:1.5px solid var(--line);border-radius:14px;padding:13px 14px;font-size:14px;line-height:1.7;background:var(--soft-2);color:var(--text-2);resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,"PingFang SC",monospace;}
.copy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px;align-items:stretch;}
.copy-card{display:flex;flex-direction:column;gap:6px;min-width:0;padding:8px;background:var(--card-2);border:1.5px solid var(--line);border-radius:16px;box-shadow:var(--sh-soft);}
.copy-field-head{font-size:10.5px;font-weight:800;color:var(--muted);line-height:1.4;}
.copy-grid .share-text{width:100%;min-height:34px;height:auto;padding:8px;font-size:12px;line-height:1.5;border-radius:11px;resize:none;overflow:hidden;word-break:break-word;flex:0 0 auto;}
.copy-grid .copy-pill{width:100%;margin:auto 0 0;padding:7px 2px;font-size:11px;font-weight:800;line-height:1.2;white-space:nowrap;}
.copy-row{display:flex;gap:10px;margin-top:12px;}
.copy-row .btn-main{flex:1;margin:0;}
.example-fig{margin-top:14px;text-align:center;}
.example-fig img{width:min(100%,300px);border-radius:16px;border:1.5px solid var(--line);box-shadow:var(--sh-soft);}
.example-fig figcaption{font-size:12px;color:var(--muted);margin-top:7px;}

/* 提交页 */
.upload-zone{display:block;border:2px dashed var(--line-2);border-radius:18px;padding:26px 12px;text-align:center;color:var(--primary-d);cursor:pointer;font-size:14px;background:var(--soft-2);line-height:1.7;transition:border-color .18s ease,background .18s ease;}
.upload-zone:active{border-color:var(--primary);background:var(--soft);}
.upload-zone input{display:block;margin:12px auto 0;font-size:13px;}
.upload-icon{font-size:32px;display:block;margin-bottom:6px;}
.preview-grid{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
.preview-grid img{width:92px;height:92px;object-fit:cover;border-radius:12px;border:1.5px solid var(--line);}
.upload-count{margin:10px 0 2px;font-size:13px;color:var(--text-2);font-weight:700;text-align:center;}
.rules{margin:12px 0 4px;list-style:none;font-size:12.5px;color:var(--text-2);line-height:1.9;background:var(--soft-2);border:1.5px solid var(--line);border-radius:14px;padding:10px 14px;}
.submit-form .btn-gradient[disabled]{background:var(--soft);color:var(--muted);border:1.5px solid var(--line-2);box-shadow:none;cursor:not-allowed;}
.privacy{font-size:12px;color:var(--muted);margin-top:10px;text-align:center;}
.success-box{background:var(--soft);border:1.5px solid var(--line-2);border-radius:16px;padding:16px;margin:12px 0;line-height:1.75;font-size:14px;}
.success-box h2{font-size:17px;margin-bottom:6px;}
.auto-review{text-align:center;padding:32px 16px 20px;background:var(--soft-2);border:1.5px solid var(--line);border-radius:16px;margin:12px 0;}
.auto-review h2{font-size:18px;font-weight:800;margin:8px 0 6px;}
.auto-review p{color:var(--text-2);font-size:14px;}
.spinner{width:48px;height:48px;margin:0 auto 12px;border:4px solid var(--line);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.error-box{background:var(--soft-2);border:1.5px solid var(--red);color:var(--red);border-radius:14px;padding:11px 14px;margin:10px 0;font-size:13.5px;}

/* 状态 / 领取 */
.status-card{background:var(--card);border:1.5px solid var(--line);border-left:5px solid var(--amber);border-radius:14px;padding:14px;margin:12px 0;line-height:1.85;font-size:14px;box-shadow:var(--sh-soft);}
.status-card.st-approved{border-left-color:var(--green);}
.status-card.st-rejected{border-left-color:var(--red);}
.status-item-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:8px;}
.status-order-head{display:flex;gap:12px;align-items:center;margin-bottom:10px;}
.status-item-head .card-icon{width:46px;height:46px;border-radius:13px;}
.status-item-head .card-icon-emoji{font-size:25px;}
.status-item-head .card-icon-img{width:46px;height:46px;border-radius:13px;}
.status-item-name{font-weight:800;font-size:15px;color:var(--text);line-height:1.4;}
.status-item-desc{font-size:12.5px;color:var(--muted);line-height:1.6;margin:3px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.status-order-box{background:var(--card-2);border:1.5px solid var(--line);border-radius:14px;padding:12px;}
.order-uuid-row{display:flex;align-items:center;gap:12px;margin:2px 0 6px;}
.order-uuid-row .order-line{flex:1;min-width:0;margin:0;overflow-wrap:anywhere;word-break:break-all;}
.status-order-info{flex:1;min-width:0;position:relative;}
.status-order-info .status-item-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
/* 红色印章 */
.ok-stamp{position:absolute;right:2px;top:50%;transform:translateY(-50%) rotate(-12deg);color:var(--red);border:3px solid var(--red);border-radius:10px;box-shadow:inset 0 0 0 1px rgba(229,72,77,.35);padding:2px 10px;font-size:19px;font-weight:800;letter-spacing:4px;line-height:1.5;background:rgba(229,72,77,.06);opacity:.9;pointer-events:none;white-space:nowrap;}
.ok-stamp.stamp-anim{animation:stamp-in .55s cubic-bezier(.25,1.5,.45,1) .3s both;}
@keyframes stamp-in{0%{opacity:0;transform:translateY(-50%) rotate(-25deg) scale(2.4);}55%{opacity:1;transform:translateY(-50%) rotate(-12deg) scale(.9);}75%{transform:translateY(-50%) rotate(-12deg) scale(1.06);}100%{opacity:.9;transform:translateY(-50%) rotate(-12deg) scale(1);}}
@media (prefers-reduced-motion: reduce){.ok-stamp.stamp-anim{animation:none;opacity:.9;}}
.ok-stamp.st-pending{color:var(--amber);border-color:var(--amber);box-shadow:inset 0 0 0 1px rgba(232,169,12,.35);background:rgba(232,169,12,.08);}
.ok-stamp.st-rejected{color:var(--red);}
.status-item-info{position:relative;flex:1;min-width:0;}
.order-line{margin:4px 0;font-size:13.5px;}
/* 重复提交弹窗提示 */
.dup-modal{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;background:rgba(40,20,32,.5);padding:20px;}
.dup-modal[hidden]{display:none;}
.dup-modal-box{background:var(--card);border-radius:20px;max-width:320px;width:100%;padding:24px 20px;text-align:center;box-shadow:0 16px 44px rgba(0,0,0,.3);animation:dup-pop .3s cubic-bezier(.22,1.2,.36,1) both;}
.dup-modal-icon{font-size:38px;line-height:1;}
.dup-modal-text{margin:12px 0 16px;font-size:14.5px;font-weight:700;color:var(--text);line-height:1.7;}
.dup-modal-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
@keyframes dup-pop{from{transform:scale(.7);opacity:0;}to{transform:scale(1);opacity:1;}}
.btn-order{display:inline-block;background:var(--deep);color:#fff;border:0;font-weight:700;padding:11px 18px;border-radius:999px;font-size:14px;cursor:pointer;margin:6px 6px 0 0;}
.status-badge{display:inline-block;font-size:11px;font-weight:700;padding:2.5px 10px;border-radius:999px;margin-left:8px;color:#fff;line-height:1.5;vertical-align:2px;white-space:nowrap;}
.status-badge.ok{background:var(--green);}
.status-badge.pending{background:var(--amber);}
.status-badge.rejected{background:var(--red);}
.status-empty-link{font-size:12.5px;color:var(--muted);margin:4px 0 0;}
.claim-sec{font-size:16px;font-weight:800;margin:18px 0 10px;color:var(--primary-d);}
.claim-list{display:flex;flex-direction:column;gap:10px;}
.claim-link{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;padding:15px 18px;border-radius:14px;font-weight:800;box-shadow:0 6px 16px rgba(242,120,159,.3);}
.claim-link em{font-style:normal;background:rgba(255,255,255,.28);font-size:11px;padding:3px 9px;border-radius:999px;}

/* 工具箱浮钮、卫星按钮与弹窗 */
body.modal-lock{overflow:hidden;}
.tool-dock{position:fixed;right:18px;bottom:24px;width:58px;height:58px;z-index:50;}
.tool-fab,.chat-fab{position:absolute;right:0;bottom:0;width:58px;height:58px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;border:0;border-radius:50%;box-shadow:0 8px 22px rgba(242,120,159,.45);cursor:pointer;z-index:3;display:flex;align-items:center;justify-content:center;transition:transform .28s cubic-bezier(.22,1,.36,1),background .2s ease,box-shadow .2s ease;}
.tool-dock.is-open .tool-fab{transform:scale(.94) rotate(12deg);background:var(--primary-d);}
.tool-sat{position:absolute;right:5px;bottom:5px;width:48px;height:48px;border:0;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transform:scale(.35);transition:transform .34s cubic-bezier(.22,1,.36,1),opacity .22s ease;z-index:2;}
.tool-sat-chat,.tool-sat-status{background:linear-gradient(135deg,var(--primary),var(--accent));box-shadow:0 8px 18px rgba(242,120,159,.4);}
.tool-dock.is-open .tool-sat{opacity:1;pointer-events:auto;}
.tool-dock.is-open .tool-sat-chat{transform:translate(-66px,-10px) scale(1);}
.tool-dock.is-open .tool-sat-status{transform:translate(-16px,-70px) scale(1);}
.modal-overlay{position:fixed;inset:0;background:rgba(40,20,32,.42);z-index:55;opacity:0;pointer-events:none;transition:opacity .28s ease;}
.modal-overlay.is-open{opacity:1;pointer-events:auto;}
.chat-panel,.status-panel{position:fixed;left:50%;top:50%;width:min(92vw,420px);max-height:84vh;background:var(--card);border-radius:20px;box-shadow:0 12px 44px rgba(0,0,0,.3);z-index:60;display:flex;flex-direction:column;overflow:hidden;opacity:0;pointer-events:none;transform:translate(-50%,-42%) scale(.86);transition:opacity .34s cubic-bezier(.22,1,.36,1),transform .34s cubic-bezier(.22,1,.36,1);}
.chat-panel.is-open,.status-panel.is-open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1);}
.chat-head{display:flex;justify-content:space-between;align-items:flex-start;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;padding:13px 15px;}
.chat-title{font-weight:800;}
.chat-sub{font-size:11px;opacity:.9;margin-top:2px;}
.chat-close{background:transparent;border:0;color:#fff;font-size:24px;cursor:pointer;line-height:1;}
.chat-quick{display:flex;gap:6px;flex-wrap:wrap;padding:9px;border-bottom:1px solid var(--line);}
.chat-q{border:1.5px solid var(--line-2);background:var(--card);color:var(--primary-d);border-radius:999px;padding:6px 11px;font-size:12px;cursor:pointer;font-weight:600;}
.chat-body{padding:10px;overflow-y:auto;height:300px;background:var(--soft-2);}
.chat-msg{margin:8px 0;max-width:85%;padding:9px 12px;border-radius:14px;font-size:14px;line-height:1.55;white-space:pre-wrap;word-break:break-word;}
.chat-msg.user{background:#E7DEF8;color:#3B2C55;margin-left:auto;}
.chat-msg.bot{background:var(--card);border:1px solid var(--line);}
.chat-msg .auto-tag{display:block;font-size:10px;color:var(--muted);margin-bottom:2px;}
.chat-msg img{max-width:160px;border-radius:8px;display:block;}
.chat-input{display:flex;gap:6px;padding:9px;border-top:1px solid var(--line);align-items:center;}
.chat-input input[type=text]{flex:1;padding:10px 12px;border:1px solid var(--line-2);border-radius:999px;min-width:0;background:var(--card);color:var(--text);}
.chat-input button{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;border:0;border-radius:999px;padding:10px 17px;cursor:pointer;font-weight:700;}
.chat-img-btn{color:var(--primary-d);font-size:13px;cursor:pointer;white-space:nowrap;}
.chat-note{font-size:11px;color:var(--muted);padding:0 10px 9px;}
.status-query{display:flex;gap:8px;padding:10px;border-bottom:1px solid var(--line);align-items:center;}
.status-query input{flex:1;padding:10px 12px;border:1px solid var(--line-2);border-radius:999px;min-width:0;font-size:13px;background:var(--card);color:var(--text);}
.status-query button{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;border:0;border-radius:999px;padding:10px 16px;font-weight:700;cursor:pointer;white-space:nowrap;}
.status-panel-body{padding:10px 12px 14px;overflow-y:auto;max-height:52vh;background:var(--soft-2);}
.status-panel-body .status-card{margin:8px 0;}
@media (prefers-reduced-motion:reduce){
  .tool-fab,.tool-sat,.chat-panel,.status-panel,.modal-overlay{transition:none;}
  .tool-dock.is-open .tool-fab{transform:none;}
}

/* 后台（沿用同一套配色，管理台仅桌面使用） */
body.admin{background:#FBF6F8;}
.admin-nav{display:flex;gap:14px;flex-wrap:wrap;align-items:center;background:var(--deep);color:#fff;padding:10px 16px;}
.admin-nav a{color:#FFDCE7;font-size:14px;}
.admin-user{margin-left:auto;color:#F5A8C2;font-size:13px;}
.admin-main{max-width:980px;margin:0 auto;padding:16px;}
.admin-main h1{font-size:20px;margin-bottom:14px;}
.admin-form{background:var(--card);border-radius:12px;padding:16px;margin-bottom:18px;display:flex;flex-direction:column;gap:10px;}
.admin-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-2);}
.admin-form label.inline{flex-direction:row;align-items:center;gap:6px;}
.admin-form input,.admin-form select,.admin-form textarea{padding:9px;border:1px solid var(--line-2);border-radius:8px;font-size:14px;background:var(--card);color:var(--text);}
.admin-table{width:100%;border-collapse:collapse;background:var(--card);border-radius:12px;overflow:hidden;font-size:13px;}
.admin-table th,.admin-table td{border-bottom:1px solid var(--line);padding:8px;text-align:left;vertical-align:top;}
.ops{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.ops form{display:inline;}
.ops button{cursor:pointer;border:1px solid var(--line-2);background:var(--card);border-radius:8px;padding:5px 10px;color:var(--text);}
.url-cell{word-break:break-all;max-width:260px;}
.stat-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.stat-card{background:var(--card);border-radius:12px;padding:14px 18px;text-align:center;box-shadow:var(--sh-soft);}
.stat-card strong{display:block;font-size:22px;color:var(--primary);}
.stat-card span{font-size:12px;color:var(--muted);}
.login-box{max-width:360px;margin:10vh auto;background:var(--card);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:12px;}
.login-box form{display:flex;flex-direction:column;gap:10px;}
.login-box label{display:flex;flex-direction:column;gap:4px;font-size:13px;}
.login-box input{padding:10px;border:1px solid var(--line-2);border-radius:8px;}
.review-card{background:var(--card);border-radius:12px;padding:14px;margin-bottom:12px;}
.review-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--text-2);margin-bottom:10px;}
.review-imgs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.review-imgs img{width:120px;height:120px;object-fit:cover;border-radius:8px;border:1px solid var(--line);}

@media (max-width:380px){
  .hero-main h1{font-size:28px;}
  .hero{gap:10px;padding:14px 12px;}
  .btn-get{padding:9px 13px;font-size:12.5px;}
  .flow-step{font-size:10px;}
  .flow-dot{width:16px;height:16px;font-size:9px;}
}

/* ---- 领取成功页 ---- */
.claim-page{text-align:center;padding-top:6px;}
.claim-page .ok-stamp{position:static;display:inline-block;transform:none;margin:6px auto 4px;letter-spacing:3px;}
.claim-head{display:flex;align-items:center;gap:14px;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;margin:14px 0 8px;box-shadow:var(--sh-soft);}
.claim-head h1{font-size:19px;margin:0 0 4px;}
.claim-success{position:relative;overflow:hidden;background:linear-gradient(150deg,var(--soft),var(--card) 70%);border:1px dashed var(--line-2);border-radius:18px;padding:26px 16px;margin:14px 0;}
.claim-success-icon{font-size:44px;line-height:1;margin-bottom:8px;display:inline-block;animation:fx-pop .62s cubic-bezier(.25,1.4,.4,1) both;}
@keyframes fx-pop{0%{transform:scale(.3);opacity:0;}60%{transform:scale(1.16);}100%{transform:scale(1);opacity:1;}}
.claim-success h2{font-size:19px;margin:0 0 6px;color:var(--text);}
.claim-success p{font-size:13.5px;color:var(--muted);margin:0;line-height:1.7;}
.btn-claim{font-size:17px;padding:17px 20px;margin:18px 0 6px;}
.claim-page .btn-center{margin:10px auto 0;}

/* 成功撒花（纯 CSS，轻量，无依赖） */
.fx-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;}
.fx-confetti i{position:absolute;top:-16px;width:7px;height:11px;border-radius:2px;opacity:0;animation:fx-fall 2.1s cubic-bezier(.32,.72,.42,1) forwards;}
@keyframes fx-fall{
  0%{opacity:0;transform:translateY(-14px) rotate(0deg);}
  10%{opacity:1;}
  72%{opacity:.92;}
  100%{opacity:0;transform:translateY(190px) rotate(360deg);}
}
@media (prefers-reduced-motion:reduce){
  .fx-confetti{display:none;}
  .claim-success-icon{animation:none;}
}

/* ============================================================
   进入页「壳」：通道选择层
   全屏覆盖在站点之上，用户选完通道才进入资源列表。
   所有颜色取自上面的主题变量，夜间模式自动跟随。
   ============================================================ */
.shell-gate{
  position:fixed;inset:0;z-index:2000;
  display:flex;flex-direction:column;align-items:center;
  overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  padding:calc(22px + env(safe-area-inset-top)) 18px calc(20px + env(safe-area-inset-bottom));
  background:var(--bg);
  animation:shellIn .32s cubic-bezier(.22,.9,.32,1) both;
}
@keyframes shellIn{from{opacity:0;}to{opacity:1;}}
/* 背景柔光球，营造奶油质感 */
.shell-gate::before,
.shell-gate::after{content:"";position:fixed;border-radius:50%;pointer-events:none;z-index:0;}
.shell-gate::before{top:-150px;right:-130px;width:360px;height:360px;background:radial-gradient(circle,rgba(242,120,159,.24),transparent 68%);}
.shell-gate::after{bottom:-170px;left:-140px;width:380px;height:380px;background:radial-gradient(circle,rgba(167,139,214,.22),transparent 68%);}
.shell-gate.leaving{animation:shellOut .26s ease forwards;pointer-events:none;}
@keyframes shellOut{to{opacity:0;transform:scale(.985);}}

.shell-panel{position:relative;z-index:1;width:100%;max-width:400px;margin:auto;text-align:center;}

.shell-emblem{
  position:relative;width:66px;height:66px;margin:0 auto 10px;border-radius:23px;
  display:flex;align-items:center;justify-content:center;font-size:31px;line-height:1;
  background:linear-gradient(140deg,var(--primary),var(--accent));
  box-shadow:0 12px 28px rgba(242,120,159,.34),inset 0 1px 0 rgba(255,255,255,.4);
  animation:shellPop .5s cubic-bezier(.25,1.3,.4,1) both;
}
.shell-emblem::after{
  content:"";position:absolute;inset:-9px;border-radius:32px;
  border:1.5px solid var(--line-2);opacity:.7;
  animation:shellRing 2.8s ease-in-out infinite;
}
@keyframes shellPop{from{transform:scale(.6) rotate(-8deg);opacity:0;}to{transform:none;opacity:1;}}
@keyframes shellRing{0%,100%{transform:scale(1);opacity:.55;}50%{transform:scale(1.06);opacity:.95;}}

.shell-badge{
  display:inline-flex;align-items:center;gap:5px;margin-bottom:7px;
  padding:4px 12px;border-radius:999px;
  background:var(--soft);border:1px solid var(--line-2);
  color:var(--primary-d);font-size:11.5px;font-weight:800;
}
.shell-title{font-size:23px;font-weight:900;letter-spacing:-.4px;line-height:1.3;color:var(--text);margin:0 0 7px;}
.shell-sub{font-size:13.5px;line-height:1.65;color:var(--muted);margin:0;}
.shell-proof{
  display:inline-flex;align-items:center;gap:6px;margin-top:12px;
  padding:6px 14px;border-radius:999px;
  background:var(--card);border:1px solid var(--line);
  color:var(--text-2);font-size:12px;font-weight:700;box-shadow:var(--sh-soft);
}
.shell-proof b{color:var(--primary-d);font-weight:900;}

.shell-cards{display:flex;flex-direction:column;gap:10px;margin-top:16px;}
.shell-card{
  position:relative;text-align:left;padding:14px 15px 12px;
  border-radius:20px;background:var(--card);border:1.5px solid var(--line);
  box-shadow:var(--sh-soft);
  animation:shellUp .42s cubic-bezier(.22,.9,.32,1) both;
}
.shell-card:nth-child(1){animation-delay:.06s;}
.shell-card:nth-child(2){animation-delay:.13s;}
.shell-card:nth-child(3){animation-delay:.2s;}
@keyframes shellUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}

.shell-card.primary{
  border-color:var(--line-2);
  background:linear-gradient(158deg,var(--soft) 0%,var(--card) 58%);
  box-shadow:var(--sh-mid);
}
.shell-card-head{display:flex;align-items:center;gap:10px;}
.shell-card-ico{
  flex:none;width:42px;height:42px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;font-size:21px;line-height:1;
  background:var(--soft);border:1px solid var(--line);
}
.shell-card.primary .shell-card-ico{
  background:linear-gradient(140deg,var(--primary),var(--accent));
  border:0;box-shadow:0 6px 16px rgba(242,120,159,.32);
}
.shell-card-t{font-size:16.5px;font-weight:800;color:var(--text);line-height:1.35;}
.shell-card-tag{
  display:inline-block;margin-left:6px;vertical-align:1px;
  padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:800;
  background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;
}
.shell-card-d{font-size:12.6px;line-height:1.6;color:var(--muted);margin:7px 0 10px;}

.shell-btn{
  width:100%;padding:11px 14px;border:0;border-radius:12px;
  font-size:15px;font-weight:800;font-family:inherit;cursor:pointer;
  transition:transform .14s ease,box-shadow .14s ease,opacity .14s ease;
}
.shell-btn:active{transform:scale(.975);}
.shell-btn.primary{
  background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;
  box-shadow:0 7px 18px rgba(242,120,159,.32);
}
.shell-btn.ghost{
  background:var(--soft);color:var(--primary-d);border:1px solid var(--line-2);
}
.shell-btn[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none;}

.shell-note{font-size:11.8px;line-height:1.75;color:var(--muted);margin:12px 0 0;white-space:pre-line;}
.shell-skip{
  margin-top:10px;padding:8px;border:0;background:none;
  color:var(--muted);font-size:12px;font-family:inherit;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;
}
.shell-skip:hover{color:var(--primary-d);}

/* 进站后的「返回通道选择」小胶囊 */
.shell-back{
  position:fixed;left:12px;top:calc(12px + env(safe-area-inset-top));z-index:900;
  display:inline-flex;align-items:center;gap:4px;
  padding:8px 13px;border:1px solid var(--line);border-radius:999px;
  background:var(--card);color:var(--text-2);
  font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer;
  box-shadow:var(--sh-soft);
  animation:shellUp .3s ease both;
}
.shell-back:active{transform:scale(.96);}
.shell-back:hover{color:var(--primary-d);border-color:var(--line-2);}

body.shell-open{overflow:hidden;}
body.shell-open .fb-float{display:none;}
/* 顶部留出「返回通道选择」胶囊的位置，避免压住顶部公告条 */
body.has-shell-back .announce-float{padding-top:46px;}

@media (max-width:380px){
  .shell-title{font-size:21px;}
  .shell-emblem{width:64px;height:64px;font-size:30px;border-radius:22px;}
  .shell-card{padding:14px 14px 12px;border-radius:17px;}
  .shell-card-ico{width:38px;height:38px;font-size:19px;}
  .shell-card-t{font-size:15.5px;}
}
@media (prefers-reduced-motion:reduce){
  .shell-gate,.shell-card,.shell-emblem,.shell-back{animation:none!important;}
  .shell-emblem::after{animation:none;}
}
