/* MacDog 视觉复刻层（对标 https://game.fanjugou17.top/ ）—— tokens.css 需先引入 */

html,body{margin:0;padding:0;background:var(--color-background);color:var(--color-text);font-family:var(--font-family);min-height:100vh}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit;border:none;background:none;cursor:pointer}
.muted{color:var(--color-text-muted);font-size:var(--font-size-sm)}

.md-app{min-height:100vh;display:flex;flex-direction:column;padding-top:56px;padding-bottom:72px}
@media(min-width:768px){.md-app{padding-top:64px;padding-bottom:0}}

/* Header */
.md-header{position:fixed;top:0;left:0;right:0;height:56px;z-index:1030;
  background:color-mix(in srgb,var(--color-white) 92%,transparent);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid color-mix(in srgb,var(--color-black) 8%,transparent)}
@media(min-width:768px){.md-header{height:64px}}
.md-header__inner{max-width:var(--container-md);margin:0 auto;height:100%;padding:0 16px;
  display:flex;align-items:center;gap:16px}
.md-logo{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:1.15rem;color:var(--color-primary);flex-shrink:0}
.md-logo img{width:28px;height:28px}
.md-logo span{background:linear-gradient(135deg,var(--pink-500),var(--pink-600));-webkit-background-clip:text;background-clip:text;color:transparent}
.md-nav{display:none;align-items:center;gap:4px;flex:1}
@media(min-width:768px){.md-nav{display:flex}}
.md-nav a{padding:8px 14px;border-radius:999px;font-size:14px;font-weight:500;color:var(--color-text-secondary);transition:.15s}
.md-nav a:hover{color:var(--color-primary);background:var(--color-hover-bg)}
.md-nav a.is-active{color:var(--color-primary);font-weight:700;background:var(--color-primary-lighter)}
.md-search{flex:1;max-width:420px;margin-left:auto}
.md-search form{display:flex;align-items:center;height:40px;border:1px solid var(--color-border);border-radius:999px;
  background:var(--color-background);padding:0 6px 0 14px;transition:.15s}
.md-search form:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 15%,transparent)}
.md-search input{flex:1;border:0;outline:0;background:transparent;height:100%;font-size:14px;color:var(--color-text)}
.md-search button{height:32px;padding:0 14px;border-radius:999px;background:var(--color-primary);color:#fff;font-size:13px;font-weight:600}
.md-auth{display:none}
@media(min-width:768px){.md-auth{display:block}}
.md-auth a{padding:8px 14px;border-radius:999px;border:1px solid color-mix(in srgb,var(--color-primary) 35%,transparent);
  color:var(--color-primary);font-size:13px;font-weight:600}

/* Bottom tabs (mobile) */
.md-tabbar{position:fixed;bottom:0;left:0;right:0;z-index:1030;min-height:64px;max-height:72px;
  display:flex;justify-content:space-around;align-items:stretch;
  background:var(--color-background);border-top:1px solid var(--color-border);
  padding-bottom:env(safe-area-inset-bottom,0)}
@media(min-width:768px){.md-tabbar{display:none}}
.md-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  color:var(--color-text-muted);font-size:11px;position:relative;padding:8px 4px;min-height:64px}
.md-tab svg{width:22px;height:22px}
.md-tab.is-active{color:var(--color-primary);font-weight:600}
.md-tab.is-active:before{content:"";position:absolute;top:0;left:25%;width:50%;height:2.5px;
  background:var(--color-primary);border-radius:0 0 999px 999px}

/* Page shell */
.md-main{flex:1;width:100%;max-width:var(--container-md);margin:0 auto;padding:var(--space-md) var(--space-md) var(--space-xl)}
.md-section{margin-bottom:2.5rem}
.md-section__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:1rem;padding:0 4px}
.md-section__title{margin:0;font-size:var(--fluid-2xl);font-weight:700;color:var(--color-text-primary)}
.md-section__more{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:500;color:var(--color-text-secondary);
  padding:8px 12px;border-radius:8px;min-height:44px}
.md-section__more:hover{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}

