/* ================= 白板便签贴纸（desktop 外勤OS 与 mission-panel 共用） =================
   kind：note 便签 / clock 时钟（固定时长记录）/ slider 滑动条 / text 文本块 / counter 计数器 */
.bnote {
  width: 176px; border-radius: 10px;
  box-shadow: 0 4px 14px rgba(60,20,15,.22);
  font-size: 12.5px; color: #3d3338;
  touch-action: none; user-select: none; -webkit-user-select: none;
}
.bnote.note { background: #fdf0b8; border: 1px solid #e8d58a; }
.bnote.clock { background: #fff; border: 1px solid #cfd6e4; }
.bnote.slider { background: #fff; border: 1px solid #ddd0e2; }
.bnote.text { background: #fff; border: 1px solid #e8d58a; }
.bnote.counter { background: #fff; border: 1px solid #cfe3d0; }
.bnote.locked { opacity: .94; }
.bnote.pinned { box-shadow: 0 8px 22px rgba(60,20,15,.35); }
.bnote.hidden { border-style: dashed; }
.bnote.hidden .bnote-title { font-style: italic; color: #7a6f74; }
.bnote-head { display: flex; align-items: center; gap: 6px; padding: 7px 8px 6px; }
.bnote-ico { font-size: 12px; line-height: 1; flex: none; }
.bnote-title { flex: 1; min-width: 0; font-weight: 700; font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bnote-flags { display: flex; gap: 3px; flex: none; }
.bnote-flag { font-style: normal; font-size: 10px; opacity: .85; display: flex; align-items: center; }
.bnote-flag.bnote-vis-badge { opacity: 1; }
.bnote-menu-btn {
  width: 20px; height: 20px; border: none; background: transparent; border-radius: 5px;
  cursor: pointer; color: #8a7f83; font-size: 13px; line-height: 1; flex: none; padding: 0;
}
.bnote-menu-btn:hover { background: rgba(0,0,0,.08); }
.bnote-body { padding: 0 10px 10px; }
.bnote-items { display: flex; flex-direction: column; gap: 4px; }
.bnote-item {
  position: relative; padding: 3px 18px 3px 8px; background: rgba(255,255,255,.55);
  border-radius: 6px; line-height: 1.45; word-break: break-word;
}
.bnote-item .bnote-item-del {
  position: absolute; right: 3px; top: 1px; border: none; background: none;
  color: #c9a0a0; cursor: pointer; font-size: 13px; padding: 0 3px; display: none;
}
.bnote-item:hover .bnote-item-del { display: block; }
.bnote-item.empty { color: #b3a8a8; font-style: italic; }
.bnote-input {
  width: 100%; box-sizing: border-box; margin-top: 6px;
  border: 1px dashed #d8c57e; background: rgba(255,255,255,.5); border-radius: 6px;
  padding: 5px 8px; font: inherit; font-size: 11.5px; color: #3d3338; outline: none;
}
.bnote-ctrl {
  flex: 1; border: 1px solid #d8d2d0; background: #fff; border-radius: 6px;
  font: inherit; font-size: 12px; padding: 4px 0; cursor: pointer; color: #555;
}
.bnote-ctrl:hover { background: #f6f1ef; }
.bnote-num {
  font-family: Consolas, monospace; font-size: 34px; font-weight: 800;
  text-align: center; color: #2b2430; line-height: 1.1; font-variant-numeric: tabular-nums;
}
.bnote-counter-ctrls { display: flex; gap: 6px; margin-top: 8px; }
.bnote-counter-ctrls .bnote-ctrl { font-size: 16px; font-weight: 700; }
.bnote-counter-ctrls .minus { color: #c0392b; }
.bnote-counter-ctrls .plus { color: #1f9d61; }
/* 时钟：固定时长记录（累计显示 + 四档增加按钮） */
.bnote-clock-val {
  font-family: Consolas, monospace; font-size: 26px; font-weight: 700;
  text-align: center; color: #2b2430; line-height: 1.15; font-variant-numeric: tabular-nums;
}
.bnote-clock-ctrls { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 8px; }
.bnote-clock-ctrls .bnote-ctrl { flex: 1 1 40%; font-size: 11.5px; }
/* 滑动条 */
.bnote-slider-val {
  text-align: center; font-size: 13.5px; font-weight: 700; color: #2b2430;
  font-variant-numeric: tabular-nums; line-height: 1.3;
}
.bnote-range { width: 100%; margin-top: 7px; accent-color: #d8402f; display: block; }
/* 文本块 */
.bnote-textarea {
  display: block; width: 100%; box-sizing: border-box; resize: none;
  border: 1px dashed #d8c57e; background: rgba(255,255,255,.6); border-radius: 6px;
  padding: 6px 8px; font: inherit; font-size: 12px; line-height: 1.5; color: #3d3338; outline: none;
}
.bnote-textarea:focus { border-color: #d8402f; border-style: solid; }
.bnote-resizer { position: absolute; right: 2px; bottom: 2px; width: 14px; height: 14px; cursor: nwse-resize; touch-action: none; }
.bnote-resizer::after {
  content: ''; position: absolute; right: 3px; bottom: 3px; width: 7px; height: 7px; border-radius: 2px;
  background: repeating-linear-gradient(-45deg, transparent 0, transparent 2px, #c6bbbe 2px, #c6bbbe 3px);
}
.bnote-resizer:hover::after {
  background: repeating-linear-gradient(-45deg, transparent 0, transparent 2px, #d8402f 2px, #d8402f 3px);
}
/* 右上角可见性按钮 + 图标尺寸 */
.bnote-vis-btn {
  width: 20px; height: 20px; border: none; background: transparent; border-radius: 5px;
  cursor: pointer; color: #8a7f83; flex: none; padding: 0;
  display: flex; align-items: center; justify-content: center;
}
.bnote-vis-btn svg { width: 13px; height: 13px; display: block; }
.bnote-vis-btn:hover { background: rgba(0,0,0,.08); color: #b02e20; }
.bnote-ico svg { width: 14px; height: 14px; display: block; }
.bnote-flag svg { width: 11px; height: 11px; display: block; }
.bnote-menu-btn svg { width: 14px; height: 14px; display: block; }
/* 便签菜单（可见性 / 其它）——固定定位悬浮于所有贴纸与工具栏之上 */
.bnote-menu {
  position: fixed; z-index: 50000; min-width: 190px;
  background: #fff; border: 1px solid #f0e7e4; border-radius: 10px;
  box-shadow: 0 12px 32px rgba(60,20,15,.25); padding: 5px; font-size: 12.5px;
}
.bnote-menu .bm-sec { color: #b3a8a8; font-size: 10.5px; font-weight: 700; letter-spacing: 1px; padding: 6px 10px 3px; }
.bnote-menu .bm-item {
  display: flex; align-items: center; gap: 8px; padding: 7px 10px;
  border-radius: 7px; cursor: pointer; color: #555;
}
.bnote-menu .bm-item:hover { background: #f6f1ef; }
.bnote-menu .bm-item.on { color: #c0392b; font-weight: 700; }
.bnote-menu .bm-item .bm-check { width: 14px; text-align: center; flex: none; color: #d8402f; font-weight: 800; }
.bnote-menu .bm-item.danger { color: #c0392b; }
.bnote-menu .bm-item.danger:hover { background: #fdf1f0; }
.bnote-menu .bm-ico { width: 16px; height: 16px; flex: none; display: flex; align-items: center; justify-content: center; color: #8a7f83; }
.bnote-menu .bm-ico svg { width: 14px; height: 14px; display: block; }
.bnote-menu .bm-sep { height: 1px; background: #f0e7e4; margin: 4px 6px; }
/* 画布平移：按住空白处拖动挪动白板视口（两页共用） */
.board-canvas { cursor: grab; }
.board-canvas.board-panning { cursor: grabbing; }
/* 头像贴纸（从左上角成员栏拖到白板的圆形头像，无连线无头部按钮） */
.bnote.avatar { background: transparent; border: none; box-shadow: none; width: 96px; }
.bnote-ava-circle {
  width: 82px; height: 82px; margin: 0 auto; box-sizing: border-box;
  border-radius: 50%; overflow: hidden;
  background: #fff; border: 3px solid #d8402f; box-shadow: 0 5px 16px rgba(60,20,15,.3);
  display: flex; align-items: center; justify-content: center;
}
.bnote-ava-circle img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bnote-ava-circle span {
  font-size: 11px; color: #2b2430; font-weight: 700; text-align: center;
  line-height: 1.15; padding: 6px; word-break: break-word;
}
.bnote-ava-name {
  text-align: center; font-size: 10.5px; color: #7a6f74; margin-top: 6px;
  background: rgba(255,255,255,.88); border-radius: 999px; padding: 2px 9px;
  display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* 地图缩放层与百分比标签（无限画布：10000×10000 底，原点居中，两页共用） */
.board-zoom-layer { position: absolute; top: 0; left: 0; width: 10000px; height: 10000px; transform-origin: 0 0; }
.board-zoom-val { font-size: 10.5px; color: #8a7f83; min-width: 34px; text-align: center; font-weight: 700; }
/* 时钟：24 小时制 HH:MM + 超过 24 小时的天数小字 */
.bnote-clock-days { text-align: center; font-size: 10.5px; color: #a89c9c; margin-top: 3px; font-weight: 600; }
/* 时钟按钮：两列两行 [- 分钟 +][- 10分钟 +] / [- 30分钟 +][- 1小时 +] */
.bnote-clock-ctrls { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.bnote-clock-cell { display: flex; align-items: center; gap: 2px; min-width: 0; }
.bnote-clock-step { display: inline-flex; flex: none; width: 24px; height: 22px; align-items: center; justify-content: center; font-size: 14px; font-weight: 800; line-height: 1; padding: 0; }
.bnote-clock-lbl { flex: 1; text-align: center; font-size: 10.5px; color: #7a6f74; font-weight: 600; }
