/* ═══════════════════════════════════════════════════════════
   数智干警 v3 — screens.css · 清晰高级感（wolo.work 体系）
   屏C 身份档案库 / 屏D 平行时空主页 / 浮层（全部跟随主题令牌）
   ═══════════════════════════════════════════════════════════ */

/* ═══════════ 屏C · 模拟人生库 ═══════════ */
#screen-library{
  background:var(--bg);flex-direction:column;padding:34px clamp(20px,4vw,64px);
  transition:background .25s;
}
#screen-library::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(52% 36% at 50% 0%,rgba(21,93,253,.045),transparent 70%);
}
.lib-head{
  position:relative;display:flex;justify-content:space-between;align-items:flex-end;
  padding-bottom:18px;border-bottom:1px solid var(--line);
}
.lib-head h2{
  font-size:24px;font-weight:700;letter-spacing:-.01em;color:var(--text-1);
}
.lib-sub{display:block;margin-top:7px;font-size:11px;letter-spacing:.14em;color:var(--text-4);}
.lib-meta{display:flex;gap:16px;align-items:center;font-size:11px;letter-spacing:.08em;color:var(--text-3);}
.lib-meta b{color:var(--accent-text);font-weight:600;}

.lib-grid{
  position:relative;flex:1;display:grid;
  grid-template-columns:repeat(3,1fr);gap:20px;
  align-content:center;padding:28px 0;
}

/* 身份卡（白玻璃） */
.p-card{
  position:relative;
  background:var(--solid);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  box-shadow:
    0 1px 3px rgba(15,17,34,.04),
    0 6px 20px rgba(15,17,34,.03);
  padding:22px 22px 16px;
  transition:transform .2s cubic-bezier(.2,.7,.2,1),box-shadow .2s cubic-bezier(.2,.7,.2,1);
  cursor:pointer;overflow:hidden;
}
/* 悬浮 = 轻抬 + 阴影浮现（wolo.work 式）；边框不变、不遮其他卡片 */
.p-card:hover{
  transform:translateY(-3px);
  box-shadow:
    0 2px 6px rgba(15,17,34,.05),
    0 8px 24px rgba(15,17,34,.07),
    0 24px 56px rgba(15,17,34,.09);
}
.pc-top{display:flex;gap:15px;align-items:center;}
.pc-avatar{
  width:58px;height:58px;flex:none;
  border-radius:var(--r-md);
  background:var(--accent-soft);
  display:grid;place-items:center;
  font-weight:700;font-size:19px;letter-spacing:.02em;color:var(--accent-text);
}
.pc-code{
  display:inline-block;font-size:10px;letter-spacing:.14em;color:var(--accent-text);
  background:var(--accent-soft);border-radius:6px;padding:3px 8px;margin-bottom:7px;
}
.pc-name{font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--text-1);}
.pc-status{
  display:inline-flex;align-items:center;gap:6px;margin-top:7px;
  font-size:11px;color:var(--text-3);
}
.pc-status i{width:6px;height:6px;border-radius:50%;background:var(--ok);display:inline-block;}
.pc-status.sleeper i{background:var(--text-4);}
.pc-role{margin-top:15px;font-size:13px;color:var(--text-2);line-height:1.6;font-weight:500;}
.pc-org{font-size:11.5px;color:var(--text-3);margin-top:3px;}
.pc-foot{
  display:flex;justify-content:space-between;align-items:center;
  margin-top:15px;padding-top:12px;border-top:1px solid var(--line);
}
.pc-clear{font-size:10.5px;color:var(--text-4);letter-spacing:.04em;}
.pc-bars{display:flex;gap:4px;}
.pc-bars i{width:14px;height:4px;border-radius:2px;background:var(--line-strong);}
.pc-bars i.on{background:var(--accent);}
.pc-home{
  font-size:11.5px;color:var(--text-3);margin-top:11px;
  line-height:1.75;word-break:break-all;
}
.pc-home b{color:var(--text-2);font-weight:500;}

.lib-foot{position:relative;text-align:center;font-size:10px;letter-spacing:.16em;color:var(--text-4);padding-top:8px;}

