/* 世界书（浅色页面 / 书页 / 阅读 / 编辑）
   —— 由 styles.css 第 3374–3655 行原样切分，规则与顺序未改动。 */
/* ---------- 浅色页面通用 ---------- */
.wbx-page{position:absolute;inset:0;overflow:hidden;}
.wbx-page::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(40% 30% at 92% 6%,rgba(190,205,255,.38),transparent 100%),
    radial-gradient(45% 28% at 0% 30%,rgba(255,188,216,.24),transparent 100%),
    radial-gradient(45% 35% at 84% 88%,rgba(170,210,255,.24),transparent 100%);
}
.wbx-top{
  position:absolute;top:40px;left:0;right:0;height:56px;z-index:40;
  display:flex;align-items:center;gap:8px;padding:0 14px;
}
.wbx-back{
  width:36px;height:36px;flex-shrink:0;border:none;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.66);border:1px solid rgba(255,255,255,.82);
  color:#4B4357;display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 18px rgba(121,104,150,.1);
}
.wbx-back svg{width:18px;height:18px;fill:currentColor;}
.wbx-top-title{
  flex:1;min-width:0;font-family:var(--wbx-serif);font-size:18px;font-weight:600;
  letter-spacing:.03em;color:#352F40;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.wbx-top-act{
  width:36px;height:36px;flex-shrink:0;border:none;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.64);border:1px solid rgba(255,255,255,.8);
  color:#5C5268;font-size:17px;display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 18px rgba(121,104,150,.08);
}
.wbx-top-act.plus{font-size:22px;font-weight:300;padding-bottom:2px;}
.wbx-scroll{
  position:absolute;top:96px;left:0;right:0;bottom:0;z-index:10;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
  padding:2px 18px calc(34px + env(safe-area-inset-bottom));
}
.wbx-scroll.with-bar{bottom:calc(74px + env(safe-area-inset-bottom));}

