/* ============================================================
   小雫网盘 — 分享页 / 文件管理补充样式
   （紧接 pan.css 之后加载）
   ============================================================ */

/* ---------- 分享页 ---------- */
.share-page{
  flex:1;
  display:grid;
  place-items:center;
  padding:36px 18px 28px;
}
.share-card{
  width:100%;
  max-width:720px;
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.9);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  padding:26px 28px 20px;
  animation:cardIn .4s cubic-bezier(.2,.9,.3,1.05);
}
.share-head{
  display:flex; align-items:center; gap:14px;
  padding-bottom:18px;
  border-bottom:1px dashed var(--line);
}
.share-icon{
  width:54px; height:54px; flex:none;
  display:grid; place-items:center;
  border-radius:16px;
  background:linear-gradient(140deg,var(--pink-soft),#fff);
  color:var(--pink-deep);
  box-shadow:var(--shadow-xs);
}
.share-title-wrap{ min-width:0; flex:1; }
.share-title{
  margin:0 0 6px;
  font-size:17.5px;
  line-height:1.4;
  word-break:break-all;
}
.share-meta{
  display:flex; align-items:center; gap:9px; flex-wrap:wrap;
  margin:0; font-size:13px; color:var(--ink-2);
}

.share-locked{
  padding:34px 10px 26px;
  text-align:center;
}
.share-locked .icon-xl{ color:var(--pink); margin-bottom:12px; }
.share-locked p{ color:var(--ink-2); margin-bottom:20px; }
.share-unlock-form{ max-width:340px; margin:0 auto; }

.share-preview{
  margin:20px 0 18px;
  border-radius:var(--radius);
  background:var(--pink-mist);
  overflow:hidden;
  display:grid; place-items:center;
  min-height:180px;
}
.share-preview img{
  display:block;
  max-width:100%;
  max-height:62vh;
  object-fit:contain;
}
.share-preview video{
  display:block;
  width:100%;
  max-height:62vh;
  background:#000;
}
.audio-preview{
  width:100%;
  padding:26px 22px 20px;
  text-align:center;
  color:var(--pink-deep);
}
.audio-preview audio{ width:100%; margin-top:14px; }
.pdf-frame{
  width:100%;
  height:60vh;
  border:0;
  background:#fff;
}
.preview-placeholder{
  padding:44px 20px;
  text-align:center;
  color:var(--ink-2);
}
.preview-placeholder .icon-xl{ color:var(--pink-soft); margin-bottom:10px; }

.share-actions{
  display:flex; flex-wrap:wrap; gap:11px;
  justify-content:center;
  margin-bottom:20px;
}

.share-qr{
  display:flex; align-items:center; gap:16px;
  padding:14px 16px;
  border-radius:var(--radius);
  background:linear-gradient(120deg,var(--pink-mist),#fff);
  border:1px solid var(--line-2);
}
.qr-box{
  width:104px; height:104px; flex:none;
  display:grid; place-items:center;
  background:#fff; border-radius:12px;
  box-shadow:var(--shadow-xs);
  overflow:hidden;
}
.qr-box img{ width:96px; height:96px; display:block; }
.qr-text{ display:flex; flex-direction:column; gap:3px; }
.qr-text strong{ font-size:14.5px; }
.qr-text span{ font-size:12.5px; }

.share-foot{
  margin-top:16px; padding-top:14px;
  border-top:1px dashed var(--line);
  text-align:center;
}

/* ---------- 文件管理页 ---------- */
.pager{
  display:flex; align-items:center; gap:9px;
  padding-top:16px;
}
.pager .spacer{ flex:1; }
.row-actions{ display:flex; gap:5px; align-items:center; }

.bulk-actions{
  display:flex; align-items:center; gap:8px;
  padding:5px 10px;
  border-radius:var(--radius-pill);
  background:var(--pink-mist);
}

.share-row{
  display:flex; align-items:flex-start; gap:10px;
  padding:11px 13px;
  border:1px solid var(--line-2);
  border-radius:var(--radius);
  background:#fff;
  margin-bottom:9px;
}
.share-row-main{ flex:1; min-width:0; }
.share-url{
  width:100%;
  padding:8px 11px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fffafc;
  font-size:12.5px;
  font-family:ui-monospace,Consolas,monospace;
  color:var(--ink-2);
  outline:none;
}
.share-tags{
  display:flex; flex-wrap:wrap; gap:6px;
  margin-top:7px;
}
.share-row-actions{ display:flex; flex-direction:column; gap:6px; }

.share-opts{
  display:flex; flex-wrap:wrap; gap:8px;
}
.share-opts .input-plain{ flex:1; min-width:120px; }

.new-share-form{ margin-top:14px; }

@media (max-width:620px){
  .share-card{ padding:20px 16px 16px; }
  .share-qr{ flex-direction:column; text-align:center; }
  .share-actions .btn{ flex:1; min-width:44%; }
  .share-row{ flex-direction:column; }
  .share-row-actions{ flex-direction:row; width:100%; }
  .share-row-actions .btn{ flex:1; }
}

/* 后台背景图层 */
.admin-bg-layer{
  background-image:var(--admin-bg);
  opacity:var(--admin-bg-opacity);
  filter:blur(var(--admin-bg-blur));
}

/* ============================================================
   在线阅读器
   ============================================================ */
.layout-bare{ background:linear-gradient(150deg,#fffdfb 0%,var(--pink-mist) 60%,#fdf3f8 100%); min-height:100vh; }
.reader{ display:flex; flex-direction:column; height:100vh; }
.reader-bar{
  display:flex; align-items:center; gap:14px;
  padding:12px 18px;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
  flex-wrap:wrap;
}
.reader-info{ display:flex; align-items:center; gap:11px; min-width:0; flex:1; }
.reader-icon{
  width:40px; height:40px; flex:none;
  display:grid; place-items:center;
  border-radius:12px; background:var(--pink-mist); color:var(--pink-deep);
}
.reader-meta{ min-width:0; display:flex; flex-direction:column; }
.reader-name{
  font-size:15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.reader-meta .text-dim{ font-size:12px; }
.reader-actions{ display:flex; gap:8px; }
.reader-note{
  display:flex; align-items:center; gap:7px;
  padding:7px 18px;
  font-size:12px; color:var(--ink-2);
  background:var(--pink-mist);
  border-bottom:1px solid var(--line-2);
}
.reader-note .icon{ color:var(--pink-deep); }
.reader-body{ flex:1; padding:16px; min-height:0; display:flex; }
.reader-frame{
  flex:1; width:100%; border:1px solid var(--line-2); border-radius:var(--radius);
  background:#fff; box-shadow:var(--shadow-xs);
}
@media (max-width:640px){
  .reader-actions .btn span{ display:none; }
  .reader-actions .btn{ padding:9px; }
  .reader-body{ padding:8px; }
}

/* ============================================================
   压缩包浏览
   ============================================================ */
.zip-page{ display:flex; flex-direction:column; height:100vh; }
.zip-body{ flex:1; display:flex; gap:14px; padding:14px; min-height:0; }
.zip-tree{
  width:340px; flex:none; display:flex; flex-direction:column;
  background:#fff; border:1px solid var(--line-2); border-radius:var(--radius);
  overflow:hidden;
}
.zip-tree-head{
  display:flex; align-items:center; gap:8px;
  padding:11px 13px; border-bottom:1px solid var(--line-2);
  font-size:13.5px; font-weight:700;
}
.zip-tree-head .icon{ color:var(--pink-deep); }
.zip-tree-head .spacer{ flex:1; }
.zip-tree-list{ flex:1; overflow-y:auto; padding:6px; }
.zip-node{
  display:flex; align-items:center; gap:8px;
  width:100%; padding:7px 10px;
  border:0; background:transparent; border-radius:10px;
  font-family:inherit; font-size:13.5px; color:var(--ink);
  cursor:pointer; text-align:left;
  transition:background .15s ease;
}
.zip-node:hover{ background:var(--pink-mist); }
.zip-node.is-active{ background:var(--pink-soft); color:var(--pink-dark); }
.zip-node .icon{ color:var(--ink-3); flex:none; }
.zip-node.is-renderable .icon{ color:var(--pink-deep); }
.zip-node-name{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.zip-node-size{ font-size:11.5px; color:var(--ink-3); flex:none; }
.zip-node[data-dir="1"]{ font-weight:700; color:var(--ink-2); cursor:default; }
.zip-view{
  flex:1; min-width:0; display:flex;
  background:#fff; border:1px solid var(--line-2); border-radius:var(--radius);
  overflow:hidden;
}
.zip-view-placeholder{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:10px; padding:30px; text-align:center; color:var(--ink-2);
}
.zip-view-placeholder .icon-xl{ color:var(--pink-soft); }
.zip-frame-wrap{ flex:1; display:flex; flex-direction:column; min-width:0; }
.zip-frame-bar{
  display:flex; align-items:center; gap:8px;
  padding:7px 12px; border-bottom:1px solid var(--line-2);
  font-size:12.5px; color:var(--ink-2); background:var(--pink-mist);
}
.zip-frame-bar .spacer{ flex:1; }
.zip-frame-path{ font-family:ui-monospace,Consolas,monospace; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.zip-frame{ flex:1; width:100%; border:0; background:#fff; }
.zip-media{ flex:1; display:grid; place-items:center; padding:18px; overflow:auto; }
.zip-media img{ max-width:100%; max-height:100%; border-radius:12px; }
.zip-media video{ max-width:100%; max-height:100%; border-radius:12px; }
.zip-media audio{ width:min(520px,100%); }
.zip-text{
  flex:1; margin:0; padding:18px;
  overflow:auto; white-space:pre-wrap; word-break:break-word;
  font-family:ui-monospace,Consolas,monospace; font-size:13px; line-height:1.7;
  color:var(--ink);
}
.zip-loading{ flex:1; display:grid; place-items:center; }
.zip-page .reader-note .spacer{ flex:1; }
@media (max-width:860px){
  .zip-body{ flex-direction:column; padding:10px; }
  .zip-tree{ width:100%; max-height:38vh; }
}

/* 引用代码区 */
.ref-box{
  margin-top:14px;
  border:1px solid var(--line-2);
  border-radius:var(--radius);
  background:#fffafc;
  overflow:hidden;
}
.ref-box > summary{
  display:flex; align-items:center; gap:8px;
  padding:11px 15px;
  cursor:pointer; font-size:13.5px; font-weight:600; color:var(--ink-2);
  list-style:none;
}
.ref-box > summary::-webkit-details-marker{ display:none; }
.ref-box > summary:hover{ color:var(--pink-dark); background:var(--pink-mist); }
.ref-box[open] > summary{ border-bottom:1px solid var(--line-2); color:var(--pink-dark); }
.ref-body{ padding:13px 15px 5px; }
.ref-body .copy-row{ margin-bottom:10px; }
.ref-body .copy-label{ display:flex; align-items:center; gap:6px; }
.ref-body .copy-label .icon{ color:var(--pink-deep); }

/* 分享页里直接渲染的文档框架 */
.doc-frame{
  display:block; width:100%; height:52vh; min-height:280px;
  border:0; background:#fff;
}
@media (max-width:620px){
  .doc-frame{ height:60vh; min-height:320px; }
}