/* ═══════════ 屏D · 平行时空主页 ═══════════ */
#screen-timeline{background:var(--bg);flex-direction:column;transition:background .25s;}

/* 顶栏 */
.tl-head{
  position:relative;z-index:4;display:flex;align-items:center;gap:20px;
  padding:13px clamp(16px,3vw,36px);
  border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--bg-soft) 92%,transparent);
}
.tl-back{
  flex:none;white-space:nowrap;
  background:transparent;border:1px solid var(--line-strong);color:var(--text-3);
  padding:8px 15px;font-size:12px;letter-spacing:.14em;border-radius:9px;transition:.18s;
}
.tl-back:hover{color:var(--text-1);border-color:var(--text-3);}
.tl-id{display:flex;align-items:center;gap:13px;min-width:0;}
.tl-avatar{
  width:46px;height:46px;flex:none;border-radius:11px;
  background:var(--accent-soft);display:grid;place-items:center;
  font-weight:700;font-size:16px;color:var(--accent-text);
}
.tl-id-text{line-height:1.4;min-width:0;}
.tl-id-text b{
  display:block;font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--text-1);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.tl-id-text span{display:block;font-size:11.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tl-id-text i{display:block;font-style:normal;font-size:10px;letter-spacing:.12em;color:var(--text-4);margin-top:1px;}
.tl-status{margin-left:auto;display:flex;align-items:center;gap:10px;flex:none;}
.tl-nyc{font-size:15px;font-weight:600;color:var(--text-1);letter-spacing:.04em;}
.chip{
  font-size:11px;letter-spacing:.02em;color:var(--text-3);
  border:1px solid var(--line);border-radius:8px;padding:6px 11px;
  background:var(--surface);white-space:nowrap;
}
.chip b{color:var(--text-1);font-weight:600;}
.mode-switch{
  display:flex;gap:2px;padding:2px;
  background:var(--fill);border:1px solid var(--line);border-radius:9px;
}
.mode-switch button{
  padding:6px 13px;font-size:11px;font-weight:500;letter-spacing:.04em;
  background:transparent;border:0;border-radius:7px;color:var(--text-4);transition:.18s;
}
.mode-switch button.on{background:var(--solid);color:var(--text-1);box-shadow:var(--shadow-sm);}
.mode-switch.manual-on button[data-mode=manual].on{color:var(--warn);}
.chip-btn{
  position:relative;font-size:11.5px;font-weight:500;letter-spacing:.02em;
  color:var(--text-2);background:var(--surface);border:1px solid var(--line-strong);
  border-radius:9px;padding:7px 13px;transition:.18s;
}
.chip-btn:hover{color:var(--text-1);border-color:var(--text-3);}
#archive-badge{
  position:absolute;top:-7px;right:-7px;min-width:17px;height:17px;
  background:var(--warn);color:#fff;font-size:10px;font-weight:700;font-style:normal;
  border-radius:999px;display:grid;place-items:center;padding:0 4px;
}

