/* 迅更 书架改版（2026-10-22）：封面去掉米色标牌，书名直接印在封面上；补「继续上次」与空书收纳。
   依赖 theme.css 的 --xg-* 变量，加载顺序必须在 theme.css 之后。 */

/* ---------- 继续上次 ---------- */
.xg-resume{display:flex;align-items:center;gap:18px;padding:18px 20px;background:#fff;
  border:1px solid var(--xg-line);border-radius:12px;margin:0 0 34px;
  box-shadow:0 1px 2px rgba(31,61,48,.05),0 14px 30px -26px rgba(31,61,48,.5)}
.xg-resume .sw{width:44px;height:60px;border-radius:3px;flex:none;position:relative;
  box-shadow:0 8px 16px -10px rgba(31,61,48,.7)}
.xg-resume .sw::before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:rgba(0,0,0,.24);border-radius:3px 0 0 3px}
.xg-resume .txt{flex:1;min-width:0}
.xg-resume .k{font-size:10.5px;letter-spacing:.2em;color:var(--xg-faint)}
.xg-resume .t{font:500 15px/1.5 var(--xg-serif);color:var(--xg-ink);margin-top:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xg-resume .d{font-size:12.5px;color:var(--xg-muted);margin-top:3px}

/* ---------- 网格 ---------- */
.xg-books{display:grid;grid-template-columns:repeat(auto-fill,minmax(152px,1fr));gap:34px 24px}
.xg-book{gap:10px}

/* ---------- 封面 ---------- */
.xg-cover{border-radius:3px;box-shadow:0 10px 22px -16px rgba(31,61,48,.75);transition:transform .24s cubic-bezier(.2,.7,.3,1),box-shadow .24s}
.xg-cover::before{display:none}
.xg-cover:hover{transform:translateY(-5px);box-shadow:0 20px 32px -18px rgba(31,61,48,.7)}
.xg-spine{position:absolute;left:0;top:0;bottom:0;width:7px;background:rgba(0,0,0,.24)}
.xg-spine::after{content:"";position:absolute;right:-1px;top:0;bottom:0;width:1px;background:rgba(255,255,255,.18)}
.xg-cover-title{position:absolute;right:15px;top:14px;max-height:72%;writing-mode:vertical-rl;
  padding:0;background:none;box-shadow:none;color:#f2ecdd;
  font:500 15px/1.5 var(--xg-serif);letter-spacing:.15em;
  text-shadow:0 1px 3px rgba(0,0,0,.32);overflow:hidden}
.xg-cover-seal{display:none}
.xg-cover-meta{position:absolute;left:15px;bottom:11px;font-size:10.5px;color:rgba(255,255,255,.66);
  font-variant-numeric:tabular-nums;letter-spacing:.02em}
.xg-cover-dot{position:absolute;left:15px;top:13px;width:5px;height:5px;border-radius:50%;
  background:rgba(255,255,255,.42)}
.xg-cover-dot.w{background:#7fe0aa;box-shadow:0 0 7px rgba(127,224,170,.9)}
.xg-cover-dot.d{background:#e8c06a;box-shadow:0 0 7px rgba(232,192,106,.7)}
.xg-cover-go{position:absolute;left:0;right:0;bottom:0;padding:24px 8px 9px;text-align:center;
  font-size:11.5px;letter-spacing:.06em;color:#fff;
  background:linear-gradient(transparent,rgba(0,0,0,.62));opacity:0;transform:translateY(6px);transition:.22s}
.xg-cover:hover .xg-cover-go{opacity:1;transform:none}

/* ---------- 封面下方 ---------- */
.xg-book-info{gap:3px}
.xg-book-title{font:500 14px/1.5 var(--xg-serif)}
.xg-book-sub{font-size:11.5px;color:var(--xg-faint);font-variant-numeric:tabular-nums}
.xg-book-meta,.xg-book-time{display:none}

/* 色调 */
.xg-cover.tone-0{--c:#2e4a38}.xg-cover.tone-1{--c:#26374a}.xg-cover.tone-2{--c:#7d3b31}
.xg-cover.tone-3{--c:#39393a}.xg-cover.tone-4{--c:#465a63}.xg-cover.tone-5{--c:#6a4f2f}

/* ---------- 新建卡 ---------- */
.xg-book-new .xg-cover{background:#fbfcfd;border:1.5px dashed #d3dde6;box-shadow:none;
  display:grid;place-items:center;transition:.2s}
.xg-book-new:hover .xg-cover{border-color:#a9bfd2;background:#f6fafd;transform:translateY(-3px)}
.xg-book-new .xg-cover span[aria-hidden]{font:300 26px/1 var(--xg-sans);color:#b3c1cd}
.xg-book-new .xg-book-info{padding-right:0}
.xg-book-new .xg-book-info b{font:500 14px/1.5 var(--xg-serif);color:var(--xg-muted)}

/* ---------- 未开写收纳 ---------- */
.xg-empty-row{margin-top:30px;border:1px dashed #dfe4d8;border-radius:10px;
  font-size:12.5px;color:var(--xg-muted);transition:.16s}
.xg-empty-row:hover{border-color:#c6d0c2}
.xg-empty-row summary{display:flex;align-items:center;gap:10px;padding:13px 16px;cursor:pointer;list-style:none}
.xg-empty-row summary::-webkit-details-marker{display:none}
.xg-empty-row b{color:var(--xg-ink-2);font-weight:600}
.xg-empty-row .more{margin-left:auto;font-size:11.5px;color:var(--xg-faint);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}
.xg-empty-row[open] summary{border-bottom:1px dashed #e7ecdf}
.xg-empty-row .list{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px}
.xg-empty-row .list button{border:1px solid var(--xg-line);background:#fff;border-radius:14px;
  padding:5px 12px;font:12px/1 var(--xg-sans);color:var(--xg-muted);cursor:pointer;transition:.15s}
.xg-empty-row .list button:hover{border-color:#c6d0c2;color:var(--xg-ink)}

/* ---------- 空书架 ---------- */
.xg-books:empty{display:none}

/* ---------- 仪表盘 ---------- */
.xg-mark{width:26px;height:26px;display:grid;place-items:center;color:var(--xg-ink)}
.xg-brand .xg-mark{width:24px;height:24px}
.xg-mark svg{width:26px;height:26px;display:block}
.dash{flex:1;display:flex}
.dash-in{width:100%;max-width:860px;margin:0 auto;padding:44px 32px 90px}
.dash .kicker{font-size:11px;letter-spacing:.18em;color:var(--xg-faint)}
.dash h1{font:600 25px/1.45 var(--xg-serif);color:var(--xg-ink);margin:10px 0 8px;letter-spacing:.01em}
.dash .sub{font-size:13px;color:var(--xg-muted);margin:0 0 32px}
.dash-card{background:#fff;border:1px solid var(--xg-line);border-radius:14px;
  box-shadow:0 1px 2px rgba(31,61,48,.05),0 14px 32px -28px rgba(31,61,48,.6);overflow:hidden}
.dash-q{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:16px;align-items:start;
  padding:22px 24px;border-bottom:1px solid var(--xg-line-2)}
.dash-q:last-child{border-bottom:0}
.dash-q .ix{font:600 11px/1 var(--xg-sans);color:#bcc7b5;letter-spacing:.1em;padding-top:4px}
.dash-q .k{font-size:11.5px;letter-spacing:.1em;color:var(--xg-faint)}
.dash-q .a{font:500 16px/1.5 var(--xg-serif);color:var(--xg-ink);margin-top:5px}
.dash-q .a em{font-style:normal;color:var(--xg-ink-2)}
.dash-q .d{font-size:12.5px;color:var(--xg-muted);margin-top:6px;line-height:1.75;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.dash-q .act{display:flex;align-items:center}
.dash-sec{display:flex;align-items:center;gap:12px;margin:34px 0 12px;font-size:11.5px;
  letter-spacing:.14em;color:var(--xg-faint)}
.dash-sec .line{flex:1;height:1px;background:var(--xg-line-2)}
.dash-list{border:1px solid var(--xg-line);border-radius:12px;overflow:hidden;background:#fff}
.dash-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto auto;gap:12px;align-items:center;
  width:100%;padding:12px 16px;border:0;border-bottom:1px solid var(--xg-line-2);background:#fff;
  text-align:left;cursor:pointer;transition:.14s}
.dash-row:last-child{border-bottom:0}
.dash-row:hover{background:#fafcf6}
.dash-row .no{font-size:11px;color:var(--xg-faint);font-variant-numeric:tabular-nums}
.dash-row .t{font:500 13.5px/1.4 var(--xg-serif);color:var(--xg-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-row .w{font-size:11.5px;color:var(--xg-faint);font-variant-numeric:tabular-nums}
.pill{font-size:10.5px;padding:2px 9px;border-radius:20px;background:#eef3e7;color:var(--xg-muted);white-space:nowrap}
.pill.ok{background:#e9f6ee;color:#227a4b}
.pill.todo{background:#fdf5e6;color:#9a6a18}

/* ---------- 空库：直接开一本 ---------- */
.xg-start{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 24px 90px}
.start-card{width:100%;max-width:540px;text-align:center}
.start-card .kicker{font-size:10.5px;letter-spacing:.34em;color:#b6ac97;margin-bottom:14px}
.start-card h1{font:600 30px/1.4 var(--xg-serif);color:var(--xg-ink);margin:0 0 10px;letter-spacing:.02em}
.start-card .lead{font-size:13px;color:var(--xg-muted);margin:0 0 26px;line-height:1.9}
.start-box{background:#fff;border:1px solid var(--xg-line);border-radius:12px;padding:12px 14px;
  box-shadow:0 1px 2px rgba(31,61,48,.05),0 16px 34px -30px rgba(31,61,48,.6);text-align:left}
.start-box textarea{width:100%;border:0;outline:none;resize:none;font:14px/1.9 var(--xg-serif);
  color:var(--xg-ink);background:transparent;display:block;min-height:84px}
.start-box textarea::placeholder{color:#bcc7b5}
.start-box .xg-btn{margin-top:10px;width:100%;justify-content:center;height:42px}
.start-skip{margin-top:16px;border:0;background:none;font:12.5px/1 var(--xg-sans);
  color:var(--xg-faint);cursor:pointer;padding:6px 2px;border-bottom:1px solid transparent;transition:.15s}
.start-skip:hover{color:var(--xg-ink-2);border-color:#c9d5bd}
