/* ============ 星尘课程 · 设计语言 ============
   纸张米色底 + 衬线标题 + 朱砂红点缀（沿用 site/index.html 风格）
*/
:root{
  --paper:#f6f3ec;
  --paper-2:#efeae0;
  --ink:#1d1b18;
  --ink-soft:#4a463f;
  --ink-mute:#8a8378;
  --accent:#9c4a3c;       /* 朱砂 */
  --accent-soft:#c08a7d;
  --ok:#3f6b4f;
  --line:rgba(29,27,24,0.12);
  --line-strong:rgba(29,27,24,0.22);
  --serif:"Noto Serif SC","Songti SC","STSong",serif;
  --sans:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --maxw:1080px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--sans); color:var(--ink); background:var(--paper);
  line-height:1.8; font-weight:300; -webkit-font-smoothing:antialiased;
}
::selection{background:var(--accent);color:#fff;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
.hidden{display:none !important;}

/* ---------- 顶栏 ---------- */
header.topbar{
  position:fixed;top:0;left:0;right:0;z-index:50;
  background:rgba(246,243,236,0.86); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line); padding:14px 0;
}
.topbar .nav{display:flex;align-items:center;justify-content:space-between;}
.brand{font-family:var(--serif);font-weight:600;font-size:20px;letter-spacing:.14em;}
.brand .dot{color:var(--accent);}
.nav-right{display:flex;align-items:center;gap:18px;font-size:14px;color:var(--ink-soft);}
.nav-right a:hover{color:var(--accent);}
.nav-right .uname{color:var(--ink);font-weight:400;}
.nav-right button{font-family:var(--sans);font-size:13px;color:var(--ink-soft);background:none;border:none;cursor:pointer;}
.nav-right button:hover{color:var(--accent);}

/* ---------- HERO ---------- */
.hero{min-height:62vh;display:flex;align-items:center;padding:120px 0 60px;
  background:radial-gradient(120% 80% at 80% 0%, rgba(156,74,60,0.06), transparent 60%);}
.hero-inner{max-width:760px;}
.eyebrow{font-size:13px;letter-spacing:.4em;color:var(--accent);text-transform:uppercase;margin-bottom:26px;font-weight:400;}
.hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(34px,5.4vw,62px);line-height:1.2;letter-spacing:.02em;margin-bottom:24px;}
.hero h1 .em{color:var(--accent);}
.hero p.lead{font-size:clamp(15px,1.6vw,18px);color:var(--ink-soft);max-width:560px;margin-bottom:30px;}
.btns{display:flex;gap:16px;flex-wrap:wrap;}

/* ---------- 按钮 ---------- */
.btn{font-family:var(--sans);font-size:15px;letter-spacing:.06em;padding:13px 30px;border-radius:2px;cursor:pointer;transition:all .3s ease;border:1px solid var(--ink);}
.btn-primary{background:var(--ink);color:var(--paper);}
.btn-primary:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-2px);}
.btn-accent{background:var(--accent);color:#fff;border-color:var(--accent);}
.btn-accent:hover{background:#83392e;transform:translateY(-2px);}
.btn-ghost{background:transparent;color:var(--ink);}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);}
.btn-sm{padding:8px 16px;font-size:13px;}

/* ---------- 区块标题 ---------- */
section.block{padding:70px 0;}
.sec-head{margin-bottom:44px;}
.sec-tag{font-size:12px;letter-spacing:.4em;color:var(--accent);text-transform:uppercase;margin-bottom:14px;font-weight:400;}
.sec-head h2{font-family:var(--serif);font-weight:600;font-size:clamp(26px,3.4vw,38px);line-height:1.3;}
.sec-head p{margin-top:14px;color:var(--ink-soft);font-size:15px;}