/* 时间轴带 */
.tl-axis-wrap{
  position:relative;height:116px;flex:none;
  border-bottom:1px solid var(--line);
  background:var(--bg-soft);
  user-select:none;touch-action:pan-y;overflow:hidden;cursor:grab;
}
.tl-axis-wrap.dragging{cursor:grabbing;}
.tl-axis{position:absolute;inset:0;overflow:hidden;}
.tl-strip{position:absolute;top:0;bottom:0;left:0;display:flex;will-change:transform;}
.day-cell{
  position:relative;width:96px;flex:none;
  border-right:1px solid var(--line);
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;
  transition:background .15s;
}
.day-cell:hover{background:var(--accent-soft);}
.dc-dow{font-size:11px;letter-spacing:.2em;color:var(--text-3);text-indent:.2em;}
.dc-date{font-size:15px;font-weight:600;color:var(--text-2);font-variant-numeric:tabular-nums;letter-spacing:.02em;}
.dc-dot{width:5px;height:5px;border-radius:50%;background:var(--line-strong);}
.dc-tag{font-size:9px;letter-spacing:.16em;color:var(--text-4);text-indent:.16em;}
.day-cell.is-future .dc-date{color:var(--text-3);font-weight:500;}
.day-cell.is-future{background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--accent) 12%,transparent) 0 6px,transparent 6px 13px);border-left:1px dashed var(--accent-line);}
.day-cell.is-now{background:var(--accent-soft);}
.day-cell.is-now .dc-date{color:var(--accent-text);}
.day-cell.is-now .dc-dow{color:var(--accent-text);}
.day-cell.is-now .dc-dot{background:var(--accent);}
.day-cell.is-now .dc-tag{color:var(--accent-text);font-weight:600;}
.day-cell.is-focus{background:color-mix(in srgb,var(--accent-soft) 60%,var(--bg-soft));}
.day-cell.is-focus .dc-date{color:var(--text-1);}
.day-cell .node-mark{
  position:absolute;top:12px;left:50%;transform:translateX(-50%) rotate(45deg);
  width:6px;height:6px;border-radius:1.5px;background:var(--warn);
}
.day-cell .node-mark.resolved{background:var(--ok);}
.tl-zone-label{
  position:absolute;top:10px;font-size:9px;letter-spacing:.24em;color:var(--text-4);
  z-index:3;pointer-events:none;
}
.zl-past{left:calc(50% + 24px);}
.zl-future{right:calc(50% + 24px);color:var(--text-4);}
.tl-reticle{
  position:absolute;left:50%;top:0;bottom:0;width:0;z-index:4;pointer-events:none;
  border-left:1.5px solid var(--accent);
}
.tl-reticle span{
  position:absolute;top:8px;left:50%;transform:translateX(-50%);
  font-size:8.5px;letter-spacing:.14em;font-weight:700;white-space:nowrap;
  background:var(--accent);color:#fff;padding:2px 7px;border-radius:5px;
}
.tl-reticle::before,.tl-reticle::after{
  content:"";position:absolute;left:-4px;width:7px;height:7px;
  transform:rotate(45deg);background:var(--accent);border-radius:1.5px;
}
.tl-reticle::before{top:-4px;}
.tl-reticle::after{bottom:-4px;}

/* 主内容区 */
.tl-body{position:relative;flex:1;display:flex;min-height:0;}

/* 左 · 当日档案 */
.day-dossier{
  width:300px;flex:none;overflow-y:auto;
  border-right:1px solid var(--line);
  box-shadow:inset -1px 0 0 var(--line),1px 0 0 rgba(15,17,26,.02);
  padding:24px 22px 30px;
  background:var(--bg-soft);
}
.dd-date{font-size:25px;font-weight:700;letter-spacing:-.02em;color:var(--text-1);font-variant-numeric:tabular-nums;}
.dd-dow{font-size:11px;color:var(--text-3);letter-spacing:.2em;margin:5px 0 2px;}
.dd-kind{
  display:inline-block;font-size:10px;letter-spacing:.1em;padding:4px 10px;margin-top:10px;
  border-radius:999px;font-weight:600;
  background:var(--fill);color:var(--text-3);
}
.dd-kind.today{background:var(--accent-soft);color:var(--accent-text);}
.dd-kind.future{background:transparent;border:1px dashed var(--line-strong);}
.dd-sec{margin-top:22px;}
.dd-sec h4{
  font-size:10px;letter-spacing:.18em;color:var(--text-4);font-weight:600;
  margin-bottom:10px;padding-bottom:7px;border-bottom:1px solid var(--line);
}
.dd-weather{display:flex;align-items:center;gap:12px;}
.dd-wx-icon{font-size:25px;line-height:1;}
.dd-wx-temp{font-size:22px;font-weight:700;color:var(--text-1);letter-spacing:-.02em;}
.dd-wx-desc{font-size:11px;color:var(--text-3);line-height:1.6;}
.dd-event{
  padding:10px 12px;margin-bottom:8px;font-size:12px;line-height:1.6;color:var(--text-2);
  border-left:2px solid var(--warn);border-radius:0 10px 10px 0;
  background:var(--warn-soft);
}
.dd-event .src{display:block;font-size:9.5px;color:var(--text-4);letter-spacing:.06em;margin-top:3px;}
.dd-stat{display:flex;justify-content:space-between;font-size:11.5px;color:var(--text-3);margin-bottom:8px;}
.dd-stat b{color:var(--text-1);font-weight:600;font-variant-numeric:tabular-nums;}
.dd-bar{height:5px;background:var(--fill);border-radius:3px;margin-bottom:14px;position:relative;overflow:hidden;}
.dd-bar i{position:absolute;inset:0 auto 0 0;background:var(--accent);border-radius:3px;transition:width .4s;}
.dd-bar.risk i{background:var(--warn);}
.dd-counts{display:flex;gap:8px;}
.dd-counts span{
  flex:1;text-align:center;padding:10px 4px;border:1px solid var(--line);border-radius:10px;
  font-size:10px;color:var(--text-4);background:var(--surface);
}
.dd-counts b{display:block;font-size:17px;font-weight:700;color:var(--text-1);margin-bottom:3px;letter-spacing:-.02em;}
.dd-note{font-size:11px;color:var(--text-4);line-height:1.75;margin-top:14px;}

