/* ========================================
   PPT下载站主题样式
   ======================================== */
:root {
  --bg: #f5f6fa;
  --bg-white: #ffffff;
  --bg-card: #ffffff;
  --bg-hover: #f0f2f8;
  --bg-tag: #f0f2f8;

  --text-main: #1a1a2e;
  --text-sub: #4a4a6a;
  --text-muted: #8e8ea0;
  --text-light: #b0b0c0;

  --border: #e8eaf0;
  --border-light: #f0f1f5;

  --brand: #6c5ce7;
  --brand-dark: #5a4bd1;
  --brand-light: #a29bfe;
  --brand-bg: #f3f0ff;

  --accent: #fd79a8;
  --accent-bg: #fff0f5;

  --success: #00b894;
  --success-bg: #e8faf4;
  --warning: #fdcb6e;
  --danger: #e17055;

  --radius: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px;

  --shadow: 0 2px 12px rgba(0,0,0,0.06);
  --shadow-md: 0 4px 20px rgba(0,0,0,0.08);
  --shadow-lg: 0 8px 40px rgba(0,0,0,0.12);

  --container: 1240px;
  --header-h: 64px;
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  color: var(--text-main);
  background: var(--bg);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  line-height: 1.6;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; border:none; background:none; }
img { display:block; max-width:100%; height:auto; }
ul,ol { list-style:none; }

.container { width:min(100% - 32px, var(--container)); margin-inline:auto; }