/* ---------- 系列卡片网格 ---------- */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
@media(max-width:860px){.grid{grid-template-columns:1fr;}}
.card{border:1px solid var(--line);background:var(--paper);transition:all .35s;position:relative;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;}
.card::after{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .4s;}
.card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(29,27,24,0.08);}
.card:hover::after{transform:scaleX(1);}
.card .cover{height:160px;background:var(--paper-2);display:flex;align-items:center;justify-content:center;color:var(--ink-mute);font-size:42px;font-family:var(--serif);overflow:hidden;}
.card .cover img{width:100%;height:100%;object-fit:cover;}
.card .body{padding:24px 24px 26px;flex:1;display:flex;flex-direction:column;}
.card .cat{font-size:12px;letter-spacing:.2em;color:var(--accent);margin-bottom:10px;}
.card h3{font-family:var(--serif);font-size:21px;font-weight:600;margin-bottom:10px;line-height:1.4;}
.card p{color:var(--ink-soft);font-size:14px;font-weight:300;flex:1;}
.card .foot{display:flex;align-items:center;justify-content:space-between;margin-top:16px;font-size:13px;color:var(--ink-mute);}

/* ---------- 徽标 ---------- */
.badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:3px 10px;border-radius:2px;letter-spacing:.05em;}
.badge.lock{background:rgba(156,74,60,0.10);color:var(--accent);}
.badge.open{background:rgba(63,107,79,0.12);color:var(--ok);}

/* ---------- 表单 ---------- */
form .field{margin-bottom:20px;}
form label{display:block;font-size:13px;letter-spacing:.1em;color:var(--ink-soft);margin-bottom:8px;}
form input,form select,form textarea{
  width:100%;font-family:var(--sans);font-size:15px;font-weight:300;color:var(--ink);
  background:transparent;border:none;border-bottom:1px solid var(--line-strong);
  padding:11px 2px;transition:border-color .3s;outline:none;
}
form textarea{resize:vertical;min-height:80px;}
form input:focus,form select:focus,form textarea:focus{border-color:var(--accent);}
.form-note{font-size:13px;color:var(--ink-mute);margin-top:10px;}
.err{color:var(--accent);font-size:13px;min-height:18px;margin-top:6px;}

/* ---------- 登录/注册 容器 ---------- */
.auth{max-width:420px;margin:140px auto 80px;padding:0 24px;}
.auth h1{font-family:var(--serif);font-size:30px;text-align:center;margin-bottom:8px;}
.auth .sub{text-align:center;color:var(--ink-mute);font-size:14px;margin-bottom:34px;}
.tabs{display:flex;gap:0;margin-bottom:26px;border-bottom:1px solid var(--line);}
.tabs .tab{flex:1;text-align:center;padding:12px 0;cursor:pointer;color:var(--ink-mute);font-size:15px;border-bottom:2px solid transparent;transition:.3s;}
.tabs .tab.active{color:var(--ink);border-color:var(--accent);font-weight:400;}

/* ---------- 模态框 ---------- */
.overlay{position:fixed;inset:0;background:rgba(29,27,24,0.45);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;}
.modal{background:var(--paper);border:1px solid var(--line);max-width:440px;width:100%;padding:34px 32px;box-shadow:0 30px 70px rgba(0,0,0,.25);}
.modal h3{font-family:var(--serif);font-size:22px;margin-bottom:6px;}
.modal p{color:var(--ink-soft);font-size:14px;margin-bottom:18px;}
.modal .actions{display:flex;gap:12px;justify-content:flex-end;margin-top:22px;}
.code-display{font-family:var(--serif);font-size:26px;letter-spacing:.18em;text-align:center;padding:18px;background:var(--paper-2);border:1px dashed var(--accent);color:var(--accent);margin:10px 0;user-select:all;}