/* 右 · 日志流 */
.day-logs-wrap{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg);}
.day-logs-head{
  display:flex;align-items:center;gap:16px;
  padding:12px 26px;border-bottom:1px solid var(--line);
  font-size:11px;letter-spacing:.1em;color:var(--text-4);
  background:var(--bg-soft);
}
#dl-title{color:var(--text-1);font-weight:600;letter-spacing:.04em;}
#dl-meta{flex:1;}
.dl-actions{display:flex;gap:8px;}
.day-logs{flex:1;overflow-y:auto;list-style:none;padding:20px 26px 60px;}
.log-entry{
  position:relative;display:flex;gap:15px;
  padding:10px 12px;border-radius:10px;margin-bottom:2px;
  border-left:2px solid var(--line);
  animation:log-in .3s cubic-bezier(.2,.8,.3,1) both;
  transition:background .15s;
}
@keyframes log-in{from{opacity:0;transform:translateX(-6px);}to{opacity:1;transform:none;}}
.log-entry:hover{background:var(--surface);}
.le-time{
  font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--text-4);
  flex:none;width:44px;padding-top:2px;font-variant-numeric:tabular-nums;
}
.le-main{flex:1;min-width:0;}
.le-text{font-size:13.5px;line-height:1.75;color:var(--text-1);}
.le-text .loc{color:var(--accent-text);}
.le-text .hl{color:var(--text-1);font-weight:600;}
.le-tags{margin-top:5px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.tag{
  font-size:10px;letter-spacing:.06em;padding:2px 8px;font-weight:500;
  border-radius:6px;
  background:var(--fill);color:var(--text-3);
}
.tag.cat-life{background:var(--ok-soft);color:var(--ok);}
.tag.cat-work{background:var(--accent-soft);color:var(--accent-text);}
.tag.cat-move{background:var(--fill);color:var(--text-3);}
.tag.cat-warn{background:var(--warn-soft);color:var(--warn);}
.tag.cat-node{background:var(--warn-soft);color:var(--warn);font-weight:600;}
.tag.cat-pred{background:transparent;border:1px dashed var(--line-strong);color:var(--text-4);}
.tag.social-x{background:var(--accent-soft);color:var(--accent-text);font-weight:600;}
.tag.social-ig{background:var(--teal-soft);color:var(--teal);font-weight:600;}
.tag.conf{background:transparent;color:var(--text-4);}

/* 社交条目 */
.log-entry.is-social{border-left-color:var(--accent-text);}
.log-entry.is-social::before{content:none;}
.is-social.ig{border-left-color:var(--teal);}
.social-body{
  margin-top:6px;padding:10px 12px;border-radius:10px;
  border:1px solid var(--line);
  background:var(--bg-soft);
  font-size:12.5px;line-height:1.8;color:var(--text-2);
}
.is-social.ig .social-body{border-color:color-mix(in srgb,var(--teal) 26%,var(--line));}
.social-img{color:var(--text-3);font-size:12px;display:block;}
.social-cap{display:block;margin-top:4px;}
.social-cap b{color:var(--accent-text);font-weight:600;}
.is-social.ig .social-cap b{color:var(--teal);}
.copy-btn{
  margin-top:8px;font-size:11px;font-weight:500;letter-spacing:.04em;padding:5px 11px;
  background:transparent;border:1px solid var(--accent-line);border-radius:7px;color:var(--accent-text);transition:.18s;
}
.copy-btn:hover{background:var(--accent-soft);}
.is-social.ig .copy-btn{border-color:color-mix(in srgb,var(--teal) 40%,transparent);color:var(--teal);}
.is-social.ig .copy-btn:hover{background:var(--teal-soft);}

/* 预测条目 */
.log-entry.is-pred{border-left-style:dashed;border-left-color:var(--line-strong);}
.log-entry.is-pred .le-text{color:var(--text-2);}

/* 决策节点 */
.log-entry.is-node{border-left-color:var(--warn);background:color-mix(in srgb,var(--warn-soft) 45%,transparent);}
.node-box{
  margin-top:8px;padding:12px 14px;border-radius:12px;
  border:1px solid color-mix(in srgb,var(--warn) 30%,transparent);
  background:var(--bg-soft);
}
.node-box b{display:block;color:var(--warn);font-size:13px;font-weight:700;margin-bottom:4px;letter-spacing:-.01em;}
.node-box p{font-size:12.5px;color:var(--text-2);line-height:1.7;}
.node-box .chosen{
  margin-top:8px;padding-top:8px;border-top:1px dashed var(--line-strong);
  font-size:12px;color:var(--text-2);line-height:1.7;
}
.node-box .chosen.ai{color:var(--ok);}
.node-go{
  margin-top:10px;padding:8px 16px;font-size:12px;font-weight:600;letter-spacing:.08em;
  background:var(--warn);border:0;border-radius:9px;color:#fff;
  transition:.18s;
}
.node-go:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);}
.node-wait{margin-top:10px;font-size:11.5px;color:var(--text-4);}

