/* ============================================================
   拍摄研修营 · 全站样式 v1.0
   品牌色系：紫粉渐变 / 浅色主题
   ============================================================ */
:root{
  --bg:#f7f7fb; --card:#ffffff; --ink:#2b2b36; --sub:#6b6b80;
  --pink:#f06292; --purple:#7c4dff; --deep:#5b3fa8; --blue:#4a90d9;
  --line:#ececf4; --ok:#2e9e6b; --warn:#d97b2a; --hot:#e0457b;
  --grad:linear-gradient(120deg,#5b3fa8 0%,#8e4fd1 55%,#e05a9a 100%);
}
*{margin:0;padding:0;box-sizing:border-box;font-family:"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif}
body{background:var(--bg);color:var(--ink);min-height:100vh}
a{color:var(--blue)}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}

/* ===== 页头 hero ===== */
.hero{position:relative;min-height:300px;display:flex;align-items:flex-end;background:#3a2a55 url("../assets/hero-02-stage-20260926-v1.jpg") right center/cover no-repeat}
.hero.compact{min-height:190px}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(43,25,74,.10) 0%,rgba(43,25,74,.42) 55%,rgba(30,16,54,.88) 100%)}
.hero-inner{position:relative;width:100%;max-width:1120px;margin:0 auto;padding:100px 22px 24px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.hero.compact .hero-inner{padding:56px 22px 20px}
.logo{width:84px;height:84px;border-radius:50%;flex-shrink:0;border:3px solid rgba(255,255,255,.85);box-shadow:0 6px 24px rgba(0,0,0,.35),0 0 0 6px rgba(255,255,255,.12);object-fit:cover;background:#fff}
.hero-txt{flex:1;min-width:260px}
.hero-txt h1{font-size:30px;font-weight:800;color:#fff;letter-spacing:2px;text-shadow:0 2px 12px rgba(0,0,0,.45)}
.hero-txt .slogan{margin-top:8px;font-size:13.5px;color:rgba(255,255,255,.92);letter-spacing:.5px;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.meta-row{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.chip{display:inline-block;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.32);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:999px;padding:4px 13px;font-size:12px;color:#fff}

/* ===== 导航 ===== */
nav.mainnav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav-in{max-width:1120px;margin:0 auto;padding:0 22px;display:flex;gap:2px;flex-wrap:wrap}
nav.mainnav a{display:block;padding:13px 15px;font-size:14px;color:var(--sub);text-decoration:none;border-bottom:3px solid transparent;transition:color .2s}
nav.mainnav a:hover{color:var(--purple)}
nav.mainnav a.active{color:var(--purple);font-weight:700;border-bottom-color:var(--purple)}

/* ===== 版面 ===== */
main.page{max-width:1120px;margin:26px auto 60px;padding:0 22px}
section.panel{background:var(--card);border-radius:16px;padding:24px;box-shadow:0 4px 20px rgba(80,40,140,.06);margin-bottom:20px;animation:fadein .25s ease}
@keyframes fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.panel h2{font-size:17px;margin-bottom:16px;color:var(--ink)}
.panel h2::before{content:"◈ ";color:var(--pink)}
.panel h2 .ch-tag{font-size:11px;vertical-align:middle;background:#efeaff;color:#6a3fd0;border-radius:6px;padding:2px 8px;margin-left:8px;font-weight:400}
.panel h3.sub{font-size:15px;color:var(--deep);margin:22px 0 12px}

/* ===== 排期表 ===== */
.filters{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;align-items:center}
.filters button{border:1px solid var(--line);background:#fafafd;border-radius:999px;padding:5px 16px;font-size:13px;color:var(--sub);cursor:pointer}
.filters button.on{background:var(--purple);color:#fff;border-color:var(--purple)}
.filters .fgap{flex:1}
.searchbox{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fafafd;border-radius:999px;padding:5px 14px}
.searchbox input{border:none;background:transparent;outline:none;font-size:13px;width:180px;color:var(--ink)}
.count-line{font-size:12px;color:var(--sub);margin:6px 0 10px}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{background:#f4effc;color:var(--deep);text-align:left;padding:10px;font-weight:600;white-space:nowrap}
td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}
tr:hover td{background:#fbf8ff}
.ev-name{font-weight:600;color:var(--ink)}
.ev-name .star{cursor:pointer;user-select:none;margin-right:4px;font-size:14px;color:#cfcde0}
.ev-name .star.on{color:#f5a623}
.tag{display:inline-block;border-radius:6px;padding:2px 8px;font-size:12px;margin-right:3px;white-space:nowrap}
.t-type{background:#efeaff;color:#6a3fd0}
.t-thisweek{background:#ffe4ef;color:var(--hot);font-weight:700}
.t-ok{background:#e2f6ec;color:var(--ok)}
.t-warn{background:#fff1e0;color:var(--warn)}
.t-sold{background:#eee;color:#888;text-decoration:line-through}
.t-src{background:#e8f1fb;color:#185fa5}
.srccell{font-size:11px;color:var(--sub);line-height:1.6}
.srccell a{color:#185fa5}
.pending{color:#b0adc2;border-bottom:1px dashed #cfcde0}
.src{margin-top:14px;font-size:12px;color:var(--sub);line-height:1.7;background:#fafafd;border-left:3px solid var(--line);padding:10px 14px;border-radius:0 8px 8px 0}
.note-box{margin-top:14px;font-size:12px;color:#8a5a00;line-height:1.7;background:#fff8ec;border-left:3px solid #f0a92e;padding:10px 14px;border-radius:0 8px 8px 0}

/* ===== 卡片 ===== */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.g-card{background:#fbfaff;border:1px solid var(--line);border-radius:12px;padding:16px;transition:box-shadow .2s,transform .2s}
.g-card:hover{box-shadow:0 8px 22px rgba(90,50,150,.10);transform:translateY(-2px)}
.g-card h3{font-size:14.5px;color:var(--deep);margin-bottom:8px}
.g-card ul{list-style:none}
.g-card li{font-size:13px;color:var(--ink);line-height:1.75;padding-left:16px;position:relative}
.g-card li::before{content:"▸";position:absolute;left:0;color:var(--pink)}
.g-card li.chk::before{content:"☑";color:var(--ok)}
.g-card li.no::before{content:"⛔";font-size:11px}

/* ===== 教学中心 ===== */
.line-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.line-tabs button{border:1px solid var(--line);background:#fafafd;border-radius:999px;padding:6px 18px;font-size:13px;color:var(--sub);cursor:pointer}
.line-tabs button.on{background:var(--grad);color:#fff;border-color:transparent;font-weight:700}
.course{background:#fbfaff;border:1px solid var(--line);border-radius:12px;margin-bottom:14px;overflow:hidden}
.course summary{list-style:none;cursor:pointer;padding:16px 18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.course summary::-webkit-details-marker{display:none}
.course summary:hover{background:#f6f1ff}
.course .c-vol{flex-shrink:0;font-size:11px;font-weight:700;color:#fff;background:var(--grad);border-radius:8px;padding:3px 9px}
.course .c-title{font-size:14.5px;font-weight:700;color:var(--deep);flex:1;min-width:200px}
.course .c-lv{font-size:12px;color:var(--warn);white-space:nowrap}
.course .c-scene{font-size:11.5px;color:var(--sub);width:100%}
.course .c-body{padding:0 18px 18px;border-top:1px dashed var(--line)}
.course .c-body p.intro{font-size:13px;color:var(--sub);margin:12px 0 8px;line-height:1.7}
.course .c-body ul{list-style:none}
.course .c-body li{font-size:13px;line-height:1.8;padding-left:16px;position:relative}
.course .c-body li::before{content:"▸";position:absolute;left:0;color:var(--pink)}
.course img{width:100%;border-radius:10px;border:1px solid var(--line);margin:10px 0}
.course .img-note{font-size:11.5px;color:var(--sub);margin:2px 0 8px}
.course table{margin:8px 0}

/* ===== 场馆图鉴 ===== */
.venue{background:#fbfaff;border:1px solid var(--line);border-radius:12px;padding:18px;position:relative}
.venue h3{font-size:15px;color:var(--deep);margin-bottom:2px;padding-right:78px}
.venue .v-area{font-size:12px;color:var(--sub);margin-bottom:10px}
.venue .v-badge{position:absolute;top:16px;right:16px;font-size:11px;border-radius:6px;padding:2px 8px;background:#e8f1fb;color:#185fa5}
.venue .v-badge.measured{background:#e2f6ec;color:var(--ok)}
.venue dl{display:grid;grid-template-columns:64px 1fr;gap:4px 10px;font-size:12.8px;margin-bottom:8px}
.venue dt{color:var(--sub);white-space:nowrap}
.venue dd{color:var(--ink);line-height:1.7}
.venue .v-spots{font-size:12.5px;color:var(--ink);line-height:1.7;background:#fff;border:1px dashed #e4dcf5;border-radius:8px;padding:8px 12px}
.venue .v-spots b{color:var(--pink)}

/* ===== 词典 ===== */
.gloss-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}
.g-term{background:#fbfaff;border:1px solid var(--line);border-radius:10px;padding:10px 14px}
.g-term b{color:var(--deep);font-size:13.5px}
.g-term span{display:inline-block;font-size:10.5px;color:#fff;border-radius:5px;padding:1px 7px;margin-left:6px;vertical-align:2px}
.g-term p{font-size:12.5px;color:var(--ink);line-height:1.7;margin-top:4px}
.cat-周边{background:#7c4dff}.cat-约拍{background:#e0457b}.cat-展会{background:#4a90d9}.cat-摄影{background:#2e9e6b}.cat-社群{background:#d97b2a}

/* ===== 约拍社 ===== */
.club-head{display:flex;gap:20px;align-items:center;flex-wrap:wrap;background:linear-gradient(120deg,#f5f0ff,#ffeef6);border-radius:14px;padding:22px;margin-bottom:16px}
.club-head img{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 6px 18px rgba(120,60,180,.18)}
.club-head .ch-txt h3{font-size:18px;color:#4a3390;margin-bottom:6px}
.club-head .ch-txt p{font-size:13px;color:var(--sub);line-height:1.8;max-width:640px}
.sop-flow{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
.sop-step{background:#fff;border:1px solid #e4dcf5;border-radius:10px;padding:10px 12px;font-size:12.5px;flex:1;min-width:150px}
.sop-step b{display:block;color:var(--deep);font-size:13px;margin-bottom:3px}
.sop-step.no-line{border:none;background:transparent;padding:10px 2px;color:#cfcde0;font-size:16px;flex:0;min-width:0}

/* ===== 首页 ===== */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px}
.stat{background:var(--card);border-radius:14px;padding:16px 18px;box-shadow:0 4px 20px rgba(80,40,140,.06);text-align:center}
.stat .num{font-size:26px;font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat .lab{font-size:12px;color:var(--sub);margin-top:2px}
.ch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:20px}
.ch-entry{display:flex;gap:14px;align-items:center;background:var(--card);border-radius:14px;padding:18px;box-shadow:0 4px 20px rgba(80,40,140,.06);text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s}
.ch-entry:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(90,50,150,.14)}
.ch-entry .ico{font-size:28px;width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:#f4effc;border-radius:14px;flex-shrink:0}
.ch-entry b{display:block;font-size:15px;color:var(--deep)}
.ch-entry span{font-size:12px;color:var(--sub)}
.mini-list{list-style:none}
.mini-list li{display:flex;gap:10px;align-items:baseline;padding:9px 2px;border-bottom:1px dashed var(--line);font-size:13px;flex-wrap:wrap}
.mini-list li:last-child{border-bottom:none}
.mini-list .ml-date{color:var(--purple);font-weight:700;white-space:nowrap;font-size:12.5px}

/* ===== 了解我们 ===== */
.about-hero{display:flex;gap:20px;align-items:center;flex-wrap:wrap;background:linear-gradient(120deg,#f5f0ff,#ffeef6);border-radius:14px;padding:22px;margin-bottom:16px}
.about-hero img{width:110px;height:110px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 6px 18px rgba(120,60,180,.18)}
.about-hero .bh-txt h3{font-size:18px;color:#4a3390;margin-bottom:6px}
.about-hero .bh-txt p{font-size:13px;color:var(--sub);line-height:1.8;max-width:640px}
.pill-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.pill{background:#fff;border:1px solid #e4dcf5;color:#6a3fd0;border-radius:999px;padding:3px 14px;font-size:12.5px}

/* ===== 出行助手 travel ===== */
.tmod{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.tmod button{flex:1;min-width:150px;border:1px solid var(--line);background:#fafafd;border-radius:14px;padding:14px 10px;font-size:13px;color:var(--sub);cursor:pointer;text-align:center;transition:box-shadow .2s}
.tmod button b{display:block;font-size:15px;margin-bottom:2px;color:var(--ink)}
.tmod button:hover{box-shadow:0 6px 18px rgba(90,50,150,.10)}
.tmod button.on{background:var(--grad);color:#fff;border-color:transparent}
.tmod button.on b,.tmod button.on small{color:#fff}
.mod{display:none;animation:fadein .25s ease}
.mod.on{display:block}
.frow{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.frow label{font-size:13px;color:var(--sub);white-space:nowrap}
.frow select,.frow input[type=number],.frow input[type=text]{border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:13px;background:#fff;color:var(--ink)}
.btn{border:none;border-radius:999px;padding:8px 22px;font-size:13px;cursor:pointer;background:var(--grad);color:#fff}
.btn:hover{opacity:.92}
.btn.ghost{background:#fff;color:var(--purple);border:1px solid #d8ccf5}
.tl-day{margin-bottom:18px}
.tl-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.tl-head .d-badge{background:var(--grad);color:#fff;border-radius:8px;padding:3px 10px;font-size:12px;font-weight:700;white-space:nowrap}
.tl-head b{font-size:14.5px;color:var(--deep)}
.tl-item{display:flex;gap:10px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:13px;line-height:1.7}
.tl-item .tm{flex-shrink:0;width:70px;font-weight:700;color:var(--purple);font-size:12px}
.rolebox{margin-top:10px;background:#fff6fa;border:1px dashed #f3c1d8;border-radius:10px;padding:10px 14px;font-size:12.5px;line-height:1.9}
.rolebox b{color:var(--hot)}
.ven-card{background:#fbfaff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-top:12px;font-size:13px;line-height:1.9}
.ven-card b{color:var(--deep)}
.ven-card .v-metro{color:#185fa5}
.pk-prog{height:8px;background:#efeaff;border-radius:99px;overflow:hidden;margin:8px 0 14px}
.pk-prog i{display:block;height:100%;background:var(--grad);border-radius:99px;transition:width .3s}
.pk-item{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:13px;cursor:pointer;user-select:none;line-height:1.6}
.pk-item input{accent-color:var(--purple)}
.pk-item.done span{color:#b0adc2;text-decoration:line-through}
.pk-group{margin-bottom:12px}
.pk-group h4{font-size:13px;color:var(--deep);margin-bottom:4px;padding-bottom:4px;border-bottom:1px solid var(--line)}
.ld-chip{display:inline-flex;align-items:center;gap:4px;background:#efeaff;color:#5b3fa8;border-radius:999px;padding:4px 12px;font-size:12.5px;margin:2px 4px 2px 0;cursor:pointer}
.ld-chip.off{background:#f1f1f6;color:#a5a3b8}
.ld-chip .x{cursor:pointer;font-weight:700;padding-left:2px}
.ld-settle{background:linear-gradient(120deg,#f5f0ff,#ffeef6);border-radius:12px;padding:14px 16px;font-size:13px;line-height:2;margin-top:12px}
.ld-settle .give{color:var(--hot);font-weight:700}
.ld-sum{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}
.ld-sum .stat-sm{background:#fbfaff;border:1px solid var(--line);border-radius:10px;padding:8px 16px;font-size:12.5px}
.ld-sum .stat-sm b{color:var(--deep);font-size:16px}

footer{text-align:center;font-size:12px;color:var(--sub);padding:20px 0 40px;line-height:1.8}
@media (max-width:640px){
  .hero-txt h1{font-size:24px}
  .searchbox input{width:120px}
  .venue dl{grid-template-columns:56px 1fr}
  .tmod button{min-width:46%}
  .tl-item{flex-direction:column;gap:2px}
  .tl-item .tm{width:auto}
}
