/* ===== 卡片（3D 软糖果冻 · 半透明糖果色实底 · 多层高光/阴影 · 无 blur） ===== */
.card{
  position:relative;border-radius:var(--jelly-radius);margin-bottom:14px;overflow:hidden;
  background:var(--jelly-bg);
  box-shadow:var(--jelly-edge);
  border:var(--jelly-border);
  isolation:isolate;
  transition:transform .3s var(--jelly-press), box-shadow .2s ease;
}
/* 按压时 Q 弹下沉回弹 */
.card:active{
  transform:scale(.94) translateY(3px);
  box-shadow:var(--jelly-edge-hover);
}
.card-bg{position:absolute;inset:0;background:var(--jelly-bg);background-size:cover;background-position:center;opacity:var(--card-opacity,1);z-index:0}
.card-inner{position:relative;z-index:1;padding:15px;overflow:hidden;border-radius:inherit}
.card-inner.tight{padding:10px}
.card-hd{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.card-hd .t{font-weight:700;font-size:calc(var(--fsize)*1);color:var(--text);position:relative;z-index:2}
.card-hd .ci{width:28px;height:28px;border-radius:11px;background:var(--accent2);display:flex;align-items:center;justify-content:center;flex:0 0 auto;color:var(--text);overflow:hidden;box-shadow:inset 1px 1px 2px rgba(255,255,255,.7), inset -1px -1px 2px rgba(170,60,100,.12)}
.card-hd .ci img{width:100%;height:100%;object-fit:cover}
.card-hd .x{margin-left:auto;display:flex;gap:6px;align-items:center}
.card.w50{width:calc(50% - 6px);display:inline-block;vertical-align:top}
.cardgroup{display:flex;flex-wrap:wrap;gap:0 12px}
.cardgroup>.card{width:100%}
.cardgroup>.card.w50{width:calc(50% - 6px)}
/* ===== 笔记竖版封面卡片（3D 软糖果冻） ===== */
.note-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.note-card{
  position:relative;border-radius:var(--jelly-radius);overflow:hidden;
  background:var(--jelly-bg);
  box-shadow:var(--jelly-edge);
  border:var(--jelly-border);
  cursor:pointer;
  transition:transform .3s var(--jelly-press), box-shadow .2s ease;
}
.note-card:active{transform:scale(.94) translateY(3px);box-shadow:var(--jelly-edge-hover)}
.nc-cover{height:140px;overflow:hidden;background:var(--card-2);display:flex;align-items:center;justify-content:center}
.nc-cover img{width:100%;height:100%;object-fit:cover;display:block}
.nc-cover-empty{font-size:calc(var(--fsize)*2.1333);color:var(--muted);opacity:.45}
.nc-body{padding:10px 11px 12px;position:relative;z-index:2}
.nc-title{font-size:calc(var(--fsize)*0.8667);font-weight:700;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);margin-bottom:4px}
.nc-date{font-size:calc(var(--fsize)*0.7);color:var(--text2)}
/* 新建卡片（3D 果冻虚线框） */
.note-card-new{
  position:relative;
  background:var(--jelly-bg-soft);
  border-radius:var(--jelly-radius);border:2px dashed rgba(255,150,195,.55);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:200px;cursor:pointer;
  box-shadow:var(--jelly-edge);
  transition:transform .3s var(--jelly-press), background .15s, box-shadow .2s;
}
.note-card-new:active{transform:scale(.94) translateY(3px);background:#ffeef5}
.ncn-icon{font-size:calc(var(--fsize)*2.4);color:var(--accent);font-weight:300;line-height:1;position:relative;z-index:2}
.ncn-label{font-size:calc(var(--fsize)*0.9333);font-weight:700;color:var(--accent);margin-top:8px;position:relative;z-index:2}
.ncn-hint{font-size:calc(var(--fsize)*0.7333);color:var(--text2);margin-top:4px;position:relative;z-index:2}
/* 外观编辑遮罩：只有开启编辑外观时才出现，平时不占任何点击区域 */
.card-edit-mask{
  position:absolute;inset:0;z-index:6;display:none;align-items:flex-start;justify-content:flex-end;
  padding:7px;cursor:pointer;background:rgba(125,125,160,.08)
}
body.pz-edit .card-edit-mask{display:flex}
body.pz-edit .card{outline:1.5px dashed var(--accent);outline-offset:-1px}
.card-edit-mask .ce-badge{
  display:inline-flex;align-items:center;gap:3px;background:var(--accent);color:var(--accent-ink);
  border-radius:8px;font-size:calc(var(--fsize)*0.7333);font-weight:700;padding:3px 8px;box-shadow:0 2px 8px rgba(0,0,0,.22)
}

/* 每页底部「编辑外观」入口 */
.pz-foot{display:flex;justify-content:center;padding:20px 0 6px}
.pzf-btn{
  position:relative;display:inline-flex;align-items:center;gap:6px;overflow:hidden;
  border:var(--jelly-border);
  background:var(--jelly-bg);
  color:var(--text2);border-radius:999px;padding:9px 20px;font-size:calc(var(--fsize)*0.8667);font-family:inherit;cursor:pointer;
  box-shadow:var(--jelly-edge);
  transition:transform .3s var(--jelly-press), box-shadow .2s;
}
.pzf-btn:active{transform:scale(.92)}
body.pz-edit .pzf-btn{background:var(--accent);color:var(--accent-ink);border-color:transparent;font-weight:700}

/* ===== 所有卡片统一「3D 软糖果冻」效果（无 blur） ===== */
.list,.cal,.quotecard,.sortitem,.netcard,.searchbox,.chip,.pzf-btn,.fab.sec,.segs{
  position:relative;
  box-shadow:var(--jelly-edge);border:var(--jelly-border);
  transition:transform .3s var(--jelly-press), box-shadow .2s ease;
}
.list:active,.cal:active,.quotecard:active,.sortitem:active,.netcard:active,.searchbox:active,.chip:active,.pzf-btn:active,.fab.sec:active,.segs:active{
  transform:scale(.94) translateY(3px);box-shadow:var(--jelly-edge-hover);
}
/* 弹层/弹窗/抽屉：3D 软糖果冻 */
.sheet,.dialog,.drawer{
  background:var(--jelly-bg-soft);border:var(--jelly-border);box-shadow:var(--jelly-edge-hover);
}
/* 表单输入：干净实底 */
/* 小元素粉边 */
.thumb,.gswatch{border:1px solid rgba(255,160,195,.30)}

/* 渐变色板 */
.gswatch{width:38px;height:30px;border-radius:9px;border:1px solid var(--line);cursor:pointer;flex:0 0 auto}
.gswatch.none{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:calc(var(--fsize)*0.8667);background:#fef6f9}
.gswatch:active{transform:scale(.94)}

/* 折叠列表 */
.foldwrap{margin-bottom:12px}
.fold-bar{display:flex;justify-content:center;padding:8px 0 2px}
.fold-btn{
  display:inline-flex;align-items:center;gap:4px;border:none;background:transparent;color:var(--accent);
  font-size:calc(var(--fsize)*0.8333);font-weight:600;font-family:inherit;cursor:pointer;padding:4px 12px;border-radius:999px;
  transition:transform .2s cubic-bezier(.34,1.8,.5,1)
}
.fold-btn:active{transform:scale(.92);background:var(--card-2)}

/* 搜索框（3D 软糖果冻） */
.searchbox{
  display:flex;align-items:center;gap:8px;background:var(--jelly-bg);border:var(--jelly-border);
  border-radius:var(--jelly-radius-s);padding:0 12px;height:44px;margin-bottom:12px;color:var(--muted);
  box-shadow:var(--jelly-edge);overflow:hidden;
}
.searchbox .sinp{flex:1;border:none;background:none;outline:none;font-size:calc(var(--fsize)*0.9333);font-family:inherit;color:var(--text);min-width:0}
.searchbox .sclr{border:none;background:var(--line);color:var(--text2);width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto}

/* 缩略图 & 大图查看 */
.thumbs{display:flex;flex-wrap:wrap;gap:6px}
.thumb{width:46px;height:46px;border-radius:10px;object-fit:cover;cursor:pointer;background:#fef0f7;flex:0 0 auto;border:var(--clean-border)}
.thumb.lg{width:64px;height:64px}
.viewer .vimg{width:100%;max-height:62vh;object-fit:contain;border-radius:10px;background:#00000010;display:block}
.viewer .vbar{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:8px;font-size:calc(var(--fsize)*0.8667);color:var(--text2)}

/* 裁剪器 */
.cropview{position:relative;margin:0 auto;overflow:hidden;border-radius:12px;background:#f2f2f4;touch-action:none}
.cropview .cropcv{display:block;cursor:grab}
.cropview .cropgrid{position:absolute;inset:0;pointer-events:none;box-shadow:0 0 0 1px rgba(255,255,255,.7) inset}

/* ===== 按钮 ===== */
.btn{
  position:relative;overflow:hidden;border:none;background:var(--accent);color:var(--accent-ink);border-radius:16px;
  padding:12px 18px;font-size:calc(var(--fsize)*0.9333);font-weight:700;cursor:pointer;font-family:inherit;
  box-shadow:inset 1px 1px 2px rgba(255,255,255,.45), inset -1px -1px 3px rgba(130,30,60,.25), 0 8px 18px -8px rgba(255,111,156,.55);transition:transform .18s var(--jelly-press), filter .12s, box-shadow .12s;
}
.btn::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.45) 0%,rgba(255,255,255,0) 45%);pointer-events:none;border-radius:inherit}
.btn:active{transform:translateY(2px) scale(.97);filter:brightness(.96)}
.btn.ghost{background:var(--jelly-bg-soft);color:var(--text);box-shadow:var(--jelly-edge);border:var(--jelly-border)}
.btn.line{background:var(--jelly-bg-soft);border:var(--jelly-border);color:var(--text2);box-shadow:var(--jelly-edge)}
.btn.danger{background:var(--danger);color:#fff}
.btn.sm{padding:7px 13px;font-size:calc(var(--fsize)*0.8667);border-radius:12px}
.btn.xs{padding:5px 10px;font-size:calc(var(--fsize)*0.8);border-radius:10px}
.btn.block{display:block;width:100%}
.btn:disabled{opacity:.5}
.iconbtn{border:none;background:transparent;color:var(--text2);cursor:pointer;padding:5px;border-radius:8px;font-size:calc(var(--fsize)*0.9333);line-height:1;transition:transform .2s, background .2s}
.iconbtn:active{transform:scale(.88);background:var(--card-2)}
.iconbtn.dg{color:var(--danger)}

.fab{
  position:absolute;right:16px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:30;
  width:52px;height:52px;border-radius:50%;border:none;
  background:var(--accent);color:var(--accent-ink);
  font-size:calc(var(--fsize)*1.7333);
  box-shadow:0 6px 20px -4px rgba(255,111,156,.45), 0 2px 8px rgba(255,111,156,.25);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:transform .2s ease, box-shadow .2s;
}
.fab.sec{right:80px;background:var(--jelly-bg);color:var(--text);font-size:calc(var(--fsize)*1.3333);border:var(--jelly-border);box-shadow:var(--jelly-edge)}
.fab:active{transform:scale(.86) translateY(3px)}

/* ===== chips / tabs（3D 软糖果冻） ===== */
.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{
  position:relative;flex:0 0 auto;padding:9px 16px;border-radius:999px;
  background:var(--jelly-bg);color:var(--text2);
  font-size:calc(var(--fsize)*0.8667);cursor:pointer;
  border:var(--jelly-border);white-space:nowrap;overflow:hidden;
  box-shadow:var(--jelly-edge);
  transition:transform .3s var(--jelly-press), box-shadow .2s ease;
}
.chip.on{background:var(--accent);color:var(--accent-ink);border-color:transparent;font-weight:600;box-shadow:inset 1px 1px 2px rgba(255,255,255,.55), inset -1px -1px 3px rgba(130,30,60,.25), 0 4px 12px -3px rgba(255,111,156,.42)}
.chip:active{transform:scale(.90)}
.segs{display:flex;background:var(--jelly-bg-soft);border-radius:var(--jelly-radius-s);padding:3px;gap:2px;border:var(--jelly-border);box-shadow:var(--jelly-edge);overflow:hidden}
.segs .seg{flex:1;text-align:center;padding:8px 4px;border-radius:16px;font-size:calc(var(--fsize)*0.8667);color:var(--text2);cursor:pointer;transition:transform .3s var(--jelly-press), background .2s, box-shadow .2s;position:relative;z-index:1}
.segs .seg.on{background:#ffffff;color:var(--text);font-weight:700;box-shadow:var(--jelly-edge);border-radius:16px}
.segs .seg:active{transform:scale(.93)}

/* ===== 列表 & 菜单项（3D 软糖果冻） ===== */
.list{position:relative;background:var(--jelly-bg);border-radius:var(--jelly-radius);overflow:hidden;box-shadow:var(--jelly-edge);border:var(--jelly-border)}
.li{
  position:relative;display:flex;align-items:center;gap:10px;padding:13px 14px;
  border-bottom:1px solid var(--line);cursor:pointer;
  border-radius:var(--jelly-radius-s);margin:5px 4px;
  background:var(--jelly-bg);
  box-shadow:var(--jelly-edge);
  transition:transform .3s var(--jelly-press), box-shadow .2s ease, background .15s;
  overflow:hidden;
}
.li:last-child{border-bottom:none}
.li:active{transform:scale(.94) translateY(2px);box-shadow:var(--jelly-edge-hover);background:#ffeef5}
.li .lic{width:38px;height:38px;border-radius:13px;background:var(--accent2);display:flex;align-items:center;justify-content:center;font-size:calc(var(--fsize)*1.2);flex:0 0 auto;overflow:hidden;box-shadow:inset 1px 1px 2px rgba(255,255,255,.7), inset -1px -1px 2px rgba(170,60,100,.12)}
.li .lic img{width:100%;height:100%;object-fit:cover}
.li .lt{flex:1;min-width:0}
.li .lt .n{font-size:calc(var(--fsize)*0.9333);font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative;z-index:2}
.li .lt .d{font-size:calc(var(--fsize)*0.8);color:var(--text2);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative;z-index:2}
.li .lr{text-align:right;font-size:calc(var(--fsize)*0.9333);font-weight:700;flex:0 0 auto}
.li .arw{color:var(--muted);font-size:calc(var(--fsize)*0.9333)}

/* ===== 表单（干净实底输入） ===== */
.field{margin-bottom:14px}
.field>label{display:block;font-size:calc(var(--fsize)*0.8667);color:var(--text2);margin-bottom:6px;font-weight:600}
.input,.select,.textarea{
  width:100%;border:var(--jelly-border);
  background:var(--jelly-bg);
  color:var(--text);
  border-radius:var(--jelly-radius-s);padding:12px 13px;font-size:calc(var(--fsize)*1);font-family:inherit;outline:none;
  transition:border-color .15s, box-shadow .15s, transform .2s;
  box-shadow:var(--jelly-edge);
}
.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent2), var(--jelly-edge)}
.textarea{min-height:90px;resize:vertical}
.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239aa3b2' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}
input[type=color].input{padding:3px;height:42px}
.hintline{font-size:calc(var(--fsize)*0.8);color:var(--muted);margin-top:5px}
.warnbox{font-size:calc(var(--fsize)*0.8333);line-height:1.6;color:var(--danger);background:rgba(240,68,86,.10);border:1px solid rgba(240,68,86,.28);border-radius:10px;padding:9px 11px;white-space:pre-wrap}
.switch{position:relative;width:44px;height:26px;flex:0 0 auto}
.switch input{opacity:0;width:100%;height:100%;margin:0;position:absolute;z-index:2;cursor:pointer}
.switch i{position:absolute;inset:0;background:var(--line);border-radius:999px;transition:.18s}
.switch i:after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#ffeef5;transition:.18s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.switch input:checked + i{background:var(--accent)}
.switch input:checked + i:after{transform:translateX(18px)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}

/* ===== 弹层 ===== */
.mask{position:absolute;inset:0;background:rgba(15,18,26,.42);animation:fade .18s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.sheet{
  position:absolute;left:0;right:0;bottom:0;background:var(--bg2);
  border-radius:32px 32px 0 0;max-height:90%;display:flex;flex-direction:column;
  box-shadow:0 -12px 42px -10px rgba(190,70,130,.26);
  animation:up .24s cubic-bezier(.2,.8,.3,1);padding-bottom:env(safe-area-inset-bottom,0px)
}
@keyframes up{from{transform:translateY(100%)}to{transform:none}}
.sheet-hd{display:flex;align-items:center;padding:14px 16px 8px;gap:8px}
.sheet-hd .t{font-size:calc(var(--fsize)*1.0667);font-weight:700;flex:1}
.sheet-body{overflow-y:auto;padding:6px 16px 16px}
.sheet-ft{padding:10px 16px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);display:flex;gap:10px}
.sheet-ft .btn{flex:1}
.dialog{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:86%;max-width:400px;
  background:var(--bg2);border-radius:28px;overflow:hidden;animation:pop .18s ease;
  box-shadow:var(--jelly-edge-hover);
  border:var(--jelly-border);
}
@keyframes pop{from{transform:translate(-50%,-50%) scale(.94);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}
.dialog .d-hd{padding:18px 18px 6px;font-weight:700;font-size:calc(var(--fsize)*1.0667)}
.dialog .d-bd{padding:6px 18px 16px;color:var(--text2);font-size:calc(var(--fsize)*0.9333);line-height:1.6;max-height:56vh;overflow:auto}
.dialog .d-ft{display:flex;border-top:1px solid var(--line)}
.dialog .d-ft button{flex:1;padding:13px;border:none;background:none;font-size:calc(var(--fsize)*1);font-family:inherit;cursor:pointer;color:var(--text2)}
.dialog .d-ft button+button{border-left:1px solid var(--line)}
.dialog .d-ft button.pri{color:var(--accent);font-weight:700}
.dialog .d-ft button.dg{color:var(--danger);font-weight:600}
.toast{
  background:rgba(28,30,38,.9);color:#fff;padding:10px 18px;border-radius:20px;font-size:calc(var(--fsize)*0.9);
  animation:fade .16s ease;max-width:82%;text-align:center
}

/* 抽屉（3D 软糖果冻） */
.drawer{
  position:absolute;left:0;top:0;bottom:0;width:260px;
  background:var(--jelly-bg-soft);
  border-right:var(--jelly-border);
  box-shadow:var(--jelly-edge-hover);
  animation:dr .22s ease;display:flex;flex-direction:column;padding-top:calc(env(safe-area-inset-top,0px) + 18px)
}
@keyframes dr{from{transform:translateX(-100%)}to{transform:none}}
.drawer .dhd{padding:10px 18px 16px}
.drawer .dhd .n{font-size:calc(var(--fsize)*1.2);font-weight:800;color:var(--accent)}
.drawer .dhd .s{font-size:calc(var(--fsize)*0.8);color:var(--muted);margin-top:3px}
.drawer .ditem{
  display:flex;align-items:center;gap:12px;padding:14px 18px;cursor:pointer;font-size:calc(var(--fsize)*1);
  border-radius:var(--jelly-radius-s);margin:6px 12px;position:relative;overflow:hidden;
  background:var(--jelly-bg);
  box-shadow:var(--jelly-edge);
  border:var(--jelly-border);
  transition:transform .3s var(--jelly-press), box-shadow .2s ease, background .15s;
}
.drawer .ditem:active{
  transform:scale(.94) translateY(3px);
  box-shadow:var(--jelly-edge-hover);
  background:#ffeef5;
}
.drawer .ditem .di{width:34px;height:34px;border-radius:13px;background:var(--accent2);display:flex;align-items:center;justify-content:center;font-size:calc(var(--fsize)*1.0667);flex:0 0 auto;box-shadow:inset 1px 1px 2px rgba(255,255,255,.7), inset -1px -1px 2px rgba(170,60,100,.12)}

/* ===== 日历（3D 软糖果冻） ===== */
.cal{
  position:relative;
  background:var(--jelly-bg);
  border-radius:var(--jelly-radius);padding:12px;overflow:hidden;
  box-shadow:var(--jelly-edge);border:var(--jelly-border);
}
.cal-hd{display:flex;align-items:center;justify-content:space-between;padding:4px 6px 10px}
.cal-hd .m{font-weight:700;font-size:calc(var(--fsize)*1)}
.cal-wk{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:calc(var(--fsize)*0.7333);color:var(--muted);padding-bottom:4px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-d{
  position:relative;aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  border-radius:12px;font-size:calc(var(--fsize)*0.8667);cursor:pointer;color:var(--text)
}
.cal-d.out{color:var(--muted);opacity:.4}
.cal-d.today{outline:1.5px solid var(--accent)}
.cal-d .dot{width:5px;height:5px;border-radius:50%;margin-top:2px}
.cal-d .tag{font-size:calc(var(--fsize)*0.6);line-height:1.1;margin-top:1px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-d.sel{box-shadow:0 0 0 2px var(--accent) inset}

/* 进度条 */
.bar{height:9px;border-radius:99px;background:var(--line);overflow:hidden}
.bar>i{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .25s}
.bar.ok>i{background:var(--ok)}
.bar.over>i{background:var(--danger)}

/* 圆形进度（带萌系吉祥物槽位） */
.ring{--p:0;width:92px;height:92px;border-radius:50%;background:conic-gradient(var(--accent) calc(var(--p)*1%), var(--line) 0);display:flex;align-items:center;justify-content:center;position:relative;flex:0 0 auto}
.ring::before{content:'';position:absolute;inset:9px;border-radius:50%;background:var(--card);box-shadow:inset 0 1px 3px rgba(0,0,0,.05)}
.ring .rv{position:relative;z-index:1;font-weight:800;font-size:calc(var(--fsize)*1.2);color:var(--text)}
.ring .ric{position:relative;z-index:1;width:30px;height:30px}
.ring.lg{width:120px;height:120px}

/* 标签 */
.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:8px;background:var(--accent2);color:var(--text);font-size:calc(var(--fsize)*0.8)}
.tag.g{background:#e6f5ec;color:#2fa36b}
.tag.r{background:#fdeaea;color:#e5484d}
.tag.y{background:#fdf3e3;color:#b7791f}
.tag.b{background:#e9f0fd;color:#3b6fd4}

/* 富文本编辑器 */
.rt-toolbar{display:flex;flex-wrap:wrap;gap:4px;padding:8px;background:var(--card-2);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:6}
.rt-toolbar button,.rt-toolbar select{
  border:1px solid var(--line);background:var(--bg2);border-radius:8px;height:30px;min-width:30px;
  font-size:calc(var(--fsize)*0.8667);cursor:pointer;color:var(--text);padding:0 6px;font-family:inherit
}
.rt-toolbar button.on{background:var(--accent);color:var(--accent-ink);border-color:transparent}
.rt-editor{min-height:50vh;padding:14px;outline:none;font-size:calc(var(--fsize)*1.0667);line-height:1.85;background:var(--bg2)}
.rt-editor img,.rt-editor video{max-width:100%;border-radius:10px;display:block;margin:8px 0}
.rt-editor table{border-collapse:collapse;width:100%;margin:10px 0}
.rt-editor table td,.rt-editor table th{border:1px solid var(--line);padding:7px 9px;min-width:40px}
.rt-editor table.striped tr:nth-child(even){background:var(--card-2)}
.rt-editor table.noborder td{border:none;border-bottom:1px solid var(--line)}
.rt-editor blockquote{border-left:3px solid var(--accent);margin:8px 0;padding:4px 12px;color:var(--text2);background:var(--card-2);border-radius:0 8px 8px 0}
.rt-editor .media-wrap{position:relative;display:inline-block;max-width:100%}
.rt-editor audio{width:100%;margin:8px 0}
.rt-editor:empty:before{content:attr(data-ph);color:var(--muted)}

/* 图片裁剪 */
.cropbox{position:relative;width:100%;height:260px;overflow:hidden;background:#222;border-radius:12px;touch-action:none}
.cropbox img{position:absolute;transform-origin:0 0;user-select:none;-webkit-user-drag:none}
.cropframe{position:absolute;inset:0;box-shadow:0 0 0 9999px rgba(0,0,0,.35) inset;pointer-events:none;border:1px solid rgba(255,255,255,.6)}

/* 录音 */
.recbar{display:flex;align-items:center;gap:10px;padding:12px;background:var(--card-2);border-radius:12px}
.recdot{width:12px;height:12px;border-radius:50%;background:var(--danger);animation:blink 1s infinite}
@keyframes blink{50%{opacity:.25}}

/* 网络卡片 */
/* 联网内容卡片（3D 软糖果冻） */
.netcard{
  position:relative;display:flex;gap:10px;padding:14px;
  border-bottom:1px solid var(--line);cursor:pointer;
  border-radius:var(--jelly-radius-s);margin:5px 4px;overflow:hidden;
  background:var(--jelly-bg);
  box-shadow:var(--jelly-edge);
  transition:transform .3s var(--jelly-press), box-shadow .2s ease, background .15s;
}
.netcard:last-child{border-bottom:none}
.netcard:active{transform:scale(.94) translateY(2px);box-shadow:var(--jelly-edge-hover);background:#ffeef5}
.netcard .idx{width:26px;height:26px;border-radius:10px;background:var(--accent2);font-size:calc(var(--fsize)*0.8);display:flex;align-items:center;justify-content:center;flex:0 0 auto;font-weight:700;box-shadow:inset 1px 1px 2px rgba(255,255,255,.7), inset -1px -1px 2px rgba(170,60,100,.12)}
.netcard .nt{font-size:calc(var(--fsize)*0.9333);line-height:1.5;color:var(--text);position:relative;z-index:2}
.netcard .ns{font-size:calc(var(--fsize)*0.7667);color:var(--text2);margin-top:3px;position:relative;z-index:2}
.quotecard{padding:22px 18px;border-radius:var(--jelly-radius);line-height:1.9;font-size:calc(var(--fsize)*1.0667);text-align:center;background:var(--jelly-bg);border:var(--jelly-border);box-shadow:var(--jelly-edge);overflow:hidden;position:relative}
.spin{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:sp .7s linear infinite;display:inline-block;vertical-align:-3px}
@keyframes sp{to{transform:rotate(360deg)}}

/* 拖拽排序（3D 软糖果冻项） */
.sortitem{position:relative;display:flex;align-items:center;gap:10px;padding:11px 12px;background:var(--jelly-bg);border-radius:var(--jelly-radius-s);margin-bottom:8px;border:var(--jelly-border);box-shadow:var(--jelly-edge);transition:transform .3s var(--jelly-press);overflow:hidden}
.sortitem .hd{color:var(--muted);cursor:grab;font-size:calc(var(--fsize)*1.0667)}

/* 生理期图例 */
.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:calc(var(--fsize)*0.8);color:var(--text2)}
.legend i{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:4px;vertical-align:-1px}

/* 抽屉条目文字区 */
.drawer .ditem .dtx{flex:1;min-width:0}
.drawer .ditem .dtx .dn{font-weight:700;color:var(--text);position:relative;z-index:2}
.drawer .ditem .dar{color:var(--muted);display:flex;align-items:center;transform:rotate(-90deg)}

/* 富文本编辑器内的待办清单 / 表格 / 引用 */
.rt-editor ul.todo{list-style:none;padding-left:2px;margin:8px 0}
.rt-editor ul.todo li{display:flex;align-items:flex-start;gap:8px;margin:6px 0;line-height:1.7}
.rt-editor ul.todo li input[type=checkbox]{width:17px;height:17px;margin-top:4px;flex:none;accent-color:var(--accent)}
.rt-editor ul.todo li input[type=checkbox]:checked + span,
.rt-editor ul.todo li.done{color:var(--muted);text-decoration:line-through}
.rt-editor blockquote{margin:10px 0;padding:8px 14px;border-left:3px solid var(--accent);background:var(--card-2);border-radius:0 8px 8px 0;color:var(--text2)}
.rt-editor pre{background:var(--card-2);padding:12px;border-radius:10px;overflow:auto;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:calc(var(--fsize)*0.8667)}
.rt-editor hr{border:none;border-top:1px solid var(--line);margin:16px 0}
.rt-editor table{border-collapse:collapse;width:100%;margin:10px 0;font-size:calc(var(--fsize)*0.9333)}
.rt-editor table td,.rt-editor table th{border:1px solid var(--line);padding:7px 9px;min-width:44px}
.rt-editor table.zebra tbody tr:nth-child(even){background:var(--card-2)}
.rt-editor table.plain td,.rt-editor table.plain th{border:none;border-bottom:1px solid var(--line)}
.rt-editor table.noborder td,.rt-editor table.noborder th{border:none}
.rt-editor table thead th,.rt-editor table tr:first-child th{background:var(--card-2);font-weight:700}
.rt-editor img,.rt-editor video{max-width:100%;border-radius:10px;display:block;margin:10px 0}
.rt-editor audio{width:100%;margin:10px 0}
.rt-editor:empty:before{content:attr(data-ph);color:var(--muted)}

/* 通用进度条 */
.progress{height:7px;border-radius:99px;background:var(--card-2);overflow:hidden}
.progress > i{display:block;height:100%;border-radius:99px;background:var(--accent);transition:width .28s ease}
.progress.over > i{background:#e5484d}

/* 笔记封面 */
.note-cover{width:100%;overflow:hidden;border-radius:0 0 14px 14px;margin-bottom:2px}
.note-cover img{display:block}