.day-logs .dl-empty{
  padding:70px 0;text-align:center;color:var(--text-4);
  font-size:12px;letter-spacing:.2em;
}

/* ═══════════ 浮层 · 流光穿梭（固定黑场） ═══════════ */
#warp-overlay{
  position:fixed;inset:0;z-index:150;background:var(--stage-bg);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
#warp-overlay[hidden]{display:none;}
.warp-streaks{
  position:absolute;inset:-40%;
  background:
    repeating-linear-gradient(90deg,transparent 0 52px,rgba(77,141,255,.14) 52px 53px,transparent 53px 140px),
    repeating-linear-gradient(90deg,transparent 0 210px,rgba(237,241,247,.24) 210px 211px,transparent 211px 460px),
    radial-gradient(35% 35% at 50% 50%,transparent 30%,var(--stage-bg) 72%);
  transform:rotate(9deg);
  animation:warp-streak 1.5s cubic-bezier(.2,.7,.3,1) both;
}
@keyframes warp-streak{
  from{transform:rotate(9deg) scale(2.6);opacity:0;}
  25%{opacity:1;}
  to{transform:rotate(9deg) scale(.24);opacity:1;}
}
.warp-core{position:relative;text-align:center;z-index:2;animation:warp-core-in .5s .25s ease both;}
@keyframes warp-core-in{from{opacity:0;letter-spacing:.5em;}to{opacity:1;}}
.warp-code{font-size:11px;letter-spacing:.4em;color:var(--stage-blue);margin-bottom:15px;animation:blink .5s steps(2) infinite;}
.warp-name{
  font-size:clamp(30px,5vw,52px);font-weight:700;letter-spacing:-.02em;color:var(--stage-text);
}
.warp-status{margin-top:19px;font-size:10.5px;letter-spacing:.24em;color:var(--stage-dim);}
.warp-bar{width:260px;height:2px;background:var(--stage-line);margin:16px auto 0;overflow:hidden;border-radius:2px;}
.warp-bar i{
  display:block;height:100%;width:0;background:var(--stage-blue);
  animation:warp-fill 1.45s cubic-bezier(.3,.6,.4,1) both;
}
@keyframes warp-fill{to{width:100%;}}

