/* ============================================================
   北大 AI 创业营 · 设计系统（PKU Red · 克制配色 · 收敛圆角）
   主色：北大红 #94070A / #C8102E ｜ 中性：暖纸白 + 墨灰
   功能色（仅状态标签少量使用）： subdued green / amber
   ============================================================ */
:root{
  --red-800:#6d0507; --red-700:#94070A; --red-600:#b31418; --red-500:#C8102E;
  --red-050:#FAF3F3; --red-100:#F3E5E5;
  --ink-900:#232022; --ink-700:#454140; --ink-500:#6f6a63; --muted:#a09a91;
  --paper:#F8F6F3; --paper-2:#EFEBE5; --card:#FFFFFF; --line:#E9E3DB;
  --green:#157347; --amber:#a8660f;
  --r-xl:10px; --r-lg:8px; --r-md:6px; --r-sm:5px;
  --sh-1:0 1px 2px rgba(33,32,34,.05),0 3px 12px rgba(33,32,34,.05);
  --sh-2:0 8px 24px rgba(33,32,34,.12);
  --sh-red:0 8px 24px rgba(148,7,10,.22);
  --grad-red:linear-gradient(120deg,#6d0507 0%,#94070A 55%,#b31418 100%);
  --grad-red-soft:linear-gradient(120deg,#7a0608,#a51012);
  --grad-ink:linear-gradient(160deg,#2a2224,#4a1416);
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong",Georgia,"Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:var(--sans);background:var(--paper);color:var(--ink-900);font-size:15px;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
a{color:var(--red-700);text-decoration:none;}
h1,h2,h3,h4{margin:0;font-weight:700;}
img{max-width:100%;}
::selection{background:var(--red-100);color:var(--red-800);}

/* ---------- 排版 ---------- */
.display{font-family:var(--serif);font-weight:700;letter-spacing:.5px;line-height:1.2;color:var(--ink-900);}
.eyebrow{font-size:12px;letter-spacing:3px;font-weight:700;color:var(--red-700);text-transform:uppercase;}
.eyebrow.ls-cn{letter-spacing:5px;}
.lead{font-size:16px;line-height:1.8;color:var(--ink-500);}
.muted{color:var(--muted);font-size:13px;}
.center{text-align:center;}
.hidden{display:none !important;}
.serif{font-family:var(--serif);}
.rule{width:40px;height:2px;background:var(--red-600);border-radius:2px;}

/* ---------- 布局 ---------- */
.container{max-width:1120px;margin:0 auto;padding:0 24px;}

/* ---------- 按钮 ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;
  font-family:inherit;font-weight:600;font-size:15px;border-radius:var(--r-md);padding:12px 24px;
  transition:.18s transform,.18s box-shadow,.18s background;letter-spacing:.4px;}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--red-700);color:#fff;}
.btn-primary:hover{background:var(--red-600);box-shadow:var(--sh-red);}
.btn-outline{background:transparent;color:var(--red-700);border:1.5px solid var(--red-700);}
.btn-outline:hover{background:var(--red-050);}
.btn-ghost{background:var(--paper-2);color:var(--ink-700);}
.btn-ghost:hover{background:#e7e2da;}
.btn.block{display:flex;width:100%;}
.btn.sm{padding:8px 16px;font-size:13px;border-radius:var(--r-sm);}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.btnrow{display:flex;gap:10px;flex-wrap:wrap;}

/* ---------- 卡片 ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;box-shadow:var(--sh-1);}
.card.hover{transition:.2s transform,.2s box-shadow;}
.card.hover:hover{transform:translateY(-3px);box-shadow:var(--sh-2);}
.card-pad-lg{padding:26px;}

/* ---------- 标签 ---------- */
.tag{font-size:11px;padding:3px 9px;border-radius:var(--r-sm);font-weight:600;display:inline-block;white-space:nowrap;letter-spacing:.2px;}
.tag.red{background:var(--red-050);color:var(--red-700);}
.tag.green{background:#e7f0ea;color:var(--green);}
.tag.amber{background:#f6eedd;color:var(--amber);}
.tag.blue{background:var(--red-050);color:var(--red-700);}
.tag.gray{background:#f0ece6;color:#8a857c;}
.tag.gold{background:var(--red-050);color:var(--red-700);}
.tag.outline{background:#fff;border:1px solid var(--line);color:var(--ink-500);}

/* ---------- 表单 ---------- */
.field{margin-bottom:16px;}
.field label{font-size:13px;color:var(--ink-500);display:block;margin-bottom:7px;font-weight:600;}
.field input,.field select,.field textarea{width:100%;border:1.5px solid var(--line);border-radius:var(--r-md);
  padding:12px 14px;font-size:15px;font-family:inherit;outline:none;background:#fff;color:var(--ink-900);transition:.15s border,.15s box-shadow;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--red-600);box-shadow:0 0 0 3px rgba(200,16,46,.08);}
.field textarea{min-height:88px;resize:vertical;}

/* ---------- 顶部导航 ---------- */
.nav{position:sticky;top:0;z-index:50;background:rgba(248,246,243,.86);backdrop-filter:saturate(150%) blur(12px);border-bottom:1px solid var(--line);}
.nav-in{display:flex;align-items:center;gap:28px;height:66px;}
.brand{display:flex;align-items:center;gap:12px;cursor:pointer;}
.brand .mark{width:38px;height:38px;border-radius:var(--r-md);background:var(--grad-red);color:#fff;display:flex;
  align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;font-size:18px;}
.brand .bt{line-height:1.1;}
.brand .bt b{font-family:var(--serif);font-size:17px;letter-spacing:1px;color:var(--ink-900);display:block;}
.brand .bt span{font-size:10px;letter-spacing:2px;color:var(--muted);}
.nav-links{display:flex;gap:2px;margin-left:auto;}
.nav-links a{padding:8px 14px;border-radius:var(--r-sm);font-size:14px;font-weight:500;color:var(--ink-700);transition:.15s;}
.nav-links a:hover{background:var(--paper-2);color:var(--red-700);}
.nav-links a.on{background:var(--red-700);color:#fff;}

/* ---------- 英雄区 ---------- */
.hero{position:relative;overflow:hidden;background:var(--grad-red);color:#fff;}
.hero:before{content:'';position:absolute;inset:0;
  background:radial-gradient(900px 480px at 88% -10%,rgba(255,255,255,.12),transparent 60%),
             radial-gradient(600px 380px at -5% 115%,rgba(255,255,255,.08),transparent 55%);}
.hero-in{position:relative;padding:80px 0 86px;}
.hero .badge-pill{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2);
  border-radius:var(--r-sm);padding:7px 14px;font-size:12.5px;font-weight:600;letter-spacing:.5px;}
.hero h1{font-family:var(--serif);font-size:clamp(32px,5.2vw,54px);line-height:1.14;letter-spacing:1px;margin:22px 0 8px;font-weight:700;}
.hero h1 .em{color:#f3d9d9;}
.hero .sub{font-size:clamp(15px,1.6vw,17px);line-height:1.85;color:rgba(255,255,255,.9);max-width:660px;margin:14px 0 30px;}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap;}
.hero .btn-light{background:#fff;color:var(--red-700);}
.hero .btn-light:hover{box-shadow:0 12px 32px rgba(0,0,0,.22);}
.hero .btn-line{background:transparent;border:1.5px solid rgba(255,255,255,.55);color:#fff;}
.hero .btn-line:hover{background:rgba(255,255,255,.12);}
.hero-stats{display:flex;gap:42px;margin-top:48px;flex-wrap:wrap;}
.hstat b{font-family:var(--serif);font-size:32px;display:block;letter-spacing:1px;}
.hstat span{font-size:13px;color:rgba(255,255,255,.8);letter-spacing:.5px;}
.hstat .bar{width:30px;height:2px;background:rgba(255,255,255,.6);margin:8px 0;border-radius:2px;}

/* ---------- 区块标题 ---------- */
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 26px;}
.sec-head .t{flex:1;}
.sec-head h2{font-family:var(--serif);font-size:clamp(23px,3vw,31px);letter-spacing:1px;margin:10px 0 8px;}
.section{padding:72px 0;}
.section.tight{padding:48px 0;}

/* ---------- 入口卡 ---------- */
.entries{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;}
.entry{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:24px;cursor:pointer;transition:.2s transform,.2s box-shadow,.2s border-color;}
.entry:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:var(--red-100);}
.entry .no{position:absolute;top:14px;right:18px;font-family:var(--serif);font-size:40px;color:var(--paper-2);font-weight:700;line-height:1;}
.entry .ico{width:48px;height:48px;border-radius:var(--r-md);background:var(--red-050);display:flex;align-items:center;justify-content:center;font-size:23px;margin-bottom:16px;}
.entry h3{font-size:19px;margin:0 0 8px;letter-spacing:.4px;}
.entry p{margin:0;color:var(--ink-500);font-size:13.5px;line-height:1.7;min-height:66px;}
.entry .go{margin-top:16px;font-weight:600;font-size:14px;color:var(--red-700);display:inline-flex;align-items:center;gap:6px;transition:.18s gap;}
.entry:hover .go{gap:10px;}
.entry .ribbon{position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red-600);}

/* ---------- 页脚 ---------- */
.footer{background:var(--ink-900);color:#b3aca2;padding:42px 0;margin-top:36px;}
.footer .cols{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;}
.footer b{color:#fff;font-family:var(--serif);letter-spacing:1px;}
.footer .fine{font-size:12.5px;line-height:1.9;}

/* ---------- 弹层 ---------- */
.mask{position:fixed;inset:0;background:rgba(33,32,34,.5);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:60;padding:20px;}
.sheet{background:#fff;border-radius:var(--r-xl);width:100%;max-width:420px;max-height:88vh;overflow:auto;padding:26px;box-shadow:var(--sh-2);animation:pop .2s ease;}
@keyframes pop{from{transform:translateY(10px);opacity:0;}to{transform:none;opacity:1;}}
.sheet h3{font-family:var(--serif);font-size:21px;margin-bottom:18px;letter-spacing:.4px;}

/* ---------- 轻提示 ---------- */
.toast{position:fixed;left:50%;bottom:38px;transform:translateX(-50%);background:var(--ink-900);color:#fff;
  padding:12px 22px;border-radius:var(--r-md);font-size:13.5px;z-index:99;opacity:0;transition:.22s;pointer-events:none;max-width:86%;box-shadow:var(--sh-2);}
.toast.show{opacity:1;}

/* ============================================================
   小程序 App（移动端）
   ============================================================ */
.phone-wrap{max-width:480px;margin:0 auto;min-height:100vh;background:var(--paper);padding-bottom:82px;}
.app-hero{position:relative;overflow:hidden;background:var(--grad-red);color:#fff;padding:20px 18px;}
.app-hero:before{content:'';position:absolute;inset:0;background:radial-gradient(480px 200px at 92% -20%,rgba(255,255,255,.14),transparent 60%);}
.app-hero .who{position:relative;display:flex;align-items:center;gap:13px;}
.ava{width:48px;height:48px;border-radius:var(--r-md);flex-shrink:0;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:19px;font-weight:700;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.22);font-family:var(--serif);}
.app-hero .nm{font-size:19px;font-weight:700;font-family:var(--serif);letter-spacing:.5px;}
.app-hero .sub{font-size:12px;opacity:.88;margin-top:3px;}
.app-pad{padding:16px 14px;}

.app-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;margin-bottom:14px;box-shadow:var(--sh-1);}
.app-sec{font-family:var(--serif);font-size:18px;font-weight:700;letter-spacing:.4px;margin:20px 2px 12px;display:flex;align-items:center;justify-content:space-between;}
.app-sec .more{font-size:12.5px;color:var(--red-700);font-weight:600;font-family:var(--sans);cursor:pointer;}
.app-sec:before{content:'';width:3px;height:16px;background:var(--red-600);margin-right:9px;border-radius:2px;}
.app-sec .tt{display:flex;align-items:center;flex:1;}

/* 项目主卡 */
.proj-hero{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:20px;color:#fff;background:var(--grad-red-soft);box-shadow:var(--sh-red);margin-bottom:16px;}
.proj-hero:before{content:'';position:absolute;inset:0;background:radial-gradient(380px 150px at 92% -10%,rgba(255,255,255,.16),transparent 60%);}
.proj-hero .lb{position:relative;font-size:11px;letter-spacing:2px;font-weight:700;color:#f3d9d9;}
.proj-hero h3{position:relative;font-family:var(--serif);font-size:23px;margin:8px 0 6px;letter-spacing:.5px;}
.proj-hero p{position:relative;margin:0;font-size:13px;line-height:1.7;color:rgba(255,255,255,.92);}

/* 菜单行 */
.mrow{display:flex;align-items:center;gap:13px;padding:15px 4px;border-bottom:1px solid var(--line);cursor:pointer;transition:.15s background;border-radius:var(--r-sm);}
.mrow:hover{background:var(--red-050);}
.mrow:last-child{border-bottom:none;}
.mrow .ic{width:40px;height:40px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0;background:var(--red-050);}
.mrow .lb{flex:1;font-size:16px;font-weight:600;}
.mrow .ar{color:var(--muted);font-size:18px;}

/* 列表行 */
.rowline{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);}
.rowline:last-child{border-bottom:none;}
.flex1{flex:1;min-width:0;}
.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ava.sq{border-radius:var(--r-md);}
.ava.b{background:#6b5a52;} .ava.g{background:var(--green);} .ava.gr{background:#9a948a;} .ava.r{background:var(--red-600);}

/* 课表 / 待办 */
.course{display:flex;gap:13px;padding:13px 0;border-bottom:1px solid var(--line);}
.course:last-child{border-bottom:none;}
.course .t{width:50px;text-align:center;flex-shrink:0;background:var(--red-050);border-radius:var(--r-md);padding:8px 0;}
.course .t b{font-size:19px;display:block;color:var(--red-700);font-family:var(--serif);}
.course .t span{font-size:11px;color:var(--muted);}
.todo{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer;}
.todo:last-child{border-bottom:none;}
.todo .l{display:flex;align-items:center;gap:12px;}
.todo .ic{width:38px;height:38px;border-radius:var(--r-md);background:var(--red-050);display:flex;align-items:center;justify-content:center;font-size:18px;}

/* 徽章 */
.badge{background:var(--red-500);color:#fff;border-radius:var(--r-sm);font-size:10.5px;padding:2px 7px;margin-left:6px;font-weight:700;}

/* tabbar */
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:rgba(255,255,255,.94);
  backdrop-filter:blur(12px);border-top:1px solid var(--line);display:flex;z-index:30;padding:5px 4px calc(9px + env(safe-area-inset-bottom));}
.tabbar .ti{position:relative;flex:1;text-align:center;padding:6px 0 3px;font-size:11px;color:var(--muted);cursor:pointer;transition:.15s color;}
.tabbar .ti .ic{font-size:22px;display:block;margin-bottom:2px;transition:.18s transform;filter:grayscale(60%) opacity(.55);}
.tabbar .ti.on{color:var(--red-700);font-weight:700;}
.tabbar .ti.on .ic{transform:translateY(-1px);filter:none;}
.tabbar .ti.on:after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:22px;height:2.5px;border-radius:2px;background:var(--red-600);}
.tabbar .ti .badge{position:absolute;top:0;left:calc(50% + 9px);margin-left:0;}

/* 覆盖层 */
.overlay{position:fixed;top:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;height:100vh;background:var(--paper);
  z-index:40;display:flex;flex-direction:column;padding-bottom:78px;}
.overlay .oh{background:var(--grad-red);color:#fff;padding:18px 16px;display:flex;align-items:center;gap:12px;flex-shrink:0;}
.overlay .oh .back{font-size:26px;cursor:pointer;line-height:1;}
.overlay .oh .tt{font-size:18px;font-weight:700;font-family:var(--serif);letter-spacing:.4px;}
.overlay .ob{flex:1;overflow:auto;padding:16px;}

/* 消息气泡 */
.thread{display:flex;flex-direction:column;padding:6px 0;}
.msg{max-width:78%;padding:10px 14px;border-radius:var(--r-lg);font-size:14px;margin:5px 0;line-height:1.55;box-shadow:var(--sh-1);}
.msg.in{background:#fff;align-self:flex-start;border:1px solid var(--line);}
.msg.me{background:var(--red-700);color:#fff;align-self:flex-end;}
.inputbar{display:flex;gap:9px;padding:12px 0 2px;}
.inputbar input{flex:1;border:1.5px solid var(--line);border-radius:var(--r-md);padding:11px 14px;font-size:14px;outline:none;background:#fff;font-family:inherit;}
.inputbar input:focus{border-color:var(--red-600);}

/* 新闻 */
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;margin-bottom:10px;}
.chips::-webkit-scrollbar{display:none;}
.chip{font-size:13px;padding:8px 15px;border-radius:var(--r-sm);background:#fff;border:1.5px solid var(--line);color:var(--ink-500);white-space:nowrap;cursor:pointer;font-weight:500;transition:.15s;}
.chip.on{background:var(--red-700);color:#fff;border-color:var(--red-700);}
.ncard{display:flex;gap:13px;padding:15px 0;border-bottom:1px solid var(--line);cursor:pointer;}
.ncard:last-child{border-bottom:none;}
.nmain{flex:1;min-width:0;}
.ntitle{font-size:16px;font-weight:700;line-height:1.45;margin-top:7px;font-family:var(--serif);letter-spacing:.2px;}
.nmeta{font-size:12px;color:var(--muted);margin-top:9px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.thumb{width:92px;height:68px;border-radius:var(--r-md);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:28px;color:#fff;background:var(--grad-ink);}
.acover{height:160px;border-radius:var(--r-lg);display:flex;align-items:center;justify-content:center;font-size:52px;color:#fff;margin-bottom:16px;background:var(--grad-ink);}
.abody{font-size:15.5px;line-height:1.9;color:var(--ink-700);}
.abody p{margin:0 0 16px;}
.reprint{background:var(--red-050);border:1px dashed var(--red-100);border-radius:var(--r-md);padding:13px 15px;font-size:12.5px;color:var(--ink-500);line-height:1.7;margin-top:14px;}

/* 空态 */
.empty{text-align:center;color:var(--muted);padding:40px 0;font-size:13.5px;}
.empty .em{font-size:36px;display:block;margin-bottom:10px;opacity:.35;}

/* 响应式 */
@media(max-width:640px){
  .hero-in{padding:58px 0 62px;}
  .nav-links a:not(.on){display:none;}
  .section{padding:52px 0;}
  .hero-stats{gap:26px;}
}
