/* ==================== 云舟软件站 V3 · 浅色参考站风（白底 + 紫渐变） ==================== */
:root{
  --bg1:#ffffff; --bg2:#eef0ff; --bg3:#f6f3ff;
  --c1:#6366f1; --c2:#8b5cf6; --c3:#ec4899;
  --text:#1e1b4b; --text2:#4a4a7a; --muted:#8b8fa8;
  --line:rgba(99,102,241,.16);
  --glass:rgba(255,255,255,.72);
  --glass2:rgba(99,102,241,.04);
  --r:20px; --rs:12px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;
  color:var(--text);min-height:100vh;
  background:linear-gradient(160deg,#ffffff 0%,#eef2ff 40%,#f4f1ff 100%);
  background-attachment:fixed;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
.bg-glow{position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(700px 420px at 15% -5%, rgba(139,92,246,.10), transparent 62%),
             radial-gradient(600px 400px at 88% 8%, rgba(236,72,153,.08), transparent 62%);
}
.grad-text{background:linear-gradient(120deg,var(--c1),var(--c2) 40%,var(--c3) 78%,var(--c1));background-size:280% 280%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:shimmer 8s ease infinite}
@keyframes shimmer{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}

.page{max-width:1020px;margin:0 auto;padding:18px 14px 44px;display:flex;flex-direction:column;gap:20px;position:relative;z-index:1}

/* ---- 顶栏 ---- */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:2px 2px}
.brand{display:flex;align-items:center;gap:10px}
.logo{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,var(--c1),var(--c2) 55%,var(--c3));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:20px;box-shadow:0 6px 18px rgba(139,92,246,.32)}
.brand-name{font-size:21px;font-weight:900;letter-spacing:-.02em}
.brand-ver{font-size:11px;font-weight:700;color:var(--c1);background:rgba(99,102,241,.1);border:1px solid rgba(99,102,241,.28);padding:2px 9px;border-radius:12px}
.top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pill-link{font-size:13px;font-weight:700;color:var(--text);text-decoration:none;padding:7px 15px;border:1px solid var(--line);border-radius:20px;background:var(--glass);transition:all .25s}
.pill-link:hover,.pill-link.active{background:linear-gradient(120deg,var(--c1),var(--c2) 55%,var(--c3));color:#fff;border-color:transparent}
.pill-link.primary{background:linear-gradient(120deg,var(--c1),var(--c2) 55%,var(--c3));color:#fff;border-color:transparent}
.pill-link.muted{color:var(--text2);background:transparent}
.user-chip{font-size:13px;font-weight:700;color:var(--c1);padding:7px 15px;border:1px solid rgba(99,102,241,.3);border-radius:20px;background:rgba(99,102,241,.06)}
.inline-link{color:var(--c1);text-decoration:none;font-weight:600}
.inline-link:hover{text-decoration:underline}

/* ---- 主视觉：slogan + 获取软件（参考站两列） ---- */
.kd-main{display:flex;gap:28px;align-items:stretch;flex-wrap:wrap;padding:18px 6px 6px}
.kd-left{flex:1.15;min-width:280px;display:flex;flex-direction:column;justify-content:center;gap:18px}
.kd-slogan{font-size:34px;font-weight:900;letter-spacing:-.02em;line-height:1.45}
.kd-meta{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}
.kd-upd{font-size:13px;font-weight:600;color:var(--text2)}
.kd-status{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--text2)}
.kd-status .dot{width:9px;height:9px;border-radius:50%;background:#10b981;box-shadow:0 0 0 4px rgba(16,185,129,.18)}

.kd-right{flex:1;min-width:300px;display:flex;align-items:center}
.get-card{width:100%;background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:0 10px 32px rgba(99,102,241,.10)}
.get-head{display:flex;align-items:baseline;gap:10px;margin-bottom:16px}
.get-title{font-size:20px;font-weight:900}
.get-ver{font-size:11px;font-weight:700;color:var(--c1);background:rgba(99,102,241,.1);padding:2px 9px;border-radius:12px}
.key-form{display:flex;gap:10px}
.key-form input{flex:1;min-width:0;padding:13px 16px;border:1.5px solid var(--line);border-radius:12px;font-size:15px;background:#fff;color:var(--text);outline:none;transition:border-color .2s,box-shadow .2s}
.key-form input:focus{border-color:var(--c1);box-shadow:0 0 0 3px rgba(99,102,241,.14)}
.key-btn{padding:0 26px;background:linear-gradient(120deg,var(--c1),var(--c2) 55%,var(--c3));color:#fff;border:none;border-radius:12px;font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 6px 20px rgba(139,92,246,.35);transition:transform .2s;white-space:nowrap}
.key-btn:hover{transform:translateY(-1px)}
.get-sub{font-size:13px;color:var(--text2);margin:14px 0 0}
.get-login{font-size:12px;color:var(--muted);margin-top:10px}

/* ---- 版本动态 + 用户反馈（两列） ---- */
.kd-cols{display:flex;gap:16px;flex-wrap:wrap}
.kd-cols .panel{flex:1.15;min-width:280px}
.kd-cols .fb{flex:1;min-width:300px}
.panel{background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:0 8px 28px rgba(99,102,241,.08)}
.sec-title{font-size:16px;font-weight:900;margin-bottom:14px}

.dyn{display:flex;flex-direction:column;gap:0}
.dyn-row{display:flex;gap:12px;padding:11px 0;border-bottom:1px dashed var(--line)}
.dyn-row:last-child{border-bottom:none}
.dyn-tag{flex-shrink:0;font-size:11px;font-weight:800;color:var(--c1);background:rgba(99,102,241,.1);padding:3px 10px;border-radius:9px;height:fit-content;margin-top:1px}
.dyn-body{flex:1;min-width:0}
.dyn-time{font-size:11px;color:var(--muted);display:block;margin-bottom:3px}
.dyn-text{font-size:13px;color:var(--text2);line-height:1.6;word-break:break-all}

.fb-form{display:flex;flex-direction:column;gap:10px}
.fb-row{display:flex;gap:10px}
.fb-row input{flex:1;min-width:0;padding:10px 13px;border:1.5px solid var(--line);border-radius:10px;font-size:14px;background:#fff;outline:none;transition:border-color .2s}
.fb-row input:focus{border-color:var(--c1)}
.fb-form textarea{width:100%;padding:11px 13px;border:1.5px solid var(--line);border-radius:10px;font-size:14px;background:#fff;color:var(--text);outline:none;resize:vertical;min-height:70px;transition:border-color .2s}
.fb-form textarea:focus{border-color:var(--c1)}
.fb-btn{align-self:flex-end;padding:9px 24px;background:linear-gradient(120deg,var(--c1),var(--c2) 55%,var(--c3));color:#fff;border:none;border-radius:11px;font-size:13px;font-weight:800;cursor:pointer;box-shadow:0 4px 14px rgba(139,92,246,.3);transition:transform .2s}
.fb-btn:hover{transform:translateY(-1px)}
.row-msg{font-size:12px;font-weight:600;margin-top:6px}
.row-msg.ok{color:#059669}
.fb-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.fb-item{background:var(--glass2);border:1px solid var(--line);border-radius:12px;padding:11px 13px}
.fb-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}
.fb-name{font-size:13px;font-weight:800;color:var(--c1)}
.fb-time{font-size:11px;color:var(--muted)}
.fb-content{font-size:13px;color:var(--text2);line-height:1.5}

/* ---- Hero（下载页等保留） ---- */
.hero{padding:12px 4px 4px}
.hero-title{font-size:30px;font-weight:900;letter-spacing:-.03em;margin-bottom:8px}
.hero-slogan{font-size:16px;font-weight:700;color:var(--text2);line-height:1.8;margin-bottom:10px}
.hero-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text2);background:var(--glass);border:1px solid var(--line);border-radius:20px;padding:5px 12px;margin-bottom:8px}
.hero-status .dot{width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 0 4px rgba(16,185,129,.18)}
.hero-status.ok{color:#059669;border-color:rgba(16,185,129,.4)}
.hero-tip{font-size:13px;color:var(--muted);margin-bottom:12px}

.card-form{display:flex;gap:8px;max-width:520px;margin:6px 0 2px}
.card-form input{flex:1;min-width:0;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;font-size:15px;background:#fff;color:var(--text);outline:none;transition:border-color .2s}
.card-form input:focus{border-color:var(--c1);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.card-form button{padding:0 22px;background:linear-gradient(135deg,var(--c1),var(--c2) 55%,var(--c3));color:#fff;border:none;border-radius:12px;font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 4px 14px rgba(139,92,246,.3);transition:transform .2s;white-space:nowrap}
.card-form button:hover{transform:translateY(-1px)}

.empty{text-align:center;color:var(--muted);padding:30px 0;font-size:14px}
.hint{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.7;text-align:center}

/* ---- 分类目录 ---- */
.cat{display:flex;flex-direction:column;gap:12px}
.cat-head{display:flex;align-items:center;gap:10px;padding:2px 6px}
.cat-dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(--c1),var(--c3));box-shadow:0 0 0 4px rgba(99,102,241,.12)}
.cat-title{font-size:17px;font-weight:800}
.cat-count{font-size:12px;color:var(--muted);font-weight:600}

.cards{display:grid;grid-template-columns:1fr;gap:12px}
.card{background:var(--glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:flex;gap:14px;align-items:flex-start;box-shadow:0 6px 24px rgba(99,102,241,.06);transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(99,102,241,.12)}
.card-icon{width:46px;height:46px;flex-shrink:0;border-radius:14px;background:linear-gradient(135deg,var(--c1),var(--c2) 55%,var(--c3));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:20px;box-shadow:0 6px 18px rgba(139,92,246,.3)}
.card-body{flex:1;min-width:0}
.card-title-row{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}
.card-name{font-size:16px;font-weight:800}
.card-desc{font-size:12px;color:var(--text2);line-height:1.5;margin-bottom:6px}
.card-meta{display:flex;gap:14px;font-size:11px;color:var(--muted)}
.card-dl{flex-shrink:0;align-self:center;padding:9px 20px;background:linear-gradient(120deg,var(--c1),var(--c2) 55%,var(--c3));color:#fff;border:none;border-radius:12px;font-size:13px;font-weight:800;cursor:pointer;text-decoration:none;box-shadow:0 4px 14px rgba(139,92,246,.3);transition:transform .2s}
.card-dl:hover{transform:translateY(-1px)}

/* 下载页软件头 + 版本 */
.alert{padding:11px 14px;border-radius:10px;font-size:13px;font-weight:600}
.alert-err{background:rgba(239,68,68,.07);color:#dc2626;border:1px solid rgba(239,68,68,.2)}
.alert-ok{background:rgba(16,185,129,.07);color:#059669;border:1px solid rgba(16,185,129,.25)}
.divider{height:1px;background:var(--line);margin:14px 0}
.soft-head{display:flex;gap:16px;align-items:flex-start}
.soft-icon{width:54px;height:54px;flex-shrink:0;border-radius:15px;background:linear-gradient(135deg,var(--c1),var(--c2) 55%,var(--c3));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:24px;box-shadow:0 6px 20px rgba(139,92,246,.3)}
.soft-info{flex:1;min-width:0}
.soft-name{font-size:20px;font-weight:900;margin-bottom:4px}
.soft-desc{font-size:13px;color:var(--text2);line-height:1.6;margin-bottom:8px}
.soft-meta{font-size:12px;color:var(--muted)}
.ver-list{display:flex;flex-direction:column;gap:10px}
.ver-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:12px;transition:border-color .2s}
.ver-row:hover{border-color:rgba(99,102,241,.4)}
.ver-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.ver-tag{font-size:13px;font-weight:800;color:var(--c1);background:rgba(99,102,241,.1);padding:3px 10px;border-radius:10px;white-space:nowrap}
.ver-size{font-size:12px;color:var(--muted);white-space:nowrap}
.ver-desc{font-size:12px;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}
.ver-dl{margin-left:auto}
.dl-btn{padding:8px 22px;background:linear-gradient(120deg,var(--c1),var(--c2) 55%,var(--c3));color:#fff;border:none;border-radius:11px;font-size:13px;font-weight:800;cursor:pointer;box-shadow:0 4px 14px rgba(139,92,246,.3);transition:transform .2s}
.dl-btn:hover{transform:translateY(-1px)}

/* ---- 底部公告（页面内左下角，不遮挡内容） ---- */
.notice-bar{display:flex;align-items:center;gap:8px;max-width:min(480px,92vw);padding:9px 14px;margin:4px 0 0 6px;align-self:flex-start;background:rgba(255,255,255,.85);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(99,102,241,.12)}
.notice-tag{flex-shrink:0;font-size:11px;font-weight:800;color:#fff;background:linear-gradient(120deg,var(--c1),var(--c3));padding:3px 9px;border-radius:8px}
.notice-text{font-size:12px;color:var(--text2);line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}

/* ---- 登录 / 注册 ---- */
.auth-body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}
.auth-wrap{width:100%;max-width:420px;background:var(--glass);backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:22px;padding:30px 28px;box-shadow:0 20px 60px rgba(99,102,241,.12);position:relative;z-index:1}
.auth-logo{font-size:26px;font-weight:900;text-align:center;margin-bottom:6px}
.auth-sub{font-size:13px;color:var(--text2);text-align:center;margin-bottom:22px}
.auth-form{display:flex;flex-direction:column;gap:4px}
.field{display:block;margin-bottom:14px}
.field>span{display:block;font-size:12px;font-weight:700;color:var(--text2);margin-bottom:7px}
.field input{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:11px;font-size:15px;background:#fff;color:var(--text);outline:none;transition:border-color .2s}
.field input:focus{border-color:var(--c1);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.auth-btn{width:100%;padding:13px;background:linear-gradient(120deg,var(--c1),var(--c2) 55%,var(--c3));color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:800;cursor:pointer;box-shadow:0 6px 20px rgba(139,92,246,.32);transition:transform .2s;margin-top:6px}
.auth-btn:hover{transform:translateY(-1px)}

/* ---- 底部 ---- */
.footer{text-align:center;font-size:12px;color:var(--muted);padding:8px 0 2px;position:relative;z-index:1}

@media (min-width:640px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:920px){.cards{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){
  .kd-main{flex-direction:column}
  .kd-slogan{font-size:26px}
  .kd-cols{flex-direction:column}
  .fb-row{flex-direction:column}
  .card-form{flex-direction:column}
  .card-form button{padding:12px}
  .brand-name{font-size:17px}
}

/* ===== V3.1 品牌块 + 获取软件卡片（对齐参考站） ===== */
.kd-brand{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.kd-logo{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,var(--c1),var(--c2) 55%,var(--c3));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:23px;box-shadow:0 8px 22px rgba(139,92,246,.35)}
.kd-name{font-size:22px;font-weight:900;letter-spacing:-.02em}
.kd-ver{font-size:11px;font-weight:700;color:var(--c1);background:rgba(99,102,241,.1);border:1px solid rgba(99,102,241,.28);padding:2px 9px;border-radius:12px;margin-left:2px}
.kd-tip{font-size:12px;color:var(--muted);line-height:1.8;margin-top:6px}
.kd-status .ok{color:#0ea5e9;font-weight:700}

.get-card{padding:22px}
.get-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.get-title{font-size:19px;font-weight:900}
.guide-btn{font-size:12px;font-weight:700;color:var(--c1);padding:5px 14px;border:1px solid rgba(99,102,241,.3);border-radius:14px;cursor:pointer;background:rgba(99,102,241,.05);transition:all .2s}
.guide-btn:hover{background:linear-gradient(120deg,var(--c1),var(--c2));color:#fff;border-color:transparent}
.get-tabs{display:flex;gap:8px;margin-bottom:14px}
.tab{font-size:13px;font-weight:700;color:var(--text2);padding:6px 16px;border:1px solid var(--line);border-radius:16px;background:#fff;cursor:pointer;transition:all .2s}
.tab.active{color:#fff;background:linear-gradient(120deg,var(--c1),var(--c2) 60%,var(--c3));border-color:transparent}