/* ---------- 分类页 ---------- */
.wbx-cat-hero{display:flex;align-items:center;gap:14px;padding:6px 2px 12px;}
.wbx-orb{width:62px;height:62px;flex-shrink:0;}
.wbx-kicker{font-size:7px;letter-spacing:.2em;color:#A395B0;}
.wbx-cat-name{font-family:var(--wbx-serif);font-size:30px;line-height:1.24;font-weight:600;color:#2F2A39;margin-top:2px;letter-spacing:.02em;}
.wbx-cat-sub{font-size:8.5px;color:#A093AC;margin-top:3px;letter-spacing:.06em;}
.wbx-stats{display:flex;align-items:baseline;gap:20px;padding:2px 3px 13px;}
.wbx-stat{display:flex;align-items:baseline;gap:4px;}
.wbx-stat b{font-size:22px;font-weight:800;color:#3A3145;line-height:1;font-variant-numeric:tabular-nums;}
.wbx-stat span{font-size:8px;color:#A194AE;}
.wbx-search{
  display:flex;align-items:center;gap:8px;height:39px;padding:0 13px;
  border-radius:13px;background:rgba(255,255,255,.7);
  border:1px solid rgba(255,255,255,.85);box-shadow:0 6px 18px rgba(120,100,150,.06);
}
.wbx-search svg{width:14px;height:14px;fill:#B4A7C0;flex-shrink:0;}
.wbx-search input{flex:1;min-width:0;border:none;background:transparent;outline:none;font-size:11px;color:#3E3649;}
.wbx-search input::placeholder{color:#B9ADB7;}
.wbx-list-head{display:flex;align-items:center;justify-content:space-between;margin:15px 2px 8px;}
.wbx-list-head span:first-child{font-size:7px;letter-spacing:.18em;color:#A496B0;}
.wbx-list-head span:last-child{font-size:8px;color:#AFA2B8;}
.wbx-book-card{
  display:flex;align-items:center;gap:11px;padding:11px;
  border-radius:18px;background:rgba(255,255,255,.76);
  border:1px solid rgba(255,255,255,.85);margin-bottom:9px;
  box-shadow:0 8px 22px rgba(121,102,148,.07);cursor:pointer;
  transition:transform .18s,box-shadow .18s;
}
.wbx-book-card:active{transform:scale(.985);}
.wbx-book-card.off{opacity:.56;}
.wbx-book-cover{
  width:50px;height:62px;border-radius:10px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--wbx-serif);font-size:22px;font-weight:600;color:#fff;
  text-shadow:0 1px 5px rgba(0,0,0,.22);
}
.wbx-book-main{flex:1;min-width:0;}
.wbx-book-title{font-family:var(--wbx-serif);font-size:16px;font-weight:600;color:#352F40;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wbx-book-desc{
  font-size:10px;line-height:1.55;color:#91859D;margin-top:3px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.wbx-book-meta{font-size:8px;color:#B0A3B7;margin-top:4px;}
.wbx-chevron{width:14px;height:14px;fill:#C3B7C9;flex-shrink:0;}
.wbx-off-flag{
  display:inline-block;padding:2px 5px;border-radius:5px;margin-left:5px;
  font-family:-apple-system,"PingFang SC",sans-serif;font-size:7px;font-weight:500;
  color:#A78FA5;background:#F1E7EF;vertical-align:middle;
}
.wbx-empty{
  text-align:center;padding:46px 18px 40px;border-radius:20px;
  background:rgba(255,255,255,.45);border:1px dashed rgba(150,130,170,.2);
}
.wbx-empty-gem{width:42px;height:42px;margin:0 auto 12px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.7);color:#B79AC7;font-size:18px;box-shadow:0 8px 22px rgba(140,110,165,.08);}
.wbx-empty b{display:block;font-family:var(--wbx-serif);font-size:16px;color:#4A4055;font-weight:600;}
.wbx-empty p{font-size:10px;line-height:1.7;color:#9A8DA5;margin-top:5px;}
.wbx-empty button{margin-top:12px;border:none;border-radius:10px;padding:9px 16px;background:linear-gradient(100deg,#FFD4E8,#D4E8FF);color:#5B4563;font-size:10px;font-weight:650;cursor:pointer;}
.wbx-page-note{text-align:center;font-size:9px;line-height:1.7;color:#9E8FA8;margin:18px 0 4px;}

/* ---------- 书页 ---------- */
.wbx-book-hero{display:flex;align-items:flex-start;gap:13px;padding:4px 2px 10px;}
.wbx-book-hero .wbx-book-cover{width:70px;height:92px;border-radius:13px;font-size:30px;box-shadow:0 10px 26px rgba(110,80,140,.16);}
.wbx-book-hero-main{flex:1;min-width:0;padding-top:3px;}
.wbx-book-hero h2{font-family:var(--wbx-serif);font-size:26px;line-height:1.25;font-weight:600;color:#2F2A39;letter-spacing:.02em;}
.wbx-book-hero p{font-size:10px;line-height:1.6;color:#96899F;margin-top:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.wbx-meta-pills{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px;}
.wbx-pill{padding:3px 7px;border-radius:6px;background:rgba(255,255,255,.68);border:1px solid rgba(255,255,255,.8);font-size:7.5px;color:#9A8CA6;}
.wbx-enable{
  display:flex;align-items:center;gap:10px;padding:10px 13px;margin:6px 0 10px;
  border-radius:14px;background:rgba(255,255,255,.68);
  border:1px solid rgba(255,255,255,.82);box-shadow:0 6px 18px rgba(120,100,150,.05);
}
.wbx-enable-copy{flex:1;min-width:0;}
.wbx-enable-copy b{display:block;font-size:11px;font-weight:650;color:#443B50;}
.wbx-enable-copy small{display:block;font-size:8px;line-height:1.55;color:#A093AC;margin-top:2px;}
.wbx-toggle{
  width:40px;height:23px;border:none;border-radius:99px;flex-shrink:0;
  background:rgba(120,108,140,.2);position:relative;cursor:pointer;
  transition:background .25s;padding:0;
}
.wbx-toggle::after{
  content:"";position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;
  background:#fff;box-shadow:0 2px 6px rgba(60,40,80,.18);transition:transform .25s;
}
.wbx-toggle.on{background:linear-gradient(135deg,#FFB7D2,#A9C8FF);}
.wbx-toggle.on::after{transform:translateX(17px);}
.wbx-settings{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;}
.wbx-setting{padding:8px 10px;border-radius:11px;background:rgba(255,255,255,.54);border:1px solid rgba(255,255,255,.7);}
.wbx-setting label{display:block;font-size:7px;letter-spacing:.1em;color:#A294AD;margin-bottom:3px;}
.wbx-setting select,.wbx-setting input{
  width:100%;border:none;background:transparent;outline:none;
  font-size:10px;color:#4C4258;font-family:inherit;padding:0;
}
.wbx-add-row{display:flex;gap:7px;margin:9px 0 12px;}
.wbx-add-row button{
  flex:1;height:33px;border:1px dashed rgba(150,125,170,.26);border-radius:10px;
  background:rgba(255,255,255,.42);color:#8A7797;font-size:9.5px;cursor:pointer;
}
.wbx-entry-row{
  display:flex;align-items:center;gap:9px;padding:10px 12px;margin-bottom:7px;
  border-radius:13px;background:rgba(255,255,255,.72);
  border:1px solid rgba(255,255,255,.82);cursor:pointer;
  box-shadow:0 5px 14px rgba(120,100,150,.045);
}
.wbx-entry-row.off{opacity:.52;}
.wbx-entry-no{width:17px;flex-shrink:0;font-size:8px;color:#B5A7BC;font-variant-numeric:tabular-nums;}
.wbx-entry-main{flex:1;min-width:0;}
.wbx-entry-name{font-size:11.5px;font-weight:600;color:#403749;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wbx-entry-tags{display:flex;align-items:center;gap:4px;margin-top:3px;overflow:hidden;}
.wbx-entry-tags span{font-size:7.5px;color:#A092AB;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wbx-entry-tags .wbx-mini{padding:1px 4px;border-radius:4px;background:#F1E7F0;color:#9A819C;}
.wbx-entry-tags .wbx-time{margin-left:auto;flex-shrink:0;color:#B6A9BC;}

/* ---------- 条目阅读页 ---------- */
.wbx-doc{
  position:relative;border-radius:20px;padding:19px 17px 13px;
  background:rgba(255,252,250,.88);border:1px solid rgba(255,255,255,.9);
  box-shadow:0 14px 38px rgba(120,94,146,.1);
}
.wbx-doc-meta{font-size:7.5px;letter-spacing:.2em;color:#AD9EB6;}
.wbx-doc-title{font-family:var(--wbx-serif);font-size:28px;line-height:1.36;font-weight:600;color:#302C39;margin:8px 0 8px;letter-spacing:.02em;}
.wbx-keys{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0 5px;}
.wbx-key{padding:3px 7px;border-radius:99px;background:#F4E8F0;color:#846A82;font-size:8px;}
.wbx-doc-when{font-size:7.5px;color:#B4A4B4;margin-bottom:14px;}
.wbx-doc-body p{font-size:13.5px;line-height:1.95;color:#403A49;margin-bottom:16px;text-align:justify;word-break:break-word;}
.wbx-doc-body p:last-child{margin-bottom:4px;}
.wbx-doc-foot{text-align:center;font-size:8px;letter-spacing:.14em;color:#B9AAB9;border-top:1px solid #EFE5EC;padding-top:10px;margin-top:4px;}
.wbx-actionbar{
  position:absolute;left:14px;right:14px;bottom:calc(10px + env(safe-area-inset-bottom));
  z-index:50;display:flex;gap:7px;height:52px;
}
.wbx-primary-btn{
  flex:1;border:none;border-radius:16px;cursor:pointer;
  background:linear-gradient(100deg,#FFD4E8,#D4E8FF);
  color:#58445F;font-size:11.5px;font-weight:700;letter-spacing:.08em;
  box-shadow:0 10px 24px rgba(150,120,170,.14);
}
.wbx-danger-btn{
  width:48px;border:1px solid rgba(255,255,255,.8);border-radius:16px;
  background:rgba(255,255,255,.68);color:#C06B84;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.wbx-danger-btn svg{width:16px;height:16px;fill:currentColor;}

/* ---------- 新建书 / 编辑条目 ---------- */
.wbx-form-page{padding:2px 0 20px;}
.wbx-field{margin-bottom:11px;}
.wbx-field-label{display:block;font-size:8px;letter-spacing:.14em;color:#A091AB;margin:0 2px 5px;}
.wbx-input{
  width:100%;border:1px solid rgba(255,255,255,.85);border-radius:12px;
  background:rgba(255,255,255,.78);padding:11px 12px;
  font-size:12px;color:#3C3447;outline:none;font-family:inherit;
  transition:border-color .2s,box-shadow .2s;
}
.wbx-input:focus{border-color:rgba(230,160,195,.5);box-shadow:0 0 0 3px rgba(255,200,225,.15);}
textarea.wbx-input{resize:vertical;line-height:1.8;min-height:110px;}
select.wbx-input{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#B0A0B8 50%),linear-gradient(135deg,#B0A0B8 50%,transparent 50%);background-position:calc(100% - 15px) 52%,calc(100% - 11px) 52%;background-size:4px 4px,4px 4px;background-repeat:no-repeat;}
.wbx-form-actions{display:flex;gap:8px;margin-top:16px;}
.wbx-form-actions button{flex:1;height:42px;border-radius:13px;border:none;font-size:11px;font-weight:650;cursor:pointer;}
.wbx-form-actions .ghost{background:rgba(255,255,255,.62);color:#8C7A96;}
.wbx-form-actions .primary{background:linear-gradient(100deg,#FFD4E8,#D4E8FF);color:#58445F;}
.wbx-form-tip{font-size:8px;line-height:1.7;color:#AC9EB5;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.42);margin-top:8px;}

.wbx-editor{position:absolute;top:96px;left:0;right:0;bottom:0;overflow-y:auto;padding:0 18px calc(100px + env(safe-area-inset-bottom));z-index:10;-webkit-overflow-scrolling:touch;}
.wbx-editor-section{font-family:var(--wbx-serif);font-size:12px;font-weight:600;color:#7E6D88;margin:16px 2px 8px;letter-spacing:.08em;}
.wbx-editor-section:first-child{margin-top:2px;}
.wbx-editor-actions{
  position:absolute;left:0;right:0;bottom:0;
  z-index:50;display:flex;align-items:center;gap:8px;
  height:70px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:rgba(250,246,251,.97);
  box-shadow:0 -8px 24px rgba(120,90,140,.06);
  backdrop-filter:blur(14px);
}
.wbx-editor-actions button{flex:1;height:50px;border:none;border-radius:15px;font-size:11px;font-weight:650;cursor:pointer;}
.wbx-editor-actions .ghost{background:rgba(255,255,255,.66);color:#8A7995;border:1px solid rgba(255,255,255,.8);}
.wbx-editor-actions .primary{background:linear-gradient(100deg,#FFD4E8,#D4E8FF);color:#58445F;}
.wbx-editor-hint{font-size:8px;line-height:1.7;color:#A99BB2;margin-top:6px;}
.wbx-if-row{display:flex;align-items:center;gap:8px;padding:8px 10px;margin:7px 0;border-radius:10px;background:rgba(255,255,255,.42);}
.wbx-if-row .wbx-enable-copy b{font-size:10px;}
.wbx-if-row .wbx-enable-copy small{font-size:7.5px;}
.wbx-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.wbx-editor-grid .wbx-field{margin-bottom:0;}

/* ---------- 菜单 / 弹层 ---------- */
.wbx-menu-mask{position:absolute;inset:0;z-index:54;background:transparent;}
.wbx-menu{
  position:absolute;top:98px;right:60px;z-index:55;min-width:132px;
  padding:5px;border-radius:13px;background:rgba(255,250,252,.98);
  border:1px solid rgba(255,255,255,.9);
  box-shadow:0 18px 40px rgba(90,60,110,.18);
}
.wbx-menu.wide{right:14px;}
.wbx-menu button{
  display:flex;width:100%;align-items:center;gap:8px;padding:9px 10px;
  border:none;border-radius:8px;background:transparent;color:#5B4D65;
  font-size:10.5px;text-align:left;cursor:pointer;
}
.wbx-menu button:hover{background:#F8EEF5;}
.wbx-menu button.danger{color:#C06B84;}
.wbx-menu-hint{padding:5px 9px 7px;font-size:7px;color:#B3A3B6;line-height:1.5;}
.wbx-modal{
  position:absolute;inset:0;z-index:90;display:flex;align-items:flex-end;justify-content:center;
  padding:0 10px calc(10px + env(safe-area-inset-bottom));
  background:rgba(30,18,36,.34);backdrop-filter:blur(5px);
}
.wbx-modal-card{
  width:100%;max-width:410px;border-radius:24px;
  background:linear-gradient(160deg,#FFF9FC,#F7F1FF 60%,#EFF6FF);
  padding:20px 18px 17px;box-shadow:0 30px 70px rgba(50,20,60,.3);
  border:1px solid rgba(255,255,255,.9);
}
.wbx-modal-kicker{font-size:7px;letter-spacing:.24em;color:#B7A5BE;}
.wbx-modal-title{font-family:var(--wbx-serif);font-size:25px;font-weight:600;color:#332D3D;margin:5px 0 4px;letter-spacing:.02em;}
.wbx-modal-desc{font-size:9.5px;line-height:1.7;color:#9A8AA4;margin-bottom:13px;}
.wbx-modal .wbx-input{margin-bottom:11px;}
.wbx-modal-actions{display:flex;gap:8px;margin-top:6px;}
.wbx-modal-actions button{flex:1;height:40px;border-radius:12px;border:none;font-size:10.5px;font-weight:650;cursor:pointer;}
.wbx-modal-actions .ghost{background:rgba(255,255,255,.8);color:#8C7A96;}
.wbx-modal-actions .primary{background:linear-gradient(100deg,#FFD4E8,#D4E8FF);color:#58445F;}
.wbx-swatches{display:flex;gap:10px;padding:3px 2px 6px;}
.wbx-swatch{width:26px;height:26px;border-radius:50%;border:2px solid #fff;cursor:pointer;box-shadow:0 3px 8px rgba(80,50,100,.15);}
.wbx-swatch.sel{outline:2px solid #E7A6C4;outline-offset:2px;}
.wbx-move-list{max-height:300px;overflow-y:auto;margin:4px -3px 9px;}
.wbx-move-item{
  display:flex;width:100%;align-items:center;gap:9px;padding:9px 8px;
  border:none;border-radius:10px;background:transparent;cursor:pointer;text-align:left;
}
.wbx-move-item:hover{background:rgba(255,255,255,.7);}
.wbx-move-orb{width:17px;height:17px;border-radius:50%;flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.6);}
.wbx-move-name{flex:1;font-size:11px;color:#55475F;}
.wbx-move-count{font-size:8px;color:#AC9CB4;}
.wbx-move-check{font-size:10px;color:#D28FAF;}

@media (max-height:880px){
  .wbx-coach{top:105px;}
  .wbx-sheet{max-height:64%;padding-bottom:calc(12px + env(safe-area-inset-bottom));}
  .wbx-sheet-stats{margin:10px 0 8px;}
  .wbx-sheet-books{max-height:120px;margin-bottom:8px;}
  .wbx-sheet-note{line-height:1.4;margin-top:7px;}
  .wbx-doc-title{font-size:25px;}
  .wbx-cat-name{font-size:27px;}
}