/* ===== HEADER ===== */
.ppt-header {
  position:sticky; top:0; z-index:100;
  background:var(--bg-white);
  border-bottom:1px solid var(--border);
  height:var(--header-h);
}
.ppt-header__inner {
  height:100%; display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.ppt-logo {
  display:inline-flex; align-items:center; gap:10px;
  font-weight:800; font-size:20px; color:var(--text-main);
  flex-shrink:0;
}
.ppt-logo__icon {
  width:38px; height:38px; border-radius:10px;
  background:linear-gradient(135deg, var(--brand), var(--brand-light));
  display:grid; place-items:center; color:#fff; font-weight:900; font-size:15px;
  box-shadow:0 4px 12px rgba(108,92,231,0.3);
}
.ppt-logo:hover { color:var(--brand); }

.ppt-nav { display:flex; align-items:center; gap:4px; }
.ppt-nav a {
  display:block; padding:8px 14px; font-size:0.9rem; font-weight:500;
  color:var(--text-sub); border-radius:8px; transition:0.2s;
  white-space:nowrap;
}
.ppt-nav a:hover, .ppt-nav a.is-active {
  color:var(--brand); background:var(--brand-bg);
}
.ppt-nav .nav-dropdown { position:relative; }
.ppt-nav .dropdown-menu {
  position:absolute; top:100%; left:0;
  background:var(--bg-white); border:1px solid var(--border);
  border-radius:var(--radius); box-shadow:var(--shadow-md);
  min-width:180px; padding:8px;
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:0.2s; z-index:200;
}
.ppt-nav .nav-dropdown:hover .dropdown-menu {
  opacity:1; visibility:visible; transform:translateY(2px);
}
.ppt-nav .dropdown-menu a {
  padding:8px 12px; font-size:0.85rem; border-radius:6px;
}
.ppt-nav .dropdown-menu a:hover { background:var(--brand-bg); color:var(--brand); }

.ppt-header__right { display:flex; align-items:center; gap:12px; flex-shrink:0; }

.ppt-search-mini { position:relative; }
.ppt-search-mini input {
  height:38px; padding:0 14px 0 36px;
  border:1.5px solid var(--border); border-radius:20px;
  background:var(--bg); font-size:0.85rem; outline:none;
  width:200px; transition:0.25s;
}
.ppt-search-mini input:focus {
  border-color:var(--brand); background:var(--bg-white);
  width:260px; box-shadow:0 0 0 3px rgba(108,92,231,0.1);
}
.ppt-search-mini__icon {
  position:absolute; left:12px; top:50%; transform:translateY(-50%);
  color:var(--text-muted); pointer-events:none;
}

.menu-toggle {
  display:none; flex-direction:column; gap:5px;
  width:28px; height:22px; cursor:pointer; background:none; border:none; padding:0;
}
.menu-toggle span { display:block; height:2px; background:var(--text-main); border-radius:2px; transition:0.2s; }

/* ===== HERO ===== */
.ppt-hero {
  background:linear-gradient(135deg, #6c5ce7 0%, #a29bfe 50%, #fd79a8 100%);
  padding:60px 0 56px; color:#fff; position:relative; overflow:hidden;
}
.ppt-hero::before {
  content:''; position:absolute; top:-50%; right:-10%;
  width:500px; height:500px; border-radius:50%;
  background:rgba(255,255,255,0.08);
}
.ppt-hero::after {
  content:''; position:absolute; bottom:-30%; left:10%;
  width:300px; height:300px; border-radius:50%;
  background:rgba(255,255,255,0.05);
}
.ppt-hero__inner { position:relative; z-index:1; text-align:center; }
.ppt-hero__title {
  font-size:2.2rem; font-weight:800; margin-bottom:8px;
  letter-spacing:-0.02em;
}
.ppt-hero__sub { font-size:1rem; opacity:0.9; margin-bottom:28px; }

.ppt-hero-search {
  max-width:620px; margin:0 auto; display:flex;
  background:var(--bg-white); border-radius:var(--radius-lg);
  overflow:hidden; box-shadow:0 8px 32px rgba(0,0,0,0.15);
}
.ppt-hero-search input {
  flex:1; height:52px; padding:0 20px;
  border:none; outline:none; font-size:1rem; color:var(--text-main);
  background:transparent;
}
.ppt-hero-search input::placeholder { color:var(--text-muted); }
.ppt-hero-search button {
  width:120px; height:52px;
  background:var(--brand); color:#fff; font-weight:700; font-size:1rem;
  transition:0.2s; flex-shrink:0;
}
.ppt-hero-search button:hover { background:var(--brand-dark); }

/* ===== CATEGORIES BAR ===== */
.ppt-cate-bar {
  background:var(--bg-white); border-bottom:1px solid var(--border-light);
  padding:14px 0;
}
.ppt-cate-bar__inner {
  display:flex; align-items:center; gap:10px;
  overflow-x:auto; scrollbar-width:none;
}
.ppt-cate-bar__inner::-webkit-scrollbar { display:none; }
.ppt-cate-chip {
  display:inline-flex; align-items:center; gap:5px;
  padding:7px 16px; border-radius:20px; font-size:0.85rem; font-weight:500;
  color:var(--text-sub); background:var(--bg); white-space:nowrap;
  transition:0.2s; border:1px solid transparent;
}
.ppt-cate-chip:hover, .ppt-cate-chip.is-active {
  color:var(--brand); background:var(--brand-bg);
  border-color:rgba(108,92,231,0.2);
}
.ppt-cate-chip__icon { font-size:1rem; }

/* ===== SECTION ===== */
.ppt-section { padding:36px 0; }
.ppt-section__head {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:20px;
}
.ppt-section__title {
  font-size:1.3rem; font-weight:700; color:var(--text-main);
  display:flex; align-items:center; gap:8px;
}
.ppt-section__title-icon {
  width:28px; height:28px; border-radius:8px;
  display:grid; place-items:center; font-size:14px;
}
.ppt-section__more {
  font-size:0.85rem; color:var(--text-muted); font-weight:500;
  display:flex; align-items:center; gap:4px; transition:0.2s;
}
.ppt-section__more:hover { color:var(--brand); }

/* ===== PPT CARD ===== */
.ppt-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(230px, 1fr));
  gap:20px;
}
.ppt-card {
  background:var(--bg-white); border-radius:var(--radius-lg);
  overflow:hidden; transition:0.3s; border:1px solid var(--border-light);
  position:relative;
}
.ppt-card:hover {
  transform:translateY(-4px);
  box-shadow:var(--shadow-lg);
  border-color:rgba(108,92,231,0.15);
}
.ppt-card__thumb {
  position:relative; width:100%; padding-top:56.25%;
  overflow:hidden; background:linear-gradient(135deg,#f8f9fe,#f0f2f8);
}
.ppt-card__thumb img {
  position:absolute; top:0; left:0; width:100%; height:100%;
  object-fit:cover; transition:0.4s;
}
.ppt-card:hover .ppt-card__thumb img { transform:scale(1.05); }
.ppt-card__thumb-empty {
  position:absolute; top:0; left:0; width:100%; height:100%;
  display:grid; place-items:center;
  background:linear-gradient(135deg,#f0f2f8,#e8eaf6);
  color:var(--text-muted); font-size:2rem;
}
.ppt-card__format {
  position:absolute; top:10px; left:10px;
  padding:3px 10px; border-radius:6px;
  background:linear-gradient(135deg,var(--brand),var(--brand-light));
  color:#fff; font-size:0.75rem; font-weight:700;
  letter-spacing:0.5px; z-index:2;
}
.ppt-card__pages {
  position:absolute; top:10px; right:10px;
  padding:3px 8px; border-radius:6px;
  background:rgba(0,0,0,0.55); color:#fff;
  font-size:0.75rem; font-weight:500; z-index:2;
  backdrop-filter:blur(4px);
}

.ppt-card__body { padding:14px 16px 16px; }
.ppt-card__title {
  font-size:0.92rem; font-weight:600; color:var(--text-main);
  line-height:1.5; height:2.8em; overflow:hidden;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  margin-bottom:10px;
}
.ppt-card__meta {
  display:flex; align-items:center; justify-content:space-between;
  font-size:0.78rem; color:var(--text-muted);
}
.ppt-card__meta-left { display:flex; align-items:center; gap:12px; }
.ppt-card__meta-item { display:flex; align-items:center; gap:3px; }
.ppt-card__meta-item svg { width:14px; height:14px; }
.ppt-card__dl-btn {
  display:inline-flex; align-items:center; gap:4px;
  padding:5px 12px; border-radius:6px; font-size:0.78rem; font-weight:600;
  color:var(--brand); background:var(--brand-bg); transition:0.2s;
}
.ppt-card__dl-btn:hover { background:var(--brand); color:#fff; }

/* ===== DETAIL PAGE ===== */
.ppt-detail { padding:24px 0 40px; }
.ppt-detail__layout { display:flex; gap:28px; }

.ppt-detail__main { flex:1; min-width:0; }
.ppt-detail__side { width:320px; flex-shrink:0; }

.ppt-detail-card {
  background:var(--bg-white); border-radius:var(--radius-lg);
  border:1px solid var(--border-light); overflow:hidden;
}

/* Breadcrumb */
.ppt-breadcrumb {
  padding:16px 0; font-size:0.85rem; color:var(--text-muted);
  display:flex; align-items:center; gap:6px;
}
.ppt-breadcrumb a { color:var(--text-sub); transition:0.2s; }
.ppt-breadcrumb a:hover { color:var(--brand); }
.ppt-breadcrumb__sep { color:var(--text-light); }

/* Detail Header */
.ppt-detail__header { padding:24px 28px 0; }
.ppt-detail__title {
  font-size:1.5rem; font-weight:800; line-height:1.4;
  color:var(--text-main); margin-bottom:14px;
}
.ppt-detail__info-row {
  display:flex; flex-wrap:wrap; gap:16px;
  font-size:0.85rem; color:var(--text-muted);
}
.ppt-detail__info-item { display:flex; align-items:center; gap:4px; }
.ppt-detail__info-item svg { width:15px; height:15px; }

/* File Info */
.ppt-file-info {
  padding:20px 28px; border-top:1px solid var(--border-light);
  margin-top:20px;
}
.ppt-file-info__title {
  font-size:1rem; font-weight:700; margin-bottom:14px;
  display:flex; align-items:center; gap:8px; color:var(--text-main);
}
.ppt-file-info__grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:14px 24px;
}
.ppt-file-info__item { display:flex; flex-direction:column; gap:3px; }
.ppt-file-info__label { font-size:0.8rem; color:var(--text-muted); font-weight:500; }
.ppt-file-info__value { font-size:0.9rem; color:var(--text-main); display:flex; flex-wrap:wrap; gap:5px; align-items:center; }
.ppt-badge-format {
  display:inline-block; padding:2px 10px; border-radius:5px;
  background:linear-gradient(135deg,var(--brand),var(--brand-light));
  color:#fff; font-size:0.78rem; font-weight:700;
}
.ppt-badge-tag {
  display:inline-block; padding:2px 8px; border-radius:4px;
  font-size:0.78rem;
}
.ppt-badge-tag--usage { background:var(--success-bg); color:var(--success); }
.ppt-badge-tag--audience { background:#e8f0fe; color:#3367d6; }
.ppt-file-info__block { margin-top:16px; padding-top:14px; border-top:1px solid var(--border-light); }
.ppt-file-info__block-label { font-size:0.8rem; color:var(--text-muted); font-weight:500; margin-bottom:6px; }
.ppt-file-info__block p { font-size:0.88rem; color:var(--text-sub); line-height:1.7; margin:0; }
.ppt-file-info__block pre {
  margin:6px 0 0; padding:14px; background:var(--bg);
  border-radius:var(--radius); font-size:0.85rem; line-height:1.7;
  color:var(--text-sub); white-space:pre-wrap; word-wrap:break-word;
  font-family:inherit; border:1px solid var(--border-light);
}

/* Content */
.ppt-detail__content { padding:20px 28px; line-height:1.8; color:var(--text-sub); font-size:0.95rem; }
.ppt-detail__content img { border-radius:var(--radius); margin:12px 0; }

/* Download Button */
.ppt-detail__download {
  padding:20px 28px 28px; text-align:center;
}
.ppt-dl-btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 48px; border-radius:var(--radius-lg);
  background:linear-gradient(135deg,var(--brand),var(--brand-light));
  color:#fff; font-size:1.05rem; font-weight:700;
  box-shadow:0 6px 24px rgba(108,92,231,0.3);
  transition:0.3s;
}
.ppt-dl-btn:hover {
  transform:translateY(-2px);
  box-shadow:0 8px 32px rgba(108,92,231,0.4);
}
.ppt-dl-btn svg { width:20px; height:20px; }
.ppt-dl-hint {
  margin-top:10px; font-size:0.82rem; color:var(--text-muted);
}

/* Tags */
.ppt-tags { padding:0 28px 20px; display:flex; flex-wrap:wrap; gap:8px; }
.ppt-tag {
  padding:5px 12px; border-radius:6px; font-size:0.8rem;
  color:var(--text-sub); background:var(--bg); transition:0.2s;
  border:1px solid var(--border-light);
}
.ppt-tag:hover { color:var(--brand); background:var(--brand-bg); border-color:rgba(108,92,231,0.2); }

/* FAQ */
.ppt-faq { padding:0 28px 24px; }
.ppt-faq__title { font-size:1rem; font-weight:700; margin-bottom:12px; }
.ppt-faq__item { border:1px solid var(--border-light); border-radius:var(--radius); margin-bottom:8px; overflow:hidden; }
.ppt-faq__item summary {
  padding:12px 16px; font-size:0.88rem; font-weight:500;
  cursor:pointer; color:var(--text-main); transition:0.2s;
  list-style:none; display:flex; justify-content:space-between; align-items:center;
}
.ppt-faq__item summary::after { content:'+'; font-size:1.1rem; color:var(--text-muted); transition:0.2s; }
.ppt-faq__item[open] summary::after { content:'−'; color:var(--brand); }
.ppt-faq__item summary:hover { color:var(--brand); }
.ppt-faq__item p { padding:0 16px 12px; font-size:0.85rem; color:var(--text-sub); line-height:1.7; }

/* Copyright */
.ppt-copyright {
  padding:20px 28px; border-top:1px solid var(--border-light);
  font-size:0.82rem; color:var(--text-muted); line-height:1.8;
}
.ppt-copyright strong { color:var(--text-sub); }

/* Prev/Next */
.ppt-pn { display:flex; gap:12px; padding:0 28px 24px; }
.ppt-pn a {
  flex:1; padding:14px 16px; border-radius:var(--radius);
  border:1px solid var(--border-light); transition:0.2s;
}
.ppt-pn a:hover { border-color:rgba(108,92,231,0.3); background:var(--brand-bg); }
.ppt-pn a.disabled { opacity:0.4; pointer-events:none; }
.ppt-pn__hint { font-size:0.78rem; color:var(--text-muted); margin-bottom:4px; }
.ppt-pn__text { font-size:0.88rem; color:var(--text-main); font-weight:500;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display:block;
  max-width:100%;
}

/* ===== SIDEBAR ===== */
.ppt-side-card {
  background:var(--bg-white); border-radius:var(--radius-lg);
  border:1px solid var(--border-light); overflow:hidden; margin-bottom:16px;
}
.ppt-side-card__head {
  padding:14px 18px; font-size:0.92rem; font-weight:700;
  border-bottom:1px solid var(--border-light);
  display:flex; align-items:center; gap:6px; color:var(--text-main);
}
.ppt-side-card__head svg { width:16px; height:16px; color:var(--brand); }
.ppt-side-card__body { padding:10px 18px 14px; }

.ppt-side-search { display:flex; margin-bottom:8px; }
.ppt-side-search input {
  flex:1; height:38px; padding:0 12px; border:1.5px solid var(--border);
  border-radius:8px 0 0 8px; font-size:0.85rem; outline:none;
  transition:0.2s;
}
.ppt-side-search input:focus { border-color:var(--brand); }
.ppt-side-search button {
  width:56px; height:38px; background:var(--brand); color:#fff;
  font-size:0.85rem; font-weight:600; border-radius:0 8px 8px 0;
}
.ppt-side-search button:hover { background:var(--brand-dark); }

.ppt-rank-item {
  display:flex; align-items:center; gap:10px;
  padding:8px 0; border-bottom:1px solid var(--border-light);
}
.ppt-rank-item:last-child { border-bottom:none; }
.ppt-rank-no {
  width:22px; height:22px; border-radius:6px;
  display:grid; place-items:center; font-size:0.75rem; font-weight:700;
  color:var(--text-muted); background:var(--bg); flex-shrink:0;
}
.ppt-rank-no--top { color:#fff; background:var(--brand); }
.ppt-rank-text {
  flex:1; font-size:0.85rem; color:var(--text-sub);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.ppt-rank-text:hover { color:var(--brand); }
.ppt-rank-num { font-size:0.78rem; color:var(--text-muted); flex-shrink:0; }

/* ===== DOWNLOAD PAGE ===== */
.ppt-dl-page { padding:40px 0; }
.ppt-dl-card {
  max-width:680px; margin:0 auto;
  background:var(--bg-white); border-radius:var(--radius-lg);
  border:1px solid var(--border-light); overflow:hidden;
}
.ppt-dl-card__head {
  padding:24px 28px; background:linear-gradient(135deg,var(--brand),var(--brand-light));
  color:#fff; font-weight:700; font-size:1.1rem;
}
.ppt-dl-row {
  display:flex; align-items:center; gap:14px;
  padding:16px 28px; border-bottom:1px solid var(--border-light);
  transition:0.2s;
}
.ppt-dl-row:hover { background:var(--bg-hover); }
.ppt-dl-row:last-child { border-bottom:none; }
.ppt-dl-tag {
  padding:5px 12px; border-radius:6px; font-size:0.8rem; font-weight:600;
  flex-shrink:0; color:#fff;
}
.ppt-dl-tag--baidu { background:#3245df; }
.ppt-dl-tag--quark { background:#f90; }
.ppt-dl-tag--ali { background:#1677ff; }
.ppt-dl-tag--xunlei { background:#e53935; }
.ppt-dl-tag--uc { background:#52c41a; }
.ppt-dl-tag--other { background:var(--text-muted); }
.ppt-dl-info { flex:1; min-width:0; }
.ppt-dl-url {
  font-size:0.82rem; color:var(--text-sub);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  max-width:320px; display:block;
}
.ppt-dl-code { font-size:0.82rem; color:var(--text-muted); margin-top:3px; }
.ppt-dl-code b { color:var(--brand); font-weight:700; }
.ppt-dl-copy {
  padding:5px 12px; border-radius:6px; font-size:0.78rem; font-weight:600;
  color:var(--brand); background:var(--brand-bg); transition:0.2s;
  cursor:pointer;
}
.ppt-dl-copy:hover { background:var(--brand); color:#fff; }
.ppt-dl-action {
  display:inline-flex; align-items:center; gap:5px;
  padding:7px 16px; border-radius:8px;
  background:var(--brand); color:#fff; font-size:0.82rem; font-weight:600;
  transition:0.2s;
}
.ppt-dl-action:hover { background:var(--brand-dark); }
.ppt-dl-empty {
  padding:48px 28px; text-align:center; color:var(--text-muted);
}
.ppt-dl-empty__title { font-size:1.1rem; font-weight:600; margin-bottom:6px; color:var(--text-sub); }
.ppt-dl-empty__hint { font-size:0.85rem; }
.ppt-dl-footer {
  padding:20px 28px; text-align:center; font-size:0.82rem; color:var(--text-muted);
  border-top:1px solid var(--border-light);
}

/* ===== FILTER CARD ===== */
.ppt-filter {
  background:var(--bg-white); border-radius:var(--radius-lg);
  border:1px solid var(--border-light); padding:18px 24px;
  display:flex; gap:12px; align-items:center; margin-bottom:24px;
  flex-wrap:wrap;
}
.ppt-filter input {
  flex:1; min-width:200px; height:42px; padding:0 14px;
  border:1.5px solid var(--border); border-radius:8px;
  font-size:0.9rem; outline:none; transition:0.2s;
}
.ppt-filter input:focus { border-color:var(--brand); box-shadow:0 0 0 3px rgba(108,92,231,0.08); }
.ppt-filter select {
  height:42px; padding:0 12px; border:1.5px solid var(--border);
  border-radius:8px; font-size:0.9rem; outline:none;
  background:var(--bg-white); color:var(--text-sub); cursor:pointer;
}
.ppt-filter select:focus { border-color:var(--brand); }
.ppt-filter__btn {
  height:42px; padding:0 24px; background:var(--brand); color:#fff;
  border-radius:8px; font-size:0.9rem; font-weight:600;
  transition:0.2s;
}
.ppt-filter__btn:hover { background:var(--brand-dark); }

/* ===== PAGINATION ===== */
.ppt-pagination { display:flex; gap:6px; justify-content:center; padding:32px 0; }
.ppt-pagination a, .ppt-pagination span {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:36px; height:36px; padding:0 10px;
  border-radius:8px; font-size:0.85rem; font-weight:500;
  border:1px solid var(--border-light); color:var(--text-sub);
  transition:0.2s;
}
.ppt-pagination a:hover { color:var(--brand); border-color:var(--brand); background:var(--brand-bg); }
.ppt-pagination .active { background:var(--brand); color:#fff; border-color:var(--brand); }
.ppt-pagination .disabled { opacity:0.4; pointer-events:none; }

/* ===== FOOTER ===== */
.ppt-footer {
  background:var(--bg-white); border-top:1px solid var(--border);
  padding:28px 0; margin-top:auto;
}
.ppt-footer__inner {
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:12px;
  font-size:0.82rem; color:var(--text-muted);
}
.ppt-footer__links { display:flex; gap:16px; }
.ppt-footer__links a { color:var(--text-muted); transition:0.2s; }
.ppt-footer__links a:hover { color:var(--brand); }

/* ===== RESPONSIVE ===== */
@media(max-width:1024px) {
  .ppt-detail__side { width:280px; }
}
@media(max-width:768px) {
  .ppt-nav { display:none; }
  .menu-toggle { display:flex; }
  .ppt-nav.open {
    display:flex; flex-direction:column; position:absolute;
    top:var(--header-h); left:0; right:0; background:var(--bg-white);
    border-bottom:1px solid var(--border); padding:12px; z-index:200;
    box-shadow:var(--shadow-md);
  }
  .ppt-hero__title { font-size:1.6rem; }
  .ppt-hero { padding:40px 0 36px; }
  .ppt-detail__layout { flex-direction:column; }
  .ppt-detail__side { width:100%; }
  .ppt-grid { grid-template-columns:repeat(auto-fill, minmax(160px,1fr)); gap:12px; }
  .ppt-pn { flex-direction:column; }
  .ppt-footer__inner { flex-direction:column; text-align:center; }
  .ppt-search-mini { display:none; }
  .ppt-file-info__grid { grid-template-columns:1fr 1fr; }
}

/* ===== PAGE HERO (list/search) ===== */
.ppt-page-hero { padding:24px 0 4px; }
.ppt-page-hero__title { font-size:1.4rem; font-weight:700; margin-bottom:4px; }
.ppt-page-hero__desc { font-size:0.88rem; color:var(--text-muted); }

/* ===== AD SLOTS ===== */
.ad-slot { margin:16px 0; text-align:center; }

/* ===== EMPTY STATE ===== */
.ppt-empty {
  padding:60px 20px; text-align:center;
}
.ppt-empty__icon { font-size:3rem; margin-bottom:12px; color:var(--text-light); }
.ppt-empty__text { font-size:1rem; color:var(--text-muted); }

/* ===== USER CENTER ===== */
.ppt-user { padding:28px 0; }
.ppt-user__layout { display:flex; gap:28px; }
.ppt-user__side { width:220px; flex-shrink:0; }
.ppt-user__main { flex:1; min-width:0; }

.ppt-side-menu-item {
  display:flex; align-items:center; gap:8px;
  padding:11px 18px; font-size:0.88rem; font-weight:500;
  color:var(--text-sub); transition:0.2s;
  border-left:3px solid transparent;
}
.ppt-side-menu-item:hover { color:var(--brand); background:var(--brand-bg); }
.ppt-side-menu-item.is-active {
  color:var(--brand); background:var(--brand-bg);
  border-left-color:var(--brand); font-weight:600;
}

.ppt-plan-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:16px;
}
.ppt-plan-card {
  background:var(--bg-white); border:1.5px solid var(--border-light);
  border-radius:var(--radius-lg); padding:24px 20px; text-align:center;
  transition:0.3s; position:relative; overflow:hidden;
}
.ppt-plan-card:hover { border-color:rgba(108,92,231,0.3); box-shadow:var(--shadow); }
.ppt-plan-card--featured {
  border-color:var(--brand);
  background:linear-gradient(180deg, var(--brand-bg) 0%, var(--bg-white) 40%);
}
.ppt-plan-card--featured::before {
  content:'当前'; position:absolute; top:12px; right:-28px;
  background:var(--brand); color:#fff; font-size:0.72rem; font-weight:700;
  padding:2px 32px; transform:rotate(45deg);
}
.ppt-plan-name { font-size:1.05rem; font-weight:700; margin-bottom:12px; color:var(--text-main); }
.ppt-plan-price { font-size:2rem; font-weight:800; color:var(--brand); }
.ppt-plan-period { font-size:0.82rem; color:var(--text-muted); margin-bottom:16px; }
.ppt-plan-features { text-align:left; font-size:0.82rem; color:var(--text-sub); margin-bottom:20px; padding:0; }
.ppt-plan-features li { padding:4px 0; list-style:none; }
.ppt-plan-features li::before { content:'✓'; color:var(--success); font-weight:700; margin-right:6px; }
.ppt-plan-btn {
  display:inline-block; padding:9px 24px; border-radius:8px;
  font-size:0.88rem; font-weight:600; transition:0.2s;
}
.ppt-plan-btn--upgrade { background:var(--brand); color:#fff; }
.ppt-plan-btn--upgrade:hover { background:var(--brand-dark); }
.ppt-plan-btn--current { background:var(--bg); color:var(--text-muted); cursor:default; }

.ppt-form-group { margin-bottom:18px; }
.ppt-form-group label {
  display:block; font-size:0.85rem; font-weight:600;
  color:var(--text-main); margin-bottom:6px;
}
.ppt-form-input {
  width:100%; height:44px; padding:0 14px;
  border:1.5px solid var(--border); border-radius:8px;
  font-size:0.9rem; outline:none; transition:0.2s;
}
.ppt-form-input:focus { border-color:var(--brand); box-shadow:0 0 0 3px rgba(108,92,231,0.08); }
.ppt-form-input:disabled { background:var(--bg); color:var(--text-muted); }
.ppt-form-btn {
  height:44px; padding:0 28px; background:var(--brand); color:#fff;
  border:none; border-radius:8px; font-size:0.95rem; font-weight:600;
  cursor:pointer; transition:0.2s;
}
.ppt-form-btn:hover { background:var(--brand-dark); }

.ppt-data-table { width:100%; border-collapse:collapse; font-size:0.85rem; }
.ppt-data-table th {
  padding:10px 14px; text-align:left; font-weight:600;
  color:var(--text-sub); background:var(--bg);
  border-bottom:1px solid var(--border-light);
}
.ppt-data-table td {
  padding:10px 14px; border-bottom:1px solid var(--border-light);
  color:var(--text-sub);
}

@media(max-width:768px) {
  .ppt-user__layout { flex-direction:column; }
  .ppt-user__side { width:100%; }
  .ppt-plan-grid { grid-template-columns:1fr; }
}
