/* ================================================================
   荒诞公司 · V0.4 S3 —— 世界化视觉
   目标：不再是「公司管理系统」，而是「一间真的存在的公司」。
   载体：纸 / 便利贴 / 营业执照 / 小报 / 文件夹 / 招聘海报 / 像素办公室
   ================================================================ */
:root {
  /* 纸张系（暖，做旧） */
  --paper: #fffdf4;
  --paper-2: #faf4e2;
  --paper-3: #f3e8cd;
  --wood: #b9984a;
  --wood-dark: #8a6a2a;
  --wood-line: #cdb887;
  --ink: #2e2a22;
  --muted: #8a7f6b;
  --faint: #c0b495;
  --line: #ddd2b6;
  /* 身份两色 */
  --boss: #a03e2b;   /* 老板·印章红 */
  --boss-bg: #f7e8e2;
  --emp: #2f7a5e;    /* 员工·工牌绿 */
  --emp-bg: #e7f2ea;
  --amber: #d9822b;
  --teal: #2f9e7a;
  --purple: #7f5aa8;
  --radius: 14px;
  /* ===== neo-brutalism 统一（2026-09-13）：硬投影 + 墨色描边 ===== */
  --nb-ink: #26282f;                        /* 描边墨色（全站统一） */
  --nb-shadow: #26282f;                     /* 硬投影色（黑灰·无模糊） */
  --shadow: 5px 5px 0 var(--nb-shadow);      /* 原软阴影 → 无模糊硬投影 */
  --paper-shadow: 2px 2px 0 var(--nb-shadow);
  --paper-w: 2px 2px 0 var(--nb-shadow);
  --brand-amber: var(--amber);
  --ink-2: #6a5a3a;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
body {
  font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;
  background:
    radial-gradient(1200px 500px at 50% -160px, #fdf6e2 0%, transparent 60%),
    #efe9d8;
  color: var(--ink); min-height: 100vh; line-height: 1.6;
}
/* 细腻纸张纹理 */
body::before {
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 0; opacity:.5;
  background-image:
    radial-gradient(#00000010 1px, transparent 1px);
  background-size: 22px 22px;
}
#app { position: relative; z-index: 1; max-width: 900px; margin: 0 auto; padding: 20px 18px 90px; }
.hidden { display: none !important; }
.muted { color: var(--muted); font-size: 13px; }
b { font-weight: 800; }

/* ---------- 通用控件 ---------- */
input, textarea, select {
  width: 100%; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 12px;
  font-size: 15px; font-family: inherit; background: #fffdf6; color: var(--ink); margin-top: 6px;
  box-shadow: inset 0 1px 2px rgba(90,70,30,.06);
}
input:focus, textarea:focus, select:focus { outline: 2px solid var(--wood); border-color: var(--wood-dark); }
.btn { border: none; border-radius: 12px; padding: 11px 18px; font-size: 14px; font-weight: 700; cursor: pointer; background: var(--ink); color:#fff; transition: .15s; }
.btn:active { transform: translateY(1px); }
.btn-xs { padding: 4px 9px; font-size: 12px; border-radius: 8px; cursor: pointer; border: none; background: var(--ink); color: #fff; font-weight: 700; }
.btn-xs:hover { filter: brightness(1.15); }
.btn-accent { background: var(--boss); }
.btn-big { display:block; width:100%; padding:15px; font-size:15px; border-radius:14px; margin-top:14px; }
.btn-ink { display:block; width:100%; background: var(--ink); color:#fff; border:none; border-radius:12px; padding:14px; font-size:15px; font-weight:700; cursor:pointer; margin-top:12px; }
.btn-ink b { margin-left:6px; }
.btn-ink:hover { filter:brightness(1.15); }
.back-btn { background:none; border:none; color:var(--muted); font-size:13px; cursor:pointer; padding:6px 0; }
.back-link { background:none; border:none; color:var(--muted); font-size:13px; cursor:pointer; display:inline-block; }
label.field, label.file { display:block; font-size:14px; font-weight:700; color:var(--ink); }
.toast {
  position: fixed; left:50%; bottom:26px; transform:translateX(-50%) translateY(20px);
  background:#2a2a28; color:#fff; padding:12px 22px; border-radius:22px; font-size:14px;
  opacity:0; pointer-events:none; transition:.3s; z-index:99; box-shadow:0 8px 24px rgba(0,0,0,.25);
}
.toast.show { opacity:1; transform:translateX(-50%) translateY(0); }

/* ---------- 封面：纸张 & 招牌 ---------- */
.sheet { background: var(--paper); border:1px solid var(--line); border-radius:16px; padding:24px;
  box-shadow: var(--paper-w), var(--shadow); }
.sheet-head { font-size:20px; font-weight: 900; margin-bottom:16px; border-bottom: 2px dashed var(--faint); padding-bottom:10px; display:flex; align-items:baseline; gap:10px; }
.sheet-head .sub { font-size:12px; color:var(--muted); font-weight:600; letter-spacing:.5px; }
.flow-wrap { max-width:440px; margin:10px auto; }
.stepper { display:flex; justify-content:center; gap:8px; margin:14px 0 20px; flex-wrap:wrap; }
.stepper span { font-size:12px; color:var(--muted); padding:4px 11px; border:1px solid var(--line); border-radius:20px; background:var(--paper); }
.stepper span.active { color:#fff; background: var(--ink); border-color: var(--ink); }
.stepper span.done { color: var(--emp); border-color: var(--emp); }
.sheet-note { margin-top: 14px; font-size:12px; color:var(--muted); text-align:center; line-height:1.7; }
.btn-door {
  display:flex; align-items:center; justify-content:space-between; width:100%; margin-top:14px;
  padding:14px 18px; border:none; border-radius:14px; font-size:15px; font-weight:700; cursor:pointer; color:#fff; background: var(--emp);
}
.btn-door.emp { background: var(--emp); }
.btn-door b { font-size:20px; }
.btn-door:hover { filter:brightness(1.12); }

/* ================================================================
   首页 · 选身份（两扇门）
   ================================================================ */
/* 首页 · 统一主列：标题 / 插图 / 两扇门 / 脚注 共用同一根居中对齐的中轴 */
.home {
  padding-top: 20px;
  display: flex; flex-direction: column; align-items: center;
}
.home-top {
  width: 100%; max-width: 700px; text-align: center; padding: 0 16px;
}
.home .wordmark { font-size: 42px; font-weight: 900; letter-spacing: 6px; color: var(--ink); margin: 0; }
.home .wordmark .dot { color: var(--boss); }
.home-sub { font-size: 15px; color: #6a5a3a; line-height: 1.9; margin: 12px 0 0; }

/* 插图：首页 hero（用户手绘大 banner，688×384 ≈16:9），与文字同宽、同一中轴 */
.home-hero-wrap {
  position: relative; width: 100%; max-width: 700px; margin: 18px auto 16px; padding: 0 16px; text-align: center;
}
.home-hero {
  width: 100%; height: auto; display: block; border: 2px solid var(--wood-line); border-radius: 14px;
  box-shadow: var(--shadow); background: #ede0c8;
}

/* 🖼 双端首屏大图：随内容区自适应宽度，不超出页面 */
.hero-img {
  width: 100%; max-width: 900px; margin: 14px auto 6px; padding: 0 4px;
}
.hero-img img {
  display: block; width: 100%; height: auto; aspect-ratio: auto;
  border: 2px solid var(--wood-line); border-radius: 14px; box-shadow: var(--shadow);
  object-fit: cover; background: #ede0c8;
}
.office-label {
  margin-top: 8px; font-size: 12px; color: var(--muted); letter-spacing: 2px;
  display: inline-flex; align-items: center; gap: 10px;
}
.office-label::before, .office-label::after { content: "—"; color: var(--wood); }

/* 两扇门：不再是「卡片 + 下方吊着的文字」，而是各自一整张证件（营业执照 / 招聘海报） */
.identity-doors {
  display: grid; grid-template-columns: 1fr 1fr; gap: 18px;
  width: 100%; max-width: 700px; margin: 6px auto 0; padding: 0 16px;
}
.door {
  border: none; background: transparent; cursor: pointer;
  font-family: inherit; padding: 0; margin: 0;
}

/* ---- 老板 · 营业执照（整张就是一张照） ---- */
.door-plaque {
  position: relative; height: 100%; display: flex; flex-direction: column;
  box-sizing: border-box;
  background: #fffbe8; border: 2px solid var(--wood-dark); border-radius: 12px;
  padding: 14px 18px 16px; box-shadow: var(--shadow); text-align: left;
  transition: .15s;
}
.door-boss:hover .door-plaque { border-color: var(--boss); box-shadow: 0 14px 30px rgba(160,62,43,.18); transform: translateY(-2px); }
.plaque-badge {
  font-size: 13px; font-weight: 900; color: var(--boss); letter-spacing: 5px;
  padding-bottom: 6px; border-bottom: 2px solid var(--boss);
}
.plaque-lines { margin-top: 10px; }
.plaque-line { font-size: 12px; color: #5a4f2a; line-height: 2; display: flex; gap: 8px; }
.plaque-line span { color: var(--muted); flex: 0 0 auto; }
.plaque-line i { font-style: normal; font-weight: 700; color: #4a3a1a; }
.plaque-line .wildline { color: var(--muted); font-style: italic; }
.plaque-seal { position: absolute; right: 18px; top: 66px; width: 32px; height: 32px; opacity: .9; transform: rotate(-12deg); }
.door-title { font-size: 19px; font-weight: 900; color: var(--ink); margin-top: 14px; border-top: 1px dashed var(--faint); padding-top: 12px; }
.door-sub { font-size: 13px; color: var(--muted); line-height: 1.7; margin-top: 4px; }
.door-cta {
  display: block; margin-top: auto; padding-top: 14px; font-size: 14px; font-weight: 800; color: var(--boss);
}
.door-cta.emp { color: var(--emp); }

/* ---- 员工 · 招聘海报（整张就是海报） ---- */
.door-poster {
  position: relative; height: 100%; display: flex; flex-direction: column;
  box-sizing: border-box;
  background: #1d2a24; border-radius: 12px; padding: 18px 18px 16px;
  box-shadow: var(--shadow); text-align: left; color: #e8efe0; overflow: hidden;
  transition: .18s;
}
.door-emp:hover .door-poster { box-shadow: 0 14px 30px rgba(47,122,94,.2); transform: translateY(-2px); }
.poster-top { display: flex; align-items: baseline; gap: 10px; }
.poster-head { font-size: 24px; font-weight: 900; color: #f6e58d; letter-spacing: 6px; }
.poster-role { font-size: 15px; font-weight: 800; color: #9ad0b4; }
.poster-line { font-size: 13px; color: #cfdac6; line-height: 1.7; margin: 12px 0 0; }
.poster-tags { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.poster-tags span { font-size: 11px; background: #2c3d33; color: #d9e6d2; border-radius: 8px; padding: 3px 9px; }
.door-title.emp-title { color: #eef3ea; border-top: 1px dashed rgba(255,255,255,.22); }
.door-sub.emp-sub { color: #b7c6bd; }

/* 脚注：同中轴，带分隔线，收窄成一个整体 */
.home-foot {
  width: 100%; max-width: 700px; margin-top: 24px; padding: 0 16px;
  text-align: center; font-size: 12px; color: var(--muted); line-height: 1.9;
  border-top: 1px dashed var(--faint); padding-top: 14px;
}

/* ---------- 员工市场 ---------- */
.market-head { text-align:center; padding:6px 0 16px; }
.market-head .back-btn { float:left; }
.page-title { font-size:24px; font-weight:900; letter-spacing:1px; }
.page-sub { font-size:14px; color:var(--muted); margin-top:4px; }
.market-toolbar { display:flex; align-items:center; gap:10px; justify-content:center; margin:10px 0 16px; }
.refresh-btn { background:none; border:1px dashed var(--faint); color:var(--muted); font-size:13px; padding:6px 14px; border-radius:16px; cursor:pointer; }
.refresh-btn:hover { border-color: var(--emp); color: var(--emp); }
.market-count { font-size:13px; color:var(--muted); }
.market-grid { display:grid; grid-template-columns:1fr; gap:16px; }
.company-card {
  position:relative; background:var(--paper); border:1px solid var(--line); border-radius:14px;
  padding:20px; box-shadow:var(--shadow); border-left:6px solid var(--emp);
}
.cc-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.cc-name { font-size:18px; font-weight:900; }
.cc-tag { font-size:11px; color:var(--muted); border:1px solid var(--line); padding:2px 10px; border-radius:14px; }
.cc-tag.on { color:#fff; background:var(--emp); border-color:var(--emp); }
.cc-boss { font-size:13px; margin-top:6px; color:var(--ink); }
.cc-boss .ai-badge { background:var(--purple); color:#fff; font-size:10px; border-radius:8px; padding:1px 7px; margin-left:6px; }
.cc-project { font-size:14px; margin-top:6px; font-weight:700; }
.cc-project .proj-ico { margin-right:6px; }
.cc-status { font-size:13px; color:var(--muted); margin-top:4px; font-style:italic; }
.cc-quote { font-size:12px; color:var(--wood-dark); margin-top:6px; background:#fdf6e2; border-radius:8px; padding:6px 10px; border-left:3px solid var(--wood); }
.cc-foot { display:flex; justify-content:space-between; align-items:center; margin-top:12px; font-size:12px; color:var(--muted); }
.cc-roles { color:var(--emp); font-weight:700; }
.cc-join { margin-top:12px; width:100%; font-weight:700; }
/* 岗位选择器：内联展开在被点的那张公司卡里（不再被扔到列表末尾 + 跳到底部） */
.cc-pick { border:1.5px dashed var(--emp); border-radius:12px; padding:12px; background:var(--emp-bg); display:flex; gap:10px; align-items:end; margin-top:12px; animation:pickIn .16s ease-out; }
.cc-pick label { margin:0; flex:1; font-weight:700; }
.company-card.picking { border-color:var(--emp); box-shadow:var(--shadow), 0 0 0 3px var(--emp-bg); }
@keyframes pickIn { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:none; } }
.list-empty { text-align:center; color:var(--muted); font-size:14px; padding:30px 12px; border:2px dashed var(--faint); border-radius:16px; background:var(--paper); }

/* ---------- 创始项目池（老板挑活） ---------- */
.pool-grid { display:grid; grid-template-columns:1fr; gap:12px; margin:12px 0 4px; }
.pool-card {
  position:relative; background:var(--paper); border:1.5px solid var(--line); border-radius:14px;
  padding:14px 16px; cursor:pointer; box-shadow:var(--shadow); transition:border-color .14s, box-shadow .14s;
}
.pool-card:hover { border-color:var(--boss); }
.pool-card.picked { border-color:var(--boss); box-shadow:var(--shadow), 0 0 0 3px var(--boss-bg); }
.pool-name { font-size:16px; font-weight:900; color:var(--ink); padding-right:54px; }
.pool-brief { font-size:13px; color:var(--ink); margin-top:6px; line-height:1.6; }
.pool-client { font-size:12px; color:var(--muted); margin-top:8px; }
.pool-pick {
  position:absolute; top:14px; right:14px; font-size:12px; font-weight:700; color:var(--boss);
  border:1px solid var(--boss); padding:3px 10px; border-radius:14px; background:#fff;
}
.pool-card.picked .pool-pick { color:#fff; background:var(--boss); }

/* ---------- 老板创建：营业执照/盖章 ---------- */
.boast-wrap { max-width:460px; margin:0 auto; }
.step-pane.hidden { display:none; }
.cert {
  position:relative; background:#fffbe8; border:2px solid var(--wood-dark); border-radius:6px;
  padding: 22px 24px; box-shadow: var(--shadow); text-align:center; margin:10px 0 6px;
}
.cert-head { font-size:18px; font-weight:900; color:var(--boss); letter-spacing:6px; margin-bottom:14px; border-bottom:2px solid var(--boss); padding-bottom:8px; }
.cert-row { display:flex; justify-content:space-between; gap:14px; font-size:13px; padding:8px 4px; border-bottom:1px solid var(--line); text-align:left; }
.cert-row span { color:var(--muted); font-weight:600; }
.cert-row b { font-weight:700; }
.cert-row .wild-cert { font-style:italic; color:var(--muted); font-weight:600; }
.cert-seal {
  position:absolute; right:26px; bottom:22px; width:56px; height:56px; color:var(--boss);
  display:flex; flex-direction:column; align-items:center; justify-content:center; font-weight:900;
  transform: rotate(-14deg); opacity:.95;
}
.cert-seal span { font-size:12px; }
/* 盖章动画 */
.cert-seal.show { animation: slam .5s ease; }
@keyframes slam { 0%{ transform: scale(2.4) rotate(10deg); opacity:0;} 70%{ transform: scale(.9) rotate(-12deg); opacity:1;} 100%{ transform: scale(1) rotate(-14deg); opacity:.95;} }

/* ---------- 通用：招牌 / 部门 ---------- */
.sign {
  display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:2px 0 14px;
  border-bottom:3px solid var(--wood); margin-bottom:16px; background: linear-gradient(90deg, transparent, rgba(200,180,140,.25), transparent);
}
.sign-name { font-size:24px; font-weight:900; color:var(--wood-dark); letter-spacing:1px; flex:1; }
.sign-meta { font-size:13px; color:var(--muted); }
.sign-right { display:flex; align-items:center; gap:10px; }
.sign-out { font-size:13px; color:var(--muted); cursor:pointer; }
.co-reg { font-size:12.5px; color:var(--muted); background:var(--paper); border:1px dashed var(--faint); padding:3px 9px; border-radius:8px; cursor:pointer; display:inline-flex; align-items:center; gap:5px; }
.co-reg i { font-style:normal; opacity:.72; font-weight:600; }
.co-reg b { font-family:monospace; letter-spacing:1px; font-weight:700; color:var(--wood-dark); }

.section-label { font-size:12px; font-weight:800; letter-spacing:2px; color:var(--wood-dark); margin:20px 0 10px; text-align:center; }
.section-label::before, .section-label::after { content:"——"; color: var(--wood); margin: 0 6px; }

/* ---------- 公司空间（像素办公室） ---------- */
.office-stage { margin: 4px 0 8px; }
.office-scene { width:100%; display:block; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); background:#f2ead9; }
.office-caption { text-align:center; font-size:12px; color:var(--muted); margin-top:4px; }

/* ---------- 事件小报 + 账本 ---------- */
.stock-wall { display:grid; grid-template-columns: 1fr 240px; gap:16px; margin-top:6px; align-items:start; }
.paper { background: var(--paper); border:1px solid var(--line); border-radius:14px; padding:18px; box-shadow: var(--paper-w), var(--shadow); }
.daily-paper { }
.paper-header { font-size:16px; font-weight:900; letter-spacing:2px; color:var(--ink); border-bottom:2px solid var(--faint); padding-bottom:8px; margin-bottom:10px; display:flex; justify-content:space-between; align-items:baseline; }
.paper-day { font-size:12px; color:var(--muted); }
.paper-news { font-size:14px; line-height:1.6; }
.event-line { padding:9px 0; border-bottom:1px dashed var(--line); font-size:14px; }
.event-line:last-child { border-bottom:none; }
.event-line .ev-day { display:inline-block; font-size:11px; color:var(--emp); background:var(--emp-bg); border-radius:8px; padding:1px 7px; margin-right:8px; font-weight:700; }
.side-gauge { display:flex; flex-direction:column; gap:12px; }
.gauge-line { background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:12px 14px; box-shadow: var(--paper-w); }
.gauge-line .gk { font-size:11px; letter-spacing:2px; color:var(--muted); font-weight:700; display:block; }
.gauge-line .gv { font-size:15px; font-weight:800; color:var(--ink); display:block; margin-top:4px; }
.ledger { background:#fffdf0; border:1px solid var(--line); border-radius:12px; padding:12px 14px; box-shadow: var(--paper-w); }
.ledger-title { font-size:11px; letter-spacing:2px; color:var(--wood-dark); font-weight:800; margin-bottom:8px; border-bottom:1px dashed var(--faint); padding-bottom:6px; }
.ledger-row { display:flex; justify-content:space-between; font-size:13px; padding:3px 0; color:var(--muted); }
.ledger-row b { color: var(--ink); }

/* ---------- 项目生长块 -------------  */
.growbox { display:flex; gap:6px; flex-wrap:wrap; align-items:flex-end; margin:12px 0; }
.pgb { width:30px; height:44px; border:2px solid #a98fd4; background:#d9cdf3; border-radius:4px 4px 4px 12px; }
.pgb0{background:#e3d9f7} .pgb1{height:50px;background:#bcd9e9;border-color:#7aa6c9}
.pgb2{height:40px;background:#c9e6d6;border-color:#7fb58a}.pgb3{height:56px;background:#f6d9a8;border-color:#d9a05b}
.pgb4{height:30px;background:#f0c8c8;border-color:#cf8c8c}
.project-name { font-size:19px; font-weight:900; }
.direction-line { font-size:13px; color:var(--emp); margin:4px 0; }
.project-brief { font-size:13px; color:var(--muted); margin:8px 0; }
.drawer-label { font-size:11px; letter-spacing:2px; color:var(--muted); font-weight:700; margin-top:8px; }
.feat-cloud { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.feature-tag { font-size:12px; background:var(--paper-2); color:var(--wood-dark); border:1px solid var(--line); padding:3px 11px; border-radius:12px; }
/* V0.6 F-B：「已发现」事实清单（团队确认过的事实；朴素列表——不做等级/可信度/知识图谱） */
.fact-list { display:flex; flex-direction:column; gap:6px; margin-top:8px; }
.fact-item { position:relative; padding-left:15px; font-size:13px; line-height:1.55; color:var(--wood-dark); }
.fact-item::before { content:"·"; position:absolute; left:3px; color:var(--muted); font-weight:700; }

/* ---------- 老板动作：收纳箱 / 抽屉 ---------- */
.boss-actions { display:flex; flex-direction:column; gap:12px; margin-top:18px; }
.kabinet, .boss-mini { background:var(--paper); border:1px solid var(--line); border-radius:14px; box-shadow: var(--paper-w); overflow:hidden; }
.kabinet-title { font-size:15px; font-weight:800; padding:14px 16px; cursor:pointer; list-style:none; }
.kabinet-title::-webkit-details-marker { display:none; }
.kabinet[open] .kabinet-title { border-bottom:1px dashed var(--line); }
.kabinet-body { padding:14px 16px; }
.moves-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.move-card { border:1px solid var(--line); border-radius:12px; padding:12px; cursor:pointer; background:#fffdf6; transition:.15s; }
.move-card:hover { border-color: var(--emp); transform:translateY(-2px); background:#fafffa; }
.move-label { font-weight:800; font-size:14px; }
.move-desc { font-size:12px; color:var(--muted); margin-top:3px; }

.drawer { background:var(--paper); border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow: var(--paper-w); }
.drawer-summary { font-size:15px; font-weight:800; padding:14px 16px; cursor:pointer; list-style:none; display:flex; align-items:center; gap:8px; }
.drawer-summary::-webkit-details-marker{display:none}
.drawer-summary small { font-size:12px; color:var(--muted); font-weight:600; margin-left:auto; }
.drawer[open] .drawer-summary { border-bottom:1px dashed var(--line); }
.drawer-body { padding:14px 16px; }
.drawer-sublabel { font-size:11px; letter-spacing:2px; color:var(--muted); font-weight:700; margin:14px 0 6px; }
.row-input { display:flex; gap:8px; }
.row-input input { flex:1; margin-top:0; }
.current-announce { font-size:13px; color:var(--muted); margin-top:8px; font-style:italic; }

/* 花名册 */
.roster-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px,1fr)); gap:12px; }
.roster-item {
  background:var(--paper-2); border:1px solid var(--line); border-radius:12px; padding:11px 13px;
  display:flex; flex-direction:column; gap:3px; box-shadow:0 1px 0 #fff inset;
}
.ri-head { display:flex; justify-content:space-between; align-items:center; gap:6px; }
.ri-name { font-weight:800; font-size:14px; }
.tag-ai, .tag-human { font-size:11px; padding:1px 8px; border-radius:10px; }
.tag-ai { background:#eee6fa; color:var(--purple); }
.tag-human { background:-webkit-gradient(linear,var(--emp-bg),var(--emp-bg)); color:var(--emp); }
.tag-human { background:var(--emp-bg); color:var(--emp); }
.ri-sub { font-size:12px; color:var(--muted); }
.ri-state { font-size:12px; color:var(--ink); }
.ri-acts { display:flex; gap:6px; margin-top:4px; }
/* C-6：并行项目面板 */
.project-list { display:flex; flex-direction:column; gap:8px; margin-bottom:10px; }
.project-list .roster-item.active-proj { border-color:var(--emp); box-shadow:0 0 0 1px var(--emp) inset; }
/* C-8：项目结局 + 公司历史 */
.ri-outcome { font-size:12px; color:var(--purple); margin-top:2px; }
.history-list { display:flex; flex-direction:column; gap:8px; }
.history-item {
  background:var(--paper-2); border:1px solid var(--line); border-left:3px solid var(--purple);
  border-radius:10px; padding:10px 13px; display:flex; flex-direction:column; gap:3px;
}
.hi-head { display:flex; justify-content:space-between; align-items:center; gap:6px; }
.hi-name { font-weight:800; font-size:14px; }
.hi-sub { font-size:12px; color:var(--muted); }
.hi-reason { font-size:12px; color:var(--ink); }
.hi-who { font-size:11px; color:var(--muted); }
.hire-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; margin-top:6px; }
.hire-cell { border:1.5px dashed var(--faint); border-radius:12px; padding:10px; text-align:center; }
.hc-name { font-size:13px; font-weight:800; margin-bottom:6px; }
.hire-cell select { font-size:12px; margin-top:0; margin-bottom:6px; }
.me-badge { font-size:16px; font-weight:800; margin-bottom:8px; }
.boss-state-row { display:flex; gap:14px; font-size:13px; color:var(--muted); flex-wrap:wrap; }
.boss-state-row b { color:var(--ink); }

/* 老板 · 项目文件夹 */
.boss-tab { margin-top:16px; }
.folder { }
.folder-tab { display:inline-block; background:var(--wood); color:#fff; font-size:13px; font-weight:800; padding:2px 14px; border-radius:8px 8px 0 0; letter-spacing:2px; }
.file { background:var(--paper); border:1px solid var(--line); border-radius:0 14px 14px 14px; padding:18px; box-shadow: var(--paper-w), var(--shadow); margin-bottom:16px; }
.letter { border-radius:14px; border-left:4px solid var(--brand-amber); }
.letter-note { font-size:13px; color:var(--muted); margin-top:8px; }

/* ---------- 员工端（2026-09-10 IA 重构：四页 + 底部导航） ---------- */
.emp-shell { padding-bottom: 86px; }   /* 给底部导航留位置 */
.emp-top { display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding-bottom:14px; border-bottom:3px solid var(--emp); margin-bottom:16px; }
.emp-greet { flex:1; }
.emp-hi { font-size:26px; font-weight:900; }
.emp-tenure { font-size:13px; color:var(--muted); margin-top:2px; }
.emp-top-right { display:flex; align-items:center; gap:10px; }
.emp-company { font-size:15px; font-weight:800; color:var(--emp); }
.sign-out { font-size:13px; color:var(--muted); cursor:pointer; }

/* 底部导航 */
.emp-nav {
  position: fixed; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 100%; max-width: 900px; display: flex; z-index: 50;
  background: var(--paper); border-top: 2px solid var(--wood);
  box-shadow: 0 -6px 18px rgba(80,60,20,.14);
}
.nav-tab {
  flex: 1; border: none; background: none; padding: 9px 0 10px; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  color: var(--muted); font-family: inherit; transition: .12s;
  position: relative;
}
.nav-tab .nt-ico { font-size: 20px; line-height: 1; }
.nav-tab .nt-label { font-size: 11px; font-weight: 800; letter-spacing: 2px; }
.nav-tab.active { color: var(--emp); }
.nav-tab.active .nt-ico { transform: translateY(-1px) scale(1.08); }
.nav-tab:hover { color: var(--emp); }
/* 未读红点/条数（B）· 长在公司 tab 图标右上角，事件没看就亮，看了就消失 */
.nav-tab .nt-unread {
  position: absolute; top: 2px; right: calc(50% - 16px);
  min-width: 16px; height: 16px; padding: 0 4px; box-sizing: border-box;
  border-radius: 9px; background: #e5484d; color: #fff;
  font-size: 10px; font-weight: 900; line-height: 16px;
  text-align: center; pointer-events: none;
}
.nav-tab .nt-unread::after {
  content: attr(data-count);
}
.nav-tab .nt-unread.hidden { display: none; }


/* 已交活态：同事实时动态 */
.after-act { margin-top: 14px; }
.aa-title { font-size: 14px; font-weight: 800; margin-bottom: 6px; }
.aa-line {
  display: flex; gap: 10px; align-items: baseline; padding: 8px 2px;
  border-bottom: 1px dashed var(--line); font-size: 14px;
}
.aa-line:last-child { border-bottom: none; }
.aa-who { font-weight: 800; flex: 0 0 auto; }
.aa-what { color: var(--ink-2); }
.aa-wait { font-size: 12px; color: var(--muted); margin-top: 12px; text-align: center; }

/* 「项目/公司/我」页通用 */
.page-head { padding: 4px 2px 12px; }
.page-head-title { font-size: 22px; font-weight: 900; }
.page-head-sub { font-size: 13px; color: var(--muted); margin-top: 2px; }
.proj-paper { margin-bottom: 14px; }
.proj-paper .drawer-label:first-child { margin-top: 0; }
.event-list { margin-top: 2px; }

/* 今天左栏 · 项目卡：四个带标签的信息块（项目名称 / 客户需求 / 项目工期 / 历史记录） */
.proj-paper .info-block { padding: 9px 2px; border-bottom: 1px dashed var(--line); }
.proj-paper .info-block:first-child { padding-top: 2px; }
.proj-paper .info-block:last-child { border-bottom: none; padding-bottom: 2px; }
.proj-paper .info-block .info-k {
  font-size: 11px; letter-spacing: 2px; color: var(--muted);
  font-weight: 800; margin-bottom: 4px;
}
.proj-paper .info-block .info-v { font-size: 14px; line-height: 1.6; }
.proj-paper .info-block .name-v { font-size: 21px; font-weight: 900; line-height: 1.45; }
.proj-paper .proj-schedule {
  display: inline-block; font-size: 13px; font-weight: 800; color: #fff;
  background: var(--emp); padding: 3px 13px; border-radius: 12px; letter-spacing: 1px;
}
.proj-paper .feat-cloud { margin-top: 2px; }
.proj-paper .event-list { margin-top: 2px; }

/* 全局置顶公告（公司级通知，不属于"今天"，跨页常驻） */
.pinned-notice {
  position: relative; background: #fff8c2; border-left: 4px solid #ddb52a;
  border-radius: 4px; padding: 11px 14px; margin-bottom: 14px;
  box-shadow: var(--paper-w); display: flex; gap: 10px; align-items: baseline;
}
.pinned-tag { flex: 0 0 auto; font-size: 11px; font-weight: 800; letter-spacing: 1px; color: #9a7b1a; }
.pinned-body { font-size: 14px; font-weight: 700; line-height: 1.6; }

/* 公司收摊面板（所有项目已归档） */
.ended-panel {
  background: var(--paper); border: 2px solid var(--wood); border-radius: 16px;
  padding: 22px 20px; box-shadow: var(--paper-w), var(--shadow); text-align: center;
}
.ended-head { font-size: 21px; font-weight: 900; letter-spacing: 2px; }
.ended-sub { font-size: 13px; color: var(--muted); margin-top: 6px; }
.ended-outcome { margin: 14px 0 4px; background: #fff8e8; border: 1px solid var(--brand-amber); border-radius: 12px; padding: 13px 15px; text-align: left; }
.eo-label { font-size: 15px; font-weight: 900; color: var(--boss); }
.eo-reason { font-size: 13px; color: var(--ink); margin-top: 6px; line-height: 1.7; }
.ended-tip { font-size: 12px; color: var(--muted); margin: 12px 0 4px; }
/* 市场：已收摊的公司 */
.company-card.cc-dead { opacity: .6; border-left-color: var(--muted); filter: grayscale(.5); }

/* 便利贴（旧便利贴样式保留：老板留言已被全局置顶公告取代，此处仅作后备） */
.sticky-note {
  position:relative; background:#fff8c2; padding:16px; border-radius:2px; margin-bottom:16px;
  box-shadow: var(--paper-w), var(--shadow); transform:rotate(-.6deg);
  border-left:4px solid #ddb52a;
}
.sticky-tag { font-size:11px; font-weight:800; letter-spacing:2px; color:#9a7b1a; margin-bottom:6px; }
.sticky-body { font-size:16px; font-weight:700; }

.workdesk { background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:20px; box-shadow: var(--paper-w), var(--shadow); margin-bottom:18px; }
.workdesk-head { font-size:12px; letter-spacing:3px; color:var(--emp); font-weight:900; margin-bottom:10px; }
.today-question { font-size:20px; font-weight:900; margin:4px 0 6px; line-height:1.5; }
.today-brief { font-size:13px; color:var(--muted); margin-bottom:10px; }
.taste-note { border:2px dashed var(--purple); background:#f6f1fd; border-radius:12px; padding:10px 14px; margin:12px 0; font-size:13px; border-left:4px solid var(--purple); }
.taste-title { font-size:11px; letter-spacing:1px; color:var(--purple); margin-bottom:4px; font-weight:800; }
.hand-choices { display:flex; flex-direction:column; gap:10px; }
/* 今天页 · 两栏：左=决策依据 右=私心+决策 */
.workdesk-cols { display:grid; grid-template-columns: 1.12fr 1fr; gap:18px; align-items:start; }
.wcol { display:flex; flex-direction:column; min-width:0; }
.wcol-info { gap:10px; }
.wcol-action { gap:12px; }
.wcol-action .today-question { margin-top:2px; }
/* 右栏「私心」与「决策选项」做明显分层：私心=贴紫虚线卡，决策=下方分组的白卡 */
.wcol .taste-note { margin: 0 0 4px; }
.wcol .today-empty { font-size:13px; color:var(--muted); padding:14px 16px; border:1.5px dashed var(--faint); border-radius:14px; background:#fffdf6; }
/* 窄屏（手机竖屏）退回单列：先信息后决策 */
@media (max-width: 700px) {
  .workdesk-cols { grid-template-columns: 1fr; gap:14px; }
  .wcol-info { order: 1; }
  .wcol-action { order: 2; }
}
/* 员工 action：从"选ABCD" → "你拿起电脑，决定…" */
.action-card {
  border:1.5px dashed var(--faint); border-radius:14px; padding:14px 16px; cursor:pointer; background:#fffdf6;
  transition:.15s; position:relative;
}
.action-card:hover { border-color:var(--emp); border-style:solid; transform:translateY(-1px); background:#f6fff9; }
.action-card.lean-yes { border-color:var(--emp); border-style:solid; background:#f0fbf5; }
.action-card .action-label { font-size:15px; font-weight:700; }
.action-card .action-cost { font-size:12px; color:var(--muted); margin-top:2px; }
.lean-tag { display:inline-block; font-size:10px; background:var(--emp); color:#fff; border-radius:8px; padding:1px 7px; margin-top:6px; font-weight:700; }
.lean-tag.no { background:var(--muted); }
.lean-tag.taste { background:var(--purple); }
.me-states { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.me-states span { font-size:12px; background:var(--paper-2); padding:3px 10px; border-radius:12px; }
.me-caps { margin-top:10px; }
.me-caps-title { font-size:12px; color:var(--ink-2); margin-bottom:4px; }
.me-scope { font-size:12px; color:var(--ink-2); margin-top:6px; }
.done-note { padding:14px 0; color:var(--muted); font-size:14px; }

/* 员工收纳（旧折叠卡片，已被四页导航取代 —— 样式保留给历史存档，不再使用） */
.info-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.info-card { border:1px solid var(--line); border-radius:12px; padding:11px 13px; background:var(--paper); }
.info-k { font-size:11px; font-weight:800; letter-spacing:1px; color:var(--muted); margin-bottom:3px; }
.info-v { font-size:14px; }
.me-line { font-size:14px; margin-bottom:8px; }

/* 入职 Offer */
.offer-wrap { max-width:480px; margin:20px auto; }
.offer { background:var(--paper); border:1px solid var(--wood); border-radius:16px; padding:26px 24px; box-shadow:var(--paper-w), var(--shadow); position:relative; }
.offer-head{ text-align:center; }
.offer-badge { display:inline-block; background:var(--emp); color:#fff; font-size:14px; font-weight:900; padding:4px 16px; border-radius:20px; letter-spacing:3px; margin-bottom:10px; }
.offer-title { font-size:22px; font-weight:900; }
.offer-do-list { text-align:left; border-top:2px dashed var(--faint); margin:18px 0; padding:14px 0; }
.od-row { display:flex; gap:12px; padding:9px 4px; border-bottom:1px solid var(--line); }
.od-row:last-child{ border-bottom:none; }
.od-k { flex:0 0 60px; color:var(--muted); font-size:13px; font-weight:700; }
.od-v { flex:1; font-size:15px; font-weight:700; }
.offer-boss { background:#f3f7ed; border-left:4px solid var(--emp); padding:12px 14px; border-radius:0 10px 10px 0; font-size:13px; margin:14px 0; }
.offer-boss::before{ content:"老板留言 · "; font-weight:800; color:var(--emp);}
.offer-boss span{ font-style:italic; }
/* 世界交接简报（A）· 只陈述「手上有什么 / 往哪去 / 我怎么判断」，不做教程引导 */
.ob-briefing { margin:14px 0; text-align:left; }
.ob-sec-label { font-size:12px; font-weight:900; letter-spacing:2px; color:var(--muted); margin-bottom:6px; }
.ob-sec-mt { margin-top:14px; }
.ob-proj-name { font-size:18px; font-weight:900; color:var(--emp); margin-bottom:4px; }
.ob-proj-brief { font-size:14px; line-height:1.6; color:var(--ink); margin-bottom:6px; }
.ob-proj-direction { font-size:13px; color:var(--boss); font-weight:700; }
.ob-actions { background:#fff; border:1px solid var(--line); border-radius:10px; padding:10px 12px; }
.ob-act-line { font-size:13px; line-height:1.6; margin-bottom:4px; }
.ob-act-line:last-child{ margin-bottom:0; color:var(--muted); }

/* 结算（当日事件报：同事们的决策是主角） */
.settlement { margin-top:16px; background:#fff8e8; border:1px solid var(--brand-amber); border-radius:16px; padding:20px; box-shadow:var(--paper-w); }
.settle-summary { font-size:15px; line-height:1.7; margin-bottom:12px; background:#fff; border:1px solid var(--line); border-radius:10px; padding:12px; }
.missed-note {
  font-size:13px; color:var(--boss); background:var(--boss-bg);
  border-left:4px solid var(--boss); border-radius:0 10px 10px 0;
  padding:9px 13px; margin-bottom:12px; font-weight:700;
}
.sb-title { font-size:12px; letter-spacing:1px; color:var(--muted); font-weight:800; margin:4px 0 6px; }
.sb-line { font-size:14px; padding:7px 2px; border-bottom:1px dashed var(--line); display:flex; gap:10px; align-items:baseline; }
.sb-line:last-of-type { border-bottom:none; }
.sb-who { font-weight:800; flex:0 0 auto; }
.sb-what { color:var(--ink); }
.settle-line, .sb-line { font-size:13px; padding:3px 0; }
.wild { color:var(--boss); font-weight:800; }

/* ---------- 移动端 ---------- */
@media (max-width: 640px) {
  #app { padding:14px 12px 60px; }
  .word-top { font-size:34px; }
  .identity-doors { grid-template-columns:1fr; gap:14px; padding:0; }
  .home-hero-wrap, .home-foot, .home-top { padding: 0; }
  /* 手机不铺大图：限高 + 裁切，避免首屏被图占满 */
  .hero-img img { max-height: 150px; border-radius: 10px; }
  .stock-wall { grid-template-columns:1fr; }
  .moves-grid { grid-template-columns:1fr; }
  .info-grid { grid-template-columns:1fr; }
  .hire-grid { grid-template-columns:1fr 1fr; }
  .office-scene { }
}

/* 修复：让 var() 里的残留不致崩溃 */
.hidden { display:none !important; }
/* ================================================================
   B4 · UI IA 整体重构（2026-09-10）
   新增：常驻世界条 / 世界层浮层 / 老板五页 / 责任回执 / 来源徽标 / 归因句
   ================================================================ */

/* ---------- 常驻世界条（双端共用一根，同一份数据） ---------- */
.world-bar {
  display: flex; align-items: center; gap: 9px; cursor: pointer;
  background: #eef3f8; border: 1px solid #cfdbe8; border-left: 4px solid #5a7fa8;
  border-radius: 10px; padding: 9px 13px; margin-bottom: 14px;
  box-shadow: var(--paper-w); transition: .14s;
}
.world-bar:hover { background: #e6eef7; border-left-color: #3d6a99; }
.wb-ico { font-size: 15px; line-height: 1; }
.wb-text { flex: 1; font-size: 13px; font-weight: 700; color: #33506f; line-height: 1.5; }
.wb-new {
  font-size: 10px; font-weight: 800; color: #fff; background: var(--boss);
  border-radius: 9px; padding: 1px 7px; letter-spacing: 1px;
}
.wb-more { font-size: 11px; color: #6b86a5; font-weight: 700; flex: 0 0 auto; }

/* ---------- 世界层（浮层） ---------- */
.world-overlay {
  position: fixed; inset: 0; z-index: 80; background: rgba(40,34,24,.42);
  display: flex; align-items: flex-start; justify-content: center; padding: 26px 14px;
  overflow-y: auto;
}
.world-sheet {
  width: 100%; max-width: 620px; background: var(--paper);
  border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 20px 50px rgba(60,45,20,.3);
  overflow: hidden;
}
.ws-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 18px; border-bottom: 2px solid #5a7fa8; background: #eef3f8;
}
.ws-title { font-size: 15px; font-weight: 900; color: #2f4f70; letter-spacing: 1px; }
.ws-close { border: none; background: none; font-size: 22px; line-height: 1; color: var(--muted); cursor: pointer; }
.ws-body { padding: 16px 18px 20px; }
.w-sec-label { font-size: 11px; letter-spacing: 2px; color: #5a7fa8; font-weight: 800; margin: 14px 0 8px; }
.w-sec-label:first-child { margin-top: 0; }
.w-card { background: #f6f9fc; border: 1px solid #d5e1ee; border-radius: 12px; padding: 12px 14px; margin-bottom: 10px; }
.w-card.obj { border-style: dashed; }
.w-card-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.w-org { font-size: 12px; font-weight: 800; color: #33506f; }
.w-day { font-size: 11px; color: var(--muted); }
.w-title { font-size: 14px; font-weight: 800; margin-top: 5px; color: var(--ink); }
.w-text { font-size: 13px; color: var(--ink-2); margin-top: 4px; line-height: 1.7; }
.w-linked { font-size: 12px; font-weight: 700; color: var(--emp); margin-top: 7px; }
.w-empty { font-size: 14px; color: var(--muted); padding: 10px 2px; }
.w-note { font-size: 12px; color: var(--muted); margin-top: 14px; border-top: 1px dashed var(--line); padding-top: 10px; line-height: 1.7; }

/* ---------- 世界介入全屏大弹窗（C）· 世界→项目那一刻 ---------- */
.world-pop-overlay {
  position: fixed; inset: 0; z-index: 90; background: rgba(30,24,14,.5);
  display: flex; align-items: center; justify-content: center; padding: 20px;
}
.world-pop {
  width: 100%; max-width: 520px; background: var(--paper);
  border: 3px solid #2f5d8c; border-radius: 18px; box-shadow: 0 24px 60px rgba(20,30,50,.45);
  overflow: hidden; position: relative;
  animation: wpIn .28s cubic-bezier(.2,.9,.3,1.2);
}
@keyframes wpIn { from { transform: translateY(18px) scale(.96); opacity: 0; } to { transform: none; opacity: 1; } }
.world-pop-close {
  position: absolute; top: 8px; right: 12px; border: none; background: none;
  font-size: 24px; line-height: 1; color: var(--muted); cursor: pointer; z-index: 2;
}
.world-pop-body { padding: 26px 24px 8px; text-align: center; }
.wp-org { font-size: 12px; font-weight: 900; letter-spacing: 3px; color: #5a7fa8; margin-bottom: 8px; }
.wp-kicker { font-size: 13px; font-weight: 900; color: #2f5d8c; letter-spacing: 1px; margin-bottom: 6px; }
.wp-hero { font-size: 24px; font-weight: 900; line-height: 1.35; color: var(--ink); margin-bottom: 10px; }
.wp-text { font-size: 14px; line-height: 1.7; color: var(--ink-2); margin-bottom: 16px; }
.wp-link-line {
  background: #eef3f8; border-left: 4px solid #2f5d8c; border-radius: 0 10px 10px 0;
  padding: 12px 14px; font-size: 13px; font-weight: 700; color: #2f4f70; text-align: left;
}
.world-pop-actions { padding: 4px 22px 22px; text-align: center; }

/* ---------- 决策来源徽标（分清「内部荒诞」与「外部荒诞」） ---------- */
.src-badge {
  display: inline-block; font-size: 10px; font-weight: 800; border-radius: 8px;
  padding: 1px 8px; margin-bottom: 6px; letter-spacing: .5px;
}
.src-badge.world { background: #dbe8f5; color: #2f5d8c; border: 1px solid #a9c4de; }
.src-chip {
  font-size: 12px; font-weight: 700; border-radius: 9px; padding: 6px 11px; margin: 4px 0 10px;
  line-height: 1.6;
}
.src-chip.world { background: #e6eff8; color: #2f5d8c; border-left: 4px solid #5a7fa8; }
.src-chip.internal { background: var(--paper-2); color: var(--muted); border-left: 4px solid var(--faint); }

/* ---------- 项目「世界回声」 ---------- */
.echo-item { background: #f6f9fc; border: 1px solid #d5e1ee; border-radius: 10px; padding: 10px 13px; margin-top: 6px; }
.echo-world { font-size: 13px; font-weight: 700; color: #33506f; }
.echo-link { font-size: 12px; color: var(--ink-2); margin-top: 5px; line-height: 1.7; }

/* ---------- 归因句（because）：上屏，FPE 的最终产出 ---------- */
.eo-because, .hi-because {
  font-size: 13px; line-height: 1.75; margin-top: 8px;
  background: #f6f1fd; border-left: 4px solid var(--purple);
  border-radius: 0 10px 10px 0; padding: 9px 12px; color: var(--ink);
}
.hi-because { font-size: 12px; padding: 7px 10px; }
.eo-who { font-size: 12px; color: var(--muted); margin-top: 7px; }

/* ---------- 仪式感产品结算卡（最终交付：产品名 + 结果图 + 概述） ---------- */
.product-result {
  text-align: center; margin: 14px 0 6px;
  background: linear-gradient(160deg, #fffdf4, #fff6e3);
  border: 2px solid var(--brand-amber); border-radius: 16px;
  padding: 20px 16px 18px; box-shadow: var(--paper-w);
}
.pr-kicker {
  font-size: 11px; letter-spacing: 4px; color: var(--muted); font-weight: 800; text-transform: uppercase;
}
.pr-name {
  font-size: 24px; font-weight: 900; letter-spacing: 1px; line-height: 1.35;
  margin: 8px 0 16px; color: var(--ink);
}
.pr-visual {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 6px; min-height: 140px; border-radius: 14px; margin: 0 auto 14px;
  padding: 18px; max-width: 340px;
}
.pr-physical { background: linear-gradient(160deg, #2b3a2f, #46624b); }
.pr-persona   { background: linear-gradient(160deg, #2b2f4a, #4a5480); }
.pr-digital   { background: linear-gradient(160deg, #1f2a3a, #3a506e); }
.pr-emoji { font-size: 52px; line-height: 1; filter: drop-shadow(0 4px 10px rgba(0,0,0,.25)); }
.pr-hint { font-size: 12px; color: rgba(255,255,255,.82); letter-spacing: 1px; }
.pr-img { max-width: 100%; border-radius: 12px; display: block; margin: 0 auto 14px; }
.pr-summary {
  font-size: 14px; color: var(--ink-2); line-height: 1.8; text-align: left;
  background: rgba(255,255,255,.7); border-radius: 10px; padding: 10px 14px;
}

/* ================================================================
   结算海报（全屏仪式感弹窗 · 游戏结算屏 · 主视觉在前/信息在后）
   结构：①顶部大标题(完成/未完成) ②大产品图(视觉主角) ③放大产品名
        ④信息区两列(项目/需求/目标/历时/总结) ⑤归因(获奖理由)
   配色：按 archetype 分主题(physical=绿 / persona=紫红 / digital=蓝)，
        色彩丰富、庆典感；荒诞反差=用最隆重的多巴胺去颁发一个离谱结果。
   ================================================================ */
/* ================================================================
   结算海报（全屏仪式感弹窗 · 借鉴像素结算页结构 · 保留站点纸张底）
   结构沿用：①顶部大标题 ②状态标签行 ③大产品图+放大产品名
        ④数值进度条 ⑤模块化信息区 ⑥获奖理由 ⑦底部大按钮
   风格：在站点纸张色系上用像素式【粗描边 + 硬投影 + 方正标签 + 大按压按钮】，
        把"游戏结算屏"的味道收敛地做出来，不破坏既有调性。
   ================================================================ */
.poster-overlay {
  position: fixed; inset: 0; z-index: 200;
  background: radial-gradient(1100px 700px at 50% 18%, rgba(40,32,74,.92), rgba(12,9,22,.96));
  display: flex; align-items: flex-start; justify-content: center;
  padding: 18px 12px; overflow-y: auto;
  animation: posterFade .28s ease;
}
@keyframes posterFade { from { opacity: 0; } to { opacity: 1; } }
.poster {
  position: relative; width: 100%; max-width: 470px;
  background: #fdfcf7;               /* 亮纸底 */
  border: 3px solid #26282f;
  border-radius: 4px;                /* 像素式中等圆角（不再是 26px 大圆） */
  box-shadow: 8px 8px 0 rgba(30,24,12,.28), 0 24px 70px rgba(0,0,0,.45);
  overflow: hidden;
  display: flex; flex-direction: column;
  transform: translateY(16px) scale(.96); opacity: 0;
  transition: transform .4s cubic-bezier(.2,.8,.2,1), opacity .4s;
}
.poster.p-in { transform: translateY(0) scale(1); opacity: 1; }
/* 大关闭按钮（像素式方块） */
.poster-close {
  position: absolute; top: 12px; right: 12px; z-index: 5;
  border: 2px solid #26282f; background: #ff6b6b; color: #fff;
  width: 40px; height: 40px; border-radius: 6px; font-size: 20px; line-height: 1;
  cursor: pointer; font-weight: 900;
  box-shadow: 3px 3px 0 rgba(38,40,47,.35);
  transition: transform .06s, box-shadow .06s, background .15s;
}
.poster-close:hover { background: #ff4d4d; }
.poster-close:active { transform: translate(2px,2px); box-shadow: 1px 1px 0 rgba(38,40,47,.35); }
.poster-body { padding: 0; overflow-y: auto; }

/* ===== ① 顶部大标题（纸张底渐变 + 粗分界线 + 主题色徽章）===== */
.p-hero { text-align: center; padding: 28px 20px 18px; border-bottom: 3px solid #26282f; }
.ph-physical { background: linear-gradient(180deg, #fbfaf5, #f4efdf); }
.ph-persona  { background: linear-gradient(180deg, #fdf4f7, #f6e7ee); }
.ph-digital  { background: linear-gradient(180deg, #f2f7fc, #e7eef6); }
.p-hero-kicker {
  font-size: 11px; letter-spacing: 4px; font-weight: 800; color: #9a8d6e;
  margin-bottom: 14px;
}
.p-hero-badge {
  width: 56px; height: 56px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 28px; margin: 0 auto 14px;
  border: 2px solid #26282f;
  box-shadow: 4px 4px 0 rgba(38,40,47,.22);
}
.ph-physical .p-hero-badge { background: linear-gradient(145deg, #f4ecdf, #e4d8c2); }
.ph-persona  .p-hero-badge { background: linear-gradient(145deg, #fceef4, #f2c5dd); }
.ph-digital  .p-hero-badge { background: linear-gradient(145deg, #eaf4fe, #c4dff7); }
.p-hero-title {
  font-size: 54px; font-weight: 900; letter-spacing: 3px; line-height: 1.05;
  color: #26282f;
}
.ph-physical .p-hero-title { color: #4a3a24; }
.ph-persona  .p-hero-title { color: #9c3a76; }
.ph-digital  .p-hero-title { color: #1d5cb0; }
.p-hero-done {
  display: inline-block; margin-top: 14px; padding: 6px 16px 5px;
  font-size: 12px; font-weight: 800; letter-spacing: 1px;
  color: #5a564a; border: 2px solid #26282f; border-radius: 3px;
  background: #fff; box-shadow: 2px 2px 0 rgba(38,40,47,.22);
}
.ph-physical .p-hero-done { color: #6a5634; }
.ph-persona  .p-hero-done { color: #a0467c; }
.ph-digital  .p-hero-done { color: #2f76b8; }
.p-hero-done.hita-lose { color: #a34a3a; border-color: #a34a3a; }

/* ===== ② 状态标签行（多色小方块）==== ===== */
.p-strip {
  display: flex; gap: 8px; flex-wrap: wrap;
  padding: 12px 18px; border-bottom: 3px solid #26282f;
  background: #fdfcf7;
}
.p-st-tag {
  display: inline-block; padding: 4px 10px 3px; font-size: 11px; font-weight: 800;
  border: 2px solid #26282f; border-radius: 3px; letter-spacing: .5px;
  box-shadow: 2px 2px 0 rgba(38,40,47,.25);
}
.p-st-tag.ok    { background: #e3f3e8; color: #2a7a4f; }
.p-st-tag.lose  { background: #f5e8e4; color: #a34a3a; }
.p-st-tag.arc   { background: #fff3d6; color: #8a6d3b; }
.p-st-tag.world { background: #e1eff9; color: #2f6da8; }
.p-st-tag.wild  { background: #efe7fa; color: #6a4a9e; }

/* ===== ③ 主产品图 + 放大产品名 ===== */
.p-product { text-align: center; padding: 6px 18px 4px; }
.p-product .pr-visual {
  max-width: 100%; min-height: 200px; border-radius: 6px;
  border: 2px solid #26282f;
  box-shadow: 6px 6px 0 rgba(38,40,47,.10), inset 0 1px 0 rgba(255,255,255,.6);
}
.pr-physical, .pv-physical { background: radial-gradient(circle at 50% 42%, #f3ead8 0%, #faf7ef 58%, #f3efe3 100%); color: #7a5c30; }
.pr-persona,   .pv-persona   { background: radial-gradient(circle at 50% 42%, #fbeef4 0%, #fcf7f3 58%, #f4efe8 100%); color: #a0467c; }
.pr-digital,   .pv-digital   { background: radial-gradient(circle at 50% 42%, #eaf4fe 0%, #f7fafc 58%, #f0f3f4 100%); color: #2f76b8; }
.pr-emoji { font-size: 84px; line-height: 1; filter: drop-shadow(0 8px 16px rgba(70,60,40,.18)); }
.pr-hint { font-size: 12px; font-weight: 700; letter-spacing: 1px; opacity: .75; margin-top: 4px; }
.p-final-name {
  font-size: 26px; font-weight: 900; letter-spacing: 1px; line-height: 1.35;
  margin-top: 16px; color: #26282f;
  background: linear-gradient(90deg, #b3391f, #d4740a, #7a4a8e);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* ===== ④ 数值进度条区 ===== */
.p-gauges {
  padding: 14px 18px 4px; border-bottom: 3px solid #26282f; background: #f9f6ec;
}
.pg-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 10px; }
.pg-title { font-size: 12px; font-weight: 900; letter-spacing: 2px; color: #26282f; }
.pg-sub { font-size: 10px; color: #9a8d6e; letter-spacing: 1px; font-weight: 700; }
.p-gauge { margin-bottom: 10px; }
.pg-row { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 4px; }
.pg-label { font-size: 12px; font-weight: 800; color: #5a5344; }
.pg-val { font-size: 12px; font-weight: 900; color: #26282f; }
.pg-track {
  height: 12px; border: 2px solid #26282f; border-radius: 3px;
  background: #fff; box-shadow: inset 0 1px 0 rgba(0,0,0,.06);
  overflow: hidden;
}
.pg-fill { height: 100%; border-radius: 0; }
.pg-fill.arc { background: linear-gradient(90deg, #7bc47f, #3f8f5f); }
.pg-fill.red { background: linear-gradient(90deg, #e89c3a, #d1522a); }
.p-gauge.warn .pg-val { color: #b03a24; }

/* ===== ⑤ 模块化信息区（两列卡 + 分隔感）===== */
.p-info {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
  padding: 16px 18px 4px;
}
.p-sec {
  background: #f4f2ea; border: 2px solid #26282f; border-radius: 4px;
  padding: 12px 14px; margin: 0;
  box-shadow: 2px 2px 0 rgba(38,40,47,.08);
}
.p-sec-label {
  font-size: 10px; letter-spacing: 2px; font-weight: 900; color: #8a6d3b;
  margin-bottom: 6px; text-transform: uppercase;
}
.p-proj-name { font-size: 20px; font-weight: 900; color: #26282f; line-height: 1.4; letter-spacing: .5px; }
.p-body-text { font-size: 13px; line-height: 1.7; color: #3a3d46; padding: 0; }

/* 归因（获奖理由）：跨满宽、主题强调 */
.p-because { grid-column: 1 / -1; background: #fbeef2; border-color: #c2668f; }
.p-because .p-sec-label { color: #b0396b; }
.p-because .p-body-text { color: #4b2033; }
.p-info .p-because { margin-bottom: 10px; }

/* 底部脚注 */
.p-footer {
  text-align: center; font-size: 10px; letter-spacing: 3px; color: #b4a98c;
  font-weight: 800; padding: 4px 0 0;
}

/* ===== 底部操作（两个大块的像素按钮）===== */
.poster-actions {
  display: flex; flex-direction: column; gap: 12px;
  padding: 16px 18px 20px; background: #fdfcf7;
  border-top: 3px solid #26282f;
}
.poster-share, .poster-continue {
  border: 3px solid #26282f; border-radius: 6px; padding: 15px;
  font-size: 15px; font-weight: 900; cursor: pointer; letter-spacing: 1px;
  box-shadow: 4px 4px 0 rgba(38,40,47,.35);
  transition: transform .06s, box-shadow .06s, filter .15s;
}
.poster-share { background: linear-gradient(135deg, #ffb347, #e8882a); color: #26282f; }
.poster-share:hover { filter: brightness(1.05); }
.poster-continue { background: #fff; color: #4a463c; }
.poster-continue:hover { background: #f5f1e6; }
.poster-share:active, .poster-continue:active { transform: translate(3px,3px); box-shadow: 1px 1px 0 rgba(38,40,47,.35); }
.p-empty { color: #6b6060; text-align: center; padding: 60px 16px; font-size: 15px; line-height: 1.8; background: #fdfcf4; }



/* ---------- 老板端：四页外壳（世界走常驻条，与员工端一致） ---------- */
.boss-shell { padding-bottom: 86px; }
.boss-nav { border-top-color: var(--boss); }
.boss-nav .nav-tab.active { color: var(--boss); }
.boss-nav .nav-tab:hover { color: var(--boss); }
.boss-page { padding-top: 2px; }

/* 责任首页 · ① 我的身份 */
.resp-id {
  background: var(--paper); border: 1px solid var(--line); border-left: 5px solid var(--boss);
  border-radius: 14px; padding: 15px 18px; margin-bottom: 14px; box-shadow: var(--paper-w), var(--shadow);
}
.resp-co { font-size: 23px; font-weight: 900; letter-spacing: 1px; }
.resp-meta { font-size: 13px; color: var(--muted); margin-top: 3px; }
.resp-status { font-size: 14px; font-weight: 700; margin-top: 8px; color: var(--ink); }
.resp-note { font-size: 12px; color: var(--muted); margin-top: 10px; line-height: 1.7; }

/* 责任首页 · ④ 团队快照 */
.resp-team { display: flex; flex-direction: column; }
.resp-team-line {
  display: flex; gap: 10px; align-items: baseline; padding: 7px 2px;
  border-bottom: 1px dashed var(--line); font-size: 13px;
}
.resp-team-line:last-child { border-bottom: none; }
.rtl-who { font-weight: 800; flex: 0 0 auto; }
.rtl-role { color: var(--muted); font-size: 12px; flex: 0 0 auto; }
.rtl-what { color: var(--ink-2); margin-left: auto; text-align: right; }

/* 责任首页 · ⑥↔⑦ 决定 / 后果回执（相邻 = 责任承接，不加任何属性） */
.resp-decision { border-left: 5px solid var(--boss); }
.resp-receipt { border-left: 5px solid var(--amber); background: #fffaf0; }
.rc-boss { font-size: 15px; font-weight: 900; }
.rc-arrow { font-size: 12px; color: var(--muted); margin: 6px 0; letter-spacing: 1px; }
.rc-summary { font-size: 13px; line-height: 1.75; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; }
.rc-lines { margin-top: 8px; }
.rc-line { font-size: 12px; color: var(--ink-2); padding: 4px 0; border-bottom: 1px dashed var(--line); }
.rc-line:last-child { border-bottom: none; }

/* 项目行（可点） */
.project-row { transition: .14s; }
.project-row:hover { border-color: var(--emp); }

/* 老板「项目」页详情里的客户端 */
.bp-detail .info-v { font-size: 14px; }


/* 关键节点反馈（2026-09-10）：世界在动时，让对应的那条/那块轻轻「喘一下」。
   纯视觉提示，无任何机械影响；配合 toast 使用。 */
@keyframes uiFlash { 0% { box-shadow: 0 0 0 0 rgba(217,130,43,0); } 25% { box-shadow: 0 0 0 5px rgba(217,130,43,.42); } 100% { box-shadow: 0 0 0 0 rgba(217,130,43,0); } }
.flash { animation: uiFlash 1.5s ease-out 1; }

/* ================================================================
   全站统一 · neo-brutalism（2026-09-13）
   —— 圆角矩形 = 深墨描边 + 无模糊硬投影（参考「推了么」的厚重黑灰投影）。
   —— 色板沿用原「纸张 + 印章红 / 工牌绿」；只改外观，不动布局与结构。
   —— A/B 像素实验（员工「今天」B 版）已下线。
   回滚：整段删除，或从 .workbuddy/tmp/ui-backup-20260913/ 还原。
   ================================================================ */

/* ---------- 1. 主卡片：粗描边 + 硬投影 ---------- */
.paper,
.proj-paper,
.sheet,
.file,
.drawer,
.kabinet,
.kabinet-body,
.workdesk,
.offer,
.ended-panel,
.cert,
.company-card,
.pool-card,
.ledger,
.settlement,
.world-sheet,
.product-result,
.resp-id,
.action-card,
.info-block,
.info-card,
.home-hero,
.hero-img img,
.door-plaque,
.door-poster {
  border: 2px solid var(--nb-ink);
  box-shadow: 5px 5px 0 var(--nb-shadow);
}

/* ---------- 2. 小面板 / 便签 / 条目 ----------
   —— 仅保留「本身就该是一张卡」的元素。
   —— 纯文本 / 纯布局容器（.today-brief .today-question .hand-choices .me-states .boast-pane .step-pane）
        不进这里：它们本来没有框，被套 2px 边框+硬投影会把一整行/一块内容误框成矩形（2026-09-13 复查修正）。 */
.pinned-notice,
.sticky-note,
.roster-item,
.history-item,
.boss-mini,
.gauge-line,
.today-empty {
  border: 2px solid var(--nb-ink);
  box-shadow: 3px 3px 0 var(--nb-shadow);
}

/* 保留「左侧彩色标识条」的语义（身份/来源靠颜色区分） */
.company-card  { border-left: 6px solid var(--emp); }
.resp-id       { border-left: 5px solid var(--boss); }
.history-item  { border-left: 3px solid var(--purple); }
.pinned-notice { border-left: 4px solid #ddb52a; }
.sticky-note   { border-left: 4px solid #ddb52a; }

.missed-note,
.eo-because,
.hi-because {
  border: 2px solid var(--nb-ink);
  border-left-width: 4px;
  box-shadow: 3px 3px 0 var(--nb-shadow);
}
.missed-note { border-left-color: var(--boss); }
.eo-because, .hi-because { border-left-color: var(--purple); }

.world-bar {
  border: 2px solid var(--nb-ink);
  border-left: 5px solid #5a7fa8;
  box-shadow: 3px 3px 0 var(--nb-shadow);
}

/* ---------- 3. 按钮：硬投影 + 按压手感 ---------- */
.btn, .btn-ink, .btn-accent, .btn-big, .btn-door,
.back-btn, .refresh-btn,
.poster-share, .poster-continue, .poster-close {
  border: 2px solid var(--nb-ink);
  box-shadow: 4px 4px 0 var(--nb-shadow);
  transition: transform .07s ease, box-shadow .07s ease, background .15s, filter .15s;
}
.btn:active, .btn-ink:active, .btn-accent:active, .btn-big:active, .btn-door:active,
.back-btn:active, .refresh-btn:active,
.poster-share:active, .poster-continue:active, .poster-close:active {
  transform: translate(3px, 3px);
  box-shadow: 1px 1px 0 var(--nb-shadow);
}

/* ---------- 4. 输入控件 ---------- */
input, textarea, select {
  border: 2px solid var(--nb-ink);
  box-shadow: 3px 3px 0 var(--nb-shadow);
  background: #fffdf6;
}

/* ---------- 5. 小标签 / 药丸 ----------
   —— .plaque-badge（首页「营业执照」标题字）不进这里：它原始只有一条下划底线（border-bottom），
        被套 1.5px 整行边框+投影会把它框成一个矩形（2026-09-13 复查修正）。 */
.feature-tag, .src-badge, .src-chip, .p-st-tag, .wb-new, .co-reg,
.poster-tags span, .pool-pick, .p-hero-badge {
  border: 1.5px solid var(--nb-ink);
  box-shadow: 2px 2px 0 var(--nb-shadow);
}

/* ---------- 6. 底部导航 ---------- */
.emp-nav { border-top: 2px solid var(--nb-ink); box-shadow: 0 -4px 0 var(--nb-shadow); }

/* ---------- 7. 结算海报：硬投影统一为全不透明墨色 ---------- */
.poster { border: 3px solid var(--nb-ink); }
.poster-close { box-shadow: 3px 3px 0 var(--nb-shadow); }
.poster-share, .poster-continue { box-shadow: 4px 4px 0 var(--nb-shadow); }
.p-hero-badge { box-shadow: 4px 4px 0 var(--nb-shadow); }
.p-hero-done, .p-st-tag, .p-sec { box-shadow: 2px 2px 0 var(--nb-shadow); }
.p-product .pr-visual { box-shadow: 5px 5px 0 var(--nb-shadow); }

/* ---------- 8. 按钮圆角统一（2026-09-13 用户裁决：统一 12px） ----------
   —— 背景：.btn(12)/.btn-xs(8)/.btn-big(14)/.btn-door(14)/.refresh-btn(16)/.pool-pick(14) 混用，
           .nav-tab（底部导航）更是纯直角 0。
   —— 裁决：所有按钮语义元素统一到 12px（与主卡 12px 同一语言）。
   特殊件（保留原样，非按钮）：
     .folder-tab = 档案夹上缘 8px 8px 0 0（贴合标签，不改）
     .door-plaque / .door-poster / .card 系 = 卡片/海报，非按钮，走主卡 12px 已有语言
   ================================================================ */
:root { --nb-rad-btn: 12px; }

/* 显式按钮类 → 统一 token（.btn 家族 / 返回 / 刷新 / 选池卡上的选择按钮 / 设为员工角色下拉） */
.btn, .btn-xs, .btn-accent, .btn-big, .btn-ink, .btn-door,
.back-btn, .refresh-btn,
.pool-pick {
  border-radius: var(--nb-rad-btn);
}

/* 底部导航 4 tab：直角 → 统一 12px（员工/老板端一致） */
.nav-tab { border-radius: var(--nb-rad-btn); }
.nav-tab .nt-ico,
.nav-tab .nt-label { border-radius: inherit; }