/* ═══════════ 浮层 · 决策节点 ═══════════ */
#decision-modal{
  position:fixed;inset:0;z-index:160;
  display:flex;align-items:center;justify-content:center;
  background:color-mix(in srgb,var(--bg) 45%,rgba(10,16,30,.35));
  backdrop-filter:blur(6px);
}
#decision-modal[hidden]{display:none;}
.dm-box{
  width:min(620px,92vw);max-height:88vh;overflow-y:auto;
  background:var(--solid);
  border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:inset 0 1px 0 var(--hl),var(--shadow-lg);
  color:var(--text-1);
  animation:dm-in .28s cubic-bezier(.2,.9,.3,1.15) both;
  padding:28px 30px 22px;
}
@keyframes dm-in{from{opacity:0;transform:scale(.95) translateY(10px);}to{opacity:1;transform:none;}}
.dm-head span{
  display:inline-block;font-size:10px;letter-spacing:.2em;color:var(--accent-text);
  background:var(--accent-soft);border-radius:6px;padding:4px 10px;font-weight:600;
}
.dm-head h3{font-size:21px;font-weight:700;letter-spacing:-.02em;color:var(--text-1);margin:14px 0 8px;}
.dm-head p{font-size:13.5px;color:var(--text-2);line-height:1.8;}
.dm-when{margin-top:10px;font-size:10.5px;letter-spacing:.08em;color:var(--text-4);}
.dm-options{margin-top:20px;display:flex;flex-direction:column;gap:10px;}
.dm-opt{
  text-align:left;padding:13px 15px;
  background:var(--bg-soft);border:1px solid var(--line);border-radius:12px;
  color:var(--text-1);transition:.18s;display:flex;gap:14px;align-items:flex-start;
}
.dm-opt:hover{
  border-color:var(--accent-line);background:var(--accent-soft);
  transform:translateX(3px);
}
.dm-opt .key{
  flex:none;width:26px;height:26px;display:grid;place-items:center;
  border-radius:8px;background:var(--accent-soft);color:var(--accent-text);
  font-weight:700;font-size:13px;
}
.dm-opt:hover .key{background:var(--accent);color:#fff;}
.dm-opt .t b{display:block;font-size:13.5px;font-weight:600;color:var(--text-1);margin-bottom:3px;}
.dm-opt .t span{font-size:12px;color:var(--text-3);line-height:1.6;}
.dm-custom{margin-top:16px;border:1px dashed var(--line-strong);border-radius:12px;}
.dm-custom summary{cursor:pointer;padding:12px 15px;font-size:12.5px;color:var(--text-3);border-radius:12px;}
.dm-custom summary:hover{color:var(--text-1);}
.dm-custom[open] summary{border-bottom:1px dashed var(--line-strong);border-radius:12px 12px 0 0;color:var(--text-1);}
.dm-custom textarea{
  width:100%;background:var(--fill);border:1px solid transparent;border-radius:10px;
  color:var(--text-1);font-family:var(--font);font-size:12.5px;
  padding:10px;margin:12px;resize:vertical;outline:none;width:calc(100% - 24px);
}
.dm-custom textarea:focus{border-color:var(--accent-text);background:var(--solid);}
.dm-custom-btn{
  margin:2px 0 14px;padding:9px 20px;font-size:12px;font-weight:600;letter-spacing:.06em;
  background:var(--text-1);color:var(--bg);border:0;border-radius:9px;transition:.18s;
}
.dm-custom-btn:hover{opacity:.88;transform:translateY(-1px);}
.dm-foot{margin-top:14px;text-align:right;}
.dm-later{background:none;border:0;color:var(--text-4);font-size:11.5px;letter-spacing:.06em;padding:8px 10px;}
.dm-later:hover{color:var(--text-2);}

/* ═══════════ 浮层 · 档案库抽屉 ═══════════ */
#archive-drawer{
  position:fixed;top:0;right:0;bottom:0;width:min(420px,94vw);z-index:140;
  background:var(--solid);
  border-left:1px solid var(--line);
  box-shadow:var(--shadow-lg);
  display:flex;flex-direction:column;
  animation:ad-in .3s cubic-bezier(.2,.8,.3,1) both;
}
@keyframes ad-in{from{transform:translateX(40px);opacity:0;}to{transform:none;opacity:1;}}
#archive-drawer[hidden]{display:none;}
.ad-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:22px;border-bottom:1px solid var(--line);
}
.ad-head b{font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--text-1);}
#ad-close{background:none;border:1px solid var(--line-strong);color:var(--text-3);width:30px;height:30px;font-size:13px;border-radius:8px;transition:.18s;}
#ad-close:hover{color:var(--text-1);border-color:var(--text-3);}
.ad-tip{padding:14px 22px 4px;font-size:11px;letter-spacing:.02em;color:var(--text-4);line-height:1.8;}
.ad-list{flex:1;overflow-y:auto;padding:14px 22px 20px;}
.ad-item{
  position:relative;border:1px solid var(--line);border-radius:12px;
  padding:14px 15px;margin-bottom:12px;cursor:pointer;
  background:var(--bg-soft);transition:.18s;
}
.ad-item:hover{border-color:var(--accent-line);box-shadow:var(--shadow-sm);}
.ad-item .who{font-size:13.5px;font-weight:700;color:var(--text-1);}
.ad-item .who i{font-style:normal;font-size:10px;color:var(--text-4);letter-spacing:.1em;margin-left:8px;font-weight:400;}
.ad-item .when{font-size:11px;color:var(--accent-text);margin-top:5px;font-weight:500;font-variant-numeric:tabular-nums;}
.ad-item .sum{font-size:11.5px;color:var(--text-3);margin-top:6px;line-height:1.7;}
.ad-item .ops{display:flex;gap:8px;margin-top:10px;}
.ad-item .ops button{
  font-size:11px;font-weight:500;letter-spacing:.02em;padding:5px 11px;
  background:transparent;border:1px solid var(--line-strong);border-radius:7px;color:var(--text-3);transition:.18s;
}
.ad-item .ops button:hover{color:var(--accent-text);border-color:var(--accent-line);}
.ad-empty{text-align:center;color:var(--text-4);font-size:11.5px;letter-spacing:.1em;padding:60px 0;}
.ad-foot{padding:14px 22px;border-top:1px solid var(--line);text-align:right;}
.ad-clear{background:none;border:1px solid var(--line-strong);color:var(--text-4);font-size:11px;letter-spacing:.04em;padding:7px 12px;border-radius:8px;}
.ad-clear:hover{color:var(--warn);border-color:var(--warn);}