/* Ads: banner / icon / popup / preroll / vf */
.ad-banner-wrap{display:grid;gap:10px;margin:0 0 14px}
.ad-banner{display:block;border-radius:12px;overflow:hidden;border:1px solid var(--color-border);
  background:var(--color-card-bg);text-align:center;font-weight:600;color:var(--color-text)}
.ad-banner-img img{width:100%;max-height:120px;object-fit:cover;display:block}
.ad-banner:not(.ad-banner-img){padding:14px 16px}
.ad-icon-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 16px}
@media(min-width:768px){.ad-icon-grid{grid-template-columns:repeat(6,1fr)}}
.ad-icon-item{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.ad-icon-thumb{width:52px;height:52px;border-radius:14px;overflow:hidden;background:var(--color-primary-lighter);
  display:flex;align-items:center;justify-content:center}
.ad-icon-thumb img{width:100%;height:100%;object-fit:cover}
.ad-icon-fallback{font-size:13px;font-weight:700;color:var(--color-primary)}
.ad-icon-name{font-size:11px;color:var(--color-text-secondary);max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html.popup-lock,html.popup-lock body{overflow:hidden}
.ad-popup{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center}
.ad-popup[hidden]{display:none!important}
.ad-popup-mask{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.ad-popup-dialog{position:relative;z-index:1;width:min(420px,92vw);border-radius:16px;background:var(--color-background);
  border:1px solid var(--color-border);overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.ad-popup-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--color-border)}
.ad-popup-x{font-size:22px;line-height:1;color:var(--color-text-muted)}
.ad-popup-body{padding:14px;text-align:center}
.ad-popup-img{width:100%;max-height:200px;object-fit:cover;border-radius:10px;margin-bottom:10px}
.ad-popup-btn{display:inline-flex;margin-top:10px;padding:10px 18px;border-radius:999px;background:var(--color-primary);color:#fff;font-weight:700}
.ad-popup-foot{padding:0 14px 14px;text-align:center}
.ad-popup-skip{padding:8px 14px;border-radius:8px;background:var(--color-hover-bg);color:var(--color-text-secondary);font-size:13px}
.ad-popup-skip:disabled{opacity:.55}
.md-play__player{position:relative}
.ad-preroll{position:absolute;inset:0;z-index:5;background:#000;display:flex;align-items:center;justify-content:center}
.ad-preroll-hit{display:block;width:100%;height:100%}
.ad-preroll-img{width:100%;height:100%;object-fit:contain}
.ad-preroll-txt{color:#fff;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;height:100%}
.ad-preroll-skip{position:absolute;right:12px;top:12px;z-index:6;padding:8px 12px;border-radius:999px;
  background:rgba(0,0,0,.65);color:#fff;font-size:12px}
.ad-preroll-skip:disabled{opacity:.6}
.md-card--ad{outline:1px dashed color-mix(in srgb,var(--color-primary) 45%,transparent)}

/* Quick entries + home modules */
.md-quick{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.md-quick__item{flex:0 0 auto;height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--color-border);
  background:var(--color-card-bg);color:var(--color-text-secondary);font-size:13px;font-weight:600;line-height:34px}
.md-quick__item:hover{color:var(--color-primary);border-color:color-mix(in srgb,var(--color-primary) 40%,transparent);
  background:var(--color-primary-lighter)}
.md-swiper{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 0 14px}
.md-swiper::-webkit-scrollbar{display:none}
.md-swiper__item{flex:0 0 78%;scroll-snap-align:start;position:relative;border-radius:14px;overflow:hidden;
  aspect-ratio:16/7;background:var(--color-card-bg)}
@media(min-width:768px){.md-swiper__item{flex:0 0 48%}}
.md-swiper__item img{width:100%;height:100%;object-fit:cover}
.md-swiper__item span{position:absolute;left:0;right:0;bottom:0;padding:10px 12px;font-size:13px;font-weight:600;color:#fff;
  background:linear-gradient(transparent,rgba(0,0,0,.55))}
.md-adv{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:0 0 16px}
@media(min-width:768px){.md-adv{grid-template-columns:repeat(3,1fr)}}
.md-adv__item{display:block;border-radius:12px;overflow:hidden;border:1px solid var(--color-border);background:var(--color-card-bg);
  min-height:72px;text-align:center}
.md-adv__item img{width:100%;height:80px;object-fit:cover}
.md-adv__item span{display:block;padding:18px 8px;font-size:13px;color:var(--color-text-secondary)}
.md-links{display:flex;flex-wrap:wrap;gap:8px 14px;padding:4px}
.md-links a{font-size:13px;color:var(--color-text-secondary)}
.md-links a:hover{color:var(--color-primary)}
.md-user-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px}
@media(min-width:641px){.md-user-grid{grid-template-columns:repeat(3,1fr)}}
.md-user-grid__item{display:flex;align-items:center;justify-content:center;min-height:52px;padding:12px;
  border-radius:12px;border:1px solid var(--color-border);background:var(--color-card-bg);font-size:14px;font-weight:600}
.md-user-grid__item:hover{color:var(--color-primary);border-color:color-mix(in srgb,var(--color-primary) 35%,transparent);
  background:var(--color-primary-lighter)}

/* Notice marquee */
.md-notice{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:8px 12px;
  border-radius:12px;background:color-mix(in srgb,var(--color-primary) 8%,var(--color-card-bg));
  border:1px solid color-mix(in srgb,var(--color-primary) 18%,transparent);overflow:hidden}
.md-notice__tag{flex:0 0 auto;height:22px;padding:0 8px;border-radius:999px;background:var(--color-primary);
  color:#fff;font-size:11px;font-weight:700;line-height:22px;letter-spacing:.02em}
.md-notice__viewport{flex:1;min-width:0;overflow:hidden}
.md-notice__track{display:flex;width:max-content;gap:36px;animation:md-notice-scroll 28s linear infinite}
.md-notice:hover .md-notice__track{animation-play-state:paused}
.md-notice__item{flex:0 0 auto;font-size:13px;font-weight:500;color:var(--color-text-secondary);white-space:nowrap}
.md-notice__item:hover{color:var(--color-primary)}
.md-notice__more{flex:0 0 auto;font-size:12px;font-weight:600;color:var(--color-primary);white-space:nowrap}
@keyframes md-notice-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:640px){
  .md-notice{padding:7px 10px;gap:8px}
  .md-notice__item{font-size:12px}
  .md-notice__track{animation-duration:22s}
}

/* Category pills */
.md-cats{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:none;margin-bottom:8px}
.md-cats::-webkit-scrollbar{display:none}
.md-cat{flex:0 0 auto;height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--color-border);
  background:var(--color-card-bg);color:var(--color-text-secondary);font-size:13px;font-weight:500;white-space:nowrap}
.md-cat.is-active,.md-cat:hover{border-color:color-mix(in srgb,var(--color-primary) 40%,transparent);
  color:var(--color-primary);background:var(--color-primary-lighter)}

/* Video grid / carousel（视频卡片尺寸保持原样，勿加密） */
.md-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}
@media(min-width:641px){.md-grid{grid-template-columns:repeat(4,1fr)}}
@media(min-width:1025px){.md-grid{grid-template-columns:repeat(6,1fr)}}
.md-carousel{display:flex;gap:.75rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:6px}
.md-carousel::-webkit-scrollbar{display:none}
.md-carousel .md-card{flex:0 0 calc(50% - .375rem);scroll-snap-align:start}
@media(min-width:641px){
  .md-carousel{display:grid;grid-template-columns:repeat(4,1fr);overflow:visible}
  .md-carousel .md-card{flex:none}
}
@media(min-width:1025px){.md-carousel{grid-template-columns:repeat(6,1fr)}}

/* Video card */
.md-card{display:flex;flex-direction:column;background:var(--color-card-bg);border:1px solid var(--color-border-light);
  border-radius:var(--radius-md);overflow:hidden;transition:transform .2s,box-shadow .2s;color:inherit}
.md-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
/* 默认横屏封面 16:9；仅短剧竖屏标记 is_vertical=1 用 2:3 */
.md-card__cover{position:relative;width:100%;aspect-ratio:16/9;background:var(--color-border);overflow:hidden}
.md-card--v .md-card__cover,.md-card__cover--v{aspect-ratio:2/3}
.md-card__cover img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .3s}
.md-card:hover .md-card__cover img{transform:scale(1.05)}
.md-card__play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:color-mix(in srgb,#000 55%,transparent);opacity:0;transition:.2s}
.md-card:hover .md-card__play{opacity:1}
.md-card__play span{width:44px;height:44px;border-radius:50%;background:var(--color-primary);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:var(--shadow-md)}
.md-card__badge{position:absolute;top:6px;left:6px;z-index:1;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600;
  color:#fff;background:color-mix(in srgb,#111 45%,transparent);backdrop-filter:blur(6px)}
.md-card__body{padding:10px 10px 12px}
.md-card__title{margin:0;font-size:13px;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.md-card__meta{margin:6px 0 0;font-size:12px;color:var(--color-text-muted)}

/* Rank list */
.md-rank{display:flex;flex-direction:column;gap:10px}
.md-rank__item{display:flex;gap:12px;padding:12px;border-radius:12px;background:var(--color-card-bg);border:1px solid var(--color-border-light)}
.md-rank__n{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:14px;color:#fff;background:var(--color-primary);flex-shrink:0}
.md-rank__item:nth-child(1) .md-rank__n{background:#ff1493}
.md-rank__item:nth-child(2) .md-rank__n{background:#ff69b4}
.md-rank__item:nth-child(3) .md-rank__n{background:#ff85c1}
.md-rank__cover{width:96px;aspect-ratio:16/9;border-radius:8px;overflow:hidden;flex-shrink:0;background:var(--color-border)}
.md-rank__item--v .md-rank__cover{width:64px;aspect-ratio:2/3}
.md-rank__cover img{width:100%;height:100%;object-fit:cover}
.md-rank__title{margin:0;font-weight:700;font-size:15px}
.md-rank__meta{margin:4px 0 0;font-size:12px;color:var(--color-text-muted)}

/* Categories page */
.md-catgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media(min-width:768px){.md-catgrid{grid-template-columns:repeat(4,1fr)}}
.md-catcard{padding:18px 16px;border-radius:16px;background:var(--color-card-bg);border:1px solid var(--color-border-light);
  transition:.2s}
.md-catcard:hover{border-color:color-mix(in srgb,var(--color-primary) 40%,transparent);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.md-catcard h3{margin:0;font-size:16px}
.md-catcard p{margin:6px 0 0;font-size:12px;color:var(--color-text-muted)}

/* Play page */
.md-play{max-width:var(--container-md);margin:0 auto;padding:12px 16px 32px}
.md-play__crumb{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px;color:var(--color-text-muted);margin-bottom:10px}
.md-play__crumb a:hover{color:var(--color-primary)}
.md-play__title{margin:0 0 12px;font-size:var(--fluid-2xl);font-weight:800;line-height:1.3;color:var(--color-text-primary)}
.md-play__player{border-radius:12px;overflow:hidden;background:#000;margin-bottom:14px}
.md-play__player video{width:100%;min-height:220px;display:block;background:#000}
.md-play__info{margin-top:16px;padding-top:14px;border-top:1px solid var(--color-border)}
.md-play__info p{margin:0 0 8px;color:var(--color-text-secondary);line-height:1.6;font-size:14px}

/* Linebox — light MacDog style (override dark) */
.hg-linebox,.md-linebox{margin:0 0 18px;padding:14px;background:var(--color-card-bg);border:1px solid var(--color-border-light);
  border-radius:12px;color:var(--color-text)}
.md-linebox__head,.hg-linebox__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.md-linebox__title,.hg-linebox__title{display:inline-flex;align-items:center;gap:8px;font-size:16px;font-weight:700}
.hg-linebox__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;
  border-radius:999px;background:var(--color-border);color:var(--color-text-secondary);font-size:12px;font-weight:600}
.hg-linebox__all{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 12px;border-radius:999px;
  border:1px solid var(--color-border);background:var(--color-background-tertiary);color:var(--color-text);font-size:13px;cursor:pointer}
.hg-linebox__lines{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.hg-linebox__lines.is-collapsed{display:none}
.hg-line-chip{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 10px 0 12px;border-radius:8px;
  border:1px solid var(--color-border-dark);background:var(--color-card-bg);color:var(--color-text);font-size:13px;cursor:pointer}
.hg-line-chip.is-active{border-color:var(--color-primary);color:var(--color-primary);
  background:color-mix(in srgb,var(--color-primary) 8%,transparent)}
.hg-line-chip__spd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:18px;padding:0 5px;
  border-radius:4px;font-size:11px;font-weight:700;color:#fff}
.hg-line-chip__spd.is-wait{background:#bbb}
.hg-line-chip__spd.is-fast{background:#22c55e}
.hg-line-chip__spd.is-mid{background:#f59e0b}
.hg-line-chip__spd.is-slow{background:#ef4444}
.hg-linebox__eps{display:flex;flex-wrap:wrap;gap:8px;padding-top:8px;border-top:1px solid var(--color-border)}
.hg-ep-chip{display:inline-flex;align-items:center;justify-content:center;min-width:64px;height:36px;padding:0 14px;
  border-radius:8px;border:1px solid var(--color-border);background:var(--color-background-tertiary);color:var(--color-text-secondary);
  font-size:13px;cursor:pointer}
.hg-ep-chip.is-active{border-color:var(--color-primary);color:var(--color-primary);
  background:color-mix(in srgb,var(--color-primary) 8%,transparent)}
.hg-linebox__tip{margin:10px 0 0;font-size:12px;color:var(--color-text-muted)}

.md-empty{padding:48px 16px;text-align:center;color:var(--color-text-tertiary);font-size:14px}
.md-footer{padding:24px 16px 32px;text-align:center;color:var(--color-text-muted);font-size:12px;border-top:1px solid var(--color-border);line-height:1.7}
.md-footer a{color:inherit;text-decoration:underline}
.md-footer__slogan{margin-bottom:6px;color:var(--color-text);font-size:13px}
.md-footer__contact,.md-footer__addr{margin-top:4px;opacity:.9}
@media(max-width:767px){.md-footer{margin-bottom:8px}}

/* Simple/auth pages */
.md-panel{max-width:480px;margin:24px auto;padding:24px;background:var(--color-card-bg);border:1px solid var(--color-border-light);border-radius:16px}
.md-panel h1{margin:0 0 16px;font-size:1.35rem}
.md-panel input,.md-panel button[type=submit]{width:100%;height:42px;margin:8px 0;border-radius:10px;border:1px solid var(--color-border);padding:0 12px;font-size:14px}
.md-panel button[type=submit]{background:var(--color-primary);color:#fff;border:0;font-weight:700;cursor:pointer}

/* ===== 顶栏导航：首页/小说/漫画/数据库下拉 ===== */
.md-nav{display:none;align-items:center;gap:2px;flex:0 0 auto}
@media(min-width:900px){.md-nav{display:flex}}
.md-nav__link{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;font-size:14px;font-weight:500;color:var(--color-text-secondary);border:0;background:transparent;cursor:pointer;white-space:nowrap}
.md-nav__link:hover{color:var(--color-primary);background:var(--color-hover-bg)}
.md-nav__link.is-active,.md-dd.is-active>.md-dd__btn{color:var(--color-primary);font-weight:700;background:var(--color-primary-lighter);box-shadow:inset 0 -2px 0 var(--color-primary)}
.md-search{flex:1;max-width:520px;margin:0 12px}
.md-search form{display:flex;align-items:center;height:40px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-background);padding:0 4px 0 12px;gap:8px}
.md-search form:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 15%,transparent)}
.md-search__ico{flex-shrink:0;color:var(--color-text-muted)}
.md-search input{flex:1;border:0;outline:0;background:transparent;height:100%;font-size:14px;min-width:0}
.md-search__lib{flex-shrink:0;padding:0 12px;border-left:1px solid var(--color-border);font-size:13px;color:var(--color-text-secondary);white-space:nowrap}
.md-header__tools{display:flex;align-items:center;gap:6px;margin-left:auto}
.md-iconbtn{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);background:transparent}
.md-iconbtn:hover{background:var(--color-hover-bg);color:var(--color-primary)}

.md-dd{position:relative}
/* 数据库下拉：资源站横排多列，手机自适应 */
.md-dd__panel{display:none;position:absolute;top:calc(100% + 8px);left:0;width:min(92vw,560px);max-width:560px;max-height:min(70vh,420px);
  background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-lg);z-index:1100;padding:8px;overflow:hidden}
.md-dd.is-open .md-dd__panel{display:block}
.md-dd__scroll{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:min(58vh,340px);overflow:auto;padding:2px}
@media(min-width:480px){.md-dd__scroll{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:768px){.md-dd__scroll{grid-template-columns:repeat(4,minmax(0,1fr))}}
.md-dd__item{display:flex;align-items:center;justify-content:center;min-height:36px;padding:8px 10px;border-radius:8px;border:1px solid var(--color-border-light);
  font-size:13px;color:var(--color-text);text-align:center;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--color-background)}
.md-dd__item:hover{background:var(--color-primary-lighter);color:var(--color-primary);border-color:color-mix(in srgb,var(--color-primary) 35%,transparent)}
.md-dd__item.is-on{color:var(--color-primary);font-weight:700;background:var(--color-primary-lighter);border-color:transparent}
.md-dd__item--all{grid-column:1/-1;font-weight:700;color:var(--color-primary);border:1px solid color-mix(in srgb,var(--color-primary) 30%,transparent);
  background:var(--color-primary-lighter);margin-bottom:2px;justify-content:flex-start;padding-left:12px}
.md-dd__empty{grid-column:1/-1;padding:14px;font-size:12px;color:var(--color-text-muted);text-align:center}
.md-dd__caret{opacity:.6}

/* 移动顶条 */
.md-mbar{display:flex;gap:8px;align-items:center;padding:8px 12px;position:sticky;top:56px;z-index:1025;background:var(--color-background);border-bottom:1px solid var(--color-border)}
@media(min-width:900px){.md-mbar{display:none}}
.md-mbar__db{display:inline-flex;align-items:center;gap:4px;height:36px;padding:0 12px;border-radius:10px;background:var(--color-primary-lighter);color:var(--color-primary);font-size:13px;font-weight:600;border:0;cursor:pointer;white-space:nowrap}
.md-mbar__search{flex:1}
.md-mbar__search input{width:100%;height:36px;border:1px solid var(--color-border);border-radius:10px;padding:0 12px;font-size:13px;background:var(--color-card-bg)}
.md-dd--mobile .md-dd__panel{left:12px;right:12px;min-width:auto;max-width:none}
.md-app{padding-top:56px}
@media(max-width:899px){.md-app{padding-top:56px}.md-main{padding-top:4px}}

/* 数据库页 */
.md-db__tools{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.md-db__search input{width:100%;height:40px;border:1.5px solid var(--color-primary);border-radius:10px;padding:0 14px;font-size:14px;outline:none}
.md-db__sort{display:flex;gap:8px}
.md-db__sortbtn{display:inline-flex;align-items:center;gap:4px;height:34px;padding:0 14px;border-radius:10px;border:1px solid var(--color-border);font-size:13px;color:var(--color-text-secondary);background:var(--color-card-bg)}
.md-db__sortbtn.is-active{background:var(--color-primary-lighter);color:var(--color-primary);border-color:transparent;font-weight:600}
.md-db__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media(min-width:480px){.md-db__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:640px){.md-db__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}}
@media(min-width:900px){.md-db__grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(min-width:1100px){.md-db__grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(min-width:1400px){.md-db__grid{grid-template-columns:repeat(8,minmax(0,1fr))}}
.md-db__card{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:10px 12px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-card-bg);transition:.15s;min-width:0}
.md-db__card:hover,.md-db__card.is-active{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 6%,transparent)}
.md-db__name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.md-db__stat{font-size:12px;color:var(--color-text-muted);flex-shrink:0}
.md-db__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.md-db__title{margin:0;font-size:1.25rem;font-weight:800}
.md-db__back{font-size:13px;color:var(--color-text-secondary)}
.md-db__back:hover{color:var(--color-primary)}

.md-filterbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.md-filterbar__cats{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0}
.md-filterbar__cats::-webkit-scrollbar{display:none}
.md-filterbar__sort{display:flex;gap:6px;flex-shrink:0}
.md-pill{flex:0 0 auto;height:32px;padding:0 12px;border-radius:8px;font-size:13px;color:var(--color-text-secondary);display:inline-flex;align-items:center;white-space:nowrap}
.md-pill.is-active{background:var(--color-primary);color:#fff;font-weight:700}

/* ===== 资源库浏览：一级分类条（可展开） ===== */
.md-browse{margin:0 0 24px}
.md-catbar{position:sticky;top:56px;z-index:20;background:var(--color-background);border-bottom:1px solid var(--color-border);margin:0 -16px 16px;padding:8px 12px}
@media(min-width:900px){.md-catbar{top:64px;margin:0 0 16px;padding:10px 0}}
.md-catbar__row{display:flex;align-items:center;gap:8px;min-width:0}
/* 默认一行排满可用宽度，超出裁切；点箭头在下方面板看全部 */
.md-catbar__rail{flex:1;min-width:0;display:flex;flex-wrap:nowrap;align-items:center;gap:6px;overflow:hidden;height:32px}
.md-catbar__panel{display:none;flex-wrap:wrap;gap:8px;padding:10px 0 4px;border-top:1px solid var(--color-border);margin-top:8px}
.md-catbar.is-open .md-catbar__panel{display:flex}
.md-catbar__more{flex-shrink:0;width:32px;height:32px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-background-tertiary);color:var(--color-text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.md-catbar__more.is-open svg{transform:rotate(180deg)}
.md-catbar__more svg{transition:transform .15s}
.md-catbar__divider{width:1px;height:20px;background:var(--color-border);flex-shrink:0;margin:0 2px}
.md-catbar__sort{display:flex;gap:6px;flex-shrink:0;align-items:center}
.md-catbar__search{flex-shrink:0;width:32px;height:32px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-background-tertiary);color:var(--color-text-secondary);display:inline-flex;align-items:center;justify-content:center}
.md-catbar__search:hover,.md-catbar__more:hover{color:var(--color-primary);border-color:color-mix(in srgb,var(--color-primary) 40%,transparent)}
.md-catbar .md-pill{height:32px;padding:0 12px;border-radius:8px;font-size:13px;color:var(--color-text-secondary);display:inline-flex;align-items:center;white-space:nowrap;flex:0 0 auto}
.md-catbar .md-pill.is-active{background:var(--color-primary);color:#fff;font-weight:700}
.md-catbar .md-pill--sub{opacity:.85;font-size:12px}
.md-dd__item.is-on{color:var(--color-primary);font-weight:700;background:var(--color-primary-lighter)}

.md-card__views{position:absolute;top:6px;left:6px;z-index:1;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:700;color:#fff;background:rgba(0,0,0,.45);backdrop-filter:blur(4px)}
.md-card__year{position:absolute;bottom:6px;left:6px;z-index:1;padding:2px 6px;border-radius:4px;font-size:11px;color:#fff;background:rgba(0,0,0,.4)}
.md-card__cat{margin:4px 0 0;font-size:12px;color:var(--color-primary);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.md-grid--browse{margin-top:4px}
@media(max-width:899px){
  .md-catbar{padding:8px 12px}
  .md-catbar__row{flex-wrap:wrap;gap:6px}
  .md-catbar__rail{flex:1 1 calc(100% - 80px);min-width:0}
  .md-catbar__more,.md-catbar__search{flex-shrink:0}
  .md-catbar__divider{display:none}
  .md-catbar__sort{flex:1 1 100%;order:3;justify-content:flex-start;padding-top:2px}
  .md-catbar__panel{padding:8px 0 2px;max-height:min(50vh,360px);overflow-y:auto;-webkit-overflow-scrolling:touch}
  .md-catbar .md-pill{height:30px;padding:0 10px;font-size:12px}
}
