/* Plugin Hall / Silver Extension Market visual layer.
   The catalog remains semantic and interactive; this layer only changes hierarchy,
   atmosphere and motion. */

.plz-wrap {
  --hall-ink: #eef4ff;
  --hall-muted: #91a0bb;
  --hall-line: rgba(145, 179, 232, .2);
  --hall-cyan: #65e6ff;
  --hall-violet: #aa91ff;
  --hall-pink: #ff72c8;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  /* .page 是纵向 flex 容器：缺 flex:none 时本元素会被收缩到 min-height，
     overflow:hidden 再把首屏之后的目录/卡片整体裁掉，插件列表永远滚不到 */
  flex: none;
  min-height: calc(100dvh - 80px);
  /* 宽度上限/左右留白由 layout.css `.page .plz-wrap`（1680px + --layout-gutter）统一管，
     与其它 page-inner-wide 分页对齐；本层勿再设 padding 或锁 inner 区块宽度 */
  background:
    radial-gradient(70% 48% at 82% 2%, rgba(88, 86, 214, .19), transparent 72%),
    radial-gradient(44% 38% at 0% 76%, rgba(31, 177, 211, .1), transparent 72%),
    linear-gradient(145deg, rgba(8, 13, 25, .98), rgba(11, 13, 24, .94));
}
.plz-wrap > *:not(.plz-hall-canvas) { position: relative; z-index: 1; }
.plz-hall-canvas {
  position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%;
  pointer-events: none; opacity: .75; mix-blend-mode: screen;
}
.plz-wrap::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(transparent 0 96%, rgba(101, 230, 255, .045) 96% 96.2%, transparent 96.2%),
    linear-gradient(90deg, transparent 0 96%, rgba(170, 145, 255, .035) 96% 96.2%, transparent 96.2%);
  background-size: 100% 68px, 68px 100%;
  mask-image: linear-gradient(180deg, #000, transparent 92%);
}
.plz-head {
  align-items: center;
  margin: 0 0 18px;
  padding: 18px 20px;
  border: 1px solid var(--hall-line);
  border-radius: 18px;
  background: linear-gradient(130deg, rgba(20, 31, 51, .88), rgba(11, 17, 31, .74));
  box-shadow: 0 24px 80px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter: blur(18px);
}
.plz-head > div:first-child { min-width: 240px; }
.plz-head h2 { margin: 7px 0 4px; color: var(--hall-ink); font-size: clamp(28px, 3vw, 42px); letter-spacing: -.025em; text-shadow: 0 8px 28px rgba(46, 129, 255, .2); }
.plz-sub { max-width: 580px; color: var(--hall-muted); line-height: 1.7; }
.plz-head-actions { margin-left: auto; }
.plz-head-actions .credits-pill { border: 1px solid rgba(255, 208, 112, .4); background: rgba(255, 190, 76, .1); box-shadow: 0 0 20px rgba(255, 185, 67, .1); }
.plz-head-actions .btn { min-height: 38px; }
.plz-feature {
  position: relative; overflow: hidden; isolation: isolate;
  min-height: 244px; margin: 0 0 22px;
  padding: clamp(28px, 4vw, 56px);
  border: 1px solid rgba(129, 166, 236, .3); border-radius: 24px;
  background: linear-gradient(115deg, rgba(24, 39, 66, .95), rgba(15, 18, 37, .86) 56%, rgba(35, 20, 58, .76));
  box-shadow: 0 28px 90px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.08);
}
.plz-feature::before { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(101, 230, 255, .1); border-radius: 17px; pointer-events: none; }
.plz-feature::after { content: "CATALOG / 01"; position: absolute; top: 20px; right: 26px; color: rgba(157, 197, 255, .56); font: 10px/1 ui-monospace, monospace; letter-spacing: .22em; }
.plz-feature > div:first-child { max-width: 650px; }
.plz-feature h3 { margin: 15px 0 10px; font-size: clamp(25px, 3vw, 38px); letter-spacing: -.03em; }
.plz-feature p { max-width: 600px; color: #a8b7d1; line-height: 1.9; }
.plz-feature-art { position: absolute; right: clamp(20px, 8vw, 140px); bottom: 22px; transform: scale(1.15); filter: drop-shadow(0 18px 28px rgba(66, 107, 255, .22)); }
.plz-feature-art span { border-radius: 18px; backdrop-filter: blur(12px); }
.plz-feature-art span:nth-child(2) { box-shadow: 0 0 30px rgba(101, 230, 255, .18), 0 18px 40px rgba(0,0,0,.28), inset 0 1px rgba(255,255,255,.16); }
.plz-hall-context {
  margin: 0 0 20px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid rgba(136, 169, 224, .18); border-radius: 15px; overflow: hidden;
  background: rgba(8, 14, 26, .63); box-shadow: 0 16px 45px rgba(0,0,0,.15); backdrop-filter: blur(14px);
}
.plz-context-cell { position: relative; min-height: 94px; padding: 17px 20px; border-right: 1px solid rgba(136, 169, 224, .14); }
.plz-context-cell:last-child { border-right: 0; }
.plz-context-cell::before { content: ""; position: absolute; left: 0; top: 16px; bottom: 16px; width: 2px; background: linear-gradient(var(--hall-cyan), transparent); opacity: .7; }
.plz-context-kicker { display: block; margin-bottom: 8px; color: var(--hall-cyan); font: 9px/1 ui-monospace, monospace; letter-spacing: .16em; }
.plz-context-cell b { display: block; color: #e7f0ff; font-size: 13px; font-weight: 600; }
.plz-context-cell small { display: block; margin-top: 6px; color: #8298ba; font-size: 11px; line-height: 1.45; }
.plz-tabs {
  margin: 0 0 12px; padding: 5px;
  display: flex; gap: 4px; border: 1px solid rgba(136, 169, 224, .2); border-radius: 14px;
  background: rgba(9, 15, 28, .72); box-shadow: inset 0 1px rgba(255,255,255,.04); backdrop-filter: blur(16px);
}
.plz-tab { flex: 0 1 auto; min-height: 38px; padding: 8px 17px; border: 1px solid transparent; border-radius: 9px; color: #91a3c2; font-size: 12px; letter-spacing: .04em; transition: color .22s, background .22s, transform .22s, box-shadow .22s; }
.plz-tab:hover { color: #e9f7ff; border-color: rgba(101, 230, 255, .24); transform: translateY(-1px); }
.plz-tab.active { color: #071420; background: linear-gradient(120deg, #b9f6ff, #9e9aff 62%, #e89cff); box-shadow: 0 7px 22px rgba(111, 157, 255, .28), inset 0 1px rgba(255,255,255,.7); }
.plz-toolbar {
  margin: 0 0 22px; padding: 10px;
  display: grid; grid-template-columns: minmax(260px, 1fr) auto auto auto; gap: 8px;
  align-items: center; border: 1px solid rgba(136, 169, 224, .2); border-radius: 14px;
  background: rgba(11, 18, 32, .72); box-shadow: 0 15px 48px rgba(0,0,0,.18); backdrop-filter: blur(15px);
}
.plz-toolbar .input { min-height: 42px; border: 1px solid rgba(136, 169, 224, .22); background: rgba(4, 9, 18, .56); }
.plz-toolbar .input:focus { border-color: var(--hall-cyan); box-shadow: 0 0 0 3px rgba(101, 230, 255, .1), 0 0 22px rgba(101, 230, 255, .12); }
.plz-toolbar select.input { min-width: 152px; }
.plz-free { min-height: 42px; padding: 0 12px; border: 1px solid rgba(136, 169, 224, .18); border-radius: 9px; background: rgba(255,255,255,.025); }
.plz-free input { accent-color: var(--hall-cyan); }
.plz-toolbar .plz-tag { justify-self: start; align-self: stretch; display: inline-flex; align-items: center; }
.plz-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); gap: 18px;
}
.plz-sec { margin-top: 18px; padding: 13px 3px 10px; border-bottom-color: rgba(136, 169, 224, .2); color: #d9e8ff; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; }
.plz-sec::before { content: ""; width: 22px; height: 2px; background: linear-gradient(90deg, var(--hall-cyan), var(--hall-violet)); box-shadow: 0 0 12px var(--hall-cyan); }
.plz-sec .plz-sec-n { color: #9cb2d4; background: rgba(101, 230, 255, .08); border-color: rgba(101, 230, 255, .2); }
.plz-card {
  position: relative; gap: 10px; min-height: 410px; padding: 17px; border-color: rgba(136, 169, 224, .2); border-radius: 17px;
  background: linear-gradient(155deg, rgba(22, 32, 52, .82), rgba(10, 15, 27, .82));
  box-shadow: 0 15px 48px rgba(0,0,0,.18), inset 0 1px rgba(255,255,255,.05);
  transition: transform .28s cubic-bezier(.2,.8,.2,1), border-color .28s, box-shadow .28s;
}
.plz-card::after { content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; background: linear-gradient(115deg, rgba(101,230,255,.11), transparent 27%, transparent 74%, rgba(255,114,200,.1)); opacity: .35; }
.plz-card:hover { transform: translateY(-6px); border-color: rgba(101, 230, 255, .48); box-shadow: 0 22px 58px rgba(0,0,0,.3), 0 0 34px rgba(82, 178, 255, .1), inset 0 1px rgba(255,255,255,.1); }
.plz-thumb { height: 158px; margin: -17px -17px 3px; border-bottom: 1px solid rgba(136, 169, 224, .22); background: linear-gradient(135deg, rgba(101,230,255,.14), rgba(170,145,255,.18), rgba(255,114,200,.12)); }
.plz-thumb::after { content: "VIEW / OPEN"; position: absolute; left: 12px; top: 12px; color: rgba(230,246,255,.7); font: 9px/1 ui-monospace, monospace; letter-spacing: .16em; opacity: .6; }
.plz-thumb-more { right: 12px; bottom: 12px; padding: 5px 10px; color: #d9fbff; border-color: rgba(101,230,255,.45); background: rgba(5, 17, 29, .78); box-shadow: 0 0 18px rgba(101,230,255,.16); }
.plz-card-head { position: relative; z-index: 1; align-items: flex-start; }
.plz-name { color: #edf5ff; font-size: 16px; letter-spacing: .01em; }
.plz-name:hover { color: var(--hall-cyan); }
.plz-ver { color: #8095b8; font: 10px/1.4 ui-monospace, monospace; letter-spacing: .04em; }
.plz-log { padding: 5px 8px; border-left: 2px solid rgba(255, 190, 86, .7); border-radius: 0 6px 6px 0; background: rgba(255, 190, 86, .06); color: #cdbb8e; }
.plz-desc { position: relative; z-index: 1; color: #b6c5da; line-height: 1.7; }
.plz-tag { background: rgba(170,145,255,.1); color: #bdadff; border-color: rgba(170,145,255,.16); border-radius: 999px; }
.plz-tag:hover, .plz-tag.plz-tag-on { border-color: rgba(101,230,255,.5); color: #a7f2ff; background: rgba(101,230,255,.1); }
.plz-hook { border: 1px solid rgba(136,169,224,.14); background: rgba(136,169,224,.07); color: #8fa7c9; border-radius: 999px; }
.plz-meta { padding-top: 7px; border-top: 1px solid rgba(136,169,224,.12); color: #7f93b4; }
.plz-actions { position: relative; z-index: 2; gap: 7px; }
.plz-wrap .btn { border-radius: 9px; transition: transform .2s, box-shadow .2s, border-color .2s, filter .2s; }
.plz-wrap .btn:hover:not(:disabled) { transform: translateY(-2px); }
.plz-wrap .btn-grad { color: #07131e; border-color: rgba(213, 250, 255, .7); background: linear-gradient(110deg, #c0fbff, #9d9dff 55%, #eca2ff); box-shadow: 0 8px 24px rgba(111,157,255,.22), inset 0 1px rgba(255,255,255,.75); }
.plz-wrap .btn-ghost { color: #bed0e9; border-color: rgba(136,169,224,.3); background: rgba(255,255,255,.035); }
.plz-wrap .btn-ghost:hover:not(:disabled) { color: #edfbff; border-color: var(--hall-cyan); box-shadow: 0 0 20px rgba(101,230,255,.14); }
.plz-empty { padding: 88px 20px; border: 1px dashed rgba(136,169,224,.25); border-radius: 18px; background: rgba(255,255,255,.02); }
.plz-more-wrap { padding-top: 22px; }
.plz-admin { margin: 30px 0 0; border-color: rgba(136,169,224,.24); background: rgba(12,18,31,.7); }

@media (max-width: 900px) {
  .plz-toolbar { grid-template-columns: 1fr 1fr; }
  .plz-toolbar .input#plz-q { grid-column: 1 / -1; }
  .plz-feature-art { right: 14px; transform: scale(.82); opacity: .7; }
  .plz-hall-context { grid-template-columns: 1fr; }
  .plz-context-cell { border-right: 0; border-bottom: 1px solid rgba(136, 169, 224, .14); }
  .plz-context-cell:last-child { border-bottom: 0; }
}
@media (max-width: 600px) {
  .plz-head { padding: 15px; }
  .plz-head-actions { width: 100%; margin-left: 0; }
  .plz-head-actions .credits-pill { margin-right: auto; }
  .plz-feature { min-height: 260px; padding: 26px 22px; }
  .plz-feature-art { display: none; }
  .plz-hall-context { border-radius: 12px; }
  .plz-tabs { overflow-x: auto; }
  .plz-tab { flex: 1 0 auto; }
  .plz-toolbar { grid-template-columns: 1fr; }
  .plz-toolbar .input#plz-q, .plz-toolbar select.input, .plz-free { grid-column: auto; width: 100%; }
  .plz-card { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .plz-card, .plz-wrap .btn, .plz-tab { transition: none; }
}