/* ═══════════ 滚动条 ═══════════ */
::-webkit-scrollbar{width:9px;height:9px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:5px;border:2px solid var(--bg);}
::-webkit-scrollbar-thumb:hover{background:var(--text-4);}

/* ═══════════ 响应式 ═══════════ */
@media (max-width:1100px){
  .lib-grid{grid-template-columns:repeat(2,1fr);}
  .day-dossier{width:250px;padding:16px;}
}
@media (max-width:820px){
  .lib-grid{grid-template-columns:1fr;align-content:start;overflow-y:auto;}
  .tl-body{flex-direction:column;}
  .day-dossier{width:auto;border-right:0;border-bottom:1px solid var(--line);max-height:34vh;}
  .tl-status{flex-wrap:wrap;gap:8px;}
  .mq-chip b{font-size:13px;}
  .mq-chip{padding:8px 13px;gap:7px;}
  .marquee-stage{gap:12px;padding:52px 0 44px;}
  .marquee-center{padding:28px 18px;gap:16px;width:max-content;max-width:92vw;}
  .marquee-center::before{inset:-28px -30px;}
  .mc-btns{flex-direction:column;gap:10px;}
  .mq-btn{min-width:200px;padding:12px 20px;}
  .day-cell{width:84px;}
  .tl-id-text span{max-width:30vw;}
}