/* ---------- 系列详情 / 播放器 ---------- */
.series-hero{padding:120px 0 30px;}
.series-hero .back{font-size:13px;color:var(--ink-mute);margin-bottom:20px;display:inline-block;}
.series-hero .back:hover{color:var(--accent);}
.series-head{display:flex;gap:28px;align-items:flex-start;}
@media(max-width:760px){.series-head{flex-direction:column;}}
.series-head .cover{width:220px;height:140px;flex-shrink:0;background:var(--paper-2);display:flex;align-items:center;justify-content:center;color:var(--ink-mute);font-size:40px;font-family:var(--serif);overflow:hidden;border:1px solid var(--line);}
.series-head .cover img{width:100%;height:100%;object-fit:cover;}
.series-head h1{font-family:var(--serif);font-size:clamp(26px,3.6vw,40px);font-weight:600;margin-bottom:12px;}
.series-head p{color:var(--ink-soft);font-size:15px;max-width:560px;}
.player-wrap{margin:30px 0 10px;background:#000;border:1px solid var(--line);}
.player-wrap video{width:100%;display:block;max-height:64vh;background:#000;}
.player-box{position:relative;line-height:0;}
/* 斜向平铺水印：半透明叠加在画面上，录屏会一并被录下 */
.wm-layer{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden;}
.wm-item{
  position:absolute;white-space:nowrap;transform:rotate(-22deg);transform-origin:left center;
  font-size:13px;line-height:1.3;color:rgba(255,255,255,.5);
  text-shadow:0 1px 3px rgba(0,0,0,.75);letter-spacing:.04em;font-weight:300;
}
.vlist{margin-top:30px;}
.vitem{display:flex;align-items:center;gap:18px;padding:18px 20px;border:1px solid var(--line);margin-bottom:14px;background:var(--paper);transition:.3s;}
.vitem:hover{border-color:var(--accent-soft);}
.vitem .idx{font-family:var(--serif);font-size:18px;color:var(--accent);width:34px;flex-shrink:0;}
.vitem .meta{flex:1;}
.vitem .meta h4{font-family:var(--serif);font-size:18px;font-weight:600;margin-bottom:4px;}
.vitem .meta p{color:var(--ink-soft);font-size:13.5px;font-weight:300;}
.vitem .op{display:flex;align-items:center;gap:10px;}

/* ---------- 后台 ---------- */
.admin-wrap{padding:110px 0 80px;}
.admin-tabs{display:flex;gap:0;border-bottom:1px solid var(--line);margin-bottom:34px;flex-wrap:wrap;}
.admin-tabs .tab{padding:12px 22px;cursor:pointer;color:var(--ink-mute);font-size:15px;border-bottom:2px solid transparent;}
.admin-tabs .tab.active{color:var(--ink);border-color:var(--accent);}
.panel{display:none;}
.panel.active{display:block;}
.toolbar{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin-bottom:24px;}
.toolbar .field{margin-bottom:0;min-width:200px;}
table{width:100%;border-collapse:collapse;font-size:14px;margin-top:14px;}
th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);}
th{color:var(--ink-mute);font-weight:400;font-size:13px;letter-spacing:.05em;}
td .row-actions{display:flex;gap:8px;}
.codecell{font-family:var(--serif);letter-spacing:.1em;color:var(--accent);}
.empty{color:var(--ink-mute);font-size:14px;padding:30px 0;text-align:center;}
.toast{position:fixed;left:50%;bottom:40px;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:13px 26px;border-radius:2px;font-size:14px;opacity:0;transition:opacity .3s;z-index:200;pointer-events:none;}
.toast.show{opacity:1;}

/* ---------- 统一页脚（呼应 site/index.html） ---------- */
footer{background:var(--ink);color:var(--paper);padding:64px 0 38px;margin-top:48px;}
.foot-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:30px;margin-bottom:44px;}
.foot-brand{font-family:var(--serif);font-size:24px;font-weight:600;letter-spacing:.14em;}
.foot-brand .dot{color:var(--accent-soft);}
.foot-sub{color:rgba(246,243,236,0.6);font-size:14px;font-weight:300;margin-top:12px;max-width:320px;line-height:1.8;}
.foot-links{display:flex;gap:26px;font-size:14px;color:rgba(246,243,236,0.7);align-items:center;}
.foot-links a:hover{color:var(--paper);}
.foot-bottom{border-top:1px solid rgba(246,243,236,0.14);padding-top:24px;font-size:13px;color:rgba(246,243,236,0.5);font-weight:300;letter-spacing:.05em;}