/* ── 社交双语配文（v3.1）── */
.social-cap-en{
  display:block;margin-top:3px;font-size:12px;color:var(--text-3);
  font-style:italic;letter-spacing:.01em;
}
.copy-row{display:flex;gap:8px;margin-top:8px;}
.copy-row .copy-btn{margin-top:0;}
/* 12卡网格：行高=内容实际高度，容器滚动（禁止行轨道压缩卡片） */
.lib-grid{overflow-y:auto;overflow-x:hidden;align-content:start;grid-auto-rows:max-content;
  padding-left:28px;padding-right:28px;   /* 左右留白：给悬浮阴影呼吸，防止第一列左侧被裁 */
  margin-left:-28px;margin-right:-28px;width:calc(100% + 56px);}
.p-card{min-height:max-content;}

/* ── 人生库入场：档案落位式错帧浮现 ── */
.lib-head.enter{animation:lib-head-in .5s cubic-bezier(.2,.7,.2,1) both;}
@keyframes lib-head-in{from{opacity:0;transform:translateY(-10px);}to{opacity:1;transform:none;}}
.p-card.enter{animation:card-in .55s cubic-bezier(.2,.7,.2,1) both;}
@keyframes card-in{
  from{opacity:0;transform:translateY(26px) scale(.965);filter:blur(8px);}
  to{opacity:1;transform:none;filter:blur(0);}
}

/* ── 深色模式：左栏材质与预测区增强（评审修复） ── */
[data-theme="dark"] .day-dossier{
  background:#0a0e14;
  box-shadow:inset -1px 0 0 var(--line),1px 0 0 rgba(0,0,0,.4);
}
[data-theme="dark"] .day-cell.is-future{
  background:repeating-linear-gradient(-45deg,rgba(77,141,255,.14) 0 6px,transparent 6px 13px);
  border-left:1px dashed rgba(77,141,255,.4);
}
[data-theme="dark"] .mode-switch,[data-theme="dark"] .theme-toggle,[data-theme="dark"] .chip-btn{
  border-color:rgba(255,255,255,.16);
}

/* ── 卡片生命感：状态点呼吸 + 实时故事脉冲 ── */
/* 1) 绿点呼吸 + 光环扩散 */
.pc-status i{
  animation:dot-breathe 2.2s ease-in-out infinite;
  box-shadow:0 0 0 0 rgba(22,163,74,.35);
}
@keyframes dot-breathe{
  0%,100%{box-shadow:0 0 0 0 rgba(22,163,74,.30);opacity:.85;}
  50%{box-shadow:0 0 0 6px rgba(22,163,74,0);opacity:1;}
}
.pc-status.sleeper i{animation:none;opacity:.5;}
/* 2) 头像字母呼吸微光 */
.pc-avatar{
  animation:avatar-breathe 3.2s ease-in-out infinite;
}
@keyframes avatar-breathe{
  0%,100%{box-shadow:inset 0 0 0 1px rgba(21,93,253,.06);}
  50%{box-shadow:inset 0 0 12px rgba(21,93,253,.14);}
}
/* 3) 编号徽章周期性闪烁（像信号灯） */
.pc-code{
  animation:code-signal 4.2s ease-in-out infinite;
}
@keyframes code-signal{
  0%,88%,100%{opacity:1;}
  92%{opacity:.45;}
  96%{opacity:.85;}
}
/* 4) 卡片底部"实时故事流"微光带 */
.p-card::after{
  content:"";position:absolute;left:12px;right:12px;bottom:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
  opacity:0;
  background-size:200% 100%;
  transition:opacity .5s;
  animation:story-flow 2.8s linear infinite;
}
@keyframes story-flow{
  0%{background-position:200% 0;}
  100%{background-position:-200% 0;}
}
/* ACTIVE 卡常亮呼吸微光带；SEALED 卡静态暗淡 */
/* live 卡才有故事流 */
.p-card.live::after{
  opacity:.28;
}
@media (prefers-reduced-motion:reduce){
  .pc-status i,.pc-avatar,.pc-code,.p-card::after{animation:none !important;}
  .p-card::after{display:none;}
}
